diff -Nru mame-0.223+dfsg.1/3rdparty/lua-zlib/lua_zlib.c mame-0.224+dfsg.1/3rdparty/lua-zlib/lua_zlib.c --- mame-0.223+dfsg.1/3rdparty/lua-zlib/lua_zlib.c 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/3rdparty/lua-zlib/lua_zlib.c 2020-08-26 08:57:19.000000000 +0000 @@ -392,7 +392,7 @@ SETLITERAL("_COPYRIGHT", "Copyright (c) 2009-2010 Brian Maher"); SETLITERAL("_DESCRIPTION", "Yet another binding to the zlib library"); - SETLITERAL("_VERSION", "lua-zlib $Id: b619258c75f480717fad20c113c3b1a35f888ce0 $ (tag: mame0223)"); + SETLITERAL("_VERSION", "lua-zlib $Id: b619258c75f480717fad20c113c3b1a35f888ce0 $ (tag: mame0224)"); /* Expose this to lua so we can do a test: */ SETINT("_TEST_BUFSIZ", LUAL_BUFFERSIZE); diff -Nru mame-0.223+dfsg.1/android-project/app/src/main/AndroidManifest.xml mame-0.224+dfsg.1/android-project/app/src/main/AndroidManifest.xml --- mame-0.223+dfsg.1/android-project/app/src/main/AndroidManifest.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/android-project/app/src/main/AndroidManifest.xml 2020-08-26 08:57:19.000000000 +0000 @@ -4,8 +4,8 @@ --> diff -Nru mame-0.223+dfsg.1/.appveyor.yml mame-0.224+dfsg.1/.appveyor.yml --- mame-0.223+dfsg.1/.appveyor.yml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/.appveyor.yml 2020-08-26 08:57:19.000000000 +0000 @@ -23,8 +23,8 @@ - set MSYSTEM=MINGW64 build_script: - - bash -lc "exec 0 Mon, 31 Aug 2020 07:51:45 +0200 + +mame (0.224+dfsg.1-1) unstable; urgency=medium + + [ Cesare Falco ] + * New upstream release. + * Updated patches. + + [ Jordi Mallach ] + * Let the build system figure out FORCE_DRC_C_BACKEND and NOASM + (hopefully closes: #968883). + + -- Jordi Mallach Sat, 29 Aug 2020 21:43:12 +0200 + mame (0.223+dfsg.1-1) unstable; urgency=medium [ Cesare Falco ] diff -Nru mame-0.223+dfsg.1/debian/patches/hurd.patch mame-0.224+dfsg.1/debian/patches/hurd.patch --- mame-0.223+dfsg.1/debian/patches/hurd.patch 2020-07-06 15:24:52.000000000 +0000 +++ mame-0.224+dfsg.1/debian/patches/hurd.patch 2020-08-29 19:09:45.000000000 +0000 @@ -16,7 +16,7 @@ ifeq ($(firstword $(filter Darwin,$(UNAME))),Darwin) OS := macosx GENIEOS := darwin -@@ -1359,6 +1362,16 @@ linux: generate $(PROJECTDIR)/$(MAKETYPE +@@ -1370,6 +1373,16 @@ linux: generate $(PROJECTDIR)/$(MAKETYPE $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-linux config=$(CONFIG) precompile $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-linux config=$(CONFIG) diff -Nru mame-0.223+dfsg.1/debian/patches/python3.patch mame-0.224+dfsg.1/debian/patches/python3.patch --- mame-0.223+dfsg.1/debian/patches/python3.patch 2020-07-06 15:24:52.000000000 +0000 +++ mame-0.224+dfsg.1/debian/patches/python3.patch 2020-08-29 19:09:45.000000000 +0000 @@ -7,7 +7,7 @@ =================================================================== --- mame.orig/makefile +++ mame/makefile -@@ -412,7 +412,7 @@ endif +@@ -423,7 +423,7 @@ endif endif # BIGENDIAN ifndef PYTHON_EXECUTABLE @@ -16,7 +16,7 @@ else PYTHON := $(PYTHON_EXECUTABLE) endif -@@ -960,7 +960,7 @@ ifeq ($(OS),windows) +@@ -971,7 +971,7 @@ ifeq ($(OS),windows) ifeq (posix,$(SHELLTYPE)) GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpversion 2> /dev/null) CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) --version 2> /dev/null| head -n 1 | grep clang | sed "s/^.*[^0-9]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$$/\1/" | head -n 1) @@ -25,7 +25,7 @@ GIT_AVAILABLE := $(shell git --version > /dev/null 2>&1 && echo git) else GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpversion 2> NUL) -@@ -1004,7 +1004,7 @@ else +@@ -1015,7 +1015,7 @@ else GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpversion 2> /dev/null) endif CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) --version 2> /dev/null | head -n 1 | grep -e 'version [0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?' -o | grep -e '[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?' -o | tail -n 1) @@ -34,7 +34,7 @@ GIT_AVAILABLE := $(shell git --version > /dev/null 2>&1 && echo git) endif -@@ -1021,7 +1021,7 @@ endif +@@ -1032,7 +1032,7 @@ endif endif endif diff -Nru mame-0.223+dfsg.1/debian/rules mame-0.224+dfsg.1/debian/rules --- mame-0.223+dfsg.1/debian/rules 2020-07-06 15:24:52.000000000 +0000 +++ mame-0.224+dfsg.1/debian/rules 2020-08-31 05:48:38.000000000 +0000 @@ -34,10 +34,8 @@ DEBUG= \ TARGETOS=linux \ DISTRO=debian-stable \ - FORCE_DRC_C_BACKEND=1 \ PTR64= \ BIGENDIAN= \ - NOASM=1 \ PYTHON_EXECUTABLE=python3 \ QT_HOME=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/ \ USE_SYSTEM_LIB_ASIO= \ @@ -71,9 +69,7 @@ ifeq ($(DEB_HOST_ARCH),amd64) DEB_OPTS += \ - FORCE_DRC_C_BACKEND= \ - PTR64=1 \ - NOASM= + PTR64=1 endif ifeq ($(DEB_HOST_ARCH),arm64) @@ -85,14 +81,10 @@ export DEB_LDFLAGS_MAINT_APPEND += -Wl,--allow-multiple-definition endif -ifeq ($(DEB_HOST_ARCH),i386) -DEB_OPTS += \ - FORCE_DRC_C_BACKEND= \ - NOASM= -endif - ifeq ($(DEB_HOST_ARCH),hppa) LINK_WITH_GOLD = +DEB_OPTS += \ + NOASM=1 endif ifeq ($(DEB_HOST_ARCH),ia64) @@ -103,6 +95,8 @@ ifeq ($(DEB_HOST_ARCH),m68k) LINK_WITH_GOLD = +DEB_OPTS += \ + NOASM=1 endif ifeq ($(DEB_HOST_ARCH),mips) @@ -114,17 +108,19 @@ ifeq ($(DEB_HOST_ARCH),mipsel) DEB_OPTS += \ - ARCHOPTS=-Umips + ARCHOPTS=-Umips \ + NOASM=1 LINK_WITH_GOLD = endif ifeq ($(DEB_HOST_ARCH),mips64el) +DEB_OPTS += \ + NOASM=1 endif ifeq ($(DEB_HOST_ARCH),powerpc) DEB_OPTS += \ ARCHOPTS=-Upowerpc \ - NOASM= \ BIGENDIAN=1 LINK_WITH_GOLD = endif @@ -132,15 +128,13 @@ ifeq ($(DEB_HOST_ARCH),ppc64) DEB_OPTS += \ PTR64=1 \ - NOASM= \ BIGENDIAN=1 LINK_WITH_GOLD = endif ifeq ($(DEB_HOST_ARCH),ppc64el) DEB_OPTS += \ - PTR64=1 \ - NOASM= + PTR64=1 LINK_WITH_GOLD = endif @@ -164,6 +158,8 @@ ifeq ($(DEB_HOST_ARCH),sh4) LINK_WITH_GOLD = +DEB_OPTS += \ + NOASM=1 endif ifeq ($(DEB_HOST_ARCH),sparc) @@ -179,19 +175,11 @@ LINK_WITH_GOLD = endif -ifeq ($(DEB_HOST_ARCH),x32) -DEB_OPTS += \ - FORCE_DRC_C_BACKEND= \ - NOASM= -endif - # kFreeBSD architectures ifeq ($(DEB_HOST_ARCH),kfreebsd-amd64) DEB_OPTS += \ TARGETOS=freebsd \ - FORCE_DRC_C_BACKEND= \ PTR64=1 \ - NOASM= \ USE_SYSTEM_LIB_PORTMIDI= export DEB_LDFLAGS_MAINT_APPEND = -ldl endif @@ -199,8 +187,6 @@ ifeq ($(DEB_HOST_ARCH),kfreebsd-i386) DEB_OPTS += \ TARGETOS=freebsd \ - FORCE_DRC_C_BACKEND= \ - NOASM= \ USE_SYSTEM_LIB_PORTMIDI= export DEB_LDFLAGS_MAINT_APPEND = -ldl endif @@ -209,8 +195,6 @@ ifeq ($(DEB_HOST_ARCH),hurd-i386) DEB_OPTS += \ TARGETOS=gnu \ - FORCE_DRC_C_BACKEND= \ - NOASM= \ USE_SYSTEM_LIB_PORTMIDI= \ NO_USE_MIDI=1 LINK_WITH_GOLD = diff -Nru mame-0.223+dfsg.1/docs/source/commandline/commandline-all.rst mame-0.224+dfsg.1/docs/source/commandline/commandline-all.rst --- mame-0.223+dfsg.1/docs/source/commandline/commandline-all.rst 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/docs/source/commandline/commandline-all.rst 2020-08-26 08:57:19.000000000 +0000 @@ -237,9 +237,9 @@ .. Tip:: Output from this command is typically more useful if redirected to - an output file. For instance, doing + an output file. For instance, doing **mame64 -listxml galaxian > galax.xml** will make ``galax.xml`` or - overwrite any existing data in the file with the results of + overwrite any existing data in the file with the results of **-listxml**; this will allow you to view it in a text editor or parse it with external tools. @@ -607,7 +607,7 @@ **-getsoftlist** / **-glist** [<*pattern*>] - Displays the contents of a specific softlist with the filename represented + Displays the contents of a specific softlist with the filename represented by *pattern*. Example: @@ -698,21 +698,21 @@ - dwrite - none - auto - - + - - sdl [#UIFPSDLWindows]_. * - **macOS** - - - - + - + - - none - auto - osx - sdl * - **Linux** - - - - + - + - - none - auto - - + - - sdl .. rubric:: Footnotes @@ -745,16 +745,16 @@ - sdl [#KBIPSDLWindows]_. * - **SDL (macOS and Linux)** - auto [#KBIPAutoSDL]_. - - - - - - + - + - + - - none - sdl * - **Linux** - auto [#KBIPAutoSDL]_. - - - - - - + - + - + - - none - sdl @@ -797,16 +797,16 @@ - sdl [#MIPSDLWindows]_. * - **SDL (macOS and Linux)** - auto [#MIPAutoSDL]_. - - - - - - + - + - + - - none - sdl * - **Linux** - auto [#MIPAutoSDL]_. - - - - - - + - + - + - - none - sdl @@ -841,21 +841,21 @@ - rawinput - win32 - none - - - - + - + - * - **macOS** - auto [#LGIPAutoSDL]_. - - - - + - + - - none - - - - + - + - * - **Linux** - auto [#LGIPAutoLinux]_. - - - - + - + - - none - - + - - x11 .. rubric:: Footnotes @@ -892,9 +892,9 @@ - sdl * - **SDL** - auto [#JIPAutoSDL]_. - - - - - - + - + - + - - none - sdl @@ -1036,7 +1036,7 @@ The default is ``.`` (that is, in the current working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -homepath c:\mame\lua @@ -1051,7 +1051,7 @@ working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -rompath c:\mame\roms;c:\roms\another @@ -1066,7 +1066,7 @@ working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -hashpath c:\mame\hash;c:\roms\softlists @@ -1081,7 +1081,7 @@ working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -samplepath c:\mame\samples;c:\roms\samples @@ -1096,7 +1096,7 @@ working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -artpath c:\mame\artwork;c:\emu\shared-artwork @@ -1111,7 +1111,7 @@ working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -ctrlrpath c:\mame\ctrlr;c:\emu\controllers @@ -1140,7 +1140,7 @@ directory ``ini`` in the current working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -inipath c:\users\thisuser\documents\mameini @@ -1155,7 +1155,7 @@ The default is ``.`` (that is, search in the current working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -fontpath c:\mame\;c:\emu\artwork\mamefonts @@ -1170,7 +1170,7 @@ current working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -cheatpath c:\mame\cheat;c:\emu\cheats @@ -1185,7 +1185,7 @@ current working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -crosshairpath c:\mame\crsshair;c:\emu\artwork\crosshairs @@ -1199,7 +1199,7 @@ working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -pluginspath c:\mame\plugins;c:\emu\lua @@ -1214,7 +1214,7 @@ current working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -languagepath c:\mame\language;c:\emu\mame-languages @@ -1228,7 +1228,7 @@ working directory). Example: - .. code-block:: + .. code-block:: bash mame64 -swpath c:\mame\software;c:\emu\mydisks @@ -1251,7 +1251,7 @@ automatically. Example: - .. code-block:: + .. code-block:: bash mame64 -cfg_directory c:\mame\cfg @@ -1269,7 +1269,7 @@ automatically. Example: - .. code-block:: + .. code-block:: bash mame64 -nvram_directory c:\mame\nvram @@ -1286,7 +1286,7 @@ automatically. Example: - .. code-block:: + .. code-block:: bash mame64 -input_directory c:\mame\inp @@ -1303,7 +1303,7 @@ automatically. Example: - .. code-block:: + .. code-block:: bash mame64 -state_directory c:\mame\sta @@ -1319,7 +1319,7 @@ automatically. Example: - .. code-block:: + .. code-block:: bash mame64 -snapshot_directory c:\mame\snap @@ -1338,7 +1338,7 @@ automatically. Example: - .. code-block:: + .. code-block:: bash mame64 -diff_directory c:\mame\diff @@ -1355,7 +1355,7 @@ created automatically. Example: - .. code-block:: + .. code-block:: bash mame64 -comment_directory c:\mame\comments @@ -1380,7 +1380,7 @@ command. Example: - .. code-block:: + .. code-block:: bash mame64 -norewind @@ -1395,7 +1395,7 @@ clamped to 0. Example: - .. code-block:: + .. code-block:: bash mame64 -rewind_capacity 30 @@ -1407,7 +1407,7 @@ in the specified to be loaded. Example: - .. code-block:: + .. code-block:: bash mame64 -state 1 @@ -1423,7 +1423,7 @@ The default is OFF (**-noautosave**). Example: - .. code-block:: + .. code-block:: bash mame64 -autosave @@ -1438,7 +1438,7 @@ The default is ``NULL`` (no playback). Example: - .. code-block:: + .. code-block:: bash mame64 pacman -playback worldrecord @@ -1458,7 +1458,7 @@ The default is OFF (**-noexit_after_playback**). Example: - .. code-block:: + .. code-block:: bash mame64 pacman -playback worldrecord -exit_after_playback @@ -1473,7 +1473,7 @@ The default is ``NULL`` (no recording). Example: - .. code-block:: + .. code-block:: bash mame64 pacman -record worldrecord @@ -1494,7 +1494,7 @@ By default, no timecode file is saved. Example: - .. code-block:: + .. code-block:: bash mame64 pacman -record worldrecord -record_timecode @@ -1511,7 +1511,7 @@ The default is ``NULL`` (no recording). Example: - .. code-block:: + .. code-block:: bash mame64 pacman -mngwrite pacman-video @@ -1531,7 +1531,7 @@ The default is ``NULL`` (no recording). Example: - .. code-block:: + .. code-block:: bash mame64 pacman -playback worldrecord -exit_after_playback -aviwrite worldrecord @@ -1547,7 +1547,7 @@ .. _mame-commandline-snapname: Example: - .. code-block:: + .. code-block:: bash mame64 pacman -wavewrite pacsounds @@ -1572,21 +1572,21 @@ with the media switch you want to use. Example 1: - .. code-block:: + .. code-block:: bash mame64 robby -snapname foo\%g%i Snapshots will be saved as ``snaps\foo\robby0000.png``, ``snaps\foo\robby0001.png`` and so on. Example 2: - .. code-block:: + .. code-block:: bash mame64 nes -cart robby -snapname %g\%d_cart Snapshots will be saved as ``snaps\nes\robby.png``. Example 3: - .. code-block:: + .. code-block:: bash mame64 c64 -flop1 robby -snapname %g\%d_flop1/%i @@ -1671,19 +1671,19 @@ ``[media]`` with the media switch you want to use. Example 1: - .. code-block:: + .. code-block:: bash mame64 robby -statename foo\%g All save states will be stored inside sta\foo\robby\ Example 2: - .. code-block:: + .. code-block:: bash mame64 nes -cart robby -statename %g/%d_cart All save states will be stored inside sta\nes\robby\ Example 3: - .. code-block:: + .. code-block:: bash mame64 c64 -flop1 robby -statename %g/%d_flop1 All save states will be stored inside sta\c64\robby\ @@ -1878,7 +1878,7 @@ latency. This is particularly effective with VRR (Variable Refresh Rate) displays. - This may cause frame pacing issues in the form of jitter with some + This may cause frame pacing issues in the form of jitter with some systems (especially newer 3D-based systems or systems that run software akin to an operating system), so the default is off (**-nolowlatency**). @@ -1959,7 +1959,7 @@ mame64 pacman -autorol -.. Tip:: If you have a display that can be rotated, **-autorol** or +.. Tip:: If you have a display that can be rotated, **-autorol** or **-autoror** will allow you to get a larger display for both horizontal and vertical systems. @@ -2039,9 +2039,9 @@ **-numscreens** ** - Tells MAME how many output windows or screens to create. For most systems, - a single output window is all you need, but some systems originally used - multiple screens (*e.g. Darius and PlayChoice-10 arcade machines*). Some + Tells MAME how many output windows or screens to create. For most systems, + a single output window is all you need, but some systems originally used + multiple screens (*e.g. Darius and PlayChoice-10 arcade machines*). Some systems with front panel controls and/or status lights also may let you put these in different windows/screens. Each screen (up to 4) has its own independent settings for physical monitor, aspect ratio, resolution, and @@ -2180,6 +2180,7 @@ The default is OFF (**-nosyncrefresh**). .. _mame-commandline-prescale: + Example: .. code-block:: bash @@ -2520,7 +2521,7 @@ ramp, for the system screens. This option does not affect the artwork or other parts of the display. Using the MAME UI, you can individually set the gamma for each system screen; this option controls the initial value for - all visible system screens. The standard and default value is ``1.0``, + all visible system screens. The standard and default value is ``1.0``, which gives a linear ramp from black to white. Selecting lower values (down to 0.1) will increase the nonlinearity toward black, while selecting higher values (up to 3.0) will push the nonlinearity toward white. @@ -2576,7 +2577,10 @@ **-beam_width_min** ** - Sets the vector beam minimum width. + Sets the vector beam minimum width. The beam width varies between + the minimum and maximum beam widths as the intensity of the vector + drawn changes. To disable vector width changes based on intensity, + set the maximum equal to the minimum. Example: .. code-block:: bash @@ -2587,7 +2591,10 @@ **-beam_width_max** ** - Sets the vector beam maximum width. + Sets the vector beam maximum width. The beam width varies between + the minimum and maximum beam widths as the intensity of the vector + drawn changes. To disable vector width changes based on intensity, + set the maximum equal to the minimum. Example: .. code-block:: bash @@ -2598,13 +2605,35 @@ **-beam_intensity_weight** ** - Sets the vector beam intensity weight. + Sets the vector beam intensity weight. This value determines how the + intensity of the vector drawn affects the width. A value of 0 creates + a linear mapping from intensity to width. Negative values mean that + lower intensities will increase the width toward maximum faster, + while positive values will increase the width toward maximum more + slowly. Example: .. code-block:: bash mame64 asteroid -beam_intensity_weight 0.5 +.. _mame-commandline-beamdotsize: + +**-beam_dot_size** ** + + Scale factor to apply to the size of single-point dots in vector games. + Normally these are rendered according to the computed beam width; however, + it is common for this to produce dots that are difficult to see. The + beam_dot_size option applies a scale factor on top of the beam width to + help them show up better. + + The default is ``1``. + + Example: + .. code-block:: bash + + mame64 asteroid -beam_dot_size 2 + .. _mame-commandline-flicker: **-flicker** ** @@ -2828,21 +2857,21 @@ - dsound - xaudio2 - portaudio - - + - - sdl [#SoundWinSDL]_. - none * - **macOS** - - - - + - + - - portaudio - coreaudio - sdl - none * - **Linux** and others - - - - + - + - - portaudio - - + - - sdl - none @@ -2860,9 +2889,9 @@ Higher values increase audio delay but may help avoid buffer under-runs and audio interruptions. - The default is ``1``. + The default is ``1``. - | For PortAudio, see :ref:`mame-commandline-pa-latency`. + | For PortAudio, see the section on :ref:`-pa_latency `. | XAudio2 calculates audio_latency as 10ms steps. | DSound calculates audio_latency as 10ms steps. | CoreAudio calculates audio_latency as 25ms steps. @@ -3045,8 +3074,8 @@ **-joystick_map** ** / **-joymap** ** - Controls how analog joystick values map to digital joystick controls. - + Controls how analog joystick values map to digital joystick controls. + Systems such as Pac-Man use a 4-way digital joystick and will exhibit undesired behavior when a diagonal is triggered; in the case of Pac-Man, movement will stop completely at intersections when diagonals are triggered @@ -3055,12 +3084,12 @@ joysticks), so for true analog joysticks such as flight sticks and analog thumb sticks, this then needs to be mapped down to the expected 4-way or 8-way digital joystick values. - + To do this, MAME divides the analog range into a 9x9 grid that looks like this: - + **insert 9x9 grid picture here** - + MAME then takes the joystick axis position (for X and Y axes only), maps it to this grid, and then looks up a translation from a joystick map. This parameter allows you to specify the map. @@ -3081,7 +3110,7 @@ Generally you will want to set up the **-joystick_map** setting in the per-system ``.ini`` file as opposed to the main ``MAME.INI`` - file so that the mapping only affects the systems you want it to. See + file so that the mapping only affects the systems you want it to. See :ref:`Multiple Configuration Files ` for further details on per-system configuration. @@ -3174,7 +3203,7 @@ +------------------------------+ | **-joymap s8.4s8.44s8.4445** | +------------------------------+ - + .. _mame-commandline-joystickdeadzone: @@ -3715,6 +3744,7 @@ The default is (**-noui_mouse**). .. _mame-commandline-language: + Example: .. code-block:: bash diff -Nru mame-0.223+dfsg.1/docs/source/initialsetup/compilingmame.rst mame-0.224+dfsg.1/docs/source/initialsetup/compilingmame.rst --- mame-0.223+dfsg.1/docs/source/initialsetup/compilingmame.rst 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/docs/source/initialsetup/compilingmame.rst 2020-08-26 08:57:19.000000000 +0000 @@ -75,7 +75,7 @@ add **OSD=sdl** to the make options. The main emulator binary will have an ``sdl`` prefix prepended (e.g. ``sdlmame64.exe`` or ``sdlmame.exe``). You will need to install the MSYS2 packages for SDL 2 version 2.0.3 or later. -* By default, MAME will include the native Windows debugger. To also inculde +* By default, MAME will include the native Windows debugger. To also include the portable Qt debugger, add **USE_QTDEBUG=1** to the make options. You will need to install the MSYS2 packages for Qt 5. @@ -96,10 +96,13 @@ * Install packages necessary to build MAME. At the very least, you'll need ``bash``, ``git``, ``make``. * For 64-bit builds you'll need ``mingw-w64-x86_64-gcc`` and - ``mingw-w64-x86_64-python2``. + ``mingw-w64-x86_64-python``. * For 32-bit builds you'll need ``mingw-w64-i686-gcc`` and - ``mingw-w64-i686-python2``. + ``mingw-w64-i686-python``. * For debugging you may want to install ``gdb``. +* To link using the LLVM linker (generally much faster than the GNU linker), + you'll need ``mingw-w64-x86_64-lld`` for 64-bit builds, or + ``mingw-w64-i686-lld`` for 32-bit builds. * To build against the portable SDL interfaces, you'll need ``mingw-w64-x86_64-SDL2`` and ``mingw-w64-x86_64-SDL2_ttf`` for 64-bit builds, or ``mingw-w64-i686-SDL2`` and ``mingw-w64-i686-SDL2_ttf`` for 32-bit builds. @@ -139,7 +142,8 @@ Fedora Linux ------------ -You'll need a few prerequisites from your distro. Make sure you get SDL2 2.0.3 or 2.0.4 as earlier versions are buggy. +You'll need a few prerequisites from your Linux distribution. Make sure you get +SDL2 2.0.4 or later as earlier versions are buggy. **sudo dnf install gcc gcc-c++ SDL2-devel SDL2_ttf-devel libXi-devel libXinerama-devel qt5-qtbase-devel qt5-qttools expat-devel fontconfig-devel alsa-lib-devel** @@ -151,7 +155,8 @@ Debian and Ubuntu (including Raspberry Pi and ODROID devices) ------------------------------------------------------------- -You'll need a few prerequisites from your distro. Make sure you get SDL2 2.0.3 or 2.0.4 as earlier versions are buggy. +You'll need a few prerequisites from your Linux distribution. Make sure you get +SDL2 2.0.4 or later as earlier versions are buggy. **sudo apt-get install git build-essential python libsdl2-dev libsdl2-ttf-dev libfontconfig-dev qt5-default** @@ -175,7 +180,7 @@ Apple Mac OS X -------------- -You'll need a few prerequisites to get started. Make sure you're on OS X 10.9 Mavericks or later. You will NEED SDL2 2.0.4 for OS X. +You'll need a few prerequisites to get started. Make sure you're on OS X 10.9 Mavericks or later. You will need SDL2 2.0.4 or later for OS X. * Install **Xcode** from the Mac App Store * Launch **Xcode**. It will download a few additional prerequisites. Let this run through before proceeding. @@ -492,6 +497,16 @@ Unusual Build Configurations ---------------------------- +Linking using the LLVM linker +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The LLVM linker is generally faster than the GNU linker that GCC uses by +default. This is more pronounced on systems with a high overhead for file +system operations (e.g. Microsoft Windows, or when compiling on a disk mounted +over a network). To use the LLVM linker with GCC, ensure the LLVM linker is +installed and add ``-fuse-ld=lld`` to the linker options (e.g. in the +**LDFLAGS** environment variable or in the **ARCHOPTS** setting). + Cross-compiling MAME ~~~~~~~~~~~~~~~~~~~~ diff -Nru mame-0.223+dfsg.1/.editorconfig mame-0.224+dfsg.1/.editorconfig --- mame-0.223+dfsg.1/.editorconfig 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/.editorconfig 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,13 @@ +root = true + +[*] +charset = utf-8 +indent_size = 4 +indent_style = tab +insert_final_newline = true +tab_width = 4 +trim_trailing_whitespace = true + +[*.py] +indent_style = space +tab_width = 8 diff -Nru mame-0.223+dfsg.1/hash/a2600_cass.xml mame-0.224+dfsg.1/hash/a2600_cass.xml --- mame-0.223+dfsg.1/hash/a2600_cass.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/a2600_cass.xml 2020-08-26 08:57:19.000000000 +0000 @@ -4,6 +4,11 @@ license:CC0 Info from Atariage and Atarimania + +The scharger cartridge must be loaded before being able to load a tape. Press Play when asked. + +e.g. mame64 a2600 scharger -cass commumut + --> diff -Nru mame-0.223+dfsg.1/hash/apogee.xml mame-0.224+dfsg.1/hash/apogee.xml --- mame-0.223+dfsg.1/hash/apogee.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/apogee.xml 2020-08-26 08:57:19.000000000 +0000 @@ -10,6 +10,7 @@ BADROAD 19?? <unknown> + @@ -21,6 +22,7 @@ BATTLESH 19?? <unknown> + @@ -32,6 +34,7 @@ BDASHALL 19?? <unknown> + @@ -43,6 +46,7 @@ BDASHFRM 19?? <unknown> + @@ -54,6 +58,7 @@ BDASHSMR 19?? <unknown> + @@ -65,6 +70,7 @@ BLDRDASH 19?? <unknown> + @@ -76,6 +82,7 @@ BOMBARD 19?? <unknown> + @@ -87,6 +94,7 @@ BOX 19?? <unknown> + @@ -98,6 +106,7 @@ BUCK_ROG 19?? <unknown> + @@ -109,6 +118,7 @@ CHESS 19?? <unknown> + @@ -120,6 +130,7 @@ CHUDOV 19?? <unknown> + @@ -131,6 +142,7 @@ CIRK 19?? <unknown> + @@ -142,6 +154,7 @@ CROCET 19?? <unknown> + @@ -153,6 +166,7 @@ CROSSFIR 19?? <unknown> + @@ -164,6 +178,7 @@ DESCENT 19?? <unknown> + @@ -175,6 +190,7 @@ DIGGER 19?? <unknown> + @@ -186,6 +202,7 @@ ENGL 19?? <unknown> + @@ -197,6 +214,7 @@ FOOTBALL 19?? <unknown> + @@ -208,6 +226,7 @@ FOXHUNT 19?? <unknown> + @@ -219,6 +238,7 @@ FROGGI15 19?? <unknown> + @@ -230,6 +250,7 @@ GONKI 19?? <unknown> + @@ -241,6 +262,7 @@ GORODKI 19?? <unknown> + @@ -252,6 +274,7 @@ KLAD 19?? <unknown> + @@ -263,6 +286,7 @@ KOLOBOK 19?? <unknown> + @@ -274,6 +298,7 @@ KOMMUTAT 19?? <unknown> + @@ -285,6 +310,7 @@ LANDMINE 19?? <unknown> + @@ -296,6 +322,7 @@ LESTN 19?? <unknown> + @@ -307,6 +334,7 @@ LESTNICA 19?? <unknown> + @@ -318,6 +346,7 @@ LIFE 19?? <unknown> + @@ -329,6 +358,7 @@ LIFE1 19?? <unknown> + @@ -340,6 +370,7 @@ LIQSKY 19?? <unknown> + @@ -351,6 +382,7 @@ LODERUN 19?? <unknown> + @@ -362,6 +394,7 @@ LRUNNER 19?? <unknown> + @@ -373,6 +406,7 @@ MARAFON 19?? <unknown> + @@ -384,6 +418,7 @@ MARS 19?? <unknown> + @@ -395,6 +430,7 @@ MARS (Alt) 19?? <unknown> + @@ -406,6 +442,7 @@ MARSH2 19?? <unknown> + @@ -417,6 +454,7 @@ MESH 19?? <unknown> + @@ -428,6 +466,7 @@ MIRAGE 19?? <unknown> + @@ -439,6 +478,7 @@ MUS1 19?? <unknown> + @@ -450,6 +490,7 @@ MUS2 19?? <unknown> + @@ -461,6 +502,7 @@ MUS3 19?? <unknown> + @@ -472,6 +514,7 @@ MUS4 19?? <unknown> + @@ -483,6 +526,7 @@ MUS5 19?? <unknown> + @@ -494,6 +538,7 @@ MUS6 19?? <unknown> + @@ -505,6 +550,7 @@ MUS7 19?? <unknown> + @@ -516,6 +562,7 @@ MUSICBOX 19?? <unknown> + @@ -527,6 +574,7 @@ NESUSHKA 19?? <unknown> + @@ -538,6 +586,7 @@ NIM 19?? <unknown> + @@ -549,6 +598,7 @@ PACMAN 19?? <unknown> + @@ -560,6 +610,7 @@ PACMAN2 19?? <unknown> + @@ -571,6 +622,7 @@ PANIKA 19?? <unknown> + @@ -582,6 +634,7 @@ PENTIS 19?? <unknown> + @@ -593,6 +646,7 @@ PIF 19?? <unknown> + @@ -604,6 +658,7 @@ PINGPONG 19?? <unknown> + @@ -615,6 +670,7 @@ PLANETA 19?? <unknown> + @@ -626,6 +682,7 @@ POGONIA 19?? <unknown> + @@ -637,6 +694,7 @@ PVO87 19?? <unknown> + @@ -648,6 +706,7 @@ RALLI 19?? <unknown> + @@ -659,6 +718,7 @@ RALSLAL 19?? <unknown> + @@ -670,6 +730,7 @@ REDFLWR 19?? <unknown> + @@ -681,6 +742,7 @@ REIN 19?? <unknown> + @@ -692,6 +754,7 @@ RIKOSHET 19?? <unknown> + @@ -703,6 +766,7 @@ RISE 19?? <unknown> + @@ -714,6 +778,7 @@ SABOTEUR 19?? <unknown> + @@ -725,6 +790,7 @@ SAD 19?? <unknown> + @@ -736,6 +802,7 @@ SHAHTY 19?? <unknown> + @@ -747,6 +814,7 @@ SHASHKI 19?? <unknown> + @@ -758,6 +826,7 @@ SHMEL 19?? <unknown> + @@ -769,6 +838,7 @@ SHTURM 19?? <unknown> + @@ -780,6 +850,7 @@ SKACHKI 19?? <unknown> + @@ -791,6 +862,7 @@ SKALOED 19?? <unknown> + @@ -802,6 +874,7 @@ SLAMS 19?? <unknown> + @@ -813,6 +886,7 @@ SNAKE 19?? <unknown> + @@ -824,6 +898,7 @@ SOS 19?? <unknown> + @@ -835,6 +910,7 @@ SPBATTLE 19?? <unknown> + @@ -846,6 +922,7 @@ SPINSECT 19?? <unknown> + @@ -857,6 +934,7 @@ SPYSDEM 19?? <unknown> + @@ -868,6 +946,7 @@ STAKAN 19?? <unknown> + @@ -879,6 +958,7 @@ STELBI 19?? <unknown> + @@ -890,6 +970,7 @@ STENA 19?? <unknown> + @@ -901,6 +982,7 @@ STONEFLD 19?? <unknown> + @@ -912,6 +994,7 @@ TARELKI 19?? <unknown> + @@ -923,6 +1006,7 @@ TENNIS 19?? <unknown> + @@ -934,6 +1018,7 @@ TETRIS 19?? <unknown> + @@ -945,6 +1030,7 @@ TORPATT 19?? <unknown> + @@ -956,6 +1042,7 @@ TRASINA 19?? <unknown> + @@ -967,6 +1054,7 @@ TULPAN 19?? <unknown> + @@ -978,6 +1066,7 @@ UDAV 19?? <unknown> + @@ -989,6 +1078,7 @@ UTKA 19?? <unknown> + @@ -1000,6 +1090,7 @@ WOOD 19?? <unknown> + @@ -1011,6 +1102,7 @@ XONIXZM 19?? <unknown> + @@ -1022,6 +1114,7 @@ XTRO 19?? <unknown> + @@ -1036,6 +1129,7 @@ BASGRAPH 19?? <unknown> + @@ -1047,6 +1141,7 @@ BASMICR 19?? <unknown> + @@ -1058,6 +1153,7 @@ BASMSX 19?? <unknown> + @@ -1069,6 +1165,7 @@ BASRK 19?? <unknown> + @@ -1080,6 +1177,7 @@ DUMPRED 19?? <unknown> + @@ -1091,6 +1189,7 @@ GRAPHRED 19?? <unknown> + @@ -1102,6 +1201,7 @@ POISK 19?? <unknown> + @@ -1113,6 +1213,7 @@ PROVERKA 19?? <unknown> + @@ -1124,6 +1225,7 @@ RECORDER 19?? <unknown> + @@ -1135,6 +1237,7 @@ REDASM 19?? <unknown> + @@ -1146,6 +1249,7 @@ REDDSSM 19?? <unknown> + diff -Nru mame-0.223+dfsg.1/hash/apple1.xml mame-0.224+dfsg.1/hash/apple1.xml --- mame-0.223+dfsg.1/hash/apple1.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/apple1.xml 2020-08-26 08:57:19.000000000 +0000 @@ -2,6 +2,24 @@ diff -Nru mame-0.223+dfsg.1/hash/apple2_cass.xml mame-0.224+dfsg.1/hash/apple2_cass.xml --- mame-0.223+dfsg.1/hash/apple2_cass.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/apple2_cass.xml 2020-08-26 08:57:19.000000000 +0000 @@ -6,10 +6,14 @@ - diff -Nru mame-0.223+dfsg.1/hash/apple2_flop_clcracked.xml mame-0.224+dfsg.1/hash/apple2_flop_clcracked.xml --- mame-0.223+dfsg.1/hash/apple2_flop_clcracked.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/apple2_flop_clcracked.xml 2020-08-26 08:57:19.000000000 +0000 @@ -13,12 +13,21 @@ Set "colorme" (Color Me) is missing Tink Tonk Side B. Set "mfamilyr" (Marty's Family Reader) is missing disks #1, 2, and 7. Set "mthtutsb" (Math Tutor: Subtraction) is missing disk #1. - Set "pgrammar" (Practical Grammar) is missing disks #1-13. + Set "prcgramr" (Practical Grammar) is missing disks #1-13. Set "qmile41" (The Quarter Mile (Version 4.1) is missing disks #1, 4, and 5. Set "succread" (Success with Reading) is thought to be missing story A/B. Set "sentdiag" (Sentence Diagramming) is missing disk #5. Set "schlread" (Scholastic Reading Comprehension) is likely missing several. Set "basfrcc" (Basic Fraction Concepts) is missing side A. + Set "shvrbgl3" (Scoring Higher: Verbal Grade Level 3) is missing disk 12. + Set "frogdog2" (Frogs, Dogs, Kittens, and Kids 2 (Version 10.18.88)) may be + missing disks 1-3, but it is unknown if those exist. + Set "matactl4" (Mathematics Activities Courseware Level 4) is missing + disk 1. Disk 2 does boot, so it's usable. Is there a disk 3? + Set "matactl6" (Mathematics Activities Courseware Level 6) may be missing + disks A and B. Disk C does boot, so it's usable. + Set "asatprep" (ARCO Computer Preparation for the SAT) is missing + disks 1, 2, and 7. --> @@ -26,7 +35,6 @@ 1983 Learning Seed Company - @@ -40,7 +48,6 @@ 1986 Microcomputer Workshops - @@ -54,7 +61,6 @@ 1987 Origin Systems - @@ -75,7 +81,6 @@ 1984 Bitcards - @@ -95,7 +100,6 @@ Alcazar the Forgotten Fortress (cleanly cracked) 1985 Activision - @@ -109,7 +113,6 @@ 1982 Datamost - @@ -122,7 +125,6 @@ The American Challenge (cleanly cracked) 1986 Mindscape - @@ -135,7 +137,6 @@ Battle Chess (cleanly cracked) 1990 Interplay - @@ -156,7 +157,6 @@ 1988 Data East - @@ -177,7 +177,6 @@ 1983 Micro Education - @@ -198,7 +197,6 @@ 1987 D.C. Heath and Company - @@ -212,7 +210,6 @@ 1988 Taito America / NovaLogic - @@ -232,7 +229,6 @@ Countdown to Shutdown (cleanly cracked) 1985 Activision - @@ -246,7 +242,6 @@ 1984 Reader's Digest Software - @@ -259,7 +254,6 @@ Crisis Mountain (cleanly cracked) 1982 Synergistic Software - @@ -272,7 +266,6 @@ Where in Time is Carmen Sandiego (Version 1.1) (cleanly cracked) 1989 Broderbund Software - @@ -304,7 +297,6 @@ Where in Time is Carmen Sandiego (Version 1.1) (800K 3.5") (cleanly cracked) 1989 Broderbund Software - @@ -317,7 +309,6 @@ Where in Time is Carmen Sandiego (Version 1.0) (cleanly cracked) 1989 Broderbund Software - @@ -349,7 +340,6 @@ Dungeon Master's Assistant (cleanly cracked) 1988 Strategic Simulations - @@ -369,7 +359,6 @@ Genesis (cleanly cracked) 1983 Datasoft / Design Labs - @@ -383,7 +372,6 @@ Ghostbusters (cleanly cracked) 1984 Activision - @@ -396,7 +384,6 @@ Hardball (cleanly cracked) 1985 Accolade - @@ -409,7 +396,6 @@ Hard Hat Mack (cleanly cracked) 1983 Electronic Arts - @@ -422,7 +408,6 @@ Law of the West (cleanly cracked) 1985 Accolade - @@ -436,7 +421,6 @@ 1985 Activision - @@ -449,7 +433,6 @@ Miner 2049er (cleanly cracked) 1982 Micro Fun - @@ -464,7 +447,6 @@ 1985 Datasoft - @@ -479,7 +461,6 @@ 1983 Atari - @@ -493,7 +474,6 @@ 1983 Atari - @@ -507,7 +487,6 @@ 1983 Datasoft - @@ -521,7 +500,6 @@ 1983 Thunder Mountain - @@ -535,7 +513,6 @@ 1986 Mindscape / Atari - @@ -548,7 +525,6 @@ Pigpen (cleanly cracked) 1982 Datamost / TMQ Software - @@ -561,7 +537,6 @@ Pipe Dream (cleanly cracked) 1990 Lucasfilm - @@ -574,7 +549,6 @@ Qix (cleanly cracked) 1989 Taito - @@ -588,7 +562,6 @@ 1985 Mindscape - @@ -602,7 +575,6 @@ 1985 Mindscape - @@ -615,7 +587,6 @@ Rampage (cleanly cracked) 1988 Activision - @@ -626,10 +597,9 @@ Renegade (cleanly cracked) - 1988 Taito America / NovaLogic - + @@ -649,7 +619,6 @@ Shanghai (cleanly cracked) 1986 Activision - @@ -662,7 +631,6 @@ Sneakers (cleanly cracked) 1981 Sirius Software - @@ -675,7 +643,6 @@ Spindizzy (cleanly cracked) 1986 Activision - @@ -688,7 +655,6 @@ Tapper (cleanly cracked) 1983 Bally/Midway - @@ -702,10 +668,11 @@ Thief (cleanly cracked) 1981 Datamost - - - - + + @@ -718,7 +685,6 @@ Xevious (cleanly cracked) 1983 Mindscape - @@ -731,7 +697,6 @@ 1-2-3 Sequence Me (cleanly cracked) 1991 Sunburst Communications - @@ -745,7 +710,6 @@ 1987 Mindplay - @@ -766,7 +730,6 @@ 1987 Mindplay - @@ -787,7 +750,6 @@ 1985 Scott, Foresman and Company - @@ -800,7 +762,7 @@ Mathematics Courseware Series: Addition and Subtraction 2 (cleanly cracked) 1985 Scott, Foresman and Company - + @@ -814,7 +776,6 @@ 1986 Alfred Publishing Company - @@ -828,7 +789,6 @@ 1984 Scholastic - @@ -842,7 +802,6 @@ 1984 NeoSoft - @@ -856,7 +815,6 @@ 1985 Windham Classics - @@ -877,7 +835,6 @@ 1982 Edu-Ware - @@ -892,7 +849,6 @@ Davidson & Associates, Inc. - @@ -925,7 +881,6 @@ 1987 Sunburst Communications - @@ -939,7 +894,6 @@ 1982 Developmental Learning Materials - @@ -975,7 +929,6 @@ 1985 Unicorn Software - @@ -997,7 +950,6 @@ Taito America - @@ -1010,7 +962,7 @@ BallBlazer (cleanly cracked) 1985 Lucasfilm Games - + @@ -1024,7 +976,6 @@ 1986 Abraxas Basic Courseware - @@ -1037,7 +988,7 @@ Basic Vocabulary Builder Demo (cleanly cracked) 1984 National Textbook Company - + @@ -1051,7 +1002,6 @@ 1981 Sirius Software - @@ -1065,7 +1015,6 @@ 1991 Queue - @@ -1098,7 +1047,6 @@ 1985 Quest Learning Systems - @@ -1112,7 +1060,6 @@ 1985 Quest Learning Systems - @@ -1125,7 +1072,7 @@ Binomial Multiplication (Mindscape) (cleanly cracked) 1984 Mindscape - + @@ -1138,8 +1085,8 @@ Blazing Paddles (cleanly cracked) 1985 Baudville + - @@ -1152,7 +1099,7 @@ Bumble Games (cleanly cracked) 1982 The Learning Company - + @@ -1165,7 +1112,7 @@ Boppie's Great Word Chase (cleanly cracked) 1985 Developmental Learning Materials - + @@ -1178,7 +1125,7 @@ Bounce (cleanly cracked) 1988 Sunburst Communications - + @@ -1191,7 +1138,7 @@ Bridge 4.0 (cleanly cracked) 1983 Artworx - + @@ -1205,7 +1152,6 @@ 1982 Mattel Electronics - @@ -1219,7 +1165,6 @@ 1983 Atarisoft - @@ -1233,7 +1178,6 @@ 1987 Epyx - @@ -1254,7 +1198,6 @@ 1986 Hartley Courseware, Inc. - @@ -1268,7 +1211,6 @@ 1986 Troll Associates - @@ -1281,7 +1223,7 @@ Cat 'n Mouse (cleanly cracked) 1986 Mindplay - + @@ -1294,7 +1236,7 @@ Centipede (cleanly cracked) 1983 Atarisoft - + @@ -1308,7 +1250,6 @@ 1989 Developmental Learning Materials - @@ -1329,7 +1270,6 @@ 1989 Developmental Learning Materials - @@ -1349,7 +1289,7 @@ Challenge Math (cleanly cracked) 1982 Sunburst Communications - + @@ -1363,7 +1303,6 @@ 1985 Random House - @@ -1384,7 +1323,6 @@ 1984 Random House - @@ -1405,7 +1343,6 @@ 1984 Broderbund Software - @@ -1419,7 +1356,6 @@ 1986 Epyx - @@ -1440,7 +1376,6 @@ 1985 The Math Lab - @@ -1453,7 +1388,7 @@ Classifying Animals with Backbones (cleanly cracked) 1985 D.C. Heath and Company - + @@ -1466,7 +1401,7 @@ ClassMate (cleanly cracked) 1987 Davidson and Associates - + @@ -1479,9 +1414,10 @@ Color Me (cleanly cracked) 1985 Mindscape - - + + + @@ -1514,7 +1450,6 @@ 1987 Data East - @@ -1528,7 +1463,6 @@ 1982 Edu-Ware Services Inc. - @@ -1543,7 +1477,6 @@ 1984 Datasoft - @@ -1569,7 +1502,7 @@ Cotton Tales (cleanly cracked) 1987 Mindplay - + @@ -1582,7 +1515,7 @@ Creature Creator (cleanly cracked) 1983 DesignWare - + @@ -1596,7 +1529,6 @@ 1988 Pelican Software - @@ -1617,7 +1549,6 @@ 1983 Davka Corporation - @@ -1631,7 +1562,6 @@ 1983 DesignWare - @@ -1645,7 +1575,6 @@ 1988 Epyx - @@ -1659,7 +1588,6 @@ 1986 Developmental Learning Materials - @@ -1673,7 +1601,6 @@ 1982 Edu-Ware - @@ -1686,7 +1613,7 @@ Defender (cleanly cracked) 1983 Atarisoft - + @@ -1700,7 +1627,6 @@ 1982 Spinnaker - @@ -1714,7 +1640,6 @@ 1983 Atarisoft - @@ -1728,7 +1653,6 @@ 1983 Thunder Mountain - @@ -1742,7 +1666,6 @@ 1992 Troll Associates - @@ -1756,7 +1679,6 @@ 1983 Micro Fun - @@ -1770,7 +1692,6 @@ 1984 Advanced Ideas, Inc. - @@ -1784,7 +1705,6 @@ 1988 Epyx - @@ -1797,7 +1717,7 @@ Donkey Kong (cleanly cracked) 1983 Atarisoft - + @@ -1811,7 +1731,6 @@ 1982 Screenplay - @@ -1825,7 +1744,6 @@ 1984 Mindplay - @@ -1838,7 +1756,7 @@ Design Your Own Home: Architectural Design (cleanly cracked) 1984 Avant-Garde Publishing Corp. - + @@ -1864,7 +1782,7 @@ Design Your Own Home: Interior Design (cleanly cracked) 1986 Avant-Garde Publishing Corp. - + @@ -1891,7 +1809,6 @@ 1984 Springboard Software - @@ -1904,7 +1821,7 @@ Easy Reader Demo (cleanly cracked) 1983 American Educational Computer, Inc. - + @@ -1937,7 +1854,6 @@ 1988 Mindplay - @@ -1952,7 +1868,6 @@ Polarware - @@ -1966,7 +1881,6 @@ 1985 Grolier - @@ -1987,7 +1901,6 @@ 1982 Springboard Software - @@ -2001,7 +1914,6 @@ 1985 DesignWare, Inc. - @@ -2015,7 +1927,6 @@ 1988 Sunburst Communications - @@ -2029,7 +1940,6 @@ 1984 Mindscape - @@ -2042,7 +1952,7 @@ Facemaker (cleanly cracked) 1982 Spinnaker - + @@ -2056,7 +1966,6 @@ 1981 Piccadilly Software - @@ -2070,7 +1979,6 @@ 1983 Methods & Solutions - @@ -2084,7 +1992,6 @@ 1983 Methods & Solutions - @@ -2098,7 +2005,6 @@ 1984 Mindscape - @@ -2112,7 +2018,6 @@ 1981 Advanced Operating Systems - @@ -2126,7 +2031,6 @@ 1983 Microcomputer Workships Courseware - @@ -2140,7 +2044,6 @@ 1983 The Computer Colorworks - @@ -2154,7 +2057,6 @@ 1990 Queue, Inc. - @@ -2175,7 +2077,6 @@ 1985 Sunburst Communications - @@ -2189,7 +2090,6 @@ 1989 Mindplay - @@ -2203,7 +2103,6 @@ 1987 Silver Burdett Company - @@ -2217,7 +2116,6 @@ 19?? Opportunities For Learning - @@ -2238,7 +2136,6 @@ 1984 Developmental Learning Materials - @@ -2252,7 +2149,6 @@ 1982 Control Data Corporation - @@ -2265,7 +2161,7 @@ Frogs, Dogs, Kittens, and Kids 1 (cleanly cracked) 1988 Hartley Courseware - + @@ -2292,7 +2188,6 @@ 1984 Sega Enterprises Inc. - @@ -2306,7 +2201,6 @@ 1981 Sierra On-Line - @@ -2320,7 +2214,6 @@ 1985 Scott, Foresman and Company - @@ -2334,7 +2227,6 @@ 1983 Atarisoft - @@ -2348,7 +2240,6 @@ 1983 Thunder Mountain - @@ -2362,7 +2253,6 @@ 1985 Random House - @@ -2382,7 +2272,7 @@ Gene Machine (Version 2.0) (cleanly cracked) 1983 HRM Software - + @@ -2395,7 +2285,7 @@ Gertrude's Secrets (Version 1.2) (cleanly cracked) 1982 The Learning Company - + @@ -2409,7 +2299,6 @@ 1986 Davidson & Associates, Inc. - @@ -2430,7 +2319,6 @@ 1987 Davidson & Associates, Inc. - @@ -2452,7 +2340,7 @@ Grammar Mastery II (cleanly cracked) 1987 American Language Academy - + @@ -2563,7 +2451,6 @@ 1986 Activision - @@ -2577,7 +2464,6 @@ 1984 Atarisoft - @@ -2591,7 +2477,6 @@ 1984 Microcomputer Workshops Courseware - @@ -2605,7 +2490,6 @@ 1985 The Avalon Hill Game Company - @@ -2618,7 +2502,8 @@ Gumball (cleanly cracked) 1983 Broderbund Software - + + @@ -2632,7 +2517,6 @@ 1983 HRM Software - @@ -2646,7 +2530,6 @@ 1983 Spinnaker - @@ -2660,7 +2543,6 @@ 1985 Spinnaker - @@ -2705,7 +2587,6 @@ 1988 Scholastic - @@ -2726,7 +2607,6 @@ 1988 Decision Development - @@ -2747,7 +2627,6 @@ 1987 Sunburst Communications - @@ -2761,7 +2640,6 @@ 1988 Epyx - @@ -2805,7 +2683,6 @@ 1985 HRM Software - @@ -2824,7 +2701,6 @@ 1988 Mindscape - @@ -2838,7 +2714,6 @@ 1983 Epyx - @@ -2858,7 +2733,7 @@ Jungle Hunt (cleanly cracked) 1984 Atarisoft - + @@ -2871,7 +2746,7 @@ Ken Uston's Professional Blackjack (Version 1.23) (cleanly cracked) 1983 Intelligent Statements, Inc. - + @@ -2885,7 +2760,6 @@ 1983 Spinnaker - @@ -2899,7 +2773,6 @@ 1983 Spinnaker - @@ -2912,7 +2785,7 @@ Kittens, Kids, and a Frog (Version 01.11.85) (cleanly cracked) 1985 Hartley Courseware, Inc. - + @@ -2933,7 +2806,6 @@ 1987 Academic Hallmarks - @@ -2947,7 +2819,6 @@ 1981 Krell - @@ -2974,7 +2845,6 @@ 1986 Sunburst Communications - @@ -2988,7 +2858,6 @@ 1984 Hartley Courseware - @@ -3002,7 +2871,6 @@ 1984 Hartley Courseware - @@ -3029,7 +2897,6 @@ 1983 Space-Time Associates - @@ -3043,7 +2910,6 @@ 1990 General Quarters Software - @@ -3062,7 +2928,6 @@ 1980 Avant-Garde Creations - @@ -3076,7 +2941,6 @@ 1981 Applecart Programs for Education - @@ -3158,7 +3022,6 @@ 1982 Krell Software - @@ -3174,7 +3037,6 @@ 1985 Windham Classics - @@ -3193,7 +3055,6 @@ 1985 Alfred Publishing Company - @@ -3214,7 +3075,6 @@ 1984 Edu-Ware - @@ -3228,7 +3088,6 @@ 1981 Edu-Ware - @@ -3242,7 +3101,6 @@ 1983 Edu-Ware - @@ -3256,7 +3114,6 @@ 1983 Edu-Ware - @@ -3270,7 +3127,6 @@ 1983 Edu-Ware - @@ -3284,7 +3140,6 @@ 1984 Peachtree Software - @@ -3298,7 +3153,6 @@ 1984 Peachtree Software - @@ -3312,7 +3166,6 @@ 1985 Davidson & Associates - @@ -3333,7 +3186,6 @@ 1982 Developmental Learning - @@ -3347,7 +3199,6 @@ 1982 Developmental Learning - @@ -3361,7 +3212,6 @@ 1985 Developmental Learning - @@ -3375,9 +3225,8 @@ 1984 Josten Learning Systems - - + @@ -3398,7 +3247,6 @@ 1987 Unicorn Software - @@ -3422,7 +3270,6 @@ 1983 Davka Corporation - @@ -3446,7 +3293,6 @@ 1984 Developmental Learning - @@ -3460,7 +3306,6 @@ 1982 Developmental Learning - @@ -3474,7 +3319,6 @@ 1982 Developmental Learning - @@ -3488,7 +3332,6 @@ 1984 Troll Associates - @@ -3502,7 +3345,6 @@ 1983 Reader's Digest Software - @@ -3516,7 +3358,6 @@ 1983 South-Western Publishing Co. - @@ -3530,7 +3371,6 @@ 1983 South-Western Publishing Co. - @@ -3544,7 +3384,6 @@ 1984 Intellectual Software - @@ -3558,7 +3397,6 @@ 1980 Milliken Publishing - @@ -3572,7 +3410,6 @@ 1983 Methods & Solutions - @@ -3586,7 +3423,6 @@ 1985 Litag - @@ -3600,7 +3436,6 @@ 1986 Activision - @@ -3645,7 +3480,6 @@ 1985 Activision - @@ -3690,7 +3524,6 @@ 1984 Mindscape - @@ -3704,7 +3537,6 @@ 1985 Intellectual Software - @@ -3743,7 +3575,6 @@ 1984 Micro Learningware - @@ -3757,7 +3588,6 @@ 1986 Microcomputer Workshops - @@ -3771,7 +3601,6 @@ 1984 Hartley Courseware - @@ -3788,9 +3617,8 @@ Ancient Legends (cleanly cracked) 2016 - none(*) + No Publisher - @@ -3832,7 +3659,6 @@ 1985 Learning Technologies - @@ -3846,7 +3672,6 @@ 1989 Hartley Courseware - @@ -3860,7 +3685,6 @@ 1989 Hartley Courseware - @@ -3874,7 +3698,6 @@ 1986 Broderbund Software - @@ -3907,7 +3730,6 @@ 1983 Datamost - @@ -3921,7 +3743,6 @@ 1983 MUSE Software - @@ -3942,7 +3763,6 @@ 1987 Hartley Courseware - @@ -3956,7 +3776,6 @@ 1987 Hartley Courseware - @@ -3970,7 +3789,6 @@ 1983 Parrot Software - @@ -3984,7 +3802,6 @@ 1983 Parrot Software - @@ -3998,7 +3815,6 @@ 1983 Parrot Software - @@ -4012,7 +3828,6 @@ 1985 Parrot Software - @@ -4026,7 +3841,6 @@ 1983 Sierra On-Line - @@ -4040,10 +3854,9 @@ 1983 Shawnee Mission Unified School District - + the "Property of A.V. Repair USD 512" text. --> @@ -4057,7 +3870,6 @@ 1981 Apple Computer - @@ -4071,7 +3883,6 @@ 1982 Synergistic Software - @@ -4085,7 +3896,6 @@ 1983 Sierra On-Line - @@ -4099,7 +3909,6 @@ 1984 Penguin Software - @@ -4113,7 +3922,6 @@ 1984 Electronic Arts - @@ -4127,7 +3935,6 @@ 1985 Electronic Arts - @@ -4141,8 +3948,8 @@ 1984 ARCO Publishing - - + @@ -4193,7 +4000,6 @@ 1986 Electronic Arts - @@ -4207,7 +4013,6 @@ 1983 Datamost - @@ -4221,7 +4026,6 @@ 1984 Border Software - @@ -4235,7 +4039,6 @@ 1983 Datamost - @@ -4249,7 +4052,6 @@ 1983 Parrot Software - @@ -4263,7 +4065,6 @@ 1981 I.M.C. - @@ -4277,7 +4078,6 @@ 1988 Advanced Ideas - @@ -4316,7 +4116,6 @@ 1985 Origin Software - @@ -4335,7 +4134,6 @@ 1983 Electronic Arts - @@ -4349,7 +4147,6 @@ 1984 Blue Ridge Software - @@ -4384,7 +4181,6 @@ 1986 Mindplay - @@ -4398,7 +4194,6 @@ 1985 Mindscape - @@ -4417,7 +4212,6 @@ 1985 Mindscape - @@ -4436,7 +4230,6 @@ 1984 Scholastic - @@ -4455,7 +4248,6 @@ 1992 Queue - @@ -4484,7 +4276,6 @@ 1992 Queue - @@ -4513,7 +4304,6 @@ 1984 Scholastic - @@ -4527,7 +4317,6 @@ 1985 Blue Chip Software - @@ -4546,7 +4335,6 @@ 1986 Media Materials - @@ -4560,7 +4348,6 @@ 1990 Jostens Learning Corporation - @@ -4574,7 +4361,6 @@ 1990 Jostens Learning Corporation - @@ -4588,7 +4374,6 @@ 1985 Prescription Learning - @@ -4602,7 +4387,6 @@ 1986 Hearlihy & Co. - @@ -4616,7 +4400,6 @@ 1980 K-12 Micro Media - @@ -4630,7 +4413,6 @@ 1983 Encyclopaedia Britannica - @@ -4644,7 +4426,6 @@ 1983 Encyclopaedia Britannica - @@ -4658,7 +4439,6 @@ 1983 Encyclopaedia Britannica - @@ -4682,7 +4462,6 @@ 1983 Encyclopaedia Britannica - @@ -4696,7 +4475,6 @@ 1983 Encyclopaedia Britannica - @@ -4720,7 +4498,6 @@ 1984 Educational Activities - @@ -4734,7 +4511,6 @@ 1981 Random House - @@ -4748,7 +4524,6 @@ 1981 Random House - @@ -4762,7 +4537,6 @@ 1981 Random House - @@ -4776,7 +4550,6 @@ 1985 Prescription Learning - @@ -4790,7 +4563,6 @@ 1984 National Textbook Company - @@ -4809,7 +4581,6 @@ 1985 Strategic Simulations - @@ -4823,7 +4594,6 @@ 1987 Strategic Simulations - @@ -4842,7 +4612,6 @@ 1982 Strategic Simulations - @@ -4856,7 +4625,6 @@ 1986 Strategic Simulations - @@ -4875,7 +4643,6 @@ 1985 Strategic Simulations - @@ -4894,7 +4661,6 @@ 1982 Milliken Publishing Company - @@ -4908,7 +4674,6 @@ 1983 Sierra On-Line - @@ -4922,7 +4687,6 @@ 1985 Methods and Solutions - @@ -4936,7 +4700,6 @@ 1982 Hayden Book Company - @@ -4950,7 +4713,6 @@ 1984 Windham Classics - @@ -4969,7 +4731,6 @@ 1983 Berserker Works - @@ -4983,7 +4744,6 @@ 1983 Search Software - @@ -4997,7 +4757,6 @@ 1986 Santa Barbara Softworks - @@ -5016,7 +4775,6 @@ 1990 Queue - @@ -5045,7 +4803,6 @@ 1983 SoftArt Games - @@ -5059,7 +4816,6 @@ 1985 Learning Technologies - @@ -5073,7 +4829,6 @@ 1985 Quest Learning Systems - @@ -5087,7 +4842,6 @@ 1986 Microcomputer Workshops - @@ -5101,7 +4855,6 @@ 1986 D.C. Heath and Company - @@ -5115,7 +4868,6 @@ 1984 Troll Associates - @@ -5129,7 +4881,6 @@ 1987 Sunburst Communications - @@ -5165,7 +4916,6 @@ 1982 Synergistic Software - @@ -5179,7 +4929,6 @@ 1982 Strategic Simulations - @@ -5193,7 +4942,6 @@ 1985 Activision - @@ -5212,7 +4960,6 @@ 1984 Electronic Arts - @@ -5226,7 +4973,6 @@ 1987 Epyx - @@ -5240,7 +4986,6 @@ 1983 Penguin Software - @@ -5254,7 +4999,6 @@ 1984 Society for Visual Education - @@ -5268,7 +5012,6 @@ 1987 Great Game Products - @@ -5282,7 +5025,6 @@ 1984 Centurion Software - @@ -5296,7 +5038,6 @@ 1985 Josten Learning Systems - @@ -5315,7 +5056,6 @@ 1984 Centurion Software - @@ -5329,7 +5069,6 @@ 1992 Queue - @@ -5358,7 +5097,6 @@ 1992 Queue - @@ -5387,7 +5125,6 @@ 1982 Apple Computer - @@ -5401,7 +5138,6 @@ 1982 The Learning Company - @@ -5415,7 +5151,6 @@ 1982 On-Line Systems - @@ -5429,7 +5164,6 @@ 1982 Hartley Courseware - @@ -5453,7 +5187,6 @@ 1987 Hartley Courseware - @@ -5467,7 +5200,6 @@ 1987 Hartley Courseware - @@ -5481,7 +5213,6 @@ 1984 Gamco Industries - @@ -5495,7 +5226,6 @@ 1985 Optimum Resource - @@ -5509,7 +5239,6 @@ 1985 Optimum Resource - @@ -5523,7 +5252,6 @@ 1985 Optimum Resource - @@ -5537,7 +5265,6 @@ 1983 Strategic Simulations - @@ -5551,7 +5278,6 @@ 1981 Strategic Simulations - @@ -5565,7 +5291,6 @@ 1986 Troll Associates - @@ -5579,7 +5304,6 @@ 1981 MUSE Software - @@ -5593,7 +5317,6 @@ 1986 Mindplay - @@ -5607,7 +5330,6 @@ 1986 Mindplay - @@ -5621,7 +5343,6 @@ 1983 Houghton Mifflin - @@ -5635,7 +5356,6 @@ 1988 Troll Associates - @@ -5649,7 +5369,6 @@ 1986 Conduit Educational Software - @@ -5663,7 +5382,6 @@ 1984 Troll Associates - @@ -5677,7 +5395,6 @@ 1988 Troll Associates - @@ -5691,7 +5408,6 @@ 1985 Hartley Courseware - @@ -5710,7 +5426,6 @@ 1990 Broderbund Software - @@ -5749,7 +5464,6 @@ 1983 Adventure International - @@ -5763,7 +5477,6 @@ 1984 Milliken Publishing Company - @@ -5777,7 +5490,6 @@ 1986 Activision - @@ -5798,7 +5510,6 @@ 1982 Hayden Software - @@ -5812,7 +5523,6 @@ 1990 Jostens Learning Corporation - @@ -5826,7 +5536,6 @@ 1990 Jostens Learning Corporation - @@ -5840,7 +5549,6 @@ 1989 Hartley Courseware - @@ -5861,7 +5569,6 @@ 1986 Microcomputer Workshops - @@ -5875,7 +5582,6 @@ 1983 Optimum Resource - @@ -5889,7 +5595,6 @@ 1986 The Continental Press - @@ -5903,7 +5608,6 @@ 1986 Random House - @@ -5917,7 +5621,6 @@ 1983 Hartley Courseware - @@ -5931,7 +5634,6 @@ 1986 Hartley Courseware - @@ -5945,7 +5647,6 @@ 1983 Hartley Courseware - @@ -5959,7 +5660,6 @@ 1985 Learning Technologies - @@ -5973,7 +5673,6 @@ 1985 A/V Concepts Corp. - @@ -6001,7 +5700,6 @@ 1985 Queue - @@ -6015,7 +5713,6 @@ 1983 Milliken Publishing - @@ -6048,7 +5745,6 @@ 1983 Milliken Publishing - @@ -6081,7 +5777,6 @@ 1983 Milliken Publishing - @@ -6114,7 +5809,6 @@ 1981 Krell Software - @@ -6128,7 +5822,6 @@ 1984 College Entrance Exam Board - @@ -6161,7 +5854,6 @@ 1985 Strategic Simulations - @@ -6175,7 +5867,6 @@ 1982 Softsmith - @@ -6189,7 +5880,6 @@ 1986 Bantam Software - @@ -6208,7 +5898,6 @@ 1990 Queue - @@ -6222,7 +5911,6 @@ ???? Phoenix Software - @@ -6236,7 +5924,6 @@ 1984 Centurion Software - @@ -6250,7 +5937,6 @@ ???? None - @@ -6266,7 +5952,6 @@ ???? None - @@ -6282,7 +5967,6 @@ 1982 Behavioral Engineering - @@ -6296,7 +5980,6 @@ 1983 Prescription Learning - @@ -6353,7 +6036,6 @@ 1981 Edu-Ware - @@ -6367,7 +6049,6 @@ 1983 Edu-Ware - @@ -6381,7 +6062,6 @@ 1980 Edu-Ware - @@ -6414,7 +6094,6 @@ 1980 Strategic Simulations - @@ -6428,7 +6107,6 @@ 1982 Strategic Simulations - @@ -6442,7 +6120,6 @@ 1983 Houghton Mifflin Company - @@ -6456,7 +6133,6 @@ 1984 UNKNOWN - @@ -6477,7 +6153,6 @@ 1984 UNKNOWN - @@ -6498,7 +6173,6 @@ 1984 UNKNOWN - @@ -6519,7 +6193,6 @@ 1981 Strategic Simulations - @@ -6533,7 +6206,6 @@ 1981 Science Research Associates - @@ -6554,7 +6226,6 @@ 1981 Science Research Associates - @@ -6568,7 +6239,6 @@ 1981 Science Research Associates - @@ -6582,7 +6252,6 @@ 1981 Science Research Associates - @@ -6596,7 +6265,6 @@ 1981 Science Research Associates - @@ -6610,7 +6278,6 @@ 1983 Science Research Associates - @@ -6624,7 +6291,6 @@ 1981 Science Research Associates - @@ -6638,7 +6304,6 @@ 1982 Addison-Wesley Publishing - @@ -6652,7 +6317,6 @@ 1982 Control Data Corporation - @@ -6666,7 +6330,6 @@ 1981 Strategic Simulations - @@ -6680,7 +6343,6 @@ 1984 College-Hill Press - @@ -6776,7 +6438,6 @@ 1988 Laureate Learning Systems - @@ -6790,7 +6451,6 @@ 1988 Laureate Learning Systems - @@ -6804,7 +6464,6 @@ 1984 Millennium Group Inc. - @@ -6818,7 +6477,6 @@ 1986 Microprose Software - @@ -6841,7 +6499,6 @@ 1981 Rockroy - @@ -6855,7 +6512,6 @@ 1982 Sentient Software - @@ -6869,7 +6525,6 @@ 1983 SEGA Enterprises - @@ -6883,7 +6538,6 @@ 1983 Datamost - @@ -6897,7 +6551,6 @@ 1984 McCarthy-McCormack - @@ -6911,7 +6564,6 @@ 1986 Houghton Mifflin - @@ -6925,7 +6577,6 @@ 1984 Educational Activities - @@ -6939,7 +6590,6 @@ 1984 Langenscheidt Publishers - @@ -6960,7 +6610,6 @@ 1989 Micrograms - @@ -6974,7 +6623,6 @@ 1984 Centurion Software - @@ -6988,7 +6636,6 @@ 1984 Centurion Software - @@ -7002,7 +6649,6 @@ 1985 Grolier Publishing - @@ -7023,7 +6669,6 @@ 1981 On-Line Systems - @@ -7037,7 +6682,6 @@ 1982 Datamost - @@ -7051,7 +6695,6 @@ 1983 Hartley Courseware - @@ -7065,7 +6708,6 @@ 1987 Developmental Learning - @@ -7086,7 +6728,6 @@ 1981 Hartley Software - @@ -7100,7 +6741,6 @@ 1982 The Regents of the University of California - @@ -7121,7 +6761,6 @@ 1986 Sunburst Communications - @@ -7142,7 +6781,6 @@ 1987 Laureate Learning Systems - @@ -7156,7 +6794,6 @@ 1994 Laureate Learning Systems - @@ -7170,7 +6807,6 @@ 1984 Troll Associates - @@ -7184,7 +6820,6 @@ 1982 Hayden Book Company - @@ -7198,7 +6833,6 @@ 1983 Penguin Software - @@ -7212,7 +6846,6 @@ 1987 Didatech Software - @@ -7233,7 +6866,6 @@ 1988 Absolute Entertainment - @@ -7254,7 +6886,6 @@ 1981 Sierra On-Line - @@ -7268,7 +6899,6 @@ 1980 Micro Lab - @@ -7282,7 +6912,6 @@ 1987 Mindplay - @@ -7296,7 +6925,6 @@ 1985 Microprose Software - @@ -7317,7 +6945,6 @@ 1985 Microprose Software - @@ -7331,7 +6958,6 @@ 1981 Epyx - @@ -7345,7 +6971,6 @@ 1984 DesignWare - @@ -7359,7 +6984,6 @@ 1983 DesignWare - @@ -7373,7 +6997,6 @@ 1982 Hayden Book Company - @@ -7387,7 +7010,6 @@ 1983 Micromax - @@ -7401,7 +7023,6 @@ 1989 Developmental Learning - @@ -7422,7 +7043,6 @@ 1981 Random House Micro-Line - @@ -7436,7 +7056,6 @@ 1984 Electronic Arts - @@ -7457,7 +7076,6 @@ 1984 Infocom - @@ -7471,7 +7089,6 @@ 1985 The Avalon Hill Game Company - @@ -7485,7 +7102,6 @@ 1985 Avant-Garde - @@ -7506,7 +7122,6 @@ 1982 Infocom - @@ -7520,7 +7135,6 @@ 1982 Infocom - @@ -7534,7 +7148,6 @@ 1983 Micro-Fun - @@ -7555,7 +7168,6 @@ 1985 Unicorn Software - @@ -7569,7 +7181,6 @@ 1982 Control Data Corporation - @@ -7583,7 +7194,6 @@ 1984 Random House - @@ -7597,7 +7207,6 @@ 1984 Spinnaker Software - @@ -7611,7 +7220,6 @@ 1982 Developmental Learning - @@ -7625,7 +7233,6 @@ 1982 Developmental Learning - @@ -7639,7 +7246,6 @@ 1985 Developmental Learning - @@ -7653,7 +7259,6 @@ 1986 Gamco Industries - @@ -7667,7 +7272,6 @@ 1981 Edu-Ware - @@ -7681,7 +7285,6 @@ 1986 Abracadata Limited - @@ -7708,7 +7311,6 @@ 1987 Abracadata Limited - @@ -7729,7 +7331,6 @@ 1986 Abracadata Limited - @@ -7756,7 +7357,6 @@ 1987 Abracadata - @@ -7777,7 +7377,6 @@ 1988 Designware - @@ -7816,7 +7415,6 @@ 1986 Epyx - @@ -7830,7 +7428,6 @@ 1986 Educational Activities - @@ -7844,7 +7441,6 @@ 1986 Educational Activities - @@ -7858,7 +7454,6 @@ 1984 Aquarius People Materials - @@ -7897,7 +7492,6 @@ 1984 Datasoft - @@ -7911,7 +7505,6 @@ 1992 Troll Associates - @@ -7925,7 +7518,6 @@ 1988 Pelican Software - @@ -7958,7 +7550,6 @@ 1985 Sunburst Communications - @@ -7972,7 +7563,6 @@ 1984 Focus Media - @@ -7986,7 +7576,6 @@ 1983 Queue - @@ -8000,7 +7589,6 @@ 1984 Microcomputer Workshops - @@ -8014,7 +7602,6 @@ 1987 Computer Aided Teaching - @@ -8028,7 +7615,6 @@ 1985 Prescription Learning - @@ -8042,7 +7628,6 @@ 1990 Jostens Learning Corporation - @@ -8056,7 +7641,6 @@ 1990 Jostens Learning Corporation - @@ -8070,7 +7654,6 @@ 1985 Gamco Industries - @@ -8084,7 +7667,6 @@ 1984 Troll Associates - @@ -8098,7 +7680,6 @@ 1986 Sierra On-Line - @@ -8119,7 +7700,6 @@ 1987 Spectrum Holobyte - @@ -8164,7 +7744,6 @@ 1986 Houghton Mifflin - @@ -8178,7 +7757,6 @@ 1985 Hartley Courseware - @@ -8199,7 +7777,6 @@ 1983 Bez - @@ -8213,7 +7790,6 @@ 1986 Hartley Courseware - @@ -8227,7 +7803,6 @@ 1987 Hartley Courseware - @@ -8241,7 +7816,6 @@ 1981 Level-10 - @@ -8255,7 +7829,6 @@ 1982 Developmental Learning - @@ -8269,7 +7842,6 @@ 1982 Developmental Learning - @@ -8283,7 +7855,6 @@ 1983 Sierra On-Line - @@ -8297,7 +7868,6 @@ 1986 Mindplay - @@ -8311,7 +7881,6 @@ 1986 Mindplay - @@ -8325,7 +7894,6 @@ 1983 Border Software - @@ -8339,7 +7907,6 @@ 1985 Hartley Courseware - @@ -8353,7 +7920,6 @@ 1981 Compu-Tations - @@ -8367,7 +7933,6 @@ 1990 Laureate Learning Systems - @@ -8381,7 +7946,6 @@ 1990 Laureate Learning Systems - @@ -8395,7 +7959,6 @@ 1983 Counterpoint Software - @@ -8409,7 +7972,6 @@ 1983 Counterpoint Software - @@ -8423,7 +7985,6 @@ 1984 Baker Book House - @@ -8444,7 +8005,6 @@ 1986 Hartley Courseware - @@ -8465,7 +8025,6 @@ 1987 Electronic Arts - @@ -8492,7 +8051,6 @@ 1982 Adventure International - @@ -8513,7 +8071,6 @@ 1984 Grolier - @@ -8527,7 +8084,6 @@ 1988 Focus Media - @@ -8541,7 +8097,6 @@ 1983 HRM Software - @@ -8555,7 +8110,6 @@ 1986 Heartsoft - @@ -8569,7 +8123,6 @@ 1980 MUSE Software - @@ -8583,7 +8136,6 @@ 1981 Electronic Courseware - @@ -8597,7 +8149,6 @@ 1985 Firebird - @@ -8611,7 +8162,6 @@ 1982 Edu-Ware Services - @@ -8625,7 +8175,6 @@ 1983 Infocom - @@ -8639,7 +8188,6 @@ 1983 Infocom - @@ -8653,7 +8201,6 @@ 1986 Houghton Mifflin - @@ -8667,7 +8214,6 @@ 1989 Gamco Industries - @@ -8688,7 +8234,6 @@ 1983 HRM Software - @@ -8702,7 +8247,6 @@ 1982 Microcomputer Workshops - @@ -8716,7 +8260,6 @@ 1982 Microcomputer Workshops - @@ -8730,7 +8273,6 @@ 1982 Microcomputer Workshops - @@ -8744,7 +8286,6 @@ 1982 Microcomputer Workshops - @@ -8758,7 +8299,6 @@ 1982 Microcomputer Workshops - @@ -8772,7 +8312,6 @@ 1984 Learning Seed Company - @@ -8786,7 +8325,6 @@ 1983 Strategic Simulations - @@ -8800,7 +8338,6 @@ 1981 Sirius Software - @@ -8814,7 +8351,6 @@ 1981 Apple Computer - @@ -8828,7 +8364,6 @@ 1981 Synergistic Software - @@ -8842,7 +8377,6 @@ 1982 Sirius Software - @@ -8856,7 +8390,6 @@ 1989 Gamco Industries - @@ -8877,9 +8410,8 @@ 1985 The Regents/ALA Company - - + + @@ -8898,7 +8430,6 @@ 1990 Gamco Industries - @@ -8919,7 +8450,6 @@ 1992 Gamco Industries - @@ -8940,7 +8470,6 @@ 1983 Penguin Software - @@ -8961,7 +8490,6 @@ 1985 Josten Learning Systems - @@ -8982,7 +8510,6 @@ 1985 Media Materials - @@ -8997,7 +8524,6 @@ 1984 Milton Bradley - @@ -9011,7 +8537,6 @@ 1986 Spinnaker Software - @@ -9025,7 +8550,6 @@ 1985 Hartley Courseware - @@ -9039,7 +8563,6 @@ 1990 Jostens Learning Corporation - @@ -9117,7 +8640,6 @@ 1984 Random House - @@ -9131,7 +8653,6 @@ 1983 DesignWare - @@ -9145,7 +8666,6 @@ 1983 Optimum Resource - @@ -9159,7 +8679,6 @@ 1987 Didatech Software - @@ -9180,7 +8699,6 @@ 1983 McCarthy-McCormack - @@ -9194,7 +8712,6 @@ 1984 Thunder Mountain - @@ -9208,7 +8725,6 @@ 1984 Strategic Simulations - @@ -9229,7 +8745,6 @@ 1984 Strategic Simulations - @@ -9243,7 +8758,6 @@ 1984 Strategic Simulations - @@ -9257,7 +8771,6 @@ 1983 Strategic Simulations - @@ -9271,7 +8784,6 @@ 1984 Human Engineered Software - @@ -9298,7 +8810,6 @@ 1984 Electronic Arts - @@ -9312,7 +8823,6 @@ 1985 Quest Learning Systems - @@ -9326,7 +8836,6 @@ 1992 Troll Associates - @@ -9340,7 +8849,6 @@ 1994 Troll Associates - @@ -9354,7 +8862,6 @@ 1985 Grolier Publishing - @@ -9368,7 +8875,6 @@ 1985 Grolier Publishing - @@ -9382,7 +8888,6 @@ 1986 Laureate Learning Systems - @@ -9396,7 +8901,6 @@ 1986 Laureate Learning Systems - @@ -9410,7 +8914,6 @@ 1992 Critical Thinking Press - @@ -9431,7 +8934,6 @@ 1990 Critical Thinking Press - @@ -9445,7 +8947,6 @@ 1985 Random House - @@ -9459,7 +8960,6 @@ 1986 Focus Media - @@ -9480,7 +8980,6 @@ 1982 Sirius Software - @@ -9494,7 +8993,6 @@ 1982 Vital Information - @@ -9508,7 +9006,6 @@ 1986 Laureate Learning Systems - @@ -9522,7 +9019,6 @@ 1986 Laureate Learning Systems - @@ -9536,7 +9032,6 @@ 1985 Marshfilm - @@ -9550,7 +9045,6 @@ 1983 Gentry Software - @@ -9564,7 +9058,6 @@ 1984 Milliken Publishing - @@ -9578,7 +9071,6 @@ 1984 Unicorn Software - @@ -9592,7 +9084,6 @@ 1990 Jostens Learning Corporation - @@ -9606,7 +9097,6 @@ 1983 Springboard Software - @@ -9620,7 +9110,6 @@ 1983 Spinnaker Software - @@ -9634,7 +9123,6 @@ 1990 Jostens Learning Corporation - @@ -9648,7 +9136,6 @@ 1984 Random House - @@ -9662,7 +9149,6 @@ 1985 Gamco Industries - @@ -9676,7 +9162,6 @@ 1985 Gamco Industries - @@ -9690,7 +9175,6 @@ 1982 Control Data Corporation - @@ -9704,7 +9188,6 @@ 1981 Milliken Publishing - @@ -9718,7 +9201,6 @@ 1984 Grolier Publishing - @@ -9739,7 +9221,6 @@ 1988 Hartley Courseware - @@ -9765,7 +9246,6 @@ 1987 Hartley Courseware - @@ -9779,7 +9259,6 @@ 1986 Learning Well - @@ -9793,7 +9272,6 @@ 1983 Parrot Software - @@ -9807,7 +9285,6 @@ 1982 Random House - @@ -9821,7 +9298,6 @@ 1982 Random House - @@ -9835,7 +9311,6 @@ 1985 Epyx - @@ -9856,7 +9331,6 @@ 1983 Strategic Simulations - @@ -9877,7 +9351,6 @@ 1981 Magna Soft - @@ -9891,7 +9364,6 @@ 1985 Random House - @@ -9905,7 +9377,6 @@ 1985 Random House - @@ -9919,7 +9390,6 @@ 1982 Random House - @@ -9933,7 +9403,6 @@ 1986 Houghton Mifflin Co. - @@ -9966,7 +9435,6 @@ 1986 Houghton Mifflin Co. - @@ -9999,7 +9467,6 @@ 1988 Infocom - @@ -10020,7 +9487,6 @@ 1985 Random House - @@ -10034,7 +9500,6 @@ 1985 Activision - @@ -10055,7 +9520,6 @@ 1986 Activision - @@ -10069,7 +9533,6 @@ 1984 Sierra On-Line - @@ -10090,7 +9553,6 @@ 1984 Strategic Simulations - @@ -10104,7 +9566,6 @@ 1983 Marley W. Watkins - @@ -10118,7 +9579,6 @@ 1990 Jostens Learning Corporation - @@ -10132,7 +9592,6 @@ 1990 Jostens Learning Corporation - @@ -10146,7 +9605,6 @@ 1985 Courses by Computers - @@ -10167,7 +9625,6 @@ 1984 Educational Activities - @@ -10181,7 +9638,6 @@ 1984 Educational Activities - @@ -10195,7 +9651,6 @@ 1984 Educational Activities - @@ -10209,7 +9664,6 @@ 1980 Charles Lund - @@ -10223,7 +9677,6 @@ 1980 Charles Lund - @@ -10237,7 +9690,6 @@ 1983 Strategic Simulations - @@ -10258,7 +9710,6 @@ 1990 Silver - @@ -10285,7 +9736,6 @@ 1984 Intellectual Software - @@ -10306,7 +9756,6 @@ 1982 The Learning Company - @@ -10320,7 +9769,6 @@ 1982 The Learning Company - @@ -10334,7 +9782,6 @@ 1982 The Learning Company - @@ -10348,7 +9795,6 @@ 1982 Scholastic - @@ -10362,7 +9808,6 @@ 1985 Sunburst Communications - @@ -10376,7 +9821,6 @@ 1984 Sunburst Communications - @@ -10390,7 +9834,6 @@ 1986 Strategic Simulations - @@ -10411,7 +9854,6 @@ 1987 Activision - @@ -10425,7 +9867,6 @@ 1982 Datamost - @@ -10439,7 +9880,6 @@ 1986 Sunburst Communications - @@ -10453,7 +9893,6 @@ 1982 Hayden Book Co. - @@ -10467,7 +9906,6 @@ 1984 Milton Bradley - @@ -10481,7 +9919,6 @@ 1989 Queue - @@ -10495,7 +9932,6 @@ 1986 Mindscape - @@ -10509,7 +9945,6 @@ 1991 Gamco Industries - @@ -10530,7 +9965,6 @@ 1986 Michael G. Southwell - @@ -10544,7 +9978,6 @@ 1986 Michael G. Southwell - @@ -10558,7 +9991,6 @@ 1988 Mindscape - @@ -10579,7 +10011,6 @@ 1982 Random House - @@ -10593,7 +10024,6 @@ 1982 Random House - @@ -10607,7 +10037,6 @@ 1982 Random House - @@ -10621,7 +10050,6 @@ 1993 Micrograms - @@ -10635,7 +10063,6 @@ 1993 Troll Associates - @@ -10649,7 +10076,6 @@ 1990 Pelican Software - @@ -10670,7 +10096,6 @@ 1984 Grolier - @@ -10684,7 +10109,6 @@ 1984 Educational Activities - @@ -10698,7 +10122,6 @@ 1984 Cross Educational Software - @@ -10719,7 +10142,6 @@ 1981 On-Line Systems - @@ -10733,7 +10155,6 @@ 1982 The Learning Company - @@ -10747,7 +10168,6 @@ 1982 Apple Computer - @@ -10761,7 +10181,6 @@ 1986 Activision - @@ -10782,7 +10201,6 @@ 1982 Mattel Electronics - @@ -10796,7 +10214,6 @@ 1987 Gamco Industries - @@ -10817,7 +10234,6 @@ 1984 American Educational Computer - @@ -10831,7 +10247,6 @@ 1984 MatchMaker - @@ -10845,7 +10260,6 @@ 1983 Davidson & Associates - @@ -10866,7 +10280,6 @@ 1984 Scholastic - @@ -10880,7 +10293,6 @@ 1983 DesignWare - @@ -10894,7 +10306,6 @@ 1985 The Learning Company - @@ -10908,7 +10319,6 @@ 1986 The Learning Company - @@ -10922,7 +10332,6 @@ 1986 Scholastic - @@ -10943,7 +10352,6 @@ 1983 Queue - @@ -10957,7 +10365,6 @@ 1986 Neosoft - @@ -10971,7 +10378,6 @@ 1983 Scholastic - @@ -10994,7 +10400,6 @@ 1983 Scholastic - @@ -11017,7 +10422,6 @@ 1983 Scholastic - @@ -11040,7 +10444,6 @@ 1984 Scholastic - @@ -11063,7 +10466,6 @@ 1984 Scholastic - @@ -11086,7 +10488,6 @@ 1984 Scholastic - @@ -11109,7 +10510,6 @@ 1984 Scholastic - @@ -11132,7 +10532,6 @@ ???? Scholastic - @@ -11155,7 +10554,6 @@ 1985 Scholastic - @@ -11178,7 +10576,6 @@ 1985 Scholastic - @@ -11201,7 +10598,6 @@ ???? Scholastic - @@ -11224,7 +10620,6 @@ ???? Scholastic - @@ -11247,7 +10642,6 @@ 1985 Scholastic - @@ -11270,7 +10664,6 @@ 1986 Scholastic - @@ -11293,7 +10686,6 @@ 1986 Scholastic - @@ -11316,7 +10708,6 @@ ???? Scholastic - @@ -11339,7 +10730,6 @@ ???? Scholastic - @@ -11362,7 +10752,6 @@ 1987 Scholastic - @@ -11385,7 +10774,6 @@ ???? Scholastic - @@ -11408,7 +10796,6 @@ 1988 Scholastic - @@ -11431,7 +10818,6 @@ ???? Scholastic - @@ -11460,7 +10846,6 @@ ???? Scholastic - @@ -11483,7 +10868,6 @@ 1988 Scholastic - @@ -11512,7 +10896,6 @@ ???? Scholastic - @@ -11535,7 +10918,6 @@ ???? Scholastic - @@ -11558,7 +10940,6 @@ 1988 Scholastic - @@ -11625,7 +11006,6 @@ 1984 Learning Well - @@ -11646,7 +11026,6 @@ 1981 The Learning Company - @@ -11660,7 +11039,6 @@ 1983 Sunburst Communications - @@ -11674,7 +11052,6 @@ 1984 Sunburst Communications - @@ -11688,7 +11065,6 @@ 1987 Sunburst Communications - @@ -11702,7 +11078,6 @@ 1987 Sunburst Communications - @@ -11716,7 +11091,6 @@ 1983 Sunburst Communications - @@ -11730,7 +11104,6 @@ 1987 Silver Burdett Company - @@ -11744,7 +11117,6 @@ 1983 Thunder Mountain - @@ -11758,7 +11130,6 @@ 1985 Scott, Foresman and Company - @@ -11772,7 +11143,6 @@ 1985 Scott, Foresman and Company - @@ -11786,7 +11156,6 @@ 1986 Sunburst Communications - @@ -11800,7 +11169,6 @@ 1990 Sunburst Communications - @@ -11815,7 +11183,6 @@ 1983 Counterpoint Software - @@ -11829,7 +11196,6 @@ 1983 Springboard Software - @@ -11843,7 +11209,6 @@ 1984 Epyx - @@ -11857,7 +11222,6 @@ 1984 Activision - @@ -11871,7 +11235,6 @@ 1983 Infocom - @@ -11885,7 +11248,6 @@ 1983 Infocom - @@ -11899,7 +11261,6 @@ 1983 Sirius Software - @@ -11913,7 +11274,6 @@ 1984 Gessler Educational Software - @@ -11927,7 +11287,6 @@ 1985 Scholastic - @@ -11941,7 +11300,6 @@ 1990 Hartley Courseware - @@ -11994,7 +11352,6 @@ 1983 Unicorn Software Company - @@ -12008,7 +11365,6 @@ 1987 Epyx - @@ -12022,7 +11378,6 @@ 1984 Daystar Learning - @@ -12036,7 +11391,6 @@ 1982 Strategic Simulations - @@ -12050,7 +11404,6 @@ 1982 Strategic Simulations - @@ -12064,7 +11417,6 @@ 1986 Avalon Hill - @@ -12078,7 +11430,6 @@ 1986 Baudville - @@ -12092,7 +11443,6 @@ 1982 Milliken Publishing Company - @@ -12106,7 +11456,6 @@ 1984 Activision - @@ -12120,7 +11469,6 @@ 1985 Activision - @@ -12134,7 +11482,6 @@ 1986 Activision - @@ -12148,7 +11495,6 @@ 1983 Edu-Ware - @@ -12162,7 +11508,6 @@ 1983 Gentry Software - @@ -12176,7 +11521,6 @@ 1985 Methods & Solutions - @@ -12190,7 +11534,6 @@ 1985 D.C. Heath and Company - @@ -12204,7 +11547,6 @@ 1989 Data East USA - @@ -12218,7 +11560,6 @@ 1984 Davka Corporation - @@ -12239,7 +11580,6 @@ 1983 Micro Learn - @@ -12253,7 +11593,6 @@ 1982 Microcomputer Workshops - @@ -12267,7 +11606,6 @@ 1982 Microcomputer Workshops - @@ -12281,7 +11619,6 @@ 1987 Garde - @@ -12302,7 +11639,6 @@ 1986 Mindscape - @@ -12316,7 +11652,6 @@ 1985 Sunburst Communications - @@ -12330,7 +11665,6 @@ 1981 Avant-Garde Creations - @@ -12344,7 +11678,6 @@ 1987 Hartley Courseware - @@ -12358,7 +11691,6 @@ 1987 Davidson and Associates - @@ -12379,7 +11711,6 @@ 1982 Hartley Courseware - @@ -12393,7 +11724,6 @@ 1987 Hartley Courseware - @@ -12407,7 +11737,6 @@ 1982 Milliken Publishing - @@ -12421,7 +11750,6 @@ 1982 Milliken Publishing - @@ -12435,7 +11763,6 @@ 1984 Troll Associates - @@ -12449,7 +11776,6 @@ 1983 Queue - @@ -12463,7 +11789,6 @@ 1985 Learning Technologies - @@ -12477,7 +11802,6 @@ 1987 Troll Associates - @@ -12491,7 +11815,6 @@ 1987 Troll Associates - @@ -12505,7 +11828,6 @@ 1985 Bantam Software - @@ -12526,7 +11848,6 @@ 1982 Morningstar - @@ -12540,7 +11861,6 @@ 1984 Centurion Software - @@ -12554,7 +11874,6 @@ 1984 Centurion Software - @@ -12568,7 +11887,6 @@ 1984 Centurion Software - @@ -12582,7 +11900,6 @@ 1984 Centurion Software - @@ -12596,7 +11913,6 @@ 1987 Data East USA - @@ -12617,7 +11933,6 @@ 1984 Strategic Simulations - @@ -12638,7 +11953,6 @@ 1990 Jostens Learning Corporation - @@ -12652,7 +11966,6 @@ 1983 Spinnaker Software - @@ -12666,7 +11979,6 @@ 1984 Spinnaker Software - @@ -12680,7 +11992,6 @@ 1987 Mindscape - @@ -12694,7 +12005,6 @@ 1984 Troll Associates - @@ -12708,7 +12018,6 @@ 1983 Infocom - @@ -12722,7 +12031,6 @@ 1984 Grolier Publishing - @@ -12736,7 +12044,6 @@ 1986 Random House - @@ -12750,7 +12057,6 @@ 1981 Apple ("Special Delivery" - @@ -12764,7 +12070,6 @@ 1986 Sunburst Communications - @@ -12778,7 +12083,6 @@ 1983 Edu-Ware - @@ -12792,7 +12096,6 @@ 1987 Silver - @@ -12806,7 +12109,6 @@ 1987 Silver - @@ -12820,7 +12122,6 @@ 1984 Milliken Publishing - @@ -12834,7 +12135,6 @@ 1983 McCarthy-McCormack - @@ -12848,7 +12148,6 @@ 1989 Micrograms - @@ -12862,7 +12161,6 @@ 1990 National Geographic Society - @@ -12883,7 +12181,6 @@ 1990 National Geographic Society - @@ -12904,7 +12201,6 @@ 1984 Unicorn Software - @@ -12918,7 +12214,6 @@ 1988 Pelican Software - @@ -12939,7 +12234,6 @@ 1987 Mindplay - @@ -12953,7 +12247,6 @@ 1983 Methods & Solutions - @@ -12967,7 +12260,6 @@ 1982 Hayden Book Company - @@ -12981,7 +12273,6 @@ 1985 Strategic Simulations - @@ -13002,7 +12293,6 @@ 1985 Data East - @@ -13016,7 +12306,6 @@ 1983 Reader's Digest Services - @@ -13030,7 +12319,6 @@ 1992 Troll Associates - @@ -13044,7 +12332,6 @@ 1987 Data East - @@ -13065,7 +12352,6 @@ 1990 Mindplay - @@ -13086,7 +12372,6 @@ 1983 Spinnaker Software - @@ -13100,7 +12385,6 @@ 1983 Midwest Software - @@ -13114,7 +12398,6 @@ 1983 Spinnaker Software - @@ -13128,7 +12411,6 @@ 1981 Hayden Book Company - @@ -13142,7 +12424,6 @@ 1984 Sierra On-Line - @@ -13166,7 +12447,6 @@ 1985 Sierra On-Line - @@ -13205,7 +12485,6 @@ 1988 Sierra On-Line - @@ -13274,7 +12553,6 @@ 1989 Hartley Courseware - @@ -13295,7 +12573,6 @@ 1984 Hartley Courseware - @@ -13316,7 +12593,6 @@ 1983 Strategic Simulations - @@ -13330,7 +12606,6 @@ 1982 MUSE Software - @@ -13344,7 +12619,6 @@ 1982 MUSE Software - @@ -13358,7 +12632,6 @@ 1984 Academic Hallmarks - @@ -13379,7 +12652,6 @@ 1984 Academic Hallmarks - @@ -13393,7 +12665,6 @@ 1984 Academic Hallmarks - @@ -13407,7 +12678,6 @@ 1985 Academic Hallmarks - @@ -13421,7 +12691,6 @@ 1983 Koala Technologies - @@ -13435,7 +12704,6 @@ 1985 Epyx - @@ -13449,7 +12717,6 @@ 1983 Krell Software - @@ -13494,7 +12761,6 @@ 1982 Krell Software - @@ -13515,7 +12781,6 @@ 1983 Data East - @@ -13529,7 +12794,6 @@ 1988 Epyx - @@ -13550,7 +12814,6 @@ 1984 Quest Learning Systems - @@ -13595,7 +12858,6 @@ 1988 Infocom - @@ -13616,7 +12878,6 @@ 1988 Developmental Learning - @@ -13630,7 +12891,6 @@ 1985 Milliken Publishing - @@ -13644,7 +12904,6 @@ 1982 Hayden Book Company - @@ -13658,7 +12917,6 @@ 1987 Troll Associates - @@ -13672,7 +12930,6 @@ 1983 American Educational - @@ -13693,7 +12950,6 @@ 1984 Peachtree Software - @@ -13714,7 +12970,6 @@ 1984 Peachtree Software - @@ -13735,7 +12990,6 @@ 1984 Peachtree Software - @@ -13756,7 +13010,6 @@ 1986 Troll Associates - @@ -13770,7 +13023,6 @@ 1984 Sierra On-Line - @@ -13784,7 +13036,6 @@ 1983 Sierra On-Line - @@ -13798,7 +13049,6 @@ 1982 Superior Software - @@ -13812,7 +13062,6 @@ 1987 Sierra On-Line - @@ -13851,7 +13100,6 @@ 1987 Focus Media - @@ -13884,7 +13132,6 @@ 1984 Milton Bradley - @@ -13905,7 +13152,6 @@ 1985 Learning Technologies - @@ -13919,7 +13165,6 @@ 1993 Troll Associates - @@ -13933,7 +13178,6 @@ 1993 Troll Associates - @@ -13947,7 +13191,6 @@ 1986 Troll Associates - @@ -13961,7 +13204,6 @@ 1982 Behavioral Engineering - @@ -13975,7 +13217,6 @@ 1981 Hartley Software - @@ -13989,7 +13230,6 @@ 1988 Hartley Courseware - @@ -14003,7 +13243,6 @@ 1986 Polarware - @@ -14017,7 +13256,6 @@ 1983 Educational Activities - @@ -14031,7 +13269,6 @@ 1987 McCarthy-McCormack - @@ -14052,7 +13289,6 @@ 1986 Troll Associates - @@ -14079,7 +13315,6 @@ 1984 Reader's Digest Services - @@ -14093,7 +13328,6 @@ 1986 Hartley Courseware - @@ -14114,7 +13348,6 @@ 1983 Omega MicroWare - @@ -14128,7 +13361,6 @@ 1983 Omega Microware - @@ -14142,7 +13374,6 @@ 1983 Broderbund Software - @@ -14156,7 +13387,6 @@ 1984 Fisher Price Learning - @@ -14170,7 +13400,6 @@ 1982 The Learning Company - @@ -14184,7 +13413,6 @@ 1986 Microcomputer Workshops - @@ -14198,7 +13426,6 @@ 1985 Softlore Corporation - @@ -14212,7 +13439,6 @@ 1986 Electronic Arts - @@ -14233,7 +13459,6 @@ 1984 American Eagle - @@ -14254,7 +13479,6 @@ 1984 Queue - @@ -14268,7 +13492,6 @@ 1984 Society for Visual Education - @@ -14282,7 +13505,6 @@ 1984 Society for Visual Education - @@ -14296,7 +13518,6 @@ 1981 Micro Lab - @@ -14310,7 +13531,6 @@ 1985 Methods and Solutions - @@ -14324,7 +13544,6 @@ 1986 Sunburst Communications - @@ -14338,7 +13557,6 @@ 1987 Sunburst Communications - @@ -14352,7 +13570,6 @@ 1984 Sunburst Communications - @@ -14366,7 +13583,6 @@ 1984 Sunburst Communications - @@ -14380,7 +13596,6 @@ 1984 Sunburst Communications - @@ -14394,7 +13609,6 @@ 1984 Sunburst Communications - @@ -14408,7 +13622,6 @@ 1984 Sunburst Communications - @@ -14422,7 +13635,6 @@ 1986 Sunburst Communications - @@ -14436,7 +13648,6 @@ 1987 Sunburst Communications - @@ -14450,7 +13661,6 @@ 1985 Sunburst Communications - @@ -14464,7 +13674,6 @@ 1985 Sunburst Communications - @@ -14478,7 +13687,6 @@ 1985 Sunburst Communications - @@ -14492,7 +13700,6 @@ 1987 Sunburst Communications - @@ -14506,7 +13713,6 @@ 1988 Sunburst Communications - @@ -14520,7 +13726,6 @@ 1988 Sunburst Communications - @@ -14534,7 +13739,6 @@ 1988 Sunburst Communications - @@ -14548,7 +13752,6 @@ 1981 Apple Computer - @@ -14562,7 +13765,6 @@ 1985 The Learning Company - @@ -14576,7 +13778,6 @@ 1985 Unicorn Software - @@ -14590,7 +13791,6 @@ 1993 Troll Associates - @@ -14604,7 +13804,6 @@ 1983 CBS Software - @@ -14631,7 +13830,6 @@ 1987 Lucasfilm Games - @@ -14652,7 +13850,6 @@ 1987 Optimum Resource - @@ -14666,7 +13863,6 @@ 1986 Troll Associates - @@ -14687,7 +13883,6 @@ 1983 Sierra On-Line - @@ -14701,7 +13896,6 @@ 1986 Electronic Arts - @@ -14722,7 +13916,6 @@ 1990 General Quarters Software - @@ -14743,7 +13936,6 @@ 1982 Datamost - @@ -14798,7 +13990,6 @@ 1984 Springboard Software - @@ -14819,7 +14010,6 @@ 1983 Developmental Learning - @@ -14833,7 +14023,6 @@ 1984 Centurion Software - @@ -14847,7 +14036,6 @@ 1984 Centurion Software - @@ -14861,7 +14049,6 @@ 1984 Scarborough Systems - @@ -14875,7 +14062,6 @@ 1985 Scarborough Systems - @@ -14896,7 +14082,6 @@ 1984 Scarborough Systems - @@ -14910,7 +14095,6 @@ 1984 The Regents/ALA Company - @@ -14924,7 +14108,6 @@ 1984 Centurion Software - @@ -14938,7 +14121,6 @@ 1987 Davidson & Associates - @@ -14959,7 +14141,6 @@ 1983 Media Materials - @@ -14973,7 +14154,6 @@ 1989 Davidson & Associates - @@ -15006,7 +14186,6 @@ 1989 Davidson & Associates - @@ -15027,7 +14206,6 @@ 1987 Davidson & Associates - @@ -15048,7 +14226,6 @@ 1989 Troll Associates - @@ -15062,7 +14239,6 @@ 1985 Hartley Courseware - @@ -15076,7 +14252,6 @@ 1992 Gamco Industries - @@ -15097,7 +14272,6 @@ 1982 Educational Activities - @@ -15118,7 +14292,6 @@ 1985 Learning Technologies - @@ -15132,7 +14305,6 @@ 1983 Harcourt Brace Jovanovich - @@ -15146,7 +14318,6 @@ 1987 Troll Associates - @@ -15160,7 +14331,6 @@ 1988 Troll Associates - @@ -15174,7 +14344,6 @@ 1989 Troll Associates - @@ -15188,7 +14357,6 @@ 1989 Troll Associates - @@ -15202,7 +14370,6 @@ 1986 Mindplay - @@ -15216,7 +14383,6 @@ 1984 Houghton Mifflin Company - @@ -15230,7 +14396,6 @@ 1984 Houghton Mifflin Company - @@ -15244,7 +14409,6 @@ 1985 Milliken Publishing - @@ -15258,7 +14422,6 @@ 1984 Milliken Publishing - @@ -15272,7 +14435,6 @@ 1985 Milliken Publishing - @@ -15286,7 +14448,6 @@ 1985 Milliken Publishing - @@ -15300,7 +14461,6 @@ 1985 Milliken Publishing - @@ -15314,7 +14474,6 @@ 1985 Milliken Publishing - @@ -15328,7 +14487,6 @@ 1985 Milliken Publishing - @@ -15342,7 +14500,6 @@ 1985 Milliken Publishing - @@ -15356,7 +14513,6 @@ 1985 Milliken Publishing - @@ -15370,7 +14526,6 @@ 1985 Milliken Publishing - @@ -15384,7 +14539,6 @@ 1985 Milliken Publishing - @@ -15398,7 +14552,6 @@ 1980 Milliken Publishing - @@ -15412,7 +14565,6 @@ 1985 Milliken Publishing - @@ -15426,7 +14578,6 @@ 1980 Milliken Publishing - @@ -15440,7 +14591,6 @@ 1985 Milliken Publishing - @@ -15454,7 +14604,6 @@ 1985 Milliken Publishing - @@ -15468,7 +14617,6 @@ 1985 Milliken Publishing - @@ -15482,7 +14630,6 @@ 1985 Milliken Publishing - @@ -15496,7 +14643,6 @@ 1985 Milliken Publishing - @@ -15510,7 +14656,6 @@ 1986 Milliken Publishing - @@ -15524,7 +14669,6 @@ 1986 Scholastic - @@ -15545,7 +14689,6 @@ 1986 Scholastic - @@ -15566,7 +14709,6 @@ 1988 Scholastic - @@ -15587,7 +14729,6 @@ 1986 Scholastic - @@ -15608,7 +14749,6 @@ 1987 Scholastic - @@ -15629,7 +14769,6 @@ 1986 Scholastic - @@ -15659,10 +14798,8 @@ Houghton-Mifflin Company - + The disk does autoboot, though, so it's usable. Is there a disk 3? --> @@ -15677,9 +14814,8 @@ 1983 Houghton-Mifflin Company - - + @@ -15694,7 +14830,6 @@ 1987 Addison-Wesley - @@ -15708,7 +14843,6 @@ 1987 Addison-Wesley - @@ -15722,7 +14856,6 @@ 1987 Addison-Wesley - @@ -15736,7 +14869,6 @@ 1986 Addison-Wesley - @@ -15750,7 +14882,6 @@ 1985 Harcourt Brace Jovanovich - @@ -15789,7 +14920,6 @@ 1983 Queue - @@ -15803,7 +14933,6 @@ 1982 Avant-Garde Creations - @@ -15817,7 +14946,6 @@ 1982 Rock Roy - @@ -15831,7 +14959,6 @@ 1984 Grolier Publishing - @@ -15845,7 +14972,6 @@ 1984 Avalon Hill - @@ -15859,7 +14985,6 @@ 1985 MECC - @@ -15873,7 +14998,6 @@ 1984 MECC - @@ -15887,7 +15011,6 @@ 1984 MECC - @@ -15901,7 +15024,6 @@ 1985 MECC - @@ -15915,7 +15037,6 @@ 1985 MECC - @@ -15929,7 +15050,6 @@ 1985 MECC - @@ -15950,7 +15070,6 @@ 1985 MECC - @@ -15971,7 +15090,6 @@ 1985 MECC - @@ -15992,7 +15110,6 @@ 1985 MECC - @@ -16006,7 +15123,6 @@ 1985 MECC - @@ -16020,7 +15136,6 @@ 1986 MECC - @@ -16034,7 +15149,6 @@ 1986 MECC - @@ -16048,7 +15162,6 @@ 1987 MECC - @@ -16062,7 +15175,6 @@ 1987 MECC - @@ -16076,7 +15188,6 @@ 1987 MECC - @@ -16104,7 +15215,6 @@ 1988 MECC - @@ -16118,7 +15228,6 @@ 1988 MECC - @@ -16132,7 +15241,6 @@ 1988 MECC - @@ -16146,7 +15254,6 @@ 1990 MECC - @@ -16160,7 +15267,6 @@ 1988 MECC - @@ -16174,7 +15280,6 @@ 1988 MECC - @@ -16188,7 +15293,6 @@ 1989 MECC - @@ -16202,7 +15306,6 @@ 1989 MECC - @@ -16216,7 +15319,6 @@ 1990 MECC - @@ -16230,7 +15332,6 @@ 1991 MECC - @@ -16251,7 +15352,6 @@ 1992 MECC - @@ -16265,7 +15365,6 @@ ???? MECC - @@ -16286,7 +15385,6 @@ 1992 MECC - @@ -16300,7 +15398,6 @@ 1980 MECC - @@ -16314,7 +15411,6 @@ 1983 MECC - @@ -16328,7 +15424,6 @@ 1980 MECC - @@ -16342,7 +15437,6 @@ 1980 MECC - @@ -16356,7 +15450,6 @@ 1980 MECC - @@ -16370,7 +15463,6 @@ 1980 MECC - @@ -16384,7 +15476,6 @@ 1980 MECC - @@ -16398,7 +15489,6 @@ 1980 MECC - @@ -16412,7 +15502,6 @@ 1981 MECC - @@ -16426,7 +15515,6 @@ 1980 MECC - @@ -16440,7 +15528,6 @@ 1980 MECC - @@ -16454,7 +15541,6 @@ 1981 MECC - @@ -16468,7 +15554,6 @@ 1981 MECC - @@ -16482,7 +15567,6 @@ 1981 MECC - @@ -16496,7 +15580,6 @@ 1982 MECC - @@ -16510,7 +15593,6 @@ 1982 MECC - @@ -16524,7 +15606,6 @@ 1982 MECC - @@ -16538,7 +15619,6 @@ 1983 MECC - @@ -16552,7 +15632,6 @@ 1984 MECC - @@ -16566,7 +15645,6 @@ 1983 MECC - @@ -16580,7 +15658,6 @@ 1983 MECC - @@ -16594,7 +15671,6 @@ 1983 MECC - @@ -16608,7 +15684,6 @@ 1983 MECC - @@ -16622,7 +15697,6 @@ 1983 MECC - @@ -16636,7 +15710,6 @@ 1983 MECC - @@ -16650,7 +15723,6 @@ 1983 MECC - @@ -16664,7 +15736,6 @@ 1983 MECC - @@ -16678,7 +15749,6 @@ 1983 MECC - @@ -16692,7 +15762,6 @@ 1983 MECC - @@ -16706,7 +15775,6 @@ 1983 MECC - @@ -16720,7 +15788,6 @@ 1985 MECC - @@ -16734,7 +15801,6 @@ 1985 MECC - @@ -16748,7 +15814,6 @@ 1985 Strategic Simulations - @@ -16769,7 +15834,6 @@ 1987 Hartley Courseware - @@ -16783,7 +15847,6 @@ 1981 Softsmith - @@ -16816,7 +15879,6 @@ 1986 Sunburst Communications - @@ -16830,7 +15892,6 @@ 1989 Sunburst Communications - @@ -16844,7 +15905,6 @@ 1983 Sunburst Communications - @@ -16858,7 +15918,6 @@ 1986 Hartley Courseware - @@ -16872,7 +15931,6 @@ 1984 Computer Headware - @@ -16893,7 +15951,6 @@ 1983 Developmental Learning - @@ -16907,7 +15964,6 @@ 1982 Developmental Learning - @@ -16921,7 +15977,6 @@ 1982 Developmental Learning - @@ -16935,7 +15990,6 @@ 1983 Hayden Book Company - @@ -16949,7 +16003,6 @@ 1983 Hayden Book Company - @@ -16963,7 +16016,6 @@ 1984 Reader's Digest Software - @@ -16977,7 +16029,6 @@ 1980 Stoneware - @@ -16991,7 +16042,6 @@ 1983 Hayden Book Company - @@ -17005,7 +16055,6 @@ 1982 Synergistic Software - @@ -17019,7 +16068,6 @@ 1982 Synergistic Software - @@ -17033,7 +16081,6 @@ 1989 Laureate Learning Systems - @@ -17047,7 +16094,6 @@ 1989 Laureate Learning Systems - @@ -17061,7 +16107,6 @@ 1989 Laureate Learning Systems - @@ -17075,7 +16120,6 @@ 1989 Laureate Learning Systems - @@ -17089,7 +16133,6 @@ 1989 Laureate Learning Systems - @@ -17103,7 +16146,6 @@ 1989 Laureate Learning Systems - @@ -17117,7 +16159,6 @@ 1989 Laureate Learning Systems - @@ -17131,7 +16172,6 @@ 1982 Hayden Book Company - @@ -17140,12 +16180,14 @@ - + MECC-A157 Oregon Trail (Version 1.1) (cleanly cracked) 1985 MECC - + @@ -17161,12 +16203,31 @@ + + MECC-A157 Oregon Trail (Version 1.4) (cleanly cracked) + 1985 + MECC + + + + + + + + + + + + + + + + MicroTutor II - Prefixes, Suffixes, Capitalization (cleanly cracked) 1982 Scandura associates - @@ -17180,7 +16241,6 @@ 1985 South-Western Publishing - @@ -17201,7 +16261,6 @@ 1988 S. E. Warner Software - @@ -17222,7 +16281,6 @@ 1982 Cavalier Computer - @@ -17236,7 +16294,6 @@ 1984 Blue Chip Software - @@ -17250,7 +16307,6 @@ 1986 Hartley Courseware - @@ -17271,7 +16327,6 @@ 1986 Hartley Courseware - @@ -17292,7 +16347,6 @@ 1984 MCE - @@ -17306,7 +16360,6 @@ 1985 Electronic Arts - @@ -17333,7 +16386,6 @@ 1984 The Human Edge - @@ -17347,7 +16399,6 @@ 1984 Micro Fun - @@ -17361,7 +16412,6 @@ 1982 Micro Fun - @@ -17375,7 +16425,6 @@ 1983 Penguin Software - @@ -17389,7 +16438,6 @@ 1982 Developmental Learning - @@ -17403,7 +16451,6 @@ 1985 Developmental Learning - @@ -17417,7 +16464,6 @@ 1981 On-Line Systems - @@ -17431,7 +16477,6 @@ 1984 DesignWare - @@ -17445,7 +16490,6 @@ 1991 Gamco Industries - @@ -17466,7 +16510,6 @@ 1981 Apple - @@ -17480,7 +16523,6 @@ 1990 Sierra On-Line - @@ -17545,7 +16587,6 @@ 1983 Hartley Courseware - @@ -17559,7 +16600,6 @@ 1982 Hartley Courseware - @@ -17573,7 +16613,6 @@ 1982 Datamost - @@ -17587,7 +16626,6 @@ 1985 Litag - @@ -17601,7 +16639,6 @@ 1983 Artworx - @@ -17615,7 +16652,6 @@ 1982 The Software Farm - @@ -17629,7 +16665,6 @@ 1988 Pelican Software - @@ -17650,7 +16685,6 @@ 1990 Queue - @@ -17683,7 +16717,6 @@ 1984 Program Design - @@ -17697,7 +16730,6 @@ 1981 Ritam Corporation - @@ -17711,7 +16743,6 @@ 1984 Ritam Corporation - @@ -17725,7 +16756,6 @@ 1985 Grolier Publishing - @@ -17739,7 +16769,6 @@ 1981 Apple Computer - @@ -17753,7 +16782,6 @@ 1981 The Learning Company - @@ -17767,7 +16795,6 @@ 1981 The Learning Company - @@ -17781,7 +16808,6 @@ 1984 Troll Associates - @@ -17795,7 +16821,6 @@ 1982 Methods & Solutions - @@ -17809,7 +16834,6 @@ 1985 Electronic Arts - @@ -17830,7 +16854,6 @@ 1985 Random House - @@ -17851,7 +16874,6 @@ 1985 Random House - @@ -17865,7 +16887,6 @@ 1983 Sierra On-Line - @@ -17879,7 +16900,6 @@ 1985 Mindscape - @@ -17893,7 +16913,6 @@ 1985 Mindscape - @@ -17907,7 +16926,6 @@ 1987 Sunburst Communications - @@ -17921,7 +16939,6 @@ 1984 Datamost - @@ -17935,7 +16952,6 @@ 1986 Troll Associates - @@ -17949,7 +16965,6 @@ 1985 Troll Associates - @@ -17963,7 +16978,6 @@ 1989 Mindscape - @@ -17984,7 +16998,6 @@ 1980 Prescription Learning - @@ -18041,7 +17054,6 @@ 1985 Courses by Computers - @@ -18062,7 +17074,6 @@ 1984 Educational Activities - @@ -18076,7 +17087,6 @@ 1985 Gamco Industries - @@ -18090,7 +17100,6 @@ 1985 Prescription Learning - @@ -18104,7 +17113,6 @@ 1985 Prescription Learning - @@ -18118,7 +17126,6 @@ 1990 Jostens Learning Corporation - @@ -18132,7 +17139,6 @@ 1990 Jostens Learning Corporation - @@ -18146,7 +17152,6 @@ 1990 Jostens Learning Corporation - @@ -18160,7 +17165,6 @@ 1990 Jostens Learning Corporation - @@ -18174,7 +17178,6 @@ 1990 Jostens Learning Corporation - @@ -18188,7 +17191,6 @@ 1990 Jostens Learning Corporation - @@ -18202,7 +17204,6 @@ 1990 Jostens Learning Corporation - @@ -18216,7 +17217,6 @@ 1982 Reston Publishing - @@ -18230,7 +17230,6 @@ 1981 Highland Computers - @@ -18244,7 +17243,6 @@ 1988 Sunburst Communications - @@ -18265,7 +17263,6 @@ 1986 Sunburst Communications - @@ -18279,7 +17276,6 @@ 1987 Sunburst Communications - @@ -18293,7 +17289,6 @@ 1987 Sunburst Communications - @@ -18307,7 +17302,6 @@ 1986 Sunburst Communications - @@ -18321,7 +17315,6 @@ 1986 Activision - @@ -18342,7 +17335,6 @@ 1984 Electronic Arts - @@ -18358,8 +17350,6 @@ - - @@ -18372,7 +17362,6 @@ 1988 Silver - @@ -18386,7 +17375,6 @@ 1983 Springboard Software - @@ -18400,7 +17388,6 @@ 1980 Apple Computer - @@ -18414,7 +17401,6 @@ 1984 Scholastic - @@ -18435,7 +17421,6 @@ 1980 On-Line Systems - @@ -18449,7 +17434,6 @@ 1985 Educational Activities - @@ -18463,7 +17447,6 @@ 1986 Troll Associates - @@ -18477,7 +17460,6 @@ 1984 Scholastic - @@ -18498,7 +17480,6 @@ 1986 Strategic Simulations - @@ -18512,7 +17493,6 @@ 1984 None - @@ -18536,7 +17516,6 @@ 1981 Level-10 - @@ -18550,7 +17529,6 @@ 1984 Nikrom Technical Products - @@ -18596,7 +17574,6 @@ 1982 Strategic Simulations - @@ -18610,7 +17587,6 @@ 1985 Grolier - @@ -18631,7 +17607,6 @@ 1986 Hartley Courseware - @@ -18652,7 +17627,6 @@ 1984 Hartley Courseware - @@ -18666,7 +17640,6 @@ 1981 Hartley Courseware - @@ -18687,7 +17660,6 @@ 1987 Sunburst Communications - @@ -18701,7 +17673,6 @@ 1987 Sunburst Communications - @@ -18715,7 +17686,6 @@ 1986 D.C. Heath and Company - @@ -18729,7 +17699,6 @@ 1984 Centurion Software - @@ -18743,7 +17712,6 @@ 1984 Developmental Learning - @@ -18757,7 +17725,6 @@ 1984 Centurion Software - @@ -18771,7 +17738,6 @@ 1985 Learning Technologies - @@ -18785,7 +17751,6 @@ 1984 Sunburst Communications - @@ -18799,7 +17764,6 @@ 1984 The Learning Company - @@ -18813,7 +17777,6 @@ 1983 Hartley Courseware - @@ -18827,7 +17790,6 @@ 1985 Prescription Learning - @@ -18841,7 +17803,6 @@ 1986 Origin Systems - @@ -18855,7 +17816,6 @@ 1982 CPU Software - @@ -18869,7 +17829,6 @@ 1983 Sierra On-Line - @@ -18903,7 +17862,6 @@ 1989 Origin Systems - @@ -18936,7 +17894,6 @@ 1986 Polarware - @@ -18957,7 +17914,6 @@ 1981 Strategic Simulations - @@ -18971,7 +17927,6 @@ 1984 Scholastic - @@ -18985,7 +17940,6 @@ 1986 Polarware - @@ -18999,7 +17953,6 @@ 1982 Hartley Courseware - @@ -19020,7 +17973,6 @@ 1984 Microcomputer Workshops - @@ -19034,7 +17986,6 @@ 1984 Centurion Software - @@ -19048,7 +17999,6 @@ 1984 Chevron Chemical - @@ -19069,7 +18019,6 @@ 1981 Sirius Software - @@ -19083,7 +18032,6 @@ 1983 ADAM Christian Educational - @@ -19110,7 +18058,6 @@ 1982 Datamost - @@ -19124,7 +18071,6 @@ 1985 Strategic Simulations - @@ -19138,7 +18084,6 @@ 1986 Activision - @@ -19152,7 +18097,6 @@ 1990 Jostens Learning Corporation - @@ -19166,7 +18110,6 @@ 1985 Hartley Courseware - @@ -19180,7 +18123,6 @@ 1992 Troll Associates - @@ -19194,7 +18136,6 @@ 1991 Troll Associates - @@ -19208,7 +18149,6 @@ 1984 Thunder Mountain - @@ -19222,7 +18162,6 @@ 1986 Prescription Learning - @@ -19236,7 +18175,6 @@ 1984 Troll Associates - @@ -19250,7 +18188,6 @@ 1984 Random House - @@ -19264,7 +18201,6 @@ 1984 Random House - @@ -19285,7 +18221,6 @@ 1984 Troll Associates - @@ -19299,7 +18234,6 @@ 1981 On-Line Systems - @@ -19313,7 +18247,6 @@ 1986 Gamco Industries - @@ -19327,7 +18260,6 @@ 1985 Telarium - @@ -19361,7 +18293,6 @@ 1980 Apple Computer - @@ -19375,7 +18306,6 @@ 1985 Fisher Price Learning - @@ -19396,7 +18326,6 @@ 1985 Fisher Price Learning - @@ -19417,7 +18346,6 @@ 1984 Strategic Simulations - @@ -19431,7 +18359,6 @@ 1986 Strategic Simulations - @@ -19452,7 +18379,6 @@ 1987 Electronic Arts - @@ -19473,7 +18399,6 @@ 1989 Educational Activities - @@ -19487,7 +18412,6 @@ 1982 Synapse Software - @@ -19501,7 +18425,6 @@ 1990 Jostens Learning Corporation - @@ -19515,7 +18438,6 @@ 1988 Hartley Courseware - @@ -19529,7 +18451,6 @@ 1989 Mindplay - @@ -19543,7 +18464,6 @@ 1982 Penguin Software - @@ -19557,7 +18477,6 @@ 1983 Electronic Arts - @@ -19571,7 +18490,6 @@ 1984 McCarthy-McCormack - @@ -19585,7 +18503,6 @@ 1984 Centurion Software - @@ -19599,7 +18516,6 @@ 1984 Centurion Industries - @@ -19613,7 +18529,6 @@ 1988 Data East - @@ -19634,7 +18549,6 @@ 1985 Troll Associates - @@ -19648,7 +18562,6 @@ 1982 Top Notch Software - @@ -19662,7 +18575,6 @@ 1983 Milliken Publishing - @@ -19676,7 +18588,6 @@ 1986 Activision - @@ -19721,7 +18632,6 @@ 1984 Sunburst Communications - @@ -19775,7 +18685,6 @@ 1983 Intellectual Software - @@ -19796,6 +18705,7 @@ 1988 Queue + @@ -19891,7 +18801,6 @@ 1987 Hartley Courseware - @@ -19905,7 +18814,6 @@ 1981 Strategic Simulations - @@ -19919,7 +18827,6 @@ 1987 Strategic Simulations (SSI) - @@ -19933,7 +18840,6 @@ 1987 Learning Well / Pelican - @@ -19954,7 +18860,6 @@ 1982 Edu-Ware - @@ -19968,7 +18873,6 @@ 1982 Edu-Ware Services - @@ -19982,7 +18886,6 @@ 1985 Hesware - @@ -20003,7 +18906,6 @@ 1982 Milliken Publishing - @@ -20017,7 +18919,6 @@ 1982 Milliken Publishing - @@ -20044,7 +18945,6 @@ 1984 Peachtree Software - @@ -20058,7 +18958,6 @@ 1984 Peachtree Software - @@ -20072,7 +18971,6 @@ 1984 Peachtree Software - @@ -20086,7 +18984,6 @@ 1986 Soft Productions - @@ -20155,7 +19052,6 @@ 1983 Queue - @@ -20169,7 +19065,6 @@ 1981 Educational Activities - @@ -20183,7 +19078,6 @@ 1984 Springboard Software - @@ -20197,7 +19091,6 @@ 1984 Sunburst Communications - @@ -20211,7 +19104,6 @@ 1985 Mindscape - @@ -20225,7 +19117,6 @@ 1983 Strategic Simulations - @@ -20239,7 +19130,6 @@ 1986 Josten Learning Corporation - @@ -20260,7 +19150,6 @@ 1986 Josten Learning Corporation - @@ -20281,7 +19170,6 @@ 1986 Prescription Learning - @@ -20302,7 +19190,6 @@ 1986 Prescription Learning - @@ -20323,7 +19210,6 @@ 1986 Prescription Learning - @@ -20344,7 +19230,6 @@ 1986 Prescription Learning - @@ -20365,7 +19250,6 @@ 1986 Prescription Learning - @@ -20386,7 +19270,6 @@ 1986 Prescription Learning - @@ -20407,7 +19290,6 @@ 1986 Prescription Learning - @@ -20428,7 +19310,6 @@ 1986 Prescription Learning - @@ -20449,7 +19330,6 @@ 1986 Prescription Learning - @@ -20470,7 +19350,6 @@ 1986 Prescription Learning - @@ -20491,7 +19370,6 @@ 1986 Prescription Learning - @@ -20512,7 +19390,6 @@ 1986 Prescription Learning - @@ -20533,7 +19410,6 @@ 1984 Adventure International - @@ -20554,7 +19430,6 @@ 1984 Thunder Mountain - @@ -20568,7 +19443,6 @@ 1984 Educational Activities - @@ -20582,7 +19456,6 @@ 1983 McCarthy-McCormack - @@ -20596,7 +19469,6 @@ 1984 Mindplay - @@ -20610,7 +19482,6 @@ 1980 Discovery Games - @@ -20624,7 +19495,6 @@ 1982 Hayden Book Company - @@ -20638,7 +19508,6 @@ 1985 Methods and Solutions - @@ -20652,7 +19521,6 @@ 1982 Broderbund Software - @@ -20666,7 +19534,6 @@ 1985 Bantam Software - @@ -20687,7 +19554,6 @@ 1982 Broderbund Software - @@ -20701,7 +19567,6 @@ 1982 Gebelli Software - @@ -20715,7 +19580,6 @@ 1981 Electronic Courseware Systems - @@ -20729,7 +19593,6 @@ 1989 Developmental Learning Materials - @@ -20743,7 +19606,6 @@ 1982 Gebelli Software - @@ -20757,7 +19619,6 @@ 1989 Sunburst Communications - @@ -20772,7 +19633,6 @@ 1982 Gebelli Software - @@ -20786,7 +19646,6 @@ 1983 Rhiannon Software - @@ -20800,7 +19659,6 @@ 1981 Level-10 - @@ -20814,7 +19672,6 @@ 1982 Broderbund Software - @@ -20828,7 +19685,6 @@ 1982 Gebelli Software - @@ -20842,7 +19698,6 @@ 1981 ArtSci - @@ -20856,7 +19711,6 @@ 1983 Phoenix Software - @@ -20877,7 +19731,6 @@ 1981 Behavioral Engineering - @@ -20891,7 +19744,6 @@ 1986 MECC - @@ -20905,7 +19757,6 @@ 1981 MECC - @@ -20919,7 +19770,6 @@ 1982 MECC - @@ -20933,7 +19783,6 @@ 1984 Society for Visual Education - @@ -20954,7 +19803,6 @@ 1982 K-12 MultiPloy - @@ -20968,7 +19816,6 @@ 1982 Gebelli Software - @@ -20982,7 +19829,6 @@ 1983 Turning Point Software - @@ -20996,7 +19842,6 @@ 1982 Gebelli Software - @@ -21010,7 +19855,6 @@ 1983 Strategic Simulations - @@ -21031,7 +19875,6 @@ 1981 Level-10 - @@ -21045,7 +19888,6 @@ 1982 Gebelli Software - @@ -21059,7 +19901,6 @@ 1982 Adventure International - @@ -21083,7 +19924,6 @@ 1982 Broderbund Software - @@ -21097,7 +19937,6 @@ 1984 Scholastic - @@ -21111,7 +19950,6 @@ 1982 Broderbund Software - @@ -21125,7 +19963,6 @@ 1981 Broderbund Software - @@ -21139,7 +19976,6 @@ 1985 Learning Technologies - @@ -21153,7 +19989,6 @@ 1982 Broderbund Software - @@ -21167,7 +20002,6 @@ 1981 Automated Simulations - @@ -21181,7 +20015,6 @@ 1983 Optimum Resource - @@ -21195,7 +20028,6 @@ 1983 Optimum Resource - @@ -21209,7 +20041,6 @@ 1991 Sunburst Communications - @@ -21223,7 +20054,6 @@ 1983 Unicorn Software - @@ -21238,7 +20068,6 @@ 1989 Sunburst Communications - @@ -21252,7 +20081,6 @@ 1984 Thunder Mountain - @@ -21266,7 +20094,6 @@ 1984 Electronic Courseware Systems - @@ -21280,7 +20107,6 @@ 1982 Artworx - @@ -21294,7 +20120,6 @@ 1986 Sunburst Communications - @@ -21308,7 +20133,6 @@ 1985 Davidson and Associates - @@ -21329,7 +20153,6 @@ 1982 Phoenix Software - @@ -24720,6 +23543,7 @@ 1985 Methods and Solutions + @@ -24778,6 +23602,7 @@ 1995 Barnum Software + @@ -25938,6 +24764,7 @@ 1985 Intellectual Software + @@ -33275,6 +32102,7 @@ 1985 Courses by Computers + @@ -35137,7 +33965,7 @@ - + @@ -36485,6 +35313,7 @@ --> + @@ -37029,11 +35858,1167 @@ 1984 Sierra On-Line + + + + Apple Galaxian (StarCraft) (cleanly cracked) + 1981 + StarCraft + + + + + + + + + + + Space Journey (cleanly cracked) + 1984 + Scott, Foresman and Company + + + + + + + + + + + Exploring Maps and Globes (cleanly cracked) + 1987 + Society for Visual Education + + + + + + + + + + + Snooper Troops 1: The Case of the Granite Point Ghost (Revision 2) (cleanly cracked) + 1982 + Spinnaker + + + + + + + + + + + Newbery Winners: A Wrinkle in Time (cleanly cracked) + 1982 + Sunburst Communications + + + + + + + + + + + Newbery Winners: Bridge to Terabithia (cleanly cracked) + 1982 + Sunburst Communications + + + + + + + + + + + Newbery Winners: Sounder (cleanly cracked) + 1982 + Sunburst Communications + + + + + + + + + + + Newbery Winners: The Westing Game (cleanly cracked) + 1982 + Sunburst Communications + + + + + + + + + + + Geometry: Area and Perimeter (cleanly cracked) + 1986 + Encyclopaedia Britannica + + + + + + + + + + + Harvey by Primes (cleanly cracked) + 1984 + Queue + + + + + + + + + + + Computer Assisted Problem Solving for Intermediate Algebra (Revision 2) (cleanly cracked) + 1984 + UNKNOWN + + + + + + + + + + + + + + + + + + + Geometry: Rectilinear Regions (cleanly cracked) + 1987 + Encyclopaedia Britannica + + + + + + + + + + + + Problem Solving in Algebra (cleanly cracked) + 1983 + Encyclopaedia Britannica + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Integers (A Contest) (cleanly cracked) + 1983 + Society for Visual Education + + + + + + + + + + + Solving Equations and Inequalities (Version 2) (cleanly cracked) + 1983 + Sunburst Communications + + + + + + + + + + + Estimation: Bull's Eye (cleanly cracked) + 1986 + Encyclopaedia Britannica + + + + + + + + + + + Return to Reading: The Red Pony (cleanly cracked) + 1983 + Media Basics + + + + + + + + + + + Return to Reading: Johnny Tremain (cleanly cracked) + 1983 + Media Basics + + + + + + + + + + + Testing Basic Math Skills 1 (cleanly cracked) + 1983 + Society for Visual Education + + + + + + + + + + + Geometry Pool and Billiards (cleanly cracked) + 1986 + Intellectual Software + + + + + + + + + + + Casa Del Misterio (cleanly cracked) + 1988 + Language Study Software + + + + + + + + + + + M-ss-ng L-nks: Al Pie De La Letra (cleanly cracked) + 1985 + Sunburst Communications + + + + + + + + + + + Fraction Word Problems (cleanly cracked) + 1983 + Queue + + + + + + + + + + + The Spanish Contest (cleanly cracked) + 1983 + Lingo Fun + + + + + + + + + + + + + + + + + + Analytical Reasoning (cleanly cracked) + 1983 + Queue + + + + + + + + + + + + + + + + + + Rounding and Estimation (cleanly cracked) + 1983 + Queue + + + + + + + + + + + Proper and Improper Fractions: Fractions, Decimals, and Percent (2nd Edition) (cleanly cracked) + 1981 + Society for Visual Education + + + + + + + + + + + Averages (cleanly cracked) + 1988 + Queue + + + + + + + + + + + Nouns/Pronouns (08.31.86 Version) (cleanly cracked) + 1981 + Hartley Courseware + + + + + + + + + + + + + + + + + + Metric System Tutor (cleanly cracked) + 1980 + Educational Materials and Equipment + + + + + + + + + + + Addition: Whole Numbers Steps 1-17 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Addition: Fractions Concepts Steps 1-8 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Multiplication: Whole Numbers Steps 1-14 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + La Guillotine (cleanly cracked) + 1984 + Gessler Educational Software + + + + + + + + + + + La Corrida de Toros (cleanly cracked) + 1984 + Gessler Educational Software + + + + + + + + + + + Math Demo Disk #1: Secondary Mathematics (cleanly cracked) + 1983 + Conduit + + + + + + + + + + + Math Demo Disk #2: Graphing Equations and Interpreting Graphs (cleanly cracked) + 1983 + Conduit + + + + + + + + + + + Math Demo Disk #3: Postsecondary Mathematics (cleanly cracked) + 1983 + Conduit + + + + + + + + + + + Math Skills: Elementary Level (cleanly cracked) + 1983 + Encyclopaedia Britannica + + + + + + + + + + + Math Skills: Junior High Level (cleanly cracked) + 1983 + Encyclopaedia Britannica + + + + + + + + + + + Graphing is Fun: Pie and Line Graphs (cleanly cracked) + 1985 + Aquarius People Materials + + + + + + + + + + + Addition: Fractions Steps 9-21 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Subtraction: Whole Numbers Steps 1-17 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Subtraction: Fractions Steps 1-11 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Dungeon! (cleanly cracked) + 1982 + TSR Hobbies + + + + + + + + + + + Theseus and the Minotaur (cleanly cracked) + 1982 + TSR Hobbies + + + + + + + + + + + Dawn Patrol (cleanly cracked) + 1982 + TSR Hobbies + + + + + + + + + + + Conceptor (cleanly cracked) + 1985 + Mentor Learning Systems + + + + + + + + + + + + + + + + + + Epyx 3-Pack (cleanly cracked) + 1980 + Automated Simulations + + + + + + + + + + + Troll's Tale (Revision 2) (cleanly cracked) + 1983 + Sierra On-Line + + + + + + + + + + + Daily Computer Crosswords from The New York Times (cleanly cracked) + 1984 + Evolving Technology Company + + + + + + + + + + + U-Boat Command (cleanly cracked) + 1982 + Synergistic Software + + + + + + + + + + + MECC-A308 Rocket Factory (Version 1.0) (cleanly cracked) + 1992 + MECC + + + + + + + + + + + Spanish Achievement II: Grammar (cleanly cracked) + 1983 + Microcomputer Workshops + + + + + + + + + + + Solving Word Problems 1 (cleanly cracked) + 1985 + Aquarius People Materials + + + + + + + + + + + Solving Word Problems II (cleanly cracked) + 1985 + Aquarius People Materials + + + + + + + + + + + Multiplication/Division Fractions: Steps 1-20 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Division: Whole Numbers Steps 1-19 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Percent Concepts Steps 1-5 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Percent Steps 7-10 (cleanly cracked) + 1984 + Instructional/Communications Technology + + + + + + + + + + + Decimals Steps 7-10 (cleanly cracked) + 1985 + Instructional/Communications Technology + + + + + + + + + + + Opposites v01.30.87 (cleanly cracked) + 1986 + Hartley Courseware + + + + + + + + + + + + + + + + + + MECC-A746 English Volume 1: Parts of Speech (Version 1.5) (cleanly cracked) + 1981 + MECC + + + + + + + + + + + Reading Comprehension: Main Idea and Details (cleanly cracked) + 1983 + Milton Bradley + + + + + + + + + + + Scoring Higher: Mathematics A, Grade Level 3 (cleanly cracked) + 1987 + Krell Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Verbs 2 (Version 08.31.86) (cleanly cracked) + 1986 + Hartley Courseware + + + + + + + + + + + Kaves of Karkhan (Revision 2) (cleanly cracked) + 1981 + Level-10 + + + + + + + + + + + The Spanish Hangman (cleanly cracked) + 1983 + George Earl + + + + + + + + + + + + + + + + + + Scoring Higher: Verbal Grade Level 3 (cleanly cracked) + 1987 + Krell Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Sorcerer of Claymorgue Castle (Version 2.2/122) (cleanly cracked) + 1984 + Adventure International + + + + + + + + + + + + + + + + + French Achievement III (Version 1.0) (cleanly cracked) + 1984 + Microcomputer Workshops + + + + + + + + diff -Nru mame-0.223+dfsg.1/hash/apple2_flop_misc.xml mame-0.224+dfsg.1/hash/apple2_flop_misc.xml --- mame-0.223+dfsg.1/hash/apple2_flop_misc.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/apple2_flop_misc.xml 2020-08-26 08:57:19.000000000 +0000 @@ -932,12 +932,28 @@ ("MicroChess 2.0," "Checker King," "Gammon Gambler") --> - + + + + Anti-M (version 1.7) + 2020 + 4AM + + + + + + + + + Ankh diff -Nru mame-0.223+dfsg.1/hash/apple2_flop_orig.xml mame-0.224+dfsg.1/hash/apple2_flop_orig.xml --- mame-0.223+dfsg.1/hash/apple2_flop_orig.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/apple2_flop_orig.xml 2020-08-26 08:57:19.000000000 +0000 @@ -14226,4 +14226,70 @@ + + Those Amazing Reading Machines IV (Version 1.0) + 1986 + MECC + + + + + + + + + + + + + Speedway Math (Version 1.0) + 1986 + MECC + + + + + + + + + + + + + Quickflash! (Version 1.0) + 1986 + MECC + + + + + + + + + + + + + The Sorcerer of Claymorgue Castle (Version 2.2/122) + 1984 + Adventure International + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/hash/archimedes.xml mame-0.224+dfsg.1/hash/archimedes.xml --- mame-0.223+dfsg.1/hash/archimedes.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/archimedes.xml 2020-08-26 08:57:19.000000000 +0000 @@ -197,7 +197,7 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) --> - + 2067 BC 1992 @@ -671,7 +671,7 @@ - + Caverns 1991 @@ -1068,7 +1068,7 @@ - + EGO: Repton 4 [passwords] 1992 ProAction @@ -1980,7 +1980,7 @@ - + MicroDrive 3D 1990 CIS @@ -2387,6 +2387,7 @@ + Repton 3 [cracked] 1988 @@ -3110,12 +3111,13 @@ - - + + + Zool 1993 Gremlin - + diff -Nru mame-0.223+dfsg.1/hash/bbcm_cart.xml mame-0.224+dfsg.1/hash/bbcm_cart.xml --- mame-0.223+dfsg.1/hash/bbcm_cart.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/bbcm_cart.xml 2020-08-26 08:57:19.000000000 +0000 @@ -201,6 +201,48 @@ + + MasterPieCe 1.10 + 1987 + G2 Systems + + + + + + + + + + Prisma-3 1.30 + 1988 + Millipede + + + + + + + + + + + + + Prisma-3 2.30 + 1990 + Millipede + + + + + + + + + + + TechnoCAD 1988 diff -Nru mame-0.223+dfsg.1/hash/bbc_rom.xml mame-0.224+dfsg.1/hash/bbc_rom.xml --- mame-0.223+dfsg.1/hash/bbc_rom.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/bbc_rom.xml 2020-08-26 08:57:19.000000000 +0000 @@ -2534,7 +2534,7 @@ Database 1.00 1984 - Merlin + Merlin Computer Products @@ -2545,7 +2545,7 @@ Database 1.20 1984 - Merlin + Merlin Computer Products @@ -2567,7 +2567,7 @@ DataGem 1.02F 1985 - Merlin + Merlin Computer Products @@ -2578,7 +2578,7 @@ Data Scribe 1.01 1984 - Merlin + Merlin Computer Products @@ -2589,7 +2589,7 @@ Data Scribe 1.20 1985 - Merlin + Merlin Computer Products @@ -2600,7 +2600,7 @@ Data Scribe 1.31 1985 - Merlin + Merlin Computer Products @@ -2611,7 +2611,7 @@ DataStag 1.0 1985 - Merlin + Merlin Computer Products @@ -2619,12 +2619,13 @@ - + Microware DDFS 0.90 1984 Microware + @@ -2632,12 +2633,27 @@ - + + UDM DDFS 0.98 + 1985 + United Disk Memories + + + + + + + + + + + UDM DDFS 2.00 1985 - UDM - + United Disk Memories + + @@ -2645,12 +2661,27 @@ - + + UDM DDFS 3.10 + 1985 + United Disk Memories + + + + + + + + + + + Opus DDOS 3.00 1984 Slogger + @@ -2664,6 +2695,7 @@ Slogger + @@ -2677,6 +2709,7 @@ Slogger + @@ -2690,6 +2723,7 @@ Slogger + @@ -2703,6 +2737,7 @@ Slogger + @@ -2716,6 +2751,7 @@ Slogger + @@ -2729,6 +2765,7 @@ Slogger + @@ -2742,6 +2779,7 @@ Slogger + @@ -2755,6 +2793,7 @@ Slogger + @@ -2768,6 +2807,7 @@ Slogger + @@ -3222,6 +3262,17 @@ + + Terminal for Rank-Cintel/BBC Slide File + 1987 + BBC Television Centre + + + + + + + DotPrint-Plus 1986 @@ -4883,6 +4934,21 @@ + + Kenda Professional DMFS with PADS 1.02 + 1985 + Kenda Electronic Systems + + + + + + + + + + + Kermit 1.02 1985 @@ -5096,6 +5162,8 @@ 198? Computer Village + + @@ -5220,6 +5288,18 @@ + + Master ROM 1.04 + 1991 + Beebugsoft + + + + + + + + Master ROM 1.05 1991 @@ -5689,7 +5769,7 @@ 1985 MRM Software - + @@ -6687,6 +6767,7 @@ 1984 Gnomic + @@ -6699,6 +6780,7 @@ 1984 Gnomic + @@ -6711,6 +6793,7 @@ 1985 Gnomic + @@ -7262,7 +7345,7 @@ Scribe 1.10 1983 - Merlin + Merlin Computer Products @@ -7273,7 +7356,7 @@ Scribe 1.30 1984 - Merlin + Merlin Computer Products @@ -7284,7 +7367,7 @@ ScribeChec 1.10 1985 - Merlin + Merlin Computer Products @@ -7318,22 +7401,34 @@ SEHK Terminal 2.00 1987 Nippon Business Machines + + + + + + SEHK Terminal 4.01 1989 Nippon Business Machines + + + + + + @@ -8360,9 +8455,9 @@ - Supervisor + Supervisor 1 1985 - Micropulse + Northern Computers @@ -8370,6 +8465,39 @@ + + Supervisor 2 - DFS + 1987 + Northern Computers + + + + + + + + + Supervisor 3 - Floppy + 1986 + Northern Computers + + + + + + + + + Supervisor 3 - Winchester + 1986 + Northern Computers + + + + + + + Swift 2.2 1986 @@ -9317,6 +9445,18 @@ + + VideoROM: Videodisc Player Control Software + 1988 + The Soft Option + + + + + + + + Viditel 198? @@ -9624,6 +9764,7 @@ Watford Electronics + @@ -9637,6 +9778,7 @@ Watford Electronics + @@ -9650,6 +9792,7 @@ Watford Electronics + @@ -9663,6 +9806,7 @@ Watford Electronics + diff -Nru mame-0.223+dfsg.1/hash/electron_cart.xml mame-0.224+dfsg.1/hash/electron_cart.xml --- mame-0.223+dfsg.1/hash/electron_cart.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/electron_cart.xml 2020-08-26 08:57:19.000000000 +0000 @@ -423,7 +423,7 @@ - + Pegasus 400 v1.01 1987 Slogger @@ -514,27 +514,40 @@ - + Sound Expansion 1988 Project Expansions - + + + + + + + + Sound Expansion 2.0 + 1988 + Project Expansions + + + + - Sound Expansion v3 + Sound Expansion 3.0 1989 Complex Software Systems - + @@ -551,6 +564,17 @@ + + + UPURS 1.0E + 2012 + Martin Barr + + + + + + diff -Nru mame-0.223+dfsg.1/hash/electron_rom.xml mame-0.224+dfsg.1/hash/electron_rom.xml --- mame-0.223+dfsg.1/hash/electron_rom.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/electron_rom.xml 2020-08-26 08:57:19.000000000 +0000 @@ -475,8 +475,8 @@ 1985 Slogger - - + + @@ -503,6 +503,17 @@ + + GoMMC Tools 1.03 + 2007 + John Kortink + + + + + + + Matrix 1986 @@ -514,7 +525,29 @@ - + + Mode 7 Mk2 v1.1 + 1989 + JAFA Systems + + + + + + + + + Mode 7 Mk2 v2.2 + 1989 + JAFA Systems + + + + + + + + Mode 7 Simulator v1.1 1988 JAFA Systems @@ -524,6 +557,17 @@ + + + Mode 7 Simulator v1.5 + 1988 + JAFA Systems + + + + + + Multi-Forth 83 diff -Nru mame-0.223+dfsg.1/hash/fm7_cass.xml mame-0.224+dfsg.1/hash/fm7_cass.xml --- mame-0.223+dfsg.1/hash/fm7_cass.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/fm7_cass.xml 2020-08-26 08:57:19.000000000 +0000 @@ -971,6 +971,18 @@ + + Inoue's Dragon Slayer + 1985 + Tadanobu Inoue + + + + + + + + Ixion 1985 diff -Nru mame-0.223+dfsg.1/hash/g7400.xml mame-0.224+dfsg.1/hash/g7400.xml --- mame-0.223+dfsg.1/hash/g7400.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/g7400.xml 2020-08-26 08:57:19.000000000 +0000 @@ -3,421 +3,483 @@ - + - + - - Air Battle (Euro) + + Air Battle (Euro, Plus) 1983 Philips - - - + + + + + - - Backgammon (Euro) - 1982 - GST Video - - + + Basket Bowling+ (Fra, Plus) + 198? + Brandt + - + - - Billard+ (Fra) - 1983 - Jopac - - + + Tenpin Bowling/Basketball (Euro, Plus, Prototype) + 198? + Philips + - + - - Billiard (Euro, Prototype) - 198? - Philips + + Billard+ (Fra, Plus) + 1983 + Brandt + + - + - - Flipper+ (Fra) + + Billiard (Euro, Plus, Prototype) 198? - Jopac + Philips + + - + - - Flipper+ (Fra, Alt?) + + Clay Pigeon (Euro, Plus, Prototype) 198? - Jopac + Philips + - + - - Clay Pigeon (Euro, Prototype) + + Clay Pigeon (Euro, Plus, Prototype, Alt) 198? Philips + - + - - Cosmic Conflict (Euro) + + Cosmic Conflict (Euro, Plus) 1983 Philips + - - Grand Prix+ (Fra) - 1983 - Jopac + + Cosmos+ (Fra, Plus) + 198? + Brandt + - + - - Demon Attack+ (Fra) + + Demon Attack+ (Fra, Plus) 198? - Radiola + Brandt + - - Exojet+ (Fra) + + Flipper+ (Fra, Plus) 198? - Jopac + Brandt + - + - - - Flashpoint (USA, Prototype, PAL Conversion) - 2004 + + Flipper Game (Euro, Plus, Prototype) + 198? Philips + - + - - Freedom Fighters (Euro) + + Freedom Fighters (Euro, Plus) 198? Philips + - - Combattants de la Liberté (Fra) + + Killer Bees (Euro, Plus) 198? - Radiola + Philips + - + - - Helicopter Rescue (Euro) - 1983 - Philips - + + La Ruche Infernale (Fra, Plus) + 198? + Radiola - - - + + + + - - Basket Bowling+ (Fra) + + Loony Balloon (Euro, Plus) 198? - Jopac + Philips + + - + - - Tenpin Bowling/Basketball (Euro, Prototype) + + + Neutron Star (Euro, Plus) 198? Philips + - - - + + + + + - - Killer Bees (Euro) + + Nightmare (Euro, Plus) 198? Philips + + - + - - Loony Balloon (Euro) + + Pickaxe Pete (Euro, Plus) 198? Philips - + - + - - Moto-Crash (Fra) - 198? - Radiola + + Race/Spin-out/Cryptogram (Euro, Plus) + 1983 + Philips + - + - - Neutron Star (Euro) - 198? - Philips - + + Grand Prix+ (Fra, Plus) + 1983 + Brandt - - - + + + + - - Nightmare (Euro) + + Satellite Attack (Euro, Plus) 198? Philips - + - + - - Norseman (Euro) + + Stone Sling (Euro, Plus) 198? - GST Video - - + Philips + - + - - Pickaxe Pete (Euro) + + Terrahawks (Euro, Plus) 198? Philips + - + - - Race/Spin-out/Cryptogram (Euro) - 1983 - Philips + + + + + + Exojet+ (Fra) + 198? + Brandt + - + - - La Ruche Infernale (Fra) + + Le Tresor Englouti+ (Fra) 198? - Radiola + Brandt + - + - - Satellite Attack (Euro) - 198? + + + + + + + Flashpoint (USA, Prototype, PAL Conversion) + 2004 Philips + - + - - Stone Sling (Euro) - 198? + + Helicopter Rescue (Euro) + 1983 Philips + - - - + + + + - - Terrahawks (Euro) - 198? + + Home Computer Module (Euro) + 1983 Philips + + + + + + + + + + + + + Moto-Crash+ (Fra) + 1984 + Brandt + - + - - Trans American Rally (Euro) + + Norseman (Euro) 198? - Philips + GST Video + + - - - + + + + - - Le Tresor Englouti (Fra) + + Trans American Rally (Euro) 198? - Radiola + Philips - - - + + + + + diff -Nru mame-0.223+dfsg.1/hash/gamate.xml mame-0.224+dfsg.1/hash/gamate.xml --- mame-0.223+dfsg.1/hash/gamate.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/gamate.xml 2020-08-26 08:57:19.000000000 +0000 @@ -12,7 +12,6 @@ C1039 - Column #5 (Unreleased?) C1040 - ?? C1041 - Mighty Boxer -C1051 - Incantational Couple C1055 - ?? C1059 - ?? C1062 - ?? @@ -130,6 +129,8 @@ + + Money Maze 199? @@ -239,6 +240,8 @@ + + Myth of Asamia 1990 @@ -287,6 +290,8 @@ + + Flipuzzle 1991 @@ -335,6 +340,8 @@ + + Bomb Blaster 1990 @@ -385,6 +392,8 @@ + + Treasure Hunter 1990 @@ -434,6 +443,12 @@ + + + + + + Flying Goblin 1991 @@ -548,6 +563,18 @@ + + Incantational Couple + 1991 + Bit Corporation + + + + + + + + Famous 7 1993 @@ -586,6 +613,8 @@ + + GP Race 1992 @@ -625,6 +654,8 @@ + + Further Adventures of Hannibal The Cat 1993 @@ -651,6 +682,8 @@ + + Basketball 199? @@ -690,6 +723,8 @@ + + Robin Hood 1994 diff -Nru mame-0.223+dfsg.1/hash/gtfore.xml mame-0.224+dfsg.1/hash/gtfore.xml --- mame-0.223+dfsg.1/hash/gtfore.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/gtfore.xml 2020-08-26 08:57:19.000000000 +0000 @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -60,7 +60,7 @@ - + diff -Nru mame-0.223+dfsg.1/hash/hp9k3xx_cdrom.xml mame-0.224+dfsg.1/hash/hp9k3xx_cdrom.xml --- mame-0.223+dfsg.1/hash/hp9k3xx_cdrom.xml 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/hash/hp9k3xx_cdrom.xml 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + HP-UX Release 9.10 for Series 300/400 + 1995 + Hewlett-Packard + + + + + + + + + + + + + + + + + + + + HP-UX 9.1 Y2K Patches + 1998 + Hewlett-Packard + + + + + + + + + + HP-UX Application Software + 1995 + Hewlett-Packard + + + + + + + + + + + + + + + + + + + + HP-UX 9.10 Programming Language Tools + 1998 + Hewlett-Packard + + + + + + + + + + + HP LaserROM HP-UX Release 9.0 + 1995 + Hewlett-Packard + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/hash/hp9k3xx_hdd.xml mame-0.224+dfsg.1/hash/hp9k3xx_hdd.xml --- mame-0.223+dfsg.1/hash/hp9k3xx_hdd.xml 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/hash/hp9k3xx_hdd.xml 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,24 @@ + + + + + + + + + HP-UX Release 9.10 for Series 300/400 + 1995 + Hewlett-Packard + + + + + + + + diff -Nru mame-0.223+dfsg.1/hash/ibm5150_cass.xml mame-0.224+dfsg.1/hash/ibm5150_cass.xml --- mame-0.223+dfsg.1/hash/ibm5150_cass.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/ibm5150_cass.xml 2020-08-26 08:57:19.000000000 +0000 @@ -5,10 +5,11 @@ --> - + IBM Advanced Diagnostics for the IBM PC 5150 1982 IBM + diff -Nru mame-0.223+dfsg.1/hash/ibm5150.xml mame-0.224+dfsg.1/hash/ibm5150.xml --- mame-0.223+dfsg.1/hash/ibm5150.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/ibm5150.xml 2020-08-26 08:57:19.000000000 +0000 @@ -679,7 +679,7 @@ Digger (cracked) 1983 - Windwill Software + Windmill Software @@ -688,119 +688,6 @@ - - Dragon's Lair (5.25") - 1989 - Merit Software - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dragon's Lair (3.5") - 1989 - Merit Software - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Donald Duck's Playground 1986 @@ -1147,24 +1034,6 @@ - - Gunship - 1987 - MicroProse - - - - - - - - - - - - - - Hacker 1985 @@ -2393,22 +2262,6 @@ - - Test Drive III - The Passion - 1990 - Accolade - - - - - - - - - - - - Timothy Leary's Mind Mirror 1986 @@ -9077,6 +8930,120 @@ + + Dragon's Lair (5.25") + 1989 + Merit Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dragon's Lair (3.5") + 1989 + Merit Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Drakkhen (EGA, CGA, VGA) 1990 @@ -9562,6 +9529,24 @@ + + Gunship + 1987 + MicroProse + + + + + + + + + + + + + + Hardball II 1989 @@ -11749,13 +11734,25 @@ - + Prince of Persia (3.5", v1.1) 1990 Brøderbund Software + + + + + + + Prince of Persia (3.5", v1.1, Hit Squad release) + 1992 + Hit Squad + + + @@ -11791,7 +11788,7 @@ - Prince of Persia (3.5", v1.0, French) + Prince of Persia (3.5", v1.0, France) 1990 Brøderbund Software @@ -12996,6 +12993,22 @@ + + Test Drive III - The Passion + 1990 + Accolade + + + + + + + + + + + + Tetris (5.25") 1987 @@ -13209,6 +13222,19 @@ + + + Wolfpack (USA) + 1990 + Brøderbund + + + + + + + + diff -Nru mame-0.223+dfsg.1/hash/ibm5170.xml mame-0.224+dfsg.1/hash/ibm5170.xml --- mame-0.223+dfsg.1/hash/ibm5170.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/ibm5170.xml 2020-08-26 08:57:19.000000000 +0000 @@ -8964,6 +8964,58 @@ + + Alone in the Dark 2 (USA) + 1994 + I·Motion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Amazon - Guardians of Eden 1992 @@ -9213,7 +9265,92 @@ - + + Battle Chess 4000 + 1992 + Interplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Beneath a Steel Sky (Euro) + 1994 + Virgin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Beneath a Steel Sky (France) 1994 Virgin @@ -10565,7 +10702,7 @@ - Fables & Fiends - The Legend of Kyrandia Book One + Fables & Fiends - Book One: The Legend of Kyrandia 1992 Virgin Games @@ -10593,7 +10730,7 @@ - Fables & Fiends - The Legend of Kyrandia Book One (France) + Fables & Fiends - Book One: The Legend of Kyrandia (France) 1992 Virgin Games @@ -10621,7 +10758,7 @@ - Fables & Fiends - The Hand of Fate (Germany) + Fables & Fiends - Book Two: The Hand of Fate (Germany) 1993 Virgin Interactive Entertainment @@ -10813,6 +10950,23 @@ + + Fury of the Furries (Euro) + 1993 + Mindscape + + + + + + + + + + + + + Gilis presentask (Swe) @@ -10946,6 +11100,39 @@ + + Goblins Quest 3 (Germany) + 1993 + Sierra On-Line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gods 1991 @@ -11475,6 +11662,52 @@ + + Indiana Jones and the Fate of Atlantis - The Action Game + 1992 + LucasArts + + + + + + + + + + + + + + + + Indiana Jones and the Last Crusade - The Graphic Adventure (VGA version) + 1990 + U.S. Gold + + + + + + + + + + + + + + + + + + + + + + + + IndyCar Racing 1993 @@ -11546,6 +11779,28 @@ + + Jungle Strike + 1995 + Gremlin Interactive + + + + + + + + + + + + + + + + + + Jurassic Park 1993 @@ -11711,11 +11966,11 @@ - Leisure Suit Larry 1: In the Land of the Lounge Lizards (VGA release) + Leisure Suit Larry 1: In the Land of the Lounge Lizards (3.5", VGA release, v2.1) 1991 Sierra On-Line - + @@ -11733,12 +11988,58 @@ + + Leisure Suit Larry 1: In the Land of the Lounge Lizards (3.5", VGA release, v2.0) + 1991 + Sierra On-Line + + + + + + + + + + + + + + + + + + + + + Leisure Suit Larry 1: In the Land of the Lounge Lizards (5.25", VGA release, v2.1) + 1991 + Sierra On-Line + + + + + + + + + + + + + + + + + + + - Leisure Suit Larry 1: In the Land of the Lounge Lizards (EGA release) + Leisure Suit Larry 1: In the Land of the Lounge Lizards (EGA release, v2.0) 1991 Sierra On-Line - + @@ -12454,6 +12755,28 @@ + + Mortal Kombat (Germany) + 1993 + Acclaim Entertainment + + + + + + + + + + + + + + + + + + Mystic Towers 1994 @@ -12846,15 +13169,15 @@ - Rise of the Dragon + Rise of the Dragon (3.5") 1990 Sierra On-Line - - + + @@ -12884,6 +13207,49 @@ + + Rise of the Dragon (5.25") + 1990 + Sierra On-Line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Roberta Williams' Laura Bow in "The Dagger of Amon Ra" 1992 @@ -13831,12 +14197,34 @@ - - UFO - Enemy Unknown + UFO - Enemy Unknown (Euro) 1994 MicroProse + + + + + + + + + + + + + + + + + + + UFO - Enemy Unknown (Euro) (alt) + 1994 + MicroProse + + @@ -13873,6 +14261,27 @@ + + + X-COM - UFO Defense (USA) + 1994 + MicroProse + + + + + + + + + + + + + + + + The Ultimate DOOM diff -Nru mame-0.223+dfsg.1/hash/interact.xml mame-0.224+dfsg.1/hash/interact.xml --- mame-0.223+dfsg.1/hash/interact.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/interact.xml 2020-08-26 08:57:19.000000000 +0000 @@ -6,7 +6,7 @@ + + + + + + CP/M 2.2F (81-292) + 19?? + Digital Research + + + + + + + + + CP/M 2.2G (81-292-A) + 19?? + Digital Research + + + + + + + + diff -Nru mame-0.223+dfsg.1/hash/mikro80.xml mame-0.224+dfsg.1/hash/mikro80.xml --- mame-0.223+dfsg.1/hash/mikro80.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/mikro80.xml 2020-08-26 08:57:19.000000000 +0000 @@ -2,6 +2,9 @@ @@ -9,6 +12,7 @@ Mikro-80 BASIC 1984 <unknown> + @@ -18,8 +22,10 @@ Mikro-80 BASIC (Alt) + 1984 <unknown> + @@ -29,9 +35,13 @@ Programma Proverki + + + + 19?? <unknown> - + diff -Nru mame-0.223+dfsg.1/hash/n64.xml mame-0.224+dfsg.1/hash/n64.xml --- mame-0.223+dfsg.1/hash/n64.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/n64.xml 2020-08-26 08:57:19.000000000 +0000 @@ -262,6 +262,10 @@ + + + + @@ -1298,6 +1302,10 @@ + + + + @@ -3353,6 +3361,10 @@ + + + + @@ -4965,6 +4977,10 @@ + + + + @@ -5574,6 +5590,10 @@ + + + + @@ -5638,6 +5658,12 @@ + + + + + + @@ -5772,6 +5798,10 @@ + + + + @@ -6896,6 +6926,10 @@ + + + + @@ -8660,6 +8694,13 @@ + + + + + + + @@ -10534,6 +10575,10 @@ + + + + diff -Nru mame-0.223+dfsg.1/hash/odyssey2.xml mame-0.224+dfsg.1/hash/odyssey2.xml --- mame-0.223+dfsg.1/hash/odyssey2.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/odyssey2.xml 2020-08-26 08:57:19.000000000 +0000 @@ -3,57 +3,145 @@ - + + + + Computer Programmer (Euro) 1980 @@ -112,13 +200,24 @@ Philips - + + + The Voice + 1979? + Magnavox + + + + + + + Type & Tell! (USA) 1982 @@ -133,19 +232,9 @@ + + - - Playschool Maths (Euro) ~ I've Got Your Number (USA) - 1980 - Philips - - - - - - - - Mathematician/Echo (Euro) ~ Math-a-Magic!/Echo! (USA) @@ -213,6 +302,19 @@ + + Playschool Maths (Euro) ~ I've Got Your Number (USA) + 1980 + Philips + + + + + + + + + Sid the Spellbinder (USA) 1982 @@ -263,14 +365,17 @@ + + + 4 in 1 Row (Euro) 1982 Philips - + @@ -282,47 +387,22 @@ 1982 Radiola - + - - Space Monster (Euro) ~ Alien Invaders - Plus! (USA) - 1980 - Magnavox - - - - - - - - - - - Skiing (Euro) ~ Alpine Skiing! (USA) - 1979 + + A Labyrinth Game/Supermind (Euro) + 1981 Philips - - - - - - - - - - - Ski (Fra) - 1979 - Radiola + - + @@ -354,8 +434,21 @@ + + American Football (Euro) ~ Football! (USA) + 1980 + Philips + + + + + + + + + - Attack of the Timelord! (USA) + Attack of the Timelord! (USA) 1983 Philips @@ -367,130 +460,181 @@ - - Baseball (Euro) ~ Baseball! (USA) - 1980 - Philips (Euro) ~ Magnavox (USA) - + + Backgammon (Euro) + 1983 + GST Video + + - - + + + - - Blobbers (Euro) + + Balão Travesso! (Bra) 1983 Philips - + + + + + + + + + + Loony Balloon (Euro, Prototype) + 1983 + Philips + + + + + + + + + + Barão Vermelho! (Bra) + 198? + Philips - + - - Dam Buster (Euro) ~ Blockout!/Breakdown! (USA) - 1980 + + Red Baron (Euro, Prototype) + 198? Philips - - + + + + + + + + + + Red Baron (Euro, Prototype, Alt) + 198? + Philips + + + + + + + + + + Baseball (Euro) ~ Baseball! (USA) + 1980 + Philips (Euro) ~ Magnavox (USA) + - - + + - - Le Mûr Magique (Fra) + + Basket Game (Euro) ~ Pachinko! (USA) 1981 - Radiola + Philips + + - + - - Ten Pin Bowling/Basketball (Euro) ~ Bowling!/Basketball! (USA) - 1978 + + Battlefield (Euro) ~ War of Nerves! (USA) + 1979 Philips - - + + - + - - Jeu de Quilles/Basketball (Fra) - 1978 - Radiola - + + Blackjack (Euro) ~ Las Vegas Blackjack! (USA) + 1980 + Philips + - + - - Buraco Negro! (Bra) - 1984 - Philips + + Blackjack (Fra) + 1980 + Radiola - - + + - - Neutron Star (Euro, Prototype) + + Blobbers (Euro) 1983 Philips + + - + - - Las Vegas Gambling (Euro) ~ Casino Slot Machine! (USA) - 1980 - Magnavox - + + Buraco Negro! (Bra) + 1984 + Philips - - + + - - Las Vegas (Fra) - 1980 - Radiola + + Neutron Star (Euro, Prototype) + 1983 + Philips - - + + @@ -522,21 +666,22 @@ - - Chess (Euro) - 198? + + Chess Module (Euro) + 1982 Philips - + - - + + + - - Chez Maxime (Fra) + + Chez Maxime (Fra) 198? Radiola @@ -675,11 +820,50 @@ - - Demon Attack (Euro, USA) - 1983 - Imagic - + + Crazy Chase (Euro) ~ K.C.'s Krazy Chase! (USA) + 1982 + Philips + + + + + + + + + + + Dam Buster (Euro) ~ Blockout!/Breakdown! (USA) + 1980 + Philips + + + + + + + + + + + + Le Mûr Magique (Fra) + 1981 + Radiola + + + + + + + + + + Demon Attack (Euro, USA) + 1983 + Imagic + @@ -688,13 +872,12 @@ - + Depth Charge/Marksman (Euro) 1980 Philips - @@ -708,7 +891,6 @@ 1980 Philips - @@ -717,6 +899,60 @@ + + Electronic Billiards (Euro) ~ Pocket Billiards! (USA) + 1978 + Philips (Euro) ~ Magnavox (USA) + + + + + + + + + + + + Billard Américain (Fra) + 1978 + Radiola + + + + + + + + + + + Electronic Ice Hockey/Electronic Soccer (Euro) ~ Hockey!/Soccer! (USA) + 1981 + Philips + + + + + + + + + + + + Football Electronique/Hockey Electronique (Fra) + 1981 + Radiola + + + + + + + + + Electronic Table Football (Euro) ~ Electronic Table Soccer (USA) 1980 @@ -730,15 +966,54 @@ - - American Football (Euro) ~ Football! (USA) + + Electronic Volleyball (Euro) ~ Volleyball! (USA) + 1979 + Philips (Euro) ~ Magnavox (USA) + + + + + + + + + + + + Volleyball (Fra) + 1979 + Radiola + + + + + + + + + + + Flipper Game (Euro) ~ Thunderball! (USA) + 1979 + Philips (Euro) ~ Magnavox (USA) + + + + + + + + + + + Flipper (Fra) 1980 - Philips - + Radiola - + @@ -809,31 +1084,6 @@ - - The Great Wall Street Fortune Hunt (Euro, USA) - 1983 - Philips - - - - - - - - - - - Wall Street (Bra) - 1983 - Philips - - - - - - - - Gunfighter (Euro) 1980 @@ -860,33 +1110,6 @@ - - Electronic Ice Hockey/Electronic Soccer (Euro) ~ Hockey!/Soccer! (USA) - 1981 - Philips - - - - - - - - - - - - Football Electronique/Hockey Electronique (Fra) - 1981 - Radiola - - - - - - - - - Interpol (Euro, Prototype) 198? @@ -941,21 +1164,8 @@ - - Crazy Chase (Euro) ~ K.C.'s Krazy Chase! (USA) - 1982 - Philips - - - - - - - - - - Killer Bees! (USA) + Killer Bees! (USA) 1983 Philips @@ -968,40 +1178,27 @@ - - A Labyrinth Game/Supermind (Euro) - 1981 - Philips - - - - - - - - - - - Blackjack (Euro) ~ Las Vegas Blackjack! (USA) + + Las Vegas Gambling (Euro) ~ Casino Slot Machine! (USA) 1980 - Philips - + Magnavox + - + - - Blackjack (Fra) + + Las Vegas (Fra) 1980 Radiola - + @@ -1044,30 +1241,6 @@ - - Balão Travesso! (Bra) - 1983 - Philips - - - - - - - - - - Loony Balloon (Euro, Prototype) - 1983 - Philips - - - - - - - - Martian Threat (Euro, Prototype) 198? @@ -1081,30 +1254,15 @@ - - Pairs/Space Rendezvous/Logic (Euro) - 1978 + + Martian Threat (Euro, Prototype, Alt) + 198? Philips - - + - - - - - - - - Matchmaker!/Buzzword!/Logix! (USA) - 1978 - Magnavox - - - - - - + + @@ -1136,31 +1294,6 @@ - - The Mousing Cat (Euro) - 1982 - Philips - - - - - - - - - - - Chat et Souris (Fra) - 1983 - Radiola - - - - - - - - Munchkin (Euro) 1982 @@ -1189,18 +1322,6 @@ - - Phantom House (Euro, Prototype) - 1983 - Philips - - - - - - - - Out of this World!/Helicopter Rescue! (USA) 1979 @@ -1215,81 +1336,80 @@ - - Basket Game (Euro) ~ Pachinko! (USA) - 1981 + + Pairs/Space Rendezvous/Logic (Euro) + 1978 Philips - - + + - + - - Pickaxe Pete (Euro) ~ Pick Axe Pete! (USA) - 1980 - Philips (Euro) ~ Magnavox (USA) - + + Matchmaker!/Buzzword!/Logix! (USA) + 1978 + Magnavox + + - - + + - - Pinball! (USA, Prototype) - 1979 + + Phantom House (Euro, Prototype) + 1983 Philips - - - + + - - Plantage ~ Play Tag (Euro, Prototype) - 198? - Philips + + Pickaxe Pete (Euro) ~ Pick Axe Pete! (USA) + 1980 + Philips (Euro) ~ Magnavox (USA) + - + - - Electronic Billiards (Euro) ~ Pocket Billiards! (USA) - 1978 - Philips (Euro) ~ Magnavox (USA) - - + + Pinball! (USA, Prototype) + 1979 + Philips + - + - - Billard Américain (Fra) - 1978 - Radiola - + + Plantage ~ Play Tag (Euro, Prototype) + 198? + Philips - - + + @@ -1334,29 +1454,28 @@ - - Q*bert (Euro) + + Power Lords (Euro, Prototype) 1983 - Parker Brothers - + Philips + - - + + - - Quest for the Rings (Euro, USA) - 1981 - Philips - - + + Q*bert (Euro) + 1983 + Parker Brothers + - - + + @@ -1374,26 +1493,29 @@ - - Barão Vermelho! (Bra) - 198? - Philips + + Race/Spin-Out/Cryptogram (Euro) ~ Speedway/Spin-Out/Crypto-logic (USA) + 1978 + Philips (Euro) ~ Magnavox (USA) + + - - + + - - Red Baron (Euro, Prototype) - 198? - Philips + + Course de Voitures/Autodrome/Cryptogramme (Fra) + 1978 + Radiola + - - + + @@ -1466,18 +1588,6 @@ - - Syracuse (Fra) - 1981 - Jopac - - - - - - - - Secret of the Pharaohs (Euro) 1981 @@ -1516,29 +1626,40 @@ - - Race/Spin-Out/Cryptogram (Euro) ~ Speedway/Spin-Out/Crypto-logic (USA) - 1978 - Philips (Euro) ~ Magnavox (USA) - - + + Skiing (Euro) ~ Alpine Skiing! (USA) + 1979 + Philips + - + - - Course de Voitures/Autodrome/Cryptogramme (Fra) - 1978 + + Ski (Fra) + 1979 Radiola - - + + + + + + + Space Monster (Euro) ~ Alien Invaders - Plus! (USA) + 1980 + Magnavox + + + + + @@ -1555,6 +1676,18 @@ + + Spider-Man (Euro, Prototype, Alt) + 198? + Parker Brothers + + + + + + + + Stone Sling (Euro) 1981 @@ -1591,6 +1724,7 @@ + @@ -1603,6 +1737,7 @@ Philips + @@ -1633,6 +1768,18 @@ + + Syracuse (Fra) + 1981 + Brandt + + + + + + + + Take the Money and Run (Euro) ~ Take the Money and Run! (USA) 1978 @@ -1660,27 +1807,93 @@ - - Flipper Game (Euro) ~ Thunderball! (USA) - 1979 - Philips (Euro) ~ Magnavox (USA) - + + The Great Wall Street Fortune Hunt (Euro, USA) + 1983 + Philips + + + + + + + + + + + Wall Street (Bra) + 1983 + Philips + + + + + + + + + + The Mousing Cat (Euro) + 1982 + Philips + + + + + + + + + + + Chat et Souris (Fra) + 1983 + Radiola + + + + + + + + + + The Quest for the Rings (Euro, USA) + 1981 + Philips + + + + + + + + + + + + Ten Pin Bowling/Basketball (Euro) ~ Bowling!/Basketball! (USA) + 1978 + Philips + + - + - - Flipper (Fra) - 1980 + + Jeu de Quilles/Basketball (Fra) + 1978 Radiola + - + @@ -1693,6 +1906,7 @@ + @@ -1707,6 +1921,7 @@ + @@ -1726,47 +1941,9 @@ - - Electronic Volleyball (Euro) ~ Volleyball! (USA) - 1979 - Philips (Euro) ~ Magnavox (USA) - - - - - - - - - - - - Volleyball (Fra) - 1979 - Radiola - - - - - - - - - - Battlefield (Euro) ~ War of Nerves! (USA) - 1979 - Philips - - - - - - - - - + AMOK! @@ -1794,13 +1971,12 @@ - + Death Race (USA) 2014 <homebrew> - @@ -1814,7 +1990,6 @@ 2014 <homebrew> - @@ -1829,7 +2004,8 @@ <homebrew> - + + @@ -1888,15 +2064,17 @@ - - - The Voice - 1979? - Magnavox + + Route 66 + 2007 + <homebrew> + - + + + diff -Nru mame-0.223+dfsg.1/hash/pc98.xml mame-0.224+dfsg.1/hash/pc98.xml --- mame-0.223+dfsg.1/hash/pc98.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/pc98.xml 2020-08-26 08:57:19.000000000 +0000 @@ -9831,19 +9831,19 @@ - + - + - + @@ -18483,7 +18483,9 @@ スペクトラムホロバイトジャパン (Spectrum HoloByte Japan) + + @@ -18508,14 +18510,60 @@ マイクロプローズジャパン (MicroProse Japan) + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + F-15 Strike Eagle + 1989 + システムソフト (SystemSoft) + + + + + + + + + + + F-15 Strike Eagle II 1990 マイクロプローズジャパン (MicroProse Japan) @@ -18535,13 +18583,14 @@ - - + + F-15 Strike Eagle II 256 1993 マイクロプローズジャパン (MicroProse Japan) + @@ -18569,6 +18618,7 @@ + F-19 Stealth Fighter 1992 @@ -18583,7 +18633,7 @@ - F29 Retaliator + F29 Retaliator (1992-10-15) 1992 イマジニア (Imagineer) @@ -18602,8 +18652,49 @@ - - Faara no Toki Kekkai + + F29 Retaliator (1992-10-10) + 1992 + イマジニア (Imagineer) + + + + + + + + + + + + + + + + + + + Fairie's Residence + 1984 + チャンピオンソフト (Champion Soft) + + + + + + + + + + + + + + + + + + Falla no Jikekkai 1991 ハートソフト (Heart Soft) @@ -18622,7 +18713,8 @@ - + + Fairytale 1987 フェアリーテール (Fairytale) @@ -18668,6 +18760,7 @@ きんぷくりん (Kinpukurin) + @@ -18686,12 +18779,6 @@ - - - - - - @@ -18714,26 +18801,6 @@ - - Falcom Character CG (Alt Format) - 1990 - タケル (Takeru) - - - - - - - - - - - - - - - - Fall 1991 @@ -18754,7 +18821,8 @@ - + + Fantasian 1985 クリスタルソフト (Xtal Soft) @@ -18766,6 +18834,51 @@ + + + Farce - Yuuwaku Hakusho + 1994 + ソフトウェアハウスぱせり (Software House Parsley) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Farland Story - Tooi Kuni no Monogatari 1993 @@ -18798,7 +18911,8 @@ - + + Farland Story - Hakugin no Tsubasa 1994 テイジイエル (TGL) @@ -18836,22 +18950,172 @@ - - Fechi + + + Farland Story - Kamigami no Isan + 1995 + テイジイエル (TGL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Farland Story - Juuou no Akashi + 1995 + テイジイエル (TGL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Farland Story - Juuou no Akashi (cracked) + 1995 + テイジイエル (TGL) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Feti 1994 Cat's Pro. - - + + - - + + + + + + + + Fermion - Mirai kara no Houmonsha + 1995 + シルキーズ (Silky's) + + + + + + + + + + + + + + + + + + + + + + + + @@ -18915,44 +19179,110 @@ - + + + Figure - Ubawareta Houkago + 1995 + シルキーズ (Silky's) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Figure - Ubawareta Houkago (Alt) + 1995 + シルキーズ (Silky's) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Filsnown - Hikari to Toki 1995 リーフ (Leaf) - + - + - + - + - + - + @@ -18983,10 +19313,137 @@ - - + + + + Finish Hold + 1995 + システムソフト (SystemSoft) + + + + + + + + + + + + + + + + + + + + Finish Hold (cracked) + 1995 + システムソフト (SystemSoft) + + + + + - + + + + + + + + + + + + + Finish Hold Hissatsuwaza Zukan + 1995 + システムソフト (SystemSoft) + + + + + + + + + + Finish Hold 2 - Tag + 1996 + システムソフト (SystemSoft) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Finish Hold 2 - Tag (cracked) + 1996 + システムソフト (SystemSoft) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19036,6 +19493,78 @@ + + Fantasy Knight + 1988 + システムソフト (SystemSoft) + + + + + + + + + + + + + + + + + + Fantasy Knight Fukkokuban + 1991 + システムソフト (SystemSoft) + + + + + + + + + + First Queen + 1988 + 呉ソフトウエア工房 (KSK) + + + + + + + + + + + + + + + + + + First Queen (Alt) + 1988 + 呉ソフトウエア工房 (KSK) + + + + + + + + + + + + + + + + First Queen II - Sabaku no Joou 1990 @@ -19043,45 +19572,71 @@ + + + + + + - + + + + + First Queen III + 1993 + 呉ソフトウエア工房 (KSK) + + + + + + + + + + + + + + - - - + + + - First Queen IV + First Queen IV - Varcia Senki 1994 呉ソフトウエア工房 (KSK) - + - + - + - + @@ -19223,7 +19778,8 @@ - + + Flight in Hawaii 1986 キャリーラボ (Carry Lab) @@ -19235,12 +19791,26 @@ + + FlixMix + 1995 + スタークラフト (Starcraft) + + + + + + + + + Floppy Bunko 03 - Bishoujo Graphic Data Shuu Vol. 01 1992 エファット (EFAT) + @@ -19254,6 +19824,7 @@ エファット (EFAT) + @@ -19267,6 +19838,7 @@ アーカムプロダクツ (Arkham Products) + @@ -19280,6 +19852,7 @@ エファット (EFAT) + @@ -19287,12 +19860,31 @@ + + Floppy Bunko 09 - Bishoujo Graphic Data Shuu Vol. 04 + 1992 + エファット (EFAT) + + + + + + + + + + + + + + Floppy Bunko 11 - Listeners Club 0990 Vol. 2 1992 アーカムプロダクツ (Arkham Products) + @@ -19307,6 +19899,202 @@ + + + FontWave + 1994 + アルプス電気 (Alps Electric) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Four Flush + 1993 + アグミックス (Agumix) + + + + + + + + + + + + + + + + + + + + + + + + + Frontier + 1995 + フロンティア (Frontier) + + + + + + + + + + + + + + + + + + + + + + + + Frontier (cracked) + 1995 + フロンティア (Frontier) + + + + + + + + + + + + + + + + + + + + + + + + Foresight Dolly + 1994 + ライトスタッフ (Right Stuff) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Foxy 1990 @@ -19314,13 +20102,13 @@ - + - + @@ -19429,6 +20217,7 @@ きんぷくりん (Kinpukurin) + @@ -19447,15 +20236,9 @@ - - - - - - - + Frontier Universe 1993 B·P·S (Bullet-Proof Software) @@ -19499,7 +20282,8 @@ - + + Funny 19?? アスキー (ASCII) @@ -19678,6 +20462,26 @@ + + Fuurin Kazan + 1992 + ソフトプラン (Soft Plan) + + + + + + + + + + + + + + + + Fushigi no Umi no Nadia 1992 @@ -19752,6 +20556,7 @@ スタークラフト (Starcraft) + @@ -19759,6 +20564,38 @@ + + Fuzoroi no Lemon + 1994 + ボンびいボンボン! (Bonbee Bonbon!) + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gage 1992 @@ -21350,7 +22187,7 @@ Group X 1991 - コムパック (Compaq) + コムパック (Compac) @@ -31709,6 +32546,37 @@ + + Nirvana - Zeta II (cracked) + 1994 + トンキンハウス (Tonkin House) + + + + + + + + + + + + + + + + + + + + + + + + + + + Nobunaga no Yabou 1983 @@ -35037,7 +35905,7 @@ Production Manager 1988 - コムパック (Compaq) + コムパック (Compac) @@ -37420,7 +38288,7 @@ Sailor Fuku Senshi Felis - 1990? + 1990 カクテル・ソフト (Cocktail Soft) @@ -44195,106 +45063,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uchuu Kaitou Funny Bee (Alt) - 1994 - アリスソフト (AliceSoft) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uchuu Kaitou Funny Bee (Alt Format) - 1994 - アリスソフト (AliceSoft) - - - @@ -49837,10 +50605,11 @@ - + F-1 Databox (Demo) - 19?? - <unknown> + 1990 + リード・レックス (Reed Rex) + @@ -49848,19 +50617,7 @@ - - Fantasy Knight - 1988 - システムソフト (SystemSoft) - - - - - - - - - + Farland Story Denki - Arc Ou no Ensei 1994 テイジイエル (TGL) @@ -49892,27 +50649,27 @@ - - Feed no Gyakushuu - Backlash of Feed (1993)(Kamejima)(Disk 1 of 2) + + Feed no Gyakushuu - Backlash of Feed 1993 亀島産業 (Kamejima Sangyou) - + - + - + File:0 - Ghost Killer Kamimura Rei 1996 コロッサス (Colossus) @@ -49938,6 +50695,7 @@ + Flashback 1994 @@ -49945,19 +50703,19 @@ - + - + - + @@ -51861,7 +52619,7 @@ - + Lotus Freelance (Demo) 19?? Lotus @@ -52392,7 +53150,7 @@ Nihon Juudan Cessna Flight 1988 - コムパック (Compaq) + コムパック (Compac) @@ -57009,7 +57767,6 @@ - Elle @@ -57339,6 +58096,7 @@ + Farland Story - Tenshi no Namida 1994 @@ -57377,12 +58135,13 @@ - + Farland Story - Daichi no Kizuna 1994 テイジイエル (TGL) + @@ -57421,58 +58180,60 @@ - - FILE - Kokubou Soushou Jouhoukyoku Jouhou Rouei Taisakubu Josei Jinmonin + + FILE - Kokubou Soushou Jouhoukyoku Jouhou Rouei Taisakubu Josei Jinmon'in 1994 メイビーソフト (May-Be Soft) + - + - + - + - + + Foreigner 1991 グレイト (Great) - + - + - + - + @@ -64108,6 +64869,7 @@ Free Soft Library - CG Collection 1 19?? Shuwa System Trading + @@ -64126,6 +64888,7 @@ Free Soft Library - CG Collection 2 19?? Shuwa System Trading + @@ -64144,6 +64907,7 @@ Free Soft Library - Fantastic Windows 19?? Shuwa System Trading + @@ -64162,6 +64926,7 @@ Free Soft Library - Keiba Collection 19?? Shuwa System Trading + @@ -64337,7 +65102,8 @@ - + + F1 Grandprix 1992 バイオひゃくパーセント (Bio 100%) @@ -65922,6 +66688,7 @@ 1995? <doujin> + @@ -65936,9 +66703,10 @@ - - Fervent Nereid - She's So Unusual (1995)(New York Spirits - Rapcat) - 19?? + + + Fervent Nereid - She's So Unusual + 1995 <doujin> @@ -65948,7 +66716,8 @@ - + + First Fantazy 5 1992 <doujin> @@ -66157,10 +66926,11 @@ - + Kazuma CG Collection - Fantastic Girls Vol.1 - 19?? + 1994 <doujin> + diff -Nru mame-0.223+dfsg.1/hash/picno.xml mame-0.224+dfsg.1/hash/picno.xml --- mame-0.223+dfsg.1/hash/picno.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/picno.xml 2020-08-26 08:57:19.000000000 +0000 @@ -19,15 +19,15 @@ *RX112 Anime Box / アニメボックス RX113 Picno de Nihon Chizu / ピクノでにほんちず RX114 ??? - RX115 Dokkin Shinri Game / どっきん心理ゲーム + *RX115 Dokkin Shinri Game / どっきん心理ゲーム *RX116 Kanji Club / 漢字俱楽部 RX117 Picno de Kuku / ピクノで九九 *RX118 Shirayuki-hime Monogatari / しらゆきひめ物語 *RX119 Nontan to Issho Anime Stamp / ノンタンといっしょ アニメスタンプ RX120 Manfī no Fushigi na Bōken / マンフィーのふしぎなぼうけん - RX121 Hello Kitty no Eikawa / ハローキティの英会話 + *RX121 Hello Kitty no Eikaiwa / ハローキティの英会話 *RX122 Son Gokū no Bōken / そんごくうの冒険 - RX123 Sen'yō Card Soft / 専用カードソフト + *RX123 Paint Ehon: Cinderella Monogatari / ペイント絵本シンデレラ物語 RX124 Chibimaruko-chan no Tashizan Hikizan / ちびまる子ちゃんのたしざんひきざん --> @@ -73,6 +73,32 @@ + + Dokkin Shinri Game + 1994 + Konami + + + + + + + + + + + Hello Kitty no Eikaiwa + 1994 + Konami + + + + + + + + + Kanji Club 1994 @@ -126,6 +152,19 @@ + + + Paint Ehon: Cinderella Monogatari + 1995 + Konami + + + + + + + + Picno Art Puzzle diff -Nru mame-0.223+dfsg.1/hash/pmd85_cass.xml mame-0.224+dfsg.1/hash/pmd85_cass.xml --- mame-0.223+dfsg.1/hash/pmd85_cass.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/pmd85_cass.xml 2020-08-26 08:57:19.000000000 +0000 @@ -3,16 +3,21 @@ - + Auto 198? <unknown> - + @@ -24,7 +29,7 @@ Bludiště 1988 <unknown> - + @@ -32,11 +37,11 @@ - + Bombarder 198? <unknown> - + @@ -44,11 +49,11 @@ - + Boulder Dash 1988 VBG Software - + @@ -56,11 +61,11 @@ - + Faraonova Hbroka 1988 <unknown> - + @@ -68,11 +73,11 @@ - + Flappy 1987 VBG Software - + @@ -84,7 +89,7 @@ Fred 1988 VBG Software - + @@ -96,7 +101,7 @@ Galaxia 1988 Ceres Soft - + @@ -108,7 +113,7 @@ Hlípa 1989 ZO Svazarmu - + @@ -116,11 +121,11 @@ - + Horác a pavouci 1985 ZO Svazarmu - + @@ -128,11 +133,11 @@ - + Karel 1988 <unknown> - + @@ -140,11 +145,11 @@ - + Kuriatko 198? <unknown> - + @@ -156,7 +161,7 @@ Manic Miner 1987 VBG Software - + @@ -168,7 +173,7 @@ Město robotů 1988 <unknown> - + @@ -176,11 +181,11 @@ - + Pampuch & Duch 1986 <unknown> - + @@ -192,7 +197,7 @@ Penetrator 1988 VBG Software - + @@ -204,7 +209,7 @@ Pexeso 1988 Petisoft - + @@ -212,11 +217,11 @@ - + Piškvorky 1987 <unknown> - + @@ -224,11 +229,11 @@ - + Princ Jasoň 1989 Ceres Soft - + @@ -240,7 +245,7 @@ Saboter 1989 VBG Software - + @@ -248,11 +253,11 @@ - + Tava - HRA s Nahodou a Prirodou 1985 <unknown> - + @@ -260,11 +265,11 @@ - + Zaby 198? <unknown> - + @@ -272,11 +277,11 @@ - + ZED 198? <unknown> - + @@ -284,11 +289,11 @@ - + GRDEMO 198? <unknown> - + @@ -296,11 +301,11 @@ - + KURCA 198? <unknown> - + @@ -308,11 +313,11 @@ - + WURMI 198? <unknown> - + @@ -323,21 +328,21 @@ - + BASIC20 Demo 198? <unknown> - + @@ -346,17 +351,17 @@ cirkus-sasa-tomasa 198? <unknown> - + @@ -365,17 +370,17 @@ - + Copy Tape 198? <unknown> - + @@ -384,27 +389,27 @@ - + DAM+2 198? <unknown> - + @@ -413,13 +418,13 @@ DAT PMD 198? <unknown> - + @@ -428,17 +433,17 @@ - + Development Utils 198? <unknown> - + @@ -447,23 +452,23 @@ - + Evidence 198? <unknown> - + @@ -471,11 +476,11 @@ - + Lemmings (256k) 198? <unknown> - + @@ -487,7 +492,7 @@ Lemmings 198? <unknown> - + @@ -496,20 +501,20 @@ - + Games 1 198? <unknown> @@ -522,21 +527,21 @@ - + Games 2 198? <unknown> @@ -549,15 +554,15 @@ - + Games 3 198? <unknown> @@ -570,20 +575,20 @@ - + Games by 4004/482 ZO Svazarmu 198? <unknown> @@ -596,10 +601,10 @@ - + Games by Libor Lasota 198? <unknown> @@ -612,13 +617,13 @@ - + Games by RM-TEAM 198? <unknown> @@ -631,22 +636,22 @@ - + Games by VBG Software 198? <unknown> @@ -659,13 +664,13 @@ - + GR v1.00 198? <unknown> @@ -678,11 +683,11 @@ - + GRED 198? <unknown> @@ -695,10 +700,10 @@ - + GREP 198? <unknown> @@ -711,26 +716,26 @@ - + HRY1 198? <unknown> @@ -743,20 +748,20 @@ - + HRY2 198? <unknown> @@ -769,13 +774,13 @@ - K-Studio - 198? - <unknown> - + K-Studio v2.7 + 1988 + S2 Software + @@ -784,18 +789,18 @@ - + Karel (Alt) 198? <unknown> - + @@ -804,12 +809,12 @@ - + Karel (Alt 2) 198? <unknown> @@ -822,13 +827,13 @@ - + Krivky 198? <unknown> @@ -841,16 +846,16 @@ - + LOGO 198? <unknown> @@ -863,13 +868,13 @@ - + MRS 198? <unknown> @@ -882,13 +887,13 @@ - + Musica 198? <unknown> @@ -901,20 +906,20 @@ - + Rozne 198? <unknown> @@ -927,12 +932,12 @@ - + Rozne (Pascal) 198? <unknown> @@ -945,14 +950,14 @@ - + Skladatel 198? <unknown> @@ -965,14 +970,14 @@ - + Texted 198? <unknown> @@ -985,13 +990,13 @@ - + Vegrap 198? <unknown> diff -Nru mame-0.223+dfsg.1/hash/princ.xml mame-0.224+dfsg.1/hash/princ.xml --- mame-0.223+dfsg.1/hash/princ.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/princ.xml 2020-08-26 08:57:19.000000000 +0000 @@ -2,7 +2,11 @@ + Bad Badtz-Maru @@ -14,6 +18,17 @@ + + + Doraemon + 1998 + Tomy + + + + + + Hello Kitty diff -Nru mame-0.223+dfsg.1/hash/sgi_mips.xml mame-0.224+dfsg.1/hash/sgi_mips.xml --- mame-0.223+dfsg.1/hash/sgi_mips.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/sgi_mips.xml 2020-08-26 08:57:19.000000000 +0000 @@ -63,6 +63,42 @@ + + Chalice 1.5.12 + 1998 + Silicon Grail + + + + + + + + + + Chalice 1.6.1 + 1999 + Silicon Grail + + + + + + + + + + Chalice 2.0 + 2000 + Silicon Grail + + + + + + + + Cosmo Compress 1.1.1 1994 @@ -313,6 +349,31 @@ + + Adobe FrameMaker 5 and Adobe Frame Developer's Kit + 1996 + Adobe + + + + + + + + + + + Adobe FrameMaker 5.5.6 + 1998 + Adobe + + + + + + + + Freeware 2.0 - Unsupported Software compatible with IRIX 6.2 and later 1996 @@ -483,6 +544,18 @@ + + Mathematica 5.2 + 2005 + Wolfram + + + + + + + + Alias|Wavefront Maya Composer 5.5 1999 @@ -928,6 +1001,30 @@ + + RAYZ 2.2 + 2002 + Silicon Grail + + + + + + + + + + RAYZ 2.2.12 + 200? + Silicon Grail + + + + + + + + Samba 2.0.0 for IRIX for IRIX 6.5 and later 1998 @@ -1003,6 +1100,36 @@ + + Tripos SYBYL 7.2 + 2006 + Tripos, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + Silicon Graphics 1600SW Flat Panel Monitor Owner's Manual 1999 @@ -1387,6 +1514,19 @@ + + IRIS Development Option 5.2 + 1994 + Silicon Graphics + + + + + + + + + IRIS Development Option 5.3 1994 @@ -1413,6 +1553,19 @@ + + FORTRAN 77 Compiler 4.0.1 + 1994 + Silicon Graphics + + + + + + + + + MIPSpro 7.2 1997 @@ -1690,7 +1843,7 @@ - + @@ -1846,6 +1999,32 @@ + + Support Advantage Int'l 11/93 + 1993 + Silicon Graphics + + + + + + + + + + + Support Advantage Int'l 3/94 + 1994 + Silicon Graphics + + + + + + + + + Support Advantage 10/94 1994 @@ -2380,6 +2559,19 @@ + + + IRIX 5.2 Patches + 1994 + Silicon Graphics + + + + + + + + IRIX 5.3 diff -Nru mame-0.223+dfsg.1/hash/smc777.xml mame-0.224+dfsg.1/hash/smc777.xml --- mame-0.223+dfsg.1/hash/smc777.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/smc777.xml 2020-08-26 08:57:19.000000000 +0000 @@ -144,7 +144,7 @@ - + @@ -157,7 +157,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -194,7 +194,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -219,7 +219,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -273,7 +273,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -299,7 +299,7 @@ - + @@ -312,7 +312,7 @@ - + @@ -325,7 +325,7 @@ - + @@ -339,7 +339,7 @@ - + @@ -351,7 +351,7 @@ - + diff -Nru mame-0.223+dfsg.1/hash/snotec.xml mame-0.224+dfsg.1/hash/snotec.xml --- mame-0.223+dfsg.1/hash/snotec.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/snotec.xml 2020-08-26 08:57:19.000000000 +0000 @@ -44,7 +44,7 @@ - Cats and Dogs + Ochame na PetMate 1995 Bandai @@ -66,7 +66,7 @@ - Notepad + Nakayoshi Diary 1995 Bandai @@ -110,6 +110,32 @@ + + + + + Gokinjo Monogatari + 1996 + Bandai + + + + + + + + + + + Tare Panda + 2000 + Bandai + + + + + + diff -Nru mame-0.223+dfsg.1/hash/t1000.xml mame-0.224+dfsg.1/hash/t1000.xml --- mame-0.223+dfsg.1/hash/t1000.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/t1000.xml 2020-08-26 08:57:19.000000000 +0000 @@ -58,6 +58,19 @@ + + MS-DOS (Version 3.30, Tandy version 3.30.22) (Tandy 1000 SL/2) + 1989 + Tandy + + + + + + + + + DeskMate (Tandy 1000) @@ -87,6 +100,30 @@ + + + DeskMate 3 (Tandy 1000 SL/2) + 1989 + Tandy + + + + + + + + + + + + + + + + + + + Personal DeskMate diff -Nru mame-0.223+dfsg.1/hash/vector06_cart.xml mame-0.224+dfsg.1/hash/vector06_cart.xml --- mame-0.223+dfsg.1/hash/vector06_cart.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/vector06_cart.xml 2020-08-26 08:57:19.000000000 +0000 @@ -9,9 +9,10 @@ ROMDISK 19?? <unknown> + - + diff -Nru mame-0.223+dfsg.1/hash/vector06_flop.xml mame-0.224+dfsg.1/hash/vector06_flop.xml --- mame-0.223+dfsg.1/hash/vector06_flop.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/vector06_flop.xml 2020-08-26 08:57:19.000000000 +0000 @@ -9,6 +9,7 @@ MicroDOS v3.1 BIOS T-34 19?? <unknown> + @@ -20,6 +21,7 @@ MicroDOS v3.1M BIOS T-72 19?? <unknown> + @@ -31,6 +33,7 @@ Card Game 19?? <unknown> + @@ -43,6 +46,7 @@ 1995 <unknown> + @@ -55,6 +59,7 @@ 19?? <unknown> + @@ -66,6 +71,7 @@ Kombat Rabbits 1995 <unknown> + @@ -77,6 +83,7 @@ Lemmings 1996 <unknown> + @@ -88,6 +95,7 @@ Color Lines 19?? <unknown> + @@ -99,6 +107,7 @@ Master Reversi 19?? <unknown> + @@ -110,6 +119,7 @@ Puzznic 1996 <unknown> + @@ -121,6 +131,7 @@ Robocop 1995 <unknown> + @@ -132,6 +143,7 @@ Tetris 3D 1996 <unknown> + @@ -139,10 +151,11 @@ - + Zoo 19?? <unknown> + diff -Nru mame-0.223+dfsg.1/hash/vgmplay.xml mame-0.224+dfsg.1/hash/vgmplay.xml --- mame-0.223+dfsg.1/hash/vgmplay.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/vgmplay.xml 2020-08-26 08:57:19.000000000 +0000 @@ -10,8 +10,8 @@ Current Archives available at http://vgmrips.net/files/VGMRips_all_of_them_20170815.zip and http://vgmrips.net/files/VGMRips_all_of_them_20180807-update.zip --> - - Bomberman Collection (1996)(Hudson) + + Bomberman Collection (1996)(Hudson) (GameBoy) 1996 Hudson Soft @@ -30,7 +30,7 @@ - BStars + Vs. Janshi Brandnew Stars (Jaleco Mega System 32) 1997 Jaleco @@ -145,7 +145,7 @@ - Columns (MSX, FM) + Columns (MSX FM) 1990 Nihon Telenet @@ -194,7 +194,7 @@ - Dangar - Ufo Robo + Dangar - Ufo Robo (Arcade) 1986 Nichibutsu @@ -273,7 +273,7 @@ - DeroonDeroDero + Deroon DeroDero (Arcade) 1995 Tecmo @@ -381,9 +381,9 @@ - - Disc Station (FM) - 198? + + Disc Station (MSX FM) + 1988 Compile @@ -400,9 +400,9 @@ - - Disc Station (PSG) - 198? + + Disc Station (MSX PSG) + 1988 Compile @@ -420,7 +420,7 @@ - Famicom Disk System BIOS + Famicom Disk System BIOS (FDS) 1986 Nintendo @@ -432,11 +432,11 @@ - - FinalFantasy + + Final Fantasy 1 (MSX FM) 1989 Micro Cabin Corp. - + @@ -565,11 +565,11 @@ - - Fury of the Furries + + Fury of the Furries (PC) 1993 Kalisto Entertainment - + @@ -681,7 +681,7 @@ - Ginga NinkyouDen + Ginga NinkyouDen (Arcade) 1987 Jaleco @@ -958,7 +958,7 @@ - Hatris + Hatris (Arcade) 1990 Bullet-Proof Software @@ -1013,7 +1013,7 @@ - Jumbo Ozaki Super Masters Golf + Jumbo Ozaki Super Masters Golf (Arcade) 1989 Sega @@ -1080,10 +1080,10 @@ - Lemmings DOS + Lemmings DOS (PC) 1991 Psygnosis - + @@ -1273,7 +1273,7 @@ - M82 Game Selectable Working Product Display + M82 Game Selectable Working Product Display (Kiosk) 199? Nintendo @@ -1286,7 +1286,7 @@ - Magician Lord + Magician Lord (SNK Neo Geo) 1990 Alpha Denshi Corporation @@ -1407,7 +1407,7 @@ - Mr Goemon + Mr Goemon (Arcade) 1986 Konami @@ -1503,8 +1503,8 @@ - - Namco Disk Magazine + + Namco Community Disk Magazine (MSX FM) 1989 Namco @@ -1517,7 +1517,7 @@ - Neo-Geo SNK BIOS + Neo-Geo BIOS (SNK Neo Geo) 1990 SNK @@ -1536,10 +1536,10 @@ - NGP BIOS + NGP BIOS (SNK NEO GEO POCKET) 1999 SNK - + @@ -1554,8 +1554,8 @@ - - Puzzle de Pon + + Puzzle de Pon (Arcade) 1995 Visco @@ -1646,7 +1646,7 @@ - Quartet + Quartet (Sega System 16A) 1986 Sega @@ -1695,7 +1695,7 @@ - Riddle of Pythagoras + Riddle of Pythagoras (Sega System E) 1988 Sega @@ -1744,7 +1744,7 @@ - Sagaia + Sagaia (Arcade) 1991 Taito @@ -1852,11 +1852,11 @@ - - Sonyc FM + + Sonyc (MSX2 Moonsound) 1997 Analogy - + @@ -1931,11 +1931,11 @@ - - Sonyc MS + + Sonyc (MSX2 FM) 1997 Analogy - + @@ -2011,7 +2011,7 @@ - SvC MoTM + SNK Vs. Capcom (Neo Geo Pocker Color) 1999 SNK @@ -2263,8 +2263,8 @@ - - Tetris (SystemE) + + Tetris (Sega System E) 1988 Sega @@ -2294,8 +2294,8 @@ - - Tetris Classic + + Tetris Classic (PC) 1992 Spectrum HoloByte, Inc. @@ -14337,7 +14337,7 @@ - Lot Lot + Lot Lot (Arcade) 1985 Tokuma Shoten @@ -21078,7 +21078,7 @@ - Route 16 + Route 16 (Arcade) 1981 Sunsoft @@ -25811,7 +25811,7 @@ - + Tetris (Atari) (Arcade) 1988 Atari Games @@ -26924,7 +26924,7 @@ - ToukiDenshou + Toukidenshou - Angel Eyes (Arcade) 1996 Tecmo @@ -50636,7 +50636,7 @@ - Life Force + Life Force (Arcade) 1987 Konami @@ -52312,10 +52312,10 @@ - Salamander + Salamander (Arcade) 1987 Konami - + @@ -52644,7 +52644,7 @@ - Scramble + Scramble (Arcade) 1981 Konami @@ -61488,10 +61488,10 @@ - Clutch Hitter + Clutch Hitter (Arcade) 1991 Sega - + @@ -62890,7 +62890,7 @@ - Enduro Racer + Enduro Racer (Arcade) 1986 Sega @@ -65957,7 +65957,7 @@ - Shinobi + Shinobi (Sega System 16A) 1987 Sega @@ -66316,7 +66316,7 @@ - Super Monaco GP + Super Monaco GP (Arcade) 1989 Sega @@ -69767,7 +69767,7 @@ - Cadash + Cadash (Arcade) 1989 Taito Corporation Japan @@ -74756,7 +74756,7 @@ - Rastan + Rastan (Arcade) 1987 Taito Corporation Japan @@ -77267,7 +77267,7 @@ - Volfied + Volfied (Arcade) 1989 Taito @@ -80505,7 +80505,7 @@ - Game Boy BIOS + Game Boy BIOS (GameBoy) 1989 Nintendo @@ -81110,7 +81110,7 @@ - Kirby's Dream Land + Kirby's Dream Land (GameBoy)_ 1992 Nintendo @@ -99178,7 +99178,7 @@ Puzzle Bobble (B System, Neo Geo) 1994 Taito Corporation - + @@ -131148,7 +131148,7 @@ Robert Byrne's Pool Challenge (NES) - 19?? + 1992 American Video @@ -133869,7 +133869,7 @@ Super HIK 300 in 1 (NES) - ???? + 19?? Unknown @@ -138929,7 +138929,7 @@ War on Wheels (NES) - 19?? + 1991 Jaleco, Ltd. @@ -152041,7 +152041,7 @@ Flicky (Sharp X1) - 198? + 1985 Micronet @@ -161727,7 +161727,7 @@ Pro Yakyuu Family Stadium '89 - Pennant Race Ban (NEC PC-88VA) - 19?? + 1989 Game Arts @@ -173537,7 +173537,7 @@ The Legend of Kage (Sharp X1) - 198? + 1987 Nidecom Carry @@ -176645,7 +176645,7 @@ Xevious (Atari 5200) - 19?? + 1984 Atari @@ -198107,7 +198107,7 @@ - + Test Drive III - The Passion (IBM PC XT AT) 1990 Accolade @@ -229233,7 +229233,7 @@ SimCity (NES) - 19?? + 1991 Nintendo @@ -236810,7 +236810,7 @@ UWC (NES) - 198? + 1988 Seta @@ -237877,1017 +237877,4865 @@ + - + + Ago Board (MSX2, PSG) + 1989 + Konami + + + + + + + + + + + + + + + + + + + + - - 16t (GEN/MD) - 19?? - Sega - + + Ago Board (MSX2, SCC) + 1989 + Konami + - - - + + + - - - + + + - - - + + + + + + + + + Aleste (MSX2, OPLL) + 1988 + Compile + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - - 2048~16 (GEN/MD) - 19?? - Titan - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - 3 Ninjas Kick Back (GEN/MD) - 19?? - Malibu Entertainment - + + Aleste (MSX2, PSG) + 1988 + Compile + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - 32X PWM Test (GEN/MD) - 19?? - Sega - - - - - + + + + + + + + + + - - A Bug's Life (GEN/MD) - 19?? - unknown - + + Altered Beast (ZX Spectrum 128) + 1989 + Activision (E) / The Hit Squad (E) / MCM (S) + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - A Ressha de Ikou MD (GEN/MD) - 19?? - Artdink / Sega - + + Bubble Bobble (ZX Spectrum 128) + 1987 + Firebird (E) / The Hit Squad (E) / Dro (S) / Musical 1 (S) + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + Don Doko Don 2 (Family Computer) + 1992 + Taito + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - Aa Harimanada (GEN/MD) + + Famicom Yarou Vol. 1 (NES) 19?? - Sega - + unknown + - - - + + + + + + + + + Great Sluggers - New World Stadium (Namco NB-1) + 1993 + Namco + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + Great Sluggers Featuring 1994 Team Rosters (Namco NB-1) + 1993 + Namco + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - AAAHH!!! Real Monsters (GEN/MD) - 19?? - Viacom New Media - + + Heart Heat Girls (NEC PC-9801) + 1993 + Cat's Pro + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - Action 52 (GEN/MD) - 19?? - Active Enterprises / FarSight Technologies - + + Nester's Funky Bowling (Nintendo Virtual Boy) + 1996 + Nintendo + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + Orphe Music Disk (NEC PC-8801) + 1991 + Orphe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + Pit-Fighter (ZX Spectrum 128) + 1991 + Domark (E) / Dro (S) + + + + + - - - - + + + + R-Type (NEC PC-88VA) + 1988 + NEC Home Electronics + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + - - Addams Family Values (GEN/MD) - 19?? - Ocean - + + Samurai Shodown (Neo Geo) + 1993 + SNK + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Samurai Shodown II (Neo Geo) + 1994 + SNK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SegaSonic Cosmo Fighter (Sega System C-2) + 1993 + Sega + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + South Park (Nintendo Game Boy Color) + 1999 + Acclaim Entertainment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Spider-Man - The Videogame (Sega System 32) + 1991 + Sega + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Star Ship Rendezvous (NEC PC-9801) + 1988 + Scaptrust + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Super Cobra (MSX, PSG) + 1983 + Konami + + + + + + + + + + + + + + + + + Super Cobra (MSX, SCC) + 1983 + Konami + + + + + + + + + + + + + + + + + The Jetsons - Cogswell's Caper! (NES) + 1992 + Taito (W) / Mattel (A) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Jetsons - Robot Panic (Nintendo Game Boy) + 1992 + Taito + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Athletic Land (MSX) + 1984 + Konami + + + + + + + + + + + + + + + + + + + + + + + Cabbage Patch Kids (MSX) + 1984 + Konami + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Circus Charlie (MSX) + 1984 + Konami + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clash Pennant Race 2 (MSX2, SCC) + 1989 + Konami + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cyber Commando (Namco System 22) + 1994 + Namco + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Frogger (MSX) + 1983 + Konami + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Great Sluggers '94 - New World Stadium (Namco NB-1) + 1994 + Namco + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hyper Rally (MSX, PSG) + 1985 + Konami + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hyper Rally (MSX, SCC) + 1985 + Konami + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Looney Tunes (Nintendo Game Boy) + 1992 + Sunsoft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Metal Slug 2 (SNK Neo Geo) + 1998 + SNK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Super Mario Bros. Deluxe (Nintendo Game Boy Color) + 1999 + Nintendo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Super World Stadium '95 (Namco NB-1) + 1995 + Namco + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Super World Stadium '98 (Namco System 12) + 1998 + Namco + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Toy Story (Dendy) + 1997 + NT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16t (GEN/MD) + 1991 + Sega + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2048~16 (GEN/MD) + 2014 + Titan + + + + + + + + + + + 3 Ninjas Kick Back (GEN/MD) + 1994 + Malibu Entertainment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 32X PWM Test (GEN/MD) + 2014 + Sega + + + + + + + + + + + A Bug's Life (GEN/MD) + 199? + unknown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Ressha de Ikou MD (GEN/MD) + 1992 + Artdink / Sega + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Aa Harimanada (GEN/MD) + 1993 + Sega + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AAAHH!!! Real Monsters (GEN/MD) + 1995 + Viacom New Media + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Action 52 (GEN/MD) + 1993 + Active Enterprises / FarSight Technologies + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Addams Family Values (GEN/MD) + 1995 + Ocean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -238919,7 +242767,7 @@ Advanced Daisenryaku (GEN/MD) - 19?? + 1991 Sega @@ -238986,7 +242834,7 @@ Aero the Acro-Bat 2 (GEN/MD) - 19?? + 1994 Iguana / Sunsoft @@ -239113,7 +242961,7 @@ Aero the Acro-Bat (GEN/MD) - 19?? + 1993 Sunsoft / Iguana @@ -239258,7 +243106,7 @@ Aerobiz (Air Management) (GEN/MD) - 19?? + 1992 Koei @@ -239421,7 +243269,7 @@ Aerobiz Supersonic (GEN/MD) - 19?? + 1994 Koei @@ -239560,8 +243408,8 @@ After Burner Complete 32X (GEN/MD) - 19?? - No_Data + 1994 + Sega @@ -239615,7 +243463,7 @@ After Burner II (GEN/MD) - 19?? + 1990 Sega / Denpa Shinbunsha @@ -239670,7 +243518,7 @@ Air Buster (Aero Blasters) (GEN/MD) - 19?? + 1991 Kaneko @@ -239761,7 +243609,7 @@ Air Diver (GEN/MD) - 19?? + 1990 Asmik / Siesmic @@ -239876,7 +243724,7 @@ Aladdin (GEN/MD) - 19?? + 1993 Sega / Virgin Games / Walt Disney Company @@ -239991,7 +243839,7 @@ Alex Kidd in the Enchanted Castle (GEN/MD) - 19?? + 1990 SEGA @@ -240112,7 +243960,7 @@ Alien 3 (GEN/MD) - 19?? + 1993 Probe / Arena @@ -240215,7 +244063,7 @@ Alien Soldier (GEN/MD) - 19?? + 1995 Treasure / Sega @@ -240366,7 +244214,7 @@ Alien Storm (GEN/MD) - 19?? + 1991 Sega @@ -240475,7 +244323,7 @@ Alisia Dragoon (GEN/MD) - 19?? + 1992 Sega / Game Arts @@ -240674,7 +244522,7 @@ Altered Beast (GEN/MD) - 19?? + 1989 Sega @@ -240759,7 +244607,7 @@ American Gladiators (GEN/MD) - 19?? + 1992 Gametek / Imagitek @@ -240772,7 +244620,7 @@ Animaniacs (GEN/MD) - 19?? + 1994 Konami @@ -241085,7 +244933,7 @@ Arch Rivals (GEN/MD) - 19?? + 1992 Flying Edge @@ -241134,7 +244982,7 @@ Arcus Odyssey (GEN/MD) - 19?? + 1991 Wolfteam / Renovation @@ -241327,7 +245175,7 @@ Arnold Palmer Tournament Golf (Ozaki Naomichi no Super Masters) (GEN/MD) - 19?? + 1989 Sega @@ -241424,7 +245272,7 @@ Arrow Flash (GEN/MD) - 19?? + 1990 Sega / Renovation @@ -241527,7 +245375,7 @@ Art of Fighting (GEN/MD) - 19?? + 1994 Sega / SNK @@ -241666,7 +245514,7 @@ Asterix and the Great Rescue (GEN/MD) - 19?? + 1993 Sega @@ -241787,7 +245635,7 @@ Asterix and the Power of the Gods (GEN/MD) - 19?? + 1995 Sega / Core Design @@ -241914,7 +245762,7 @@ Atomic Robo-Kid (GEN/MD) - 19?? + 1990 UPL / Treco @@ -241981,7 +245829,7 @@ Atomic Runner (Chelnov) (GEN/MD) - 19?? + 1992 Data East @@ -242096,7 +245944,7 @@ ATP Tour Championship Tennis (GEN/MD) - 19?? + 1994 Sega / SIMS @@ -242199,7 +246047,7 @@ Awesome Possum Kicks Dr. Machino's Butt! (GEN/MD) - 19?? + 1993 Tengen @@ -242278,7 +246126,7 @@ Aworg - Hero in the Sky (GEN/MD) - 19?? + 1991 Sega @@ -242333,7 +246181,7 @@ AWS Pro Moves Soccer (GEN/MD) - 19?? + 1993 ASCII Entertainment @@ -242350,7 +246198,7 @@ - + Ayrton Senna's Super Monaco GP II (GEN/MD) 19?? Sega @@ -242449,7 +246297,7 @@ Back to the Future Part III (GEN/MD) - 19?? + 1991 Arena @@ -242480,7 +246328,7 @@ Bahamut Senki (GEN/MD) - 19?? + 1991 Sega @@ -242637,7 +246485,7 @@ Ball Jacks (GEN/MD) - 19?? + 1993 Namco @@ -242794,7 +246642,7 @@ Ballz (GEN/MD) - 19?? + 1994 Accolade @@ -242891,7 +246739,7 @@ Batman - Revenge of the Joker (GEN/MD) - 19?? + 1992 Sunsoft @@ -242976,7 +246824,7 @@ Batman Forever (GEN/MD) - 19?? + 1995 Probe / Acclaim @@ -243043,7 +246891,7 @@ Batman Returns (GEN/MD) - 19?? + 1992 Sega @@ -243164,7 +247012,7 @@ Batman (GEN/MD) - 19?? + 1992 Sunsoft @@ -243249,7 +247097,7 @@ Battle Golfer Yui (GEN/MD) - 19?? + 1991 Sega @@ -243392,7 +247240,7 @@ - + Battle Mania (Trouble Shooter) (GEN/MD) 19?? Studio Uchoo Tetsujin @@ -243545,7 +247393,7 @@ Battle Mania Daiginjou (GEN/MD) - 19?? + 1993 Vic Tokai @@ -243756,7 +247604,7 @@ Battle Squadron (GEN/MD) - 19?? + 1990 Electronic Arts @@ -243787,7 +247635,7 @@ Battlemaster (GEN/MD) - 19?? + 1991 Arena / Mirrorsoft @@ -243909,7 +247757,7 @@ Battletoads - Double Dragon (GEN/MD) - 19?? + 1993 Rare / Tradewest @@ -244030,7 +247878,7 @@ Battletoads (GEN/MD) - 19?? + 1991 Rare Ltd. / Sega @@ -244145,7 +247993,7 @@ Beast Wrestler (Beast Warriors) (GEN/MD) - 19?? + 1991 Renovation (Nihon Telenet) @@ -244254,7 +248102,7 @@ Beavis and Butthead (GEN/MD) - 19?? + 1994 Sega @@ -244435,7 +248283,7 @@ Beggar Prince (GEN/MD) - 19?? + 2005 Computer & @@ -244610,7 +248458,7 @@ Beyond Oasis (The Story of Thor) (GEN/MD) - 19?? + 1995 Sega @@ -244821,7 +248669,7 @@ Bible Adventures (GEN/MD) - 19?? + 1995 Wisdom Tree @@ -244858,7 +248706,7 @@ Bill's Tomato Game (GEN/MD) - 19?? + 199? Sega @@ -245033,7 +248881,7 @@ Bimini Run (GEN/MD) - 19?? + 1990 Nuvision Entertainment @@ -245076,7 +248924,7 @@ Bio-Hazard Battle (Crying) (GEN/MD) - 19?? + 1992 Sega @@ -245143,7 +248991,7 @@ Bishoujo Senshi Sailor Moon (GEN/MD) - 19?? + 1994 Ma-Ba @@ -245354,8 +249202,8 @@ Blackthorne 32X (GEN/MD) - 19?? - No_Data + 1994 + Interplay/Blizzard @@ -245397,7 +249245,7 @@ Blades of Vengeance (GEN/MD) - 19?? + 1993 Beam Software @@ -245506,7 +249354,7 @@ Blaster Master 2 (GEN/MD) - 19?? + 1993 Sunsoft @@ -245585,7 +249433,7 @@ Blockout (GEN/MD) - 19?? + 1991 California Dreams @@ -245616,7 +249464,7 @@ Blue Almanac (GEN/MD) - 19?? + 1991 Kodansha / Hot-B @@ -245749,7 +249597,7 @@ BOB (GEN/MD) - 19?? + 1993 Electronic Arts / Chris Gray Enterprises / Sega @@ -245798,7 +249646,7 @@ Body Count (GEN/MD) - 19?? + 1994 Probe / Sega @@ -245895,7 +249743,7 @@ Bonanza Brothers (GEN/MD) - 19?? + 1991 Sega @@ -245974,7 +249822,7 @@ Boogerman (GEN/MD) - 19?? + 1994 Interplay @@ -246077,7 +249925,7 @@ Boxing Legends of the Ring (GEN/MD) - 19?? + 1993 Sculptured Software / Electro Brain @@ -246126,7 +249974,7 @@ Bram Stoker's Dracula (GEN/MD) - 19?? + 1993 Sony Imagesoft / Psygnosis @@ -246289,7 +250137,7 @@ Brave Battle Saga (GEN/MD) - 19?? + 199? ChuanPu Technology Co.,Ltd. @@ -246428,7 +250276,7 @@ Brutal - Paws of Fury (GEN/MD) - 19?? + 1994 Gametek @@ -246483,7 +250331,7 @@ Bubba 'n' Stix (GEN/MD) - 19?? + 1994 Core @@ -246568,7 +250416,7 @@ Bubble and Squeak (GEN/MD) - 19?? + 1994 Sunsoft @@ -246623,7 +250471,7 @@ Bubsy in Claws Encounters of the Furred Kind (GEN/MD) - 19?? + 1993 Accolade @@ -246738,7 +250586,7 @@ Bugs Bunny in Double Trouble (GEN/MD) - 19?? + 1996 Sega/Probe/Climax @@ -246841,7 +250689,7 @@ Burning Force (GEN/MD) - 19?? + 1991 Namco @@ -246944,7 +250792,7 @@ Cadash (GEN/MD) - 19?? + 1992 Taito @@ -247089,7 +250937,7 @@ Caesars Palace (GEN/MD) - 19?? + 1993 Virgin Games @@ -247108,7 +250956,7 @@ Cagey Capers (GEN/MD) - 19?? + 1994 Time Warner Interactive / TecMagik / Alexandria @@ -247169,7 +251017,7 @@ Caliber 50 (GEN/MD) - 19?? + 1991 Seta / Mentrix @@ -247278,7 +251126,7 @@ California Games (GEN/MD) - 19?? + 1991 Epyx / Novotrade / Sega @@ -247333,7 +251181,7 @@ Cannon Fodder (GEN/MD) - 19?? + 1994 Sensible Software @@ -247719,7 +251567,7 @@ Captain America and the Avengers (GEN/MD) - 19?? + 1993 Data East / Sega / ISCO @@ -247852,7 +251700,7 @@ Castle of Illusion Starring Mickey Mouse (GEN/MD) - 19?? + 1990 Sega @@ -248015,7 +251863,7 @@ Castlevania - Bloodlines (Castlevania - The New Generation, Vampire Killer) (GEN/MD) - 19?? + 1994 Konami @@ -248208,7 +252056,7 @@ Chakan - The Forever Man (GEN/MD) - 19?? + 1992 Sunsoft / Iguana @@ -248305,7 +252153,7 @@ Championship Bowling (Boogie Woogie Bowling) (GEN/MD) - 19?? + 1993 Visco / Mentrix @@ -248372,7 +252220,7 @@ Championship Pro-Am (GEN/MD) - 19?? + 1992 Tradewest / Rare @@ -248427,7 +252275,7 @@ Chase HQ II (Super HQ) (GEN/MD) - 19?? + 1992 Taito @@ -248512,7 +252360,7 @@ Chester Cheetah - Too Cool to Fool (GEN/MD) - 19?? + 1992 Kaneko @@ -248597,7 +252445,7 @@ Chester Cheetah - Wild Wild Quest (GEN/MD) - 19?? + 1992 Kaneko @@ -248682,7 +252530,7 @@ Chi Chi's Pro Challenge (Top Pro Golf. Top Pro Golf 2) (GEN/MD) - 19?? + 1993 Virgin / Softvision @@ -248773,7 +252621,7 @@ Chibi Maruko-chan - Waku Waku Shopping (GEN/MD) - 19?? + 1992 Namco @@ -248870,7 +252718,7 @@ Chiki Chiki Boys (GEN/MD) - 19?? + 1992 Capcom / Sega @@ -249045,7 +252893,7 @@ Chou Kyuukai Miracle Nine (GEN/MD) - 19?? + 1995 Sega @@ -249160,7 +253008,7 @@ Chuck Rock II - Son of Chuck (GEN/MD) - 19?? + 1993 Core Design / Virgin Games @@ -249251,7 +253099,7 @@ Chuck Rock (GEN/MD) - 19?? + 1992 Core Design / Virgin Games @@ -249294,7 +253142,7 @@ Coach K College Basketball (GEN/MD) - 19?? + 1995 Electronic Arts @@ -249325,7 +253173,7 @@ Columns III - Revenge of Columns (GEN/MD) - 19?? + 1993 Sega / Vic Tokai @@ -249506,7 +253354,7 @@ Columns (GEN/MD) - 19?? + 1990 Sega @@ -249591,7 +253439,7 @@ Combat Cars (GEN/MD) - 19?? + 1994 Accolade @@ -249682,7 +253530,7 @@ Comix Zone (Beta) (GEN/MD) - 19?? + 1995 Sega @@ -249863,7 +253711,7 @@ Comix Zone (GEN/MD) - 19?? + 1995 Sega @@ -250020,7 +253868,7 @@ Conquering the World III (GEN/MD) - 19?? + 199? SKOB @@ -250141,7 +253989,7 @@ Contra Hard Corps (GEN/MD) - 19?? + 1994 Konami @@ -250322,7 +254170,7 @@ Cool Spot (GEN/MD) - 19?? + 1993 Virgin Interactive @@ -250437,7 +254285,7 @@ Corporation (Cyber-Cop) (GEN/MD) - 19?? + 1992 Core Design / Virgin @@ -250449,8 +254297,8 @@ - Cosmic Carnage (Cyber Brawl) (GEN/MD) - 19?? + Cosmic Carnage (Cyber Brawl) 32x (GEN/MD) + 1994 Sega @@ -250564,8 +254412,8 @@ - Cosmic Fantasy Stories (GEN/MD) - 19?? + Cosmic Fantasy Stories (Sega CD) (GEN/MD) + 1995 Telenet Japan, Riot @@ -250704,7 +254552,7 @@ Crack Down (GEN/MD) - 19?? + 1990 Sega / Sage's Creation @@ -250771,7 +254619,7 @@ Crayon Shin-Chan (GEN/MD) - 19?? + 1994 Ma-Ba @@ -250880,7 +254728,7 @@ CrossFire (Super Airwolf) (GEN/MD) - 19?? + 1991 Kyugo Boukei @@ -250953,7 +254801,7 @@ Crusader of Centy (Soleil, Shin Souseiki Ragnacenty) (GEN/MD) - 19?? + 1994 Nextech / Atlus @@ -251116,8 +254964,8 @@ Crüe Ball (Twisted Flipper) (GEN/MD) - 19?? - No_Data + 1992 + Electronic Arts @@ -251255,7 +255103,7 @@ Curse (GEN/MD) - 19?? + 1989 Micronet @@ -251352,7 +255200,7 @@ Cuty Suzuki no Ringside Angel (GEN/MD) - 19?? + 1990 Asmik @@ -251425,7 +255273,7 @@ Cyberball (GEN/MD) - 19?? + 1990 Sega / Atari Games @@ -251540,7 +255388,7 @@ Cyborg Justice (GEN/MD) - 19?? + 1993 Novatrade @@ -251601,7 +255449,7 @@ Daffy Duck in Hollywood (GEN/MD) - 19?? + 1994 Time Warner / Sega @@ -251710,7 +255558,7 @@ Dahna Megami Tanjou (GEN/MD) - 19?? + 199? IGS @@ -251831,7 +255679,7 @@ Dangerous Seed (GEN/MD) - 19?? + 1990 Namcot @@ -251952,7 +255800,7 @@ Darius II (Sagaia) (GEN/MD) - 19?? + 1990 Taito @@ -252049,7 +255897,7 @@ Dark Castle (GEN/MD) - 19?? + 1991 Electronic Arts @@ -252061,8 +255909,8 @@ - Dark Wizard (GEN/MD) - 19?? + Dark Wizard (SEGA CD)(GEN/MD) + 1993 Sega @@ -252165,7 +256013,7 @@ Darwin 4081 (GEN/MD) - 19?? + 1990 Data East / Sega @@ -252267,8 +256115,8 @@ - Darxide (GEN/MD) - 19?? + Darxide 32X (GEN/MD) + 1995 Fronteir / Sega @@ -252377,7 +256225,7 @@ Dashin' Desperadoes (GEN/MD) - 19?? + 1993 Data East @@ -252576,7 +256424,7 @@ Daze Before Christmas (GEN/MD) - 19?? + 1994 Funcom / Sunsoft @@ -252691,7 +256539,7 @@ Deadly Moves (Power Athlete) (GEN/MD) - 19?? + 1992 Kaneko @@ -252776,7 +256624,7 @@ Decap Attack (GEN/MD) - 19?? + 1991 Sega @@ -252933,7 +256781,7 @@ Demolition Man (GEN/MD) - 19?? + 1995 Alexandria / Acclaim @@ -253006,7 +256854,7 @@ Desert Strike - Return to the Gulf (GEN/MD) - 19?? + 1992 Electronic Arts @@ -253157,7 +257005,7 @@ Devil's Course (GEN/MD) - 19?? + 1994 Sega / T&E Soft @@ -253284,7 +257132,7 @@ Devilish (GEN/MD) - 19?? + 1992 HOT-B @@ -253393,8 +257241,8 @@ Dial Q o Mawase! (GEN/MD) - 19?? - No_Data + 1992 + Studio Fazzy @@ -253442,7 +257290,7 @@ Dick Tracy (GEN/MD) - 19?? + 1991 Sega @@ -253539,7 +257387,7 @@ Dino Dini's Soccer (GEN/MD) - 19?? + 1994 Dini & Dini Productions @@ -253582,7 +257430,7 @@ Dino Land (GEN/MD) - 19?? + 1991 Wolfteam / Renovation @@ -253649,7 +257497,7 @@ Dinosaurs for Hire (GEN/MD) - 19?? + 1993 Sega interActive / Sega @@ -253722,7 +257570,7 @@ Disney's Ariel The Little Mermaid (GEN/MD) - 19?? + 1992 Sega of America, Inc. @@ -253825,7 +257673,7 @@ Divine Sealing (GEN/MD) - 19?? + 1991 Studio Fazzy @@ -253874,7 +257722,7 @@ DJ Boy (GEN/MD) - 19?? + 1991 Kaneko / Sega @@ -253971,7 +257819,7 @@ Doki Doki Penguin Land MD (GEN/MD) - 19?? + 1991 Sega @@ -254014,7 +257862,7 @@ Domino (GEN/MD) - 19?? + 199? New Game @@ -254069,7 +257917,7 @@ Donald Duck in Maui Mallard (GEN/MD) - 19?? + 1995 Disney Interactive @@ -254172,7 +258020,7 @@ Doraemon - Yume Dorobou to 7-nin no Gozans (GEN/MD) - 19?? + 1993 Sega @@ -254323,7 +258171,7 @@ Double Dragon 3 - The Rosetta Stone (GEN/MD) - 19?? + 1992 Acclaim / Flying Edge @@ -254366,7 +258214,7 @@ Double Dragon II - The Revenge (GEN/MD) - 19?? + 1991 Palsoft / Technos Japan @@ -254463,7 +258311,7 @@ Double Dragon V - The Shadow Falls (GEN/MD) - 19?? + 1994 Legend / Tradewest @@ -254572,7 +258420,7 @@ Double Dragon (GEN/MD) - 19?? + 1993 Accolade / Ballistic @@ -254627,7 +258475,7 @@ Double Dribble (Hyper Dunk) (GEN/MD) - 19?? + 1994 Konami @@ -254772,7 +258620,7 @@ Dr Robotnik's Mean Bean Machine (GEN/MD) - 19?? + 1993 Sega / Compile @@ -254929,7 +258777,7 @@ Dragon Ball Z - Bu Yuu Retsuden (L'Appel du Destin) (GEN/MD) - 19?? + 1994 Bandai @@ -255044,7 +258892,7 @@ Dragon Slayer - Eiyuu Densetsu II (GEN/MD) - 19?? + 1995 Falcom / Sega @@ -255279,7 +259127,7 @@ Dragon Slayer - Eiyuu Densetsu (GEN/MD) - 19?? + 1994 Falcom / Sega @@ -255454,7 +259302,7 @@ Dragon's Eye Plus - Shanghai 3 (GEN/MD) - 19?? + 1991 Home Data @@ -255521,7 +259369,7 @@ Dragon's Fury (GEN/MD) - 19?? + 1992 Tengen / Tecno Soft @@ -255660,7 +259508,7 @@ Dragon's Revenge (GEN/MD) - 19?? + 1993 Tengen @@ -255745,7 +259593,7 @@ Dune - The Battle for Arrakis (GEN/MD) - 19?? + 1993 Virgin Interactive @@ -255884,7 +259732,7 @@ Dune (GEN/MD) - 19?? + 1993 Virgin Games @@ -255945,8 +259793,8 @@ Dungeons & Dragons - Warriors of the Eternal Sun (GEN/MD) - 19?? - No_Data + 1992 + Westwood Associates @@ -256144,7 +259992,7 @@ Dyna Brothers 2 (GEN/MD) - 19?? + 1993 CSK Research Institute @@ -256355,7 +260203,7 @@ Dyna Brothers (GEN/MD) - 19?? + 1992 CRI @@ -256476,7 +260324,7 @@ Dynamite Duke (GEN/MD) - 19?? + 1990 Sega @@ -256537,7 +260385,7 @@ Dynamite Headdy (GEN/MD) - 19?? + 1994 Treasure / Sega @@ -256790,7 +260638,7 @@ Earnest Evans (GEN/MD) - 19?? + 1994 Wolfteam / Renovation @@ -256899,7 +260747,7 @@ Earthworm Jim 2 (GEN/MD) - 19?? + 1995 Shiny Entertainment @@ -256984,7 +260832,7 @@ Earthworm Jim (GEN/MD) - 19?? + 1994 Shiny Entertainment @@ -257081,7 +260929,7 @@ Ecco - The Tides of Time (GEN/MD) - 19?? + 1994 Novotrade / Sega @@ -257184,7 +261032,7 @@ Ecco Jr (GEN/MD) - 19?? + 1995 Novotrade / Sega @@ -257281,7 +261129,7 @@ Ecco the Dolphin (GEN/MD) - 19?? + 1993 Sega / Novotrade @@ -257402,7 +261250,7 @@ El Viento (GEN/MD) - 19?? + 1991 Wolfteam / Renovation @@ -257541,7 +261389,7 @@ Elemental Master (GEN/MD) - 19?? + 1993 Tecnosoft / Renovation @@ -257692,7 +261540,7 @@ Eliminate Down (GEN/MD) - 19?? + 1993 Soft Vision @@ -257897,7 +261745,7 @@ ESWAT - City Under Siege (GEN/MD) - 19?? + 1990 Sega @@ -257976,7 +261824,7 @@ Eternal Champions (GEN/MD) - 19?? + 1994 Sega @@ -258079,7 +261927,7 @@ European League Soccer (World Trophy Soccer, J-League Champion Soccer) (GEN/MD) - 19?? + 1993 Krisalis / Virgin Games @@ -258194,7 +262042,7 @@ Exile (XZR) (GEN/MD) - 19?? + 1991 Riot / Renovation @@ -258339,7 +262187,7 @@ Exo-Squad (GEN/MD) - 19?? + 1995 Novotrade / Playmates @@ -258526,7 +262374,7 @@ Exodus - Journey to the Promised Land (GEN/MD) - 19?? + 1993 Wisdom Tree @@ -258593,7 +262441,7 @@ F-15 Strike Eagle II (GEN/MD) - 19?? + 1993 Microprose @@ -258648,7 +262496,7 @@ F1 Circus MD (GEN/MD) - 19?? + 1991 Nichibutsu @@ -258847,7 +262695,7 @@ F1 World Championship (GEN/MD) - 19?? + 1993 Domark Software / Peakstar Software @@ -258896,7 +262744,7 @@ Fastest 1 (GEN/MD) - 19?? + 1991 Human @@ -258957,7 +262805,7 @@ Fatal Fury 2 (GEN/MD) - 19?? + 1994 SNK / Takara @@ -259106,7 +262954,7 @@ - + Fatal Fury (GEN/MD) 19?? Sega / SNK / Takara @@ -259229,7 +263077,7 @@ Fatal Labyrinth (GEN/MD) - 19?? + 1991 Sega @@ -259296,7 +263144,7 @@ Fatal Rewind (The Killing Game Show) (GEN/MD) - 19?? + 1991 Raising Hell / Psygnosis @@ -259321,7 +263169,7 @@ Ferrari Grand Prix Challenge (F1 Hero MD) (GEN/MD) - 19?? + 1992 Flying Edge / Varie @@ -259364,7 +263212,7 @@ Fido Dido (GEN/MD) - 19?? + 1994 Kaneko @@ -259437,7 +263285,7 @@ Fighting Masters (GEN/MD) - 19?? + 1992 Treco / Almanic @@ -259516,7 +263364,7 @@ Final Zone (GEN/MD) - 19?? + 1990 Wolfteam / Renovation @@ -259583,7 +263431,7 @@ Fire Mustang (GEN/MD) - 19?? + 1991 NMK / Taito @@ -259662,7 +263510,7 @@ Fire Shark (GEN/MD) - 19?? + 1991 Toaplan @@ -259729,7 +263577,7 @@ Flashback - The Quest for Identity (GEN/MD) - 19?? + 1993 Delphine / US Gold @@ -259941,7 +263789,7 @@ Forgotten Worlds (GEN/MD) - 19?? + 1989 Capcom / Sega @@ -260050,7 +263898,7 @@ Fun Car Rally (Beta) (GEN/MD) - 19?? + 199? Unknown @@ -260105,7 +263953,7 @@ Fushigi no Umi no Nadia (GEN/MD) - 19?? + 1991 Namco @@ -260316,7 +264164,7 @@ G-LOC (GEN/MD) - 19?? + 1993 Sega / Probe @@ -260431,7 +264279,7 @@ Gadget Twins (GEN/MD) - 19?? + 1992 Gametek / Imagitek @@ -260564,7 +264412,7 @@ Gaiares (GEN/MD) - 19?? + 1990 Telenet / Renovation @@ -260740,7 +264588,7 @@ Galaxy Force II (GEN/MD) - 19?? + 1991 CSK Research Institute @@ -260807,7 +264655,7 @@ Gambler Jiko Chuushinha - Katayama Masayuki no Mahjong Doujou (GEN/MD) - 19?? + 1990 Game Arts @@ -260970,7 +264818,7 @@ Game no Kandzume Otokuyou (GEN/MD) - 19?? + 199? Sega @@ -260983,7 +264831,7 @@ Garfield - Caught in the Act (GEN/MD) - 19?? + 1995 Segasoft / Sega / PAWS @@ -261122,7 +264970,7 @@ Gargoyles (GEN/MD) - 19?? + 1995 Buena Vista Interactive @@ -261195,7 +265043,7 @@ Gauntlet IV (GEN/MD) - 19?? + 1993 Tengen / M2 @@ -261310,7 +265158,7 @@ Gemfire (GEN/MD) - 19?? + 1992 Koei @@ -261431,7 +265279,7 @@ General Chaos (General Chaos - Daikonsen) (GEN/MD) - 19?? + 1994 Electronic Arts, Inc. @@ -261456,7 +265304,7 @@ Genghis Khan II - Clan of the Grey Wolf (GEN/MD) - 19?? + 1993 Koei @@ -261631,7 +265479,7 @@ George Foreman's KO Boxing (GEN/MD) - 19?? + 1992 Flying Edge @@ -261662,7 +265510,7 @@ Ghostbusters (GEN/MD) - 19?? + 1990 Sega / Compile @@ -261801,7 +265649,7 @@ Ghouls 'n Ghosts (GEN/MD) - 19?? + 1989 Capcom, Sega @@ -261964,8 +265812,8 @@ Gleylancer (GEN/MD) - 19?? - No_Data + 1992 + NCS @@ -262109,7 +265957,7 @@ Global Gladiators (GEN/MD) - 19?? + 1993 Virgin Games @@ -262188,7 +266036,7 @@ Gods (GEN/MD) - 19?? + 1993 Bitmap Brothers / Mindscape / Accolade @@ -262374,9 +266222,9 @@ - + Golden Axe III (GEN/MD) - 19?? + 1993 Sega @@ -262539,7 +266387,7 @@ Golden Axe (GEN/MD) - 19?? + 1989 Sega @@ -262624,7 +266472,7 @@ Gouketsuji Ichizoku (Power Instinct) (GEN/MD) - 19?? + 1994 Atlus @@ -262757,7 +266605,7 @@ Granada (GEN/MD) - 19?? + 1990 Wolf Team / Sega @@ -262870,9 +266718,9 @@ - + Grand Slam (GEN/MD) - 19?? + 1992 Nihon Telenet / Renovation @@ -262909,7 +266757,7 @@ Greendog - The Beached Surfer Dude (GEN/MD) - 19?? + 1992 Sega @@ -263000,7 +266848,7 @@ Grind Stormer (GEN/MD) - 19?? + 1994 Tengen / Toaplan @@ -263079,7 +266927,7 @@ Growl (Runark) (GEN/MD) - 19?? + 1991 Taito @@ -263176,7 +267024,7 @@ Gunship (GEN/MD) - 19?? + 1993 U.S. Gold / Microprose @@ -263279,7 +267127,7 @@ Gunstar Heroes (GEN/MD) - 19?? + 1993 Treasure @@ -263436,7 +267284,7 @@ Gynoug (Wings of Wor) (GEN/MD) - 19?? + 1991 NCS Masaya / Dreamworks @@ -263557,7 +267405,7 @@ Harukanaru Augusta (GEN/MD) - 19?? + 1993 T&E Soft @@ -263678,7 +267526,7 @@ Heavy Nova (GEN/MD) - 19?? + 1992 Micronet @@ -263775,7 +267623,7 @@ Heavy Unit - Mega Drive Special (GEN/MD) - 19?? + 1990 Kaneko / Toho @@ -263896,7 +267744,7 @@ Hellfire (GEN/MD) - 19?? + 1991 Toaplan / NCS Masaya @@ -263963,7 +267811,7 @@ Herzog Zwei (GEN/MD) - 19?? + 1990 Tecnosoft / Sega @@ -264078,7 +267926,7 @@ High Seas Havoc (Captain Lang, Havoc) (GEN/MD) - 19?? + 1993 Data East / Codemasters @@ -264265,7 +268113,7 @@ Hit the Ice (GEN/MD) - 19?? + 1992 Taito / Aisystem Tokyo @@ -264344,7 +268192,7 @@ Honoo no Toukyuuji - Dodge Danpei (GEN/MD) - 19?? + 1992 Sega @@ -264495,7 +268343,7 @@ Hook (GEN/MD) - 19?? + 1992 Sony Imagesoft @@ -264580,7 +268428,7 @@ Hurricanes (GEN/MD) - 19?? + 1994 U.S. Gold @@ -264690,7 +268538,7 @@ Insector X (GEN/MD) - 19?? + 1990 Taito / Hot-B @@ -264775,7 +268623,7 @@ International Superstar Soccer Deluxe (GEN/MD) - 19?? + 1996 Factor 5 / Konami @@ -264860,7 +268708,7 @@ J-League Pro Striker 2 (GEN/MD) - 19?? + 1994 Sega @@ -264933,7 +268781,7 @@ J-League Pro Striker (GEN/MD) - 19?? + 1993 Sega @@ -264988,7 +268836,7 @@ James Bond 007 - The Duel (GEN/MD) - 19?? + 1992 Domark @@ -265049,7 +268897,7 @@ James Buster Douglas Knockout Boxing (GEN/MD) - 19?? + 1990 Sega / Taito @@ -265104,7 +268952,7 @@ James Pond - Underwater Agent (GEN/MD) - 19?? + 1993 Millenium / Electronic Arts @@ -265177,7 +269025,7 @@ James Pond 3 - Operation Starfish (GEN/MD) - 19?? + 1993 Millenium / Electronic Arts @@ -265262,7 +269110,7 @@ James Pond II - Codename RoboCod (GEN/MD) - 19?? + 1991 Millenium / Electronic Arts @@ -265323,7 +269171,7 @@ Janou Touryuumon (GEN/MD) - 19?? + 1993 Sega / Game Arts @@ -265396,7 +269244,7 @@ Jantei Monogatari (GEN/MD) - 19?? + 1991 Reno / Atlus @@ -265487,7 +269335,7 @@ Jeopardy! (GEN/MD) - 19?? + 1992 GameTek @@ -265506,7 +269354,7 @@ Jewel Master (GEN/MD) - 19?? + 1991 Sega @@ -265645,7 +269493,7 @@ Jim Power - The Arcade Game (GEN/MD) - 19?? + 199? Loricel @@ -265658,7 +269506,7 @@ Jimmy White's Whirlwind Snooker (GEN/MD) - 19?? + 1991 Virgin Games @@ -265671,7 +269519,7 @@ Joe & Mac (GEN/MD) - 19?? + 1991 Data East / Takara @@ -265732,7 +269580,7 @@ John Madden Football '92 (GEN/MD) - 19?? + 1991 Electronic Arts / Park Place Productions @@ -265763,7 +269611,7 @@ John Madden Football '93 (GEN/MD) - 19?? + 1992 Electronic Arts / Looking Glass Studios @@ -265788,7 +269636,7 @@ John Madden Football (GEN/MD) - 19?? + 1990 Electronic Arts / Park Place Productions @@ -265823,9 +269671,9 @@ - + Junction (GEN/MD) - 19?? + 1990 Micronet / Konami @@ -265886,7 +269734,7 @@ Jungle Strike (GEN/MD) - 19?? + 1993 nite Bay / Electronic Arts @@ -266097,7 +269945,7 @@ Jurassic Park (GEN/MD) - 19?? + 1993 Sega / Bluesky / Amblin @@ -266206,7 +270054,7 @@ Ka-Ge-Ki - Fists of Steel (GEN/MD) - 19?? + 1991 Kaneko / Hot-B @@ -266454,7 +270302,7 @@ Kidou Keisatsu Patlabor (GEN/MD) - 19?? + 1992 Ma-Ba @@ -266575,7 +270423,7 @@ King Colossus (GEN/MD) - 19?? + 1992 Sega @@ -266684,7 +270532,7 @@ King of the Monsters 2 (GEN/MD) - 19?? + 1994 SNK / Takara @@ -266841,7 +270689,7 @@ King of the Monsters (GEN/MD) - 19?? + 1993 SNK / Takara @@ -266902,7 +270750,7 @@ King Salmon (GEN/MD) - 19?? + 1993 Hot-B / Vic Tokai @@ -267005,7 +270853,7 @@ King's Bounty - The Conqueror's Quest (GEN/MD) - 19?? + 1991 New World Computing / @@ -267048,7 +270896,7 @@ Kishi Densetsu (GEN/MD) - 19?? + 1993 Kodansha @@ -267161,9 +271009,9 @@ - + Kiss Shot (GEN/MD) - 19?? + 1992 Sega @@ -267206,7 +271054,7 @@ Klax (GEN/MD) - 19?? + 1990 Tengen @@ -267219,8 +271067,8 @@ Knuckles' Chaotix 32X (GEN/MD) - 19?? - No_Data + 1995 + Sega @@ -267496,7 +271344,7 @@ Krusty's Super Fun House (GEN/MD) - 19?? + 1992 Acclaim / Flying Edge / Fox Williams / Audiogenic @@ -267551,7 +271399,7 @@ Kyuukai Douchuuki (GEN/MD) - 19?? + 1991 Namco @@ -267798,7 +271646,7 @@ Landstalker (GEN/MD) - 19?? + 1993 Climax / Sega @@ -268027,7 +271875,7 @@ Langrisser II (GEN/MD) - 19?? + 1994 NCS Masaya @@ -268220,7 +272068,7 @@ Last Action Hero (GEN/MD) - 19?? + 1993 BITS / Sony Imagesoft @@ -268269,7 +272117,7 @@ Last Battle (Hokuto no Ken) (GEN/MD) - 19?? + 1989 Sega @@ -268366,7 +272214,7 @@ Legend of Wukong (GEN/MD) - 19?? + 2008 TW Ming Technology Co.,Ltd @@ -268439,7 +272287,7 @@ Lemmings 2 - The Tribes (GEN/MD) - 19?? + 1994 Psygnosis / Digital @@ -268542,7 +272390,7 @@ Lemmings (GEN/MD) - 19?? + 1992 Sunsoft / Psygnosis @@ -268699,7 +272547,7 @@ Lethal Enforcers II - Gun Fighters (GEN/MD) - 19?? + 1994 Sega @@ -268850,7 +272698,7 @@ Lethal Enforcers (GEN/MD) - 19?? + 1993 Konami @@ -268983,7 +272831,7 @@ Liberty or Death (GEN/MD) - 19?? + 1994 Koei @@ -269098,7 +272946,7 @@ Light Crusader (GEN/MD) - 19?? + 1995 Treasure @@ -269279,7 +273127,7 @@ Lord Monarch - Tokoton Sentou Densetsu (GEN/MD) - 19?? + 1994 Sega / Nihon Falcom @@ -269526,7 +273374,7 @@ Lotus II - R.E.C.S (GEN/MD) - 19?? + 1993 Electronic Arts / Gremlin @@ -269575,7 +273423,7 @@ M.U.S.H.A. (Musha Aleste) (GEN/MD) - 19?? + 1990 ompile / Seismic / Toaplan @@ -269682,7 +273530,7 @@ - + Madou Monogatari I (GEN/MD) 19?? Compile / LMS Music @@ -269913,7 +273761,7 @@ Magic Girl (GEN/MD) - 19?? + 199? Gamtec @@ -269974,7 +273822,7 @@ Magical Hat no Buttobi Turbo! Daibouken (GEN/MD) - 19?? + 1990 Sega @@ -270125,7 +273973,7 @@ Magical Taruruuto-kun (GEN/MD) - 19?? + 1992 Sega @@ -270300,7 +274148,7 @@ Mahjong Cop Ryuu - Shiro Ookami no Yabou (GEN/MD) - 19?? + 1989 Sega @@ -270463,7 +274311,7 @@ Mamono Hunter Youko (GEN/MD) - 19?? + 1991 NCS Masaya @@ -270536,7 +274384,7 @@ Man Overboard! (GEN/MD) - 19?? + 1994 Codemasters @@ -270615,7 +274463,7 @@ Marble Madness (GEN/MD) - 19?? + 1993 Electronic Arts @@ -270670,7 +274518,7 @@ Marko's Magic Football (GEN/MD) - 19?? + 1994 Domark / Cartoon Mavericks @@ -270779,7 +274627,7 @@ Marsupilami (GEN/MD) - 19?? + 1995 Marsu/Sega @@ -271038,7 +274886,7 @@ Marvel Land (Talmit's Adventure) (GEN/MD) - 19?? + 1991 Namco @@ -271165,7 +275013,7 @@ Mary Shelley's Frankenstein (GEN/MD) - 19?? + 1994 BITS Corporation @@ -271244,7 +275092,7 @@ Master of Monsters (GEN/MD) - 19?? + 1991 Toshiba EMI / Renovation / System Soft / ISCO @@ -271317,7 +275165,7 @@ Master of Weapon (GEN/MD) - 19?? + 1991 Taito @@ -271408,7 +275256,7 @@ Maten no Soumetsu (GEN/MD) - 19?? + 1993 Kodansha @@ -271541,7 +275389,7 @@ Mazin Saga (GEN/MD) - 19?? + 1993 Almanic / Sega / Vic Tokai @@ -271650,7 +275498,7 @@ McDonald's Treasure Land Adventure (GEN/MD) - 19?? + 1993 Treasure / Sega @@ -271813,7 +275661,7 @@ Mega Anser (GEN/MD) - 19?? + 199? Sega @@ -271874,7 +275722,7 @@ Mega Bomberman Demo (GEN/MD) - 19?? + 199? Factor 5/ Hudson Soft @@ -271887,7 +275735,7 @@ Mega Bomberman (GEN/MD) - 19?? + 1994 Hudson / Sega @@ -272579,7 +276427,7 @@ Mega Turrican (GEN/MD) - 19?? + 1994 Factor 5 / Data East @@ -272754,7 +276602,7 @@ Mega-Lo-Mania (Tyrants) (GEN/MD) - 19?? + 1992 Sensible Software @@ -272779,7 +276627,7 @@ Megapanel (GEN/MD) - 19?? + 1990 Namcot @@ -272864,7 +276712,7 @@ Mercs (Senjou no Ookami II) (GEN/MD) - 19?? + 1991 Capcom / Sega @@ -273075,7 +276923,7 @@ Metal Fangs (GEN/MD) - 19?? + 1993 Victor Musical Industries @@ -273171,8 +277019,8 @@ - Metal Head (GEN/MD) - 19?? + Metal Head 32x (GEN/MD) + 1995 Sega @@ -273311,7 +277159,7 @@ Michael Jackson's Moonwalker (GEN/MD) - 19?? + 1990 Sega @@ -273558,7 +277406,7 @@ Mickey Mania (GEN/MD) - 19?? + 1994 Traveller's Tales @@ -273709,7 +277557,7 @@ Micro Machines - Turbo Tournament '96 (GEN/MD) - 19?? + 1995 Supersonic / Codemasters @@ -273798,7 +277646,7 @@ - + Micro Machines 2 - Turbo Tournament (GEN/MD) 19?? Supersonic / Codemasters @@ -273891,7 +277739,7 @@ Micro Machines Military (GEN/MD) - 19?? + 1996 Supersonic / Codemasters @@ -273982,7 +277830,7 @@ Midnight Resistance (GEN/MD) - 19?? + 1991 Sega / Data East @@ -274049,7 +277897,7 @@ Might and Magic - Gates to Another World (GEN/MD) - 19?? + 1991 New World Computing @@ -274152,7 +278000,7 @@ Mighty Morphin Power Rangers - The Fighting Edition (GEN/MD) - 19?? + 199? Unknown @@ -274255,7 +278103,7 @@ Mighty Morphin Power Rangers - The Movie (GEN/MD) - 19?? + 1995 Sega / SIMS @@ -274376,7 +278224,7 @@ Mighty Morphin Power Rangers (GEN/MD) - 19?? + 1994 SEGA @@ -274527,7 +278375,7 @@ Minnesota Fats - Pool Legend (GEN/MD) - 19?? + 1995 Data East @@ -274726,7 +278574,7 @@ Monster World IV (GEN/MD) - 19?? + 1994 Sega / Westone @@ -274925,7 +278773,7 @@ Mortal Kombat 3 (& Ultimate MK3) (GEN/MD) - 19?? + 1995 Midway / Williams @@ -275160,7 +279008,7 @@ Mortal Kombat II (GEN/MD) - 19?? + 1994 Midway / Probe / Acclaim @@ -275359,7 +279207,7 @@ Mortal Kombat (GEN/MD) - 19?? + 1993 Arena / Midway / Probe @@ -275462,7 +279310,7 @@ Mr. Nutz (GEN/MD) - 19?? + 1994 Ocean @@ -275559,7 +279407,7 @@ Mutant League Football (GEN/MD) - 19?? + 1993 Electronic Arts @@ -275626,7 +279474,7 @@ Mystic Defender (GEN/MD) - 19?? + 1989 Sega @@ -275717,7 +279565,7 @@ Mystical Fighter (Maou Renjishi) (GEN/MD) - 19?? + 1992 Taito / Dreamwork @@ -275844,7 +279692,7 @@ Nakajima Satoru Kanshuu - F1 Grand Prix (GEN/MD) - 19?? + 1991 Varie @@ -275983,7 +279831,7 @@ Nakajima Satoru Kanshuu - F1 Super License (GEN/MD) - 19?? + 1992 Varie @@ -276146,7 +279994,7 @@ NBA Jam (GEN/MD) - 19?? + 1993 Acclaim / Iguana / Midway @@ -276225,7 +280073,7 @@ NBA Live 95 (GEN/MD) - 19?? + 1994 Electronic Arts @@ -276268,7 +280116,7 @@ NBA Live 96 (GEN/MD) - 19?? + 1995 Electronic Arts @@ -276311,7 +280159,7 @@ NBA Live 97 (GEN/MD) - 19?? + 1996 NuFX / Electronic Arts @@ -276354,7 +280202,7 @@ Nekketsu Koukou Dodgeball Bu - Soccer Hen MD (GEN/MD) - 19?? + 1992 Technos / Palsoft @@ -276553,7 +280401,7 @@ NFL '95 (GEN/MD) - 19?? + 1994 Double Diamond / Sega @@ -276608,7 +280456,7 @@ NHL All-Star Hockey '95 (GEN/MD) - 19?? + 1995 NuFX / Electronic Arts @@ -276765,7 +280613,7 @@ Nigel Mansell's World Championship Racing (GEN/MD) - 19?? + 1993 Gametek / Gremlin @@ -276808,7 +280656,7 @@ Nightmare Circus (GEN/MD) - 19?? + 1995 TecToy @@ -276923,7 +280771,7 @@ Nikkan Sports Pro Yakyuu VAN (GEN/MD) - 19?? + 1991 Sega @@ -277171,7 +281019,7 @@ Ninja Gaiden (GEN/MD) - 19?? + 1992 Sega / Tecmo @@ -277304,7 +281152,7 @@ No Escape (GEN/MD) - 19?? + 1994 BITS Corporation @@ -277389,7 +281237,7 @@ Nobunaga no Yabou - Bushou Fuuunroku (GEN/MD) - 19?? + 1991 Koei @@ -277546,7 +281394,7 @@ Nobunaga no Yabou - Haouden (GEN/MD) - 19?? + 1994 Koei @@ -277697,7 +281545,7 @@ Nobunaga's Ambition (Nobunaga no Yabou - Zenkokuban) (GEN/MD) - 19?? + 1993 Koei @@ -277758,7 +281606,7 @@ Onslaught (GEN/MD) - 19?? + 1991 Ballistic @@ -277783,7 +281631,7 @@ Operation Europe (GEN/MD) - 19?? + 1994 Koei @@ -277916,7 +281764,7 @@ Osomatsu-kun - Hachamecha Gekijou (GEN/MD) - 19?? + 1988 Sega @@ -278019,7 +281867,7 @@ OutRun 2019 (GEN/MD) - 19?? + 1993 SIMS / Sega @@ -278110,7 +281958,7 @@ OutRun (GEN/MD) - 19?? + 1991 Sega @@ -278147,7 +281995,7 @@ OutRunners (GEN/MD) - 19?? + 1994 Data East @@ -278400,7 +282248,7 @@ P.T.O. - Pacific Theater of Operations (GEN/MD) - 19?? + 1993 Koei @@ -278515,7 +282363,7 @@ Pac-Attack (Pac-Panic) (GEN/MD) - 19?? + 1993 Namco @@ -278594,7 +282442,7 @@ Pac-Man 2 - The New Adventures (GEN/MD) - 19?? + 1994 Namco @@ -278913,7 +282761,7 @@ Pac-Mania (GEN/MD) - 19?? + 1991 Tengen @@ -278986,7 +282834,7 @@ Pachinko Kuunyan (GEN/MD) - 19?? + 1992 Soft Vision International @@ -279155,7 +283003,7 @@ Panorama Cotton (GEN/MD) - 19?? + 1994 Sunsoft / Success @@ -279318,7 +283166,7 @@ Paperboy II (GEN/MD) - 19?? + 1992 Tengen @@ -279355,7 +283203,7 @@ Party Quiz Mega Q (GEN/MD) - 19?? + 1993 Sega @@ -279542,7 +283390,7 @@ Pebble Beach Golf Links (GEN/MD) - 19?? + 1993 Sega / T&E Soft @@ -279669,7 +283517,7 @@ Pepenga Pengo (GEN/MD) - 19?? + 1995 Sega @@ -279880,7 +283728,7 @@ Phantasy Star II (English) (GEN/MD) - 19?? + 1989 Sega @@ -280019,7 +283867,7 @@ Phantasy Star II (Japan) (GEN/MD) - 19?? + 1989 Sega @@ -280158,7 +284006,7 @@ Phantasy Star III - Generations of Doom (GEN/MD) - 19?? + 1990 Sega @@ -280387,7 +284235,7 @@ Phantasy Star IV (GEN/MD) - 19?? + 1994 Sega @@ -280682,7 +284530,7 @@ Phelios (GEN/MD) - 19?? + 1990 Namco @@ -280857,7 +284705,7 @@ Pier Solar (Beta) (GEN/MD) - 19?? + 2010 WaterMelon @@ -280972,7 +284820,7 @@ Pier Solar and the Great Architects (GEN/MD) - 19?? + 2010 WaterMelon @@ -281339,7 +285187,7 @@ Pink Goes to Hollywood (GEN/MD) - 19?? + 1993 Headgames / TecMagik @@ -281442,7 +285290,7 @@ Pinocchio (GEN/MD) - 19?? + 1995 Disney Interactive @@ -281521,7 +285369,7 @@ Pitfall - The Mayan Adventure (GEN/MD) - 19?? + 1994 Activision @@ -281660,7 +285508,7 @@ Pocahontas (GEN/MD) - 19?? + 1996 Buena Vista Games, Inc. @@ -281709,7 +285557,7 @@ Pocket Monster 2 (GEN/MD) - 19?? + 199? Unknown @@ -281757,8 +285605,8 @@ - Popful Mail (GEN/MD) - 19?? + Popful Mail (SEGA CD)(GEN/MD) + 1991 Working Designs @@ -281903,7 +285751,7 @@ Populous (GEN/MD) - 19?? + 1991 Electronic Arts \ Bullfrog @@ -281916,7 +285764,7 @@ Power Drive (GEN/MD) - 19?? + 1994 Rage Software / U.S. Gold @@ -282025,7 +285873,7 @@ Powerball (Wrestle Ball) (GEN/MD) - 19?? + 1991 Namco @@ -282098,7 +285946,7 @@ Predator 2 (GEN/MD) - 19?? + 1992 Perfect 10 / Arena @@ -282177,7 +286025,7 @@ Prime Time NFL (NFL '98) (GEN/MD) - 19?? + 1995 Spectacular / Sega @@ -282244,7 +286092,7 @@ Pro Striker Final Stage (GEN/MD) - 19?? + 1995 Sega / Nextech @@ -282377,7 +286225,7 @@ Psy-O-Blade (GEN/MD) - 19?? + 1990 T&E Soft / Sigma @@ -282510,7 +286358,7 @@ Puggsy (GEN/MD) - 19?? + 1993 Psygnosis / Traveller's Tales @@ -282715,7 +286563,7 @@ Pulseman (GEN/MD) - 19?? + 1994 Game Freak @@ -282926,7 +286774,7 @@ Putter Golf (GEN/MD) - 19?? + 1991 Sega @@ -282963,7 +286811,7 @@ Puyo Puyo Tsuu (GEN/MD) - 19?? + 1992 Compile @@ -283078,7 +286926,7 @@ Puyo Puyo (GEN/MD) - 19?? + 1994 Sega / Compile @@ -283193,7 +287041,7 @@ Puzzle & Action - Ichidant-R (GEN/MD) - 19?? + 1995 Sega @@ -283440,7 +287288,7 @@ Puzzle & Action - Tant-R (GEN/MD) - 19?? + 1994 Sega @@ -283639,7 +287487,7 @@ Quack Shot (GEN/MD) - 19?? + 1991 Sega / The Walt Disney Company @@ -283784,7 +287632,7 @@ Quad Challenge (MegaTrax) (GEN/MD) - 19?? + 1991 Namco @@ -283851,7 +287699,7 @@ Race Drivin' (GEN/MD) - 19?? + 1993 Tengen / Polygames @@ -283906,7 +287754,7 @@ Radical Rex (GEN/MD) - 19?? + 1994 Activision @@ -283961,7 +287809,7 @@ Raiden Trad (GEN/MD) - 19?? + 1991 Micronet / Seibu Kaihatsu @@ -284016,7 +287864,7 @@ Rainbow Islands Extra (GEN/MD) - 19?? + 1990 Taito @@ -284099,9 +287947,9 @@ - + Rambo III (GEN/MD) - 19?? + 1989 Sega @@ -284174,7 +288022,7 @@ Rampart (GEN/MD) - 19?? + 1991 Tengen @@ -284235,7 +288083,7 @@ Ranger-X (Ex-Ranza) (GEN/MD) - 19?? + 1993 Sega / Gau Entertainment @@ -284380,7 +288228,7 @@ Rastan Saga II (GEN/MD) - 19?? + 1990 Taito @@ -284411,7 +288259,7 @@ Red Zone (GEN/MD) - 19?? + 1994 Zyrinx / Time Warner @@ -284520,7 +288368,7 @@ Ren & Stimpy - Stimpy's Invention (GEN/MD) - 19?? + 1993 Sega, Nickelodeon @@ -284798,7 +288646,7 @@ ResQ (GEN/MD) - 19?? + 199? Psygnosis / Tempest @@ -284943,7 +288791,7 @@ Revenge of Shinobi (GEN/MD) - 19?? + 1989 Sega @@ -285064,7 +288912,7 @@ Richard Scarry's Busytown (GEN/MD) - 19?? + 1994 Sega @@ -285113,7 +288961,7 @@ Rings of Power (GEN/MD) - 19?? + 1991 ghty Dog / Electronic Arts @@ -285222,7 +289070,7 @@ Rise of the Robots (GEN/MD) - 19?? + 1994 Mirage / Data Design @@ -285307,7 +289155,7 @@ Risky Woods (Draxos) (GEN/MD) - 19?? + 1992 Electronic Arts @@ -285374,7 +289222,7 @@ Ristar - The Shooting Star (GEN/MD) - 19?? + 1994 Sega @@ -285573,7 +289421,7 @@ Road Rash 3 - Tour de Force (GEN/MD) - 19?? + 1995 Electronic Arts @@ -285622,7 +289470,7 @@ Road Rash II (GEN/MD) - 19?? + 1992 Electronic Arts @@ -285677,7 +289525,7 @@ Road Rash (GEN/MD) - 19?? + 1991 Electronic Arts @@ -285744,7 +289592,7 @@ Robocop 3 (GEN/MD) - 19?? + 1993 Flying Edge @@ -285787,7 +289635,7 @@ Robocop versus The Terminator (GEN/MD) - 19?? + 1994 Virgin Interactive @@ -285842,7 +289690,7 @@ Rock n' Roll Racing (GEN/MD) - 19?? + 1994 Blizzard / Interplay @@ -285885,7 +289733,7 @@ Rocket Knight Adventures (GEN/MD) - 19?? + 1993 Konami @@ -286042,7 +289890,7 @@ Rockman X3 (GEN/MD) - 19?? + 199? Unknown @@ -286097,7 +289945,7 @@ Rolling Thunder 2 (GEN/MD) - 19?? + 1991 Namcot @@ -286212,7 +290060,7 @@ Rolling Thunder 3 (GEN/MD) - 19?? + 1993 Namco @@ -286375,7 +290223,7 @@ Romance of the Three Kingdoms II (GEN/MD) - 19?? + 1991 Koei @@ -286508,7 +290356,7 @@ Romance of the Three Kingdoms III (GEN/MD) - 19?? + 1993 Koei @@ -286653,7 +290501,7 @@ Saint Sword (GEN/MD) - 19?? + 1991 Taito @@ -286768,7 +290616,7 @@ Samurai Shodown (Samurai Spirits) (GEN/MD) - 19?? + 1994 SNK / Saurus / Takara @@ -286937,7 +290785,7 @@ Sangokushi Retsuden - Ransei no Eiyuutachi (GEN/MD) - 19?? + 1991 Sega @@ -287076,7 +290924,7 @@ Sansan (GEN/MD) - 19?? + 1994 Sansan Co., Ltd. @@ -287119,7 +290967,7 @@ Saturday Night Slam Masters (GEN/MD) - 19?? + 1994 Capcom @@ -287360,7 +291208,7 @@ SD Valis (Syd of Valis) (GEN/MD) - 19?? + 1992 Laser Soft / Renovation @@ -287439,7 +291287,7 @@ Second Samurai (GEN/MD) - 19?? + 1994 Vivid Image / Psygnosis @@ -287591,7 +291439,7 @@ Sega CD BIOS (Sega CD)(GEN/MD) 1991 - No_Data + Sega @@ -287615,7 +291463,7 @@ Sega Channel (Demo Cartridge #4) (GEN/MD) - 19?? + 199? Sega @@ -287755,7 +291603,7 @@ Sega Game Toshokan (GEN/MD) 1990 - No_Data + Sega @@ -287785,7 +291633,7 @@ Sensible Soccer (GEN/MD) - 19?? + 1993 Sensible Software @@ -287810,7 +291658,7 @@ Shadow Blasters (Shiten Myouou) (GEN/MD) - 19?? + 1990 Sigma / Sage's Creation @@ -287907,7 +291755,7 @@ Shadow Dancer (GEN/MD) - 19?? + 1990 Sega @@ -288028,7 +291876,7 @@ Shadow of the Beast II (GEN/MD) - 19?? + 1992 sygnosis / Electronic Arts @@ -288089,7 +291937,7 @@ Shadow of the Beast (GEN/MD) - 19?? + 1991 sygnosis / Electronic Arts @@ -288156,7 +292004,7 @@ Shadowrun (GEN/MD) - 19?? + 1994 FASA @@ -288283,7 +292131,7 @@ Shaq-Fu (GEN/MD) - 19?? + 1994 Delphine / Electronic Arts @@ -288464,7 +292312,7 @@ Shi-Kin-Jou (GEN/MD) - 19?? + 1991 Sunsoft / Scap Trust @@ -288543,7 +292391,7 @@ Shining Force II (GEN/MD) - 19?? + 1994 Sega @@ -288766,7 +292614,7 @@ Shining Force (GEN/MD) - 19?? + 1992 Sega @@ -288953,7 +292801,7 @@ Shining in the Darkness (GEN/MD) - 19?? + 1991 Climax / Sega @@ -289321,7 +293169,7 @@ Shougi no Hoshi (GEN/MD) - 19?? + 1991 Home Data @@ -289406,7 +293254,7 @@ Shove It! (Soukoban) (GEN/MD) - 19?? + 1990 NCS Masaya / Dreamworks @@ -289431,7 +293279,7 @@ Shui Hu - Feng Yun Zhuan (GEN/MD) - 19?? + 1999 King Tec Information Co., @@ -289516,7 +293364,7 @@ Shura no Mon (GEN/MD) - 19?? + 1992 Sega @@ -289623,9 +293471,9 @@ - + Side Pocket (GEN/MD) - 19?? + 1992 Data East @@ -289764,8 +293612,8 @@ Silpheed CD (Sega CD) (GEN/MD) - 19?? - No_Data + 1993 + Game Arts @@ -289891,7 +293739,7 @@ Skeleton Krew (GEN/MD) - 19?? + 1995 Core Design @@ -289976,7 +293824,7 @@ Skitchin' (GEN/MD) - 19?? + 1993 Electronic Arts @@ -290139,7 +293987,7 @@ Slam Dunk - Kyougou Makkou Taiketsu! (GEN/MD) - 19?? + 1995 Bandai @@ -290302,7 +294150,7 @@ Slap Fight MD (GEN/MD) - 19?? + 1993 Toaplan / Tengen @@ -290453,7 +294301,7 @@ Snake Rattle 'n' Roll (GEN/MD) - 19?? + 1993 Rare / Sega @@ -290580,7 +294428,7 @@ Snow Bros. - Nick & Tom (GEN/MD) - 19?? + 1993 Toaplan / Tengen @@ -290695,7 +294543,7 @@ Socket (Time Dominator) (GEN/MD) - 19?? + 1994 Vic Tokai @@ -290834,7 +294682,7 @@ Sol-Deace (GEN/MD) - 19?? + 1992 Wolfteam / Renovation @@ -291142,7 +294990,7 @@ Sonic 3D Blast (Sonic 3D Flickies Island) (GEN/MD) - 19?? + 1996 Sega @@ -291335,7 +295183,7 @@ Sonic CD (Sega CD) (GEN/MD) - 19?? + 1993 Sega @@ -291522,7 +295370,7 @@ Sonic Crackers (GEN/MD) - 19?? + 199? Sega @@ -291565,7 +295413,7 @@ Sonic Eraser (GEN/MD) - 19?? + 1991 Sega @@ -291590,7 +295438,7 @@ Sonic Spinball (GEN/MD) - 19?? + 1993 Sega @@ -291741,7 +295589,7 @@ Sonic the Hedgehog 2 (Beta) (GEN/MD) - 19?? + 1992 Sega @@ -291904,7 +295752,7 @@ Sonic the Hedgehog 2 (GEN/MD) - 19?? + 1992 Sega @@ -292332,7 +296180,7 @@ Sonic the Hedgehog (GEN/MD) - 19?? + 1991 Sega / Sonic Team @@ -292453,7 +296301,7 @@ Sorcerer's Kingdom (GEN/MD) - 19?? + 1992 NCS Masaya @@ -292712,7 +296560,7 @@ Sorcerian (GEN/MD) - 19?? + 1990 Falcom / Sega @@ -292977,7 +296825,7 @@ Space Harrier II (GEN/MD) - 19?? + 1989 Sega @@ -293104,7 +296952,7 @@ Space Invaders '91 (GEN/MD) - 19?? + 1991 Taito @@ -293189,7 +297037,7 @@ Sparkster (GEN/MD) - 19?? + 1994 Konami @@ -293346,7 +297194,7 @@ Speedball 2 - Brutal Deluxe (GEN/MD) - 19?? + 1992 Bitmap Brothers / Virgin @@ -293377,7 +297225,7 @@ Spider-Man & Venom - Maximum Carnage (GEN/MD) - 19?? + 1994 Acclaim @@ -293498,7 +297346,7 @@ Spider-Man & Venom - Separation Anxiety (GEN/MD) - 19?? + 1995 Acclaim @@ -293565,7 +297413,7 @@ Spider-Man & X-Men - Arcade's Revenge (GEN/MD) - 19?? + 1994 Flying Edge @@ -293638,7 +297486,7 @@ Spider-Man - The Animated Series (GEN/MD) - 19?? + 1995 Acclaim @@ -293747,7 +297595,7 @@ Spiritual Warfare (GEN/MD) - 19?? + 1994 Wisdom Tree @@ -293995,7 +297843,7 @@ Splatterhouse 3 (GEN/MD) - 19?? + 1993 Namco @@ -294206,7 +298054,7 @@ Spot Goes to Hollywood (GEN/MD) - 19?? + 1996 Virgin Games / Eurocom @@ -294315,7 +298163,7 @@ Squirrel King (Super Mario World) (GEN/MD) - 19?? + 199? Unknown @@ -294382,7 +298230,7 @@ Star Cruiser (GEN/MD) - 19?? + 1990 NCS Masaya / Arsys @@ -294509,7 +298357,7 @@ Star Trek DS9 - Crossroads of Time (GEN/MD) - 19?? + 1995 Novotrade / Playmates @@ -294660,7 +298508,7 @@ Star Trek TNG - Echoes from the Past (GEN/MD) - 19?? + 1994 Sega @@ -294739,7 +298587,7 @@ Stargate (GEN/MD) - 19?? + 1994 Probe / Acclaim @@ -294782,7 +298630,7 @@ Steel Empire (Koutetsu Teikoku - Steel Empire, Empire of Steel) (GEN/MD) - 19?? + 1992 Hot-B / Flying Edge @@ -294920,8 +298768,8 @@ - Stellar Assault (Shadow Squadron) (GEN/MD) - 19?? + Stellar Assault 32x (Shadow Squadron) (GEN/MD) + 1995 Sega @@ -295079,7 +298927,7 @@ Street Fighter II Turbo (Beta) (GEN/MD) - 19?? + 1993? Capcom @@ -295362,7 +299210,7 @@ Street Fighter II' - Special Champion Edition (GEN/MD) - 19?? + 1993 Capcom @@ -295573,7 +299421,7 @@ Street Racer (GEN/MD) - 19?? + 1995 Ubisoft / Vivid Image @@ -295686,9 +299534,9 @@ - + Street Smart (GEN/MD) - 19?? + 1991 SNK / Treco @@ -295785,7 +299633,7 @@ Streets of Rage (Bare Knuckle) (GEN/MD) - 19?? + 1991 Sega @@ -295888,7 +299736,7 @@ Streets of Rage 2 (Bare Knuckle II) (GEN/MD) - 19?? + 1993 Sega @@ -296039,7 +299887,7 @@ Streets of Rage 3 (Bare Knuckle III) (GEN/MD) - 19?? + 1994 Sega @@ -296208,7 +300056,7 @@ Strider Returns - Journey From Darkness (GEN/MD) - 19?? + 1990 Tiertex / US Gold @@ -296323,7 +300171,7 @@ Strider (GEN/MD) - 19?? + 1990 Capcom / Sega @@ -296516,7 +300364,7 @@ Striker (GEN/MD) - 19?? + 1994 Rage Software @@ -296589,7 +300437,7 @@ Sub-Terrania (GEN/MD) - 19?? + 1994 Zyrinx @@ -296698,7 +300546,7 @@ Sunset Riders (GEN/MD) - 19?? + 1992 Konami @@ -296867,7 +300715,7 @@ Super Baseball 2020 (GEN/MD) - 19?? + 1994 NuFX / Electronic Arts @@ -297012,7 +300860,7 @@ Super Bubble Bobble MD (GEN/MD) - 19?? + 199? Unknown @@ -297079,7 +300927,7 @@ Super Daisenryaku (GEN/MD) - 19?? + 1989 Sega @@ -297152,7 +301000,7 @@ Super Fantasy Zone (GEN/MD) - 19?? + 1993 Sunsoft / Sega @@ -297315,7 +301163,7 @@ Super Hang-On (GEN/MD) - 19?? + 1989 Sega @@ -297370,7 +301218,7 @@ Super High Impact (GEN/MD) - 19?? + 1992 uana Entertainment / Arena @@ -297443,7 +301291,7 @@ Super Hydlide (GEN/MD) - 19?? + 1991 Seismic / Asmik / T&E Soft @@ -297546,7 +301394,7 @@ Super League (Tommy Lasorda Baseball) (GEN/MD) - 19?? + 1990 Sega @@ -297655,7 +301503,7 @@ Super League 91 (GEN/MD) - 19?? + 1991 Sega @@ -297776,7 +301624,7 @@ Super Mario 2 1998 (Sonic Jam 6) (GEN/MD) - 19?? + 199? Unknown Pirate Group @@ -297873,7 +301721,7 @@ Super Monaco GP (GEN/MD) - 19?? + 1990 Sega @@ -297970,7 +301818,7 @@ Super Off Road (GEN/MD) - 19?? + 1994 Tradewest / Ballistic @@ -298025,7 +301873,7 @@ Super Real Basketball (Pat Riley Basketball) (GEN/MD) - 19?? + 1990 Sega @@ -298098,7 +301946,7 @@ Super Skidmarks (GEN/MD) - 19?? + 1995 Acid / Codemasters @@ -298123,7 +301971,7 @@ Super Smash TV (GEN/MD) - 19?? + 1992 Williams / Flying Edge @@ -298166,7 +302014,7 @@ Super Street Fighter II (GEN/MD) - 19?? + 1994 Capcom @@ -298467,7 +302315,7 @@ Super Thunder Blade (GEN/MD) - 19?? + 1989 Sega @@ -298534,7 +302382,7 @@ Super Volleyball (GEN/MD) - 19?? + 1991 Video System / Sega @@ -298595,7 +302443,7 @@ Superman (GEN/MD) - 19?? + 1993 Sunsoft @@ -298704,7 +302552,7 @@ Surging Aura (GEN/MD) - 19?? + 1995 Sega @@ -298873,7 +302721,7 @@ Sword of Vermilion (GEN/MD) - 19?? + 1990 Sega @@ -299084,7 +302932,7 @@ T2 - The Arcade Game (GEN/MD) - 19?? + 1992 Probe / Arena @@ -299139,7 +302987,7 @@ Taiheiki (GEN/MD) - 19?? + 1991 Sega @@ -299278,7 +303126,7 @@ Taikou Risshiden (GEN/MD) - 19?? + 1993 Koei @@ -299465,7 +303313,7 @@ TaleSpin (GEN/MD) - 19?? + 1992 Sega / Interactive Designs @@ -299556,7 +303404,7 @@ Target Earth (Assault Suit Leynos) (GEN/MD) - 19?? + 1990 NCS Masaya / Dreamworks @@ -299623,7 +303471,7 @@ Task Force Harrier EX (GEN/MD) - 19?? + 1991 UPL / Treco @@ -299696,7 +303544,7 @@ Tecmo Cup Football Game (GEN/MD) - 19?? + 199? Sega(Unreleased) @@ -299805,7 +303653,7 @@ Tecmo Super Baseball (GEN/MD) - 19?? + 1994 Tecmo @@ -299920,7 +303768,7 @@ Tecmo Super Bowl II - Special Edition (GEN/MD) - 19?? + 1994 Tecmo @@ -300155,7 +304003,7 @@ Tecmo Super Bowl III - Final Edition (GEN/MD) - 19?? + 1995 Tecmo @@ -300300,7 +304148,7 @@ Tecmo Super Bowl (GEN/MD) - 19?? + 1993 Tecmo @@ -300529,7 +304377,7 @@ Tecmo World Cup (GEN/MD) - 19?? + 1990 SIMS / Tecmo / Atlus @@ -300620,7 +304468,7 @@ Teenage Mutant Ninja Turtles - The Hyperstone Heist (Return of the Shredder) (GEN/MD) - 19?? + 1992 Konami @@ -300783,7 +304631,7 @@ Teenage Mutant Ninja Turtles - Tournament Fighters (GEN/MD) - 19?? + 1993 Konami @@ -300926,9 +304774,9 @@ - + Tel Tel Mahjong (GEN/MD) - 19?? + 1990 Sunsoft / Chatnoir @@ -301014,7 +304862,7 @@ Tel Tel Stadium (GEN/MD) - 19?? + 1990 Sunsoft @@ -301093,8 +304941,8 @@ Tempo 32X (GEN/MD) - 19?? - No_Data + 1995 + Sega @@ -301382,7 +305230,7 @@ Terminator 2 - Judgment Day (GEN/MD) - 19?? + 1991 BITS / Flying Edge @@ -301425,7 +305273,7 @@ Tetris (GEN/MD) - 19?? + 1989 Sega / Sanritsu @@ -301486,7 +305334,7 @@ The Addams Family (GEN/MD) - 19?? + 1993 Ocean / Flying Edge @@ -301553,7 +305401,7 @@ The Adventures of Batman and Robin (GEN/MD) - 19?? + 1995 Clockwork Tortoise @@ -301674,7 +305522,7 @@ The Adventures of Mighty Max (GEN/MD) - 19?? + 1994 Ocean @@ -301741,7 +305589,7 @@ The Aquatic Games (GEN/MD) - 19?? + 1992 Millenium / Electronic Arts @@ -301784,7 +305632,7 @@ The Earth Defend (Earth Defense) (GEN/MD) - 19?? + 1995 AV Artisan / Realtec @@ -301857,7 +305705,7 @@ The Faery Tale Adventure (GEN/MD) - 19?? + 1991 Electronic Arts @@ -301906,7 +305754,7 @@ The Flintstones (GEN/MD) - 19?? + 1993 Taito @@ -302009,7 +305857,7 @@ The Great Circus Mystery (GEN/MD) - 19?? + 1994 Capcom @@ -302214,7 +306062,7 @@ The Great Waldo Search (GEN/MD) - 19?? + 1992 THQ @@ -302257,7 +306105,7 @@ The Humans (GEN/MD) - 19?? + 1992 Gametek / Imagitek @@ -302336,7 +306184,7 @@ The Hybrid Front (GEN/MD) - 19?? + 1994 Sega @@ -302481,7 +306329,7 @@ The Immortal (GEN/MD) - 19?? + 1993 Electronic Arts @@ -302620,7 +306468,7 @@ The Incredible Hulk (GEN/MD) - 19?? + 1994 Probe / US Gold @@ -302729,7 +306577,7 @@ The Itchy & Scratchy Game (GEN/MD) - 19?? + 1994 Bits Corporation @@ -302826,7 +306674,7 @@ The Jungle Book (GEN/MD) - 19?? + 1994 Virgin Interactive @@ -302917,7 +306765,7 @@ The Lawnmower Man (GEN/MD) - 19?? + 1994 Sales Curve / Time Warner @@ -302966,7 +306814,7 @@ The Legend of Galahad (GEN/MD) - 19?? + 1992 Traveller's Tales / Psygnosis / Electronic Arts @@ -303033,7 +306881,7 @@ The Lion King II (GEN/MD) - 19?? + 199? Unknown @@ -303100,7 +306948,7 @@ The Lion King (GEN/MD) - 19?? + 1994 Virgin Interactive @@ -303209,7 +307057,7 @@ The Lost Vikings (GEN/MD) - 19?? + 1993 Interplay / Ballistic / Silicon & Synapse @@ -303276,7 +307124,7 @@ The Misadventures of Flink (GEN/MD) - 19?? + 1994 Psygnosis / Sony Imagesoft @@ -303385,7 +307233,7 @@ The NewZealand Story (GEN/MD) - 19?? + 1990 Taito @@ -303488,7 +307336,7 @@ The Ooze (GEN/MD) - 19?? + 1995 Sega @@ -303603,7 +307451,7 @@ The Ottifants (GEN/MD) - 19?? + 1993 Graftgold / Sega @@ -303712,7 +307560,7 @@ The Pirates of Dark Water (GEN/MD) - 19?? + 1994 na Entertainment / Sunsoft @@ -303839,7 +307687,7 @@ The Punisher (GEN/MD) - 19?? + 1994 pcom / Sculptured Software @@ -303984,7 +307832,7 @@ The Simpsons - Bart vs The Space Mutants (GEN/MD) - 19?? + 1992 Developments / Flying Edge @@ -304021,7 +307869,7 @@ The Simpsons - Bart's Nightmare (GEN/MD) - 19?? + 1993 Acclaim / Flying Edge @@ -304052,7 +307900,7 @@ The Terminator (GEN/MD) - 19?? + 1991 Probe / Bethesda / Virgin @@ -304167,7 +308015,7 @@ The Tick (GEN/MD) - 19?? + 1994 Fox Interactive @@ -304234,7 +308082,7 @@ Thunder Force II (GEN/MD) - 19?? + 1989 Tecnosoft / Sega @@ -304367,7 +308215,7 @@ Thunder Force III (GEN/MD) - 19?? + 1990 Tecnosoft / Sega @@ -304801,7 +308649,7 @@ Thunder Fox (GEN/MD) - 19?? + 1991 Taito / Aisystem Tokyo @@ -304886,7 +308734,7 @@ Thunder Pro Wrestling Retsuden (GEN/MD) - 19?? + 1992 Human @@ -305056,7 +308904,7 @@ Tinhead (GEN/MD) - 19?? + 1993 Ballistic / Accolade / MicroProse / Spectrum Holobyte @@ -305165,7 +309013,7 @@ Tiny Toon Adventures - Acme All Stars (GEN/MD) - 19?? + 1994 Konami @@ -305274,7 +309122,7 @@ Tiny Toon Adventures - Buster's Hidden Treasure (GEN/MD) - 19?? + 1993 Konami @@ -305419,7 +309267,7 @@ Todd's Adventures in Slime World (GEN/MD) - 19?? + 1991 Epyx / Renovation @@ -305462,7 +309310,7 @@ ToeJam & Earl in Panic on Funkotron (GEN/MD) - 19?? + 1993 Sega / JVP @@ -305559,7 +309407,7 @@ ToeJam & Earl (GEN/MD) - 19?? + 1992 Sega / JVP @@ -305608,7 +309456,7 @@ Toki - Going Ape Spit (JuJu Densetsu) (GEN/MD) - 19?? + 1991 Sega @@ -305711,7 +309559,7 @@ Tom and Jerry - Frantic Antics! (GEN/MD) - 19?? + 1993 Beam Software @@ -305772,7 +309620,7 @@ Top Gear 2 (GEN/MD) - 19?? + 1994 ic Tokai / Kemco / Gremlin @@ -305803,7 +309651,7 @@ Toughman Contest (GEN/MD) - 19?? + 1995 Concepts / Electronic Arts @@ -305882,7 +309730,7 @@ Toxic Crusaders (GEN/MD) - 19?? + 1992 Sega / Infogrames @@ -305955,7 +309803,7 @@ Toy Story (GEN/MD) - 19?? + 1996 Disney Interactive, Traveller's Tales, Psygnosis @@ -306118,7 +309966,7 @@ Toys (GEN/MD) - 19?? + 1993 Absolute Entertainment @@ -306191,7 +310039,7 @@ Trampoline Terror! (GEN/MD) - 19?? + 1990 NCS Masaya / Dreamworks @@ -306276,7 +310124,7 @@ Traysia (GEN/MD) - 19?? + 1992 Riot / Nihon Telenet @@ -306421,7 +310269,7 @@ Truxton (GEN/MD) - 19?? + 1989 Toaplan / Taito / Sega @@ -306555,7 +310403,7 @@ Turrican (GEN/MD) - 19?? + 1991 Code Monkeys / Ballistic @@ -306658,7 +310506,7 @@ Twin Cobra (Kyuukyoku Tiger) (GEN/MD) - 19?? + 1991 Toaplan / Treco / Sega @@ -306725,7 +310573,7 @@ Twin Hawk (Daisenpuu) (GEN/MD) - 19?? + 1990 Toaplan / Sega @@ -306786,7 +310634,7 @@ Twinkle Tale (GEN/MD) - 19?? + 1992 WAS / Toyo Recording @@ -306943,7 +310791,7 @@ Two Crude Dudes (GEN/MD) - 19?? + 1992 Data East @@ -307016,7 +310864,7 @@ Uchuu Senkan Gomora (Bio-Ship Paladin) (GEN/MD) - 19?? + 1991 UPL @@ -307065,7 +310913,7 @@ Ultimate Qix (Volfied) (GEN/MD) - 19?? + 1991 Taito @@ -307138,7 +310986,7 @@ Uncharted Waters - New Horizons (GEN/MD) - 19?? + 1994 Koei @@ -307301,7 +311149,7 @@ Uncharted Waters (GEN/MD) - 19?? + 1992 Koei @@ -307434,7 +311282,7 @@ Undead Line (GEN/MD) - 19?? + 1991 Palsoft / T&E Soft @@ -307543,7 +311391,7 @@ Universal Soldier (GEN/MD) - 19?? + 1992 Accolade / Ballistic @@ -307802,7 +311650,7 @@ Uzu Keobukseon (GEN/MD) - 19?? + 1992 Samsung @@ -307887,7 +311735,7 @@ Valis III (GEN/MD) - 19?? + 1991 Nihon Telenet / Sega @@ -307990,7 +311838,7 @@ Valis (GEN/MD) - 19?? + 1991 Riot / Renovation @@ -308190,7 +312038,7 @@ Vectorman 2 (GEN/MD) - 19?? + 1995 Sega / Blue Sky @@ -308335,7 +312183,7 @@ Vectorman (GEN/MD) - 19?? + 1996 Sega / Blue Sky Software @@ -308432,7 +312280,7 @@ Verytex (GEN/MD) - 19?? + 1991 Asmik @@ -308511,7 +312359,7 @@ Viewpoint (GEN/MD) - 19?? + 1994 American Sammy @@ -308582,9 +312430,9 @@ - + Virtua Fighter 2 (GEN/MD) - 19?? + 1996 Sega @@ -308662,8 +312510,8 @@ - Virtua Racing Deluxe (GEN/MD) - 19?? + Virtua Racing Deluxe 32x (GEN/MD) + 1994 Sega @@ -308995,7 +312843,7 @@ Virtual Bart (GEN/MD) - 19?? + 1994 Acclaim @@ -309110,7 +312958,7 @@ Virtual Pinball (GEN/MD) - 19?? + 1993 Electronic Arts / BudgeCo @@ -309159,7 +313007,7 @@ Vixen 357 (GEN/MD) - 19?? + 1992 NCS Masaya @@ -309484,7 +313332,7 @@ VR Troopers (GEN/MD) - 19?? + 1994 Sega / Syrox Developments @@ -309569,7 +313417,7 @@ Waialae no Kiseki (GEN/MD) - 19?? + 1994 Sega / T&E Soft @@ -309696,7 +313544,7 @@ Wani Wani World (GEN/MD) - 19?? + 1992 Kaneko @@ -309811,7 +313659,7 @@ Wardner (GEN/MD) - 19?? + 1991 Visco / Mentrix @@ -309884,7 +313732,7 @@ Warrior of Rome (Ambition of Caesar, Caesar no Yabou) (GEN/MD) - 19?? + 1991 Micronet @@ -310011,7 +313859,7 @@ Warrior of Rome II (Caesar no Yabou II) (GEN/MD) - 19?? + 1992 Micronet @@ -310162,7 +314010,7 @@ Warsong (Langrisser) (GEN/MD) - 19?? + 1991 NCS Masaya / Treco @@ -310265,7 +314113,7 @@ Wayne's World (GEN/MD) - 19?? + 1993 T*HQ / Gray Matter @@ -310356,7 +314204,7 @@ WeaponLord (GEN/MD) - 19?? + 1995 Visual Concepts / Namco @@ -310471,7 +314319,7 @@ Wheel of Fortune (GEN/MD) - 19?? + 1992 GameTek @@ -310484,7 +314332,7 @@ Whip Rush (GEN/MD) - 19?? + 1990 Sega / Vic Tokai @@ -310605,7 +314453,7 @@ Wimbledon Championship Tennis (GEN/MD) - 19?? + 1994 Sega / SIMS @@ -310696,7 +314544,7 @@ Wiz 'n' Liz (GEN/MD) - 19?? + 1993 Psygnosis @@ -310877,7 +314725,7 @@ Wolfchild (GEN/MD) - 19?? + 1993 JVC / Core Design @@ -310968,7 +314816,7 @@ Wolverine - Adamantium Rage (GEN/MD) - 19?? + 1994 Acclaim @@ -311033,9 +314881,9 @@ - + Wonder Boy III - Monster Lair (GEN/MD) - 19?? + 1990 Sega / Westone @@ -311120,7 +314968,7 @@ Wonder Boy in Monster World (GEN/MD) - 19?? + 1992 Sega / Westone @@ -311313,7 +315161,7 @@ World Championship Soccer (World Cup Italia '90, World Cup Soccer) (GEN/MD) - 19?? + 1990 Sega @@ -311362,7 +315210,7 @@ World Class Leaderboard Golf (GEN/MD) - 19?? + 1992 U.S. Gold @@ -311387,7 +315235,7 @@ World Cup USA 94 (GEN/MD) - 19?? + 1994 Tiertex / US Gold @@ -311442,7 +315290,7 @@ World Heroes (GEN/MD) - 19?? + 1994 ADK / SNK / NuFx / Sega @@ -311527,7 +315375,7 @@ World of Illusion (Beta) (GEN/MD) - 19?? + 1992 Sega @@ -311666,7 +315514,7 @@ World of Illusion (GEN/MD) - 19?? + 1992 Sega @@ -311829,7 +315677,7 @@ Worms (GEN/MD) - 19?? + 1995 Ocean Software @@ -311848,7 +315696,7 @@ Wrestle War (GEN/MD) - 19?? + 1991 Sega @@ -311891,7 +315739,7 @@ WWF Raw (GEN/MD) - 19?? + 1994 Flying Edge @@ -311982,7 +315830,7 @@ WWF Royal Rumble (GEN/MD) - 19?? + 1994 Flying Edge/Acclaim @@ -312079,7 +315927,7 @@ WWF Super Wrestlemania (GEN/MD) - 19?? + 1992 Flying Edge @@ -312146,7 +315994,7 @@ X-Men 2 - Clone Wars (GEN/MD) - 19?? + 1995 Headgames / Sega @@ -312249,7 +316097,7 @@ X-Men (GEN/MD) - 19?? + 1993 Sega @@ -312334,7 +316182,7 @@ XDR - X Dazedly Ray (GEN/MD) - 19?? + 1990 Unipacc @@ -312407,7 +316255,7 @@ Ys III - Wanderers From Ys (GEN/MD) - 19?? + 1991 Falcom / Riot / Renovation @@ -312600,7 +316448,7 @@ Yuu Yuu Hakusho - Makyou Touitsusen (GEN/MD) - 19?? + 1994 Sega / Treasure @@ -312733,7 +316581,7 @@ Yuu Yuu Hakusho Gaiden (GEN/MD) - 19?? + 1994 Sega @@ -312890,7 +316738,7 @@ Zan Yasha Enbukyoku (GEN/MD) - 19?? + 1991 Wolfteam @@ -313064,8 +316912,8 @@ - Zaxxon's Motherbase 2000 (GEN/MD) - 19?? + Zaxxon's Motherbase 2000 32x(GEN/MD) + 1995 Sega @@ -313210,7 +317058,7 @@ Zero the Kamikaze Squirrel (GEN/MD) - 19?? + 1994 Iguana / Sunsoft @@ -313313,7 +317161,7 @@ Zero Tolerance (GEN/MD) - 19?? + 1994 Accolade, Technopop @@ -313362,7 +317210,7 @@ Zero Wing (GEN/MD) - 19?? + 1991 Toaplan @@ -313477,7 +317325,7 @@ Zombies Ate My Neighbors (GEN/MD) - 19?? + 1993 Konami / LucasArts @@ -313574,7 +317422,7 @@ Zool - Ninja of the Nth Dimension (GEN/MD) - 19?? + 1993 Gremin / Electronic Arts @@ -313647,7 +317495,7 @@ Zoom! (GEN/MD) - 19?? + 1990 Sega @@ -313738,7 +317586,7 @@ Zoop (GEN/MD) - 19?? + 1995 Hookstone / Viacom New Media @@ -314251,7 +318099,7 @@ Slam City with Scottie Pippen (Sega CD) (GEN/MD) - 19?? + 1994 Digital Pictures, Inc. @@ -315593,7 +319441,7 @@ 20 Em 1 (SMS) - 19?? + 1995 Sega @@ -315655,7 +319503,7 @@ Action Fighter (SMS) - 19?? + 1986 Sega @@ -315789,7 +319637,7 @@ After Burner (SMS-FM) - 19?? + 1987 Sega @@ -315832,7 +319680,7 @@ After Burner (SMS-PSG) - 19?? + 1987 Sega @@ -315881,7 +319729,7 @@ Air Rescue (SMS) - 19?? + 1992 Sega @@ -315966,7 +319814,7 @@ Aladdin (SMS) - 19?? + 1994 Sega @@ -316081,7 +319929,7 @@ Alex Kidd High Tech World (SMS) - 19?? + 1989 Sega @@ -316154,7 +320002,7 @@ Alex Kidd In Miracle World (SMS) - 19?? + 1986 Sega @@ -316221,7 +320069,7 @@ Alex Kidd In Shinobi World (SMS) - 19?? + 1990 Sega @@ -316306,7 +320154,7 @@ Alex Kidd The Lost Stars (SMS-FM) - 19?? + 1988 Sega @@ -316373,7 +320221,7 @@ Alex Kidd The Lost Stars (SMS-PSG) - 19?? + 1988 Sega @@ -316495,7 +320343,7 @@ Alien 3 (SMS) - 19?? + 1992 Sega / Acclaim / Probe @@ -316580,7 +320428,7 @@ Alien Storm (SMS) - 19?? + 1991 Sega @@ -316891,7 +320739,7 @@ Antarctic Adventure (ColecoVision) - 19?? + 1984 Konami @@ -317020,7 +320868,7 @@ Ashura (SMS) - 19?? + 1986 Sega @@ -317075,7 +320923,7 @@ Asterix (SMS) - 19?? + 1991 Sega @@ -317250,7 +321098,7 @@ Asterix And The Great Rescue (SMS) - 19?? + 1993 Sega @@ -317341,7 +321189,7 @@ Asterix And The Secret Mission (SMS) - 19?? + 1993 Sega @@ -317534,7 +321382,7 @@ Astro Warrior (SMS) - 19?? + 1986 Sega @@ -317595,7 +321443,7 @@ A Team (SMS) - 19?? + 1992 n/a @@ -317783,7 +321631,7 @@ Aztec Adventure (SMS-FM) - 19?? + 1987 Sega @@ -317850,7 +321698,7 @@ Aztec Adventure (SMS-PSG) - 19?? + 1987 Sega @@ -317917,7 +321765,7 @@ Back To The Future Part II (SMS) - 19?? + 1990 Sega @@ -318058,7 +321906,7 @@ Bart Vs The World (SMS) - 19?? + 1993 Sega @@ -318112,9 +321960,9 @@ - + Batman Returns (SMS) - 19?? + 1992 Sega @@ -318382,7 +322230,7 @@ Battletoads (GG) - 19?? + 1993 Sega @@ -318575,8 +322423,8 @@ - BIOS (SMS) - 19?? + SMS BIOS (SMS) + 1986 Sega @@ -318740,7 +322588,7 @@ Black Onyx (SG) - 19?? + 1987 Sega @@ -318765,7 +322613,7 @@ Blade Eagle 3-D (SMS-PSG) - 19?? + 1988 Sega @@ -319161,7 +323009,7 @@ Buggy Run (SMS) - 19?? + 1993 Sega @@ -319432,7 +323280,7 @@ - + Captain Silver (SMS-FM) 1988 Sega @@ -319505,9 +323353,9 @@ - + Captain Silver (SMS-PSG) - 19?? + 1988 Sega @@ -319725,7 +323573,7 @@ Castle (SG) - 19?? + 1986 Sega @@ -319798,7 +323646,7 @@ Castle Of Illusion (SMS) - 19?? + 1990 Sega / Disney @@ -319913,7 +323761,7 @@ Championship Lode Runner (SG) - 19?? + 1985 Sega @@ -319950,7 +323798,7 @@ Champion Tennis (SG) - 19?? + 1983 Sega @@ -320054,7 +323902,7 @@ Choplifter (SG) - 19?? + 1985 Sega @@ -320089,9 +323937,9 @@ - + Choplifter (SMS) - 19?? + 1985 Sega @@ -320164,7 +324012,7 @@ Chuck Rock (SMS) - 19?? + 1992 Virgin Games @@ -320365,9 +324213,9 @@ - + Clutch Hitter (GG) - 19?? + 1991 Sega @@ -320543,7 +324391,7 @@ Cosmic Spacehead (SMS) - 19?? + 1993 Codemasters @@ -321191,7 +325039,7 @@ Deep Duck Trouble (SMS) - 19?? + 1993 Sega @@ -321342,7 +325190,7 @@ Dick Tracy (SMS) - 19?? + 1990 Sega @@ -321592,7 +325440,7 @@ Double Dragon (SMS-PSG) - 19?? + 1988 Sega @@ -321788,7 +325636,7 @@ Dragon Crystal (GG) - 19?? + 1990 Sega @@ -322198,7 +326046,7 @@ Dynamite Headdy (GG) - 19?? + 1994 Sega @@ -322271,7 +326119,7 @@ Ecco The Dolphin (GG) - 19?? + 1994 Sega @@ -322386,7 +326234,7 @@ Ecco The Tides Of Time (GG) - 19?? + 1994 Sega @@ -322427,9 +326275,9 @@ - + Enduro Racer (SMS) - 19?? + 1987 Sega @@ -322472,7 +326320,7 @@ ESWAT (SMS) - 19?? + 1990 Sega @@ -322655,7 +326503,7 @@ F 1 6 Fighting Falcon (SMS) - 19?? + 1985 Sega / Nexa @@ -322910,7 +326758,7 @@ Fantasy Zone (SMS) - 19?? + 1986 Sega @@ -323001,7 +326849,7 @@ Fantasy Zone II (SMS-FM) - 19?? + 1987 Sega @@ -323092,7 +326940,7 @@ Fantasy Zone II (SMS-PSG) - 19?? + 1987 Sega @@ -323183,7 +327031,7 @@ Fantasy Zone The Maze (SMS-PSG) - 19?? + 1987 Sega @@ -323396,7 +327244,7 @@ Flintstones (SMS) - 19?? + 1991 Sega @@ -323524,7 +327372,7 @@ Fushigi No Oshiro Pit Pot (SMS) - 19?? + 1985 Sega @@ -323628,7 +327476,7 @@ Galactic Protector (SMS-FM) - 19?? + 1988 Sega @@ -323683,7 +327531,7 @@ Galaxy Force (SMS-FM) - 19?? + 1989 Sega @@ -323732,7 +327580,7 @@ Galaxy Force (SMS-PSG) - 19?? + 1989 Sega @@ -324030,7 +327878,7 @@ GG Aleste II (GG) - 19?? + 1991 Sega @@ -324151,7 +327999,7 @@ GG Shinobi (GG) - 19?? + 1991 Sega @@ -324278,7 +328126,7 @@ GG Shinobi II (GG) - 19?? + 1992 Sega @@ -324423,7 +328271,7 @@ Ghostbusters (SMS) - 19?? + 1989 Sega @@ -324454,7 +328302,7 @@ Ghost House (SMS) - 19?? + 1986 Sega @@ -324661,7 +328509,7 @@ Global Defense (SMS-FM) - 19?? + 1987 Sega @@ -324704,7 +328552,7 @@ Global Defense (SMS-PSG) - 19?? + 1987 Sega @@ -324808,7 +328656,7 @@ Golden Axe Warrior (SMS) - 19?? + 1990 Sega @@ -325080,7 +328928,7 @@ Golvellius (SMS-PSG) - 19?? + 1988 Sega @@ -325267,7 +329115,7 @@ Great Baseball (SMS) - 19?? + 1987 Sega @@ -325296,7 +329144,7 @@ - + Great Baseball Card (SMS) 19?? Sega @@ -325335,7 +329183,7 @@ Great Basketball (SMS) - 19?? + 1987 Sega @@ -325458,7 +329306,7 @@ Great Volleyball (SMS) - 19?? + 1987 Sega @@ -325537,7 +329385,7 @@ Gunstar Heroes (GG) - 19?? + 1995 Sega / Treasure / M2 @@ -325676,7 +329524,7 @@ Hang On (SMS) - 19?? + 1985 Sega @@ -325768,7 +329616,7 @@ High School Kimengumi (SMS) - 19?? + 1986 Sega @@ -325829,7 +329677,7 @@ Hokuto No Ken (SMS) - 19?? + 1986 Sega @@ -325908,7 +329756,7 @@ Home Alone (SMS) - 19?? + 1993 Sega @@ -326133,7 +329981,7 @@ Indiana Jones And The Last Crusade (SMS) - 19?? + 1990 Sega @@ -326158,7 +330006,7 @@ James Pond II (SMS) - 19?? + 1993 U.S. Gold @@ -326354,7 +330202,7 @@ Jurassic Park (SMS) - 19?? + 1993 Sega @@ -326481,7 +330329,7 @@ Kenseiden (SMS-PSG) - 19?? + 1988 Sega @@ -326578,7 +330426,7 @@ Krustys Fun House (SMS) - 19?? + 1992 Sega @@ -326657,7 +330505,7 @@ Kung Fu Kid (SMS) - 19?? + 1987 Sega @@ -326712,7 +330560,7 @@ Land Of Illusion (SMS) - 19?? + 1992 Sega @@ -326906,7 +330754,7 @@ Legend Of Illusion (SMS) - 19?? + 1994 Sega / Disney @@ -327075,7 +330923,7 @@ Lemmings (SMS) - 19?? + 1991 Sega @@ -327214,7 +331062,7 @@ Lethal Weapon 3 (SMS) - 19?? + 1992 n/a @@ -327348,7 +331196,7 @@ Lord Of The Sword (SMS-PSG) - 19?? + 1988 Sega @@ -327415,7 +331263,7 @@ Lucky Dime Caper (SMS) - 19?? + 1991 Sega / Disney @@ -327771,7 +331619,7 @@ Marble Madness (SMS) - 19?? + 1992 Tengen @@ -327917,7 +331765,7 @@ M.A.S.H. (ColecoVision) - 19?? + 1983 Fox Video Games @@ -327930,7 +331778,7 @@ Master Of Darkness (SMS) - 19?? + 1992 Sega @@ -328021,7 +331869,7 @@ Maze Hunter 3-D (SMS-FM) - 19?? + 1988 Sega @@ -328076,7 +331924,7 @@ Maze Hunter 3-D (SMS-PSG) - 19?? + 1988 Sega @@ -328246,7 +332094,7 @@ Megumi Rescue (SMS-FM) - 19?? + 1988 Sega @@ -328319,7 +332167,7 @@ Megumi Rescue (SMS-PSG) - 19?? + 1988 Sega @@ -328392,7 +332240,7 @@ Micro Machines (SMS) - 19?? + 1994 Codemasters @@ -328471,7 +332319,7 @@ Micro Machines 2 (GG) - 19?? + 1993 Codemasters @@ -328617,7 +332465,7 @@ Miracle Warriors (SMS-PSG) - 19?? + 1987 Sega @@ -328764,7 +332612,7 @@ Montezumas Revenge (SMS) - 19?? + 1989 Parker Brothers @@ -329045,7 +332893,7 @@ Ms Pac Man (SMS) - 19?? + 1991 Sega / Namco / Tengen @@ -329082,7 +332930,7 @@ My Hero (SMS) - 19?? + 1986 Sega @@ -329241,7 +333089,7 @@ Ninja Gaiden (SMS) - 19?? + 1992 Sega @@ -329393,7 +333241,7 @@ Ottifants (SMS) - 19?? + 1993 Sega @@ -329485,7 +333333,7 @@ Out Run (SMS-PSG) - 19?? + 1987 Sega @@ -329553,7 +333401,7 @@ Out Run 3-D (SMS-PSG) - 19?? + 1991 Sega @@ -329590,7 +333438,7 @@ Pac In Time (GG) - 19?? + 1994 Namco / Mindscape @@ -329651,7 +333499,7 @@ Paperboy (SMS) - 19?? + 1990 Sega @@ -329670,7 +333518,7 @@ Parlour Games (SMS-PSG) - 19?? + 1987 Sega @@ -329937,7 +333785,7 @@ Penguin Land (SMS-PSG) - 19?? + 1987 Sega @@ -330113,7 +333961,7 @@ Phantasy Star (SMS-PSG) - 19?? + 1987 Sega @@ -330234,7 +334082,7 @@ Phantasy Star Adventure (GG) - 19?? + 1992 Sega @@ -330277,7 +334125,7 @@ Phantasy Star Gaiden (GG) - 19?? + 1992 Sega @@ -330368,7 +334216,7 @@ Pitfall II (SG) - 19?? + 1985 Sega / Activision @@ -330515,7 +334363,7 @@ Power Strike (SMS-PSG) - 19?? + 1988 Sega @@ -330770,7 +334618,7 @@ Prince Of Persia (SMS) - 19?? + 1992 Domark @@ -330898,7 +334746,7 @@ Pro Yakyuu (SMS) - 19?? + 1987 Sega @@ -330941,7 +334789,7 @@ Pro Yakyuu'91 (GG) - 19?? + 1991 Sega @@ -331018,9 +334866,9 @@ - + Psychic World (SMS) - 19?? + 1991 Sega @@ -331111,7 +334959,7 @@ Psycho Fox (SMS) - 19?? + 1989 Sega @@ -331287,7 +335135,7 @@ Quartet (SMS) - 19?? + 1987 Sega @@ -331360,7 +335208,7 @@ Quest For The Shaven Yak (GG) - 19?? + 1993 Sega / Realtime Associates @@ -331506,7 +335354,7 @@ Rambo III (SMS-FM) - 19?? + 1988 Sega @@ -331567,7 +335415,7 @@ Rambo III (SMS-PSG) - 19?? + 1988 Sega @@ -331720,7 +335568,7 @@ R C Grand Prix (SMS) - 19?? + 1989 Sega @@ -331818,7 +335666,7 @@ Ristar The Shooting Star (GG) - 19?? + 1995 Sega @@ -332035,7 +335883,7 @@ Road Rash (SMS) - 19?? + 1993 US Gold @@ -332137,9 +335985,9 @@ - + Rocky (SMS) - 19?? + 1987 Sega @@ -332212,7 +336060,7 @@ R Type (SMS-PSG) - 19?? + 1988 Sega @@ -332321,7 +336169,7 @@ Running Battle (SMS) - 19?? + 1991 Sega @@ -332406,7 +336254,7 @@ Safari Hunt (SMS) - 19?? + 1986 Sega @@ -332437,7 +336285,7 @@ Sagaia (SMS) - 19?? + 1992 Taito @@ -332528,7 +336376,7 @@ Satellite 7 (SMS) - 19?? + 1985 Sega @@ -332553,7 +336401,7 @@ Sega Chess (SMS) - 19?? + 1991 Sega @@ -332846,7 +336694,7 @@ Shining Force Gaiden Final Conflict (GG) - 19?? + 1995 Sega @@ -333033,7 +336881,7 @@ Shining Force Gaiden II (GG) - 19?? + 1993 Sega @@ -333226,7 +337074,7 @@ Shinnyuushain Tooru Kun (SG) - 19?? + 1985 Sega @@ -333334,9 +337182,9 @@ - + Shooting Gallery (SMS) - 19?? + 1987 Sega @@ -333391,7 +337239,7 @@ Slider (GG) - 19?? + 1991 Sega @@ -333458,8 +337306,8 @@ Smurfs (GG) - 19?? - No_Data + 1994 + Infogrames @@ -333597,7 +337445,7 @@ Smurfs (SMS) - 19?? + 1994 Sega / Infogrames @@ -333785,7 +337633,7 @@ Sonic Blast (SMS) - 19?? + 1997 Sega @@ -333900,7 +337748,7 @@ Sonic Chaos (SMS) - 19?? + 1993 Sega @@ -334117,7 +337965,7 @@ Sonic Drift (GG) - 19?? + 1994 Sega @@ -334208,7 +338056,7 @@ Sonic Drift 2 (GG) - 19?? + 1995 Sega @@ -334359,7 +338207,7 @@ Sonic Labyrinth (GG) - 19?? + 1995 Sega @@ -334511,7 +338359,7 @@ Sonic Spinball (GG) - 19?? + 1993 Sega @@ -334566,7 +338414,7 @@ Sonic The Hedgehog (SMS) - 19?? + 1991 Sega @@ -334820,7 +338668,7 @@ Sonic Triple Trouble (GG) - 19?? + 1994 Sega/Aspect Co. Ltd @@ -335025,7 +338873,7 @@ Space Harrier (SMS) - 19?? + 1986 Sega @@ -335134,7 +338982,7 @@ Space Harrier 3-D (SMS-FM) - 19?? + 1988 Sega @@ -335255,7 +339103,7 @@ Space Harrier 3-D (SMS-PSG) - 19?? + 1988 Sega @@ -335376,7 +339224,7 @@ Spell Caster (SMS-PSG) - 19?? + 1988 Sega @@ -335528,7 +339376,7 @@ Spider Man Vs The Kingpin (SMS) - 19?? + 1990 Sega @@ -336116,7 +339964,7 @@ Streets Of Rage II (GG) - 19?? + 1993 Sega @@ -336499,7 +340347,7 @@ Sukeban Deka II (SMS) - 19?? + 1987 Sega @@ -336615,7 +340463,7 @@ Summer Games (SMS-PSG) - 19?? + 1991 Sega / Epyx @@ -336736,7 +340584,7 @@ Super Basketball (SMS-FM) - 19?? + 1989? Sega @@ -336749,7 +340597,7 @@ Super Basketball (SMS-PSG) - 19?? + 1989? Sega @@ -336762,7 +340610,7 @@ Super Boy 4 (SMS) - 19?? + 1992 Zemina @@ -336835,7 +340683,7 @@ Super Boy II (SMS) - 19?? + 1989 Zemina @@ -336860,7 +340708,7 @@ Super Columns (GG) - 19?? + 1995 Sega @@ -336963,7 +340811,7 @@ Super Monaco GP (SMS) - 19?? + 1990 Sega @@ -337042,7 +340890,7 @@ Super Monaco GP I (SMS) - 19?? + 1992 Sega @@ -337122,7 +340970,7 @@ Super Tennis (SMS) - 19?? + 1985 Sega @@ -337175,8 +341023,8 @@ - - (SuperTetris) + + Super Tetris (GG) 19?? Unknown @@ -337546,7 +341394,7 @@ Tails Skypatrol (GG) - 19?? + 1995 Sega @@ -337752,7 +341600,7 @@ Taz Mania (SMS) - 19?? + 1992 Sega @@ -337831,7 +341679,7 @@ Teddy Boy (SMS) - 19?? + 1985 Sega @@ -337897,7 +341745,7 @@ - + Thunder Blade (SMS-FM) 1988 Sega @@ -337934,7 +341782,7 @@ - + Thunder Blade (SMS-PSG) 19?? Sega @@ -338307,7 +342155,7 @@ Trans Bot (SMS) - 19?? + 1985 Sega @@ -340181,7 +344029,7 @@ Wonder Boy (SMS) - 19?? + 1987 Sega @@ -340561,9 +344409,9 @@ - + Wonder Boy In Monster Land (SMS-FM) - 19?? + 1988 Sega @@ -340628,9 +344476,9 @@ - + Wonder Boy In Monster Land (SMS-PSG) - 19?? + 1988 Sega @@ -340928,7 +344776,7 @@ World Games (SMS) - 19?? + 1989 Sega / Epyx @@ -341065,9 +344913,9 @@ - + World Grand Prix (SMS) - 19?? + 1986 Sega @@ -341080,7 +344928,7 @@ World Soccer (SMS) - 19?? + 1987 Sega @@ -341631,7 +345479,7 @@ Ys (SMS-PSG) - 19?? + 1988 Sega/Falcom @@ -341759,7 +345607,7 @@ Zan Gear (GG) 1990 - No_Data + Wolfteam @@ -341898,7 +345746,7 @@ Zillion (SMS) - 19?? + 1987 Sega @@ -341947,7 +345795,7 @@ Zillion II (SMS-FM) - 19?? + 1987 Sega @@ -341984,7 +345832,7 @@ Zillion II (SMS-PSG) - 19?? + 1987 Sega @@ -342052,7 +345900,7 @@ Zoop (GG) - 19?? + 1995 Viacom New Media diff -Nru mame-0.223+dfsg.1/hash/vsmile_cart.xml mame-0.224+dfsg.1/hash/vsmile_cart.xml --- mame-0.223+dfsg.1/hash/vsmile_cart.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/vsmile_cart.xml 2020-08-26 08:57:19.000000000 +0000 @@ -116,7 +116,7 @@ | | 80-090200(US) | | +========+===================+================================================================================================+ | | 80-090220(US) | should be Wild Waves (purple) | -| | 80-090224(GE) | Dolphis Wasser-abenteuer (52-090224(GE) on back label) | +| XX | 80-090224(GE) | Dolphis Wasser-abenteuer (52-090224(GE) on back label) | +========+===================+================================================================================================+ | | 80-090240(US) | | +========+===================+================================================================================================+ @@ -172,8 +172,8 @@ | XX | 80-092065-105(FR) | Winnie l'Ourson - La Chasse au miel de Winnie (rev. 105 | | | 80-092066(PT) | Winnie the Pooh - Em Busca Do Mel (92076 on cart) | | XX | 80-092067(SP) | Winnie the Pooh - En Busca de la Miel (no # on label, 92067 on PCB) | -| | 80-092068(CN) | 小熊维尼 | | XX | 80-092067-122(SP) | My Friends Tigger and Pooh - En Busca de la Miel (rev. 122, 092067-1 on PCB) | +| | 80-092068(CN) | 小熊维尼 | | XX | 80-092073(DK) | Peter Plys - Honningjagten | | XX | 80-092074(SE) | Nalle Puh - Honungsjakten | | | (NO) | Winnie the Pooh - Honningjakten | diff -Nru mame-0.223+dfsg.1/hash/vsmilem_cart.xml mame-0.224+dfsg.1/hash/vsmilem_cart.xml --- mame-0.223+dfsg.1/hash/vsmilem_cart.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/vsmilem_cart.xml 2020-08-26 08:57:19.000000000 +0000 @@ -18,6 +18,7 @@ ********5 = France (Yellow labels on back, also for NTSC French-Canadian) ********6 = Portugal Apparently distributed by company 'Concentra' (White labels on back) ********7 = Spain (Green labels on back) +********8 = China *******13 = Denmark Distributed by the company 'Top Toy A/S' *******14 = Sweden Distributed by the company 'Top Toy A/S' *******15 = Norway @@ -34,6 +35,7 @@ | XX | 80-084005(FR) | Sporti'Folies | | | 80-084006(PT) | Action Mania (84016 on cart) | | XX | 80-084007(SP) | Action Manía | +| | 80-084008(CN) | 英语运动园 | +========+===================+===========================================================================================+ | XX | 80-084020(US) | Dora the Explorer: Dora's Fix It Adventure | | ** | 80-084021(US) | Dora the Explorer: Dora's Fix It Adventure (pocket version, same ROM as 80-084020(US)) | @@ -90,6 +92,7 @@ | XX | 80-084185-005(FR) | La Maison de Mickey | | | 80-084186(PT) | A Casa do Mickey Mouse (84196 on cart) | | XX | 80-084187(SP) | La Casa de Mickey Mouse | +| | 80-084188(CN) | 米奇妙妙屋 | +========+===================+===========================================================================================+ | XX | 80-084200(US) | Nascar Academy - Race Car Superstar | +========+===================+===========================================================================================+ @@ -121,6 +124,7 @@ | XX | 80-084305(FR) | Football Challenge | | | 80-084306(PT) | Football Challenge (cart#??) | | | 80-084307(SP) | Campeonato de Fútbol | +| | 80-084308(CN) | 欢乐足球 | +========+===================+===========================================================================================+ | | 80-084320(US) | Disney Fairies: TinkerBell | | | 80-084321(US) | Disney Fairies: TinkerBell (pocket version) | diff -Nru mame-0.223+dfsg.1/hash/z80ne_flop.xml mame-0.224+dfsg.1/hash/z80ne_flop.xml --- mame-0.223+dfsg.1/hash/z80ne_flop.xml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/hash/z80ne_flop.xml 2020-08-26 08:57:19.000000000 +0000 @@ -157,9 +157,9 @@ An interesting note from z80ne.com: This version has been recovered by undeleting some files that were on the original - NE-DOS version G.1.0 floppy. Probably, Nuova Elettronica tecnicians saved that files - on the master floppy to be distributed, but they deleted them because that files weren't - part of the distribution (infact editor assembler/disassembler was sold separately). + NE-DOS version G.1.0 floppy. Probably, Nuova Elettronica tecnicians saved those files + on the master floppy to be distributed, but they deleted them because the files weren't + part of the distribution (in fact editor assembler/disassembler was sold separately). Anyway, due to the fact that they are recovered files, I cannot guarantee that they are the official version and not a test version instead. However, from the tests I made, they work perfectly. @@ -167,12 +167,12 @@ From the NE-DOS version G.1.0 original floppy I was able to undelete and recover the following programs, that I saved on this floppy: Editor assembler, Disassembler, Super Debug, Disk Print and LmOffset. - The Super Debug has been announced on the magazine, but it was never released. - It's clear that it's a preliminar version, because it's clearly a bad preliminar translation + The Super Debug has been announced in the magazine, but it was never released. + It's clear that it's a preliminary version, because it's clearly a bad preliminary translation in italian of an english program, probably SuperZap that was made for Tandy TRS-80. - The Disk Print is a program never named on the magazine, that dumps floppy + The Disk Print is a program never named in the magazine, that dumps floppy contents on video or printer. - Then the LmOffset program, also never named on the magazine, it's the same + Then the LmOffset program, also never named in the magazine, it's the same program that can be found on the Tandy TRS-80 --> @@ -562,7 +562,7 @@ NC - register_subalias("5", "A.VCC"); - register_subalias("6", "A.R91"); - register_subalias("7", "A.R92"); - - register_subalias("8", "A.QC"); - register_subalias("9", "A.QB"); - register_subalias("10", "A.GND"); - register_subalias("11", "A.QD"); - register_subalias("12", "A.QA"); - // register_subalias("13", ); --> NC - register_subalias("14", "A.A"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(7490) A; - }; - NETLIB_DEVICE_IMPL(7490, "TTL_7490", "+A,+B,+R1,+R2,+R91,+R92,@VCC,@GND") - NETLIB_DEVICE_IMPL(7490_dip, "TTL_7490_DIP", "") } // namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7490.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7490.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7490.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7490.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,74 +1,13 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_7490.h - * - * DM7490: Decade Counters - * - * +--------------+ - * B |1 ++ 14| A - * R01 |2 13| NC - * R02 |3 12| QA - * NC |4 7490 11| QD - * VCC |5 10| GND - * R91 |6 9| QB - * R92 |7 8| QC - * +--------------+ - * - * Counter Sequence - * - * +-------++----+----+----+----+ - * | COUNT || QD | QC | QB | QA | - * +=======++====+====+====+====+ - * | 0 || 0 | 0 | 0 | 0 | - * | 1 || 0 | 0 | 0 | 1 | - * | 2 || 0 | 0 | 1 | 0 | - * | 3 || 0 | 0 | 1 | 1 | - * | 4 || 0 | 1 | 0 | 0 | - * | 5 || 0 | 1 | 0 | 1 | - * | 6 || 0 | 1 | 1 | 0 | - * | 7 || 0 | 1 | 1 | 1 | - * | 8 || 1 | 0 | 0 | 0 | - * | 9 || 1 | 0 | 0 | 1 | - * +-------++----+----+----+----+ - * - * Note A Output QA is connected to input B for BCD count - * - * Reset Count Function table - * - * +-----+-----+-----+-----++----+----+----+----+ - * | R01 | R02 | R91 | R92 || QD | QC | QB | QA | - * +=====+=====+=====+=====++====+====+====+====+ - * | 1 | 1 | 0 | X || 0 | 0 | 0 | 0 | - * | 1 | 1 | X | 0 || 0 | 0 | 0 | 0 | - * | X | X | 1 | 1 || 1 | 0 | 0 | 1 | - * | X | 0 | X | 0 || COUNT | - * | 0 | X | 0 | X || COUNT | - * | 0 | X | X | 0 || COUNT | - * | X | 0 | 0 | X || COUNT | - * +-----+-----+-----+-----++----+----+----+----+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ #ifndef NLD_7490_H_ #define NLD_7490_H_ #include "netlist/nl_setup.h" -#define TTL_7490(name, cA, cB, cR1, cR2, cR91, cR92) \ - NET_REGISTER_DEV(TTL_7490, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) \ - NET_CONNECT(name, R1, cR1) \ - NET_CONNECT(name, R2, cR2) \ - NET_CONNECT(name, R91, cR91) \ - NET_CONNECT(name, R92, cR92) - -#define TTL_7490_DIP(name) \ - NET_REGISTER_DEV(TTL_7490_DIP, name) +// usage: TTL_7490(name, cA, cB, cR1, cR2, cR91, cR92) +#define TTL_7490(...) \ + NET_REGISTER_DEVEXT(TTL_7490, __VA_ARGS__) #endif /* NLD_7490_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7492.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7492.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7492.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7492.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,9 +3,53 @@ /* * nld_7492.cpp * + * SN7492: Divide-by-12 Counter + * + * +--------------+ + * B |1 ++ 14| A + * NC |2 13| NC + * NC |3 12| QA + * NC |4 7492 11| QD + * VCC |5 10| GND + * R01 |6 9| QB + * R02 |7 8| QC + * +--------------+ + * + * Counter Sequence + * + * +-------++----+----+----+----+ + * | COUNT || QD | QC | QB | QA | + * +=======++====+====+====+====+ + * | 0 || 0 | 0 | 0 | 0 | + * | 1 || 0 | 0 | 0 | 1 | + * | 2 || 0 | 0 | 1 | 0 | + * | 3 || 0 | 0 | 1 | 1 | + * | 4 || 0 | 1 | 0 | 0 | + * | 5 || 0 | 1 | 0 | 1 | + * | 6 || 1 | 0 | 0 | 0 | + * | 7 || 1 | 0 | 0 | 1 | + * | 8 || 1 | 0 | 1 | 0 | + * | 9 || 1 | 0 | 1 | 1 | + * | 10 || 1 | 1 | 0 | 0 | + * | 11 || 1 | 1 | 0 | 1 | + * +-------++----+----+----+----+ + * + * Note A Output QA is connected to input B + * + * Reset Count Function table + * + * +-----+-----++----+----+----+----+ + * | R01 | R02 || QD | QC | QB | QA | + * +=====+=====++====+====+====+====+ + * | 1 | 1 || 0 | 0 | 0 | 0 | + * | 0 | X || COUNT | + * | X | 0 || COUNT | + * +-----+-----++----+----+----+----+ + * + * Naming conventions follow Texas Instruments datasheet + * */ -#include "nld_7492.h" #include "netlist/nl_base.h" namespace netlist @@ -89,35 +133,7 @@ nld_power_pins m_power_pins; }; - NETLIB_OBJECT(7492_dip) - { - NETLIB_CONSTRUCTOR(7492_dip) - , A(*this, "A") - { - register_subalias("1", "A.B"); - // register_subalias("2", ); --> NC - // register_subalias("3", ); --> NC - - // register_subalias("4", ); --> NC - register_subalias("5", "A.VCC"); - register_subalias("6", "A.R1"); - register_subalias("7", "A.R2"); - - register_subalias("8", "A.QC"); - register_subalias("9", "A.QB"); - register_subalias("10", "A.GND"); - register_subalias("11", "A.QD"); - register_subalias("12", "A.QA"); - // register_subalias("13", ); --> NC - register_subalias("14", "A.A"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(7492) A; - }; - NETLIB_DEVICE_IMPL(7492, "TTL_7492", "+A,+B,+R1,+R2,@VCC,@GND") - NETLIB_DEVICE_IMPL(7492_dip, "TTL_7492_DIP", "") } // namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7492.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7492.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7492.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7492.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,70 +1,13 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_7492.h - * - * SN7492: Divide-by-12 Counter - * - * +--------------+ - * B |1 ++ 14| A - * NC |2 13| NC - * NC |3 12| QA - * NC |4 7492 11| QD - * VCC |5 10| GND - * R01 |6 9| QB - * R02 |7 8| QC - * +--------------+ - * - * Counter Sequence - * - * +-------++----+----+----+----+ - * | COUNT || QD | QC | QB | QA | - * +=======++====+====+====+====+ - * | 0 || 0 | 0 | 0 | 0 | - * | 1 || 0 | 0 | 0 | 1 | - * | 2 || 0 | 0 | 1 | 0 | - * | 3 || 0 | 0 | 1 | 1 | - * | 4 || 0 | 1 | 0 | 0 | - * | 5 || 0 | 1 | 0 | 1 | - * | 6 || 1 | 0 | 0 | 0 | - * | 7 || 1 | 0 | 0 | 1 | - * | 8 || 1 | 0 | 1 | 0 | - * | 9 || 1 | 0 | 1 | 1 | - * | 10 || 1 | 1 | 0 | 0 | - * | 11 || 1 | 1 | 0 | 1 | - * +-------++----+----+----+----+ - * - * Note A Output QA is connected to input B - * - * Reset Count Function table - * - * +-----+-----++----+----+----+----+ - * | R01 | R02 || QD | QC | QB | QA | - * +=====+=====++====+====+====+====+ - * | 1 | 1 || 0 | 0 | 0 | 0 | - * | 0 | X || COUNT | - * | X | 0 || COUNT | - * +-----+-----++----+----+----+----+ - * - * Naming conventions follow Texas Instruments datasheet - * - */ #ifndef NLD_7492_H_ #define NLD_7492_H_ #include "netlist/nl_setup.h" -#define TTL_7492(name, cA, cB, cR1, cR2) \ - NET_REGISTER_DEV(TTL_7492, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) \ - NET_CONNECT(name, R1, cR1) \ - NET_CONNECT(name, R2, cR2) - -#define TTL_7492_DIP(name) \ - NET_REGISTER_DEV(TTL_7492_DIP, name) +// usage: TTL_7492(name, cA, cB, cR1, cR2) +#define TTL_7492(...) \ + NET_REGISTER_DEVEXT(TTL_7492, __VA_ARGS__) #endif /* NLD_7492_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7493.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7493.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7493.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7493.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,55 @@ /* * nld_7493.cpp * + * DM7493: Binary Counters + * + * +--------------+ + * B |1 ++ 14| A + * R01 |2 13| NC + * R02 |3 12| QA + * NC |4 7493 11| QD + * VCC |5 10| GND + * NC |6 9| QB + * NC |7 8| QC + * +--------------+ + * + * Counter Sequence + * + * +-------++----+----+----+----+ + * | COUNT || QD | QC | QB | QA | + * +=======++====+====+====+====+ + * | 0 || 0 | 0 | 0 | 0 | + * | 1 || 0 | 0 | 0 | 1 | + * | 2 || 0 | 0 | 1 | 0 | + * | 3 || 0 | 0 | 1 | 1 | + * | 4 || 0 | 1 | 0 | 0 | + * | 5 || 0 | 1 | 0 | 1 | + * | 6 || 0 | 1 | 1 | 0 | + * | 7 || 0 | 1 | 1 | 1 | + * | 8 || 1 | 0 | 0 | 0 | + * | 9 || 1 | 0 | 0 | 1 | + * | 10 || 1 | 0 | 1 | 0 | + * | 11 || 1 | 0 | 1 | 1 | + * | 12 || 1 | 1 | 0 | 0 | + * | 13 || 1 | 1 | 0 | 1 | + * | 14 || 1 | 1 | 1 | 0 | + * | 15 || 1 | 1 | 1 | 1 | + * +-------++----+----+----+----+ + * + * Note C Output QA is connected to input B + * + * Reset Count Function table + * + * +-----+-----++----+----+----+----+ + * | R01 | R02 || QD | QC | QB | QA | + * +=====+=====++====+====+====+====+ + * | 1 | 1 || 0 | 0 | 0 | 0 | + * | 0 | X || COUNT | + * | X | 0 || COUNT | + * +-----+-----++----+----+----+----+ + * + * Naming conventions follow National Semiconductor datasheet + * */ #include "nld_7493.h" @@ -149,35 +198,7 @@ nld_power_pins m_power_pins; }; - NETLIB_OBJECT(7493_dip) - { - NETLIB_CONSTRUCTOR(7493_dip) - , A(*this, "A") - { - register_subalias("1", "A.CLKB"); - register_subalias("2", "A.R1"); - register_subalias("3", "A.R2"); - - // register_subalias("4", ); --> NC - register_subalias("5", "A.VCC"); - // register_subalias("6", ); --> NC - // register_subalias("7", ); --> NC - - register_subalias("8", "A.QC"); - register_subalias("9", "A.QB"); - register_subalias("10", "A.GND"); - register_subalias("11", "A.QD"); - register_subalias("12", "A.QA"); - // register_subalias("13", ); -. NC - register_subalias("14", "A.CLKA"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(7493) A; - }; - NETLIB_DEVICE_IMPL(7493, "TTL_7493", "+CLKA,+CLKB,+R1,+R2,@VCC,@GND") - NETLIB_DEVICE_IMPL(7493_dip, "TTL_7493_DIP", "") } // namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7493.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7493.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7493.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7493.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,74 +1,13 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_7493.h - * - * DM7493: Binary Counters - * - * +--------------+ - * B |1 ++ 14| A - * R01 |2 13| NC - * R02 |3 12| QA - * NC |4 7493 11| QD - * VCC |5 10| GND - * NC |6 9| QB - * NC |7 8| QC - * +--------------+ - * - * Counter Sequence - * - * +-------++----+----+----+----+ - * | COUNT || QD | QC | QB | QA | - * +=======++====+====+====+====+ - * | 0 || 0 | 0 | 0 | 0 | - * | 1 || 0 | 0 | 0 | 1 | - * | 2 || 0 | 0 | 1 | 0 | - * | 3 || 0 | 0 | 1 | 1 | - * | 4 || 0 | 1 | 0 | 0 | - * | 5 || 0 | 1 | 0 | 1 | - * | 6 || 0 | 1 | 1 | 0 | - * | 7 || 0 | 1 | 1 | 1 | - * | 8 || 1 | 0 | 0 | 0 | - * | 9 || 1 | 0 | 0 | 1 | - * | 10 || 1 | 0 | 1 | 0 | - * | 11 || 1 | 0 | 1 | 1 | - * | 12 || 1 | 1 | 0 | 0 | - * | 13 || 1 | 1 | 0 | 1 | - * | 14 || 1 | 1 | 1 | 0 | - * | 15 || 1 | 1 | 1 | 1 | - * +-------++----+----+----+----+ - * - * Note C Output QA is connected to input B - * - * Reset Count Function table - * - * +-----+-----++----+----+----+----+ - * | R01 | R02 || QD | QC | QB | QA | - * +=====+=====++====+====+====+====+ - * | 1 | 1 || 0 | 0 | 0 | 0 | - * | 0 | X || COUNT | - * | X | 0 || COUNT | - * +-----+-----++----+----+----+----+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ #ifndef NLD_7493_H_ #define NLD_7493_H_ #include "netlist/nl_setup.h" -#define TTL_7493(name, cCLKA, cCLKB, cR1, cR2) \ - NET_REGISTER_DEV(TTL_7493, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, CLKA, cCLKA) \ - NET_CONNECT(name, CLKB, cCLKB) \ - NET_CONNECT(name, R1, cR1) \ - NET_CONNECT(name, R2, cR2) - -#define TTL_7493_DIP(name) \ - NET_REGISTER_DEV(TTL_7493_DIP, name) +// usage: TTL_7493(name, cCLKA, cCLKB, cR1, cR2) +#define TTL_7493(...) \ + NET_REGISTER_DEVEXT(TTL_7493, __VA_ARGS__) #endif /* NLD_7493_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7497.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7497.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7497.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7497.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -7,6 +7,34 @@ * * - STRB and EN * - Timing + * + * SN7497: Synchronous 6-Bit Binary Rate Multiplier + * + * +--------------+ + * B1 |1 16| VCC + * B4 |2 15| B3 + * B5 |3 14| B2 + * B0 |4 7497 13| CLR + * Z |5 12| UNITY/CAS + * Y |6 11| ENin (EN) + * ENout |7 10| STRB + * GND |8 9| CLK + * +--------------+ + * + * Naming conventions follow TI datasheet + * + * The counter is enabled when the clear, strobe, and enable inputs are low. + * + * When the rate input is binary 0 (all rate inputs low), Z remains high [and Y low]. + * + * The unity/cascade input, when connected to the clock input, passes + * clock frequency (inverted) to the Y output when the rate input/decoding + * gates are inhibited by the strobe. + * + * When CLR is H, states of CLK and STRB can affect Y and Z. Default are + * Y L, Z H, ENout H. + * + * Unity/cascade is used to inhibit output Y (UNITY L -> Y H) */ #include "nld_7497.h" @@ -20,6 +48,8 @@ static constexpr const std::array out_delay_CLK_Y = { NLTIME_FROM_NS(20), NLTIME_FROM_NS(26) }; // tPHL, tPLH static constexpr const std::array out_delay_CLK_Z = { NLTIME_FROM_NS(17), NLTIME_FROM_NS(12) }; + // FIXME: room for improvement -> clock handling + NETLIB_OBJECT(7497) { NETLIB_CONSTRUCTOR(7497) @@ -48,8 +78,6 @@ m_lastclock = 0; } - NETLIB_HANDLERI(noop) { } - NETLIB_HANDLERI(unity) { newstate (m_state); @@ -102,8 +130,6 @@ clk_strb(); } - friend class NETLIB_NAME(7497_dip); - object_array_t m_B; logic_input_t m_CLK; logic_input_t m_STRBQ; @@ -141,37 +167,7 @@ } }; - NETLIB_OBJECT(7497_dip) - { - NETLIB_CONSTRUCTOR(7497_dip) - , A(*this, "A") - { - register_subalias("1", A.m_B[4]); // B0 - register_subalias("2", A.m_B[1]); // B4 - register_subalias("3", A.m_B[0]); // B5 - register_subalias("4", A.m_B[5]); // B0 - register_subalias("5", A.m_ZQ); - register_subalias("6", A.m_Y); - register_subalias("7", A.m_ENOUTQ); - register_subalias("8", "A.GND"); - - register_subalias("9", A.m_CLK); - register_subalias("10", A.m_STRBQ); - register_subalias("11", A.m_UNITYQ); - register_subalias("12", A.m_ENQ); - register_subalias("13", A.m_CLR); - register_subalias("14", A.m_B[3]); // B2 - register_subalias("15", A.m_B[2]); // B3 - register_subalias("16", "A.VCC"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(7497) A; - }; - - NETLIB_DEVICE_IMPL(7497, "TTL_7497", "+CLK,+STRBQ,+ENQ,+UNITYQ,+CLR,+B0,+B1,+B2,+B3,+B4,+B5,@VCC,@GND") - NETLIB_DEVICE_IMPL(7497_dip, "TTL_7497_DIP", "") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7497.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7497.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_7497.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_7497.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,59 +1,13 @@ // license:GPL-2.0+ // copyright-holders:Sergey Svishchev -/* - * nld_7497.h - * - * SN7497: Synchronous 6-Bit Binary Rate Multiplier - * - * +--------------+ - * B1 |1 16| VCC - * B4 |2 15| B3 - * B5 |3 14| B2 - * B0 |4 7497 13| CLR - * Z |5 12| UNITY/CAS - * Y |6 11| ENin (EN) - * ENout |7 10| STRB - * GND |8 9| CLK - * +--------------+ - * - * Naming conventions follow TI datasheet - * - * The counter is enabled when the clear, strobe, and enable inputs are low. - * - * When the rate input is binary 0 (all rate inputs low), Z remains high [and Y low]. - * - * The unity/cascade input, when connected to the clock input, passes - * clock frequency (inverted) to the Y output when the rate input/decoding - * gates are inhibited by the strobe. - * - * When CLR is H, states of CLK and STRB can affect Y and Z. Default are - * Y L, Z H, ENout H. - * - * Unity/cascade is used to inhibit output Y (UNITY L -> Y H) - */ #ifndef NLD_7497_H_ #define NLD_7497_H_ #include "netlist/nl_setup.h" -#define TTL_7497(name, cCLK, cSTRB, cEN, cUNITY, cCLR, cB0, cB1, cB2, cB3, cB4, cB5) \ - NET_REGISTER_DEV(TTL_7497, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, CLK, cCLK) \ - NET_CONNECT(name, STRBQ, cSTRB) \ - NET_CONNECT(name, ENQ, cEN) \ - NET_CONNECT(name, UNITYQ,cUNITY) \ - NET_CONNECT(name, CLR, cCLR) \ - NET_CONNECT(name, B0, cB0) \ - NET_CONNECT(name, B1, cB1) \ - NET_CONNECT(name, B2, cB2) \ - NET_CONNECT(name, B3, cB3) \ - NET_CONNECT(name, B4, cB4) \ - NET_CONNECT(name, B5, cB5) - -#define TTL_7497_DIP(name) \ - NET_REGISTER_DEV(TTL_7497_DIP, name) +// usage: TTL_7497(name, cCLK, cSTRB, cEN, cUNITY, cCLR, cB0, cB1, cB2, cB3, cB4, cB5) +#define TTL_7497(...) \ + NET_REGISTER_DEVEXT(TTL_7497, __VA_ARGS__) #endif /* NLD_7497_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_74ls629.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_74ls629.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_74ls629.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_74ls629.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,7 +1,27 @@ // license:GPL-2.0+ // copyright-holders:Couriersud /* - * nld_SN74LS629.c + * nld_SN74LS629.cpp + * + * SN74LS629: VOLTAGE-CONTROLLED OSCILLATORS + * + * +--------------+ + * 2FC |1 ++ 16| VCC + * 1FC |2 15| QSC VCC + * 1RNG |3 14| 2RNG + * 1CX1 |4 74LS629 13| 2CX1 + * 1CX2 |5 12| 2CX2 + * 1ENQ |6 11| 2ENQ + * 1Y |7 10| 2Y + * OSC GND |8 9| GND + * +--------------+ + * + * Naming conventions follow Texas Instruments datasheet + * + * NOTE: The CX1 and CX2 pins are not connected! + * The capacitor value has to be specified as a parameter. + * There are more comments on the challenges of emulating this + * chip in the *.c file * */ @@ -46,23 +66,17 @@ { namespace devices { - NETLIB_OBJECT(SN74LS629clk) - { - NETLIB_CONSTRUCTOR(SN74LS629clk) - , m_FB(*this, "FB", NETLIB_DELEGATE(fb)) - , m_Y(*this, "Y") - , m_enableq(*this, "m_enableq", 1) - , m_out(*this, "m_out", 0) - , m_inc(*this, "m_inc", netlist_time::zero()) - { - connect(m_FB, m_Y); - } - NETLIB_RESETI() + struct SN74LS629clk + { + SN74LS629clk(device_t &owner) + : m_FB(owner, "FB", nldelegate(&SN74LS629clk::fb, this)) + , m_Y(owner, "Y") + , m_enableq(owner, "m_enableq", 0) + , m_out(owner, "m_out", 0) + , m_inc(owner, "m_inc", netlist_time::zero()) { - m_enableq = 0; - m_out = 0; - m_inc = netlist_time::zero(); + owner.connect(m_FB, m_Y); } public: @@ -72,6 +86,7 @@ state_var m_enableq; state_var m_out; state_var m_inc; + private: NETLIB_HANDLERI(fb) { @@ -91,15 +106,17 @@ NETLIB_OBJECT(SN74LS629) { NETLIB_CONSTRUCTOR(SN74LS629) - , m_clock(*this, "OSC") + , m_clock(*this) , m_R_FC(*this, "R_FC") , m_R_RNG(*this, "R_RNG") , m_ENQ(*this, "ENQ", NETLIB_DELEGATE(inputs)) , m_RNG(*this, "RNG", NETLIB_DELEGATE(inputs)) , m_FC(*this, "FC", NETLIB_DELEGATE(inputs)) , m_CAP(*this, "CAP", nlconst::magic(1e-6)) + , m_power_pins(*this) + , m_power_pins_osc(*this, "OSCVCC", "OSCGND") { - register_subalias("GND", m_R_FC.N()); + connect(m_power_pins_osc.GND(), m_R_FC.N()); connect(m_FC, m_R_FC.P()); connect(m_RNG, m_R_RNG.P()); @@ -112,7 +129,6 @@ { m_R_FC.set_R( nlconst::magic(90000.0)); m_R_RNG.set_R(nlconst::magic(90000.0)); - m_clock.reset(); } NETLIB_UPDATE_PARAMI() @@ -121,7 +137,7 @@ } public: - NETLIB_SUB(SN74LS629clk) m_clock; + SN74LS629clk m_clock; analog::NETLIB_SUB(R_base) m_R_FC; analog::NETLIB_SUB(R_base) m_R_RNG; @@ -130,6 +146,8 @@ analog_input_t m_FC; param_fp_t m_CAP; + nld_power_pins m_power_pins; + nld_power_pins m_power_pins_osc; private: NETLIB_HANDLERI(inputs) @@ -174,8 +192,6 @@ // FIXME: we need a possibility to remove entries from queue ... // or an exact model ... m_clock.m_inc = netlist_time::from_fp(nlconst::half() / freq); - - //NL_VERBOSE_OUT(("{1} {2} {3} {4}\n", name(), v_freq, v_rng, freq)); } if (!m_clock.m_enableq && m_ENQ()) @@ -194,43 +210,7 @@ }; - NETLIB_OBJECT(SN74LS629_dip) - { - NETLIB_CONSTRUCTOR(SN74LS629_dip) - , m_A(*this, "A") - , m_B(*this, "B") - { - register_subalias("1", m_B.m_FC); - register_subalias("2", m_A.m_FC); - register_subalias("3", m_A.m_RNG); - - register_subalias("6", m_A.m_ENQ); - register_subalias("7", m_A.m_clock.m_Y); - - register_subalias("8", m_A.m_R_FC.N()); - register_subalias("9", m_A.m_R_FC.N()); - connect(m_A.m_R_FC.N(), m_B.m_R_FC.N()); - - register_subalias("10", m_B.m_clock.m_Y); - - register_subalias("11", m_B.m_ENQ); - register_subalias("14", m_B.m_RNG); - } - - - NETLIB_RESETI() - { - m_A.reset(); - m_B.reset(); - } - - private: - NETLIB_SUB(SN74LS629) m_A; - NETLIB_SUB(SN74LS629) m_B; - }; - - NETLIB_DEVICE_IMPL(SN74LS629, "SN74LS629", "CAP") - NETLIB_DEVICE_IMPL(SN74LS629_dip, "SN74LS629_DIP", "1.CAP1,2.CAP2") + NETLIB_DEVICE_IMPL(SN74LS629, "SN74LS629", "CAP,@VCC,@GND") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_74ls629.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_74ls629.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_74ls629.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_74ls629.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,39 +1,12 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_74LS629.h - * - * SN74LS629: VOLTAGE-CONTROLLED OSCILLATORS - * - * +--------------+ - * 2FC |1 ++ 16| VCC - * 1FC |2 15| QSC VCC - * 1RNG |3 14| 2RNG - * 1CX1 |4 74LS629 13| 2CX1 - * 1CX2 |5 12| 2CX2 - * 1ENQ |6 11| 2ENQ - * 1Y |7 10| 2Y - * OSC GND |8 9| GND - * +--------------+ - * - * Naming conventions follow Texas Instruments datasheet - * - * NOTE: The CX1 and CX2 pins are not connected! - * The capacitor value has to be specified as a parameter. - * There are more comments on the challenges of emulating this - * chip in the *.c file - * - */ #ifndef NLD_74LS629_H_ #define NLD_74LS629_H_ #include "netlist/nl_setup.h" -#define SN74LS629(name, p_cap) \ - NET_REGISTER_DEVEXT(SN74LS629, name, p_cap) - -#define SN74LS629_DIP(name, p_cap1, p_cap2) \ - NET_REGISTER_DEVEXT(SN74LS629_DIP, name, p_cap1, p_cap2) +#define SN74LS629(name, ...) \ + NET_REGISTER_DEVEXT(SN74LS629, name,__VA_ARGS__) #endif /* NLD_74LS629_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_8277.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_8277.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_8277.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_8277.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,204 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +/* + * nld_8277.cpp + * + * 8277: Dual 8-Bit Shift Register + * + * +--------------+ + * RESET |1 ++ 16| VCC + * /Q7A |2 15| /Q7B + * Q7A |3 14| Q7B + * DSA |4 8277 13| DSB + * D1A |5 12| D1B + * D0A |6 11| D0B + * CLKA |7 10| CLKB + * GND |8 9| CLK + * +--------------+ + * + */ + +#include "nld_8277.h" +#include "netlist/nl_base.h" + +namespace netlist +{ + namespace devices + { + NETLIB_OBJECT(8277_shifter) + { + NETLIB_CONSTRUCTOR(8277_shifter) + , m_D0(*this, "D0", NETLIB_DELEGATE(inputs)) + , m_D1(*this, "D1", NETLIB_DELEGATE(inputs)) + , m_DS(*this, "DS", NETLIB_DELEGATE(inputs)) + , m_buffer(*this, "m_buffer", 0) + , m_Q7(*this, "Q7") + , m_Q7Q(*this, "Q7Q") + , m_power_pins(*this) + { + } + + public: + void reset_shifter() noexcept + { + m_buffer = 0; + m_Q7.push(0, NLTIME_FROM_NS(40)); + m_Q7Q.push(1, NLTIME_FROM_NS(40)); + } + + void shift() noexcept + { + uint32_t in = (m_DS() ? m_D1() : m_D0()); + m_buffer <<= 1; + m_buffer |= in; + uint32_t out = (m_buffer >> 7) & 1; + uint32_t outq = (~m_buffer >> 7) & 1; + m_Q7.push(out, NLTIME_FROM_NS(40)); + m_Q7Q.push(outq, NLTIME_FROM_NS(40)); + } + + logic_input_t m_D0; + logic_input_t m_D1; + logic_input_t m_DS; + + state_var m_buffer; + + logic_output_t m_Q7; + logic_output_t m_Q7Q; + nld_power_pins m_power_pins; + private: + NETLIB_HANDLERI(inputs) + { + /* do nothing */ + } + }; + + NETLIB_OBJECT(8277) + { + NETLIB_CONSTRUCTOR(8277) + , m_A(*this, "A") + , m_B(*this, "B") + , m_RESET(*this, "RESET", NETLIB_DELEGATE(shifter_reset)) + , m_CLK(*this, "CLK", NETLIB_DELEGATE(clk)) + , m_CLKA(*this, "CLKA", NETLIB_DELEGATE(clka)) + , m_CLKB(*this, "CLKB", NETLIB_DELEGATE(clkb)) + , m_last_CLK(*this, "m_last_CLK", 0) + , m_last_CLKA(*this, "m_last_CLKA", 0) + , m_last_CLKB(*this, "m_last_CLKB", 0) + // FIXME: needs family! + { + register_subalias("RESET", m_RESET); + register_subalias("CLK", m_CLK); + register_subalias("CLKA", m_CLKA); + register_subalias("CLKB", m_CLKB); + register_subalias("D0A", m_A.m_D0); + register_subalias("D1A", m_A.m_D1); + register_subalias("DSA", m_A.m_DS); + register_subalias("Q7A", m_A.m_Q7); + register_subalias("Q7QA", m_A.m_Q7Q); + register_subalias("D0B", m_B.m_D0); + register_subalias("D1B", m_B.m_D1); + register_subalias("DSB", m_B.m_DS); + register_subalias("Q7B", m_B.m_Q7); + register_subalias("Q7QB", m_B.m_Q7Q); + + connect("A.VCC", "B.VCC"); + connect("A.GND", "B.GND"); + + register_subalias("VCC", "A.VCC"); + register_subalias("GND", "A.GND"); + } + + NETLIB_RESETI() + { + m_last_CLK = 0; + m_last_CLKA = 0; + m_last_CLKB = 0; + } + + friend class NETLIB_NAME(8277_dip); + private: + NETLIB_HANDLERI(shifter_reset) + { + if (!m_RESET()) + { + m_A.reset_shifter(); + m_B.reset_shifter(); + } + } + + NETLIB_HANDLERI(clk) + { + if (!m_last_CLK && m_CLK()) + { + m_A.shift(); + m_B.shift(); + } + m_last_CLK = m_CLK(); + m_last_CLKA = m_CLKA(); + m_last_CLKB = m_CLKB(); + } + + NETLIB_HANDLERI(clka) + { + if (!m_last_CLKA && m_CLKA()) + { + m_A.shift(); + } + m_last_CLKA = m_CLKA(); + } + + NETLIB_HANDLERI(clkb) + { + if (!m_last_CLKB && m_CLKB()) + { + m_B.shift(); + } + m_last_CLKB = m_CLKB(); + } + + NETLIB_SUB(8277_shifter) m_A; + NETLIB_SUB(8277_shifter) m_B; + logic_input_t m_RESET; + logic_input_t m_CLK; + logic_input_t m_CLKA; + logic_input_t m_CLKB; + + state_var m_last_CLK; + state_var m_last_CLKA; + state_var m_last_CLKB; + }; + + NETLIB_OBJECT(8277_dip) + { + NETLIB_CONSTRUCTOR(8277_dip) + , A(*this, "A") + { + register_subalias("1", A.m_RESET); + register_subalias("2", A.m_A.m_Q7Q); + register_subalias("3", A.m_A.m_Q7); + register_subalias("4", A.m_A.m_DS); + register_subalias("5", A.m_A.m_D1); + register_subalias("6", A.m_A.m_D0); + register_subalias("7", A.m_CLKA); + register_subalias("8", "A.GND"); + + register_subalias("9", A.m_CLK); + register_subalias("10", A.m_CLKB); + register_subalias("11", A.m_B.m_D0); + register_subalias("12", A.m_B.m_D1); + register_subalias("13", A.m_B.m_DS); + register_subalias("14", A.m_B.m_Q7); + register_subalias("15", A.m_B.m_Q7Q); + register_subalias("16", "A.VCC"); + } + //NETLIB_RESETI() {} + private: + NETLIB_SUB(8277) A; + }; + + NETLIB_DEVICE_IMPL(8277, "TTL_8277", "+RESET,+CLK,+CLKA,+D0A,+D1A,+DSA,+CLKB,+D0B,+D1B,+DSB,@VCC,@GND") + NETLIB_DEVICE_IMPL(8277_dip, "TTL_8277_DIP", "") + + } //namespace devices +} // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_8277.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_8277.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_8277.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_8277.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,27 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +#ifndef NLD_8277_H_ +#define NLD_8277_H_ + +#include "netlist/nl_setup.h" + +#define TTL_8277(name, cRESET, cCLK, cCLKA, cD0A, cD1A, cDSA, cCLKB, cD0B, cD1B, cDSB) \ + NET_REGISTER_DEV(TTL_8277, name) \ + NET_CONNECT(name, VCC, VCC) \ + NET_CONNECT(name, GND, GND) \ + NET_CONNECT(name, RESET, cRESET) \ + NET_CONNECT(name, CLK, cCLK) \ + NET_CONNECT(name, CLKA, cCLKA) \ + NET_CONNECT(name, CLKB, cCLKB) \ + NET_CONNECT(name, D0A, cD0A) \ + NET_CONNECT(name, D0B, cD0B) \ + NET_CONNECT(name, D1A, cD1A) \ + NET_CONNECT(name, D1B, cD1B) \ + NET_CONNECT(name, DSA, cDSA) \ + NET_CONNECT(name, DSB, cDSB) + +#define TTL_8277_DIP(name) \ + NET_REGISTER_DEV(TTL_8277_DIP, name) + +#endif /* NLD_2877_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S115.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S115.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S115.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S115.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,26 @@ /* * nld_82S115.cpp * + * 82S115: 4K-bit TTL bipolar PROM (512 x 8) + * + * +--------------+ + * A3 |1 ++ 24| VCC + * A4 |2 23| A2 + * A5 |3 22| A1 + * A6 |4 82S115 21| A0 + * A7 |5 20| CE1Q + * A8 |6 19| CE2 + * O1 |7 18| STROBE + * O2 |8 17| O8 + * O3 |9 16| O7 + * O4 |10 15| O6 + * FE2 |11 14| O5 + * GND |12 13| FE1 + * +--------------+ + * + * + * Naming conventions follow Signetics datasheet + * */ #include "nld_82S115.h" @@ -31,7 +51,6 @@ m_last_O = 0; } - friend class NETLIB_NAME(82S115_dip); private: // FIXME: timing! NETLIB_HANDLERI(inputs) @@ -73,49 +92,7 @@ nld_power_pins m_power_pins; }; - NETLIB_OBJECT(82S115_dip) - { - NETLIB_CONSTRUCTOR(82S115_dip) - , A(*this, "A") - { - register_subalias("21", A.m_A[0]); - register_subalias("22", A.m_A[1]); - register_subalias("23", A.m_A[2]); - register_subalias("1", A.m_A[3]); - register_subalias("2", A.m_A[4]); - register_subalias("3", A.m_A[5]); - register_subalias("4", A.m_A[6]); - register_subalias("5", A.m_A[7]); - register_subalias("6", A.m_A[8]); - - register_subalias("20", A.m_CE1Q); - register_subalias("19", A.m_CE2); - - // FIXME: implement FE1, FE2 - // register_subalias("13", m_FE1); - // register_subalias("11", m_FE2); - - register_subalias("18", A.m_STROBE); - - register_subalias("7", A.m_O[0]); - register_subalias("8", A.m_O[1]); - register_subalias("9", A.m_O[2]); - register_subalias("10", A.m_O[3]); - register_subalias("14", A.m_O[4]); - register_subalias("15", A.m_O[5]); - register_subalias("16", A.m_O[6]); - register_subalias("17", A.m_O[7]); - - register_subalias("12", "A.GND"); - register_subalias("24", "A.VCC"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(82S115) A; - }; - NETLIB_DEVICE_IMPL(82S115, "PROM_82S115", "+CE1Q,+CE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+STROBE,@VCC,@GND") - NETLIB_DEVICE_IMPL(82S115_dip, "PROM_82S115_DIP", "") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S115.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S115.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S115.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S115.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,53 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz -/* - * nld_82S115.h - * - * 82S115: 4K-bit TTL bipolar PROM (512 x 8) - * - * +--------------+ - * A3 |1 ++ 24| VCC - * A4 |2 23| A2 - * A5 |3 22| A1 - * A6 |4 82S115 21| A0 - * A7 |5 20| CE1Q - * A8 |6 19| CE2 - * O1 |7 18| STROBE - * O2 |8 17| O8 - * O3 |9 16| O7 - * O4 |10 15| O6 - * FE2 |11 14| O5 - * GND |12 13| FE1 - * +--------------+ - * - * - * Naming conventions follow Signetics datasheet - * - */ #ifndef NLD_82S115_H_ #define NLD_82S115_H_ #include "netlist/nl_setup.h" -#define PROM_82S115(name, cCE1Q, cCE2, cA0, cA1, cA2, cA3, cA4, cA5, cA6, cA7, cA8, cSTROBE) \ - NET_REGISTER_DEV(PROM_82S115, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, CE1Q, cCE1Q) \ - NET_CONNECT(name, CE2, cCE2) \ - NET_CONNECT(name, A0, cA0) \ - NET_CONNECT(name, A1, cA1) \ - NET_CONNECT(name, A2, cA2) \ - NET_CONNECT(name, A3, cA3) \ - NET_CONNECT(name, A4, cA4) \ - NET_CONNECT(name, A5, cA5) \ - NET_CONNECT(name, A6, cA6) \ - NET_CONNECT(name, A7, cA7) \ - NET_CONNECT(name, A8, cA8) \ - NET_CONNECT(name, STROBE, cSTROBE) - -#define PROM_82S115_DIP(name) \ - NET_REGISTER_DEV(PROM_82S115_DIP, name) +// expects: PROM_82S115(name, cCE1Q, cCE2, cA0, cA1, cA2, cA3, cA4, cA5, cA6, cA7, cA8, cSTROBE) +#define PROM_82S115(...) \ + NET_REGISTER_DEVEXT(PROM_82S115, __VA_ARGS__) #endif /* NLD_82S115_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S16.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S16.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S16.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S16.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,7 +1,24 @@ // license:GPL-2.0+ // copyright-holders:Couriersud /* - * nld_82S16.c + * nld_82S16.cpp + * + * + * DM82S16: 256 Bit bipolar ram + * + * +--------------+ + * A1 |1 ++ 16| VCC + * A0 |2 15| A2 + * CE1Q |3 14| A3 + * CE2Q |4 82S16 13| DIN + * CE3Q |5 12| WEQ + * DOUTQ |6 11| A7 + * A4 |7 10| A6 + * GND |8 9| A5 + * +--------------+ + * + * + * Naming conventions follow Signetics datasheet * */ @@ -38,7 +55,7 @@ m_addr = 0; m_enq = 0; } - friend class NETLIB_NAME(82S16_dip); + private: // FIXME: timing! // FIXME: optimize device (separate address decoder!) @@ -105,39 +122,7 @@ nld_power_pins m_power_pins; }; - NETLIB_OBJECT(82S16_dip) - { - NETLIB_CONSTRUCTOR(82S16_dip) - , A(*this, "A") - { - register_subalias("2", A.m_A[0]); - register_subalias("1", A.m_A[1]); - register_subalias("15", A.m_A[2]); - register_subalias("14", A.m_A[3]); - register_subalias("7", A.m_A[4]); - register_subalias("9", A.m_A[5]); - register_subalias("10", A.m_A[6]); - register_subalias("11", A.m_A[7]); - - register_subalias("3", A.m_CE1Q); - register_subalias("4", A.m_CE2Q); - register_subalias("5", A.m_CE3Q); - - register_subalias("12", A.m_WEQ); - register_subalias("13", A.m_DIN); - - register_subalias("6", A.m_DOUTQ); - - register_subalias("8", "A.GND"); - register_subalias("16", "A.VCC"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(82S16) A; - }; - NETLIB_DEVICE_IMPL(82S16, "TTL_82S16", "") - NETLIB_DEVICE_IMPL(82S16_dip, "TTL_82S16_DIP", "") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S16.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S16.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_82S16.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_82S16.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,25 +1,5 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_82S16.h - * - * DM82S16: 256 Bit bipolar ram - * - * +--------------+ - * A1 |1 ++ 16| VCC - * A0 |2 15| A2 - * CE1Q |3 14| A3 - * CE2Q |4 82S16 13| DIN - * CE3Q |5 12| WEQ - * DOUTQ |6 11| A7 - * A4 |7 10| A6 - * GND |8 9| A5 - * +--------------+ - * - * - * Naming conventions follow Signetics datasheet - * - */ #ifndef NLD_82S16_H_ #define NLD_82S16_H_ @@ -28,7 +8,5 @@ #define TTL_82S16(name) \ NET_REGISTER_DEV(TTL_82S16, name) -#define TTL_82S16_DIP(name) \ - NET_REGISTER_DEV(TTL_82S16_DIP, name) #endif /* NLD_82S16_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9310.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9310.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9310.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9310.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -23,7 +23,6 @@ { NETLIB_DEVICE_IMPL(9310, "TTL_9310", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND") - NETLIB_DEVICE_IMPL(9310_dip, "TTL_9310_DIP", "") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9316_base.hxx mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9316_base.hxx --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9316_base.hxx 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9316_base.hxx 2020-08-26 08:57:19.000000000 +0000 @@ -112,35 +112,6 @@ nld_power_pins m_power_pins; }; - - template - NETLIB_OBJECT(9316_dip_base) - { - NETLIB_CONSTRUCTOR(9316_dip_base) - , A(*this, "A") - { - this->register_subalias("1", "A.CLRQ"); - this->register_subalias("2", "A.CLK"); - this->register_subalias("3", "A.A"); - this->register_subalias("4", "A.B"); - this->register_subalias("5", "A.C"); - this->register_subalias("6", "A.D"); - this->register_subalias("7", "A.ENP"); - this->register_subalias("8", "A.GND"); - - this->register_subalias("9", "A.LOADQ"); - this->register_subalias("10", "A.ENT"); - this->register_subalias("11", "A.QD"); - this->register_subalias("12", "A.QC"); - this->register_subalias("13", "A.QB"); - this->register_subalias("14", "A.QA"); - this->register_subalias("15", "A.RC"); - this->register_subalias("16", "A.VCC"); - } - private: - NETLIB_SUB(9316_base) A; - }; - struct desc_9316 : public desc_base { using ASYNC = desc_const_t; @@ -183,10 +154,5 @@ using NETLIB_NAME(74161_fixme) = NETLIB_NAME(9316_base); using NETLIB_NAME(74163) = NETLIB_NAME(9316_base); - using NETLIB_NAME(9310_dip) = NETLIB_NAME(9316_dip_base); - using NETLIB_NAME(9316_dip) = NETLIB_NAME(9316_dip_base); - using NETLIB_NAME(74161_dip) = NETLIB_NAME(9316_dip_base); - using NETLIB_NAME(74163_dip) = NETLIB_NAME(9316_dip_base); - } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9316.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9316.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9316.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9316.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,82 @@ /* * nld_9316.cpp * + * DM9316: Synchronous 4-Bit Counters + * + * +--------------+ + * /CLEAR |1 ++ 16| VCC + * CLOCK |2 15| RC (Ripple Carry) + * A |3 14| QA + * B |4 9316 13| QB + * C |5 12| QC + * D |6 11| QD + * Enable P |7 10| Enable T + * GND |8 9| /LOAD + * +--------------+ + * + * Counter Sequence + * + * +-------++----+----+----+----+----+ + * | COUNT || QD | QC | QB | QA | RC | + * +=======++====+====+====+====+====+ + * | 0 || 0 | 0 | 0 | 0 | 0 | + * | 1 || 0 | 0 | 0 | 1 | 0 | + * | 2 || 0 | 0 | 1 | 0 | 0 | + * | 3 || 0 | 0 | 1 | 1 | 0 | + * | 4 || 0 | 1 | 0 | 0 | 0 | + * | 5 || 0 | 1 | 0 | 1 | 0 | + * | 6 || 0 | 1 | 1 | 0 | 0 | + * | 7 || 0 | 1 | 1 | 1 | 0 | + * | 8 || 1 | 0 | 0 | 0 | 0 | + * | 9 || 1 | 0 | 0 | 1 | 0 | + * | 10 || 1 | 0 | 1 | 0 | 0 | + * | 11 || 1 | 0 | 1 | 1 | 0 | + * | 12 || 1 | 1 | 0 | 0 | 0 | + * | 13 || 1 | 1 | 0 | 1 | 0 | + * | 14 || 1 | 1 | 1 | 0 | 0 | + * | 15 || 1 | 1 | 1 | 1 | 1 | + * +-------++----+----+----+----+----+ + * + * Reset count function: Please refer to + * National Semiconductor datasheet (timing diagram) + * + * Naming conventions follow National Semiconductor datasheet + * + * DM9310: Synchronous 4-Bit Counters + * + * +--------------+ + * CLEAR |1 ++ 16| VCC + * CLOCK |2 15| RC (Ripple Carry) + * A |3 14| QA + * B |4 9310 13| QB + * C |5 12| QC + * D |6 11| QD + * Enable P |7 10| Enable T + * GND |8 9| LOAD + * +--------------+ + * + * Counter Sequence + * + * +-------++----+----+----+----+----+ + * | COUNT || QD | QC | QB | QA | RC | + * +=======++====+====+====+====+====+ + * | 0 || 0 | 0 | 0 | 0 | 0 | + * | 1 || 0 | 0 | 0 | 1 | 0 | + * | 2 || 0 | 0 | 1 | 0 | 0 | + * | 3 || 0 | 0 | 1 | 1 | 0 | + * | 4 || 0 | 1 | 0 | 0 | 0 | + * | 5 || 0 | 1 | 0 | 1 | 0 | + * | 6 || 0 | 1 | 1 | 0 | 0 | + * | 7 || 0 | 1 | 1 | 1 | 0 | + * | 8 || 1 | 0 | 0 | 0 | 0 | + * | 9 || 1 | 0 | 0 | 1 | 0 | + * +-------++----+----+----+----+----+ + * + * Reset count function: Please refer to + * National Semiconductor datasheet (timing diagram) + * + * Naming conventions follow National Semiconductor datasheet + * */ #include "nl_base.h" @@ -23,7 +99,6 @@ { NETLIB_DEVICE_IMPL(9316, "TTL_9316", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND") - NETLIB_DEVICE_IMPL(9316_dip, "TTL_9316_DIP", "") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9316.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9316.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9316.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9316.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,104 +1,14 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_9316.h - * - * DM9316: Synchronous 4-Bit Counters - * - * +--------------+ - * /CLEAR |1 ++ 16| VCC - * CLOCK |2 15| RC (Ripple Carry) - * A |3 14| QA - * B |4 9316 13| QB - * C |5 12| QC - * D |6 11| QD - * Enable P |7 10| Enable T - * GND |8 9| /LOAD - * +--------------+ - * - * Counter Sequence - * - * +-------++----+----+----+----+----+ - * | COUNT || QD | QC | QB | QA | RC | - * +=======++====+====+====+====+====+ - * | 0 || 0 | 0 | 0 | 0 | 0 | - * | 1 || 0 | 0 | 0 | 1 | 0 | - * | 2 || 0 | 0 | 1 | 0 | 0 | - * | 3 || 0 | 0 | 1 | 1 | 0 | - * | 4 || 0 | 1 | 0 | 0 | 0 | - * | 5 || 0 | 1 | 0 | 1 | 0 | - * | 6 || 0 | 1 | 1 | 0 | 0 | - * | 7 || 0 | 1 | 1 | 1 | 0 | - * | 8 || 1 | 0 | 0 | 0 | 0 | - * | 9 || 1 | 0 | 0 | 1 | 0 | - * | 10 || 1 | 0 | 1 | 0 | 0 | - * | 11 || 1 | 0 | 1 | 1 | 0 | - * | 12 || 1 | 1 | 0 | 0 | 0 | - * | 13 || 1 | 1 | 0 | 1 | 0 | - * | 14 || 1 | 1 | 1 | 0 | 0 | - * | 15 || 1 | 1 | 1 | 1 | 1 | - * +-------++----+----+----+----+----+ - * - * Reset count function: Please refer to - * National Semiconductor datasheet (timing diagram) - * - * Naming conventions follow National Semiconductor datasheet - * - * DM9310: Synchronous 4-Bit Counters - * - * +--------------+ - * CLEAR |1 ++ 16| VCC - * CLOCK |2 15| RC (Ripple Carry) - * A |3 14| QA - * B |4 9310 13| QB - * C |5 12| QC - * D |6 11| QD - * Enable P |7 10| Enable T - * GND |8 9| LOAD - * +--------------+ - * - * Counter Sequence - * - * +-------++----+----+----+----+----+ - * | COUNT || QD | QC | QB | QA | RC | - * +=======++====+====+====+====+====+ - * | 0 || 0 | 0 | 0 | 0 | 0 | - * | 1 || 0 | 0 | 0 | 1 | 0 | - * | 2 || 0 | 0 | 1 | 0 | 0 | - * | 3 || 0 | 0 | 1 | 1 | 0 | - * | 4 || 0 | 1 | 0 | 0 | 0 | - * | 5 || 0 | 1 | 0 | 1 | 0 | - * | 6 || 0 | 1 | 1 | 0 | 0 | - * | 7 || 0 | 1 | 1 | 1 | 0 | - * | 8 || 1 | 0 | 0 | 0 | 0 | - * | 9 || 1 | 0 | 0 | 1 | 0 | - * +-------++----+----+----+----+----+ - * - * Reset count function: Please refer to - * National Semiconductor datasheet (timing diagram) - * - * Naming conventions follow National Semiconductor datasheet - * - */ #ifndef NLD_9316_H_ #define NLD_9316_H_ #include "netlist/nl_setup.h" -#define TTL_9316(name, cCLK, cENP, cENT, cCLRQ, cLOADQ, cA, cB, cC, cD) \ - NET_REGISTER_DEV(TTL_9316, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, CLK, cCLK) \ - NET_CONNECT(name, ENP, cENP) \ - NET_CONNECT(name, ENT, cENT) \ - NET_CONNECT(name, CLRQ, cCLRQ) \ - NET_CONNECT(name, LOADQ, cLOADQ) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) \ - NET_CONNECT(name, C, cC) \ - NET_CONNECT(name, D, cD) +// usage: TTL_9316(name, cCLK, cENP, cENT, cCLRQ, cLOADQ, cA, cB, cC, cD) +#define TTL_9316(...) \ + NET_REGISTER_DEVEXT(TTL_74161, __VA_ARGS__) #define TTL_74161(...) \ NET_REGISTER_DEVEXT(TTL_74161, __VA_ARGS__) @@ -112,16 +22,4 @@ #define TTL_9310(...) \ NET_REGISTER_DEVEXT(TTL_9310, __VA_ARGS__) -#define TTL_9310_DIP(name) \ - NET_REGISTER_DEV(TTL_9310_DIP, name) - -#define TTL_9316_DIP(name) \ - NET_REGISTER_DEV(TTL_9316_DIP, name) - -#define TTL_74161_DIP(name) \ - NET_REGISTER_DEV(TTL_74161_DIP, name) - -#define TTL_74163_DIP(name) \ - NET_REGISTER_DEV(TTL_74163_DIP, name) - #endif /* NLD_9316_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9321.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9321.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9321.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9321.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,71 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +/* + * nld_9321.cpp + * + * 9321: Dual One-of-Four Decoder + * + * +------------+ + * /E |1 ++ 16| VCC + * A0 |2 15| /E + * A1 |3 14| A0 + * /D0 |4 9321 13| A1 + * /D1 |5 12| /D0 + * /D2 |6 11| /D1 + * /D3 |7 10| /D2 + * GND |8 9| /D3 + * +------------+ + * + */ + +#include "nld_9321.h" +#include "netlist/nl_base.h" + +namespace netlist +{ + namespace devices + { + + // FIXME: m_E should activate deactivate m_A + + NETLIB_OBJECT(9321) + { + NETLIB_CONSTRUCTOR(9321) + , m_enable(*this, "m_enable", true) + , m_o(*this, "m_o", 0) + , m_A(*this, 0, "A{}", NETLIB_DELEGATE(in)) + , m_D(*this, 0, "D{}") + , m_E(*this, "E", NETLIB_DELEGATE(e)) + , m_power_pins(*this) + { + } + + NETLIB_HANDLERI(in) + { + m_enable = m_E() ? 0 : 1; + m_o = (m_A[1]() << 1) | m_A[0](); + for (std::size_t i=0; i<4; i++) + m_D[i].push((i == m_o && m_enable) ? 0 : 1, NLTIME_FROM_NS(21)); + } + + NETLIB_HANDLERI(e) + { + m_enable = m_E() ? 0 : 1; + m_o = (m_A[1]() << 1) | m_A[0](); + for (std::size_t i=0; i<4; i++) + m_D[i].push((i == m_o && m_enable) ? 0 : 1, NLTIME_FROM_NS(18)); + } + + public: + state_var m_enable; + state_var m_o; + object_array_t m_A; + object_array_t m_D; + logic_input_t m_E; + nld_power_pins m_power_pins; + }; + + NETLIB_DEVICE_IMPL(9321, "TTL_9321", "+E,+A0,+A1") + + } //namespace devices +} // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9321.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9321.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9321.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9321.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,13 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +#ifndef NLD_9321_H_ +#define NLD_9321_H_ + +#include "netlist/nl_setup.h" + +// usage: TTL_9321(name, cAE, cA0, cA1, cBE, cB0, cB1) +#define TTL_9321(...) \ + NET_REGISTER_DEVEXT(TTL_9321, __VA_ARGS__) + +#endif /* NLD_9321_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9322.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9322.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9322.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9322.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,19 @@ /* * nld_9322.cpp * + * 9322: Quad 2-Line to 1-Line Data Selectors/Multiplexers + * + * +------------+ + * SELECT |1 ++ 16| VCC + * A1 |2 15| STROBE + * B1 |3 14| A4 + * Y1 |4 9322 13| B4 + * A2 |5 12| Y4 + * B2 |6 11| A3 + * Y2 |7 10| B3 + * GND |8 9| Y3 + * +------------+ + * */ #include "nld_9322.h" @@ -14,24 +27,34 @@ { class NETLIB_NAME(9322); - NETLIB_OBJECT(9322_selector) + NETLIB_OBJECT(9322_GATE) { - NETLIB_CONSTRUCTOR(9322_selector) - , m_parent(owner) + NETLIB_CONSTRUCTOR(9322_GATE) , m_A(*this, "A", NETLIB_DELEGATE(inputs)) , m_B(*this, "B", NETLIB_DELEGATE(inputs)) + , m_SELECT(*this, "SELECT", NETLIB_DELEGATE(inputs)) + , m_STROBE(*this, "STROBE", NETLIB_DELEGATE(inputs)) , m_Y(*this, "Y") , m_power_pins(*this) { } // FIXME: Timing - NETLIB_HANDLERI(inputs); + NETLIB_HANDLERI(inputs) + { + if (m_STROBE()) + m_Y.push(0, NLTIME_FROM_NS(21)); + else if (m_SELECT()) + m_Y.push(m_B(), NLTIME_FROM_NS(14)); + else + m_Y.push(m_A(), NLTIME_FROM_NS(14)); + } public: - NETLIB_NAME(9322) &m_parent; logic_input_t m_A; logic_input_t m_B; + logic_input_t m_SELECT; + logic_input_t m_STROBE; logic_output_t m_Y; nld_power_pins m_power_pins; }; @@ -39,8 +62,6 @@ NETLIB_OBJECT(9322) { NETLIB_CONSTRUCTOR(9322) - , m_SELECT(*this, "SELECT", NETLIB_DELEGATE(inputs)) - , m_STROBE(*this, "STROBE", NETLIB_DELEGATE(inputs)) , m_1(*this, "A") , m_2(*this, "B") , m_3(*this, "C") @@ -65,73 +86,28 @@ connect("A.GND", "B.GND"); connect("A.GND", "C.GND"); connect("A.GND", "D.GND"); + connect("A.SELECT", "B.SELECT"); + connect("A.SELECT", "C.SELECT"); + connect("A.SELECT", "D.SELECT"); + connect("A.STROBE", "B.STROBE"); + connect("A.STROBE", "C.STROBE"); + connect("A.STROBE", "D.STROBE"); + register_subalias("SELECT", "A.SELECT"); + register_subalias("STROBE", "A.STROBE"); register_subalias("GND", "A.GND"); register_subalias("VCC", "B.VCC"); - } - friend class NETLIB_NAME(9322_dip); - public: - logic_input_t m_SELECT; - logic_input_t m_STROBE; private: - NETLIB_HANDLERI(inputs) - { - m_1.inputs(); - m_2.inputs(); - m_3.inputs(); - m_4.inputs(); - } - - NETLIB_SUB(9322_selector) m_1; - NETLIB_SUB(9322_selector) m_2; - NETLIB_SUB(9322_selector) m_3; - NETLIB_SUB(9322_selector) m_4; - - }; + NETLIB_SUB(9322_GATE) m_1; + NETLIB_SUB(9322_GATE) m_2; + NETLIB_SUB(9322_GATE) m_3; + NETLIB_SUB(9322_GATE) m_4; - NETLIB_HANDLER(9322_selector, inputs) - { - if (m_parent.m_STROBE()) - m_Y.push(0, NLTIME_FROM_NS(21)); - else if (m_parent.m_SELECT()) - m_Y.push(m_B(), NLTIME_FROM_NS(14)); - else - m_Y.push(m_A(), NLTIME_FROM_NS(14)); - } - - NETLIB_OBJECT(9322_dip) - { - NETLIB_CONSTRUCTOR(9322_dip) - , A(*this, "A") - { - register_subalias("1", A.m_SELECT); - register_subalias("2", A.m_1.m_A); - register_subalias("3", A.m_1.m_B); - register_subalias("4", A.m_1.m_Y); - register_subalias("5", A.m_2.m_A); - register_subalias("6", A.m_2.m_B); - register_subalias("7", A.m_2.m_Y); - register_subalias("8", "A.GND"); - - register_subalias("9", A.m_3.m_Y); - register_subalias("10", A.m_3.m_B); - register_subalias("11", A.m_3.m_A); - register_subalias("12", A.m_4.m_Y); - register_subalias("13", A.m_4.m_B); - register_subalias("14", A.m_4.m_A); - register_subalias("15", A.m_STROBE); - register_subalias("16", "A.VCC"); - } - - //NETLIB_RESETI() {} - private: - NETLIB_SUB(9322) A; }; - NETLIB_DEVICE_IMPL(9322, "TTL_9322", "+SELECT,+A1,+B1,+A2,+B2,+A3,+B3,+A4,+B4,+STROBE,@VCC,@GND") - NETLIB_DEVICE_IMPL(9322_dip, "TTL_9322_DIP", "") + NETLIB_DEVICE_IMPL(9322, "TTL_9322", "+SELECT,+A1,+B1,+A2,+B2,+A3,+B3,+A4,+B4,+STROBE,@VCC,@GND") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9322.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9322.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_9322.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_9322.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,44 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz -/* - * nld_9322.h - * - * 9322: Quad 2-Line to 1-Line Data Selectors/Multiplexers - * - * +------------+ - * SELECT |1 ++ 16| VCC - * A1 |2 15| STROBE - * B1 |3 14| A4 - * Y1 |4 9322 13| B4 - * A2 |5 12| Y4 - * B2 |6 11| A3 - * Y2 |7 10| B3 - * GND |8 9| Y3 - * +------------+ - * - */ #ifndef NLD_9322_H_ #define NLD_9322_H_ #include "netlist/nl_setup.h" -#define TTL_9322(name, cSELECT, cA1, cB1, cA2, cB2, cA3, cB3, cA4, cB4, cSTROBE) \ - NET_REGISTER_DEV(TTL_9322, name) \ - NET_CONNECT(name, SELECT, cSELECT) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, A1, cA1) \ - NET_CONNECT(name, B1, cB1) \ - NET_CONNECT(name, A2, cA2) \ - NET_CONNECT(name, B2, cB2) \ - NET_CONNECT(name, A3, cA3) \ - NET_CONNECT(name, B3, cB3) \ - NET_CONNECT(name, A4, cA4) \ - NET_CONNECT(name, B4, cB4) \ - NET_CONNECT(name, STROBE, cSTROBE) - -#define TTL_9322_DIP(name) \ - NET_REGISTER_DEV(TTL_9322_DIP, name) +// usage: TTL_9322(name, cSELECT, cA1, cB1, cA2, cB2, cA3, cB3, cA4, cB4, cSTROBE) +#define TTL_9322(...) \ + NET_REGISTER_DEVEXT(TTL_9322, __VA_ARGS__) #endif /* NLD_9322_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_am2847.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_am2847.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_am2847.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_am2847.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,19 @@ /* * nld_am2847.cpp * + * Am2847: Quad 80-Bit Static Shift Register + * + * +--------------+ + * OUTA |1 ++ 16| VSS + * RCA |2 15| IND + * INA |3 14| RCD + * OUTB |4 Am2847 13| OUTD + * RCB |5 12| VGG + * INB |6 11| CP + * OUTC |7 10| INC + * VDD |8 9| RCC + * +--------------+ + * */ #include "nld_am2847.h" diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_am2847.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_am2847.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_am2847.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_am2847.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,22 +1,5 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz -/* - * nld_am2847.h - * - * Am2847: Quad 80-Bit Static Shift Register - * - * +--------------+ - * OUTA |1 ++ 16| VSS - * RCA |2 15| IND - * INA |3 14| RCD - * OUTB |4 Am2847 13| OUTD - * RCB |5 12| VGG - * INB |6 11| CP - * OUTC |7 10| INC - * VDD |8 9| RCC - * +--------------+ - * - */ #ifndef NLD_AM2847_H_ #define NLD_AM2847_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_devinc.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_devinc.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_devinc.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_devinc.h 2020-08-26 08:57:19.000000000 +0000 @@ -148,7 +148,7 @@ #define CLOCK(...) \ NET_REGISTER_DEVEXT(CLOCK, __VA_ARGS__) -// usage : VARCLOCK(name, pFUNC) +// usage : VARCLOCK(name, pN, pFUNC) #define VARCLOCK(...) \ NET_REGISTER_DEVEXT(VARCLOCK, __VA_ARGS__) @@ -228,10 +228,6 @@ #define RAM_2102A(...) \ NET_REGISTER_DEVEXT(RAM_2102A, __VA_ARGS__) -// usage : RAM_2102A_DIP(name) -#define RAM_2102A_DIP(...) \ - NET_REGISTER_DEVEXT(RAM_2102A_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_roms.cpp // --------------------------------------------------------------------- @@ -241,28 +237,20 @@ NET_REGISTER_DEVEXT(EPROM_2716, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_7448.cpp +// Source: src/lib/netlist/devices/nld_roms.cpp // --------------------------------------------------------------------- -// usage : TTL_7448(name, pA, pB, pC, pD, pLTQ, pBIQ, pRBIQ) +// usage : PROM_MK28000(name, pOE1, pOE2, pAR, pA0, pA1, pA2, pA3, pA4, pA5, pA6, pA7, pA8, pA9, pA10, pA11) // auto connect: VCC, GND -#define TTL_7448(...) \ - NET_REGISTER_DEVEXT(TTL_7448, __VA_ARGS__) - -// usage : TTL_7448_DIP(name) -#define TTL_7448_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7448_DIP, __VA_ARGS__) +#define PROM_MK28000(...) \ + NET_REGISTER_DEVEXT(PROM_MK28000, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_7442.cpp +// Source: src/lib/netlist/devices/nld_7448.cpp // --------------------------------------------------------------------- -// usage : TTL_7442(name, pA, pB, pC, pD) +// usage : TTL_7448(name, pA, pB, pC, pD, pLTQ, pBIQ, pRBIQ) // auto connect: VCC, GND -#define TTL_7442(...) \ - NET_REGISTER_DEVEXT(TTL_7442, __VA_ARGS__) - -// usage : TTL_7442_DIP(name) -#define TTL_7442_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7442_DIP, __VA_ARGS__) +#define TTL_7448(...) \ + NET_REGISTER_DEVEXT(TTL_7448, __VA_ARGS__) // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7450.cpp @@ -272,10 +260,6 @@ #define TTL_7450_ANDORINVERT(...) \ NET_REGISTER_DEVEXT(TTL_7450_ANDORINVERT, __VA_ARGS__) -// usage : TTL_7450_DIP(name) -#define TTL_7450_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7450_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7473.cpp // --------------------------------------------------------------------- @@ -284,19 +268,11 @@ #define TTL_7473(...) \ NET_REGISTER_DEVEXT(TTL_7473, __VA_ARGS__) -// usage : TTL_7473_DIP(name) -#define TTL_7473_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7473_DIP, __VA_ARGS__) - // usage : TTL_7473A(name, pCLK, pJ, pK, pCLRQ) // auto connect: VCC, GND #define TTL_7473A(...) \ NET_REGISTER_DEVEXT(TTL_7473A, __VA_ARGS__) -// usage : TTL_7473A_DIP(name) -#define TTL_7473A_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7473A_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7474.cpp // --------------------------------------------------------------------- @@ -316,18 +292,10 @@ #define TTL_7475(...) \ NET_REGISTER_DEVEXT(TTL_7475, __VA_ARGS__) -// usage : TTL_7475_DIP(name) -#define TTL_7475_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7475_DIP, __VA_ARGS__) - // usage : TTL_7477(name) #define TTL_7477(...) \ NET_REGISTER_DEVEXT(TTL_7477, __VA_ARGS__) -// usage : TTL_7477_DIP(name) -#define TTL_7477_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7477_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7483.cpp // --------------------------------------------------------------------- @@ -336,10 +304,6 @@ #define TTL_7483(...) \ NET_REGISTER_DEVEXT(TTL_7483, __VA_ARGS__) -// usage : TTL_7483_DIP(name) -#define TTL_7483_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7483_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7485.cpp // --------------------------------------------------------------------- @@ -348,10 +312,6 @@ #define TTL_7485(...) \ NET_REGISTER_DEVEXT(TTL_7485, __VA_ARGS__) -// usage : TTL_7485_DIP(name) -#define TTL_7485_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7485_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7490.cpp // --------------------------------------------------------------------- @@ -360,10 +320,6 @@ #define TTL_7490(...) \ NET_REGISTER_DEVEXT(TTL_7490, __VA_ARGS__) -// usage : TTL_7490_DIP(name) -#define TTL_7490_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7490_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7492.cpp // --------------------------------------------------------------------- @@ -372,10 +328,6 @@ #define TTL_7492(...) \ NET_REGISTER_DEVEXT(TTL_7492, __VA_ARGS__) -// usage : TTL_7492_DIP(name) -#define TTL_7492_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7492_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7493.cpp // --------------------------------------------------------------------- @@ -384,10 +336,6 @@ #define TTL_7493(...) \ NET_REGISTER_DEVEXT(TTL_7493, __VA_ARGS__) -// usage : TTL_7493_DIP(name) -#define TTL_7493_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7493_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7497.cpp // --------------------------------------------------------------------- @@ -396,10 +344,6 @@ #define TTL_7497(...) \ NET_REGISTER_DEVEXT(TTL_7497, __VA_ARGS__) -// usage : TTL_7497_DIP(name) -#define TTL_7497_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7497_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74107.cpp // --------------------------------------------------------------------- @@ -408,10 +352,6 @@ #define TTL_74107(...) \ NET_REGISTER_DEVEXT(TTL_74107, __VA_ARGS__) -// usage : TTL_74107_DIP(name) -#define TTL_74107_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74107_DIP, __VA_ARGS__) - // usage : TTL_74107A(name, pCLK, pJ, pK, pCLRQ) // auto connect: VCC, GND #define TTL_74107A(...) \ @@ -425,30 +365,22 @@ #define TTL_74113(...) \ NET_REGISTER_DEVEXT(TTL_74113, __VA_ARGS__) -// usage : TTL_74113_DIP(name) -#define TTL_74113_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74113_DIP, __VA_ARGS__) - // usage : TTL_74113A(name, pCLK, pJ, pK, pCLRQ) // auto connect: VCC, GND #define TTL_74113A(...) \ NET_REGISTER_DEVEXT(TTL_74113A, __VA_ARGS__) -// usage : TTL_74113A_DIP(name) -#define TTL_74113A_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74113A_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74123.cpp // --------------------------------------------------------------------- +// usage : TTL_74121(name) +#define TTL_74121(...) \ + NET_REGISTER_DEVEXT(TTL_74121, __VA_ARGS__) + // usage : TTL_74123(name) #define TTL_74123(...) \ NET_REGISTER_DEVEXT(TTL_74123, __VA_ARGS__) -// usage : TTL_74123_DIP(name) -#define TTL_74123_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74123_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74125.cpp // --------------------------------------------------------------------- @@ -468,34 +400,27 @@ #define TTL_74153(...) \ NET_REGISTER_DEVEXT(TTL_74153, __VA_ARGS__) -// usage : TTL_74153_DIP(name) -#define TTL_74153_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74153_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74161.cpp // --------------------------------------------------------------------- -// usage : TTL_74161(name, pA, pB, pC, pD, pCLRQ, pLOADQ, pCLK, pENABLEP, pENABLET) +// usage : TTL_74161(name, pCLK, pENP, pENT, pCLRQ, pLOADQ, pA, pB, pC, pD) // auto connect: VCC, GND #define TTL_74161(...) \ NET_REGISTER_DEVEXT(TTL_74161, __VA_ARGS__) -// usage : TTL_74161_DIP(name) -#define TTL_74161_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74161_DIP, __VA_ARGS__) +// usage : TTL_74161_FIXME(name, pA, pB, pC, pD, pCLRQ, pLOADQ, pCLK, pENP, pENT) +// auto connect: VCC, GND +#define TTL_74161_FIXME(...) \ + NET_REGISTER_DEVEXT(TTL_74161_FIXME, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_9316.cpp +// Source: src/lib/netlist/devices/nld_74163.cpp // --------------------------------------------------------------------- // usage : TTL_74163(name, pCLK, pENP, pENT, pCLRQ, pLOADQ, pA, pB, pC, pD) // auto connect: VCC, GND #define TTL_74163(...) \ NET_REGISTER_DEVEXT(TTL_74163, __VA_ARGS__) -// usage : TTL_74163_DIP(name) -#define TTL_74163_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74163_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74164.cpp // --------------------------------------------------------------------- @@ -504,10 +429,6 @@ #define TTL_74164(...) \ NET_REGISTER_DEVEXT(TTL_74164, __VA_ARGS__) -// usage : TTL_74164_DIP(name) -#define TTL_74164_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74164_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74165.cpp // --------------------------------------------------------------------- @@ -516,10 +437,6 @@ #define TTL_74165(...) \ NET_REGISTER_DEVEXT(TTL_74165, __VA_ARGS__) -// usage : TTL_74165_DIP(name) -#define TTL_74165_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74165_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74166.cpp // --------------------------------------------------------------------- @@ -528,13 +445,13 @@ #define TTL_74166(...) \ NET_REGISTER_DEVEXT(TTL_74166, __VA_ARGS__) -// usage : TTL_74166_DIP(name) -#define TTL_74166_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74166_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74174.cpp // --------------------------------------------------------------------- +// usage : TTL_74174_GATE(name) +#define TTL_74174_GATE(...) \ + NET_REGISTER_DEVEXT(TTL_74174, __VA_ARGS__) + // usage : TTL_74174(name, pCLK, pD1, pD2, pD3, pD4, pD5, pD6, pCLRQ) // auto connect: VCC, GND #define TTL_74174(...) \ @@ -595,10 +512,6 @@ #define TTL_74393(...) \ NET_REGISTER_DEVEXT(TTL_74393, __VA_ARGS__) -// usage : TTL_74393_DIP(name) -#define TTL_74393_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74393_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74ls629.cpp // --------------------------------------------------------------------- @@ -664,6 +577,13 @@ NET_REGISTER_DEVEXT(TTL_9316, __VA_ARGS__) // --------------------------------------------------------------------- +// Source: src/lib/netlist/devices/nld_9321.cpp +// --------------------------------------------------------------------- +// usage: TTL_9321(name, cAE, cA0, cA1, cBE, cB0, cB1) +#define TTL_9321(...) \ + NET_REGISTER_DEVEXT(TTL_9321, __VA_ARGS__) + +// --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_9322.cpp // --------------------------------------------------------------------- // usage : TTL_9322(name, pSELECT, pA1, pB1, pA2, pB2, pA3, pB3, pA4, pB4, pSTROBE) @@ -690,14 +610,28 @@ // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_4006.cpp // --------------------------------------------------------------------- -// usage : CD4006(name, pCLOCK, pD1, pD2, pD3, pD4, pD1P4, pD1P4S, pD2P4, pD2P5, pD3P4, pD4P4, pD3P5) +// usage : CD4006(name, pCLOCK, pD1, pD2, pD3, pD4, pD1P4, pD1P4S, pD2P4, pD2P5, pD3P4, pD4P4, pD4P5) // auto connect: VCC, GND #define CD4006(...) \ NET_REGISTER_DEVEXT(CD4006, __VA_ARGS__) -// usage : CD4006_DIP(name) -#define CD4006_DIP(...) \ - NET_REGISTER_DEVEXT(CD4006_DIP, __VA_ARGS__) +// --------------------------------------------------------------------- +// Source: src/lib/netlist/devices/nld_4013.cpp +// --------------------------------------------------------------------- +// usage : CD4013(name) +#define CD4013(...) \ + NET_REGISTER_DEVEXT(CD4013, __VA_ARGS__) + +// --------------------------------------------------------------------- +// Source: src/lib/netlist/devices/nld_4017.cpp +// --------------------------------------------------------------------- +// usage : CD4017(name) +#define CD4017(...) \ + NET_REGISTER_DEVEXT(CD4017, __VA_ARGS__) + +// usage : CD4022(name) +#define CD4022(...) \ + NET_REGISTER_DEVEXT(CD4022, __VA_ARGS__) // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_4020.cpp @@ -710,6 +644,17 @@ #define CD4020(...) \ NET_REGISTER_DEVEXT(CD4020, __VA_ARGS__) +// usage : CD4024(name) +#define CD4024(...) \ + NET_REGISTER_DEVEXT(CD4024, __VA_ARGS__) + +// --------------------------------------------------------------------- +// Source: src/lib/netlist/devices/nld_4053.cpp +// --------------------------------------------------------------------- +// usage : CD4053_GATE(name) +#define CD4053_GATE(...) \ + NET_REGISTER_DEVEXT(CD4053_GATE, __VA_ARGS__) + // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_4066.cpp // --------------------------------------------------------------------- @@ -727,9 +672,17 @@ // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74123.cpp // --------------------------------------------------------------------- -// usage : CD4538_DIP(name) -#define CD4538_DIP(...) \ - NET_REGISTER_DEVEXT(CD4538_DIP, __VA_ARGS__) +// usage : CD4538(name) +#define CD4538(...) \ + NET_REGISTER_DEVEXT(CD4538, __VA_ARGS__) + +// --------------------------------------------------------------------- +// Source: src/lib/netlist/devices/nld_8277.cpp +// --------------------------------------------------------------------- +// usage : TTL_8277(name, pRESET, pCLK, pCLKA, pD0A, pD1A, pDSA, pCLKB, pD0B, pD1B, pDSB) +// auto connect: VCC, GND +#define TTL_8277(...) \ + NET_REGISTER_DEVEXT(TTL_8277, __VA_ARGS__) // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_schmitt.cpp @@ -788,13 +741,6 @@ NET_REGISTER_DEVEXT(TTL_TRISTATE3, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_74174.cpp -// --------------------------------------------------------------------- -// usage : TTL_74174_DIP(name) -#define TTL_74174_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74174_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74175.cpp // --------------------------------------------------------------------- // usage : TTL_74175_DIP(name) @@ -830,32 +776,11 @@ NET_REGISTER_DEVEXT(TTL_74365_DIP, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_82S16.cpp -// --------------------------------------------------------------------- -// usage : TTL_82S16_DIP(name) -#define TTL_82S16_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_82S16_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_82S115.cpp -// --------------------------------------------------------------------- -// usage : PROM_82S115_DIP(name) -#define PROM_82S115_DIP(...) \ - NET_REGISTER_DEVEXT(PROM_82S115_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74123.cpp // --------------------------------------------------------------------- -// usage : TTL_9602_DIP(name) -#define TTL_9602_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_9602_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_9310.cpp -// --------------------------------------------------------------------- -// usage : TTL_9310_DIP(name) -#define TTL_9310_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_9310_DIP, __VA_ARGS__) +// usage : TTL_9602(name) +#define TTL_9602(...) \ + NET_REGISTER_DEVEXT(TTL_9602, __VA_ARGS__) // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_dm9314.cpp @@ -865,20 +790,6 @@ NET_REGISTER_DEVEXT(TTL_9314_DIP, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_9316.cpp -// --------------------------------------------------------------------- -// usage : TTL_9316_DIP(name) -#define TTL_9316_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_9316_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_9322.cpp -// --------------------------------------------------------------------- -// usage : TTL_9322_DIP(name) -#define TTL_9322_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_9322_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_dm9334.cpp // --------------------------------------------------------------------- // usage : TTL_9334_DIP(name) @@ -893,11 +804,11 @@ NET_REGISTER_DEVEXT(TTL_AM2847_DIP, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_74ls629.cpp +// Source: src/lib/netlist/devices/nld_8277.cpp // --------------------------------------------------------------------- -// usage : SN74LS629_DIP(name, p1_CAP1, p2_CAP2) -#define SN74LS629_DIP(...) \ - NET_REGISTER_DEVEXT(SN74LS629_DIP, __VA_ARGS__) +// usage : TTL_8277_DIP(name) +#define TTL_8277_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_8277_DIP, __VA_ARGS__) // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_mm5837.cpp @@ -907,7 +818,7 @@ NET_REGISTER_DEVEXT(MM5837_DIP, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/macro/nlm_ttl74xx.cpp +// Source: TTL74XX_lib // --------------------------------------------------------------------- // usage : TTL_7400_GATE(name) #define TTL_7400_GATE(...) \ @@ -940,6 +851,10 @@ #define TTL_7406_GATE(...) \ NET_REGISTER_DEVEXT(TTL_7406_GATE, __VA_ARGS__) +// usage : TTL_7407_GATE(name) +#define TTL_7407_GATE(...) \ + NET_REGISTER_DEVEXT(TTL_7407_GATE, __VA_ARGS__) + // usage : TTL_7408_GATE(name) #define TTL_7408_GATE(...) \ NET_REGISTER_DEVEXT(TTL_7408_GATE, __VA_ARGS__) @@ -986,7 +901,7 @@ // usage : TTL_7421_AND(name, pA, pB, pC, pD) // auto connect: VCC, GND -#define TTL_7421_AND(...) \ +#define TTL_7421_AND(...) \ NET_REGISTER_DEVEXT(TTL_7421_AND, __VA_ARGS__) // usage : TTL_7425_GATE(name) @@ -1033,6 +948,38 @@ #define TTL_7437_NAND(...) \ NET_REGISTER_DEVEXT(TTL_7437_NAND, __VA_ARGS__) +// usage : TTL_7448_DIP(name) +#define TTL_7448_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7448_DIP, __VA_ARGS__) + +// usage : TTL_7450_DIP(name) +#define TTL_7450_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7450_DIP, __VA_ARGS__) + +// usage : TTL_7473_DIP(name) +#define TTL_7473_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7473_DIP, __VA_ARGS__) + +// usage : TTL_7473A_DIP(name) +#define TTL_7473A_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7473A_DIP, __VA_ARGS__) + +// usage : TTL_7475_DIP(name) +#define TTL_7475_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7475_DIP, __VA_ARGS__) + +// usage : TTL_7477_DIP(name) +#define TTL_7477_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7477_DIP, __VA_ARGS__) + +// usage : TTL_7483_DIP(name) +#define TTL_7483_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7483_DIP, __VA_ARGS__) + +// usage : TTL_7485_DIP(name) +#define TTL_7485_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7485_DIP, __VA_ARGS__) + // usage : TTL_7486_GATE(name) #define TTL_7486_GATE(...) \ NET_REGISTER_DEVEXT(TTL_7486_GATE, __VA_ARGS__) @@ -1042,6 +989,42 @@ #define TTL_7486_XOR(...) \ NET_REGISTER_DEVEXT(TTL_7486_XOR, __VA_ARGS__) +// usage : TTL_7490_DIP(name) +#define TTL_7490_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7490_DIP, __VA_ARGS__) + +// usage : TTL_7492_DIP(name) +#define TTL_7492_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7492_DIP, __VA_ARGS__) + +// usage : TTL_7493_DIP(name) +#define TTL_7493_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7493_DIP, __VA_ARGS__) + +// usage : TTL_7497_DIP(name) +#define TTL_7497_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7497_DIP, __VA_ARGS__) + +// usage : TTL_74107_DIP(name) +#define TTL_74107_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74107_DIP, __VA_ARGS__) + +// usage : TTL_74107_DIP(name) +#define TTL_74107A_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74107A_DIP, __VA_ARGS__) + +// usage : TTL_74113_DIP(name) +#define TTL_74113_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74113_DIP, __VA_ARGS__) + +// usage : TTL_74113A_DIP(name) +#define TTL_74113A_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74113A_DIP, __VA_ARGS__) + +// usage : TTL_74139_GATE(name) +#define TTL_74139_GATE(...) \ + NET_REGISTER_DEVEXT(TTL_74139_GATE, __VA_ARGS__) + // usage : TTL_74155A_GATE(name) #define TTL_74155A_GATE(...) \ NET_REGISTER_DEVEXT(TTL_74155A_GATE, __VA_ARGS__) @@ -1062,6 +1045,30 @@ #define TTL_74157_GATE(...) \ NET_REGISTER_DEVEXT(TTL_74157_GATE, __VA_ARGS__) +// usage : TTL_74161_DIP(name) +#define TTL_74161_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74161_DIP, __VA_ARGS__) + +// usage : TTL_74163_DIP(name) +#define TTL_74163_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74163_DIP, __VA_ARGS__) + +// usage : TTL_74164_DIP(name) +#define TTL_74164_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74164_DIP, __VA_ARGS__) + +// usage : TTL_74165_DIP(name) +#define TTL_74165_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74165_DIP, __VA_ARGS__) + +// usage : TTL_74165_DIP(name) +#define TTL_74166_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74166_DIP, __VA_ARGS__) + +// usage : TTL_74174_DIP(name) +#define TTL_74174_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74174_DIP, __VA_ARGS__) + // usage : TTL_74260_GATE(name) #define TTL_74260_GATE(...) \ NET_REGISTER_DEVEXT(TTL_74260_GATE, __VA_ARGS__) @@ -1079,11 +1086,14 @@ #define TTL_74279B(...) \ NET_REGISTER_DEVEXT(TTL_74279B, __VA_ARGS__) -// usage : DM9312(name, pA, pB, pC, pG, pD0, pD1, pD2, pD3, pD4, pD5, pD6, pD7) +// usage : TTL_9312(name, pA, pB, pC, pG, pD0, pD1, pD2, pD3, pD4, pD5, pD6, pD7) // auto connect: VCC, GND -#define DM9312(...) \ - NET_REGISTER_DEVEXT(DM9312, __VA_ARGS__) +#define TTL_9312(...) \ + NET_REGISTER_DEVEXT(TTL_9312, __VA_ARGS__) +// --------------------------------------------------------------------- +// Source: parser: TTL74XX_lib +// --------------------------------------------------------------------- // usage : TTL_7400_DIP(name) #define TTL_7400_DIP(...) \ NET_REGISTER_DEVEXT(TTL_7400_DIP, __VA_ARGS__) @@ -1100,6 +1110,10 @@ #define TTL_7406_DIP(...) \ NET_REGISTER_DEVEXT(TTL_7406_DIP, __VA_ARGS__) +// usage : TTL_7407_DIP(name) +#define TTL_7407_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7407_DIP, __VA_ARGS__) + // usage : TTL_7408_DIP(name) #define TTL_7408_DIP(...) \ NET_REGISTER_DEVEXT(TTL_7408_DIP, __VA_ARGS__) @@ -1160,10 +1174,30 @@ #define TTL_7437_DIP(...) \ NET_REGISTER_DEVEXT(TTL_7437_DIP, __VA_ARGS__) +// usage : TTL_7442(name, cA, cB, cC, cD) +#define TTL_7442(...) \ + NET_REGISTER_DEVEXT(TTL_7442, __VA_ARGS__) + +// usage : TTL_7442_DIP(name) +#define TTL_7442_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7442_DIP, __VA_ARGS__) + // usage : TTL_7486_DIP(name) #define TTL_7486_DIP(...) \ NET_REGISTER_DEVEXT(TTL_7486_DIP, __VA_ARGS__) +// usage : TTL_74121_DIP(name) +#define TTL_74121_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74121_DIP, __VA_ARGS__) + +// usage : TTL_74123_DIP(name) +#define TTL_74123_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74123_DIP, __VA_ARGS__) + +// usage : TTL_9602_DIP(name) +#define TTL_9602_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9602_DIP, __VA_ARGS__) + // usage : TTL_74125_DIP(name) #define TTL_74125_DIP(...) \ NET_REGISTER_DEVEXT(TTL_74125_DIP, __VA_ARGS__) @@ -1172,6 +1206,14 @@ #define TTL_74126_DIP(...) \ NET_REGISTER_DEVEXT(TTL_74126_DIP, __VA_ARGS__) +// usage : TTL_74139_DIP(name) +#define TTL_74139_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74139_DIP, __VA_ARGS__) + +// usage : TTL_74153_DIP(name) +#define TTL_74153_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74153_DIP, __VA_ARGS__) + // usage : TTL_74155_DIP(name) #define TTL_74155_DIP(...) \ NET_REGISTER_DEVEXT(TTL_74155_DIP, __VA_ARGS__) @@ -1204,17 +1246,45 @@ #define TTL_74379_DIP(...) \ NET_REGISTER_DEVEXT(TTL_74379_DIP, __VA_ARGS__) -// usage : DM9312_DIP(name) -#define DM9312_DIP(...) \ - NET_REGISTER_DEVEXT(DM9312_DIP, __VA_ARGS__) +// usage : TTL_74393_DIP(name) +#define TTL_74393_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74393_DIP, __VA_ARGS__) + +// usage : SN74LS629_DIP(name, p1_CAP1, p2_CAP2) +#define SN74LS629_DIP(...) \ + NET_REGISTER_DEVEXT(SN74LS629_DIP, __VA_ARGS__) + +// usage : TTL_9312_DIP(name) +#define TTL_9312_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9312_DIP, __VA_ARGS__) + +// usage : TTL_9310_DIP(name) +#define TTL_9310_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9310_DIP, __VA_ARGS__) + +// usage : TTL_9316_DIP(name) +#define TTL_9316_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9316_DIP, __VA_ARGS__) + +// usage : TTL_9321_DIP(name) +#define TTL_9321_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9321_DIP, __VA_ARGS__) + +// usage : TTL_9322_DIP(name) +#define TTL_9322_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9322_DIP, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/macro/nlm_cd4xxx.cpp +// Source: CD4XXX_lib // --------------------------------------------------------------------- // usage : CD4001_GATE(name) #define CD4001_GATE(...) \ NET_REGISTER_DEVEXT(CD4001_GATE, __VA_ARGS__) +// usage : CD4011_GATE(name) +#define CD4011_GATE(...) \ + NET_REGISTER_DEVEXT(CD4011_GATE, __VA_ARGS__) + // usage : CD4069_GATE(name) #define CD4069_GATE(...) \ NET_REGISTER_DEVEXT(CD4069_GATE, __VA_ARGS__) @@ -1223,10 +1293,21 @@ #define CD4070_GATE(...) \ NET_REGISTER_DEVEXT(CD4070_GATE, __VA_ARGS__) +// --------------------------------------------------------------------- +// Source: parser: CD4XXX_lib +// --------------------------------------------------------------------- // usage : CD4001_DIP(name) #define CD4001_DIP(...) \ NET_REGISTER_DEVEXT(CD4001_DIP, __VA_ARGS__) +// usage : CD4006_DIP(name) +#define CD4006_DIP(...) \ + NET_REGISTER_DEVEXT(CD4006_DIP, __VA_ARGS__) + +// usage : CD4011_DIP(name) +#define CD4011_DIP(...) \ + NET_REGISTER_DEVEXT(CD4011_DIP, __VA_ARGS__) + // usage : CD4069_DIP(name) #define CD4069_DIP(...) \ NET_REGISTER_DEVEXT(CD4069_DIP, __VA_ARGS__) @@ -1235,24 +1316,48 @@ #define CD4070_DIP(...) \ NET_REGISTER_DEVEXT(CD4070_DIP, __VA_ARGS__) +// usage : CD4013_DIP(name) +#define CD4013_DIP(...) \ + NET_REGISTER_DEVEXT(CD4013_DIP, __VA_ARGS__) + +// usage : CD4017_DIP(name) +#define CD4017_DIP(...) \ + NET_REGISTER_DEVEXT(CD4017_DIP, __VA_ARGS__) + +// usage : CD4022_DIP(name) +#define CD4022_DIP(...) \ + NET_REGISTER_DEVEXT(CD4022_DIP, __VA_ARGS__) + // usage : CD4020_DIP(name) #define CD4020_DIP(...) \ NET_REGISTER_DEVEXT(CD4020_DIP, __VA_ARGS__) -// usage : CD4016_DIP(name) -#define CD4016_DIP(...) \ - NET_REGISTER_DEVEXT(CD4016_DIP, __VA_ARGS__) +// usage : CD4024_DIP(name) +#define CD4024_DIP(...) \ + NET_REGISTER_DEVEXT(CD4024_DIP, __VA_ARGS__) + +// usage : CD4053_DIP(name) +#define CD4053_DIP(...) \ + NET_REGISTER_DEVEXT(CD4053_DIP, __VA_ARGS__) // usage : CD4066_DIP(name) #define CD4066_DIP(...) \ NET_REGISTER_DEVEXT(CD4066_DIP, __VA_ARGS__) +// usage : CD4016_DIP(name) +#define CD4016_DIP(...) \ + NET_REGISTER_DEVEXT(CD4016_DIP, __VA_ARGS__) + // usage : CD4316_DIP(name) #define CD4316_DIP(...) \ NET_REGISTER_DEVEXT(CD4316_DIP, __VA_ARGS__) +// usage : CD4538_DIP(name) +#define CD4538_DIP(...) \ + NET_REGISTER_DEVEXT(CD4538_DIP, __VA_ARGS__) + // --------------------------------------------------------------------- -// Source: src/lib/netlist/macro/nlm_opamp.cpp +// Source: parser: OPAMP_lib // --------------------------------------------------------------------- // usage : opamp_layout_4_4_11(name) #define opamp_layout_4_4_11(...) \ @@ -1282,10 +1387,18 @@ #define MB3614_DIP(...) \ NET_REGISTER_DEVEXT(MB3614_DIP, __VA_ARGS__) +// usage : MC3340_DIP(name) +#define MC3340_DIP(...) \ + NET_REGISTER_DEVEXT(MC3340_DIP, __VA_ARGS__) + // usage : TL081_DIP(name) #define TL081_DIP(...) \ NET_REGISTER_DEVEXT(TL081_DIP, __VA_ARGS__) +// usage : TL082_DIP(name) +#define TL082_DIP(...) \ + NET_REGISTER_DEVEXT(TL082_DIP, __VA_ARGS__) + // usage : TL084_DIP(name) #define TL084_DIP(...) \ NET_REGISTER_DEVEXT(TL084_DIP, __VA_ARGS__) @@ -1314,6 +1427,10 @@ #define UA741_DIP14(...) \ NET_REGISTER_DEVEXT(UA741_DIP14, __VA_ARGS__) +// usage : MC1558_DIP(name) +#define MC1558_DIP(...) \ + NET_REGISTER_DEVEXT(MC1558_DIP, __VA_ARGS__) + // usage : LM747_DIP(name) #define LM747_DIP(...) \ NET_REGISTER_DEVEXT(LM747_DIP, __VA_ARGS__) @@ -1327,12 +1444,15 @@ NET_REGISTER_DEVEXT(LM3900, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/macro/nlm_other.cpp +// Source: otheric_lib // --------------------------------------------------------------------- // usage : MC14584B_GATE(name) #define MC14584B_GATE(...) \ NET_REGISTER_DEVEXT(MC14584B_GATE, __VA_ARGS__) +// --------------------------------------------------------------------- +// Source: parser: otheric_lib +// --------------------------------------------------------------------- // usage : MC14584B_DIP(name) #define MC14584B_DIP(...) \ NET_REGISTER_DEVEXT(MC14584B_DIP, __VA_ARGS__) @@ -1342,7 +1462,7 @@ NET_REGISTER_DEVEXT(NE566_DIP, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/macro/nlm_roms.cpp +// Source: parser: ROMS_lib // --------------------------------------------------------------------- // usage : PROM_82S123_DIP(name) #define PROM_82S123_DIP(...) \ @@ -1360,5 +1480,22 @@ #define EPROM_2716_DIP(...) \ NET_REGISTER_DEVEXT(EPROM_2716_DIP, __VA_ARGS__) +// usage : PROM_MK28000_DIP(name) +#define PROM_MK28000_DIP(...) \ + NET_REGISTER_DEVEXT(PROM_MK28000_DIP, __VA_ARGS__) + +// usage : TTL_82S16_DIP(name) +#define TTL_82S16_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_82S16_DIP, __VA_ARGS__) + +// usage : PROM_82S115_DIP(name) +#define PROM_82S115_DIP(...) \ + NET_REGISTER_DEVEXT(PROM_82S115_DIP, __VA_ARGS__) + +// usage : RAM_2102A_DIP(name) +#define RAM_2102A_DIP(...) \ + NET_REGISTER_DEVEXT(RAM_2102A_DIP, __VA_ARGS__) + + #endif // __PLIB_PREPROCESSOR__ #endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9314.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9314.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9314.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9314.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,19 @@ /* * nld_dm9314.cpp * + * DM9314: 4-Bit Latches + * + * +--------------+ + * /E |1 ++ 16| VCC + * /S0 |2 15| Q0 + * D0 |3 14| /S1 + * D1 |4 DM9314 13| Q1 + * /S2 |5 12| Q2 + * D2 |6 11| /S3 + * D3 |7 10| Q3 + * GND |8 9| /MR + * +--------------+ + * */ #include "nld_dm9314.h" diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9314.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9314.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9314.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9314.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,22 +1,5 @@ // license:BSD-3-Clause // copyright-holders:Felipe Sanches -/* - * nld_DM9314.h - * - * DM9314: 4-Bit Latches - * - * +--------------+ - * /E |1 ++ 16| VCC - * /S0 |2 15| Q0 - * D0 |3 14| /S1 - * D1 |4 DM9314 13| Q1 - * /S2 |5 12| Q2 - * D2 |6 11| /S3 - * D3 |7 10| Q3 - * GND |8 9| /MR - * +--------------+ - * - */ #ifndef NLD_DM9314_H_ #define NLD_DM9314_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9334.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9334.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9334.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9334.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,63 @@ /* * nld_dm9334.cpp * + * DM9334: 8-Bit Addressable Latch + * + * +--------------+ + * A0 |1 ++ 16| VCC + * A1 |2 15| /C + * A2 |3 14| /E + * Q0 |4 DM9334 13| D + * Q1 |5 12| Q7 + * Q2 |6 11| Q6 + * Q3 |7 10| Q5 + * GND |8 9| Q4 + * +--------------+ + * + * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ + * | C | E || D || A0| A1| A2|| Q0| Q1| Q2| Q3| Q4| Q5| Q6| Q7| + * +===+===++===++===+===+===++===+===+===+===+===+===+===+===+ + * | 1 | 0 || X || X | X | X || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ + * | 1 | 1 || 0 || 0 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 0 | 0 | 0 || 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 0 || 0 | 0 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 0 | 0 | 1 || 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 0 || 0 | 1 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 0 | 1 | 0 || 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 0 || 0 | 1 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 0 | 1 | 1 || 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 0 || 1 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 1 | 0 | 0 || 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | + * | 1 | 1 || 0 || 1 | 0 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 1 | 0 | 1 || 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | + * | 1 | 1 || 0 || 1 | 1 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 1 | 1 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + * | 1 | 1 || 0 || 1 | 1 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + * | 1 | 1 || 1 || 1 | 1 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | + * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ + * | 0 | 0 || X || X | X | X || P | P | P | P | P | P | P | P | + * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ + * | 0 | 1 || 0 || 0 | 0 | 0 || 0 | P | P | P | P | P | P | P | + * | 0 | 1 || 1 || 0 | 0 | 0 || 1 | P | P | P | P | P | P | P | + * | 0 | 1 || 0 || 0 | 0 | 1 || P | 0 | P | P | P | P | P | P | + * | 0 | 1 || 1 || 0 | 0 | 1 || P | 1 | P | P | P | P | P | P | + * | 0 | 1 || 0 || 0 | 1 | 0 || P | P | 0 | P | P | P | P | P | + * | 0 | 1 || 1 || 0 | 1 | 0 || P | P | 1 | P | P | P | P | P | + * | 0 | 1 || 0 || 0 | 1 | 1 || P | P | P | 0 | P | P | P | P | + * | 0 | 1 || 1 || 0 | 1 | 1 || P | P | P | 1 | P | P | P | P | + * | 0 | 1 || 0 || 1 | 0 | 0 || P | P | P | P | 0 | P | P | P | + * | 0 | 1 || 1 || 1 | 0 | 0 || P | P | P | P | 1 | P | P | P | + * | 0 | 1 || 0 || 1 | 0 | 1 || P | P | P | P | P | 0 | P | P | + * | 0 | 1 || 1 || 1 | 0 | 1 || P | P | P | P | P | 1 | P | P | + * | 0 | 1 || 0 || 1 | 1 | 0 || P | P | P | P | P | P | 0 | P | + * | 0 | 1 || 1 || 1 | 1 | 0 || P | P | P | P | P | P | 1 | P | + * | 0 | 1 || 0 || 1 | 1 | 1 || P | P | P | P | P | P | P | 0 | + * | 0 | 1 || 1 || 1 | 1 | 1 || P | P | P | P | P | P | P | 1 | + * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ + * + * Naming convention attempts to follow Texas Instruments / National Semiconductor datasheet Literature Number SNOS382A + * */ #include "nld_dm9334.h" diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9334.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9334.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_dm9334.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_dm9334.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,66 +1,5 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz -/* - * nld_DM9334.h - * - * DM9334: 8-Bit Addressable Latch - * - * +--------------+ - * A0 |1 ++ 16| VCC - * A1 |2 15| /C - * A2 |3 14| /E - * Q0 |4 DM9334 13| D - * Q1 |5 12| Q7 - * Q2 |6 11| Q6 - * Q3 |7 10| Q5 - * GND |8 9| Q4 - * +--------------+ - * - * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ - * | C | E || D || A0| A1| A2|| Q0| Q1| Q2| Q3| Q4| Q5| Q6| Q7| - * +===+===++===++===+===+===++===+===+===+===+===+===+===+===+ - * | 1 | 0 || X || X | X | X || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ - * | 1 | 1 || 0 || 0 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 0 | 0 | 0 || 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 0 || 0 | 0 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 0 | 0 | 1 || 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 0 || 0 | 1 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 0 | 1 | 0 || 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 0 || 0 | 1 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 0 | 1 | 1 || 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 0 || 1 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 1 | 0 | 0 || 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | - * | 1 | 1 || 0 || 1 | 0 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 1 | 0 | 1 || 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | - * | 1 | 1 || 0 || 1 | 1 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 1 | 1 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | - * | 1 | 1 || 0 || 1 | 1 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - * | 1 | 1 || 1 || 1 | 1 | 1 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | - * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ - * | 0 | 0 || X || X | X | X || P | P | P | P | P | P | P | P | - * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ - * | 0 | 1 || 0 || 0 | 0 | 0 || 0 | P | P | P | P | P | P | P | - * | 0 | 1 || 1 || 0 | 0 | 0 || 1 | P | P | P | P | P | P | P | - * | 0 | 1 || 0 || 0 | 0 | 1 || P | 0 | P | P | P | P | P | P | - * | 0 | 1 || 1 || 0 | 0 | 1 || P | 1 | P | P | P | P | P | P | - * | 0 | 1 || 0 || 0 | 1 | 0 || P | P | 0 | P | P | P | P | P | - * | 0 | 1 || 1 || 0 | 1 | 0 || P | P | 1 | P | P | P | P | P | - * | 0 | 1 || 0 || 0 | 1 | 1 || P | P | P | 0 | P | P | P | P | - * | 0 | 1 || 1 || 0 | 1 | 1 || P | P | P | 1 | P | P | P | P | - * | 0 | 1 || 0 || 1 | 0 | 0 || P | P | P | P | 0 | P | P | P | - * | 0 | 1 || 1 || 1 | 0 | 0 || P | P | P | P | 1 | P | P | P | - * | 0 | 1 || 0 || 1 | 0 | 1 || P | P | P | P | P | 0 | P | P | - * | 0 | 1 || 1 || 1 | 0 | 1 || P | P | P | P | P | 1 | P | P | - * | 0 | 1 || 0 || 1 | 1 | 0 || P | P | P | P | P | P | 0 | P | - * | 0 | 1 || 1 || 1 | 1 | 0 || P | P | P | P | P | P | 1 | P | - * | 0 | 1 || 0 || 1 | 1 | 1 || P | P | P | P | P | P | P | 0 | - * | 0 | 1 || 1 || 1 | 1 | 1 || P | P | P | P | P | P | P | 1 | - * +---+---++---++---+---+---++---+---+---+---+---+---+---+---+ - * - * Naming convention attempts to follow Texas Instruments / National Semiconductor datasheet Literature Number SNOS382A - * - */ #ifndef NLD_DM9334_H_ #define NLD_DM9334_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_log.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_log.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_log.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_log.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,15 +1,25 @@ // license:GPL-2.0+ // copyright-holders:Couriersud /* - * nld_log.c + * nld_log.cpp + * + * Devices supporting analysis and logging + * + * nld_log: + * + * +---------+ + * | ++ | + * I | | ==> Log to file "netlist_" + name() + ".log" + * | | + * +---------+ * */ #include "netlist/nl_base.h" #include "nld_log.h" #include "plib/pfmtlog.h" -#include "plib/pstream.h" #include "plib/pmulti_threading.h" +#include "plib/pstream.h" //#include "sound/wavwrite.h" #include diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_log.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_log.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_log.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_log.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,19 +1,5 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_log.h - * - * Devices supporting analysis and logging - * - * nld_log: - * - * +---------+ - * | ++ | - * I | | ==> Log to file "netlist_" + name() + ".log" - * | | - * +---------+ - * - */ #ifndef NLD_LOG_H_ #define NLD_LOG_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_mm5837.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_mm5837.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_mm5837.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_mm5837.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,7 +1,18 @@ // license:GPL-2.0+ // copyright-holders:Couriersud /* - * nld_MM5837.c + * nld_MM5837.cpp + * + * MM5837: Digital noise source + * + * +--------+ + * VDD |1 ++ 8| NC + * VGG |2 7| NC + * OUT |3 6| NC + * VSS |4 5| NC + * +--------+ + * + * Naming conventions follow National Semiconductor datasheet * */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_mm5837.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_mm5837.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_mm5837.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_mm5837.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,20 +1,5 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_MM5837.h - * - * MM5837: Digital noise source - * - * +--------+ - * VDD |1 ++ 8| NC - * VGG |2 7| NC - * OUT |3 6| NC - * VSS |4 5| NC - * +--------+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ #ifndef NLD_MM5837_H_ #define NLD_MM5837_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,7 +1,45 @@ // license:GPL-2.0+ // copyright-holders:Couriersud /* - * nld_R2R_dac.c + * nld_r2r_dac.cpp + * + * DMR2R_DAC: R-2R DAC + * + * Generic R-2R DAC ... This is fast. + * 2R + * Bit n >----RRR----+---------> Vout + * | + * R + * R R + * R + * | + * . + * . + * 2R | + * Bit 2 >----RRR----+ + * | + * R + * R R + * R + * | + * 2R | + * Bit 1 >----RRR----+ + * | + * R + * R 2R + * R + * | + * V0 + * + * Using Thevenin's Theorem, this can be written as + * + * +---RRR-----------> Vout + * | + * V + * V V = VAL / 2^n * Vin + * V + * | + * V0 * */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_r2r_dac.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,47 +1,5 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -/* - * nld_R2R_DAC.h - * - * DMR2R_DAC: R-2R DAC - * - * Generic R-2R DAC ... This is fast. - * 2R - * Bit n >----RRR----+---------> Vout - * | - * R - * R R - * R - * | - * . - * . - * 2R | - * Bit 2 >----RRR----+ - * | - * R - * R R - * R - * | - * 2R | - * Bit 1 >----RRR----+ - * | - * R - * R 2R - * R - * | - * V0 - * - * Using Thevenin's Theorem, this can be written as - * - * +---RRR-----------> Vout - * | - * V - * V V = VAL / 2^n * Vin - * V - * | - * V0 - * - */ #ifndef NLD_R2R_DAC_H_ #define NLD_R2R_DAC_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_roms.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_roms.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_roms.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_roms.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -24,6 +24,77 @@ { namespace devices { + NETLIB_OBJECT(mk28000_prom) + { + NETLIB_CONSTRUCTOR(mk28000_prom) + , m_enable_lo(*this, "m_enable_lo", false) + , m_enable_hi(*this, "m_enable_hi", false) + , m_latched_rom(*this, "m_latched_rom", 0) + , m_A(*this, 1, "A{}", NETLIB_DELEGATE(addr)) + , m_ARQ(*this, "ARQ", NETLIB_DELEGATE(addr)) + , m_OE1(*this, "OE1", NETLIB_DELEGATE(oe1)) + , m_OE2(*this, "OE2", NETLIB_DELEGATE(oe2)) + , m_O(*this, 1, "O{}", 0) + , m_ROM(*this, "ROM") + , m_power_pins(*this) + { + } + + private: + inline NETLIB_HANDLERI(oe1) + { + m_enable_lo = m_OE1(); + uint8_t o = m_enable_lo ? m_latched_rom : 0; + for (std::size_t i=0; i<4; i++) + { + m_O.set_tristate(!m_enable_lo, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600)); + m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600)); + } + } + + inline NETLIB_HANDLERI(oe2) + { + m_enable_hi = m_OE2(); + uint8_t o = m_enable_hi ? m_latched_rom : 0; + for (std::size_t i=4; i<8; i++) + { + m_O.set_tristate(!m_enable_hi, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600)); + m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600)); + } + } + + inline NETLIB_HANDLERI(addr) + { + if (!m_ARQ()) + { + const auto addr = m_A(); + m_latched_rom = m_ROM[addr]; + } + uint8_t o = (m_enable_hi || m_enable_lo) ? m_latched_rom : 0; + for (std::size_t i=0; i<4; i++) + { + m_O.set_tristate(!m_enable_lo, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600)); + m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600)); + } + for (std::size_t i=4; i<8; i++) + { + m_O.set_tristate(!m_enable_hi, NLTIME_FROM_NS(600), NLTIME_FROM_NS(600)); + m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(600)); + } + } + + state_var m_enable_lo; + state_var m_enable_hi; + state_var m_latched_rom; + object_array_t m_A; + logic_input_t m_ARQ; + logic_input_t m_OE1; + logic_input_t m_OE2; + object_array_t m_O; + + param_rom_t m_ROM; + nld_power_pins m_power_pins; + }; template NETLIB_OBJECT(generic_prom) @@ -154,16 +225,17 @@ using output_id = desc_const<1>; // 0: logic, 1: tristate, 2: open collector }; - - using NETLIB_NAME(82S123) = NETLIB_NAME(generic_prom); // 256 bits, 32x8, used as 256x4 - using NETLIB_NAME(82S126) = NETLIB_NAME(generic_prom); // 1024 bits, 32x32, used as 256x4 - using NETLIB_NAME(74S287) = NETLIB_NAME(generic_prom); // 1024 bits, 32x32, used as 256x4 - using NETLIB_NAME(2716) = NETLIB_NAME(generic_prom); // CE2Q = OE, CE1Q = CE + using NETLIB_NAME(82S123) = NETLIB_NAME(generic_prom); // 256 bits, 32x8, used as 256x4 + using NETLIB_NAME(82S126) = NETLIB_NAME(generic_prom); // 1024 bits, 32x32, used as 256x4 + using NETLIB_NAME(74S287) = NETLIB_NAME(generic_prom); // 1024 bits, 32x32, used as 256x4 + using NETLIB_NAME(2716) = NETLIB_NAME(generic_prom); // CE2Q = OE, CE1Q = CE + using NETLIB_NAME(MK28000) = NETLIB_NAME(mk28000_prom); // 16384 bits, either 2048x8 or 4096x4, determined by OE1/OE2 use NETLIB_DEVICE_IMPL(82S126, "PROM_82S126", "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,@VCC,@GND") NETLIB_DEVICE_IMPL(74S287, "PROM_74S287", "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,@VCC,@GND") NETLIB_DEVICE_IMPL(82S123, "PROM_82S123", "+CEQ,+A0,+A1,+A2,+A3,+A4,@VCC,@GND") NETLIB_DEVICE_IMPL(2716, "EPROM_2716", "+CE2Q,+CE1Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,@VCC,@GND") + NETLIB_DEVICE_IMPL(MK28000, "PROM_MK28000", "+OE1,+OE2,+ARQ,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,+A11,@VCC,@GND") } //namespace devices } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_roms.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_roms.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_roms.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_roms.h 2020-08-26 08:57:19.000000000 +0000 @@ -26,4 +26,8 @@ #define EPROM_2716(...) \ NET_REGISTER_DEVEXT(EPROM_2716, __VA_ARGS__) +// PROM_MK28000(name, cOE1, cOE2, cAR, cA0, cA1, cA2, cA3, cA4, cA5, cA6, cA7, cA8, cA9, cA10, cA11) +#define PROM_MK28000(...) \ + NET_REGISTER_DEVEXT(PROM_MK28000, __VA_ARGS__) + #endif /* NLD_ROMS_H_ */ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_schmitt.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_schmitt.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_schmitt.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_schmitt.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -8,7 +8,6 @@ #include "nld_schmitt.h" #include "netlist/analog/nlid_twoterm.h" -#include "netlist/devices/nlid_system.h" #include "netlist/nl_base.h" #include "netlist/nl_errstr.h" #include "netlist/solver/nld_solver.h" diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tms4800.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tms4800.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tms4800.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tms4800.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,10 +3,29 @@ /* * nld_tms4800.cpp * + * TMS-4800: 16 Kbit (2Kb x 8) READ ONLY MEMORY + * + * +----------------+ + * VSS |1 ++ 24| OE1 + * A1 |2 23| O1 + * A2 |3 22| O2 + * A3 |4 TMS-4800 21| O3 + * A4 |5 20| O4 + * A5 |6 19| O5 + * A6 |7 18| O6 + * A10 |8 17| O7 + * VGG |9 16| O8 + * A9 |10 15| A11 + * A8 |11 14| OE2 + * A7 |12 13| AR + * +----------------+ + * + * + * Naming conventions follow Texas Instruments datasheet: + * http://bitsavers.trailing-edge.com/components/ti/_dataBooks/1975_TI_The_Semiconductor_Memory_Data_Book.pdf */ #include "nld_tms4800.h" -#include "netlist/devices/nlid_system.h" #include "netlist/nl_base.h" namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tms4800.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tms4800.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tms4800.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tms4800.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,29 +1,5 @@ // license:BSD-3-Clause // copyright-holders:Felipe Sanches -/* - * nld_tms4800.h - * - * TMS-4800: 16 Kbit (2Kb x 8) READ ONLY MEMORY - * - * +----------------+ - * VSS |1 ++ 24| OE1 - * A1 |2 23| O1 - * A2 |3 22| O2 - * A3 |4 TMS-4800 21| O3 - * A4 |5 20| O4 - * A5 |6 19| O5 - * A6 |7 18| O6 - * A10 |8 17| O7 - * VGG |9 16| O8 - * A9 |10 15| A11 - * A8 |11 14| OE2 - * A7 |12 13| AR - * +----------------+ - * - * - * Naming conventions follow Texas Instruments datasheet: - * http://bitsavers.trailing-edge.com/components/ti/_dataBooks/1975_TI_The_Semiconductor_Memory_Data_Book.pdf - */ #ifndef NLD_TMS4800_H_ #define NLD_TMS4800_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tristate.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tristate.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tristate.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tristate.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,8 @@ /* * nld_tristate.cpp * + * tristate: Hack to merge two tri-stated outputs together + * */ #include "nld_tristate.h" diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tristate.h mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tristate.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nld_tristate.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nld_tristate.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,11 +1,5 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz -/* - * nld_tristate.h - * - * tristate: Hack to merge two tri-stated outputs together - * - */ #ifndef NLD_TRISTATE_H_ #define NLD_TRISTATE_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nlid_system.h mame-0.224+dfsg.1/src/lib/netlist/devices/nlid_system.h --- mame-0.223+dfsg.1/src/lib/netlist/devices/nlid_system.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nlid_system.h 2020-08-26 08:57:19.000000000 +0000 @@ -21,29 +21,6 @@ namespace devices { // ----------------------------------------------------------------------------- - // netlistparams - // ----------------------------------------------------------------------------- - - NETLIB_OBJECT(netlistparams) - { - NETLIB_CONSTRUCTOR(netlistparams) - , m_use_deactivate(*this, "USE_DEACTIVATE", false) - , m_startup_strategy(*this, "STARTUP_STRATEGY", 0) - , m_mos_capmodel(*this, "DEFAULT_MOS_CAPMODEL", 2) - , m_max_link_loops(*this, "MAX_LINK_RESOLVE_LOOPS", 100) - { - } - //NETLIB_RESETI() {} - //NETLIB_UPDATE_PARAMI() { } - public: - param_logic_t m_use_deactivate; - param_num_t m_startup_strategy; - param_num_t m_mos_capmodel; - //! How many times do we try to resolve links (connections) - param_num_t m_max_link_loops; - }; - - // ----------------------------------------------------------------------------- // clock // ----------------------------------------------------------------------------- @@ -102,7 +79,7 @@ for (int i=0; i < m_N(); i++) { pstring inpname = plib::pfmt("A{1}")(i); - m_I.push_back(state().make_pool_object(*this, inpname, NETLIB_DELEGATE(fb))); + m_I.push_back(owner.template make_pool_object(*this, inpname, NETLIB_DELEGATE(fb))); inps.push_back(inpname); m_vals.push_back(nlconst::zero()); } @@ -300,50 +277,6 @@ param_fp_t m_IN; }; - // ----------------------------------------------------------------------------- - // nld_gnd - // ----------------------------------------------------------------------------- - - NETLIB_OBJECT(gnd) - { - NETLIB_CONSTRUCTOR(gnd) - , m_Q(*this, "Q") - { - } - - NETLIB_UPDATE_PARAMI() - { - m_Q.push(nlconst::zero()); - } - - //NETLIB_RESETI() {} - protected: - analog_output_t m_Q; - }; - - // ----------------------------------------------------------------------------- - // nld_nc_pin - // ----------------------------------------------------------------------------- - - NETLIB_OBJECT(nc_pin) - { - public: - NETLIB_CONSTRUCTOR(nc_pin) - , m_I(*this, "I", NETLIB_DELEGATE(noop)) - { - } - - protected: - //NETLIB_RESETI() {} - - private: - NETLIB_HANDLERI(noop) - { - } - - analog_input_t m_I; - - }; // ----------------------------------------------------------------------------- // nld_frontier @@ -453,14 +386,16 @@ NETLIB_CONSTRUCTOR(function) , m_N(*this, "N", 1) , m_func(*this, "FUNC", "A0") + , m_thresh(*this, "THRESH", nlconst::zero()) , m_Q(*this, "Q") , m_compiled(*this, "m_compiled") + , m_last(*this, "m_last") { std::vector inps; for (int i=0; i < m_N(); i++) { pstring inpname = plib::pfmt("A{1}")(i); - m_I.push_back(state().make_pool_object(*this, inpname, NETLIB_DELEGATE(inputs))); + m_I.push_back(owner.template make_pool_object(*this, inpname, NETLIB_DELEGATE(inputs))); inps.push_back(inpname); m_vals.push_back(nlconst::zero()); } @@ -479,18 +414,25 @@ { m_vals[i] = (*m_I[i])(); } - m_Q.push(m_compiled->evaluate(m_vals)); + auto result = m_compiled->evaluate(m_vals); + if (plib::abs(m_last - result) >= m_thresh) + { + m_Q.push(result); + m_last = result; + } } private: using pf_type = plib::pfunction; param_int_t m_N; param_str_t m_func; + param_fp_t m_thresh; analog_output_t m_Q; std::vector> m_I; pf_type::values_container m_vals; state_var m_compiled; + state_var m_last; }; diff -Nru mame-0.223+dfsg.1/src/lib/netlist/devices/nlid_truthtable.cpp mame-0.224+dfsg.1/src/lib/netlist/devices/nlid_truthtable.cpp --- mame-0.223+dfsg.1/src/lib/netlist/devices/nlid_truthtable.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/devices/nlid_truthtable.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -677,7 +677,8 @@ #define ENTRY(n, s) ENTRYY(n, 1, s); ENTRYY(n, 2, s); ENTRYY(n, 3, s); \ ENTRYY(n, 4, s); ENTRYY(n, 5, s); ENTRYY(n, 6, s); \ - ENTRYY(n, 7, s); ENTRYY(n, 8, s) + ENTRYY(n, 7, s); ENTRYY(n, 8, s); ENTRYY(n, 9, s); \ + ENTRYY(n, 10, s) host_arena::unique_ptr truthtable_create(tt_desc &desc, properties &&props) { diff -Nru mame-0.223+dfsg.1/src/lib/netlist/examples/lostfound.cpp mame-0.224+dfsg.1/src/lib/netlist/examples/lostfound.cpp --- mame-0.223+dfsg.1/src/lib/netlist/examples/lostfound.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/examples/lostfound.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,215 @@ +/// +/// \file lostfound.cpp +/// +/// This file contains various code removed from the core which may be +/// useful again in the future or serve educational purposes. +/// +/// Don't expect this file to compile + + +/// \brief Use the truthtable implementation of 74107 instead of the coded device +/// +/// FIXME: The truthtable implementation of 74107 (JK-Flipflop) +/// is included for educational purposes to demonstrate how +/// to implement state holding devices as truthtables. +/// It will completely nuke performance for pong. + +#ifndef NL_USE_TRUTHTABLE_74107 +#define NL_USE_TRUTHTABLE_74107 (0) +#endif + +#if (NL_USE_TRUTHTABLE_74107) + /* + * +-----+-----+-----+---++---+-----+ + * | CLRQ| CLK | J | K || Q | QQ | + * +=====+=====+=====+===++===+=====+ + * | 0 | X | X | X || 0 | 1 | + * | 1 | * | 0 | 0 || Q0| Q0Q | + * | 1 | * | 1 | 0 || 1 | 0 | + * | 1 | * | 0 | 1 || 0 | 1 | + * | 1 | * | 1 | 1 || TOGGLE | + * +-----+-----+-----+---++---+-----+ + */ + TRUTHTABLE_START(TTL_74107, 6, 4, "+CLK,+J,+K,+CLRQ,@VCC,@GND") + TT_HEAD("CLRQ, CLK, _CO, J, K,_QX | Q, QQ, CO, QX") + TT_LINE(" 0, 0, X, X, X, X | 0, 1, 0, 0 | 16, 25, 1, 1") + TT_LINE(" 0, 1, X, X, X, X | 0, 1, 1, 0 | 16, 25, 1, 1") + + TT_LINE(" 1, 0, X, 0, 0, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 1, X, 0, 0, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 0, X, 0, 0, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") + TT_LINE(" 1, 1, X, 0, 0, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") + + TT_LINE(" 1, 0, 1, 1, 0, X | 1, 0, 0, 1 | 25, 16, 1, 1") + TT_LINE(" 1, 0, 0, 1, 0, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 0, 0, 1, 0, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") + TT_LINE(" 1, 1, X, 1, 0, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 1, X, 1, 0, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") + + TT_LINE(" 1, 0, 1, 0, 1, X | 0, 1, 0, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 0, 0, 0, 1, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 0, 0, 0, 1, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") + TT_LINE(" 1, 1, X, 0, 1, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 1, X, 0, 1, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") + + // Toggle + TT_LINE(" 1, 0, 0, 1, 1, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 0, 0, 1, 1, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") + TT_LINE(" 1, 1, 0, 1, 1, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 1, 0, 1, 1, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") + TT_LINE(" 1, 1, 1, 1, 1, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 1, 1, 1, 1, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") + + TT_LINE(" 1, 0, 1, 1, 1, 1 | 0, 1, 0, 0 | 16, 25, 1, 1") + TT_LINE(" 1, 0, 1, 1, 1, 0 | 1, 0, 0, 1 | 25, 16, 1, 1") + TRUTHTABLE_END() +#endif + +/// \brief Use the truthtable implementation of 7448 instead of the coded device +/// +/// FIXME: Using truthtable is a lot slower than the explicit device +/// in breakout. Performance drops by 20%. This can be fixed by +/// setting param USE_DEACTIVATE for the device. + +#ifndef NL_USE_TRUTHTABLE_7448 +#define NL_USE_TRUTHTABLE_7448 (0) +#endif + +#if (NL_USE_TRUTHTABLE_7448) + TRUTHTABLE_START(TTL_7448, 7, 7, "+A,+B,+C,+D,+LTQ,+BIQ,+RBIQ,@VCC,@GND") + TT_HEAD(" LTQ,BIQ,RBIQ, A , B , C , D | a, b, c, d, e, f, g") + + TT_LINE(" 1, 1, 1, 0, 0, 0, 0 | 1, 1, 1, 1, 1, 1, 0|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 0, 0 | 0, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 0, 0 | 1, 1, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 0, 0 | 1, 1, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 0, 1, 0 | 0, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 1, 0 | 1, 0, 1, 1, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 1, 0 | 0, 0, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 1, 0 | 1, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 0, 0, 1 | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 0, 1 | 1, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 0, 1 | 0, 0, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 0, 1 | 0, 0, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 0, 1, 1 | 0, 1, 0, 0, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 1, 1 | 1, 0, 0, 1, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 1, 1 | 0, 0, 0, 1, 1, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 1, 1 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") + + // BI/RBO is input output. In the next case it is used as an input will go low. + TT_LINE(" 1, 1, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // RBI + + TT_LINE(" 0, 1, X, X, X, X, X | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") // LT + + // This condition has precedence + TT_LINE(" X, 0, X, X, X, X, X | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // BI + TT_FAMILY("74XX") + + TRUTHTABLE_END() + + // FIXME: We need a more elegant solution than defining twice + TRUTHTABLE_START(TTL_7448_TT, 7, 7, "") + TT_HEAD(" LTQ,BIQ,RBIQ, A , B , C , D | a, b, c, d, e, f, g") + + TT_LINE(" 1, 1, 1, 0, 0, 0, 0 | 1, 1, 1, 1, 1, 1, 0|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 0, 0 | 0, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 0, 0 | 1, 1, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 0, 0 | 1, 1, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 0, 1, 0 | 0, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 1, 0 | 1, 0, 1, 1, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 1, 0 | 0, 0, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 1, 0 | 1, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 0, 0, 1 | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 0, 1 | 1, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 0, 1 | 0, 0, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 0, 1 | 0, 0, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 0, 1, 1 | 0, 1, 0, 0, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 0, 1, 1 | 1, 0, 0, 1, 0, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 0, 1, 1, 1 | 0, 0, 0, 1, 1, 1, 1|100,100,100,100,100,100,100") + TT_LINE(" 1, 1, X, 1, 1, 1, 1 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") + + // BI/RBO is input output. In the next case it is used as an input will go low. + TT_LINE(" 1, 1, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // RBI + + TT_LINE(" 0, 1, X, X, X, X, X | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") // LT + + // This condition has precedence + TT_LINE(" X, 0, X, X, X, X, X | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // BI + TT_FAMILY("74XX") + + TRUTHTABLE_END() + +#endif + +// This is an experimental approach to implement the analog switch. +// This will make the switch a 3 terminal element which is completely +// being dealt with as part as the linear system. +// +// The intention was to improve convergence when the switch is in a feedback +// loop. One example are two-opamp tridiagonal wave generators. +// Unfortunately the approach did not work out and in addition was performing +// far worse than the net-separating original code. +// +// FIXME: The transfer function needs review +// +NETLIB_OBJECT(CD4066_GATE_DYNAMIC) +{ + NETLIB_CONSTRUCTOR_MODEL(CD4066_GATE_DYNAMIC, "CD4XXX") + , m_R(*this, "R", NETLIB_DELEGATE(analog_input_changed)) + , m_DUM1(*this, "_DUM1", NETLIB_DELEGATE(analog_input_changed)) + , m_DUM2(*this, "_DUM2", NETLIB_DELEGATE(analog_input_changed)) + , m_base_r(*this, "BASER", nlconst::magic(270.0)) + , m_last(*this, "m_last", false) + , m_supply(*this) + { + register_subalias("CTL", m_DUM1.P()); + + connect(m_DUM1.P(), m_DUM2.P()); + connect(m_DUM1.N(), m_R.P()); + connect(m_DUM2.N(), m_R.N()); + } + + NETLIB_RESETI() + { + // Start in off condition + // FIXME: is ROFF correct? + } + + NETLIB_UPDATE_TERMINALSI() + { + nl_fptype sup = (m_supply.VCC().Q_Analog() - m_supply.GND().Q_Analog()); + nl_fptype in = m_DUM1.P().net().Q_Analog() - m_supply.GND().Q_Analog(); + nl_fptype rON = m_base_r() * nlconst::magic(5.0) / sup; + nl_fptype R = std::exp(-(in / sup - nlconst::magic(0.55)) * nlconst::magic(25.0)) + rON; + nl_fptype G = plib::reciprocal(R); + // dI/dVin = (VR1-VR2)*(1.0/sup*b) * exp((Vin/sup-a) * b) + const auto dfdz = nlconst::magic(25.0)/(R*sup) * m_R.deltaV(); + const auto Ieq = dfdz * in; + const auto zero(nlconst::zero()); + m_R.set_mat( G, -G, zero, + -G, G, zero); + //VIN VR1 + m_DUM1.set_mat( zero, zero, zero, // IIN + dfdz, zero, Ieq); // IR1 + m_DUM2.set_mat( zero, zero, zero, // IIN + -dfdz, zero, -Ieq); // IR2 + } + NETLIB_IS_DYNAMIC(true) + +private: + + NETLIB_HANDLERI(analog_input_changed) + { + m_R.solve_now(); + } + + analog::nld_twoterm m_R; + analog::nld_twoterm m_DUM1; + analog::nld_twoterm m_DUM2; + param_fp_t m_base_r; + state_var m_last; + nld_power_pins m_supply; +}; + + NETLIB_DEVICE_IMPL(CD4066_GATE_DYNAMIC, "CD4066_GATE_DYNAMIC", "") + diff -Nru mame-0.223+dfsg.1/src/lib/netlist/examples/sn74ls629_osc.c mame-0.224+dfsg.1/src/lib/netlist/examples/sn74ls629_osc.c --- mame-0.223+dfsg.1/src/lib/netlist/examples/sn74ls629_osc.c 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/examples/sn74ls629_osc.c 2020-08-26 08:57:19.000000000 +0000 @@ -25,6 +25,7 @@ SN74LS629(OSC, 0.022e-6) NET_C(GND, OSC.GND) + NET_C(V5, OSC.VCC) NET_C(VR, OSC.RNG) NET_C(VF, OSC.FC) NET_C(GND, OSC.ENQ) diff -Nru mame-0.223+dfsg.1/src/lib/netlist/generated/static_solvers.cpp mame-0.224+dfsg.1/src/lib/netlist/generated/static_solvers.cpp --- mame-0.223+dfsg.1/src/lib/netlist/generated/static_solvers.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/generated/static_solvers.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,5 +1,220 @@ #include "plib/pdynlib.h" +// elim +static void nl_gcr_11c2ae166b240b6e_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A6 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A8 += go[9]; + m_A7 += go[10]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// tankbatt +static void nl_gcr_124f7aa10f044582_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A3 += go[3]; + m_A4 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A7 += go[10]; + m_A6 += go[11]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[14]; + m_A9 += go[15]; + m_A8 += go[16]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[17] * *cnV[17]; + m_A15 += gt[18]; + m_A15 += gt[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A15 += gt[23]; + m_A12 += go[18]; + m_A13 += go[19]; + m_A14 += go[20]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A12; + m_A13 += m_A3 * f1_4; + m_A14 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A6 * f2_3; + m_A11 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + const double f2_4 = -f2 * m_A13; + m_A14 += m_A6 * f2_4; + m_A15 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A15; + double tmp3 = 0.0; + tmp3 += m_A11 * V[4]; + V[3] = (RHS3 - tmp3) / m_A10; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + tmp2 += m_A7 * V[4]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + // armora static void nl_gcr_1250f340dea396ae_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) @@ -1875,8 +2090,8 @@ V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_24643c159711f292_95_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// sspeedr +static void nl_gcr_2294220d3c91e762_176_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -1976,560 +2191,1013 @@ double m_A92(0.0); double m_A93(0.0); double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[2]; m_A2 += gt[3]; m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A3 += go[3]; - double RHS1 = Idr[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; + RHS1 -= go[3] * *cnV[3]; RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; m_A4 += gt[10]; m_A4 += gt[11]; - m_A4 += gt[12]; - m_A5 += go[10]; - double RHS2 = Idr[10]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; RHS2 += Idr[11]; - RHS2 += Idr[12]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; + m_A6 += gt[12]; m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A6 += gt[16]; - m_A6 += gt[17]; - m_A6 += gt[18]; - m_A6 += gt[19]; - m_A7 += go[13]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 -= go[14] * *cnV[14]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A8 += gt[20]; - m_A8 += gt[21]; - m_A9 += go[20]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 -= go[21] * *cnV[21]; - m_A10 += gt[22]; - m_A10 += gt[23]; - m_A11 += go[22]; - double RHS5 = Idr[22]; - RHS5 += Idr[23]; - RHS5 -= go[23] * *cnV[23]; - m_A12 += gt[24]; - m_A12 += gt[25]; - m_A12 += gt[26]; - m_A12 += gt[27]; - m_A13 += go[24]; - double RHS6 = Idr[24]; - RHS6 += Idr[25]; - RHS6 += Idr[26]; - RHS6 += Idr[27]; - RHS6 -= go[25] * *cnV[25]; - RHS6 -= go[26] * *cnV[26]; - RHS6 -= go[27] * *cnV[27]; - m_A14 += gt[28]; - m_A14 += gt[29]; - m_A14 += gt[30]; - m_A14 += gt[31]; - m_A15 += go[28]; - double RHS7 = Idr[28]; - RHS7 += Idr[29]; - RHS7 += Idr[30]; - RHS7 += Idr[31]; - RHS7 -= go[29] * *cnV[29]; - RHS7 -= go[30] * *cnV[30]; - RHS7 -= go[31] * *cnV[31]; - m_A16 += gt[32]; - m_A16 += gt[33]; - m_A17 += go[32]; - double RHS8 = Idr[32]; - RHS8 += Idr[33]; - RHS8 -= go[33] * *cnV[33]; - m_A18 += gt[34]; - m_A18 += gt[35]; - m_A18 += gt[36]; - m_A18 += gt[37]; - m_A19 += go[34]; - double RHS9 = Idr[34]; - RHS9 += Idr[35]; - RHS9 += Idr[36]; - RHS9 += Idr[37]; - RHS9 -= go[35] * *cnV[35]; - RHS9 -= go[36] * *cnV[36]; - RHS9 -= go[37] * *cnV[37]; - m_A20 += gt[38]; - m_A20 += gt[39]; - m_A22 += go[38]; - m_A21 += go[39]; - double RHS10 = Idr[38]; - RHS10 += Idr[39]; - m_A23 += gt[40]; - m_A23 += gt[41]; - m_A23 += gt[42]; - m_A23 += gt[43]; - m_A24 += go[40]; - double RHS11 = Idr[40]; - RHS11 += Idr[41]; - RHS11 += Idr[42]; - RHS11 += Idr[43]; - RHS11 -= go[41] * *cnV[41]; - RHS11 -= go[42] * *cnV[42]; - RHS11 -= go[43] * *cnV[43]; - m_A25 += gt[44]; - m_A25 += gt[45]; - m_A25 += gt[46]; - m_A27 += go[44]; - m_A28 += go[45]; - m_A26 += go[46]; - double RHS12 = Idr[44]; - RHS12 += Idr[45]; - RHS12 += Idr[46]; - m_A29 += gt[47]; - m_A29 += gt[48]; - m_A31 += go[47]; - m_A30 += go[48]; - double RHS13 = Idr[47]; - RHS13 += Idr[48]; - m_A37 += gt[49]; - m_A37 += gt[50]; - m_A37 += gt[51]; - m_A37 += gt[52]; - m_A37 += gt[53]; - m_A37 += gt[54]; - m_A36 += go[49]; - m_A35 += go[50]; - m_A34 += go[51]; - m_A33 += go[52]; - m_A32 += go[53]; - double RHS14 = Idr[49]; - RHS14 += Idr[50]; - RHS14 += Idr[51]; - RHS14 += Idr[52]; - RHS14 += Idr[53]; - RHS14 += Idr[54]; - RHS14 -= go[54] * *cnV[54]; - m_A39 += gt[55]; - m_A39 += gt[56]; - m_A39 += gt[57]; - m_A39 += gt[58]; - m_A38 += go[55]; - m_A40 += go[56]; - double RHS15 = Idr[55]; - RHS15 += Idr[56]; - RHS15 += Idr[57]; - RHS15 += Idr[58]; - RHS15 -= go[57] * *cnV[57]; - RHS15 -= go[58] * *cnV[58]; - m_A42 += gt[59]; - m_A42 += gt[60]; - m_A42 += gt[61]; - m_A42 += gt[62]; - m_A41 += go[59]; - m_A43 += go[60]; - double RHS16 = Idr[59]; - RHS16 += Idr[60]; - RHS16 += Idr[61]; - RHS16 += Idr[62]; - RHS16 -= go[61] * *cnV[61]; - RHS16 -= go[62] * *cnV[62]; - m_A45 += gt[63]; - m_A45 += gt[64]; - m_A45 += gt[65]; - m_A46 += go[63]; - m_A44 += go[64]; - double RHS17 = Idr[63]; - RHS17 += Idr[64]; - RHS17 += Idr[65]; - RHS17 -= go[65] * *cnV[65]; - m_A52 += gt[66]; - m_A52 += gt[67]; - m_A52 += gt[68]; - m_A52 += gt[69]; - m_A52 += gt[70]; - m_A52 += gt[71]; - m_A49 += go[66]; - m_A50 += go[67]; - m_A51 += go[68]; - m_A47 += go[69]; - m_A48 += go[70]; - double RHS18 = Idr[66]; - RHS18 += Idr[67]; - RHS18 += Idr[68]; - RHS18 += Idr[69]; - RHS18 += Idr[70]; - RHS18 += Idr[71]; - RHS18 -= go[71] * *cnV[71]; - m_A59 += gt[72]; - m_A59 += gt[73]; - m_A57 += go[72]; - m_A62 += go[73]; - double RHS19 = Idr[72]; - RHS19 += Idr[73]; - m_A66 += gt[74]; - m_A66 += gt[75]; - m_A66 += gt[76]; - m_A66 += gt[77]; - m_A66 += gt[78]; - m_A66 += gt[79]; - m_A63 += go[74]; - m_A64 += go[75]; - m_A68 += go[76]; - m_A67 += go[77]; - double RHS20 = Idr[74]; - RHS20 += Idr[75]; - RHS20 += Idr[76]; - RHS20 += Idr[77]; - RHS20 += Idr[78]; - RHS20 += Idr[79]; - RHS20 -= go[78] * *cnV[78]; - RHS20 -= go[79] * *cnV[79]; - m_A73 += gt[80]; - m_A73 += gt[81]; - m_A73 += gt[82]; - m_A73 += gt[83]; - m_A72 += go[80]; - m_A71 += go[81]; - m_A69 += go[82]; - m_A70 += go[83]; - double RHS21 = Idr[80]; - RHS21 += Idr[81]; - RHS21 += Idr[82]; - RHS21 += Idr[83]; - m_A80 += gt[84]; - m_A80 += gt[85]; - m_A80 += gt[86]; - m_A80 += gt[87]; - m_A80 += gt[88]; - m_A80 += gt[89]; - m_A80 += gt[90]; - m_A80 += gt[91]; - m_A80 += gt[92]; - m_A80 += gt[93]; - m_A80 += gt[94]; - m_A75 += go[84]; - m_A82 += go[85]; - m_A76 += go[86]; - double RHS22 = Idr[84]; - RHS22 += Idr[85]; - RHS22 += Idr[86]; - RHS22 += Idr[87]; - RHS22 += Idr[88]; - RHS22 += Idr[89]; - RHS22 += Idr[90]; - RHS22 += Idr[91]; - RHS22 += Idr[92]; - RHS22 += Idr[93]; - RHS22 += Idr[94]; - RHS22 -= go[87] * *cnV[87]; - RHS22 -= go[88] * *cnV[88]; - RHS22 -= go[89] * *cnV[89]; - RHS22 -= go[90] * *cnV[90]; - RHS22 -= go[91] * *cnV[91]; - RHS22 -= go[92] * *cnV[92]; - RHS22 -= go[93] * *cnV[93]; - RHS22 -= go[94] * *cnV[94]; - m_A88 += gt[95]; - m_A88 += gt[96]; - m_A88 += gt[97]; - m_A88 += gt[98]; - m_A88 += gt[99]; - m_A83 += go[95]; - m_A85 += go[96]; - m_A84 += go[97]; - m_A86 += go[98]; - double RHS23 = Idr[95]; - RHS23 += Idr[96]; - RHS23 += Idr[97]; - RHS23 += Idr[98]; - RHS23 += Idr[99]; - RHS23 -= go[99] * *cnV[99]; - m_A94 += gt[100]; - m_A94 += gt[101]; - m_A94 += gt[102]; - m_A91 += go[100]; - m_A89 += go[101]; - m_A92 += go[102]; - double RHS24 = Idr[100]; - RHS24 += Idr[101]; - RHS24 += Idr[102]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A9 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[16]; + m_A12 += go[17]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A14 += go[18]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + RHS6 -= go[21] * *cnV[21]; + RHS6 -= go[22] * *cnV[22]; + RHS6 -= go[23] * *cnV[23]; + RHS6 -= go[24] * *cnV[24]; + m_A15 += gt[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[25]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[26] * *cnV[26]; + RHS7 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[28]; + m_A19 += go[29]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A21 += go[30]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 -= go[31] * *cnV[31]; + m_A22 += gt[32]; + m_A22 += gt[33]; + m_A23 += go[32]; + double RHS10 = Idr[32]; + RHS10 += Idr[33]; + RHS10 -= go[33] * *cnV[33]; + m_A24 += gt[34]; + m_A24 += gt[35]; + m_A25 += go[34]; + double RHS11 = Idr[34]; + RHS11 += Idr[35]; + RHS11 -= go[35] * *cnV[35]; + m_A26 += gt[36]; + m_A26 += gt[37]; + m_A26 += gt[38]; + m_A26 += gt[39]; + m_A26 += gt[40]; + m_A26 += gt[41]; + m_A26 += gt[42]; + m_A27 += go[36]; + double RHS12 = Idr[36]; + RHS12 += Idr[37]; + RHS12 += Idr[38]; + RHS12 += Idr[39]; + RHS12 += Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 -= go[37] * *cnV[37]; + RHS12 -= go[38] * *cnV[38]; + RHS12 -= go[39] * *cnV[39]; + RHS12 -= go[40] * *cnV[40]; + RHS12 -= go[41] * *cnV[41]; + RHS12 -= go[42] * *cnV[42]; + m_A28 += gt[43]; + m_A28 += gt[44]; + m_A29 += go[43]; + double RHS13 = Idr[43]; + RHS13 += Idr[44]; + RHS13 -= go[44] * *cnV[44]; + m_A30 += gt[45]; + m_A30 += gt[46]; + m_A30 += gt[47]; + m_A30 += gt[48]; + m_A30 += gt[49]; + m_A30 += gt[50]; + m_A30 += gt[51]; + m_A31 += go[45]; + double RHS14 = Idr[45]; + RHS14 += Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 -= go[46] * *cnV[46]; + RHS14 -= go[47] * *cnV[47]; + RHS14 -= go[48] * *cnV[48]; + RHS14 -= go[49] * *cnV[49]; + RHS14 -= go[50] * *cnV[50]; + RHS14 -= go[51] * *cnV[51]; + m_A32 += gt[52]; + m_A32 += gt[53]; + m_A33 += go[52]; + double RHS15 = Idr[52]; + RHS15 += Idr[53]; + RHS15 -= go[53] * *cnV[53]; + m_A34 += gt[54]; + m_A34 += gt[55]; + m_A34 += gt[56]; + m_A34 += gt[57]; + m_A36 += go[54]; + m_A35 += go[55]; + double RHS16 = Idr[54]; + RHS16 += Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; + RHS16 -= go[56] * *cnV[56]; + RHS16 -= go[57] * *cnV[57]; + m_A37 += gt[58]; + m_A37 += gt[59]; + m_A37 += gt[60]; + m_A38 += go[58]; + double RHS17 = Idr[58]; + RHS17 += Idr[59]; + RHS17 += Idr[60]; + RHS17 -= go[59] * *cnV[59]; + RHS17 -= go[60] * *cnV[60]; + m_A39 += gt[61]; + m_A39 += gt[62]; + m_A39 += gt[63]; + m_A39 += gt[64]; + m_A40 += go[61]; + m_A41 += go[62]; + double RHS18 = Idr[61]; + RHS18 += Idr[62]; + RHS18 += Idr[63]; + RHS18 += Idr[64]; + RHS18 -= go[63] * *cnV[63]; + RHS18 -= go[64] * *cnV[64]; + m_A42 += gt[65]; + m_A42 += gt[66]; + m_A43 += go[65]; + m_A44 += go[66]; + double RHS19 = Idr[65]; + RHS19 += Idr[66]; + m_A45 += gt[67]; + m_A45 += gt[68]; + m_A45 += gt[69]; + m_A46 += go[67]; + double RHS20 = Idr[67]; + RHS20 += Idr[68]; + RHS20 += Idr[69]; + RHS20 -= go[68] * *cnV[68]; + RHS20 -= go[69] * *cnV[69]; + m_A48 += gt[70]; + m_A48 += gt[71]; + m_A47 += go[70]; + double RHS21 = Idr[70]; + RHS21 += Idr[71]; + RHS21 -= go[71] * *cnV[71]; + m_A49 += gt[72]; + m_A49 += gt[73]; + m_A50 += go[72]; + m_A51 += go[73]; + double RHS22 = Idr[72]; + RHS22 += Idr[73]; + m_A53 += gt[74]; + m_A53 += gt[75]; + m_A52 += go[74]; + double RHS23 = Idr[74]; + RHS23 += Idr[75]; + RHS23 -= go[75] * *cnV[75]; + m_A55 += gt[76]; + m_A55 += gt[77]; + m_A55 += gt[78]; + m_A55 += gt[79]; + m_A54 += go[76]; + m_A56 += go[77]; + double RHS24 = Idr[76]; + RHS24 += Idr[77]; + RHS24 += Idr[78]; + RHS24 += Idr[79]; + RHS24 -= go[78] * *cnV[78]; + RHS24 -= go[79] * *cnV[79]; + m_A58 += gt[80]; + m_A58 += gt[81]; + m_A58 += gt[82]; + m_A58 += gt[83]; + m_A58 += gt[84]; + m_A57 += go[80]; + m_A60 += go[81]; + m_A61 += go[82]; + m_A59 += go[83]; + double RHS25 = Idr[80]; + RHS25 += Idr[81]; + RHS25 += Idr[82]; + RHS25 += Idr[83]; + RHS25 += Idr[84]; + RHS25 -= go[84] * *cnV[84]; + m_A63 += gt[85]; + m_A63 += gt[86]; + m_A65 += go[85]; + m_A62 += go[86]; + double RHS26 = Idr[85]; + RHS26 += Idr[86]; + m_A67 += gt[87]; + m_A67 += gt[88]; + m_A67 += gt[89]; + m_A67 += gt[90]; + m_A66 += go[87]; + m_A68 += go[88]; + double RHS27 = Idr[87]; + RHS27 += Idr[88]; + RHS27 += Idr[89]; + RHS27 += Idr[90]; + RHS27 -= go[89] * *cnV[89]; + RHS27 -= go[90] * *cnV[90]; + m_A70 += gt[91]; + m_A70 += gt[92]; + m_A70 += gt[93]; + m_A70 += gt[94]; + m_A69 += go[91]; + m_A71 += go[92]; + double RHS28 = Idr[91]; + RHS28 += Idr[92]; + RHS28 += Idr[93]; + RHS28 += Idr[94]; + RHS28 -= go[93] * *cnV[93]; + RHS28 -= go[94] * *cnV[94]; + m_A74 += gt[95]; + m_A74 += gt[96]; + m_A73 += go[95]; + m_A75 += go[96]; + double RHS29 = Idr[95]; + RHS29 += Idr[96]; + m_A79 += gt[97]; + m_A79 += gt[98]; + m_A79 += gt[99]; + m_A79 += gt[100]; + m_A78 += go[97]; + m_A77 += go[98]; + m_A80 += go[99]; + m_A76 += go[100]; + double RHS30 = Idr[97]; + RHS30 += Idr[98]; + RHS30 += Idr[99]; + RHS30 += Idr[100]; + m_A84 += gt[101]; + m_A84 += gt[102]; + m_A83 += go[101]; + m_A82 += go[102]; + double RHS31 = Idr[101]; + RHS31 += Idr[102]; + m_A89 += gt[103]; + m_A89 += gt[104]; + m_A87 += go[103]; + m_A86 += go[104]; + double RHS32 = Idr[103]; + RHS32 += Idr[104]; + m_A91 += gt[105]; + m_A91 += gt[106]; + m_A90 += go[105]; + m_A93 += go[106]; + double RHS33 = Idr[105]; + RHS33 += Idr[106]; + m_A95 += gt[107]; + m_A95 += gt[108]; + m_A95 += gt[109]; + m_A95 += gt[110]; + m_A94 += go[107]; + m_A96 += go[108]; + double RHS34 = Idr[107]; + RHS34 += Idr[108]; + RHS34 += Idr[109]; + RHS34 += Idr[110]; + RHS34 -= go[109] * *cnV[109]; + RHS34 -= go[110] * *cnV[110]; + m_A99 += gt[111]; + m_A99 += gt[112]; + m_A97 += go[111]; + m_A101 += go[112]; + double RHS35 = Idr[111]; + RHS35 += Idr[112]; + m_A106 += gt[113]; + m_A106 += gt[114]; + m_A106 += gt[115]; + m_A106 += gt[116]; + m_A106 += gt[117]; + m_A106 += gt[118]; + m_A102 += go[113]; + m_A104 += go[114]; + m_A103 += go[115]; + m_A108 += go[116]; + double RHS36 = Idr[113]; + RHS36 += Idr[114]; + RHS36 += Idr[115]; + RHS36 += Idr[116]; + RHS36 += Idr[117]; + RHS36 += Idr[118]; + RHS36 -= go[117] * *cnV[117]; + RHS36 -= go[118] * *cnV[118]; + m_A113 += gt[119]; + m_A113 += gt[120]; + m_A113 += gt[121]; + m_A113 += gt[122]; + m_A113 += gt[123]; + m_A115 += go[119]; + m_A111 += go[120]; + m_A112 += go[121]; + m_A110 += go[122]; + m_A109 += go[123]; + double RHS37 = Idr[119]; + RHS37 += Idr[120]; + RHS37 += Idr[121]; + RHS37 += Idr[122]; + RHS37 += Idr[123]; + m_A124 += gt[124]; + m_A124 += gt[125]; + m_A124 += gt[126]; + m_A124 += gt[127]; + m_A124 += gt[128]; + m_A124 += gt[129]; + m_A119 += go[124]; + m_A118 += go[125]; + m_A121 += go[126]; + m_A120 += go[127]; + m_A117 += go[128]; + m_A116 += go[129]; + double RHS38 = Idr[124]; + RHS38 += Idr[125]; + RHS38 += Idr[126]; + RHS38 += Idr[127]; + RHS38 += Idr[128]; + RHS38 += Idr[129]; + m_A137 += gt[130]; + m_A137 += gt[131]; + m_A137 += gt[132]; + m_A137 += gt[133]; + m_A137 += gt[134]; + m_A137 += gt[135]; + m_A137 += gt[136]; + m_A137 += gt[137]; + m_A135 += go[130]; + m_A129 += go[131]; + m_A134 += go[132]; + m_A132 += go[133]; + m_A128 += go[134]; + m_A127 += go[135]; + m_A130 += go[136]; + m_A131 += go[137]; + double RHS39 = Idr[130]; + RHS39 += Idr[131]; + RHS39 += Idr[132]; + RHS39 += Idr[133]; + RHS39 += Idr[134]; + RHS39 += Idr[135]; + RHS39 += Idr[136]; + RHS39 += Idr[137]; + m_A147 += gt[138]; + m_A147 += gt[139]; + m_A147 += gt[140]; + m_A147 += gt[141]; + m_A147 += gt[142]; + m_A147 += gt[143]; + m_A140 += go[138]; + m_A141 += go[139]; + m_A150 += go[140]; + m_A142 += go[141]; + double RHS40 = Idr[138]; + RHS40 += Idr[139]; + RHS40 += Idr[140]; + RHS40 += Idr[141]; + RHS40 += Idr[142]; + RHS40 += Idr[143]; + RHS40 -= go[142] * *cnV[142]; + RHS40 -= go[143] * *cnV[143]; + m_A158 += gt[144]; + m_A158 += gt[145]; + m_A158 += gt[146]; + m_A158 += gt[147]; + m_A158 += gt[148]; + m_A158 += gt[149]; + m_A151 += go[144]; + m_A152 += go[145]; + m_A154 += go[146]; + m_A156 += go[147]; + double RHS41 = Idr[144]; + RHS41 += Idr[145]; + RHS41 += Idr[146]; + RHS41 += Idr[147]; + RHS41 += Idr[148]; + RHS41 += Idr[149]; + RHS41 -= go[148] * *cnV[148]; + RHS41 -= go[149] * *cnV[149]; + m_A166 += gt[150]; + m_A166 += gt[151]; + m_A166 += gt[152]; + m_A166 += gt[153]; + m_A161 += go[150]; + m_A162 += go[151]; + double RHS42 = Idr[150]; + RHS42 += Idr[151]; + RHS42 += Idr[152]; + RHS42 += Idr[153]; + RHS42 -= go[152] * *cnV[152]; + RHS42 -= go[153] * *cnV[153]; + m_A175 += gt[154]; + m_A175 += gt[155]; + m_A175 += gt[156]; + m_A175 += gt[157]; + m_A175 += gt[158]; + m_A172 += go[154]; + m_A170 += go[155]; + m_A169 += go[156]; + m_A168 += go[157]; + m_A171 += go[158]; + double RHS43 = Idr[154]; + RHS43 += Idr[155]; + RHS43 += Idr[156]; + RHS43 += Idr[157]; + RHS43 += Idr[158]; const double f0 = 1.0 / m_A0; - const double f0_15 = -f0 * m_A38; - m_A40 += m_A1 * f0_15; - RHS15 += f0_15 * RHS0; - const double f0_21 = -f0 * m_A69; - m_A73 += m_A1 * f0_21; + const double f0_21 = -f0 * m_A47; + m_A48 += m_A1 * f0_21; RHS21 += f0_21 * RHS0; + const double f0_37 = -f0 * m_A109; + m_A111 += m_A1 * f0_37; + RHS37 += f0_37 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_20 = -f1 * m_A63; - m_A65 += m_A3 * f1_20; - RHS20 += f1_20 * RHS1; + const double f1_24 = -f1 * m_A54; + m_A56 += m_A3 * f1_24; + RHS24 += f1_24 * RHS1; + const double f1_37 = -f1 * m_A110; + m_A113 += m_A3 * f1_37; + RHS37 += f1_37 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_16 = -f2 * m_A41; - m_A43 += m_A5 * f2_16; - RHS16 += f2_16 * RHS2; - const double f2_18 = -f2 * m_A47; - m_A52 += m_A5 * f2_18; - RHS18 += f2_18 * RHS2; + const double f2_41 = -f2 * m_A151; + m_A153 += m_A5 * f2_41; + RHS41 += f2_41 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_22 = -f3 * m_A75; - m_A77 += m_A7 * f3_22; - RHS22 += f3_22 * RHS3; + const double f3_25 = -f3 * m_A57; + m_A58 += m_A7 * f3_25; + RHS25 += f3_25 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_14 = -f4 * m_A32; - m_A37 += m_A9 * f4_14; - RHS14 += f4_14 * RHS4; - const double f4_21 = -f4 * m_A70; - m_A71 += m_A9 * f4_21; - RHS21 += f4_21 * RHS4; + const double f4_23 = -f4 * m_A52; + m_A53 += m_A9 * f4_23; + RHS23 += f4_23 * RHS4; + const double f4_43 = -f4 * m_A168; + m_A170 += m_A9 * f4_43; + RHS43 += f4_43 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_17 = -f5 * m_A44; - m_A45 += m_A11 * f5_17; - RHS17 += f5_17 * RHS5; - const double f5_18 = -f5 * m_A48; - m_A51 += m_A11 * f5_18; - RHS18 += f5_18 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_14 = -f6 * m_A33; - m_A37 += m_A13 * f6_14; - RHS14 += f6_14 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_14 = -f7 * m_A34; - m_A37 += m_A15 * f7_14; - RHS14 += f7_14 * RHS7; - const double f8 = 1.0 / m_A16; - const double f8_23 = -f8 * m_A83; - m_A88 += m_A17 * f8_23; - RHS23 += f8_23 * RHS8; - const double f9 = 1.0 / m_A18; - const double f9_14 = -f9 * m_A35; - m_A37 += m_A19 * f9_14; - RHS14 += f9_14 * RHS9; - const double f10 = 1.0 / m_A20; - const double f10_20 = -f10 * m_A64; - m_A66 += m_A21 * f10_20; - m_A68 += m_A22 * f10_20; - RHS20 += f10_20 * RHS10; - const double f10_23 = -f10 * m_A84; - m_A86 += m_A21 * f10_23; - m_A88 += m_A22 * f10_23; - RHS23 += f10_23 * RHS10; - const double f11 = 1.0 / m_A23; - const double f11_14 = -f11 * m_A36; - m_A37 += m_A24 * f11_14; - RHS14 += f11_14 * RHS11; - const double f12 = 1.0 / m_A25; - const double f12_18 = -f12 * m_A49; - m_A52 += m_A26 * f12_18; - m_A53 += m_A27 * f12_18; - m_A56 += m_A28 * f12_18; - RHS18 += f12_18 * RHS12; - const double f12_19 = -f12 * m_A57; - m_A58 += m_A26 * f12_19; - m_A59 += m_A27 * f12_19; - m_A62 += m_A28 * f12_19; - RHS19 += f12_19 * RHS12; - const double f12_24 = -f12 * m_A89; - m_A90 += m_A26 * f12_24; - m_A91 += m_A27 * f12_24; - m_A94 += m_A28 * f12_24; - RHS24 += f12_24 * RHS12; - const double f13 = 1.0 / m_A29; - const double f13_18 = -f13 * m_A50; - m_A52 += m_A30 * f13_18; - m_A54 += m_A31 * f13_18; - RHS18 += f13_18 * RHS13; - const double f13_22 = -f13 * m_A76; - m_A78 += m_A30 * f13_22; - m_A80 += m_A31 * f13_22; - RHS22 += f13_22 * RHS13; - const double f14 = 1.0 / m_A37; - const double f14_21 = -f14 * m_A71; - RHS21 += f14_21 * RHS14; - const double f15 = 1.0 / m_A39; - const double f15_20 = -f15 * m_A65; - m_A67 += m_A40 * f15_20; - RHS20 += f15_20 * RHS15; - const double f16 = 1.0 / m_A42; - const double f16_22 = -f16 * m_A77; - m_A78 += m_A43 * f16_22; - RHS22 += f16_22 * RHS16; - const double f17 = 1.0 / m_A45; - const double f17_18 = -f17 * m_A51; - m_A55 += m_A46 * f17_18; - RHS18 += f17_18 * RHS17; - const double f17_23 = -f17 * m_A85; - m_A88 += m_A46 * f17_23; - RHS23 += f17_23 * RHS17; - const double f18 = 1.0 / m_A52; - const double f18_19 = -f18 * m_A58; - m_A59 += m_A53 * f18_19; - m_A60 += m_A54 * f18_19; - m_A61 += m_A55 * f18_19; - m_A62 += m_A56 * f18_19; - RHS19 += f18_19 * RHS18; - const double f18_22 = -f18 * m_A78; - m_A79 += m_A53 * f18_22; - m_A80 += m_A54 * f18_22; - m_A81 += m_A55 * f18_22; - m_A82 += m_A56 * f18_22; - RHS22 += f18_22 * RHS18; - const double f18_24 = -f18 * m_A90; - m_A91 += m_A53 * f18_24; - m_A92 += m_A54 * f18_24; - m_A93 += m_A55 * f18_24; - m_A94 += m_A56 * f18_24; - RHS24 += f18_24 * RHS18; - const double f19 = 1.0 / m_A59; - const double f19_22 = -f19 * m_A79; - m_A80 += m_A60 * f19_22; - m_A81 += m_A61 * f19_22; - m_A82 += m_A62 * f19_22; - RHS22 += f19_22 * RHS19; - const double f19_24 = -f19 * m_A91; - m_A92 += m_A60 * f19_24; - m_A93 += m_A61 * f19_24; - m_A94 += m_A62 * f19_24; - RHS24 += f19_24 * RHS19; - const double f20 = 1.0 / m_A66; - const double f20_21 = -f20 * m_A72; - m_A73 += m_A67 * f20_21; - m_A74 += m_A68 * f20_21; - RHS21 += f20_21 * RHS20; - const double f20_23 = -f20 * m_A86; - m_A87 += m_A67 * f20_23; - m_A88 += m_A68 * f20_23; - RHS23 += f20_23 * RHS20; - const double f21 = 1.0 / m_A73; - const double f21_23 = -f21 * m_A87; - m_A88 += m_A74 * f21_23; - RHS23 += f21_23 * RHS21; - const double f22 = 1.0 / m_A80; - const double f22_24 = -f22 * m_A92; - m_A93 += m_A81 * f22_24; - m_A94 += m_A82 * f22_24; - RHS24 += f22_24 * RHS22; - const double f23 = 1.0 / m_A88; - const double f23_24 = -f23 * m_A93; - RHS24 += f23_24 * RHS23; - V[24] = RHS24 / m_A94; - double tmp23 = 0.0; - V[23] = (RHS23 - tmp23) / m_A88; - double tmp22 = 0.0; - tmp22 += m_A81 * V[23]; - tmp22 += m_A82 * V[24]; - V[22] = (RHS22 - tmp22) / m_A80; - double tmp21 = 0.0; - tmp21 += m_A74 * V[23]; - V[21] = (RHS21 - tmp21) / m_A73; - double tmp20 = 0.0; - tmp20 += m_A67 * V[21]; - tmp20 += m_A68 * V[23]; - V[20] = (RHS20 - tmp20) / m_A66; - double tmp19 = 0.0; - tmp19 += m_A60 * V[22]; - tmp19 += m_A61 * V[23]; - tmp19 += m_A62 * V[24]; - V[19] = (RHS19 - tmp19) / m_A59; - double tmp18 = 0.0; - tmp18 += m_A53 * V[19]; - tmp18 += m_A54 * V[22]; - tmp18 += m_A55 * V[23]; - tmp18 += m_A56 * V[24]; - V[18] = (RHS18 - tmp18) / m_A52; - double tmp17 = 0.0; - tmp17 += m_A46 * V[23]; - V[17] = (RHS17 - tmp17) / m_A45; - double tmp16 = 0.0; - tmp16 += m_A43 * V[18]; - V[16] = (RHS16 - tmp16) / m_A42; - double tmp15 = 0.0; - tmp15 += m_A40 * V[21]; - V[15] = (RHS15 - tmp15) / m_A39; - double tmp14 = 0.0; - V[14] = (RHS14 - tmp14) / m_A37; - double tmp13 = 0.0; - tmp13 += m_A30 * V[18]; - tmp13 += m_A31 * V[22]; - V[13] = (RHS13 - tmp13) / m_A29; - double tmp12 = 0.0; - tmp12 += m_A26 * V[18]; - tmp12 += m_A27 * V[19]; - tmp12 += m_A28 * V[24]; - V[12] = (RHS12 - tmp12) / m_A25; - double tmp11 = 0.0; - tmp11 += m_A24 * V[14]; - V[11] = (RHS11 - tmp11) / m_A23; - double tmp10 = 0.0; - tmp10 += m_A21 * V[20]; - tmp10 += m_A22 * V[23]; - V[10] = (RHS10 - tmp10) / m_A20; + const double f5_26 = -f5 * m_A62; + m_A63 += m_A11 * f5_26; + m_A64 += m_A12 * f5_26; + RHS26 += f5_26 * RHS5; + const double f5_41 = -f5 * m_A152; + m_A155 += m_A11 * f5_41; + m_A158 += m_A12 * f5_41; + RHS41 += f5_41 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_40 = -f6 * m_A140; + m_A143 += m_A14 * f6_40; + RHS40 += f6_40 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_27 = -f7 * m_A66; + m_A68 += m_A16 * f7_27; + RHS27 += f7_27 * RHS7; + const double f7_43 = -f7 * m_A169; + m_A175 += m_A16 * f7_43; + RHS43 += f7_43 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_30 = -f8 * m_A76; + m_A79 += m_A18 * f8_30; + m_A81 += m_A19 * f8_30; + RHS30 += f8_30 * RHS8; + const double f8_40 = -f8 * m_A141; + m_A144 += m_A18 * f8_40; + m_A147 += m_A19 * f8_40; + RHS40 += f8_40 * RHS8; + const double f9 = 1.0 / m_A20; + const double f9_29 = -f9 * m_A73; + m_A74 += m_A21 * f9_29; + RHS29 += f9_29 * RHS9; + const double f10 = 1.0 / m_A22; + const double f10_30 = -f10 * m_A77; + m_A79 += m_A23 * f10_30; + RHS30 += f10_30 * RHS10; + const double f11 = 1.0 / m_A24; + const double f11_30 = -f11 * m_A78; + m_A79 += m_A25 * f11_30; + RHS30 += f11_30 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_36 = -f12 * m_A102; + m_A105 += m_A27 * f12_36; + RHS36 += f12_36 * RHS12; + const double f13 = 1.0 / m_A28; + const double f13_31 = -f13 * m_A82; + m_A84 += m_A29 * f13_31; + RHS31 += f13_31 * RHS13; + const double f13_39 = -f13 * m_A127; + m_A132 += m_A29 * f13_39; + RHS39 += f13_39 * RHS13; + const double f14 = 1.0 / m_A30; + const double f14_28 = -f14 * m_A69; + m_A72 += m_A31 * f14_28; + RHS28 += f14_28 * RHS14; + const double f15 = 1.0 / m_A32; + const double f15_32 = -f15 * m_A86; + m_A89 += m_A33 * f15_32; + RHS32 += f15_32 * RHS15; + const double f15_38 = -f15 * m_A116; + m_A120 += m_A33 * f15_38; + RHS38 += f15_38 * RHS15; + const double f16 = 1.0 / m_A34; + const double f16_31 = -f16 * m_A83; + m_A84 += m_A35 * f16_31; + m_A85 += m_A36 * f16_31; + RHS31 += f16_31 * RHS16; + const double f16_32 = -f16 * m_A87; + m_A88 += m_A35 * f16_32; + m_A89 += m_A36 * f16_32; + RHS32 += f16_32 * RHS16; + const double f17 = 1.0 / m_A37; + const double f17_34 = -f17 * m_A94; + m_A96 += m_A38 * f17_34; + RHS34 += f17_34 * RHS17; + const double f17_39 = -f17 * m_A128; + m_A137 += m_A38 * f17_39; + RHS39 += f17_39 * RHS17; + const double f18 = 1.0 / m_A39; + const double f18_33 = -f18 * m_A90; + m_A91 += m_A40 * f18_33; + m_A92 += m_A41 * f18_33; + RHS33 += f18_33 * RHS18; + const double f18_35 = -f18 * m_A97; + m_A98 += m_A40 * f18_35; + m_A99 += m_A41 * f18_35; + RHS35 += f18_35 * RHS18; + const double f19 = 1.0 / m_A42; + const double f19_36 = -f19 * m_A103; + m_A106 += m_A43 * f19_36; + m_A108 += m_A44 * f19_36; + RHS36 += f19_36 * RHS19; + const double f19_39 = -f19 * m_A129; + m_A135 += m_A43 * f19_39; + m_A137 += m_A44 * f19_39; + RHS39 += f19_39 * RHS19; + const double f20 = 1.0 / m_A45; + const double f20_38 = -f20 * m_A117; + m_A124 += m_A46 * f20_38; + RHS38 += f20_38 * RHS20; + const double f20_42 = -f20 * m_A161; + m_A162 += m_A46 * f20_42; + RHS42 += f20_42 * RHS20; + const double f21 = 1.0 / m_A48; + const double f21_37 = -f21 * m_A111; + RHS37 += f21_37 * RHS21; + const double f22 = 1.0 / m_A49; + const double f22_36 = -f22 * m_A104; + m_A106 += m_A50 * f22_36; + m_A107 += m_A51 * f22_36; + RHS36 += f22_36 * RHS22; + const double f22_38 = -f22 * m_A118; + m_A123 += m_A50 * f22_38; + m_A124 += m_A51 * f22_38; + RHS38 += f22_38 * RHS22; + const double f23 = 1.0 / m_A53; + const double f23_43 = -f23 * m_A170; + RHS43 += f23_43 * RHS23; + const double f24 = 1.0 / m_A55; + const double f24_41 = -f24 * m_A153; + m_A156 += m_A56 * f24_41; + RHS41 += f24_41 * RHS24; + const double f25 = 1.0 / m_A58; + const double f25_37 = -f25 * m_A112; + m_A113 += m_A59 * f25_37; + m_A114 += m_A60 * f25_37; + m_A115 += m_A61 * f25_37; + RHS37 += f25_37 * RHS25; + const double f25_40 = -f25 * m_A142; + m_A145 += m_A59 * f25_40; + m_A147 += m_A60 * f25_40; + m_A148 += m_A61 * f25_40; + RHS40 += f25_40 * RHS25; + const double f25_41 = -f25 * m_A154; + m_A156 += m_A59 * f25_41; + m_A157 += m_A60 * f25_41; + m_A158 += m_A61 * f25_41; + RHS41 += f25_41 * RHS25; + const double f26 = 1.0 / m_A63; + const double f26_41 = -f26 * m_A155; + m_A158 += m_A64 * f26_41; + m_A160 += m_A65 * f26_41; + RHS41 += f26_41 * RHS26; + const double f26_43 = -f26 * m_A171; + m_A173 += m_A64 * f26_43; + m_A175 += m_A65 * f26_43; + RHS43 += f26_43 * RHS26; + const double f27 = 1.0 / m_A67; + const double f27_40 = -f27 * m_A143; + m_A150 += m_A68 * f27_40; + RHS40 += f27_40 * RHS27; + const double f28 = 1.0 / m_A70; + const double f28_38 = -f28 * m_A119; + m_A124 += m_A71 * f28_38; + m_A126 += m_A72 * f28_38; + RHS38 += f28_38 * RHS28; + const double f29 = 1.0 / m_A74; + const double f29_39 = -f29 * m_A130; + m_A137 += m_A75 * f29_39; + RHS39 += f29_39 * RHS29; + const double f30 = 1.0 / m_A79; + const double f30_39 = -f30 * m_A131; + m_A137 += m_A80 * f30_39; + m_A138 += m_A81 * f30_39; + RHS39 += f30_39 * RHS30; + const double f30_40 = -f30 * m_A144; + m_A146 += m_A80 * f30_40; + m_A147 += m_A81 * f30_40; + RHS40 += f30_40 * RHS30; + const double f31 = 1.0 / m_A84; + const double f31_32 = -f31 * m_A88; + m_A89 += m_A85 * f31_32; + RHS32 += f31_32 * RHS31; + const double f31_39 = -f31 * m_A132; + m_A133 += m_A85 * f31_39; + RHS39 += f31_39 * RHS31; + const double f32 = 1.0 / m_A89; + const double f32_38 = -f32 * m_A120; + RHS38 += f32_38 * RHS32; + const double f32_39 = -f32 * m_A133; + RHS39 += f32_39 * RHS32; + const double f33 = 1.0 / m_A91; + const double f33_35 = -f33 * m_A98; + m_A99 += m_A92 * f33_35; + m_A100 += m_A93 * f33_35; + RHS35 += f33_35 * RHS33; + const double f33_38 = -f33 * m_A121; + m_A122 += m_A92 * f33_38; + m_A124 += m_A93 * f33_38; + RHS38 += f33_38 * RHS33; + const double f34 = 1.0 / m_A95; + const double f34_36 = -f34 * m_A105; + m_A108 += m_A96 * f34_36; + RHS36 += f34_36 * RHS34; + const double f35 = 1.0 / m_A99; + const double f35_38 = -f35 * m_A122; + m_A124 += m_A100 * f35_38; + m_A125 += m_A101 * f35_38; + RHS38 += f35_38 * RHS35; + const double f35_39 = -f35 * m_A134; + m_A136 += m_A100 * f35_39; + m_A137 += m_A101 * f35_39; + RHS39 += f35_39 * RHS35; + const double f36 = 1.0 / m_A106; + const double f36_38 = -f36 * m_A123; + m_A124 += m_A107 * f36_38; + m_A125 += m_A108 * f36_38; + RHS38 += f36_38 * RHS36; + const double f36_39 = -f36 * m_A135; + m_A136 += m_A107 * f36_39; + m_A137 += m_A108 * f36_39; + RHS39 += f36_39 * RHS36; + const double f37 = 1.0 / m_A113; + const double f37_40 = -f37 * m_A145; + m_A147 += m_A114 * f37_40; + m_A148 += m_A115 * f37_40; + RHS40 += f37_40 * RHS37; + const double f37_41 = -f37 * m_A156; + m_A157 += m_A114 * f37_41; + m_A158 += m_A115 * f37_41; + RHS41 += f37_41 * RHS37; + const double f38 = 1.0 / m_A124; + const double f38_39 = -f38 * m_A136; + m_A137 += m_A125 * f38_39; + m_A139 += m_A126 * f38_39; + RHS39 += f38_39 * RHS38; + const double f38_42 = -f38 * m_A162; + m_A163 += m_A125 * f38_42; + m_A166 += m_A126 * f38_42; + RHS42 += f38_42 * RHS38; + const double f39 = 1.0 / m_A137; + const double f39_40 = -f39 * m_A146; + m_A147 += m_A138 * f39_40; + m_A149 += m_A139 * f39_40; + RHS40 += f39_40 * RHS39; + const double f39_42 = -f39 * m_A163; + m_A164 += m_A138 * f39_42; + m_A166 += m_A139 * f39_42; + RHS42 += f39_42 * RHS39; + const double f40 = 1.0 / m_A147; + const double f40_41 = -f40 * m_A157; + m_A158 += m_A148 * f40_41; + m_A159 += m_A149 * f40_41; + m_A160 += m_A150 * f40_41; + RHS41 += f40_41 * RHS40; + const double f40_42 = -f40 * m_A164; + m_A165 += m_A148 * f40_42; + m_A166 += m_A149 * f40_42; + m_A167 += m_A150 * f40_42; + RHS42 += f40_42 * RHS40; + const double f40_43 = -f40 * m_A172; + m_A173 += m_A148 * f40_43; + m_A174 += m_A149 * f40_43; + m_A175 += m_A150 * f40_43; + RHS43 += f40_43 * RHS40; + const double f41 = 1.0 / m_A158; + const double f41_42 = -f41 * m_A165; + m_A166 += m_A159 * f41_42; + m_A167 += m_A160 * f41_42; + RHS42 += f41_42 * RHS41; + const double f41_43 = -f41 * m_A173; + m_A174 += m_A159 * f41_43; + m_A175 += m_A160 * f41_43; + RHS43 += f41_43 * RHS41; + const double f42 = 1.0 / m_A166; + const double f42_43 = -f42 * m_A174; + m_A175 += m_A167 * f42_43; + RHS43 += f42_43 * RHS42; + V[43] = RHS43 / m_A175; + double tmp42 = 0.0; + tmp42 += m_A167 * V[43]; + V[42] = (RHS42 - tmp42) / m_A166; + double tmp41 = 0.0; + tmp41 += m_A159 * V[42]; + tmp41 += m_A160 * V[43]; + V[41] = (RHS41 - tmp41) / m_A158; + double tmp40 = 0.0; + tmp40 += m_A148 * V[41]; + tmp40 += m_A149 * V[42]; + tmp40 += m_A150 * V[43]; + V[40] = (RHS40 - tmp40) / m_A147; + double tmp39 = 0.0; + tmp39 += m_A138 * V[40]; + tmp39 += m_A139 * V[42]; + V[39] = (RHS39 - tmp39) / m_A137; + double tmp38 = 0.0; + tmp38 += m_A125 * V[39]; + tmp38 += m_A126 * V[42]; + V[38] = (RHS38 - tmp38) / m_A124; + double tmp37 = 0.0; + tmp37 += m_A114 * V[40]; + tmp37 += m_A115 * V[41]; + V[37] = (RHS37 - tmp37) / m_A113; + double tmp36 = 0.0; + tmp36 += m_A107 * V[38]; + tmp36 += m_A108 * V[39]; + V[36] = (RHS36 - tmp36) / m_A106; + double tmp35 = 0.0; + tmp35 += m_A100 * V[38]; + tmp35 += m_A101 * V[39]; + V[35] = (RHS35 - tmp35) / m_A99; + double tmp34 = 0.0; + tmp34 += m_A96 * V[39]; + V[34] = (RHS34 - tmp34) / m_A95; + double tmp33 = 0.0; + tmp33 += m_A92 * V[35]; + tmp33 += m_A93 * V[38]; + V[33] = (RHS33 - tmp33) / m_A91; + double tmp32 = 0.0; + V[32] = (RHS32 - tmp32) / m_A89; + double tmp31 = 0.0; + tmp31 += m_A85 * V[32]; + V[31] = (RHS31 - tmp31) / m_A84; + double tmp30 = 0.0; + tmp30 += m_A80 * V[39]; + tmp30 += m_A81 * V[40]; + V[30] = (RHS30 - tmp30) / m_A79; + double tmp29 = 0.0; + tmp29 += m_A75 * V[39]; + V[29] = (RHS29 - tmp29) / m_A74; + double tmp28 = 0.0; + tmp28 += m_A71 * V[38]; + tmp28 += m_A72 * V[42]; + V[28] = (RHS28 - tmp28) / m_A70; + double tmp27 = 0.0; + tmp27 += m_A68 * V[43]; + V[27] = (RHS27 - tmp27) / m_A67; + double tmp26 = 0.0; + tmp26 += m_A64 * V[41]; + tmp26 += m_A65 * V[43]; + V[26] = (RHS26 - tmp26) / m_A63; + double tmp25 = 0.0; + tmp25 += m_A59 * V[37]; + tmp25 += m_A60 * V[40]; + tmp25 += m_A61 * V[41]; + V[25] = (RHS25 - tmp25) / m_A58; + double tmp24 = 0.0; + tmp24 += m_A56 * V[37]; + V[24] = (RHS24 - tmp24) / m_A55; + double tmp23 = 0.0; + V[23] = (RHS23 - tmp23) / m_A53; + double tmp22 = 0.0; + tmp22 += m_A50 * V[36]; + tmp22 += m_A51 * V[38]; + V[22] = (RHS22 - tmp22) / m_A49; + double tmp21 = 0.0; + V[21] = (RHS21 - tmp21) / m_A48; + double tmp20 = 0.0; + tmp20 += m_A46 * V[38]; + V[20] = (RHS20 - tmp20) / m_A45; + double tmp19 = 0.0; + tmp19 += m_A43 * V[36]; + tmp19 += m_A44 * V[39]; + V[19] = (RHS19 - tmp19) / m_A42; + double tmp18 = 0.0; + tmp18 += m_A40 * V[33]; + tmp18 += m_A41 * V[35]; + V[18] = (RHS18 - tmp18) / m_A39; + double tmp17 = 0.0; + tmp17 += m_A38 * V[39]; + V[17] = (RHS17 - tmp17) / m_A37; + double tmp16 = 0.0; + tmp16 += m_A35 * V[31]; + tmp16 += m_A36 * V[32]; + V[16] = (RHS16 - tmp16) / m_A34; + double tmp15 = 0.0; + tmp15 += m_A33 * V[32]; + V[15] = (RHS15 - tmp15) / m_A32; + double tmp14 = 0.0; + tmp14 += m_A31 * V[42]; + V[14] = (RHS14 - tmp14) / m_A30; + double tmp13 = 0.0; + tmp13 += m_A29 * V[31]; + V[13] = (RHS13 - tmp13) / m_A28; + double tmp12 = 0.0; + tmp12 += m_A27 * V[34]; + V[12] = (RHS12 - tmp12) / m_A26; + double tmp11 = 0.0; + tmp11 += m_A25 * V[30]; + V[11] = (RHS11 - tmp11) / m_A24; + double tmp10 = 0.0; + tmp10 += m_A23 * V[30]; + V[10] = (RHS10 - tmp10) / m_A22; double tmp9 = 0.0; - tmp9 += m_A19 * V[14]; - V[9] = (RHS9 - tmp9) / m_A18; + tmp9 += m_A21 * V[29]; + V[9] = (RHS9 - tmp9) / m_A20; double tmp8 = 0.0; - tmp8 += m_A17 * V[23]; - V[8] = (RHS8 - tmp8) / m_A16; + tmp8 += m_A18 * V[30]; + tmp8 += m_A19 * V[40]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A15 * V[14]; - V[7] = (RHS7 - tmp7) / m_A14; + tmp7 += m_A16 * V[43]; + V[7] = (RHS7 - tmp7) / m_A15; double tmp6 = 0.0; - tmp6 += m_A13 * V[14]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A14 * V[27]; + V[6] = (RHS6 - tmp6) / m_A13; double tmp5 = 0.0; - tmp5 += m_A11 * V[17]; + tmp5 += m_A11 * V[26]; + tmp5 += m_A12 * V[41]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; + tmp4 += m_A9 * V[23]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[16]; + tmp3 += m_A7 * V[25]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[18]; + tmp2 += m_A5 * V[24]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[15]; + tmp1 += m_A3 * V[37]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; tmp0 += m_A1 * V[21]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_287a160e7c36b5b0_96_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// 280zzzap +static void nl_gcr_24643c159711f292_95_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -2629,567 +3297,560 @@ double m_A92(0.0); double m_A93(0.0); double m_A94(0.0); - double m_A95(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; m_A2 += gt[6]; m_A2 += gt[7]; m_A2 += gt[8]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; + m_A2 += gt[9]; + m_A3 += go[3]; + double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; RHS1 += Idr[8]; - RHS1 -= go[3] * *cnV[3]; + RHS1 += Idr[9]; RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; RHS1 -= go[6] * *cnV[6]; RHS1 -= go[7] * *cnV[7]; RHS1 -= go[8] * *cnV[8]; - m_A4 += gt[9]; + RHS1 -= go[9] * *cnV[9]; m_A4 += gt[10]; - m_A5 += go[9]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[10] * *cnV[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; m_A6 += gt[13]; m_A6 += gt[14]; m_A6 += gt[15]; m_A6 += gt[16]; m_A6 += gt[17]; - m_A7 += go[11]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; + m_A6 += gt[18]; + m_A6 += gt[19]; + m_A7 += go[13]; + double RHS3 = Idr[13]; RHS3 += Idr[14]; RHS3 += Idr[15]; RHS3 += Idr[16]; RHS3 += Idr[17]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; RHS3 -= go[14] * *cnV[14]; RHS3 -= go[15] * *cnV[15]; RHS3 -= go[16] * *cnV[16]; RHS3 -= go[17] * *cnV[17]; - m_A8 += gt[18]; - m_A8 += gt[19]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; m_A8 += gt[20]; m_A8 += gt[21]; - m_A8 += gt[22]; - m_A8 += gt[23]; - m_A8 += gt[24]; - m_A9 += go[18]; - double RHS4 = Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; + m_A9 += go[20]; + double RHS4 = Idr[20]; RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; RHS4 -= go[21] * *cnV[21]; - RHS4 -= go[22] * *cnV[22]; - RHS4 -= go[23] * *cnV[23]; - RHS4 -= go[24] * *cnV[24]; - m_A10 += gt[25]; - m_A10 += gt[26]; - m_A10 += gt[27]; - m_A10 += gt[28]; - m_A10 += gt[29]; - m_A11 += go[25]; - m_A12 += go[26]; - double RHS5 = Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 -= go[27] * *cnV[27]; - RHS5 -= go[28] * *cnV[28]; - RHS5 -= go[29] * *cnV[29]; - m_A13 += gt[30]; - m_A13 += gt[31]; - m_A13 += gt[32]; - m_A14 += go[30]; - double RHS6 = Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 -= go[31] * *cnV[31]; - RHS6 -= go[32] * *cnV[32]; - m_A15 += gt[33]; - m_A15 += gt[34]; - m_A16 += go[33]; - double RHS7 = Idr[33]; - RHS7 += Idr[34]; - RHS7 -= go[34] * *cnV[34]; - m_A17 += gt[35]; - m_A17 += gt[36]; - m_A17 += gt[37]; - m_A18 += go[35]; - double RHS8 = Idr[35]; - RHS8 += Idr[36]; - RHS8 += Idr[37]; - RHS8 -= go[36] * *cnV[36]; - RHS8 -= go[37] * *cnV[37]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A12 += gt[26]; + m_A12 += gt[27]; + m_A13 += go[24]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + m_A14 += gt[28]; + m_A14 += gt[29]; + m_A14 += gt[30]; + m_A14 += gt[31]; + m_A15 += go[28]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 -= go[29] * *cnV[29]; + RHS7 -= go[30] * *cnV[30]; + RHS7 -= go[31] * *cnV[31]; + m_A16 += gt[32]; + m_A16 += gt[33]; + m_A17 += go[32]; + double RHS8 = Idr[32]; + RHS8 += Idr[33]; + RHS8 -= go[33] * *cnV[33]; + m_A18 += gt[34]; + m_A18 += gt[35]; + m_A18 += gt[36]; + m_A18 += gt[37]; + m_A19 += go[34]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[35] * *cnV[35]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; m_A20 += gt[38]; m_A20 += gt[39]; - m_A19 += go[38]; - double RHS9 = Idr[38]; - RHS9 += Idr[39]; - RHS9 -= go[39] * *cnV[39]; - m_A21 += gt[40]; - m_A21 += gt[41]; - m_A21 += gt[42]; - m_A22 += go[40]; - double RHS10 = Idr[40]; - RHS10 += Idr[41]; - RHS10 += Idr[42]; - RHS10 -= go[41] * *cnV[41]; - RHS10 -= go[42] * *cnV[42]; + m_A22 += go[38]; + m_A21 += go[39]; + double RHS10 = Idr[38]; + RHS10 += Idr[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A23 += gt[42]; m_A23 += gt[43]; - m_A23 += gt[44]; - m_A23 += gt[45]; - m_A24 += go[43]; - m_A25 += go[44]; - double RHS11 = Idr[43]; - RHS11 += Idr[44]; - RHS11 += Idr[45]; - RHS11 -= go[45] * *cnV[45]; - m_A26 += gt[46]; - m_A26 += gt[47]; - m_A26 += gt[48]; - m_A27 += go[46]; - double RHS12 = Idr[46]; - RHS12 += Idr[47]; - RHS12 += Idr[48]; - RHS12 -= go[47] * *cnV[47]; - RHS12 -= go[48] * *cnV[48]; - m_A29 += gt[49]; - m_A29 += gt[50]; - m_A28 += go[49]; - double RHS13 = Idr[49]; - RHS13 += Idr[50]; - RHS13 -= go[50] * *cnV[50]; - m_A31 += gt[51]; - m_A31 += gt[52]; - m_A31 += gt[53]; - m_A31 += gt[54]; - m_A31 += gt[55]; - m_A30 += go[51]; + m_A24 += go[40]; + double RHS11 = Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + m_A25 += gt[44]; + m_A25 += gt[45]; + m_A25 += gt[46]; + m_A27 += go[44]; + m_A28 += go[45]; + m_A26 += go[46]; + double RHS12 = Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + m_A29 += gt[47]; + m_A29 += gt[48]; + m_A31 += go[47]; + m_A30 += go[48]; + double RHS13 = Idr[47]; + RHS13 += Idr[48]; + m_A37 += gt[49]; + m_A37 += gt[50]; + m_A37 += gt[51]; + m_A37 += gt[52]; + m_A37 += gt[53]; + m_A37 += gt[54]; + m_A36 += go[49]; + m_A35 += go[50]; + m_A34 += go[51]; m_A33 += go[52]; - double RHS14 = Idr[51]; + m_A32 += go[53]; + double RHS14 = Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; RHS14 += Idr[52]; RHS14 += Idr[53]; RHS14 += Idr[54]; - RHS14 += Idr[55]; - RHS14 -= go[53] * *cnV[53]; RHS14 -= go[54] * *cnV[54]; - RHS14 -= go[55] * *cnV[55]; - m_A35 += gt[56]; - m_A35 += gt[57]; - m_A35 += gt[58]; - m_A37 += go[56]; - m_A34 += go[57]; - double RHS15 = Idr[56]; + m_A39 += gt[55]; + m_A39 += gt[56]; + m_A39 += gt[57]; + m_A39 += gt[58]; + m_A38 += go[55]; + m_A40 += go[56]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; RHS15 += Idr[57]; RHS15 += Idr[58]; + RHS15 -= go[57] * *cnV[57]; RHS15 -= go[58] * *cnV[58]; - m_A39 += gt[59]; - m_A39 += gt[60]; - m_A39 += gt[61]; - m_A39 += gt[62]; - m_A39 += gt[63]; - m_A38 += go[59]; - m_A41 += go[60]; + m_A42 += gt[59]; + m_A42 += gt[60]; + m_A42 += gt[61]; + m_A42 += gt[62]; + m_A41 += go[59]; + m_A43 += go[60]; double RHS16 = Idr[59]; RHS16 += Idr[60]; RHS16 += Idr[61]; RHS16 += Idr[62]; - RHS16 += Idr[63]; RHS16 -= go[61] * *cnV[61]; RHS16 -= go[62] * *cnV[62]; - RHS16 -= go[63] * *cnV[63]; - m_A44 += gt[64]; - m_A44 += gt[65]; - m_A43 += go[64]; - m_A42 += go[65]; - double RHS17 = Idr[64]; + m_A45 += gt[63]; + m_A45 += gt[64]; + m_A45 += gt[65]; + m_A46 += go[63]; + m_A44 += go[64]; + double RHS17 = Idr[63]; + RHS17 += Idr[64]; RHS17 += Idr[65]; - m_A47 += gt[66]; - m_A47 += gt[67]; - m_A47 += gt[68]; - m_A48 += go[66]; - m_A45 += go[67]; + RHS17 -= go[65] * *cnV[65]; + m_A52 += gt[66]; + m_A52 += gt[67]; + m_A52 += gt[68]; + m_A52 += gt[69]; + m_A52 += gt[70]; + m_A52 += gt[71]; + m_A49 += go[66]; + m_A50 += go[67]; + m_A51 += go[68]; + m_A47 += go[69]; + m_A48 += go[70]; double RHS18 = Idr[66]; RHS18 += Idr[67]; RHS18 += Idr[68]; - RHS18 -= go[68] * *cnV[68]; - m_A51 += gt[69]; - m_A51 += gt[70]; - m_A51 += gt[71]; - m_A51 += gt[72]; - m_A52 += go[69]; - m_A50 += go[70]; - double RHS19 = Idr[69]; - RHS19 += Idr[70]; - RHS19 += Idr[71]; - RHS19 += Idr[72]; - RHS19 -= go[71] * *cnV[71]; - RHS19 -= go[72] * *cnV[72]; - m_A54 += gt[73]; - m_A54 += gt[74]; - m_A56 += go[73]; - m_A53 += go[74]; - double RHS20 = Idr[73]; - RHS20 += Idr[74]; - m_A58 += gt[75]; - m_A58 += gt[76]; - m_A58 += gt[77]; - m_A58 += gt[78]; - m_A59 += go[75]; - m_A57 += go[76]; - double RHS21 = Idr[75]; - RHS21 += Idr[76]; - RHS21 += Idr[77]; - RHS21 += Idr[78]; - RHS21 -= go[77] * *cnV[77]; - RHS21 -= go[78] * *cnV[78]; - m_A64 += gt[79]; - m_A64 += gt[80]; - m_A64 += gt[81]; - m_A64 += gt[82]; - m_A64 += gt[83]; - m_A64 += gt[84]; - m_A60 += go[79]; - m_A61 += go[80]; - m_A66 += go[81]; - m_A66 += go[82]; - double RHS22 = Idr[79]; - RHS22 += Idr[80]; - RHS22 += Idr[81]; - RHS22 += Idr[82]; - RHS22 += Idr[83]; - RHS22 += Idr[84]; - RHS22 -= go[83] * *cnV[83]; - RHS22 -= go[84] * *cnV[84]; - m_A73 += gt[85]; - m_A73 += gt[86]; - m_A73 += gt[87]; - m_A73 += gt[88]; - m_A73 += gt[89]; - m_A69 += go[85]; - m_A70 += go[86]; - m_A71 += go[87]; - m_A68 += go[88]; - m_A67 += go[89]; - double RHS23 = Idr[85]; - RHS23 += Idr[86]; - RHS23 += Idr[87]; - RHS23 += Idr[88]; - RHS23 += Idr[89]; - m_A76 += gt[90]; - m_A76 += gt[91]; - m_A76 += gt[92]; - m_A76 += gt[93]; - m_A77 += go[90]; - m_A75 += go[91]; - double RHS24 = Idr[90]; - RHS24 += Idr[91]; - RHS24 += Idr[92]; - RHS24 += Idr[93]; - RHS24 -= go[92] * *cnV[92]; - RHS24 -= go[93] * *cnV[93]; - m_A85 += gt[94]; - m_A85 += gt[95]; - m_A85 += gt[96]; - m_A85 += gt[97]; - m_A85 += gt[98]; - m_A81 += go[94]; - m_A80 += go[95]; - m_A82 += go[96]; - m_A79 += go[97]; - m_A78 += go[98]; - double RHS25 = Idr[94]; - RHS25 += Idr[95]; - RHS25 += Idr[96]; - RHS25 += Idr[97]; - RHS25 += Idr[98]; - m_A95 += gt[99]; - m_A95 += gt[100]; - m_A95 += gt[101]; - m_A95 += gt[102]; - m_A95 += gt[103]; - m_A95 += gt[104]; - m_A95 += gt[105]; - m_A95 += gt[106]; - m_A89 += go[99]; - m_A92 += go[100]; - m_A92 += go[101]; - m_A90 += go[102]; - m_A88 += go[103]; - m_A87 += go[104]; - double RHS26 = Idr[99]; - RHS26 += Idr[100]; - RHS26 += Idr[101]; - RHS26 += Idr[102]; - RHS26 += Idr[103]; - RHS26 += Idr[104]; - RHS26 += Idr[105]; - RHS26 += Idr[106]; - RHS26 -= go[105] * *cnV[105]; - RHS26 -= go[106] * *cnV[106]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 -= go[71] * *cnV[71]; + m_A59 += gt[72]; + m_A59 += gt[73]; + m_A57 += go[72]; + m_A62 += go[73]; + double RHS19 = Idr[72]; + RHS19 += Idr[73]; + m_A66 += gt[74]; + m_A66 += gt[75]; + m_A66 += gt[76]; + m_A66 += gt[77]; + m_A66 += gt[78]; + m_A66 += gt[79]; + m_A63 += go[74]; + m_A64 += go[75]; + m_A68 += go[76]; + m_A67 += go[77]; + double RHS20 = Idr[74]; + RHS20 += Idr[75]; + RHS20 += Idr[76]; + RHS20 += Idr[77]; + RHS20 += Idr[78]; + RHS20 += Idr[79]; + RHS20 -= go[78] * *cnV[78]; + RHS20 -= go[79] * *cnV[79]; + m_A73 += gt[80]; + m_A73 += gt[81]; + m_A73 += gt[82]; + m_A73 += gt[83]; + m_A72 += go[80]; + m_A71 += go[81]; + m_A69 += go[82]; + m_A70 += go[83]; + double RHS21 = Idr[80]; + RHS21 += Idr[81]; + RHS21 += Idr[82]; + RHS21 += Idr[83]; + m_A80 += gt[84]; + m_A80 += gt[85]; + m_A80 += gt[86]; + m_A80 += gt[87]; + m_A80 += gt[88]; + m_A80 += gt[89]; + m_A80 += gt[90]; + m_A80 += gt[91]; + m_A80 += gt[92]; + m_A80 += gt[93]; + m_A80 += gt[94]; + m_A75 += go[84]; + m_A82 += go[85]; + m_A76 += go[86]; + double RHS22 = Idr[84]; + RHS22 += Idr[85]; + RHS22 += Idr[86]; + RHS22 += Idr[87]; + RHS22 += Idr[88]; + RHS22 += Idr[89]; + RHS22 += Idr[90]; + RHS22 += Idr[91]; + RHS22 += Idr[92]; + RHS22 += Idr[93]; + RHS22 += Idr[94]; + RHS22 -= go[87] * *cnV[87]; + RHS22 -= go[88] * *cnV[88]; + RHS22 -= go[89] * *cnV[89]; + RHS22 -= go[90] * *cnV[90]; + RHS22 -= go[91] * *cnV[91]; + RHS22 -= go[92] * *cnV[92]; + RHS22 -= go[93] * *cnV[93]; + RHS22 -= go[94] * *cnV[94]; + m_A88 += gt[95]; + m_A88 += gt[96]; + m_A88 += gt[97]; + m_A88 += gt[98]; + m_A88 += gt[99]; + m_A83 += go[95]; + m_A85 += go[96]; + m_A84 += go[97]; + m_A86 += go[98]; + double RHS23 = Idr[95]; + RHS23 += Idr[96]; + RHS23 += Idr[97]; + RHS23 += Idr[98]; + RHS23 += Idr[99]; + RHS23 -= go[99] * *cnV[99]; + m_A94 += gt[100]; + m_A94 += gt[101]; + m_A94 += gt[102]; + m_A91 += go[100]; + m_A89 += go[101]; + m_A92 += go[102]; + double RHS24 = Idr[100]; + RHS24 += Idr[101]; + RHS24 += Idr[102]; const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A19; - m_A20 += m_A1 * f0_9; - RHS9 += f0_9 * RHS0; - const double f0_23 = -f0 * m_A67; - m_A69 += m_A1 * f0_23; - RHS23 += f0_23 * RHS0; + const double f0_15 = -f0 * m_A38; + m_A40 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f0_21 = -f0 * m_A69; + m_A73 += m_A1 * f0_21; + RHS21 += f0_21 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_16 = -f1 * m_A38; - m_A40 += m_A3 * f1_16; - RHS16 += f1_16 * RHS1; + const double f1_20 = -f1 * m_A63; + m_A65 += m_A3 * f1_20; + RHS20 += f1_20 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_13 = -f2 * m_A28; - m_A29 += m_A5 * f2_13; - RHS13 += f2_13 * RHS2; - const double f2_26 = -f2 * m_A87; - m_A89 += m_A5 * f2_26; - RHS26 += f2_26 * RHS2; + const double f2_16 = -f2 * m_A41; + m_A43 += m_A5 * f2_16; + RHS16 += f2_16 * RHS2; + const double f2_18 = -f2 * m_A47; + m_A52 += m_A5 * f2_18; + RHS18 += f2_18 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_22 = -f3 * m_A60; - m_A63 += m_A7 * f3_22; + const double f3_22 = -f3 * m_A75; + m_A77 += m_A7 * f3_22; RHS22 += f3_22 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_14 = -f4 * m_A30; - m_A32 += m_A9 * f4_14; + const double f4_14 = -f4 * m_A32; + m_A37 += m_A9 * f4_14; RHS14 += f4_14 * RHS4; + const double f4_21 = -f4 * m_A70; + m_A71 += m_A9 * f4_21; + RHS21 += f4_21 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_15 = -f5 * m_A34; - m_A35 += m_A11 * f5_15; - m_A36 += m_A12 * f5_15; - RHS15 += f5_15 * RHS5; - const double f5_18 = -f5 * m_A45; - m_A46 += m_A11 * f5_18; - m_A47 += m_A12 * f5_18; + const double f5_17 = -f5 * m_A44; + m_A45 += m_A11 * f5_17; + RHS17 += f5_17 * RHS5; + const double f5_18 = -f5 * m_A48; + m_A51 += m_A11 * f5_18; RHS18 += f5_18 * RHS5; - const double f6 = 1.0 / m_A13; - const double f6_19 = -f6 * m_A50; - m_A52 += m_A14 * f6_19; - RHS19 += f6_19 * RHS6; - const double f6_23 = -f6 * m_A68; - m_A73 += m_A14 * f6_23; - RHS23 += f6_23 * RHS6; - const double f7 = 1.0 / m_A15; - const double f7_17 = -f7 * m_A42; - m_A44 += m_A16 * f7_17; - RHS17 += f7_17 * RHS7; - const double f7_25 = -f7 * m_A78; - m_A81 += m_A16 * f7_25; - RHS25 += f7_25 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_17 = -f8 * m_A43; - m_A44 += m_A18 * f8_17; - RHS17 += f8_17 * RHS8; - const double f9 = 1.0 / m_A20; - const double f9_23 = -f9 * m_A69; - RHS23 += f9_23 * RHS9; - const double f10 = 1.0 / m_A21; - const double f10_21 = -f10 * m_A57; - m_A59 += m_A22 * f10_21; - RHS21 += f10_21 * RHS10; - const double f10_26 = -f10 * m_A88; - m_A95 += m_A22 * f10_26; - RHS26 += f10_26 * RHS10; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A33; + m_A37 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_14 = -f7 * m_A34; + m_A37 += m_A15 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_23 = -f8 * m_A83; + m_A88 += m_A17 * f8_23; + RHS23 += f8_23 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_14 = -f9 * m_A35; + m_A37 += m_A19 * f9_14; + RHS14 += f9_14 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_20 = -f10 * m_A64; + m_A66 += m_A21 * f10_20; + m_A68 += m_A22 * f10_20; + RHS20 += f10_20 * RHS10; + const double f10_23 = -f10 * m_A84; + m_A86 += m_A21 * f10_23; + m_A88 += m_A22 * f10_23; + RHS23 += f10_23 * RHS10; const double f11 = 1.0 / m_A23; - const double f11_20 = -f11 * m_A53; - m_A54 += m_A24 * f11_20; - m_A55 += m_A25 * f11_20; - RHS20 += f11_20 * RHS11; - const double f11_22 = -f11 * m_A61; - m_A62 += m_A24 * f11_22; - m_A64 += m_A25 * f11_22; - RHS22 += f11_22 * RHS11; - const double f12 = 1.0 / m_A26; - const double f12_24 = -f12 * m_A75; - m_A77 += m_A27 * f12_24; + const double f11_14 = -f11 * m_A36; + m_A37 += m_A24 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A25; + const double f12_18 = -f12 * m_A49; + m_A52 += m_A26 * f12_18; + m_A53 += m_A27 * f12_18; + m_A56 += m_A28 * f12_18; + RHS18 += f12_18 * RHS12; + const double f12_19 = -f12 * m_A57; + m_A58 += m_A26 * f12_19; + m_A59 += m_A27 * f12_19; + m_A62 += m_A28 * f12_19; + RHS19 += f12_19 * RHS12; + const double f12_24 = -f12 * m_A89; + m_A90 += m_A26 * f12_24; + m_A91 += m_A27 * f12_24; + m_A94 += m_A28 * f12_24; RHS24 += f12_24 * RHS12; - const double f12_25 = -f12 * m_A79; - m_A85 += m_A27 * f12_25; - RHS25 += f12_25 * RHS12; const double f13 = 1.0 / m_A29; - const double f13_26 = -f13 * m_A89; - RHS26 += f13_26 * RHS13; - const double f14 = 1.0 / m_A31; - const double f14_25 = -f14 * m_A80; - m_A84 += m_A32 * f14_25; - m_A85 += m_A33 * f14_25; - RHS25 += f14_25 * RHS14; - const double f15 = 1.0 / m_A35; - const double f15_18 = -f15 * m_A46; - m_A47 += m_A36 * f15_18; - m_A49 += m_A37 * f15_18; - RHS18 += f15_18 * RHS15; - const double f15_26 = -f15 * m_A90; - m_A91 += m_A36 * f15_26; - m_A95 += m_A37 * f15_26; - RHS26 += f15_26 * RHS15; - const double f16 = 1.0 / m_A39; - const double f16_23 = -f16 * m_A70; - m_A72 += m_A40 * f16_23; - m_A73 += m_A41 * f16_23; - RHS23 += f16_23 * RHS16; - const double f17 = 1.0 / m_A44; - const double f17_25 = -f17 * m_A81; - RHS25 += f17_25 * RHS17; - const double f18 = 1.0 / m_A47; - const double f18_23 = -f18 * m_A71; - m_A73 += m_A48 * f18_23; - m_A74 += m_A49 * f18_23; - RHS23 += f18_23 * RHS18; - const double f18_26 = -f18 * m_A91; - m_A93 += m_A48 * f18_26; - m_A95 += m_A49 * f18_26; - RHS26 += f18_26 * RHS18; - const double f19 = 1.0 / m_A51; - const double f19_23 = -f19 * m_A72; - m_A73 += m_A52 * f19_23; - RHS23 += f19_23 * RHS19; - const double f20 = 1.0 / m_A54; - const double f20_22 = -f20 * m_A62; - m_A64 += m_A55 * f20_22; - m_A65 += m_A56 * f20_22; - RHS22 += f20_22 * RHS20; - const double f20_25 = -f20 * m_A82; - m_A83 += m_A55 * f20_25; - m_A85 += m_A56 * f20_25; - RHS25 += f20_25 * RHS20; - const double f21 = 1.0 / m_A58; - const double f21_22 = -f21 * m_A63; - m_A66 += m_A59 * f21_22; - RHS22 += f21_22 * RHS21; - const double f22 = 1.0 / m_A64; - const double f22_25 = -f22 * m_A83; - m_A85 += m_A65 * f22_25; - m_A86 += m_A66 * f22_25; - RHS25 += f22_25 * RHS22; - const double f22_26 = -f22 * m_A92; - m_A94 += m_A65 * f22_26; - m_A95 += m_A66 * f22_26; - RHS26 += f22_26 * RHS22; - const double f23 = 1.0 / m_A73; - const double f23_26 = -f23 * m_A93; - m_A95 += m_A74 * f23_26; - RHS26 += f23_26 * RHS23; - const double f24 = 1.0 / m_A76; - const double f24_25 = -f24 * m_A84; - m_A85 += m_A77 * f24_25; - RHS25 += f24_25 * RHS24; - const double f25 = 1.0 / m_A85; - const double f25_26 = -f25 * m_A94; - m_A95 += m_A86 * f25_26; - RHS26 += f25_26 * RHS25; - V[26] = RHS26 / m_A95; - double tmp25 = 0.0; - tmp25 += m_A86 * V[26]; - V[25] = (RHS25 - tmp25) / m_A85; - double tmp24 = 0.0; - tmp24 += m_A77 * V[25]; - V[24] = (RHS24 - tmp24) / m_A76; + const double f13_18 = -f13 * m_A50; + m_A52 += m_A30 * f13_18; + m_A54 += m_A31 * f13_18; + RHS18 += f13_18 * RHS13; + const double f13_22 = -f13 * m_A76; + m_A78 += m_A30 * f13_22; + m_A80 += m_A31 * f13_22; + RHS22 += f13_22 * RHS13; + const double f14 = 1.0 / m_A37; + const double f14_21 = -f14 * m_A71; + RHS21 += f14_21 * RHS14; + const double f15 = 1.0 / m_A39; + const double f15_20 = -f15 * m_A65; + m_A67 += m_A40 * f15_20; + RHS20 += f15_20 * RHS15; + const double f16 = 1.0 / m_A42; + const double f16_22 = -f16 * m_A77; + m_A78 += m_A43 * f16_22; + RHS22 += f16_22 * RHS16; + const double f17 = 1.0 / m_A45; + const double f17_18 = -f17 * m_A51; + m_A55 += m_A46 * f17_18; + RHS18 += f17_18 * RHS17; + const double f17_23 = -f17 * m_A85; + m_A88 += m_A46 * f17_23; + RHS23 += f17_23 * RHS17; + const double f18 = 1.0 / m_A52; + const double f18_19 = -f18 * m_A58; + m_A59 += m_A53 * f18_19; + m_A60 += m_A54 * f18_19; + m_A61 += m_A55 * f18_19; + m_A62 += m_A56 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_22 = -f18 * m_A78; + m_A79 += m_A53 * f18_22; + m_A80 += m_A54 * f18_22; + m_A81 += m_A55 * f18_22; + m_A82 += m_A56 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_24 = -f18 * m_A90; + m_A91 += m_A53 * f18_24; + m_A92 += m_A54 * f18_24; + m_A93 += m_A55 * f18_24; + m_A94 += m_A56 * f18_24; + RHS24 += f18_24 * RHS18; + const double f19 = 1.0 / m_A59; + const double f19_22 = -f19 * m_A79; + m_A80 += m_A60 * f19_22; + m_A81 += m_A61 * f19_22; + m_A82 += m_A62 * f19_22; + RHS22 += f19_22 * RHS19; + const double f19_24 = -f19 * m_A91; + m_A92 += m_A60 * f19_24; + m_A93 += m_A61 * f19_24; + m_A94 += m_A62 * f19_24; + RHS24 += f19_24 * RHS19; + const double f20 = 1.0 / m_A66; + const double f20_21 = -f20 * m_A72; + m_A73 += m_A67 * f20_21; + m_A74 += m_A68 * f20_21; + RHS21 += f20_21 * RHS20; + const double f20_23 = -f20 * m_A86; + m_A87 += m_A67 * f20_23; + m_A88 += m_A68 * f20_23; + RHS23 += f20_23 * RHS20; + const double f21 = 1.0 / m_A73; + const double f21_23 = -f21 * m_A87; + m_A88 += m_A74 * f21_23; + RHS23 += f21_23 * RHS21; + const double f22 = 1.0 / m_A80; + const double f22_24 = -f22 * m_A92; + m_A93 += m_A81 * f22_24; + m_A94 += m_A82 * f22_24; + RHS24 += f22_24 * RHS22; + const double f23 = 1.0 / m_A88; + const double f23_24 = -f23 * m_A93; + RHS24 += f23_24 * RHS23; + V[24] = RHS24 / m_A94; double tmp23 = 0.0; - tmp23 += m_A74 * V[26]; - V[23] = (RHS23 - tmp23) / m_A73; + V[23] = (RHS23 - tmp23) / m_A88; double tmp22 = 0.0; - tmp22 += m_A65 * V[25]; - tmp22 += m_A66 * V[26]; - V[22] = (RHS22 - tmp22) / m_A64; + tmp22 += m_A81 * V[23]; + tmp22 += m_A82 * V[24]; + V[22] = (RHS22 - tmp22) / m_A80; double tmp21 = 0.0; - tmp21 += m_A59 * V[26]; - V[21] = (RHS21 - tmp21) / m_A58; + tmp21 += m_A74 * V[23]; + V[21] = (RHS21 - tmp21) / m_A73; double tmp20 = 0.0; - tmp20 += m_A55 * V[22]; - tmp20 += m_A56 * V[25]; - V[20] = (RHS20 - tmp20) / m_A54; + tmp20 += m_A67 * V[21]; + tmp20 += m_A68 * V[23]; + V[20] = (RHS20 - tmp20) / m_A66; double tmp19 = 0.0; - tmp19 += m_A52 * V[23]; - V[19] = (RHS19 - tmp19) / m_A51; + tmp19 += m_A60 * V[22]; + tmp19 += m_A61 * V[23]; + tmp19 += m_A62 * V[24]; + V[19] = (RHS19 - tmp19) / m_A59; double tmp18 = 0.0; - tmp18 += m_A48 * V[23]; - tmp18 += m_A49 * V[26]; - V[18] = (RHS18 - tmp18) / m_A47; + tmp18 += m_A53 * V[19]; + tmp18 += m_A54 * V[22]; + tmp18 += m_A55 * V[23]; + tmp18 += m_A56 * V[24]; + V[18] = (RHS18 - tmp18) / m_A52; double tmp17 = 0.0; - V[17] = (RHS17 - tmp17) / m_A44; + tmp17 += m_A46 * V[23]; + V[17] = (RHS17 - tmp17) / m_A45; double tmp16 = 0.0; - tmp16 += m_A40 * V[19]; - tmp16 += m_A41 * V[23]; - V[16] = (RHS16 - tmp16) / m_A39; + tmp16 += m_A43 * V[18]; + V[16] = (RHS16 - tmp16) / m_A42; double tmp15 = 0.0; - tmp15 += m_A36 * V[18]; - tmp15 += m_A37 * V[26]; - V[15] = (RHS15 - tmp15) / m_A35; + tmp15 += m_A40 * V[21]; + V[15] = (RHS15 - tmp15) / m_A39; double tmp14 = 0.0; - tmp14 += m_A32 * V[24]; - tmp14 += m_A33 * V[25]; - V[14] = (RHS14 - tmp14) / m_A31; + V[14] = (RHS14 - tmp14) / m_A37; double tmp13 = 0.0; + tmp13 += m_A30 * V[18]; + tmp13 += m_A31 * V[22]; V[13] = (RHS13 - tmp13) / m_A29; double tmp12 = 0.0; - tmp12 += m_A27 * V[25]; - V[12] = (RHS12 - tmp12) / m_A26; + tmp12 += m_A26 * V[18]; + tmp12 += m_A27 * V[19]; + tmp12 += m_A28 * V[24]; + V[12] = (RHS12 - tmp12) / m_A25; double tmp11 = 0.0; - tmp11 += m_A24 * V[20]; - tmp11 += m_A25 * V[22]; + tmp11 += m_A24 * V[14]; V[11] = (RHS11 - tmp11) / m_A23; double tmp10 = 0.0; - tmp10 += m_A22 * V[26]; - V[10] = (RHS10 - tmp10) / m_A21; + tmp10 += m_A21 * V[20]; + tmp10 += m_A22 * V[23]; + V[10] = (RHS10 - tmp10) / m_A20; double tmp9 = 0.0; - V[9] = (RHS9 - tmp9) / m_A20; + tmp9 += m_A19 * V[14]; + V[9] = (RHS9 - tmp9) / m_A18; double tmp8 = 0.0; - tmp8 += m_A18 * V[17]; - V[8] = (RHS8 - tmp8) / m_A17; + tmp8 += m_A17 * V[23]; + V[8] = (RHS8 - tmp8) / m_A16; double tmp7 = 0.0; - tmp7 += m_A16 * V[17]; - V[7] = (RHS7 - tmp7) / m_A15; + tmp7 += m_A15 * V[14]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A14 * V[23]; - V[6] = (RHS6 - tmp6) / m_A13; + tmp6 += m_A13 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[15]; - tmp5 += m_A12 * V[18]; + tmp5 += m_A11 * V[17]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[24]; + tmp4 += m_A9 * V[14]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[21]; + tmp3 += m_A7 * V[16]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[13]; + tmp2 += m_A5 * V[18]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[19]; + tmp1 += m_A3 * V[15]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; + tmp0 += m_A1 * V[21]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_294dde1e0ecca6d0_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// zac1b11142 +static void nl_gcr_287a160e7c36b5b0_96_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -3231,229 +3892,65 @@ double m_A34(0.0); double m_A35(0.0); double m_A36(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A2 += go[0]; - m_A2 += go[1]; - m_A1 += go[2]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[3] * *cnV[3]; - m_A3 += gt[4]; - m_A3 += gt[5]; - m_A3 += gt[6]; - m_A5 += go[4]; - m_A4 += go[5]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A7 += go[7]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; - m_A8 += gt[11]; - m_A8 += gt[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A11 += go[11]; - m_A9 += go[12]; - m_A10 += go[13]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 -= go[14] * *cnV[14]; - m_A14 += gt[15]; - m_A14 += gt[16]; - m_A14 += gt[17]; - m_A14 += gt[18]; - m_A14 += gt[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A13 += go[15]; - m_A16 += go[16]; - m_A16 += go[17]; - m_A16 += go[18]; - m_A12 += go[19]; - double RHS4 = Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 -= go[20] * *cnV[20]; - RHS4 -= go[21] * *cnV[21]; - m_A20 += gt[22]; - m_A20 += gt[23]; - m_A20 += gt[24]; - m_A17 += go[22]; - m_A18 += go[23]; - double RHS5 = Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 -= go[24] * *cnV[24]; - m_A24 += gt[25]; - m_A24 += gt[26]; - m_A24 += gt[27]; - m_A25 += go[25]; - m_A23 += go[26]; - double RHS6 = Idr[25]; - RHS6 += Idr[26]; - RHS6 += Idr[27]; - RHS6 -= go[27] * *cnV[27]; - m_A30 += gt[28]; - m_A30 += gt[29]; - m_A30 += gt[30]; - m_A30 += gt[31]; - m_A30 += gt[32]; - m_A30 += gt[33]; - m_A27 += go[28]; - m_A28 += go[29]; - m_A28 += go[30]; - m_A28 += go[31]; - m_A26 += go[32]; - m_A26 += go[33]; - double RHS7 = Idr[28]; - RHS7 += Idr[29]; - RHS7 += Idr[30]; - RHS7 += Idr[31]; - RHS7 += Idr[32]; - RHS7 += Idr[33]; - m_A36 += gt[34]; - m_A36 += gt[35]; - m_A34 += go[34]; - m_A32 += go[35]; - double RHS8 = Idr[34]; - RHS8 += Idr[35]; - const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A12; - m_A14 += m_A1 * f0_4; - m_A16 += m_A2 * f0_4; - RHS4 += f0_4 * RHS0; - const double f0_7 = -f0 * m_A26; - m_A28 += m_A1 * f0_7; - m_A30 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_4 = -f1 * m_A13; - m_A14 += m_A4 * f1_4; - m_A15 += m_A5 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A17; - m_A19 += m_A4 * f1_5; - m_A20 += m_A5 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_6 = -f2 * m_A23; - m_A24 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_5 = -f3 * m_A18; - m_A20 += m_A9 * f3_5; - m_A21 += m_A10 * f3_5; - m_A22 += m_A11 * f3_5; - RHS5 += f3_5 * RHS3; - const double f3_7 = -f3 * m_A27; - m_A29 += m_A9 * f3_7; - m_A30 += m_A10 * f3_7; - m_A31 += m_A11 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_8 = -f3 * m_A32; - m_A33 += m_A9 * f3_8; - m_A35 += m_A10 * f3_8; - m_A36 += m_A11 * f3_8; - RHS8 += f3_8 * RHS3; - const double f4 = 1.0 / m_A14; - const double f4_5 = -f4 * m_A19; - m_A20 += m_A15 * f4_5; - m_A21 += m_A16 * f4_5; - RHS5 += f4_5 * RHS4; - const double f4_7 = -f4 * m_A28; - m_A29 += m_A15 * f4_7; - m_A30 += m_A16 * f4_7; - RHS7 += f4_7 * RHS4; - const double f5 = 1.0 / m_A20; - const double f5_7 = -f5 * m_A29; - m_A30 += m_A21 * f5_7; - m_A31 += m_A22 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A33; - m_A35 += m_A21 * f5_8; - m_A36 += m_A22 * f5_8; - RHS8 += f5_8 * RHS5; - const double f6 = 1.0 / m_A24; - const double f6_8 = -f6 * m_A34; - m_A36 += m_A25 * f6_8; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A30; - const double f7_8 = -f7 * m_A35; - m_A36 += m_A31 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A36; - double tmp7 = 0.0; - tmp7 += m_A31 * V[8]; - V[7] = (RHS7 - tmp7) / m_A30; - double tmp6 = 0.0; - tmp6 += m_A25 * V[8]; - V[6] = (RHS6 - tmp6) / m_A24; - double tmp5 = 0.0; - tmp5 += m_A21 * V[7]; - tmp5 += m_A22 * V[8]; - V[5] = (RHS5 - tmp5) / m_A20; - double tmp4 = 0.0; - tmp4 += m_A15 * V[5]; - tmp4 += m_A16 * V[7]; - V[4] = (RHS4 - tmp4) / m_A14; - double tmp3 = 0.0; - tmp3 += m_A9 * V[5]; - tmp3 += m_A10 * V[7]; - tmp3 += m_A11 * V[8]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A7 * V[6]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A4 * V[4]; - tmp1 += m_A5 * V[5]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - tmp0 += m_A2 * V[7]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// ripoff -static void nl_gcr_295cf2e2f3d489bf_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -3464,255 +3961,556 @@ m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A4 += go[2]; - m_A3 += go[3]; - m_A3 += go[4]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A3 += go[2]; double RHS1 = Idr[2]; RHS1 += Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A7 += go[6]; - m_A7 += go[7]; - m_A5 += go[8]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; m_A5 += go[9]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; + double RHS2 = Idr[9]; RHS2 += Idr[10]; RHS2 -= go[10] * *cnV[10]; - m_A11 += gt[11]; - m_A11 += gt[12]; - m_A11 += gt[13]; - m_A11 += gt[14]; - m_A11 += gt[15]; - m_A10 += go[11]; - m_A10 += go[12]; - m_A9 += go[13]; - m_A8 += go[14]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A6 += gt[17]; + m_A7 += go[11]; double RHS3 = Idr[11]; RHS3 += Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; RHS3 -= go[15] * *cnV[15]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A11 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - m_A7 += m_A4 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; - double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[3]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// boxingb -static void nl_gcr_2f84bc98d737730b_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A3 += go[6]; - double RHS1 = Idr[6]; - RHS1 += Idr[7]; - RHS1 -= go[7] * *cnV[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A4 += gt[12]; - m_A4 += gt[13]; - m_A4 += gt[14]; - m_A4 += gt[15]; - m_A7 += go[8]; - m_A6 += go[9]; - m_A6 += go[10]; - m_A5 += go[11]; - m_A5 += go[12]; - double RHS2 = Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 += Idr[14]; - RHS2 += Idr[15]; - RHS2 -= go[13] * *cnV[13]; - RHS2 -= go[14] * *cnV[14]; - RHS2 -= go[15] * *cnV[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A10 += gt[19]; - m_A10 += gt[20]; - m_A8 += go[16]; - m_A9 += go[17]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A8 += gt[22]; + m_A8 += gt[23]; + m_A8 += gt[24]; m_A9 += go[18]; - double RHS3 = Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 += Idr[20]; - RHS3 -= go[19] * *cnV[19]; - RHS3 -= go[20] * *cnV[20]; - m_A15 += gt[21]; - m_A15 += gt[22]; - m_A15 += gt[23]; - m_A15 += gt[24]; - m_A15 += gt[25]; - m_A16 += go[21]; - m_A16 += go[22]; - m_A13 += go[23]; - m_A13 += go[24]; - double RHS4 = Idr[21]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; RHS4 += Idr[22]; RHS4 += Idr[23]; RHS4 += Idr[24]; - RHS4 += Idr[25]; - RHS4 -= go[25] * *cnV[25]; - m_A21 += gt[26]; - m_A21 += gt[27]; - m_A21 += gt[28]; - m_A21 += gt[29]; - m_A21 += gt[30]; - m_A20 += go[26]; - m_A20 += go[27]; - m_A18 += go[28]; - m_A17 += go[29]; - double RHS5 = Idr[26]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + m_A10 += gt[25]; + m_A10 += gt[26]; + m_A10 += gt[27]; + m_A10 += gt[28]; + m_A10 += gt[29]; + m_A11 += go[25]; + m_A12 += go[26]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; RHS5 += Idr[27]; RHS5 += Idr[28]; RHS5 += Idr[29]; - RHS5 += Idr[30]; - RHS5 -= go[30] * *cnV[30]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A17; - m_A21 += m_A3 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A9; - m_A10 += m_A5 * f2_3; - m_A11 += m_A6 * f2_3; - m_A12 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - const double f2_4 = -f2 * m_A13; - m_A14 += m_A5 * f2_4; - m_A15 += m_A6 * f2_4; - m_A16 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A18; - m_A19 += m_A5 * f2_5; - m_A20 += m_A6 * f2_5; - m_A21 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_4 = -f3 * m_A14; - m_A15 += m_A11 * f3_4; - m_A16 += m_A12 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A19; - m_A20 += m_A11 * f3_5; - m_A21 += m_A12 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A15; - const double f4_5 = -f4 * m_A20; - m_A21 += m_A16 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A21; + RHS5 -= go[27] * *cnV[27]; + RHS5 -= go[28] * *cnV[28]; + RHS5 -= go[29] * *cnV[29]; + m_A13 += gt[30]; + m_A13 += gt[31]; + m_A13 += gt[32]; + m_A14 += go[30]; + double RHS6 = Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 -= go[31] * *cnV[31]; + RHS6 -= go[32] * *cnV[32]; + m_A15 += gt[33]; + m_A15 += gt[34]; + m_A16 += go[33]; + double RHS7 = Idr[33]; + RHS7 += Idr[34]; + RHS7 -= go[34] * *cnV[34]; + m_A17 += gt[35]; + m_A17 += gt[36]; + m_A17 += gt[37]; + m_A18 += go[35]; + double RHS8 = Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 -= go[36] * *cnV[36]; + RHS8 -= go[37] * *cnV[37]; + m_A20 += gt[38]; + m_A20 += gt[39]; + m_A19 += go[38]; + double RHS9 = Idr[38]; + RHS9 += Idr[39]; + RHS9 -= go[39] * *cnV[39]; + m_A21 += gt[40]; + m_A21 += gt[41]; + m_A21 += gt[42]; + m_A22 += go[40]; + double RHS10 = Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 -= go[41] * *cnV[41]; + RHS10 -= go[42] * *cnV[42]; + m_A23 += gt[43]; + m_A23 += gt[44]; + m_A23 += gt[45]; + m_A24 += go[43]; + m_A25 += go[44]; + double RHS11 = Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 -= go[45] * *cnV[45]; + m_A26 += gt[46]; + m_A26 += gt[47]; + m_A26 += gt[48]; + m_A27 += go[46]; + double RHS12 = Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 -= go[47] * *cnV[47]; + RHS12 -= go[48] * *cnV[48]; + m_A29 += gt[49]; + m_A29 += gt[50]; + m_A28 += go[49]; + double RHS13 = Idr[49]; + RHS13 += Idr[50]; + RHS13 -= go[50] * *cnV[50]; + m_A31 += gt[51]; + m_A31 += gt[52]; + m_A31 += gt[53]; + m_A31 += gt[54]; + m_A31 += gt[55]; + m_A30 += go[51]; + m_A33 += go[52]; + double RHS14 = Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 += Idr[55]; + RHS14 -= go[53] * *cnV[53]; + RHS14 -= go[54] * *cnV[54]; + RHS14 -= go[55] * *cnV[55]; + m_A35 += gt[56]; + m_A35 += gt[57]; + m_A35 += gt[58]; + m_A37 += go[56]; + m_A34 += go[57]; + double RHS15 = Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 -= go[58] * *cnV[58]; + m_A39 += gt[59]; + m_A39 += gt[60]; + m_A39 += gt[61]; + m_A39 += gt[62]; + m_A39 += gt[63]; + m_A38 += go[59]; + m_A41 += go[60]; + double RHS16 = Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[61] * *cnV[61]; + RHS16 -= go[62] * *cnV[62]; + RHS16 -= go[63] * *cnV[63]; + m_A44 += gt[64]; + m_A44 += gt[65]; + m_A43 += go[64]; + m_A42 += go[65]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + m_A47 += gt[66]; + m_A47 += gt[67]; + m_A47 += gt[68]; + m_A48 += go[66]; + m_A45 += go[67]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 -= go[68] * *cnV[68]; + m_A51 += gt[69]; + m_A51 += gt[70]; + m_A51 += gt[71]; + m_A51 += gt[72]; + m_A52 += go[69]; + m_A50 += go[70]; + double RHS19 = Idr[69]; + RHS19 += Idr[70]; + RHS19 += Idr[71]; + RHS19 += Idr[72]; + RHS19 -= go[71] * *cnV[71]; + RHS19 -= go[72] * *cnV[72]; + m_A54 += gt[73]; + m_A54 += gt[74]; + m_A56 += go[73]; + m_A53 += go[74]; + double RHS20 = Idr[73]; + RHS20 += Idr[74]; + m_A58 += gt[75]; + m_A58 += gt[76]; + m_A58 += gt[77]; + m_A58 += gt[78]; + m_A59 += go[75]; + m_A57 += go[76]; + double RHS21 = Idr[75]; + RHS21 += Idr[76]; + RHS21 += Idr[77]; + RHS21 += Idr[78]; + RHS21 -= go[77] * *cnV[77]; + RHS21 -= go[78] * *cnV[78]; + m_A64 += gt[79]; + m_A64 += gt[80]; + m_A64 += gt[81]; + m_A64 += gt[82]; + m_A64 += gt[83]; + m_A64 += gt[84]; + m_A60 += go[79]; + m_A61 += go[80]; + m_A66 += go[81]; + m_A66 += go[82]; + double RHS22 = Idr[79]; + RHS22 += Idr[80]; + RHS22 += Idr[81]; + RHS22 += Idr[82]; + RHS22 += Idr[83]; + RHS22 += Idr[84]; + RHS22 -= go[83] * *cnV[83]; + RHS22 -= go[84] * *cnV[84]; + m_A73 += gt[85]; + m_A73 += gt[86]; + m_A73 += gt[87]; + m_A73 += gt[88]; + m_A73 += gt[89]; + m_A69 += go[85]; + m_A70 += go[86]; + m_A71 += go[87]; + m_A68 += go[88]; + m_A67 += go[89]; + double RHS23 = Idr[85]; + RHS23 += Idr[86]; + RHS23 += Idr[87]; + RHS23 += Idr[88]; + RHS23 += Idr[89]; + m_A76 += gt[90]; + m_A76 += gt[91]; + m_A76 += gt[92]; + m_A76 += gt[93]; + m_A77 += go[90]; + m_A75 += go[91]; + double RHS24 = Idr[90]; + RHS24 += Idr[91]; + RHS24 += Idr[92]; + RHS24 += Idr[93]; + RHS24 -= go[92] * *cnV[92]; + RHS24 -= go[93] * *cnV[93]; + m_A85 += gt[94]; + m_A85 += gt[95]; + m_A85 += gt[96]; + m_A85 += gt[97]; + m_A85 += gt[98]; + m_A81 += go[94]; + m_A80 += go[95]; + m_A82 += go[96]; + m_A79 += go[97]; + m_A78 += go[98]; + double RHS25 = Idr[94]; + RHS25 += Idr[95]; + RHS25 += Idr[96]; + RHS25 += Idr[97]; + RHS25 += Idr[98]; + m_A95 += gt[99]; + m_A95 += gt[100]; + m_A95 += gt[101]; + m_A95 += gt[102]; + m_A95 += gt[103]; + m_A95 += gt[104]; + m_A95 += gt[105]; + m_A95 += gt[106]; + m_A89 += go[99]; + m_A92 += go[100]; + m_A92 += go[101]; + m_A90 += go[102]; + m_A88 += go[103]; + m_A87 += go[104]; + double RHS26 = Idr[99]; + RHS26 += Idr[100]; + RHS26 += Idr[101]; + RHS26 += Idr[102]; + RHS26 += Idr[103]; + RHS26 += Idr[104]; + RHS26 += Idr[105]; + RHS26 += Idr[106]; + RHS26 -= go[105] * *cnV[105]; + RHS26 -= go[106] * *cnV[106]; + const double f0 = 1.0 / m_A0; + const double f0_9 = -f0 * m_A19; + m_A20 += m_A1 * f0_9; + RHS9 += f0_9 * RHS0; + const double f0_23 = -f0 * m_A67; + m_A69 += m_A1 * f0_23; + RHS23 += f0_23 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_16 = -f1 * m_A38; + m_A40 += m_A3 * f1_16; + RHS16 += f1_16 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_13 = -f2 * m_A28; + m_A29 += m_A5 * f2_13; + RHS13 += f2_13 * RHS2; + const double f2_26 = -f2 * m_A87; + m_A89 += m_A5 * f2_26; + RHS26 += f2_26 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_22 = -f3 * m_A60; + m_A63 += m_A7 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_14 = -f4 * m_A30; + m_A32 += m_A9 * f4_14; + RHS14 += f4_14 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_15 = -f5 * m_A34; + m_A35 += m_A11 * f5_15; + m_A36 += m_A12 * f5_15; + RHS15 += f5_15 * RHS5; + const double f5_18 = -f5 * m_A45; + m_A46 += m_A11 * f5_18; + m_A47 += m_A12 * f5_18; + RHS18 += f5_18 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_19 = -f6 * m_A50; + m_A52 += m_A14 * f6_19; + RHS19 += f6_19 * RHS6; + const double f6_23 = -f6 * m_A68; + m_A73 += m_A14 * f6_23; + RHS23 += f6_23 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_17 = -f7 * m_A42; + m_A44 += m_A16 * f7_17; + RHS17 += f7_17 * RHS7; + const double f7_25 = -f7 * m_A78; + m_A81 += m_A16 * f7_25; + RHS25 += f7_25 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_17 = -f8 * m_A43; + m_A44 += m_A18 * f8_17; + RHS17 += f8_17 * RHS8; + const double f9 = 1.0 / m_A20; + const double f9_23 = -f9 * m_A69; + RHS23 += f9_23 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_21 = -f10 * m_A57; + m_A59 += m_A22 * f10_21; + RHS21 += f10_21 * RHS10; + const double f10_26 = -f10 * m_A88; + m_A95 += m_A22 * f10_26; + RHS26 += f10_26 * RHS10; + const double f11 = 1.0 / m_A23; + const double f11_20 = -f11 * m_A53; + m_A54 += m_A24 * f11_20; + m_A55 += m_A25 * f11_20; + RHS20 += f11_20 * RHS11; + const double f11_22 = -f11 * m_A61; + m_A62 += m_A24 * f11_22; + m_A64 += m_A25 * f11_22; + RHS22 += f11_22 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_24 = -f12 * m_A75; + m_A77 += m_A27 * f12_24; + RHS24 += f12_24 * RHS12; + const double f12_25 = -f12 * m_A79; + m_A85 += m_A27 * f12_25; + RHS25 += f12_25 * RHS12; + const double f13 = 1.0 / m_A29; + const double f13_26 = -f13 * m_A89; + RHS26 += f13_26 * RHS13; + const double f14 = 1.0 / m_A31; + const double f14_25 = -f14 * m_A80; + m_A84 += m_A32 * f14_25; + m_A85 += m_A33 * f14_25; + RHS25 += f14_25 * RHS14; + const double f15 = 1.0 / m_A35; + const double f15_18 = -f15 * m_A46; + m_A47 += m_A36 * f15_18; + m_A49 += m_A37 * f15_18; + RHS18 += f15_18 * RHS15; + const double f15_26 = -f15 * m_A90; + m_A91 += m_A36 * f15_26; + m_A95 += m_A37 * f15_26; + RHS26 += f15_26 * RHS15; + const double f16 = 1.0 / m_A39; + const double f16_23 = -f16 * m_A70; + m_A72 += m_A40 * f16_23; + m_A73 += m_A41 * f16_23; + RHS23 += f16_23 * RHS16; + const double f17 = 1.0 / m_A44; + const double f17_25 = -f17 * m_A81; + RHS25 += f17_25 * RHS17; + const double f18 = 1.0 / m_A47; + const double f18_23 = -f18 * m_A71; + m_A73 += m_A48 * f18_23; + m_A74 += m_A49 * f18_23; + RHS23 += f18_23 * RHS18; + const double f18_26 = -f18 * m_A91; + m_A93 += m_A48 * f18_26; + m_A95 += m_A49 * f18_26; + RHS26 += f18_26 * RHS18; + const double f19 = 1.0 / m_A51; + const double f19_23 = -f19 * m_A72; + m_A73 += m_A52 * f19_23; + RHS23 += f19_23 * RHS19; + const double f20 = 1.0 / m_A54; + const double f20_22 = -f20 * m_A62; + m_A64 += m_A55 * f20_22; + m_A65 += m_A56 * f20_22; + RHS22 += f20_22 * RHS20; + const double f20_25 = -f20 * m_A82; + m_A83 += m_A55 * f20_25; + m_A85 += m_A56 * f20_25; + RHS25 += f20_25 * RHS20; + const double f21 = 1.0 / m_A58; + const double f21_22 = -f21 * m_A63; + m_A66 += m_A59 * f21_22; + RHS22 += f21_22 * RHS21; + const double f22 = 1.0 / m_A64; + const double f22_25 = -f22 * m_A83; + m_A85 += m_A65 * f22_25; + m_A86 += m_A66 * f22_25; + RHS25 += f22_25 * RHS22; + const double f22_26 = -f22 * m_A92; + m_A94 += m_A65 * f22_26; + m_A95 += m_A66 * f22_26; + RHS26 += f22_26 * RHS22; + const double f23 = 1.0 / m_A73; + const double f23_26 = -f23 * m_A93; + m_A95 += m_A74 * f23_26; + RHS26 += f23_26 * RHS23; + const double f24 = 1.0 / m_A76; + const double f24_25 = -f24 * m_A84; + m_A85 += m_A77 * f24_25; + RHS25 += f24_25 * RHS24; + const double f25 = 1.0 / m_A85; + const double f25_26 = -f25 * m_A94; + m_A95 += m_A86 * f25_26; + RHS26 += f25_26 * RHS25; + V[26] = RHS26 / m_A95; + double tmp25 = 0.0; + tmp25 += m_A86 * V[26]; + V[25] = (RHS25 - tmp25) / m_A85; + double tmp24 = 0.0; + tmp24 += m_A77 * V[25]; + V[24] = (RHS24 - tmp24) / m_A76; + double tmp23 = 0.0; + tmp23 += m_A74 * V[26]; + V[23] = (RHS23 - tmp23) / m_A73; + double tmp22 = 0.0; + tmp22 += m_A65 * V[25]; + tmp22 += m_A66 * V[26]; + V[22] = (RHS22 - tmp22) / m_A64; + double tmp21 = 0.0; + tmp21 += m_A59 * V[26]; + V[21] = (RHS21 - tmp21) / m_A58; + double tmp20 = 0.0; + tmp20 += m_A55 * V[22]; + tmp20 += m_A56 * V[25]; + V[20] = (RHS20 - tmp20) / m_A54; + double tmp19 = 0.0; + tmp19 += m_A52 * V[23]; + V[19] = (RHS19 - tmp19) / m_A51; + double tmp18 = 0.0; + tmp18 += m_A48 * V[23]; + tmp18 += m_A49 * V[26]; + V[18] = (RHS18 - tmp18) / m_A47; + double tmp17 = 0.0; + V[17] = (RHS17 - tmp17) / m_A44; + double tmp16 = 0.0; + tmp16 += m_A40 * V[19]; + tmp16 += m_A41 * V[23]; + V[16] = (RHS16 - tmp16) / m_A39; + double tmp15 = 0.0; + tmp15 += m_A36 * V[18]; + tmp15 += m_A37 * V[26]; + V[15] = (RHS15 - tmp15) / m_A35; + double tmp14 = 0.0; + tmp14 += m_A32 * V[24]; + tmp14 += m_A33 * V[25]; + V[14] = (RHS14 - tmp14) / m_A31; + double tmp13 = 0.0; + V[13] = (RHS13 - tmp13) / m_A29; + double tmp12 = 0.0; + tmp12 += m_A27 * V[25]; + V[12] = (RHS12 - tmp12) / m_A26; + double tmp11 = 0.0; + tmp11 += m_A24 * V[20]; + tmp11 += m_A25 * V[22]; + V[11] = (RHS11 - tmp11) / m_A23; + double tmp10 = 0.0; + tmp10 += m_A22 * V[26]; + V[10] = (RHS10 - tmp10) / m_A21; + double tmp9 = 0.0; + V[9] = (RHS9 - tmp9) / m_A20; + double tmp8 = 0.0; + tmp8 += m_A18 * V[17]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A16 * V[17]; + V[7] = (RHS7 - tmp7) / m_A15; + double tmp6 = 0.0; + tmp6 += m_A14 * V[23]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A11 * V[15]; + tmp5 += m_A12 * V[18]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A16 * V[5]; - V[4] = (RHS4 - tmp4) / m_A15; + tmp4 += m_A9 * V[24]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A11 * V[4]; - tmp3 += m_A12 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; + tmp3 += m_A7 * V[21]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[5]; + tmp2 += m_A5 * V[13]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; + tmp1 += m_A3 * V[19]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[9]; V[0] = (RHS0 - tmp0) / m_A0; } -// solarq -static void nl_gcr_34e910fc1896999f_76_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// elim +static void nl_gcr_28b736fe552777a9_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -3762,515 +4560,507 @@ double m_A42(0.0); double m_A43(0.0); double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A2 += gt[11]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A11 += go[15]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 -= go[16] * *cnV[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A13 += go[17]; + double RHS6 = Idr[17]; + RHS6 += Idr[18]; + RHS6 -= go[18] * *cnV[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A15 += go[19]; + double RHS7 = Idr[19]; + RHS7 += Idr[20]; + RHS7 += Idr[21]; + RHS7 -= go[20] * *cnV[20]; + RHS7 -= go[21] * *cnV[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A17 += go[22]; + double RHS8 = Idr[22]; + RHS8 += Idr[23]; + RHS8 += Idr[24]; + RHS8 -= go[23] * *cnV[23]; + RHS8 -= go[24] * *cnV[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A19 += go[25]; + double RHS9 = Idr[25]; + RHS9 += Idr[26]; + RHS9 += Idr[27]; + RHS9 -= go[26] * *cnV[26]; + RHS9 -= go[27] * *cnV[27]; + m_A20 += gt[28]; + m_A20 += gt[29]; + m_A22 += go[28]; + m_A21 += go[29]; + double RHS10 = Idr[28]; + RHS10 += Idr[29]; + m_A32 += gt[30]; + m_A32 += gt[31]; + m_A32 += gt[32]; + m_A32 += gt[33]; + m_A32 += gt[34]; + m_A32 += gt[35]; + m_A32 += gt[36]; + m_A32 += gt[37]; + m_A32 += gt[38]; + m_A31 += go[30]; + m_A30 += go[31]; + m_A29 += go[32]; + m_A28 += go[33]; + m_A27 += go[34]; + m_A26 += go[35]; + m_A25 += go[36]; + m_A24 += go[37]; + m_A23 += go[38]; + double RHS11 = Idr[30]; + RHS11 += Idr[31]; + RHS11 += Idr[32]; + RHS11 += Idr[33]; + RHS11 += Idr[34]; + RHS11 += Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + m_A34 += gt[39]; + m_A34 += gt[40]; + m_A35 += go[39]; + double RHS12 = Idr[39]; + RHS12 += Idr[40]; + RHS12 -= go[40] * *cnV[40]; + m_A36 += gt[41]; + m_A36 += gt[42]; + m_A37 += go[41]; + double RHS13 = Idr[41]; + RHS13 += Idr[42]; + RHS13 -= go[42] * *cnV[42]; + m_A44 += gt[43]; + m_A44 += gt[44]; + m_A44 += gt[45]; + m_A44 += gt[46]; + m_A44 += gt[47]; + m_A43 += go[43]; + m_A42 += go[44]; + m_A39 += go[45]; + m_A38 += go[46]; + m_A40 += go[47]; + double RHS14 = Idr[43]; + RHS14 += Idr[44]; + RHS14 += Idr[45]; + RHS14 += Idr[46]; + RHS14 += Idr[47]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A23; + m_A32 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_11 = -f1 * m_A24; + m_A32 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_11 = -f2 * m_A25; + m_A32 += m_A5 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_11 = -f3 * m_A26; + m_A32 += m_A7 * f3_11; + RHS11 += f3_11 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_11 = -f4 * m_A27; + m_A32 += m_A9 * f4_11; + RHS11 += f4_11 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_14 = -f5 * m_A38; + m_A44 += m_A11 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A39; + m_A44 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_11 = -f7 * m_A28; + m_A32 += m_A15 * f7_11; + RHS11 += f7_11 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_11 = -f8 * m_A29; + m_A32 += m_A17 * f8_11; + RHS11 += f8_11 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_11 = -f9 * m_A30; + m_A32 += m_A19 * f9_11; + RHS11 += f9_11 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_11 = -f10 * m_A31; + m_A32 += m_A21 * f10_11; + m_A33 += m_A22 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_14 = -f10 * m_A40; + m_A41 += m_A21 * f10_14; + m_A44 += m_A22 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A32; + const double f11_14 = -f11 * m_A41; + m_A44 += m_A33 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A34; + const double f12_14 = -f12 * m_A42; + m_A44 += m_A35 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A36; + const double f13_14 = -f13 * m_A43; + m_A44 += m_A37 * f13_14; + RHS14 += f13_14 * RHS13; + V[14] = RHS14 / m_A44; + double tmp13 = 0.0; + tmp13 += m_A37 * V[14]; + V[13] = (RHS13 - tmp13) / m_A36; + double tmp12 = 0.0; + tmp12 += m_A35 * V[14]; + V[12] = (RHS12 - tmp12) / m_A34; + double tmp11 = 0.0; + tmp11 += m_A33 * V[14]; + V[11] = (RHS11 - tmp11) / m_A32; + double tmp10 = 0.0; + tmp10 += m_A21 * V[11]; + tmp10 += m_A22 * V[14]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[11]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[11]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[11]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[14]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[11]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[11]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[11]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[11]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[11]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_294dde1e0ecca6d0_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A2 += go[0]; + m_A2 += go[1]; + m_A1 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[3] * *cnV[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; m_A5 += go[4]; m_A4 += go[5]; - m_A4 += go[6]; - m_A3 += go[7]; - m_A3 += go[8]; double RHS1 = Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 += Idr[11]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - RHS1 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A7 += go[12]; - double RHS2 = Idr[12]; - RHS2 += Idr[13]; - RHS2 += Idr[14]; - RHS2 += Idr[15]; - RHS2 -= go[13] * *cnV[13]; - RHS2 -= go[14] * *cnV[14]; - RHS2 -= go[15] * *cnV[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A8 += gt[19]; - m_A8 += gt[20]; - m_A8 += gt[21]; - m_A8 += gt[22]; - m_A8 += gt[23]; - m_A11 += go[16]; - m_A10 += go[17]; - m_A10 += go[18]; - m_A9 += go[19]; - m_A9 += go[20]; - double RHS3 = Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 += Idr[20]; - RHS3 += Idr[21]; - RHS3 += Idr[22]; - RHS3 += Idr[23]; - RHS3 -= go[21] * *cnV[21]; - RHS3 -= go[22] * *cnV[22]; - RHS3 -= go[23] * *cnV[23]; - m_A12 += gt[24]; - m_A12 += gt[25]; - m_A12 += gt[26]; - m_A13 += go[24]; - m_A14 += go[25]; - double RHS4 = Idr[24]; - RHS4 += Idr[25]; - RHS4 += Idr[26]; - RHS4 -= go[26] * *cnV[26]; - m_A15 += gt[27]; - m_A15 += gt[28]; - m_A15 += gt[29]; - m_A15 += gt[30]; - m_A16 += go[27]; - double RHS5 = Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 += Idr[30]; - RHS5 -= go[28] * *cnV[28]; - RHS5 -= go[29] * *cnV[29]; - RHS5 -= go[30] * *cnV[30]; - m_A17 += gt[31]; - m_A17 += gt[32]; - m_A17 += gt[33]; - m_A17 += gt[34]; - m_A17 += gt[35]; - m_A17 += gt[36]; - m_A17 += gt[37]; - m_A17 += gt[38]; - m_A20 += go[31]; - m_A19 += go[32]; - m_A19 += go[33]; - m_A18 += go[34]; - m_A18 += go[35]; - double RHS6 = Idr[31]; - RHS6 += Idr[32]; - RHS6 += Idr[33]; - RHS6 += Idr[34]; - RHS6 += Idr[35]; - RHS6 += Idr[36]; - RHS6 += Idr[37]; - RHS6 += Idr[38]; - RHS6 -= go[36] * *cnV[36]; - RHS6 -= go[37] * *cnV[37]; - RHS6 -= go[38] * *cnV[38]; - m_A21 += gt[39]; - m_A21 += gt[40]; - m_A21 += gt[41]; - m_A23 += go[39]; - m_A22 += go[40]; - double RHS7 = Idr[39]; - RHS7 += Idr[40]; - RHS7 += Idr[41]; - RHS7 -= go[41] * *cnV[41]; - m_A26 += gt[42]; - m_A26 += gt[43]; - m_A26 += gt[44]; - m_A26 += gt[45]; - m_A26 += gt[46]; - m_A26 += gt[47]; - m_A25 += go[42]; - m_A25 += go[43]; - m_A24 += go[44]; - double RHS8 = Idr[42]; - RHS8 += Idr[43]; - RHS8 += Idr[44]; - RHS8 += Idr[45]; - RHS8 += Idr[46]; - RHS8 += Idr[47]; - RHS8 -= go[45] * *cnV[45]; - RHS8 -= go[46] * *cnV[46]; - RHS8 -= go[47] * *cnV[47]; - m_A31 += gt[48]; - m_A31 += gt[49]; - m_A31 += gt[50]; - m_A31 += gt[51]; - m_A31 += gt[52]; - m_A32 += go[48]; - m_A32 += go[49]; - m_A29 += go[50]; - m_A29 += go[51]; - double RHS9 = Idr[48]; - RHS9 += Idr[49]; - RHS9 += Idr[50]; - RHS9 += Idr[51]; - RHS9 += Idr[52]; - RHS9 -= go[52] * *cnV[52]; - m_A35 += gt[53]; - m_A35 += gt[54]; - m_A35 += gt[55]; - m_A35 += gt[56]; - m_A35 += gt[57]; - m_A35 += gt[58]; - m_A34 += go[53]; - m_A34 += go[54]; - m_A33 += go[55]; - double RHS10 = Idr[53]; - RHS10 += Idr[54]; - RHS10 += Idr[55]; - RHS10 += Idr[56]; - RHS10 += Idr[57]; - RHS10 += Idr[58]; - RHS10 -= go[56] * *cnV[56]; - RHS10 -= go[57] * *cnV[57]; - RHS10 -= go[58] * *cnV[58]; - m_A40 += gt[59]; - m_A40 += gt[60]; - m_A40 += gt[61]; - m_A40 += gt[62]; - m_A40 += gt[63]; - m_A40 += gt[64]; - m_A39 += go[59]; - m_A39 += go[60]; - m_A38 += go[61]; - double RHS11 = Idr[59]; - RHS11 += Idr[60]; - RHS11 += Idr[61]; - RHS11 += Idr[62]; - RHS11 += Idr[63]; - RHS11 += Idr[64]; - RHS11 -= go[62] * *cnV[62]; - RHS11 -= go[63] * *cnV[63]; - RHS11 -= go[64] * *cnV[64]; - m_A45 += gt[65]; - m_A45 += gt[66]; - m_A45 += gt[67]; - m_A45 += gt[68]; - m_A45 += gt[69]; - m_A46 += go[65]; - m_A46 += go[66]; - m_A43 += go[67]; - m_A43 += go[68]; - double RHS12 = Idr[65]; - RHS12 += Idr[66]; - RHS12 += Idr[67]; - RHS12 += Idr[68]; - RHS12 += Idr[69]; - RHS12 -= go[69] * *cnV[69]; - m_A49 += gt[70]; - m_A49 += gt[71]; - m_A49 += gt[72]; - m_A49 += gt[73]; - m_A49 += gt[74]; - m_A50 += go[70]; - m_A50 += go[71]; - m_A47 += go[72]; - m_A47 += go[73]; - double RHS13 = Idr[70]; - RHS13 += Idr[71]; - RHS13 += Idr[72]; - RHS13 += Idr[73]; - RHS13 += Idr[74]; - RHS13 -= go[74] * *cnV[74]; - m_A55 += gt[75]; - m_A55 += gt[76]; - m_A55 += gt[77]; - m_A55 += gt[78]; - m_A52 += go[75]; - m_A54 += go[76]; - m_A54 += go[77]; - m_A51 += go[78]; - double RHS14 = Idr[75]; - RHS14 += Idr[76]; - RHS14 += Idr[77]; - RHS14 += Idr[78]; - m_A60 += gt[79]; - m_A60 += gt[80]; - m_A60 += gt[81]; - m_A60 += gt[82]; - m_A58 += go[79]; - m_A57 += go[80]; - m_A62 += go[81]; - double RHS15 = Idr[79]; - RHS15 += Idr[80]; - RHS15 += Idr[81]; - RHS15 += Idr[82]; - RHS15 -= go[82] * *cnV[82]; - m_A68 += gt[83]; - m_A68 += gt[84]; - m_A68 += gt[85]; - m_A68 += gt[86]; - m_A64 += go[83]; - m_A66 += go[84]; - m_A66 += go[85]; - m_A63 += go[86]; - double RHS16 = Idr[83]; - RHS16 += Idr[84]; - RHS16 += Idr[85]; - RHS16 += Idr[86]; - m_A75 += gt[87]; - m_A75 += gt[88]; - m_A75 += gt[89]; - m_A75 += gt[90]; - m_A75 += gt[91]; - m_A72 += go[87]; - m_A72 += go[88]; - m_A70 += go[89]; - m_A73 += go[90]; - double RHS17 = Idr[87]; - RHS17 += Idr[88]; - RHS17 += Idr[89]; - RHS17 += Idr[90]; - RHS17 += Idr[91]; - RHS17 -= go[91] * *cnV[91]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A7 += go[7]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + m_A8 += gt[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A11 += go[11]; + m_A9 += go[12]; + m_A10 += go[13]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A13 += go[15]; + m_A16 += go[16]; + m_A16 += go[17]; + m_A16 += go[18]; + m_A12 += go[19]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A20 += gt[22]; + m_A20 += gt[23]; + m_A20 += gt[24]; + m_A17 += go[22]; + m_A18 += go[23]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 -= go[24] * *cnV[24]; + m_A24 += gt[25]; + m_A24 += gt[26]; + m_A24 += gt[27]; + m_A25 += go[25]; + m_A23 += go[26]; + double RHS6 = Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[27] * *cnV[27]; + m_A30 += gt[28]; + m_A30 += gt[29]; + m_A30 += gt[30]; + m_A30 += gt[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A27 += go[28]; + m_A28 += go[29]; + m_A28 += go[30]; + m_A28 += go[31]; + m_A26 += go[32]; + m_A26 += go[33]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + m_A36 += gt[34]; + m_A36 += gt[35]; + m_A34 += go[34]; + m_A32 += go[35]; + double RHS8 = Idr[34]; + RHS8 += Idr[35]; const double f0 = 1.0 / m_A0; - const double f0_8 = -f0 * m_A24; - m_A26 += m_A1 * f0_8; - RHS8 += f0_8 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_8 = -f1 * m_A25; - m_A26 += m_A3 * f1_8; - m_A27 += m_A4 * f1_8; - m_A28 += m_A5 * f1_8; - RHS8 += f1_8 * RHS1; - const double f1_9 = -f1 * m_A29; - m_A30 += m_A3 * f1_9; - m_A31 += m_A4 * f1_9; - m_A32 += m_A5 * f1_9; - RHS9 += f1_9 * RHS1; - const double f1_17 = -f1 * m_A70; - m_A71 += m_A3 * f1_17; - m_A72 += m_A4 * f1_17; - m_A75 += m_A5 * f1_17; - RHS17 += f1_17 * RHS1; + const double f0_4 = -f0 * m_A12; + m_A14 += m_A1 * f0_4; + m_A16 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f0_7 = -f0 * m_A26; + m_A28 += m_A1 * f0_7; + m_A30 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_4 = -f1 * m_A13; + m_A14 += m_A4 * f1_4; + m_A15 += m_A5 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A17; + m_A19 += m_A4 * f1_5; + m_A20 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; const double f2 = 1.0 / m_A6; - const double f2_10 = -f2 * m_A33; - m_A35 += m_A7 * f2_10; - RHS10 += f2_10 * RHS2; + const double f2_6 = -f2 * m_A23; + m_A24 += m_A7 * f2_6; + RHS6 += f2_6 * RHS2; const double f3 = 1.0 / m_A8; - const double f3_10 = -f3 * m_A34; - m_A35 += m_A9 * f3_10; - m_A36 += m_A10 * f3_10; - m_A37 += m_A11 * f3_10; - RHS10 += f3_10 * RHS3; - const double f3_12 = -f3 * m_A43; - m_A44 += m_A9 * f3_12; - m_A45 += m_A10 * f3_12; - m_A46 += m_A11 * f3_12; - RHS12 += f3_12 * RHS3; - const double f3_14 = -f3 * m_A51; - m_A53 += m_A9 * f3_14; - m_A54 += m_A10 * f3_14; - m_A55 += m_A11 * f3_14; - RHS14 += f3_14 * RHS3; - const double f4 = 1.0 / m_A12; - const double f4_14 = -f4 * m_A52; - m_A55 += m_A13 * f4_14; - m_A56 += m_A14 * f4_14; - RHS14 += f4_14 * RHS4; - const double f4_15 = -f4 * m_A57; - m_A59 += m_A13 * f4_15; - m_A60 += m_A14 * f4_15; - RHS15 += f4_15 * RHS4; - const double f5 = 1.0 / m_A15; - const double f5_11 = -f5 * m_A38; - m_A40 += m_A16 * f5_11; - RHS11 += f5_11 * RHS5; - const double f6 = 1.0 / m_A17; - const double f6_11 = -f6 * m_A39; - m_A40 += m_A18 * f6_11; - m_A41 += m_A19 * f6_11; - m_A42 += m_A20 * f6_11; - RHS11 += f6_11 * RHS6; - const double f6_13 = -f6 * m_A47; - m_A48 += m_A18 * f6_13; - m_A49 += m_A19 * f6_13; - m_A50 += m_A20 * f6_13; - RHS13 += f6_13 * RHS6; - const double f6_16 = -f6 * m_A63; - m_A65 += m_A18 * f6_16; - m_A66 += m_A19 * f6_16; - m_A68 += m_A20 * f6_16; - RHS16 += f6_16 * RHS6; - const double f7 = 1.0 / m_A21; - const double f7_15 = -f7 * m_A58; - m_A60 += m_A22 * f7_15; - m_A61 += m_A23 * f7_15; - RHS15 += f7_15 * RHS7; - const double f7_16 = -f7 * m_A64; - m_A67 += m_A22 * f7_16; - m_A68 += m_A23 * f7_16; - RHS16 += f7_16 * RHS7; - const double f8 = 1.0 / m_A26; - const double f8_9 = -f8 * m_A30; - m_A31 += m_A27 * f8_9; - m_A32 += m_A28 * f8_9; - RHS9 += f8_9 * RHS8; - const double f8_17 = -f8 * m_A71; - m_A72 += m_A27 * f8_17; - m_A75 += m_A28 * f8_17; - RHS17 += f8_17 * RHS8; - const double f9 = 1.0 / m_A31; - const double f9_17 = -f9 * m_A72; - m_A75 += m_A32 * f9_17; - RHS17 += f9_17 * RHS9; - const double f10 = 1.0 / m_A35; - const double f10_12 = -f10 * m_A44; - m_A45 += m_A36 * f10_12; - m_A46 += m_A37 * f10_12; - RHS12 += f10_12 * RHS10; - const double f10_14 = -f10 * m_A53; - m_A54 += m_A36 * f10_14; - m_A55 += m_A37 * f10_14; - RHS14 += f10_14 * RHS10; - const double f11 = 1.0 / m_A40; - const double f11_13 = -f11 * m_A48; - m_A49 += m_A41 * f11_13; - m_A50 += m_A42 * f11_13; - RHS13 += f11_13 * RHS11; - const double f11_16 = -f11 * m_A65; - m_A66 += m_A41 * f11_16; - m_A68 += m_A42 * f11_16; - RHS16 += f11_16 * RHS11; - const double f12 = 1.0 / m_A45; - const double f12_14 = -f12 * m_A54; - m_A55 += m_A46 * f12_14; - RHS14 += f12_14 * RHS12; - const double f13 = 1.0 / m_A49; - const double f13_16 = -f13 * m_A66; - m_A68 += m_A50 * f13_16; - RHS16 += f13_16 * RHS13; - const double f14 = 1.0 / m_A55; - const double f14_15 = -f14 * m_A59; - m_A60 += m_A56 * f14_15; - RHS15 += f14_15 * RHS14; - const double f15 = 1.0 / m_A60; - const double f15_16 = -f15 * m_A67; - m_A68 += m_A61 * f15_16; - m_A69 += m_A62 * f15_16; - RHS16 += f15_16 * RHS15; - const double f15_17 = -f15 * m_A73; - m_A74 += m_A61 * f15_17; - m_A75 += m_A62 * f15_17; - RHS17 += f15_17 * RHS15; - const double f16 = 1.0 / m_A68; - const double f16_17 = -f16 * m_A74; - m_A75 += m_A69 * f16_17; - RHS17 += f16_17 * RHS16; - V[17] = RHS17 / m_A75; - double tmp16 = 0.0; - tmp16 += m_A69 * V[17]; - V[16] = (RHS16 - tmp16) / m_A68; - double tmp15 = 0.0; - tmp15 += m_A61 * V[16]; - tmp15 += m_A62 * V[17]; - V[15] = (RHS15 - tmp15) / m_A60; - double tmp14 = 0.0; - tmp14 += m_A56 * V[15]; - V[14] = (RHS14 - tmp14) / m_A55; - double tmp13 = 0.0; - tmp13 += m_A50 * V[16]; - V[13] = (RHS13 - tmp13) / m_A49; - double tmp12 = 0.0; - tmp12 += m_A46 * V[14]; - V[12] = (RHS12 - tmp12) / m_A45; - double tmp11 = 0.0; - tmp11 += m_A41 * V[13]; - tmp11 += m_A42 * V[16]; - V[11] = (RHS11 - tmp11) / m_A40; - double tmp10 = 0.0; - tmp10 += m_A36 * V[12]; - tmp10 += m_A37 * V[14]; - V[10] = (RHS10 - tmp10) / m_A35; - double tmp9 = 0.0; - tmp9 += m_A32 * V[17]; - V[9] = (RHS9 - tmp9) / m_A31; - double tmp8 = 0.0; - tmp8 += m_A27 * V[9]; - tmp8 += m_A28 * V[17]; - V[8] = (RHS8 - tmp8) / m_A26; + const double f3_5 = -f3 * m_A18; + m_A20 += m_A9 * f3_5; + m_A21 += m_A10 * f3_5; + m_A22 += m_A11 * f3_5; + RHS5 += f3_5 * RHS3; + const double f3_7 = -f3 * m_A27; + m_A29 += m_A9 * f3_7; + m_A30 += m_A10 * f3_7; + m_A31 += m_A11 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_8 = -f3 * m_A32; + m_A33 += m_A9 * f3_8; + m_A35 += m_A10 * f3_8; + m_A36 += m_A11 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A19; + m_A20 += m_A15 * f4_5; + m_A21 += m_A16 * f4_5; + RHS5 += f4_5 * RHS4; + const double f4_7 = -f4 * m_A28; + m_A29 += m_A15 * f4_7; + m_A30 += m_A16 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A20; + const double f5_7 = -f5 * m_A29; + m_A30 += m_A21 * f5_7; + m_A31 += m_A22 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A33; + m_A35 += m_A21 * f5_8; + m_A36 += m_A22 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A24; + const double f6_8 = -f6 * m_A34; + m_A36 += m_A25 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A30; + const double f7_8 = -f7 * m_A35; + m_A36 += m_A31 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A36; double tmp7 = 0.0; - tmp7 += m_A22 * V[15]; - tmp7 += m_A23 * V[16]; - V[7] = (RHS7 - tmp7) / m_A21; + tmp7 += m_A31 * V[8]; + V[7] = (RHS7 - tmp7) / m_A30; double tmp6 = 0.0; - tmp6 += m_A18 * V[11]; - tmp6 += m_A19 * V[13]; - tmp6 += m_A20 * V[16]; - V[6] = (RHS6 - tmp6) / m_A17; + tmp6 += m_A25 * V[8]; + V[6] = (RHS6 - tmp6) / m_A24; double tmp5 = 0.0; - tmp5 += m_A16 * V[11]; - V[5] = (RHS5 - tmp5) / m_A15; + tmp5 += m_A21 * V[7]; + tmp5 += m_A22 * V[8]; + V[5] = (RHS5 - tmp5) / m_A20; double tmp4 = 0.0; - tmp4 += m_A13 * V[14]; - tmp4 += m_A14 * V[15]; - V[4] = (RHS4 - tmp4) / m_A12; + tmp4 += m_A15 * V[5]; + tmp4 += m_A16 * V[7]; + V[4] = (RHS4 - tmp4) / m_A14; double tmp3 = 0.0; - tmp3 += m_A9 * V[10]; - tmp3 += m_A10 * V[12]; - tmp3 += m_A11 * V[14]; + tmp3 += m_A9 * V[5]; + tmp3 += m_A10 * V[7]; + tmp3 += m_A11 * V[8]; V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A7 * V[10]; + tmp2 += m_A7 * V[6]; V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[8]; - tmp1 += m_A4 * V[9]; - tmp1 += m_A5 * V[17]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[4]; + tmp1 += m_A5 * V[5]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[8]; + tmp0 += m_A1 * V[4]; + tmp0 += m_A2 * V[7]; V[0] = (RHS0 - tmp0) / m_A0; } -// warrior -static void nl_gcr_42a31ce5c187b308_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// ripoff +static void nl_gcr_295cf2e2f3d489bf_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -4289,63 +5079,84 @@ double m_A11(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[2]; m_A2 += gt[3]; m_A2 += gt[4]; - m_A4 += go[3]; + m_A2 += gt[5]; + m_A4 += go[2]; + m_A3 += go[3]; m_A3 += go[4]; - double RHS1 = Idr[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; RHS1 += Idr[4]; - m_A7 += gt[5]; - m_A7 += gt[6]; - m_A7 += gt[7]; - m_A6 += go[5]; - m_A5 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A7 += go[6]; + m_A7 += go[7]; + m_A5 += go[8]; + m_A5 += go[9]; + double RHS2 = Idr[6]; RHS2 += Idr[7]; - RHS2 -= go[7] * *cnV[7]; - m_A11 += gt[8]; - m_A9 += go[8]; - double RHS3 = Idr[8]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A11 += gt[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A10 += go[11]; + m_A10 += go[12]; + m_A9 += go[13]; + m_A8 += go[14]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[15] * *cnV[15]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A7 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_3 = -f0 * m_A8; + m_A11 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A6; - m_A7 += m_A3 * f1_2; - m_A8 += m_A4 * f1_2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + m_A7 += m_A4 * f1_2; RHS2 += f1_2 * RHS1; const double f1_3 = -f1 * m_A9; m_A10 += m_A3 * f1_3; m_A11 += m_A4 * f1_3; RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A7; + const double f2 = 1.0 / m_A6; const double f2_3 = -f2 * m_A10; - m_A11 += m_A8 * f2_3; + m_A11 += m_A7 * f2_3; RHS3 += f2_3 * RHS2; V[3] = RHS3 / m_A11; double tmp2 = 0.0; - tmp2 += m_A8 * V[3]; - V[2] = (RHS2 - tmp2) / m_A7; + tmp2 += m_A7 * V[3]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; tmp1 += m_A3 * V[2]; tmp1 += m_A4 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_42c57d523cac30d0_122_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// spacfury +static void nl_gcr_2a153513d3e8e2cc_53_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -4403,96 +5214,27 @@ double m_A50(0.0); double m_A51(0.0); double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); - double m_A76(0.0); - double m_A77(0.0); - double m_A78(0.0); - double m_A79(0.0); - double m_A80(0.0); - double m_A81(0.0); - double m_A82(0.0); - double m_A83(0.0); - double m_A84(0.0); - double m_A85(0.0); - double m_A86(0.0); - double m_A87(0.0); - double m_A88(0.0); - double m_A89(0.0); - double m_A90(0.0); - double m_A91(0.0); - double m_A92(0.0); - double m_A93(0.0); - double m_A94(0.0); - double m_A95(0.0); - double m_A96(0.0); - double m_A97(0.0); - double m_A98(0.0); - double m_A99(0.0); - double m_A100(0.0); - double m_A101(0.0); - double m_A102(0.0); - double m_A103(0.0); - double m_A104(0.0); - double m_A105(0.0); - double m_A106(0.0); - double m_A107(0.0); - double m_A108(0.0); - double m_A109(0.0); - double m_A110(0.0); - double m_A111(0.0); - double m_A112(0.0); - double m_A113(0.0); - double m_A114(0.0); - double m_A115(0.0); - double m_A116(0.0); - double m_A117(0.0); - double m_A118(0.0); - double m_A119(0.0); - double m_A120(0.0); - double m_A121(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A4 += gt[6]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[3]; m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 += Idr[6]; - RHS2 -= go[5] * *cnV[5]; - RHS2 -= go[6] * *cnV[6]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; m_A6 += gt[7]; m_A6 += gt[8]; m_A6 += gt[9]; @@ -4501,642 +5243,271 @@ m_A6 += gt[12]; m_A6 += gt[13]; m_A7 += go[7]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - RHS3 += Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 -= go[8] * *cnV[8]; - RHS3 -= go[9] * *cnV[9]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A9 += go[14]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - RHS4 -= go[15] * *cnV[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A10 += gt[19]; - m_A12 += go[16]; - m_A13 += go[17]; - m_A11 += go[18]; - double RHS5 = Idr[16]; - RHS5 += Idr[17]; - RHS5 += Idr[18]; - RHS5 += Idr[19]; - RHS5 -= go[19] * *cnV[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A14 += gt[22]; - m_A14 += gt[23]; - m_A14 += gt[24]; - m_A14 += gt[25]; - m_A14 += gt[26]; - m_A15 += go[20]; - double RHS6 = Idr[20]; - RHS6 += Idr[21]; - RHS6 += Idr[22]; + m_A8 += go[8]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A11 += go[14]; + m_A10 += go[15]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[16] * *cnV[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A14 += go[17]; + m_A13 += go[18]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 -= go[19] * *cnV[19]; + m_A17 += gt[20]; + m_A17 += gt[21]; + m_A16 += go[20]; + m_A15 += go[21]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + m_A22 += gt[22]; + m_A22 += gt[23]; + m_A22 += gt[24]; + m_A22 += gt[25]; + m_A22 += gt[26]; + m_A23 += go[22]; + m_A20 += go[23]; + double RHS6 = Idr[22]; RHS6 += Idr[23]; RHS6 += Idr[24]; RHS6 += Idr[25]; RHS6 += Idr[26]; - RHS6 -= go[21] * *cnV[21]; - RHS6 -= go[22] * *cnV[22]; - RHS6 -= go[23] * *cnV[23]; RHS6 -= go[24] * *cnV[24]; RHS6 -= go[25] * *cnV[25]; RHS6 -= go[26] * *cnV[26]; - m_A16 += gt[27]; - m_A16 += gt[28]; - m_A18 += go[27]; - m_A17 += go[28]; + m_A27 += gt[27]; + m_A27 += gt[28]; + m_A27 += gt[29]; + m_A27 += gt[30]; + m_A27 += gt[31]; + m_A24 += go[27]; + m_A25 += go[28]; + m_A29 += go[29]; double RHS7 = Idr[27]; RHS7 += Idr[28]; - m_A19 += gt[29]; - m_A19 += gt[30]; - m_A19 += gt[31]; - m_A20 += go[29]; - double RHS8 = Idr[29]; - RHS8 += Idr[30]; - RHS8 += Idr[31]; - RHS8 -= go[30] * *cnV[30]; - RHS8 -= go[31] * *cnV[31]; - m_A21 += gt[32]; - m_A21 += gt[33]; - m_A22 += go[32]; - double RHS9 = Idr[32]; - RHS9 += Idr[33]; - RHS9 -= go[33] * *cnV[33]; - m_A23 += gt[34]; - m_A23 += gt[35]; - m_A23 += gt[36]; - m_A24 += go[34]; - m_A25 += go[35]; - m_A25 += go[36]; - double RHS10 = Idr[34]; - RHS10 += Idr[35]; - RHS10 += Idr[36]; - m_A26 += gt[37]; - m_A26 += gt[38]; - m_A26 += gt[39]; - m_A26 += gt[40]; - m_A26 += gt[41]; - m_A26 += gt[42]; - m_A26 += gt[43]; - m_A27 += go[37]; - double RHS11 = Idr[37]; - RHS11 += Idr[38]; - RHS11 += Idr[39]; - RHS11 += Idr[40]; - RHS11 += Idr[41]; - RHS11 += Idr[42]; - RHS11 += Idr[43]; - RHS11 -= go[38] * *cnV[38]; - RHS11 -= go[39] * *cnV[39]; - RHS11 -= go[40] * *cnV[40]; - RHS11 -= go[41] * *cnV[41]; - RHS11 -= go[42] * *cnV[42]; - RHS11 -= go[43] * *cnV[43]; - m_A28 += gt[44]; - m_A28 += gt[45]; - m_A28 += gt[46]; - m_A29 += go[44]; - double RHS12 = Idr[44]; - RHS12 += Idr[45]; - RHS12 += Idr[46]; - RHS12 -= go[45] * *cnV[45]; - RHS12 -= go[46] * *cnV[46]; - m_A30 += gt[47]; - m_A30 += gt[48]; - m_A30 += gt[49]; - m_A30 += gt[50]; - m_A32 += go[47]; - m_A31 += go[48]; - m_A33 += go[49]; - double RHS13 = Idr[47]; - RHS13 += Idr[48]; - RHS13 += Idr[49]; - RHS13 += Idr[50]; - RHS13 -= go[50] * *cnV[50]; - m_A35 += gt[51]; - m_A35 += gt[52]; - m_A34 += go[51]; - double RHS14 = Idr[51]; - RHS14 += Idr[52]; - RHS14 -= go[52] * *cnV[52]; - m_A37 += gt[53]; - m_A37 += gt[54]; - m_A37 += gt[55]; - m_A37 += gt[56]; - m_A36 += go[53]; - m_A38 += go[54]; - double RHS15 = Idr[53]; - RHS15 += Idr[54]; - RHS15 += Idr[55]; - RHS15 += Idr[56]; - RHS15 -= go[55] * *cnV[55]; - RHS15 -= go[56] * *cnV[56]; - m_A40 += gt[57]; - m_A40 += gt[58]; - m_A39 += go[57]; - double RHS16 = Idr[57]; - RHS16 += Idr[58]; - RHS16 -= go[58] * *cnV[58]; - m_A43 += gt[59]; - m_A43 += gt[60]; - m_A41 += go[59]; - m_A42 += go[60]; - double RHS17 = Idr[59]; - RHS17 += Idr[60]; - m_A47 += gt[61]; - m_A47 += gt[62]; - m_A47 += gt[63]; - m_A47 += gt[64]; - m_A47 += gt[65]; - m_A46 += go[61]; - m_A49 += go[62]; - m_A50 += go[63]; - double RHS18 = Idr[61]; - RHS18 += Idr[62]; - RHS18 += Idr[63]; - RHS18 += Idr[64]; - RHS18 += Idr[65]; - RHS18 -= go[64] * *cnV[64]; - RHS18 -= go[65] * *cnV[65]; - m_A52 += gt[66]; - m_A52 += gt[67]; - m_A51 += go[66]; - double RHS19 = Idr[66]; - RHS19 += Idr[67]; - RHS19 -= go[67] * *cnV[67]; - m_A55 += gt[68]; - m_A55 += gt[69]; - m_A54 += go[68]; - m_A53 += go[69]; - double RHS20 = Idr[68]; - RHS20 += Idr[69]; - m_A60 += gt[70]; - m_A60 += gt[71]; - m_A60 += gt[72]; - m_A60 += gt[73]; - m_A59 += go[70]; - m_A61 += go[71]; - double RHS21 = Idr[70]; - RHS21 += Idr[71]; - RHS21 += Idr[72]; - RHS21 += Idr[73]; - RHS21 -= go[72] * *cnV[72]; - RHS21 -= go[73] * *cnV[73]; - m_A69 += gt[74]; - m_A69 += gt[75]; - m_A69 += gt[76]; - m_A69 += gt[77]; - m_A69 += gt[78]; - m_A69 += gt[79]; - m_A69 += gt[80]; - m_A69 += gt[81]; - m_A69 += gt[82]; - m_A62 += go[74]; - m_A65 += go[75]; - m_A65 += go[76]; - m_A64 += go[77]; - m_A63 += go[78]; - m_A71 += go[79]; - double RHS22 = Idr[74]; - RHS22 += Idr[75]; - RHS22 += Idr[76]; - RHS22 += Idr[77]; - RHS22 += Idr[78]; - RHS22 += Idr[79]; - RHS22 += Idr[80]; - RHS22 += Idr[81]; - RHS22 += Idr[82]; - RHS22 -= go[80] * *cnV[80]; - RHS22 -= go[81] * *cnV[81]; - RHS22 -= go[82] * *cnV[82]; - m_A75 += gt[83]; - m_A75 += gt[84]; - m_A75 += gt[85]; - m_A75 += gt[86]; - m_A74 += go[83]; - m_A76 += go[84]; - double RHS23 = Idr[83]; - RHS23 += Idr[84]; - RHS23 += Idr[85]; - RHS23 += Idr[86]; - RHS23 -= go[85] * *cnV[85]; - RHS23 -= go[86] * *cnV[86]; - m_A82 += gt[87]; - m_A82 += gt[88]; - m_A82 += gt[89]; - m_A82 += gt[90]; - m_A82 += gt[91]; - m_A82 += gt[92]; - m_A77 += go[87]; - m_A78 += go[88]; - m_A84 += go[89]; - double RHS24 = Idr[87]; - RHS24 += Idr[88]; - RHS24 += Idr[89]; - RHS24 += Idr[90]; - RHS24 += Idr[91]; - RHS24 += Idr[92]; - RHS24 -= go[90] * *cnV[90]; - RHS24 -= go[91] * *cnV[91]; - RHS24 -= go[92] * *cnV[92]; - m_A93 += gt[93]; - m_A93 += gt[94]; - m_A93 += gt[95]; - m_A93 += gt[96]; - m_A93 += gt[97]; - m_A91 += go[93]; - m_A89 += go[94]; - m_A88 += go[95]; - m_A87 += go[96]; - m_A86 += go[97]; - double RHS25 = Idr[93]; - RHS25 += Idr[94]; - RHS25 += Idr[95]; - RHS25 += Idr[96]; - RHS25 += Idr[97]; - m_A104 += gt[98]; - m_A104 += gt[99]; - m_A104 += gt[100]; - m_A104 += gt[101]; - m_A104 += gt[102]; - m_A102 += go[98]; - m_A99 += go[99]; - m_A98 += go[100]; - m_A97 += go[101]; - m_A96 += go[102]; - double RHS26 = Idr[98]; - RHS26 += Idr[99]; - RHS26 += Idr[100]; - RHS26 += Idr[101]; - RHS26 += Idr[102]; - m_A113 += gt[103]; - m_A113 += gt[104]; - m_A113 += gt[105]; - m_A113 += gt[106]; - m_A107 += go[103]; - m_A106 += go[104]; - m_A114 += go[105]; - double RHS27 = Idr[103]; - RHS27 += Idr[104]; - RHS27 += Idr[105]; - RHS27 += Idr[106]; - RHS27 -= go[106] * *cnV[106]; - m_A121 += gt[107]; - m_A121 += gt[108]; - m_A121 += gt[109]; - m_A121 += gt[110]; - m_A121 += gt[111]; - m_A118 += go[107]; - m_A117 += go[108]; - m_A120 += go[109]; - m_A116 += go[110]; - m_A115 += go[111]; - double RHS28 = Idr[107]; - RHS28 += Idr[108]; - RHS28 += Idr[109]; - RHS28 += Idr[110]; - RHS28 += Idr[111]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 -= go[30] * *cnV[30]; + RHS7 -= go[31] * *cnV[31]; + m_A33 += gt[32]; + m_A33 += gt[33]; + m_A33 += gt[34]; + m_A31 += go[32]; + m_A35 += go[33]; + m_A30 += go[34]; + double RHS8 = Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + m_A38 += gt[35]; + m_A38 += gt[36]; + m_A38 += gt[37]; + m_A38 += gt[38]; + m_A38 += gt[39]; + m_A38 += gt[40]; + m_A38 += gt[41]; + m_A36 += go[35]; + m_A40 += go[36]; + double RHS9 = Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 += Idr[38]; + RHS9 += Idr[39]; + RHS9 += Idr[40]; + RHS9 += Idr[41]; + RHS9 -= go[37] * *cnV[37]; + RHS9 -= go[38] * *cnV[38]; + RHS9 -= go[39] * *cnV[39]; + RHS9 -= go[40] * *cnV[40]; + RHS9 -= go[41] * *cnV[41]; + m_A46 += gt[42]; + m_A46 += gt[43]; + m_A46 += gt[44]; + m_A44 += go[42]; + m_A43 += go[43]; + m_A41 += go[44]; + double RHS10 = Idr[42]; + RHS10 += Idr[43]; + RHS10 += Idr[44]; + m_A52 += gt[45]; + m_A52 += gt[46]; + m_A52 += gt[47]; + m_A52 += gt[48]; + m_A52 += gt[49]; + m_A52 += gt[50]; + m_A50 += go[45]; + m_A48 += go[46]; + m_A49 += go[47]; + double RHS11 = Idr[45]; + RHS11 += Idr[46]; + RHS11 += Idr[47]; + RHS11 += Idr[48]; + RHS11 += Idr[49]; + RHS11 += Idr[50]; + RHS11 -= go[48] * *cnV[48]; + RHS11 -= go[49] * *cnV[49]; + RHS11 -= go[50] * *cnV[50]; const double f0 = 1.0 / m_A0; - const double f0_17 = -f0 * m_A41; - m_A43 += m_A1 * f0_17; - RHS17 += f0_17 * RHS0; + const double f0_5 = -f0 * m_A15; + m_A17 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_14 = -f1 * m_A34; - m_A35 += m_A3 * f1_14; - RHS14 += f1_14 * RHS1; - const double f1_25 = -f1 * m_A86; - m_A89 += m_A3 * f1_25; - RHS25 += f1_25 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_15 = -f2 * m_A36; - m_A38 += m_A5 * f2_15; - RHS15 += f2_15 * RHS2; - const double f2_25 = -f2 * m_A87; - m_A93 += m_A5 * f2_25; - RHS25 += f2_25 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_22 = -f3 * m_A62; - m_A66 += m_A7 * f3_22; - RHS22 += f3_22 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_16 = -f4 * m_A39; - m_A40 += m_A9 * f4_16; - RHS16 += f4_16 * RHS4; - const double f4_28 = -f4 * m_A115; - m_A117 += m_A9 * f4_28; - RHS28 += f4_28 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_17 = -f5 * m_A42; - m_A43 += m_A11 * f5_17; - m_A44 += m_A12 * f5_17; - m_A45 += m_A13 * f5_17; - RHS17 += f5_17 * RHS5; - const double f5_22 = -f5 * m_A63; - m_A67 += m_A11 * f5_22; - m_A69 += m_A12 * f5_22; - m_A71 += m_A13 * f5_22; - RHS22 += f5_22 * RHS5; - const double f5_25 = -f5 * m_A88; - m_A90 += m_A11 * f5_25; - m_A91 += m_A12 * f5_25; - m_A93 += m_A13 * f5_25; - RHS25 += f5_25 * RHS5; - const double f6 = 1.0 / m_A14; - const double f6_18 = -f6 * m_A46; - m_A48 += m_A15 * f6_18; - RHS18 += f6_18 * RHS6; - const double f7 = 1.0 / m_A16; - const double f7_22 = -f7 * m_A64; - m_A69 += m_A17 * f7_22; - m_A73 += m_A18 * f7_22; - RHS22 += f7_22 * RHS7; - const double f7_27 = -f7 * m_A106; - m_A109 += m_A17 * f7_27; - m_A113 += m_A18 * f7_27; - RHS27 += f7_27 * RHS7; - const double f8 = 1.0 / m_A19; - const double f8_21 = -f8 * m_A59; - m_A61 += m_A20 * f8_21; - RHS21 += f8_21 * RHS8; - const double f8_28 = -f8 * m_A116; - m_A121 += m_A20 * f8_28; - RHS28 += f8_28 * RHS8; - const double f9 = 1.0 / m_A21; - const double f9_19 = -f9 * m_A51; - m_A52 += m_A22 * f9_19; - RHS19 += f9_19 * RHS9; - const double f9_26 = -f9 * m_A96; - m_A99 += m_A22 * f9_26; - RHS26 += f9_26 * RHS9; - const double f10 = 1.0 / m_A23; - const double f10_20 = -f10 * m_A53; - m_A55 += m_A24 * f10_20; - m_A56 += m_A25 * f10_20; - RHS20 += f10_20 * RHS10; - const double f10_22 = -f10 * m_A65; - m_A68 += m_A24 * f10_22; - m_A69 += m_A25 * f10_22; - RHS22 += f10_22 * RHS10; - const double f11 = 1.0 / m_A26; - const double f11_24 = -f11 * m_A77; - m_A81 += m_A27 * f11_24; - RHS24 += f11_24 * RHS11; - const double f12 = 1.0 / m_A28; - const double f12_23 = -f12 * m_A74; - m_A76 += m_A29 * f12_23; - RHS23 += f12_23 * RHS12; - const double f12_26 = -f12 * m_A97; - m_A104 += m_A29 * f12_26; - RHS26 += f12_26 * RHS12; - const double f13 = 1.0 / m_A30; - const double f13_20 = -f13 * m_A54; - m_A55 += m_A31 * f13_20; - m_A57 += m_A32 * f13_20; - m_A58 += m_A33 * f13_20; - RHS20 += f13_20 * RHS13; - const double f13_24 = -f13 * m_A78; - m_A79 += m_A31 * f13_24; - m_A82 += m_A32 * f13_24; - m_A84 += m_A33 * f13_24; - RHS24 += f13_24 * RHS13; - const double f13_26 = -f13 * m_A98; - m_A100 += m_A31 * f13_26; - m_A102 += m_A32 * f13_26; - m_A104 += m_A33 * f13_26; - RHS26 += f13_26 * RHS13; - const double f14 = 1.0 / m_A35; - const double f14_25 = -f14 * m_A89; - RHS25 += f14_25 * RHS14; - const double f15 = 1.0 / m_A37; - const double f15_22 = -f15 * m_A66; - m_A71 += m_A38 * f15_22; - RHS22 += f15_22 * RHS15; - const double f16 = 1.0 / m_A40; - const double f16_28 = -f16 * m_A117; - RHS28 += f16_28 * RHS16; - const double f17 = 1.0 / m_A43; - const double f17_22 = -f17 * m_A67; - m_A69 += m_A44 * f17_22; - m_A71 += m_A45 * f17_22; - RHS22 += f17_22 * RHS17; - const double f17_25 = -f17 * m_A90; - m_A91 += m_A44 * f17_25; - m_A93 += m_A45 * f17_25; - RHS25 += f17_25 * RHS17; - const double f18 = 1.0 / m_A47; - const double f18_27 = -f18 * m_A107; - m_A108 += m_A48 * f18_27; - m_A113 += m_A49 * f18_27; - m_A114 += m_A50 * f18_27; - RHS27 += f18_27 * RHS18; - const double f18_28 = -f18 * m_A118; - m_A119 += m_A48 * f18_28; - m_A120 += m_A49 * f18_28; - m_A121 += m_A50 * f18_28; - RHS28 += f18_28 * RHS18; - const double f19 = 1.0 / m_A52; - const double f19_26 = -f19 * m_A99; - RHS26 += f19_26 * RHS19; - const double f20 = 1.0 / m_A55; - const double f20_22 = -f20 * m_A68; - m_A69 += m_A56 * f20_22; - m_A70 += m_A57 * f20_22; - m_A72 += m_A58 * f20_22; - RHS22 += f20_22 * RHS20; - const double f20_24 = -f20 * m_A79; - m_A80 += m_A56 * f20_24; - m_A82 += m_A57 * f20_24; - m_A84 += m_A58 * f20_24; - RHS24 += f20_24 * RHS20; - const double f20_26 = -f20 * m_A100; - m_A101 += m_A56 * f20_26; - m_A102 += m_A57 * f20_26; - m_A104 += m_A58 * f20_26; - RHS26 += f20_26 * RHS20; - const double f21 = 1.0 / m_A60; - const double f21_27 = -f21 * m_A108; - m_A114 += m_A61 * f21_27; - RHS27 += f21_27 * RHS21; - const double f21_28 = -f21 * m_A119; - m_A121 += m_A61 * f21_28; - RHS28 += f21_28 * RHS21; - const double f22 = 1.0 / m_A69; - const double f22_24 = -f22 * m_A80; - m_A82 += m_A70 * f22_24; - m_A83 += m_A71 * f22_24; - m_A84 += m_A72 * f22_24; - m_A85 += m_A73 * f22_24; - RHS24 += f22_24 * RHS22; - const double f22_25 = -f22 * m_A91; - m_A92 += m_A70 * f22_25; - m_A93 += m_A71 * f22_25; - m_A94 += m_A72 * f22_25; - m_A95 += m_A73 * f22_25; - RHS25 += f22_25 * RHS22; - const double f22_26 = -f22 * m_A101; - m_A102 += m_A70 * f22_26; - m_A103 += m_A71 * f22_26; - m_A104 += m_A72 * f22_26; - m_A105 += m_A73 * f22_26; - RHS26 += f22_26 * RHS22; - const double f22_27 = -f22 * m_A109; - m_A110 += m_A70 * f22_27; - m_A111 += m_A71 * f22_27; - m_A112 += m_A72 * f22_27; - m_A113 += m_A73 * f22_27; - RHS27 += f22_27 * RHS22; - const double f23 = 1.0 / m_A75; - const double f23_24 = -f23 * m_A81; - m_A84 += m_A76 * f23_24; - RHS24 += f23_24 * RHS23; - const double f24 = 1.0 / m_A82; - const double f24_25 = -f24 * m_A92; - m_A93 += m_A83 * f24_25; - m_A94 += m_A84 * f24_25; - m_A95 += m_A85 * f24_25; - RHS25 += f24_25 * RHS24; - const double f24_26 = -f24 * m_A102; - m_A103 += m_A83 * f24_26; - m_A104 += m_A84 * f24_26; - m_A105 += m_A85 * f24_26; - RHS26 += f24_26 * RHS24; - const double f24_27 = -f24 * m_A110; - m_A111 += m_A83 * f24_27; - m_A112 += m_A84 * f24_27; - m_A113 += m_A85 * f24_27; - RHS27 += f24_27 * RHS24; - const double f25 = 1.0 / m_A93; - const double f25_26 = -f25 * m_A103; - m_A104 += m_A94 * f25_26; - m_A105 += m_A95 * f25_26; - RHS26 += f25_26 * RHS25; - const double f25_27 = -f25 * m_A111; - m_A112 += m_A94 * f25_27; - m_A113 += m_A95 * f25_27; - RHS27 += f25_27 * RHS25; - const double f26 = 1.0 / m_A104; - const double f26_27 = -f26 * m_A112; - m_A113 += m_A105 * f26_27; - RHS27 += f26_27 * RHS26; - const double f27 = 1.0 / m_A113; - const double f27_28 = -f27 * m_A120; - m_A121 += m_A114 * f27_28; - RHS28 += f27_28 * RHS27; - V[28] = RHS28 / m_A121; - double tmp27 = 0.0; - tmp27 += m_A114 * V[28]; - V[27] = (RHS27 - tmp27) / m_A113; - double tmp26 = 0.0; - tmp26 += m_A105 * V[27]; - V[26] = (RHS26 - tmp26) / m_A104; - double tmp25 = 0.0; - tmp25 += m_A94 * V[26]; - tmp25 += m_A95 * V[27]; - V[25] = (RHS25 - tmp25) / m_A93; - double tmp24 = 0.0; - tmp24 += m_A83 * V[25]; - tmp24 += m_A84 * V[26]; - tmp24 += m_A85 * V[27]; - V[24] = (RHS24 - tmp24) / m_A82; - double tmp23 = 0.0; - tmp23 += m_A76 * V[26]; - V[23] = (RHS23 - tmp23) / m_A75; - double tmp22 = 0.0; - tmp22 += m_A70 * V[24]; - tmp22 += m_A71 * V[25]; - tmp22 += m_A72 * V[26]; - tmp22 += m_A73 * V[27]; - V[22] = (RHS22 - tmp22) / m_A69; - double tmp21 = 0.0; - tmp21 += m_A61 * V[28]; - V[21] = (RHS21 - tmp21) / m_A60; - double tmp20 = 0.0; - tmp20 += m_A56 * V[22]; - tmp20 += m_A57 * V[24]; - tmp20 += m_A58 * V[26]; - V[20] = (RHS20 - tmp20) / m_A55; - double tmp19 = 0.0; - V[19] = (RHS19 - tmp19) / m_A52; - double tmp18 = 0.0; - tmp18 += m_A48 * V[21]; - tmp18 += m_A49 * V[27]; - tmp18 += m_A50 * V[28]; - V[18] = (RHS18 - tmp18) / m_A47; - double tmp17 = 0.0; - tmp17 += m_A44 * V[22]; - tmp17 += m_A45 * V[25]; - V[17] = (RHS17 - tmp17) / m_A43; - double tmp16 = 0.0; - V[16] = (RHS16 - tmp16) / m_A40; - double tmp15 = 0.0; - tmp15 += m_A38 * V[25]; - V[15] = (RHS15 - tmp15) / m_A37; - double tmp14 = 0.0; - V[14] = (RHS14 - tmp14) / m_A35; - double tmp13 = 0.0; - tmp13 += m_A31 * V[20]; - tmp13 += m_A32 * V[24]; - tmp13 += m_A33 * V[26]; - V[13] = (RHS13 - tmp13) / m_A30; - double tmp12 = 0.0; - tmp12 += m_A29 * V[26]; - V[12] = (RHS12 - tmp12) / m_A28; - double tmp11 = 0.0; - tmp11 += m_A27 * V[23]; - V[11] = (RHS11 - tmp11) / m_A26; + const double f1_5 = -f1 * m_A16; + m_A17 += m_A3 * f1_5; + m_A18 += m_A4 * f1_5; + m_A19 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f1_6 = -f1 * m_A20; + m_A21 += m_A3 * f1_6; + m_A22 += m_A4 * f1_6; + m_A23 += m_A5 * f1_6; + RHS6 += f1_6 * RHS1; + const double f1_10 = -f1 * m_A41; + m_A42 += m_A3 * f1_10; + m_A43 += m_A4 * f1_10; + m_A46 += m_A5 * f1_10; + RHS10 += f1_10 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_7 = -f2 * m_A24; + m_A26 += m_A7 * f2_7; + m_A29 += m_A8 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_7 = -f3 * m_A25; + m_A27 += m_A10 * f3_7; + m_A28 += m_A11 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_8 = -f3 * m_A30; + m_A32 += m_A10 * f3_8; + m_A33 += m_A11 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_8 = -f4 * m_A31; + m_A33 += m_A13 * f4_8; + m_A35 += m_A14 * f4_8; + RHS8 += f4_8 * RHS4; + const double f4_9 = -f4 * m_A36; + m_A37 += m_A13 * f4_9; + m_A40 += m_A14 * f4_9; + RHS9 += f4_9 * RHS4; + const double f4_11 = -f4 * m_A48; + m_A49 += m_A13 * f4_11; + m_A52 += m_A14 * f4_11; + RHS11 += f4_11 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A18 * f5_6; + m_A23 += m_A19 * f5_6; + RHS6 += f5_6 * RHS5; + const double f5_10 = -f5 * m_A42; + m_A43 += m_A18 * f5_10; + m_A46 += m_A19 * f5_10; + RHS10 += f5_10 * RHS5; + const double f6 = 1.0 / m_A22; + const double f6_7 = -f6 * m_A26; + m_A29 += m_A23 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_10 = -f6 * m_A43; + m_A46 += m_A23 * f6_10; + RHS10 += f6_10 * RHS6; + const double f7 = 1.0 / m_A27; + const double f7_8 = -f7 * m_A32; + m_A33 += m_A28 * f7_8; + m_A34 += m_A29 * f7_8; + RHS8 += f7_8 * RHS7; + const double f7_10 = -f7 * m_A44; + m_A45 += m_A28 * f7_10; + m_A46 += m_A29 * f7_10; + RHS10 += f7_10 * RHS7; + const double f8 = 1.0 / m_A33; + const double f8_9 = -f8 * m_A37; + m_A39 += m_A34 * f8_9; + m_A40 += m_A35 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_10 = -f8 * m_A45; + m_A46 += m_A34 * f8_10; + m_A47 += m_A35 * f8_10; + RHS10 += f8_10 * RHS8; + const double f8_11 = -f8 * m_A49; + m_A51 += m_A34 * f8_11; + m_A52 += m_A35 * f8_11; + RHS11 += f8_11 * RHS8; + const double f9 = 1.0 / m_A38; + const double f9_11 = -f9 * m_A50; + m_A51 += m_A39 * f9_11; + m_A52 += m_A40 * f9_11; + RHS11 += f9_11 * RHS9; + const double f10 = 1.0 / m_A46; + const double f10_11 = -f10 * m_A51; + m_A52 += m_A47 * f10_11; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A52; double tmp10 = 0.0; - tmp10 += m_A24 * V[20]; - tmp10 += m_A25 * V[22]; - V[10] = (RHS10 - tmp10) / m_A23; + tmp10 += m_A47 * V[11]; + V[10] = (RHS10 - tmp10) / m_A46; double tmp9 = 0.0; - tmp9 += m_A22 * V[19]; - V[9] = (RHS9 - tmp9) / m_A21; + tmp9 += m_A39 * V[10]; + tmp9 += m_A40 * V[11]; + V[9] = (RHS9 - tmp9) / m_A38; double tmp8 = 0.0; - tmp8 += m_A20 * V[28]; - V[8] = (RHS8 - tmp8) / m_A19; + tmp8 += m_A34 * V[10]; + tmp8 += m_A35 * V[11]; + V[8] = (RHS8 - tmp8) / m_A33; double tmp7 = 0.0; - tmp7 += m_A17 * V[22]; - tmp7 += m_A18 * V[27]; - V[7] = (RHS7 - tmp7) / m_A16; + tmp7 += m_A28 * V[8]; + tmp7 += m_A29 * V[10]; + V[7] = (RHS7 - tmp7) / m_A27; double tmp6 = 0.0; - tmp6 += m_A15 * V[21]; - V[6] = (RHS6 - tmp6) / m_A14; + tmp6 += m_A23 * V[10]; + V[6] = (RHS6 - tmp6) / m_A22; double tmp5 = 0.0; - tmp5 += m_A11 * V[17]; - tmp5 += m_A12 * V[22]; - tmp5 += m_A13 * V[25]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A18 * V[6]; + tmp5 += m_A19 * V[10]; + V[5] = (RHS5 - tmp5) / m_A17; double tmp4 = 0.0; - tmp4 += m_A9 * V[16]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A13 * V[8]; + tmp4 += m_A14 * V[11]; + V[4] = (RHS4 - tmp4) / m_A12; double tmp3 = 0.0; - tmp3 += m_A7 * V[15]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A10 * V[7]; + tmp3 += m_A11 * V[8]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[25]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[6]; + tmp2 += m_A8 * V[10]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[14]; + tmp1 += m_A3 * V[5]; + tmp1 += m_A4 * V[6]; + tmp1 += m_A5 * V[10]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[17]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// ripoff -static void nl_gcr_43188bf576854ae0_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// boxingb +static void nl_gcr_2f84bc98d737730b_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -5151,59 +5522,171 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A5 += gt[4]; - m_A5 += gt[5]; - m_A5 += gt[6]; - m_A6 += go[4]; - m_A4 += go[5]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 += Idr[6]; - RHS2 -= go[6] * *cnV[6]; - m_A9 += gt[7]; - m_A9 += gt[8]; - m_A7 += go[7]; - m_A8 += go[8]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A3 += go[6]; + double RHS1 = Idr[6]; + RHS1 += Idr[7]; + RHS1 -= go[7] * *cnV[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A7 += go[8]; + m_A6 += go[9]; + m_A6 += go[10]; + m_A5 += go[11]; + m_A5 += go[12]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[14] * *cnV[14]; + RHS2 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A8 += go[16]; + m_A9 += go[17]; + m_A9 += go[18]; + double RHS3 = Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 += Idr[20]; + RHS3 -= go[19] * *cnV[19]; + RHS3 -= go[20] * *cnV[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A15 += gt[23]; + m_A15 += gt[24]; + m_A15 += gt[25]; + m_A16 += go[21]; + m_A16 += go[22]; + m_A13 += go[23]; + m_A13 += go[24]; + double RHS4 = Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 -= go[25] * *cnV[25]; + m_A21 += gt[26]; + m_A21 += gt[27]; + m_A21 += gt[28]; + m_A21 += gt[29]; + m_A21 += gt[30]; + m_A20 += go[26]; + m_A20 += go[27]; + m_A18 += go[28]; + m_A17 += go[29]; + double RHS5 = Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 += Idr[30]; + RHS5 -= go[30] * *cnV[30]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A5 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A6 * f2_3; + const double f1_5 = -f1 * m_A17; + m_A21 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A5 * f2_3; + m_A11 += m_A6 * f2_3; + m_A12 += m_A7 * f2_3; RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f2_4 = -f2 * m_A13; + m_A14 += m_A5 * f2_4; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A18; + m_A19 += m_A5 * f2_5; + m_A20 += m_A6 * f2_5; + m_A21 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + m_A16 += m_A12 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A19; + m_A20 += m_A11 * f3_5; + m_A21 += m_A12 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_5 = -f4 * m_A20; + m_A21 += m_A16 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A21; + double tmp4 = 0.0; + tmp4 += m_A16 * V[5]; + V[4] = (RHS4 - tmp4) / m_A15; + double tmp3 = 0.0; + tmp3 += m_A11 * V[4]; + tmp3 += m_A12 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[3]; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[5]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_43f7ff9bc651cc7a_198_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// astrob +static void nl_gcr_30fc51fe03b164cb_178_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -5386,1051 +5869,1010 @@ double m_A175(0.0); double m_A176(0.0); double m_A177(0.0); - double m_A178(0.0); - double m_A179(0.0); - double m_A180(0.0); - double m_A181(0.0); - double m_A182(0.0); - double m_A183(0.0); - double m_A184(0.0); - double m_A185(0.0); - double m_A186(0.0); - double m_A187(0.0); - double m_A188(0.0); - double m_A189(0.0); - double m_A190(0.0); - double m_A191(0.0); - double m_A192(0.0); - double m_A193(0.0); - double m_A194(0.0); - double m_A195(0.0); - double m_A196(0.0); - double m_A197(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A4 += gt[6]; - m_A6 += go[4]; - m_A5 += go[5]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 += Idr[6]; - RHS2 -= go[6] * *cnV[6]; - m_A7 += gt[7]; - m_A7 += gt[8]; - m_A7 += gt[9]; - m_A7 += gt[10]; - m_A7 += gt[11]; - m_A7 += gt[12]; - m_A7 += gt[13]; - m_A8 += go[7]; - m_A9 += go[8]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - RHS3 += Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 -= go[9] * *cnV[9]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; - m_A10 += gt[14]; - m_A10 += gt[15]; - m_A12 += go[14]; - m_A11 += go[15]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - m_A13 += gt[16]; - m_A13 += gt[17]; - m_A14 += go[16]; - double RHS5 = Idr[16]; - RHS5 += Idr[17]; - RHS5 -= go[17] * *cnV[17]; - m_A15 += gt[18]; - m_A15 += gt[19]; - m_A15 += gt[20]; - m_A16 += go[18]; - double RHS6 = Idr[18]; - RHS6 += Idr[19]; - RHS6 += Idr[20]; - RHS6 -= go[19] * *cnV[19]; - RHS6 -= go[20] * *cnV[20]; - m_A17 += gt[21]; - m_A17 += gt[22]; - m_A17 += gt[23]; - m_A17 += gt[24]; - m_A17 += gt[25]; - m_A17 += gt[26]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[7]; + m_A3 += go[8]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A5 += gt[14]; + m_A5 += gt[15]; + m_A5 += gt[16]; + m_A6 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[14] * *cnV[14]; + RHS2 -= go[15] * *cnV[15]; + RHS2 -= go[16] * *cnV[16]; + m_A7 += gt[17]; + m_A7 += gt[18]; + m_A7 += gt[19]; + m_A7 += gt[20]; + m_A9 += go[17]; + m_A10 += go[18]; + m_A8 += go[19]; + double RHS3 = Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 += Idr[20]; + RHS3 -= go[20] * *cnV[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A11 += gt[23]; + m_A11 += gt[24]; + m_A12 += go[21]; + m_A12 += go[22]; + m_A13 += go[23]; + double RHS4 = Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 -= go[24] * *cnV[24]; + m_A14 += gt[25]; + m_A14 += gt[26]; + m_A15 += go[25]; + m_A16 += go[26]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; m_A17 += gt[27]; - m_A19 += go[21]; - m_A18 += go[22]; - double RHS7 = Idr[21]; - RHS7 += Idr[22]; - RHS7 += Idr[23]; - RHS7 += Idr[24]; - RHS7 += Idr[25]; - RHS7 += Idr[26]; - RHS7 += Idr[27]; - RHS7 -= go[23] * *cnV[23]; - RHS7 -= go[24] * *cnV[24]; - RHS7 -= go[25] * *cnV[25]; - RHS7 -= go[26] * *cnV[26]; - RHS7 -= go[27] * *cnV[27]; - m_A20 += gt[28]; - m_A20 += gt[29]; - m_A21 += go[28]; - m_A22 += go[29]; - double RHS8 = Idr[28]; - RHS8 += Idr[29]; - m_A23 += gt[30]; - m_A23 += gt[31]; - m_A23 += gt[32]; - m_A24 += go[30]; - m_A25 += go[31]; - double RHS9 = Idr[30]; - RHS9 += Idr[31]; - RHS9 += Idr[32]; - RHS9 -= go[32] * *cnV[32]; - m_A26 += gt[33]; - m_A26 += gt[34]; - m_A27 += go[33]; - double RHS10 = Idr[33]; - RHS10 += Idr[34]; - RHS10 -= go[34] * *cnV[34]; - m_A28 += gt[35]; - m_A28 += gt[36]; - m_A28 += gt[37]; - m_A28 += gt[38]; - m_A30 += go[35]; - m_A29 += go[36]; - m_A29 += go[37]; - double RHS11 = Idr[35]; - RHS11 += Idr[36]; - RHS11 += Idr[37]; - RHS11 += Idr[38]; - RHS11 -= go[38] * *cnV[38]; - m_A31 += gt[39]; - m_A31 += gt[40]; - m_A33 += go[39]; - m_A32 += go[40]; - double RHS12 = Idr[39]; - RHS12 += Idr[40]; - m_A34 += gt[41]; - m_A34 += gt[42]; - m_A34 += gt[43]; - m_A36 += go[41]; - m_A35 += go[42]; - double RHS13 = Idr[41]; - RHS13 += Idr[42]; - RHS13 += Idr[43]; - RHS13 -= go[43] * *cnV[43]; - m_A37 += gt[44]; - m_A37 += gt[45]; - m_A37 += gt[46]; - m_A38 += go[44]; - m_A39 += go[45]; - double RHS14 = Idr[44]; - RHS14 += Idr[45]; - RHS14 += Idr[46]; - RHS14 -= go[46] * *cnV[46]; - m_A40 += gt[47]; - m_A40 += gt[48]; - m_A40 += gt[49]; - m_A40 += gt[50]; - m_A40 += gt[51]; - m_A42 += go[47]; - m_A41 += go[48]; - m_A41 += go[49]; - double RHS15 = Idr[47]; - RHS15 += Idr[48]; - RHS15 += Idr[49]; - RHS15 += Idr[50]; - RHS15 += Idr[51]; - RHS15 -= go[50] * *cnV[50]; - RHS15 -= go[51] * *cnV[51]; - m_A43 += gt[52]; - m_A43 += gt[53]; - m_A43 += gt[54]; - m_A43 += gt[55]; - m_A44 += go[52]; - double RHS16 = Idr[52]; - RHS16 += Idr[53]; - RHS16 += Idr[54]; - RHS16 += Idr[55]; - RHS16 -= go[53] * *cnV[53]; - RHS16 -= go[54] * *cnV[54]; - RHS16 -= go[55] * *cnV[55]; - m_A45 += gt[56]; - m_A45 += gt[57]; - m_A45 += gt[58]; - m_A45 += gt[59]; - m_A46 += go[56]; - double RHS17 = Idr[56]; - RHS17 += Idr[57]; - RHS17 += Idr[58]; - RHS17 += Idr[59]; - RHS17 -= go[57] * *cnV[57]; - RHS17 -= go[58] * *cnV[58]; - RHS17 -= go[59] * *cnV[59]; - m_A47 += gt[60]; - m_A47 += gt[61]; - m_A47 += gt[62]; - m_A47 += gt[63]; - m_A47 += gt[64]; - m_A49 += go[60]; - m_A49 += go[61]; - m_A48 += go[62]; - double RHS18 = Idr[60]; - RHS18 += Idr[61]; - RHS18 += Idr[62]; - RHS18 += Idr[63]; - RHS18 += Idr[64]; - RHS18 -= go[63] * *cnV[63]; - RHS18 -= go[64] * *cnV[64]; - m_A50 += gt[65]; - m_A50 += gt[66]; - m_A50 += gt[67]; - m_A50 += gt[68]; - m_A50 += gt[69]; - m_A53 += go[65]; - m_A52 += go[66]; - m_A51 += go[67]; - m_A51 += go[68]; - double RHS19 = Idr[65]; - RHS19 += Idr[66]; - RHS19 += Idr[67]; - RHS19 += Idr[68]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[27]; + double RHS6 = Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 -= go[28] * *cnV[28]; + RHS6 -= go[29] * *cnV[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A19 += gt[32]; + m_A19 += gt[33]; + m_A19 += gt[34]; + m_A19 += gt[35]; + m_A20 += go[30]; + m_A20 += go[31]; + m_A22 += go[32]; + m_A22 += go[33]; + m_A21 += go[34]; + double RHS7 = Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 -= go[35] * *cnV[35]; + m_A23 += gt[36]; + m_A23 += gt[37]; + m_A23 += gt[38]; + m_A23 += gt[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A24 += go[36]; + m_A25 += go[37]; + double RHS8 = Idr[36]; + RHS8 += Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + RHS8 += Idr[40]; + RHS8 += Idr[41]; + RHS8 -= go[38] * *cnV[38]; + RHS8 -= go[39] * *cnV[39]; + RHS8 -= go[40] * *cnV[40]; + RHS8 -= go[41] * *cnV[41]; + m_A26 += gt[42]; + m_A26 += gt[43]; + m_A26 += gt[44]; + m_A27 += go[42]; + double RHS9 = Idr[42]; + RHS9 += Idr[43]; + RHS9 += Idr[44]; + RHS9 -= go[43] * *cnV[43]; + RHS9 -= go[44] * *cnV[44]; + m_A28 += gt[45]; + m_A28 += gt[46]; + m_A28 += gt[47]; + m_A29 += go[45]; + double RHS10 = Idr[45]; + RHS10 += Idr[46]; + RHS10 += Idr[47]; + RHS10 -= go[46] * *cnV[46]; + RHS10 -= go[47] * *cnV[47]; + m_A30 += gt[48]; + m_A30 += gt[49]; + m_A30 += gt[50]; + m_A31 += go[48]; + double RHS11 = Idr[48]; + RHS11 += Idr[49]; + RHS11 += Idr[50]; + RHS11 -= go[49] * *cnV[49]; + RHS11 -= go[50] * *cnV[50]; + m_A32 += gt[51]; + m_A32 += gt[52]; + m_A32 += gt[53]; + m_A33 += go[51]; + double RHS12 = Idr[51]; + RHS12 += Idr[52]; + RHS12 += Idr[53]; + RHS12 -= go[52] * *cnV[52]; + RHS12 -= go[53] * *cnV[53]; + m_A34 += gt[54]; + m_A34 += gt[55]; + m_A34 += gt[56]; + m_A35 += go[54]; + double RHS13 = Idr[54]; + RHS13 += Idr[55]; + RHS13 += Idr[56]; + RHS13 -= go[55] * *cnV[55]; + RHS13 -= go[56] * *cnV[56]; + m_A36 += gt[57]; + m_A36 += gt[58]; + m_A37 += go[57]; + double RHS14 = Idr[57]; + RHS14 += Idr[58]; + RHS14 -= go[58] * *cnV[58]; + m_A38 += gt[59]; + m_A38 += gt[60]; + m_A38 += gt[61]; + m_A39 += go[59]; + double RHS15 = Idr[59]; + RHS15 += Idr[60]; + RHS15 += Idr[61]; + RHS15 -= go[60] * *cnV[60]; + RHS15 -= go[61] * *cnV[61]; + m_A40 += gt[62]; + m_A40 += gt[63]; + m_A41 += go[62]; + double RHS16 = Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[63] * *cnV[63]; + m_A42 += gt[64]; + m_A42 += gt[65]; + m_A43 += go[64]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + RHS17 -= go[65] * *cnV[65]; + m_A44 += gt[66]; + m_A44 += gt[67]; + m_A45 += go[66]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 -= go[67] * *cnV[67]; + m_A46 += gt[68]; + m_A46 += gt[69]; + m_A47 += go[68]; + double RHS19 = Idr[68]; RHS19 += Idr[69]; RHS19 -= go[69] * *cnV[69]; - m_A54 += gt[70]; - m_A54 += gt[71]; - m_A54 += gt[72]; - m_A54 += gt[73]; - m_A57 += go[70]; - m_A56 += go[71]; - m_A55 += go[72]; + m_A48 += gt[70]; + m_A48 += gt[71]; + m_A49 += go[70]; double RHS20 = Idr[70]; RHS20 += Idr[71]; - RHS20 += Idr[72]; - RHS20 += Idr[73]; - RHS20 -= go[73] * *cnV[73]; - m_A58 += gt[74]; - m_A58 += gt[75]; - m_A58 += gt[76]; - m_A59 += go[74]; - m_A60 += go[75]; - double RHS21 = Idr[74]; - RHS21 += Idr[75]; - RHS21 += Idr[76]; - RHS21 -= go[76] * *cnV[76]; - m_A61 += gt[77]; - m_A61 += gt[78]; - m_A62 += go[77]; - m_A63 += go[78]; - double RHS22 = Idr[77]; + RHS20 -= go[71] * *cnV[71]; + m_A50 += gt[72]; + m_A50 += gt[73]; + m_A51 += go[72]; + double RHS21 = Idr[72]; + RHS21 += Idr[73]; + RHS21 -= go[73] * *cnV[73]; + m_A52 += gt[74]; + m_A52 += gt[75]; + m_A52 += gt[76]; + m_A52 += gt[77]; + m_A52 += gt[78]; + m_A53 += go[74]; + m_A55 += go[75]; + m_A54 += go[76]; + double RHS22 = Idr[74]; + RHS22 += Idr[75]; + RHS22 += Idr[76]; + RHS22 += Idr[77]; RHS22 += Idr[78]; - m_A64 += gt[79]; - m_A64 += gt[80]; - m_A65 += go[79]; - m_A66 += go[80]; + RHS22 -= go[77] * *cnV[77]; + RHS22 -= go[78] * *cnV[78]; + m_A56 += gt[79]; + m_A56 += gt[80]; + m_A58 += go[79]; + m_A57 += go[80]; double RHS23 = Idr[79]; RHS23 += Idr[80]; - m_A69 += gt[81]; - m_A69 += gt[82]; - m_A69 += gt[83]; - m_A69 += gt[84]; - m_A68 += go[81]; - m_A68 += go[82]; - m_A67 += go[83]; + m_A59 += gt[81]; + m_A59 += gt[82]; + m_A60 += go[81]; double RHS24 = Idr[81]; RHS24 += Idr[82]; - RHS24 += Idr[83]; - RHS24 += Idr[84]; - RHS24 -= go[84] * *cnV[84]; - m_A75 += gt[85]; - m_A75 += gt[86]; - m_A75 += gt[87]; - m_A73 += go[85]; - m_A72 += go[86]; - double RHS25 = Idr[85]; - RHS25 += Idr[86]; - RHS25 += Idr[87]; - RHS25 -= go[87] * *cnV[87]; - m_A79 += gt[88]; - m_A79 += gt[89]; - m_A79 += gt[90]; - m_A78 += go[88]; - m_A77 += go[89]; - double RHS26 = Idr[88]; - RHS26 += Idr[89]; - RHS26 += Idr[90]; - RHS26 -= go[90] * *cnV[90]; - m_A83 += gt[91]; - m_A83 += gt[92]; - m_A83 += gt[93]; - m_A83 += gt[94]; - m_A83 += gt[95]; - m_A83 += gt[96]; - m_A82 += go[91]; - m_A82 += go[92]; - m_A81 += go[93]; - double RHS27 = Idr[91]; + RHS24 -= go[82] * *cnV[82]; + m_A61 += gt[83]; + m_A61 += gt[84]; + m_A62 += go[83]; + double RHS25 = Idr[83]; + RHS25 += Idr[84]; + RHS25 -= go[84] * *cnV[84]; + m_A63 += gt[85]; + m_A63 += gt[86]; + m_A63 += gt[87]; + m_A64 += go[85]; + double RHS26 = Idr[85]; + RHS26 += Idr[86]; + RHS26 += Idr[87]; + RHS26 -= go[86] * *cnV[86]; + RHS26 -= go[87] * *cnV[87]; + m_A68 += gt[88]; + m_A68 += gt[89]; + m_A68 += gt[90]; + m_A68 += gt[91]; + m_A68 += gt[92]; + m_A65 += go[88]; + m_A67 += go[89]; + m_A66 += go[90]; + double RHS27 = Idr[88]; + RHS27 += Idr[89]; + RHS27 += Idr[90]; + RHS27 += Idr[91]; RHS27 += Idr[92]; - RHS27 += Idr[93]; - RHS27 += Idr[94]; - RHS27 += Idr[95]; - RHS27 += Idr[96]; - RHS27 -= go[94] * *cnV[94]; - RHS27 -= go[95] * *cnV[95]; - RHS27 -= go[96] * *cnV[96]; - m_A93 += gt[97]; - m_A93 += gt[98]; - m_A93 += gt[99]; - m_A87 += go[97]; - m_A89 += go[98]; - m_A88 += go[99]; - double RHS28 = Idr[97]; - RHS28 += Idr[98]; - RHS28 += Idr[99]; - m_A102 += gt[100]; - m_A102 += gt[101]; - m_A102 += gt[102]; - m_A99 += go[100]; - m_A98 += go[101]; - m_A97 += go[102]; - double RHS29 = Idr[100]; - RHS29 += Idr[101]; - RHS29 += Idr[102]; - m_A110 += gt[103]; - m_A110 += gt[104]; - m_A110 += gt[105]; - m_A110 += gt[106]; - m_A107 += go[103]; - m_A106 += go[104]; - m_A106 += go[105]; - double RHS30 = Idr[103]; - RHS30 += Idr[104]; - RHS30 += Idr[105]; - RHS30 += Idr[106]; - RHS30 -= go[106] * *cnV[106]; - m_A116 += gt[107]; - m_A116 += gt[108]; - m_A116 += gt[109]; - m_A116 += gt[110]; - m_A116 += gt[111]; - m_A116 += gt[112]; - m_A114 += go[107]; - m_A115 += go[108]; - m_A115 += go[109]; - m_A117 += go[110]; - m_A117 += go[111]; - m_A113 += go[112]; - double RHS31 = Idr[107]; - RHS31 += Idr[108]; - RHS31 += Idr[109]; - RHS31 += Idr[110]; - RHS31 += Idr[111]; - RHS31 += Idr[112]; - m_A120 += gt[113]; - m_A120 += gt[114]; - m_A119 += go[113]; - double RHS32 = Idr[113]; - RHS32 += Idr[114]; - RHS32 -= go[114] * *cnV[114]; - m_A123 += gt[115]; - m_A123 += gt[116]; - m_A122 += go[115]; - m_A124 += go[116]; - double RHS33 = Idr[115]; - RHS33 += Idr[116]; - m_A126 += gt[117]; - m_A126 += gt[118]; - m_A126 += gt[119]; - m_A126 += gt[120]; - m_A126 += gt[121]; - m_A126 += gt[122]; - m_A126 += gt[123]; - m_A125 += go[117]; - m_A127 += go[118]; - double RHS34 = Idr[117]; - RHS34 += Idr[118]; - RHS34 += Idr[119]; - RHS34 += Idr[120]; - RHS34 += Idr[121]; - RHS34 += Idr[122]; - RHS34 += Idr[123]; - RHS34 -= go[119] * *cnV[119]; - RHS34 -= go[120] * *cnV[120]; - RHS34 -= go[121] * *cnV[121]; - RHS34 -= go[122] * *cnV[122]; - RHS34 -= go[123] * *cnV[123]; - m_A129 += gt[124]; - m_A129 += gt[125]; - m_A128 += go[124]; - double RHS35 = Idr[124]; - RHS35 += Idr[125]; - RHS35 -= go[125] * *cnV[125]; - m_A133 += gt[126]; - m_A133 += gt[127]; - m_A133 += gt[128]; - m_A133 += gt[129]; - m_A133 += gt[130]; - m_A133 += gt[131]; - m_A132 += go[126]; - m_A135 += go[127]; - m_A131 += go[128]; - double RHS36 = Idr[126]; - RHS36 += Idr[127]; - RHS36 += Idr[128]; - RHS36 += Idr[129]; - RHS36 += Idr[130]; - RHS36 += Idr[131]; - RHS36 -= go[129] * *cnV[129]; - RHS36 -= go[130] * *cnV[130]; - RHS36 -= go[131] * *cnV[131]; - m_A139 += gt[132]; - m_A139 += gt[133]; - m_A139 += gt[134]; - m_A139 += gt[135]; - m_A139 += gt[136]; - m_A139 += gt[137]; - m_A136 += go[132]; - m_A137 += go[133]; - m_A141 += go[134]; - m_A138 += go[135]; - double RHS37 = Idr[132]; - RHS37 += Idr[133]; - RHS37 += Idr[134]; - RHS37 += Idr[135]; - RHS37 += Idr[136]; - RHS37 += Idr[137]; - RHS37 -= go[136] * *cnV[136]; - RHS37 -= go[137] * *cnV[137]; - m_A149 += gt[138]; - m_A149 += gt[139]; - m_A149 += gt[140]; - m_A149 += gt[141]; - m_A149 += gt[142]; - m_A149 += gt[143]; - m_A145 += go[138]; - m_A144 += go[139]; - m_A142 += go[140]; - m_A143 += go[141]; - m_A152 += go[142]; - double RHS38 = Idr[138]; - RHS38 += Idr[139]; - RHS38 += Idr[140]; - RHS38 += Idr[141]; - RHS38 += Idr[142]; - RHS38 += Idr[143]; - RHS38 -= go[143] * *cnV[143]; - m_A157 += gt[144]; - m_A157 += gt[145]; - m_A157 += gt[146]; - m_A157 += gt[147]; - m_A157 += gt[148]; - m_A154 += go[144]; - m_A153 += go[145]; - m_A155 += go[146]; - m_A155 += go[147]; - double RHS39 = Idr[144]; - RHS39 += Idr[145]; - RHS39 += Idr[146]; - RHS39 += Idr[147]; - RHS39 += Idr[148]; - RHS39 -= go[148] * *cnV[148]; - m_A164 += gt[149]; - m_A164 += gt[150]; - m_A164 += gt[151]; - m_A164 += gt[152]; - m_A164 += gt[153]; - m_A162 += go[149]; - m_A165 += go[150]; - m_A165 += go[151]; - m_A161 += go[152]; - m_A163 += go[153]; - double RHS40 = Idr[149]; - RHS40 += Idr[150]; - RHS40 += Idr[151]; - RHS40 += Idr[152]; - RHS40 += Idr[153]; - m_A174 += gt[154]; - m_A174 += gt[155]; - m_A174 += gt[156]; - m_A167 += go[154]; - m_A166 += go[155]; - m_A171 += go[156]; - double RHS41 = Idr[154]; - RHS41 += Idr[155]; - RHS41 += Idr[156]; - m_A182 += gt[157]; - m_A182 += gt[158]; - m_A182 += gt[159]; - m_A177 += go[157]; - m_A178 += go[158]; - m_A179 += go[159]; - double RHS42 = Idr[157]; - RHS42 += Idr[158]; - RHS42 += Idr[159]; - m_A197 += gt[160]; - m_A197 += gt[161]; - m_A197 += gt[162]; - m_A197 += gt[163]; - m_A197 += gt[164]; - m_A197 += gt[165]; - m_A197 += gt[166]; - m_A197 += gt[167]; - m_A192 += go[160]; - m_A185 += go[161]; - m_A186 += go[162]; - m_A184 += go[163]; - m_A194 += go[164]; - m_A194 += go[165]; - double RHS43 = Idr[160]; - RHS43 += Idr[161]; - RHS43 += Idr[162]; - RHS43 += Idr[163]; - RHS43 += Idr[164]; - RHS43 += Idr[165]; - RHS43 += Idr[166]; - RHS43 += Idr[167]; - RHS43 -= go[166] * *cnV[166]; - RHS43 -= go[167] * *cnV[167]; + RHS27 -= go[91] * *cnV[91]; + RHS27 -= go[92] * *cnV[92]; + m_A71 += gt[93]; + m_A71 += gt[94]; + m_A71 += gt[95]; + m_A72 += go[93]; + double RHS28 = Idr[93]; + RHS28 += Idr[94]; + RHS28 += Idr[95]; + RHS28 -= go[94] * *cnV[94]; + RHS28 -= go[95] * *cnV[95]; + m_A73 += gt[96]; + m_A73 += gt[97]; + m_A73 += gt[98]; + m_A74 += go[96]; + double RHS29 = Idr[96]; + RHS29 += Idr[97]; + RHS29 += Idr[98]; + RHS29 -= go[97] * *cnV[97]; + RHS29 -= go[98] * *cnV[98]; + m_A75 += gt[99]; + m_A75 += gt[100]; + m_A75 += gt[101]; + m_A76 += go[99]; + double RHS30 = Idr[99]; + RHS30 += Idr[100]; + RHS30 += Idr[101]; + RHS30 -= go[100] * *cnV[100]; + RHS30 -= go[101] * *cnV[101]; + m_A77 += gt[102]; + m_A77 += gt[103]; + m_A79 += go[102]; + m_A78 += go[103]; + double RHS31 = Idr[102]; + RHS31 += Idr[103]; + m_A80 += gt[104]; + m_A80 += gt[105]; + m_A82 += go[104]; + m_A81 += go[105]; + double RHS32 = Idr[104]; + RHS32 += Idr[105]; + m_A85 += gt[106]; + m_A85 += gt[107]; + m_A85 += gt[108]; + m_A85 += gt[109]; + m_A84 += go[106]; + m_A83 += go[107]; + double RHS33 = Idr[106]; + RHS33 += Idr[107]; + RHS33 += Idr[108]; + RHS33 += Idr[109]; + RHS33 -= go[108] * *cnV[108]; + RHS33 -= go[109] * *cnV[109]; + m_A93 += gt[110]; + m_A93 += gt[111]; + m_A93 += gt[112]; + m_A93 += gt[113]; + m_A93 += gt[114]; + m_A93 += gt[115]; + m_A92 += go[110]; + m_A91 += go[111]; + m_A90 += go[112]; + m_A89 += go[113]; + m_A88 += go[114]; + m_A87 += go[115]; + double RHS34 = Idr[110]; + RHS34 += Idr[111]; + RHS34 += Idr[112]; + RHS34 += Idr[113]; + RHS34 += Idr[114]; + RHS34 += Idr[115]; + m_A97 += gt[116]; + m_A97 += gt[117]; + m_A97 += gt[118]; + m_A98 += go[116]; + m_A95 += go[117]; + double RHS35 = Idr[116]; + RHS35 += Idr[117]; + RHS35 += Idr[118]; + RHS35 -= go[118] * *cnV[118]; + m_A102 += gt[119]; + m_A102 += gt[120]; + m_A102 += gt[121]; + m_A102 += gt[122]; + m_A102 += gt[123]; + m_A102 += gt[124]; + m_A102 += gt[125]; + m_A100 += go[119]; + m_A99 += go[120]; + m_A99 += go[121]; + m_A103 += go[122]; + m_A103 += go[123]; + double RHS36 = Idr[119]; + RHS36 += Idr[120]; + RHS36 += Idr[121]; + RHS36 += Idr[122]; + RHS36 += Idr[123]; + RHS36 += Idr[124]; + RHS36 += Idr[125]; + RHS36 -= go[124] * *cnV[124]; + RHS36 -= go[125] * *cnV[125]; + m_A105 += gt[126]; + m_A105 += gt[127]; + m_A105 += gt[128]; + m_A105 += gt[129]; + m_A105 += gt[130]; + m_A105 += gt[131]; + m_A105 += gt[132]; + m_A106 += go[126]; + m_A104 += go[127]; + double RHS37 = Idr[126]; + RHS37 += Idr[127]; + RHS37 += Idr[128]; + RHS37 += Idr[129]; + RHS37 += Idr[130]; + RHS37 += Idr[131]; + RHS37 += Idr[132]; + RHS37 -= go[128] * *cnV[128]; + RHS37 -= go[129] * *cnV[129]; + RHS37 -= go[130] * *cnV[130]; + RHS37 -= go[131] * *cnV[131]; + RHS37 -= go[132] * *cnV[132]; + m_A109 += gt[133]; + m_A109 += gt[134]; + m_A108 += go[133]; + m_A110 += go[134]; + double RHS38 = Idr[133]; + RHS38 += Idr[134]; + m_A117 += gt[135]; + m_A117 += gt[136]; + m_A117 += gt[137]; + m_A117 += gt[138]; + m_A117 += gt[139]; + m_A117 += gt[140]; + m_A116 += go[135]; + m_A115 += go[136]; + m_A114 += go[137]; + m_A113 += go[138]; + m_A112 += go[139]; + m_A111 += go[140]; + double RHS39 = Idr[135]; + RHS39 += Idr[136]; + RHS39 += Idr[137]; + RHS39 += Idr[138]; + RHS39 += Idr[139]; + RHS39 += Idr[140]; + m_A120 += gt[141]; + m_A120 += gt[142]; + m_A119 += go[141]; + m_A121 += go[142]; + double RHS40 = Idr[141]; + RHS40 += Idr[142]; + m_A126 += gt[143]; + m_A126 += gt[144]; + m_A126 += gt[145]; + m_A126 += gt[146]; + m_A126 += gt[147]; + m_A125 += go[143]; + m_A124 += go[144]; + m_A123 += go[145]; + m_A122 += go[146]; + m_A127 += go[147]; + double RHS41 = Idr[143]; + RHS41 += Idr[144]; + RHS41 += Idr[145]; + RHS41 += Idr[146]; + RHS41 += Idr[147]; + m_A131 += gt[148]; + m_A131 += gt[149]; + m_A131 += gt[150]; + m_A131 += gt[151]; + m_A131 += gt[152]; + m_A130 += go[148]; + m_A129 += go[149]; + m_A128 += go[150]; + double RHS42 = Idr[148]; + RHS42 += Idr[149]; + RHS42 += Idr[150]; + RHS42 += Idr[151]; + RHS42 += Idr[152]; + RHS42 -= go[151] * *cnV[151]; + RHS42 -= go[152] * *cnV[152]; + m_A137 += gt[153]; + m_A137 += gt[154]; + m_A137 += gt[155]; + m_A137 += gt[156]; + m_A137 += gt[157]; + m_A137 += gt[158]; + m_A135 += go[153]; + m_A134 += go[154]; + m_A139 += go[155]; + m_A133 += go[156]; + m_A133 += go[157]; + double RHS43 = Idr[153]; + RHS43 += Idr[154]; + RHS43 += Idr[155]; + RHS43 += Idr[156]; + RHS43 += Idr[157]; + RHS43 += Idr[158]; + RHS43 -= go[158] * *cnV[158]; + m_A148 += gt[159]; + m_A148 += gt[160]; + m_A148 += gt[161]; + m_A148 += gt[162]; + m_A148 += gt[163]; + m_A148 += gt[164]; + m_A148 += gt[165]; + m_A142 += go[159]; + m_A144 += go[160]; + m_A146 += go[161]; + m_A143 += go[162]; + m_A141 += go[163]; + double RHS44 = Idr[159]; + RHS44 += Idr[160]; + RHS44 += Idr[161]; + RHS44 += Idr[162]; + RHS44 += Idr[163]; + RHS44 += Idr[164]; + RHS44 += Idr[165]; + RHS44 -= go[164] * *cnV[164]; + RHS44 -= go[165] * *cnV[165]; + m_A157 += gt[166]; + m_A157 += gt[167]; + m_A157 += gt[168]; + m_A157 += gt[169]; + m_A157 += gt[170]; + m_A157 += gt[171]; + m_A157 += gt[172]; + m_A157 += gt[173]; + m_A157 += gt[174]; + m_A155 += go[166]; + m_A153 += go[167]; + m_A151 += go[168]; + m_A154 += go[169]; + m_A154 += go[170]; + m_A152 += go[171]; + m_A152 += go[172]; + double RHS45 = Idr[166]; + RHS45 += Idr[167]; + RHS45 += Idr[168]; + RHS45 += Idr[169]; + RHS45 += Idr[170]; + RHS45 += Idr[171]; + RHS45 += Idr[172]; + RHS45 += Idr[173]; + RHS45 += Idr[174]; + RHS45 -= go[173] * *cnV[173]; + RHS45 -= go[174] * *cnV[174]; + m_A160 += gt[175]; + m_A160 += gt[176]; + m_A159 += go[175]; + m_A161 += go[176]; + double RHS46 = Idr[175]; + RHS46 += Idr[176]; + m_A177 += gt[177]; + m_A177 += gt[178]; + m_A177 += gt[179]; + m_A177 += gt[180]; + m_A177 += gt[181]; + m_A177 += gt[182]; + m_A177 += gt[183]; + m_A177 += gt[184]; + m_A176 += go[177]; + m_A164 += go[178]; + m_A163 += go[179]; + m_A165 += go[180]; + m_A170 += go[181]; + m_A168 += go[182]; + m_A171 += go[183]; + m_A162 += go[184]; + double RHS47 = Idr[177]; + RHS47 += Idr[178]; + RHS47 += Idr[179]; + RHS47 += Idr[180]; + RHS47 += Idr[181]; + RHS47 += Idr[182]; + RHS47 += Idr[183]; + RHS47 += Idr[184]; const double f0 = 1.0 / m_A0; - const double f0_33 = -f0 * m_A122; - m_A123 += m_A1 * f0_33; - RHS33 += f0_33 * RHS0; + const double f0_27 = -f0 * m_A65; + m_A66 += m_A1 * f0_27; + RHS27 += f0_27 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_34 = -f1 * m_A125; - m_A127 += m_A3 * f1_34; - RHS34 += f1_34 * RHS1; - const double f1_40 = -f1 * m_A161; - m_A164 += m_A3 * f1_40; - RHS40 += f1_40 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_40 = -f2 * m_A162; - m_A164 += m_A5 * f2_40; - m_A165 += m_A6 * f2_40; - RHS40 += f2_40 * RHS2; - const double f2_43 = -f2 * m_A184; - m_A194 += m_A5 * f2_43; - m_A197 += m_A6 * f2_43; - RHS43 += f2_43 * RHS2; + const double f1_27 = -f1 * m_A66; + m_A68 += m_A3 * f1_27; + m_A70 += m_A4 * f1_27; + RHS27 += f1_27 * RHS1; + const double f1_44 = -f1 * m_A141; + m_A145 += m_A3 * f1_44; + m_A148 += m_A4 * f1_44; + RHS44 += f1_44 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_44 = -f2 * m_A142; + m_A146 += m_A6 * f2_44; + RHS44 += f2_44 * RHS2; const double f3 = 1.0 / m_A7; - const double f3_37 = -f3 * m_A136; - m_A138 += m_A8 * f3_37; - m_A139 += m_A9 * f3_37; - RHS37 += f3_37 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_37 = -f4 * m_A137; - m_A139 += m_A11 * f4_37; - m_A140 += m_A12 * f4_37; - RHS37 += f4_37 * RHS4; - const double f4_38 = -f4 * m_A142; - m_A148 += m_A11 * f4_38; - m_A149 += m_A12 * f4_38; - RHS38 += f4_38 * RHS4; - const double f5 = 1.0 / m_A13; - const double f5_42 = -f5 * m_A177; - m_A182 += m_A14 * f5_42; - RHS42 += f5_42 * RHS5; - const double f6 = 1.0 / m_A15; - const double f6_36 = -f6 * m_A131; - m_A133 += m_A16 * f6_36; - RHS36 += f6_36 * RHS6; - const double f7 = 1.0 / m_A17; - const double f7_36 = -f7 * m_A132; - m_A134 += m_A18 * f7_36; - m_A135 += m_A19 * f7_36; - RHS36 += f7_36 * RHS7; - const double f8 = 1.0 / m_A20; - const double f8_27 = -f8 * m_A81; - m_A83 += m_A21 * f8_27; - m_A86 += m_A22 * f8_27; - RHS27 += f8_27 * RHS8; - const double f8_43 = -f8 * m_A185; - m_A187 += m_A21 * f8_43; - m_A197 += m_A22 * f8_43; + const double f3_27 = -f3 * m_A67; + m_A68 += m_A8 * f3_27; + m_A69 += m_A9 * f3_27; + m_A70 += m_A10 * f3_27; + RHS27 += f3_27 * RHS3; + const double f3_35 = -f3 * m_A95; + m_A96 += m_A8 * f3_35; + m_A97 += m_A9 * f3_35; + m_A98 += m_A10 * f3_35; + RHS35 += f3_35 * RHS3; + const double f3_44 = -f3 * m_A143; + m_A145 += m_A8 * f3_44; + m_A146 += m_A9 * f3_44; + m_A148 += m_A10 * f3_44; + RHS44 += f3_44 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_36 = -f4 * m_A99; + m_A102 += m_A12 * f4_36; + m_A103 += m_A13 * f4_36; + RHS36 += f4_36 * RHS4; + const double f4_45 = -f4 * m_A151; + m_A154 += m_A12 * f4_45; + m_A157 += m_A13 * f4_45; + RHS45 += f4_45 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_33 = -f5 * m_A83; + m_A85 += m_A15 * f5_33; + m_A86 += m_A16 * f5_33; + RHS33 += f5_33 * RHS5; + const double f5_36 = -f5 * m_A100; + m_A101 += m_A15 * f5_36; + m_A102 += m_A16 * f5_36; + RHS36 += f5_36 * RHS5; + const double f6 = 1.0 / m_A17; + const double f6_33 = -f6 * m_A84; + m_A85 += m_A18 * f6_33; + RHS33 += f6_33 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_43 = -f7 * m_A133; + m_A137 += m_A20 * f7_43; + m_A138 += m_A21 * f7_43; + m_A139 += m_A22 * f7_43; + RHS43 += f7_43 * RHS7; + const double f7_44 = -f7 * m_A144; + m_A147 += m_A20 * f7_44; + m_A148 += m_A21 * f7_44; + m_A149 += m_A22 * f7_44; + RHS44 += f7_44 * RHS7; + const double f7_45 = -f7 * m_A152; + m_A155 += m_A20 * f7_45; + m_A156 += m_A21 * f7_45; + m_A157 += m_A22 * f7_45; + RHS45 += f7_45 * RHS7; + const double f8 = 1.0 / m_A23; + const double f8_37 = -f8 * m_A104; + m_A106 += m_A24 * f8_37; + m_A107 += m_A25 * f8_37; + RHS37 += f8_37 * RHS8; + const double f8_43 = -f8 * m_A134; + m_A137 += m_A24 * f8_43; + m_A139 += m_A25 * f8_43; RHS43 += f8_43 * RHS8; - const double f9 = 1.0 / m_A23; - const double f9_31 = -f9 * m_A113; - m_A116 += m_A24 * f9_31; - m_A118 += m_A25 * f9_31; - RHS31 += f9_31 * RHS9; - const double f9_43 = -f9 * m_A186; - m_A191 += m_A24 * f9_43; - m_A197 += m_A25 * f9_43; - RHS43 += f9_43 * RHS9; - const double f10 = 1.0 / m_A26; - const double f10_31 = -f10 * m_A114; - m_A116 += m_A27 * f10_31; - RHS31 += f10_31 * RHS10; - const double f11 = 1.0 / m_A28; - const double f11_31 = -f11 * m_A115; - m_A116 += m_A29 * f11_31; - m_A117 += m_A30 * f11_31; - RHS31 += f11_31 * RHS11; - const double f11_39 = -f11 * m_A153; - m_A155 += m_A29 * f11_39; - m_A157 += m_A30 * f11_39; - RHS39 += f11_39 * RHS11; - const double f12 = 1.0 / m_A31; - const double f12_38 = -f12 * m_A143; - m_A149 += m_A32 * f12_38; - m_A150 += m_A33 * f12_38; - RHS38 += f12_38 * RHS12; - const double f12_39 = -f12 * m_A154; - m_A156 += m_A32 * f12_39; - m_A157 += m_A33 * f12_39; - RHS39 += f12_39 * RHS12; + const double f8_45 = -f8 * m_A153; + m_A155 += m_A24 * f8_45; + m_A157 += m_A25 * f8_45; + RHS45 += f8_45 * RHS8; + const double f9 = 1.0 / m_A26; + const double f9_34 = -f9 * m_A87; + m_A93 += m_A27 * f9_34; + RHS34 += f9_34 * RHS9; + const double f10 = 1.0 / m_A28; + const double f10_34 = -f10 * m_A88; + m_A93 += m_A29 * f10_34; + RHS34 += f10_34 * RHS10; + const double f11 = 1.0 / m_A30; + const double f11_34 = -f11 * m_A89; + m_A93 += m_A31 * f11_34; + RHS34 += f11_34 * RHS11; + const double f12 = 1.0 / m_A32; + const double f12_34 = -f12 * m_A90; + m_A93 += m_A33 * f12_34; + RHS34 += f12_34 * RHS12; const double f13 = 1.0 / m_A34; - const double f13_37 = -f13 * m_A138; - m_A139 += m_A35 * f13_37; - m_A141 += m_A36 * f13_37; - RHS37 += f13_37 * RHS13; - const double f13_41 = -f13 * m_A166; - m_A171 += m_A35 * f13_41; - m_A174 += m_A36 * f13_41; - RHS41 += f13_41 * RHS13; - const double f14 = 1.0 / m_A37; - const double f14_24 = -f14 * m_A67; - m_A69 += m_A38 * f14_24; - m_A71 += m_A39 * f14_24; - RHS24 += f14_24 * RHS14; - const double f14_28 = -f14 * m_A87; - m_A90 += m_A38 * f14_28; - m_A93 += m_A39 * f14_28; - RHS28 += f14_28 * RHS14; - const double f15 = 1.0 / m_A40; - const double f15_24 = -f15 * m_A68; - m_A69 += m_A41 * f15_24; - m_A70 += m_A42 * f15_24; - RHS24 += f15_24 * RHS15; - const double f15_25 = -f15 * m_A72; - m_A74 += m_A41 * f15_25; - m_A75 += m_A42 * f15_25; - RHS25 += f15_25 * RHS15; - const double f16 = 1.0 / m_A43; - const double f16_25 = -f16 * m_A73; - m_A75 += m_A44 * f16_25; - RHS25 += f16_25 * RHS16; - const double f17 = 1.0 / m_A45; - const double f17_26 = -f17 * m_A77; - m_A79 += m_A46 * f17_26; - RHS26 += f17_26 * RHS17; - const double f18 = 1.0 / m_A47; - const double f18_26 = -f18 * m_A78; - m_A79 += m_A48 * f18_26; - m_A80 += m_A49 * f18_26; - RHS26 += f18_26 * RHS18; - const double f18_30 = -f18 * m_A106; - m_A108 += m_A48 * f18_30; - m_A110 += m_A49 * f18_30; - RHS30 += f18_30 * RHS18; - const double f19 = 1.0 / m_A50; - const double f19_27 = -f19 * m_A82; - m_A83 += m_A51 * f19_27; - m_A84 += m_A52 * f19_27; - m_A85 += m_A53 * f19_27; - RHS27 += f19_27 * RHS19; - const double f19_28 = -f19 * m_A88; - m_A92 += m_A51 * f19_28; - m_A93 += m_A52 * f19_28; - m_A94 += m_A53 * f19_28; - RHS28 += f19_28 * RHS19; - const double f19_29 = -f19 * m_A97; - m_A100 += m_A51 * f19_29; - m_A101 += m_A52 * f19_29; - m_A102 += m_A53 * f19_29; - RHS29 += f19_29 * RHS19; - const double f20 = 1.0 / m_A54; - const double f20_28 = -f20 * m_A89; - m_A93 += m_A55 * f20_28; - m_A94 += m_A56 * f20_28; - m_A95 += m_A57 * f20_28; - RHS28 += f20_28 * RHS20; - const double f20_29 = -f20 * m_A98; - m_A101 += m_A55 * f20_29; - m_A102 += m_A56 * f20_29; - m_A104 += m_A57 * f20_29; - RHS29 += f20_29 * RHS20; - const double f20_41 = -f20 * m_A167; - m_A168 += m_A55 * f20_41; - m_A169 += m_A56 * f20_41; - m_A174 += m_A57 * f20_41; + const double f13_34 = -f13 * m_A91; + m_A93 += m_A35 * f13_34; + RHS34 += f13_34 * RHS13; + const double f14 = 1.0 / m_A36; + const double f14_42 = -f14 * m_A128; + m_A131 += m_A37 * f14_42; + RHS42 += f14_42 * RHS14; + const double f15 = 1.0 / m_A38; + const double f15_39 = -f15 * m_A111; + m_A117 += m_A39 * f15_39; + RHS39 += f15_39 * RHS15; + const double f16 = 1.0 / m_A40; + const double f16_41 = -f16 * m_A122; + m_A126 += m_A41 * f16_41; + RHS41 += f16_41 * RHS16; + const double f17 = 1.0 / m_A42; + const double f17_38 = -f17 * m_A108; + m_A109 += m_A43 * f17_38; + RHS38 += f17_38 * RHS17; + const double f18 = 1.0 / m_A44; + const double f18_40 = -f18 * m_A119; + m_A120 += m_A45 * f18_40; + RHS40 += f18_40 * RHS18; + const double f19 = 1.0 / m_A46; + const double f19_41 = -f19 * m_A123; + m_A126 += m_A47 * f19_41; + RHS41 += f19_41 * RHS19; + const double f20 = 1.0 / m_A48; + const double f20_41 = -f20 * m_A124; + m_A126 += m_A49 * f20_41; RHS41 += f20_41 * RHS20; - const double f21 = 1.0 / m_A58; - const double f21_29 = -f21 * m_A99; - m_A102 += m_A59 * f21_29; - m_A103 += m_A60 * f21_29; - RHS29 += f21_29 * RHS21; - const double f21_30 = -f21 * m_A107; - m_A109 += m_A59 * f21_30; - m_A110 += m_A60 * f21_30; - RHS30 += f21_30 * RHS21; - const double f22 = 1.0 / m_A61; - const double f22_32 = -f22 * m_A119; - m_A120 += m_A62 * f22_32; - m_A121 += m_A63 * f22_32; - RHS32 += f22_32 * RHS22; - const double f22_38 = -f22 * m_A144; - m_A146 += m_A62 * f22_38; - m_A149 += m_A63 * f22_38; - RHS38 += f22_38 * RHS22; - const double f23 = 1.0 / m_A64; - const double f23_35 = -f23 * m_A128; - m_A129 += m_A65 * f23_35; - m_A130 += m_A66 * f23_35; - RHS35 += f23_35 * RHS23; - const double f23_38 = -f23 * m_A145; - m_A147 += m_A65 * f23_38; - m_A149 += m_A66 * f23_38; - RHS38 += f23_38 * RHS23; - const double f24 = 1.0 / m_A69; - const double f24_25 = -f24 * m_A74; - m_A75 += m_A70 * f24_25; - m_A76 += m_A71 * f24_25; - RHS25 += f24_25 * RHS24; - const double f24_28 = -f24 * m_A90; - m_A91 += m_A70 * f24_28; - m_A93 += m_A71 * f24_28; - RHS28 += f24_28 * RHS24; - const double f25 = 1.0 / m_A75; - const double f25_28 = -f25 * m_A91; - m_A93 += m_A76 * f25_28; - RHS28 += f25_28 * RHS25; - const double f26 = 1.0 / m_A79; - const double f26_30 = -f26 * m_A108; - m_A110 += m_A80 * f26_30; - RHS30 += f26_30 * RHS26; - const double f27 = 1.0 / m_A83; - const double f27_28 = -f27 * m_A92; - m_A93 += m_A84 * f27_28; - m_A94 += m_A85 * f27_28; - m_A96 += m_A86 * f27_28; - RHS28 += f27_28 * RHS27; - const double f27_29 = -f27 * m_A100; - m_A101 += m_A84 * f27_29; - m_A102 += m_A85 * f27_29; - m_A105 += m_A86 * f27_29; - RHS29 += f27_29 * RHS27; - const double f27_43 = -f27 * m_A187; - m_A188 += m_A84 * f27_43; - m_A189 += m_A85 * f27_43; - m_A197 += m_A86 * f27_43; - RHS43 += f27_43 * RHS27; - const double f28 = 1.0 / m_A93; - const double f28_29 = -f28 * m_A101; - m_A102 += m_A94 * f28_29; - m_A104 += m_A95 * f28_29; - m_A105 += m_A96 * f28_29; - RHS29 += f28_29 * RHS28; - const double f28_41 = -f28 * m_A168; - m_A169 += m_A94 * f28_41; - m_A174 += m_A95 * f28_41; - m_A176 += m_A96 * f28_41; - RHS41 += f28_41 * RHS28; - const double f28_43 = -f28 * m_A188; - m_A189 += m_A94 * f28_43; - m_A195 += m_A95 * f28_43; - m_A197 += m_A96 * f28_43; - RHS43 += f28_43 * RHS28; - const double f29 = 1.0 / m_A102; - const double f29_30 = -f29 * m_A109; - m_A110 += m_A103 * f29_30; - m_A111 += m_A104 * f29_30; - m_A112 += m_A105 * f29_30; - RHS30 += f29_30 * RHS29; - const double f29_41 = -f29 * m_A169; - m_A170 += m_A103 * f29_41; - m_A174 += m_A104 * f29_41; - m_A176 += m_A105 * f29_41; - RHS41 += f29_41 * RHS29; - const double f29_43 = -f29 * m_A189; - m_A190 += m_A103 * f29_43; - m_A195 += m_A104 * f29_43; - m_A197 += m_A105 * f29_43; - RHS43 += f29_43 * RHS29; - const double f30 = 1.0 / m_A110; - const double f30_41 = -f30 * m_A170; - m_A174 += m_A111 * f30_41; - m_A176 += m_A112 * f30_41; - RHS41 += f30_41 * RHS30; - const double f30_43 = -f30 * m_A190; - m_A195 += m_A111 * f30_43; - m_A197 += m_A112 * f30_43; - RHS43 += f30_43 * RHS30; - const double f31 = 1.0 / m_A116; - const double f31_39 = -f31 * m_A155; - m_A157 += m_A117 * f31_39; - m_A160 += m_A118 * f31_39; + const double f21 = 1.0 / m_A50; + const double f21_41 = -f21 * m_A125; + m_A126 += m_A51 * f21_41; + RHS41 += f21_41 * RHS21; + const double f22 = 1.0 / m_A52; + const double f22_43 = -f22 * m_A135; + m_A136 += m_A53 * f22_43; + m_A137 += m_A54 * f22_43; + m_A140 += m_A55 * f22_43; + RHS43 += f22_43 * RHS22; + const double f22_47 = -f22 * m_A162; + m_A167 += m_A53 * f22_47; + m_A173 += m_A54 * f22_47; + m_A177 += m_A55 * f22_47; + RHS47 += f22_47 * RHS22; + const double f23 = 1.0 / m_A56; + const double f23_34 = -f23 * m_A92; + m_A93 += m_A57 * f23_34; + m_A94 += m_A58 * f23_34; + RHS34 += f23_34 * RHS23; + const double f23_47 = -f23 * m_A163; + m_A166 += m_A57 * f23_47; + m_A177 += m_A58 * f23_47; + RHS47 += f23_47 * RHS23; + const double f24 = 1.0 / m_A59; + const double f24_46 = -f24 * m_A159; + m_A160 += m_A60 * f24_46; + RHS46 += f24_46 * RHS24; + const double f25 = 1.0 / m_A61; + const double f25_42 = -f25 * m_A129; + m_A131 += m_A62 * f25_42; + RHS42 += f25_42 * RHS25; + const double f26 = 1.0 / m_A63; + const double f26_39 = -f26 * m_A112; + m_A117 += m_A64 * f26_39; + RHS39 += f26_39 * RHS26; + const double f27 = 1.0 / m_A68; + const double f27_35 = -f27 * m_A96; + m_A97 += m_A69 * f27_35; + m_A98 += m_A70 * f27_35; + RHS35 += f27_35 * RHS27; + const double f27_44 = -f27 * m_A145; + m_A146 += m_A69 * f27_44; + m_A148 += m_A70 * f27_44; + RHS44 += f27_44 * RHS27; + const double f28 = 1.0 / m_A71; + const double f28_39 = -f28 * m_A113; + m_A117 += m_A72 * f28_39; + RHS39 += f28_39 * RHS28; + const double f29 = 1.0 / m_A73; + const double f29_39 = -f29 * m_A114; + m_A117 += m_A74 * f29_39; + RHS39 += f29_39 * RHS29; + const double f30 = 1.0 / m_A75; + const double f30_39 = -f30 * m_A115; + m_A117 += m_A76 * f30_39; + RHS39 += f30_39 * RHS30; + const double f31 = 1.0 / m_A77; + const double f31_39 = -f31 * m_A116; + m_A117 += m_A78 * f31_39; + m_A118 += m_A79 * f31_39; RHS39 += f31_39 * RHS31; - const double f31_43 = -f31 * m_A191; - m_A193 += m_A117 * f31_43; - m_A197 += m_A118 * f31_43; - RHS43 += f31_43 * RHS31; - const double f32 = 1.0 / m_A120; - const double f32_38 = -f32 * m_A146; - m_A149 += m_A121 * f32_38; - RHS38 += f32_38 * RHS32; - const double f33 = 1.0 / m_A123; - const double f33_40 = -f33 * m_A163; - m_A164 += m_A124 * f33_40; - RHS40 += f33_40 * RHS33; - const double f34 = 1.0 / m_A126; - const double f34_43 = -f34 * m_A192; - m_A194 += m_A127 * f34_43; - RHS43 += f34_43 * RHS34; - const double f35 = 1.0 / m_A129; - const double f35_38 = -f35 * m_A147; - m_A149 += m_A130 * f35_38; - RHS38 += f35_38 * RHS35; - const double f36 = 1.0 / m_A133; - const double f36_42 = -f36 * m_A178; - m_A179 += m_A134 * f36_42; - m_A182 += m_A135 * f36_42; - RHS42 += f36_42 * RHS36; - const double f37 = 1.0 / m_A139; - const double f37_38 = -f37 * m_A148; - m_A149 += m_A140 * f37_38; - m_A151 += m_A141 * f37_38; - RHS38 += f37_38 * RHS37; - const double f37_41 = -f37 * m_A171; - m_A172 += m_A140 * f37_41; - m_A174 += m_A141 * f37_41; - RHS41 += f37_41 * RHS37; - const double f38 = 1.0 / m_A149; - const double f38_39 = -f38 * m_A156; - m_A157 += m_A150 * f38_39; - m_A158 += m_A151 * f38_39; - m_A159 += m_A152 * f38_39; - RHS39 += f38_39 * RHS38; - const double f38_41 = -f38 * m_A172; - m_A173 += m_A150 * f38_41; - m_A174 += m_A151 * f38_41; - m_A175 += m_A152 * f38_41; - RHS41 += f38_41 * RHS38; - const double f38_42 = -f38 * m_A179; - m_A180 += m_A150 * f38_42; - m_A181 += m_A151 * f38_42; - m_A182 += m_A152 * f38_42; - RHS42 += f38_42 * RHS38; - const double f39 = 1.0 / m_A157; - const double f39_41 = -f39 * m_A173; - m_A174 += m_A158 * f39_41; - m_A175 += m_A159 * f39_41; - m_A176 += m_A160 * f39_41; - RHS41 += f39_41 * RHS39; - const double f39_42 = -f39 * m_A180; - m_A181 += m_A158 * f39_42; - m_A182 += m_A159 * f39_42; - m_A183 += m_A160 * f39_42; - RHS42 += f39_42 * RHS39; - const double f39_43 = -f39 * m_A193; - m_A195 += m_A158 * f39_43; - m_A196 += m_A159 * f39_43; - m_A197 += m_A160 * f39_43; - RHS43 += f39_43 * RHS39; - const double f40 = 1.0 / m_A164; - const double f40_43 = -f40 * m_A194; - m_A197 += m_A165 * f40_43; - RHS43 += f40_43 * RHS40; - const double f41 = 1.0 / m_A174; - const double f41_42 = -f41 * m_A181; - m_A182 += m_A175 * f41_42; - m_A183 += m_A176 * f41_42; - RHS42 += f41_42 * RHS41; - const double f41_43 = -f41 * m_A195; - m_A196 += m_A175 * f41_43; - m_A197 += m_A176 * f41_43; - RHS43 += f41_43 * RHS41; - const double f42 = 1.0 / m_A182; - const double f42_43 = -f42 * m_A196; - m_A197 += m_A183 * f42_43; - RHS43 += f42_43 * RHS42; - V[43] = RHS43 / m_A197; + const double f31_47 = -f31 * m_A164; + m_A169 += m_A78 * f31_47; + m_A177 += m_A79 * f31_47; + RHS47 += f31_47 * RHS31; + const double f32 = 1.0 / m_A80; + const double f32_42 = -f32 * m_A130; + m_A131 += m_A81 * f32_42; + m_A132 += m_A82 * f32_42; + RHS42 += f32_42 * RHS32; + const double f32_47 = -f32 * m_A165; + m_A172 += m_A81 * f32_47; + m_A177 += m_A82 * f32_47; + RHS47 += f32_47 * RHS32; + const double f33 = 1.0 / m_A85; + const double f33_36 = -f33 * m_A101; + m_A102 += m_A86 * f33_36; + RHS36 += f33_36 * RHS33; + const double f34 = 1.0 / m_A93; + const double f34_47 = -f34 * m_A166; + m_A177 += m_A94 * f34_47; + RHS47 += f34_47 * RHS34; + const double f35 = 1.0 / m_A97; + const double f35_44 = -f35 * m_A146; + m_A148 += m_A98 * f35_44; + RHS44 += f35_44 * RHS35; + const double f36 = 1.0 / m_A102; + const double f36_45 = -f36 * m_A154; + m_A157 += m_A103 * f36_45; + RHS45 += f36_45 * RHS36; + const double f37 = 1.0 / m_A105; + const double f37_43 = -f37 * m_A136; + m_A137 += m_A106 * f37_43; + m_A139 += m_A107 * f37_43; + RHS43 += f37_43 * RHS37; + const double f37_47 = -f37 * m_A167; + m_A173 += m_A106 * f37_47; + m_A175 += m_A107 * f37_47; + RHS47 += f37_47 * RHS37; + const double f38 = 1.0 / m_A109; + const double f38_47 = -f38 * m_A168; + m_A177 += m_A110 * f38_47; + RHS47 += f38_47 * RHS38; + const double f39 = 1.0 / m_A117; + const double f39_47 = -f39 * m_A169; + m_A177 += m_A118 * f39_47; + RHS47 += f39_47 * RHS39; + const double f40 = 1.0 / m_A120; + const double f40_47 = -f40 * m_A170; + m_A177 += m_A121 * f40_47; + RHS47 += f40_47 * RHS40; + const double f41 = 1.0 / m_A126; + const double f41_47 = -f41 * m_A171; + m_A177 += m_A127 * f41_47; + RHS47 += f41_47 * RHS41; + const double f42 = 1.0 / m_A131; + const double f42_47 = -f42 * m_A172; + m_A177 += m_A132 * f42_47; + RHS47 += f42_47 * RHS42; + const double f43 = 1.0 / m_A137; + const double f43_44 = -f43 * m_A147; + m_A148 += m_A138 * f43_44; + m_A149 += m_A139 * f43_44; + m_A150 += m_A140 * f43_44; + RHS44 += f43_44 * RHS43; + const double f43_45 = -f43 * m_A155; + m_A156 += m_A138 * f43_45; + m_A157 += m_A139 * f43_45; + m_A158 += m_A140 * f43_45; + RHS45 += f43_45 * RHS43; + const double f43_47 = -f43 * m_A173; + m_A174 += m_A138 * f43_47; + m_A175 += m_A139 * f43_47; + m_A177 += m_A140 * f43_47; + RHS47 += f43_47 * RHS43; + const double f44 = 1.0 / m_A148; + const double f44_45 = -f44 * m_A156; + m_A157 += m_A149 * f44_45; + m_A158 += m_A150 * f44_45; + RHS45 += f44_45 * RHS44; + const double f44_47 = -f44 * m_A174; + m_A175 += m_A149 * f44_47; + m_A177 += m_A150 * f44_47; + RHS47 += f44_47 * RHS44; + const double f45 = 1.0 / m_A157; + const double f45_47 = -f45 * m_A175; + m_A177 += m_A158 * f45_47; + RHS47 += f45_47 * RHS45; + const double f46 = 1.0 / m_A160; + const double f46_47 = -f46 * m_A176; + m_A177 += m_A161 * f46_47; + RHS47 += f46_47 * RHS46; + V[47] = RHS47 / m_A177; + double tmp46 = 0.0; + tmp46 += m_A161 * V[47]; + V[46] = (RHS46 - tmp46) / m_A160; + double tmp45 = 0.0; + tmp45 += m_A158 * V[47]; + V[45] = (RHS45 - tmp45) / m_A157; + double tmp44 = 0.0; + tmp44 += m_A149 * V[45]; + tmp44 += m_A150 * V[47]; + V[44] = (RHS44 - tmp44) / m_A148; + double tmp43 = 0.0; + tmp43 += m_A138 * V[44]; + tmp43 += m_A139 * V[45]; + tmp43 += m_A140 * V[47]; + V[43] = (RHS43 - tmp43) / m_A137; double tmp42 = 0.0; - tmp42 += m_A183 * V[43]; - V[42] = (RHS42 - tmp42) / m_A182; + tmp42 += m_A132 * V[47]; + V[42] = (RHS42 - tmp42) / m_A131; double tmp41 = 0.0; - tmp41 += m_A175 * V[42]; - tmp41 += m_A176 * V[43]; - V[41] = (RHS41 - tmp41) / m_A174; + tmp41 += m_A127 * V[47]; + V[41] = (RHS41 - tmp41) / m_A126; double tmp40 = 0.0; - tmp40 += m_A165 * V[43]; - V[40] = (RHS40 - tmp40) / m_A164; + tmp40 += m_A121 * V[47]; + V[40] = (RHS40 - tmp40) / m_A120; double tmp39 = 0.0; - tmp39 += m_A158 * V[41]; - tmp39 += m_A159 * V[42]; - tmp39 += m_A160 * V[43]; - V[39] = (RHS39 - tmp39) / m_A157; + tmp39 += m_A118 * V[47]; + V[39] = (RHS39 - tmp39) / m_A117; double tmp38 = 0.0; - tmp38 += m_A150 * V[39]; - tmp38 += m_A151 * V[41]; - tmp38 += m_A152 * V[42]; - V[38] = (RHS38 - tmp38) / m_A149; + tmp38 += m_A110 * V[47]; + V[38] = (RHS38 - tmp38) / m_A109; double tmp37 = 0.0; - tmp37 += m_A140 * V[38]; - tmp37 += m_A141 * V[41]; - V[37] = (RHS37 - tmp37) / m_A139; + tmp37 += m_A106 * V[43]; + tmp37 += m_A107 * V[45]; + V[37] = (RHS37 - tmp37) / m_A105; double tmp36 = 0.0; - tmp36 += m_A134 * V[38]; - tmp36 += m_A135 * V[42]; - V[36] = (RHS36 - tmp36) / m_A133; + tmp36 += m_A103 * V[45]; + V[36] = (RHS36 - tmp36) / m_A102; double tmp35 = 0.0; - tmp35 += m_A130 * V[38]; - V[35] = (RHS35 - tmp35) / m_A129; + tmp35 += m_A98 * V[44]; + V[35] = (RHS35 - tmp35) / m_A97; double tmp34 = 0.0; - tmp34 += m_A127 * V[40]; - V[34] = (RHS34 - tmp34) / m_A126; + tmp34 += m_A94 * V[47]; + V[34] = (RHS34 - tmp34) / m_A93; double tmp33 = 0.0; - tmp33 += m_A124 * V[40]; - V[33] = (RHS33 - tmp33) / m_A123; + tmp33 += m_A86 * V[36]; + V[33] = (RHS33 - tmp33) / m_A85; double tmp32 = 0.0; - tmp32 += m_A121 * V[38]; - V[32] = (RHS32 - tmp32) / m_A120; + tmp32 += m_A81 * V[42]; + tmp32 += m_A82 * V[47]; + V[32] = (RHS32 - tmp32) / m_A80; double tmp31 = 0.0; - tmp31 += m_A117 * V[39]; - tmp31 += m_A118 * V[43]; - V[31] = (RHS31 - tmp31) / m_A116; + tmp31 += m_A78 * V[39]; + tmp31 += m_A79 * V[47]; + V[31] = (RHS31 - tmp31) / m_A77; double tmp30 = 0.0; - tmp30 += m_A111 * V[41]; - tmp30 += m_A112 * V[43]; - V[30] = (RHS30 - tmp30) / m_A110; + tmp30 += m_A76 * V[39]; + V[30] = (RHS30 - tmp30) / m_A75; double tmp29 = 0.0; - tmp29 += m_A103 * V[30]; - tmp29 += m_A104 * V[41]; - tmp29 += m_A105 * V[43]; - V[29] = (RHS29 - tmp29) / m_A102; + tmp29 += m_A74 * V[39]; + V[29] = (RHS29 - tmp29) / m_A73; double tmp28 = 0.0; - tmp28 += m_A94 * V[29]; - tmp28 += m_A95 * V[41]; - tmp28 += m_A96 * V[43]; - V[28] = (RHS28 - tmp28) / m_A93; + tmp28 += m_A72 * V[39]; + V[28] = (RHS28 - tmp28) / m_A71; double tmp27 = 0.0; - tmp27 += m_A84 * V[28]; - tmp27 += m_A85 * V[29]; - tmp27 += m_A86 * V[43]; - V[27] = (RHS27 - tmp27) / m_A83; + tmp27 += m_A69 * V[35]; + tmp27 += m_A70 * V[44]; + V[27] = (RHS27 - tmp27) / m_A68; double tmp26 = 0.0; - tmp26 += m_A80 * V[30]; - V[26] = (RHS26 - tmp26) / m_A79; + tmp26 += m_A64 * V[39]; + V[26] = (RHS26 - tmp26) / m_A63; double tmp25 = 0.0; - tmp25 += m_A76 * V[28]; - V[25] = (RHS25 - tmp25) / m_A75; + tmp25 += m_A62 * V[42]; + V[25] = (RHS25 - tmp25) / m_A61; double tmp24 = 0.0; - tmp24 += m_A70 * V[25]; - tmp24 += m_A71 * V[28]; - V[24] = (RHS24 - tmp24) / m_A69; + tmp24 += m_A60 * V[46]; + V[24] = (RHS24 - tmp24) / m_A59; double tmp23 = 0.0; - tmp23 += m_A65 * V[35]; - tmp23 += m_A66 * V[38]; - V[23] = (RHS23 - tmp23) / m_A64; + tmp23 += m_A57 * V[34]; + tmp23 += m_A58 * V[47]; + V[23] = (RHS23 - tmp23) / m_A56; double tmp22 = 0.0; - tmp22 += m_A62 * V[32]; - tmp22 += m_A63 * V[38]; - V[22] = (RHS22 - tmp22) / m_A61; + tmp22 += m_A53 * V[37]; + tmp22 += m_A54 * V[43]; + tmp22 += m_A55 * V[47]; + V[22] = (RHS22 - tmp22) / m_A52; double tmp21 = 0.0; - tmp21 += m_A59 * V[29]; - tmp21 += m_A60 * V[30]; - V[21] = (RHS21 - tmp21) / m_A58; + tmp21 += m_A51 * V[41]; + V[21] = (RHS21 - tmp21) / m_A50; double tmp20 = 0.0; - tmp20 += m_A55 * V[28]; - tmp20 += m_A56 * V[29]; - tmp20 += m_A57 * V[41]; - V[20] = (RHS20 - tmp20) / m_A54; + tmp20 += m_A49 * V[41]; + V[20] = (RHS20 - tmp20) / m_A48; double tmp19 = 0.0; - tmp19 += m_A51 * V[27]; - tmp19 += m_A52 * V[28]; - tmp19 += m_A53 * V[29]; - V[19] = (RHS19 - tmp19) / m_A50; + tmp19 += m_A47 * V[41]; + V[19] = (RHS19 - tmp19) / m_A46; double tmp18 = 0.0; - tmp18 += m_A48 * V[26]; - tmp18 += m_A49 * V[30]; - V[18] = (RHS18 - tmp18) / m_A47; + tmp18 += m_A45 * V[40]; + V[18] = (RHS18 - tmp18) / m_A44; double tmp17 = 0.0; - tmp17 += m_A46 * V[26]; - V[17] = (RHS17 - tmp17) / m_A45; + tmp17 += m_A43 * V[38]; + V[17] = (RHS17 - tmp17) / m_A42; double tmp16 = 0.0; - tmp16 += m_A44 * V[25]; - V[16] = (RHS16 - tmp16) / m_A43; + tmp16 += m_A41 * V[41]; + V[16] = (RHS16 - tmp16) / m_A40; double tmp15 = 0.0; - tmp15 += m_A41 * V[24]; - tmp15 += m_A42 * V[25]; - V[15] = (RHS15 - tmp15) / m_A40; + tmp15 += m_A39 * V[39]; + V[15] = (RHS15 - tmp15) / m_A38; double tmp14 = 0.0; - tmp14 += m_A38 * V[24]; - tmp14 += m_A39 * V[28]; - V[14] = (RHS14 - tmp14) / m_A37; + tmp14 += m_A37 * V[42]; + V[14] = (RHS14 - tmp14) / m_A36; double tmp13 = 0.0; - tmp13 += m_A35 * V[37]; - tmp13 += m_A36 * V[41]; + tmp13 += m_A35 * V[34]; V[13] = (RHS13 - tmp13) / m_A34; double tmp12 = 0.0; - tmp12 += m_A32 * V[38]; - tmp12 += m_A33 * V[39]; - V[12] = (RHS12 - tmp12) / m_A31; + tmp12 += m_A33 * V[34]; + V[12] = (RHS12 - tmp12) / m_A32; double tmp11 = 0.0; - tmp11 += m_A29 * V[31]; - tmp11 += m_A30 * V[39]; - V[11] = (RHS11 - tmp11) / m_A28; + tmp11 += m_A31 * V[34]; + V[11] = (RHS11 - tmp11) / m_A30; double tmp10 = 0.0; - tmp10 += m_A27 * V[31]; - V[10] = (RHS10 - tmp10) / m_A26; + tmp10 += m_A29 * V[34]; + V[10] = (RHS10 - tmp10) / m_A28; double tmp9 = 0.0; - tmp9 += m_A24 * V[31]; - tmp9 += m_A25 * V[43]; - V[9] = (RHS9 - tmp9) / m_A23; + tmp9 += m_A27 * V[34]; + V[9] = (RHS9 - tmp9) / m_A26; double tmp8 = 0.0; - tmp8 += m_A21 * V[27]; - tmp8 += m_A22 * V[43]; - V[8] = (RHS8 - tmp8) / m_A20; + tmp8 += m_A24 * V[43]; + tmp8 += m_A25 * V[45]; + V[8] = (RHS8 - tmp8) / m_A23; double tmp7 = 0.0; - tmp7 += m_A18 * V[38]; - tmp7 += m_A19 * V[42]; - V[7] = (RHS7 - tmp7) / m_A17; + tmp7 += m_A20 * V[43]; + tmp7 += m_A21 * V[44]; + tmp7 += m_A22 * V[45]; + V[7] = (RHS7 - tmp7) / m_A19; double tmp6 = 0.0; - tmp6 += m_A16 * V[36]; - V[6] = (RHS6 - tmp6) / m_A15; + tmp6 += m_A18 * V[33]; + V[6] = (RHS6 - tmp6) / m_A17; double tmp5 = 0.0; - tmp5 += m_A14 * V[42]; - V[5] = (RHS5 - tmp5) / m_A13; + tmp5 += m_A15 * V[33]; + tmp5 += m_A16 * V[36]; + V[5] = (RHS5 - tmp5) / m_A14; double tmp4 = 0.0; - tmp4 += m_A11 * V[37]; - tmp4 += m_A12 * V[38]; - V[4] = (RHS4 - tmp4) / m_A10; + tmp4 += m_A12 * V[36]; + tmp4 += m_A13 * V[45]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A8 * V[13]; - tmp3 += m_A9 * V[37]; + tmp3 += m_A8 * V[27]; + tmp3 += m_A9 * V[35]; + tmp3 += m_A10 * V[44]; V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A5 * V[40]; - tmp2 += m_A6 * V[43]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[35]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[40]; + tmp1 += m_A3 * V[27]; + tmp1 += m_A4 * V[44]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[33]; + tmp0 += m_A1 * V[1]; V[0] = (RHS0 - tmp0) / m_A0; } -// gamemachine -static void nl_gcr_491f95430bfdfd05_19_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// tankbatt +static void nl_gcr_328d886b444b586b_137_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -6454,6 +6896,124 @@ double m_A16(0.0); double m_A17(0.0); double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -6466,315 +7026,716 @@ m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; + m_A2 += gt[6]; m_A3 += go[3]; + m_A3 += go[4]; double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; + RHS1 += Idr[6]; RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; + RHS1 -= go[6] * *cnV[6]; m_A4 += gt[7]; m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[7]; + m_A7 += go[8]; + m_A6 += go[9]; + double RHS2 = Idr[7]; RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[9]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; m_A8 += gt[12]; m_A8 += gt[13]; m_A8 += gt[14]; m_A9 += go[12]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - RHS4 -= go[13] * *cnV[13]; - RHS4 -= go[14] * *cnV[14]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; m_A10 += gt[15]; m_A10 += gt[16]; m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; m_A11 += go[15]; - double RHS5 = Idr[15]; - RHS5 += Idr[16]; - RHS5 += Idr[17]; - RHS5 -= go[16] * *cnV[16]; - RHS5 -= go[17] * *cnV[17]; - m_A18 += gt[18]; - m_A18 += gt[19]; - m_A18 += gt[20]; - m_A18 += gt[21]; - m_A18 += gt[22]; - m_A18 += gt[23]; - m_A18 += gt[24]; - m_A17 += go[18]; - m_A16 += go[19]; - m_A15 += go[20]; - m_A14 += go[21]; - m_A13 += go[22]; - m_A12 += go[23]; - double RHS6 = Idr[18]; - RHS6 += Idr[19]; - RHS6 += Idr[20]; - RHS6 += Idr[21]; - RHS6 += Idr[22]; - RHS6 += Idr[23]; - RHS6 += Idr[24]; - RHS6 -= go[24] * *cnV[24]; - const double f0 = 1.0 / m_A0; - const double f0_6 = -f0 * m_A12; - m_A18 += m_A1 * f0_6; - RHS6 += f0_6 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A13; - m_A18 += m_A3 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A14; - m_A18 += m_A5 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A15; - m_A18 += m_A7 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_6 = -f4 * m_A16; - m_A18 += m_A9 * f4_6; - RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_6 = -f5 * m_A17; - m_A18 += m_A11 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A18; - double tmp5 = 0.0; - tmp5 += m_A11 * V[6]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[6]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[6]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// ripoff -static void nl_gcr_4b5ecfbb8f9fa97b_29_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A6 += go[4]; - m_A5 += go[5]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - m_A7 += gt[6]; - m_A7 += gt[7]; - m_A7 += gt[8]; - m_A7 += gt[9]; - m_A7 += gt[10]; - m_A7 += gt[11]; - m_A7 += gt[12]; - m_A8 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - RHS3 += Idr[8]; - RHS3 += Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 -= go[7] * *cnV[7]; - RHS3 -= go[8] * *cnV[8]; - RHS3 -= go[9] * *cnV[9]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A11 += go[13]; - m_A10 += go[14]; - double RHS4 = Idr[13]; - RHS4 += Idr[14]; - m_A14 += gt[15]; - m_A14 += gt[16]; - m_A14 += gt[17]; - m_A12 += go[15]; - m_A13 += go[16]; - double RHS5 = Idr[15]; - RHS5 += Idr[16]; - RHS5 += Idr[17]; - RHS5 -= go[17] * *cnV[17]; - m_A18 += gt[18]; - m_A18 += gt[19]; - m_A18 += gt[20]; - m_A18 += gt[21]; - m_A19 += go[18]; - m_A19 += go[19]; - m_A16 += go[20]; - double RHS6 = Idr[18]; - RHS6 += Idr[19]; - RHS6 += Idr[20]; - RHS6 += Idr[21]; - RHS6 -= go[21] * *cnV[21]; - m_A22 += gt[22]; - m_A22 += gt[23]; - m_A22 += gt[24]; - m_A21 += go[22]; - m_A20 += go[23]; - double RHS7 = Idr[22]; - RHS7 += Idr[23]; - RHS7 += Idr[24]; - RHS7 -= go[24] * *cnV[24]; - m_A28 += gt[25]; - m_A28 += gt[26]; - m_A28 += gt[27]; - m_A28 += gt[28]; - m_A28 += gt[29]; - m_A28 += gt[30]; - m_A24 += go[25]; - m_A25 += go[26]; - m_A26 += go[27]; - m_A26 += go[28]; - double RHS8 = Idr[25]; - RHS8 += Idr[26]; - RHS8 += Idr[27]; - RHS8 += Idr[28]; - RHS8 += Idr[29]; - RHS8 += Idr[30]; - RHS8 -= go[29] * *cnV[29]; - RHS8 -= go[30] * *cnV[30]; + m_A12 += go[16]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A14 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + m_A15 += gt[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[25]; + double RHS6 = Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A17 += gt[30]; + m_A19 += go[28]; + m_A18 += go[29]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 -= go[30] * *cnV[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A21 += go[31]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 -= go[32] * *cnV[32]; + RHS8 -= go[33] * *cnV[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A24 += go[34]; + m_A23 += go[35]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 -= go[36] * *cnV[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A25 += gt[39]; + m_A25 += gt[40]; + m_A25 += gt[41]; + m_A25 += gt[42]; + m_A25 += gt[43]; + m_A27 += go[37]; + m_A26 += go[38]; + double RHS10 = Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 -= go[39] * *cnV[39]; + RHS10 -= go[40] * *cnV[40]; + RHS10 -= go[41] * *cnV[41]; + RHS10 -= go[42] * *cnV[42]; + RHS10 -= go[43] * *cnV[43]; + m_A28 += gt[44]; + m_A28 += gt[45]; + m_A28 += gt[46]; + m_A28 += gt[47]; + m_A28 += gt[48]; + m_A28 += gt[49]; + m_A30 += go[44]; + m_A31 += go[45]; + m_A29 += go[46]; + double RHS11 = Idr[44]; + RHS11 += Idr[45]; + RHS11 += Idr[46]; + RHS11 += Idr[47]; + RHS11 += Idr[48]; + RHS11 += Idr[49]; + RHS11 -= go[47] * *cnV[47]; + RHS11 -= go[48] * *cnV[48]; + RHS11 -= go[49] * *cnV[49]; + m_A32 += gt[50]; + m_A32 += gt[51]; + m_A32 += gt[52]; + m_A32 += gt[53]; + m_A35 += go[50]; + m_A34 += go[51]; + m_A33 += go[52]; + double RHS12 = Idr[50]; + RHS12 += Idr[51]; + RHS12 += Idr[52]; + RHS12 += Idr[53]; + RHS12 -= go[53] * *cnV[53]; + m_A36 += gt[54]; + m_A36 += gt[55]; + m_A36 += gt[56]; + m_A37 += go[54]; + double RHS13 = Idr[54]; + RHS13 += Idr[55]; + RHS13 += Idr[56]; + RHS13 -= go[55] * *cnV[55]; + RHS13 -= go[56] * *cnV[56]; + m_A38 += gt[57]; + m_A38 += gt[58]; + m_A38 += gt[59]; + m_A39 += go[57]; + double RHS14 = Idr[57]; + RHS14 += Idr[58]; + RHS14 += Idr[59]; + RHS14 -= go[58] * *cnV[58]; + RHS14 -= go[59] * *cnV[59]; + m_A44 += gt[60]; + m_A44 += gt[61]; + m_A41 += go[60]; + m_A40 += go[61]; + double RHS15 = Idr[60]; + RHS15 += Idr[61]; + m_A50 += gt[62]; + m_A50 += gt[63]; + m_A49 += go[62]; + m_A48 += go[63]; + double RHS16 = Idr[62]; + RHS16 += Idr[63]; + m_A52 += gt[64]; + m_A52 += gt[65]; + m_A52 += gt[66]; + m_A52 += gt[67]; + m_A55 += go[64]; + m_A54 += go[65]; + m_A53 += go[66]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + RHS17 += Idr[66]; + RHS17 += Idr[67]; + RHS17 -= go[67] * *cnV[67]; + m_A58 += gt[68]; + m_A58 += gt[69]; + m_A57 += go[68]; + m_A56 += go[69]; + double RHS18 = Idr[68]; + RHS18 += Idr[69]; + m_A60 += gt[70]; + m_A60 += gt[71]; + m_A60 += gt[72]; + m_A61 += go[70]; + double RHS19 = Idr[70]; + RHS19 += Idr[71]; + RHS19 += Idr[72]; + RHS19 -= go[71] * *cnV[71]; + RHS19 -= go[72] * *cnV[72]; + m_A63 += gt[73]; + m_A63 += gt[74]; + m_A64 += go[73]; + m_A62 += go[74]; + double RHS20 = Idr[73]; + RHS20 += Idr[74]; + m_A66 += gt[75]; + m_A66 += gt[76]; + m_A67 += go[75]; + m_A65 += go[76]; + double RHS21 = Idr[75]; + RHS21 += Idr[76]; + m_A73 += gt[77]; + m_A73 += gt[78]; + m_A73 += gt[79]; + m_A73 += gt[80]; + m_A71 += go[77]; + m_A69 += go[78]; + m_A68 += go[79]; + m_A68 += go[80]; + double RHS22 = Idr[77]; + RHS22 += Idr[78]; + RHS22 += Idr[79]; + RHS22 += Idr[80]; + m_A79 += gt[81]; + m_A79 += gt[82]; + m_A77 += go[81]; + m_A76 += go[82]; + double RHS23 = Idr[81]; + RHS23 += Idr[82]; + m_A84 += gt[83]; + m_A84 += gt[84]; + m_A84 += gt[85]; + m_A84 += gt[86]; + m_A84 += gt[87]; + m_A84 += gt[88]; + m_A84 += gt[89]; + m_A85 += go[83]; + m_A82 += go[84]; + double RHS24 = Idr[83]; + RHS24 += Idr[84]; + RHS24 += Idr[85]; + RHS24 += Idr[86]; + RHS24 += Idr[87]; + RHS24 += Idr[88]; + RHS24 += Idr[89]; + RHS24 -= go[85] * *cnV[85]; + RHS24 -= go[86] * *cnV[86]; + RHS24 -= go[87] * *cnV[87]; + RHS24 -= go[88] * *cnV[88]; + RHS24 -= go[89] * *cnV[89]; + m_A91 += gt[90]; + m_A91 += gt[91]; + m_A91 += gt[92]; + m_A93 += go[90]; + m_A88 += go[91]; + m_A87 += go[92]; + double RHS25 = Idr[90]; + RHS25 += Idr[91]; + RHS25 += Idr[92]; + m_A97 += gt[93]; + m_A97 += gt[94]; + m_A96 += go[93]; + m_A94 += go[94]; + double RHS26 = Idr[93]; + RHS26 += Idr[94]; + m_A105 += gt[95]; + m_A105 += gt[96]; + m_A105 += gt[97]; + m_A107 += go[95]; + m_A101 += go[96]; + m_A100 += go[97]; + double RHS27 = Idr[95]; + RHS27 += Idr[96]; + RHS27 += Idr[97]; + m_A111 += gt[98]; + m_A111 += gt[99]; + m_A111 += gt[100]; + m_A111 += gt[101]; + m_A111 += gt[102]; + m_A112 += go[98]; + m_A110 += go[99]; + m_A109 += go[100]; + m_A108 += go[101]; + double RHS28 = Idr[98]; + RHS28 += Idr[99]; + RHS28 += Idr[100]; + RHS28 += Idr[101]; + RHS28 += Idr[102]; + RHS28 -= go[102] * *cnV[102]; + m_A118 += gt[103]; + m_A118 += gt[104]; + m_A118 += gt[105]; + m_A118 += gt[106]; + m_A118 += gt[107]; + m_A118 += gt[108]; + m_A115 += go[103]; + m_A120 += go[104]; + m_A116 += go[105]; + m_A113 += go[106]; + double RHS29 = Idr[103]; + RHS29 += Idr[104]; + RHS29 += Idr[105]; + RHS29 += Idr[106]; + RHS29 += Idr[107]; + RHS29 += Idr[108]; + RHS29 -= go[107] * *cnV[107]; + RHS29 -= go[108] * *cnV[108]; + m_A129 += gt[109]; + m_A129 += gt[110]; + m_A129 += gt[111]; + m_A129 += gt[112]; + m_A129 += gt[113]; + m_A129 += gt[114]; + m_A121 += go[109]; + m_A130 += go[110]; + m_A127 += go[111]; + m_A123 += go[112]; + double RHS30 = Idr[109]; + RHS30 += Idr[110]; + RHS30 += Idr[111]; + RHS30 += Idr[112]; + RHS30 += Idr[113]; + RHS30 += Idr[114]; + RHS30 -= go[113] * *cnV[113]; + RHS30 -= go[114] * *cnV[114]; + m_A136 += gt[115]; + m_A136 += gt[116]; + m_A136 += gt[117]; + m_A136 += gt[118]; + m_A136 += gt[119]; + m_A133 += go[115]; + m_A134 += go[116]; + m_A135 += go[117]; + m_A132 += go[118]; + m_A131 += go[119]; + double RHS31 = Idr[115]; + RHS31 += Idr[116]; + RHS31 += Idr[117]; + RHS31 += Idr[118]; + RHS31 += Idr[119]; const double f0 = 1.0 / m_A0; - const double f0_7 = -f0 * m_A20; - m_A22 += m_A1 * f0_7; - RHS7 += f0_7 * RHS0; + const double f0_15 = -f0 * m_A40; + m_A44 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A12; - m_A14 += m_A3 * f1_5; - RHS5 += f1_5 * RHS1; + const double f1_22 = -f1 * m_A68; + m_A73 += m_A3 * f1_22; + RHS22 += f1_22 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_5 = -f2 * m_A13; - m_A14 += m_A5 * f2_5; - m_A15 += m_A6 * f2_5; - RHS5 += f2_5 * RHS2; - const double f2_6 = -f2 * m_A16; - m_A17 += m_A5 * f2_6; - m_A18 += m_A6 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_8 = -f3 * m_A24; - m_A26 += m_A8 * f3_8; - RHS8 += f3_8 * RHS3; - const double f4 = 1.0 / m_A9; - const double f4_7 = -f4 * m_A21; - m_A22 += m_A10 * f4_7; - m_A23 += m_A11 * f4_7; - RHS7 += f4_7 * RHS4; - const double f4_8 = -f4 * m_A25; - m_A27 += m_A10 * f4_8; - m_A28 += m_A11 * f4_8; - RHS8 += f4_8 * RHS4; - const double f5 = 1.0 / m_A14; - const double f5_6 = -f5 * m_A17; - m_A18 += m_A15 * f5_6; - RHS6 += f5_6 * RHS5; - const double f6 = 1.0 / m_A18; - const double f6_8 = -f6 * m_A26; - m_A28 += m_A19 * f6_8; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A22; - const double f7_8 = -f7 * m_A27; - m_A28 += m_A23 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A28; + const double f2_15 = -f2 * m_A41; + m_A42 += m_A5 * f2_15; + m_A44 += m_A6 * f2_15; + m_A45 += m_A7 * f2_15; + RHS15 += f2_15 * RHS2; + const double f2_22 = -f2 * m_A69; + m_A70 += m_A5 * f2_22; + m_A72 += m_A6 * f2_22; + m_A73 += m_A7 * f2_22; + RHS22 += f2_22 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_16 = -f3 * m_A48; + m_A50 += m_A9 * f3_16; + RHS16 += f3_16 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_15 = -f4 * m_A42; + m_A43 += m_A11 * f4_15; + m_A45 += m_A12 * f4_15; + RHS15 += f4_15 * RHS4; + const double f4_22 = -f4 * m_A70; + m_A71 += m_A11 * f4_22; + m_A73 += m_A12 * f4_22; + RHS22 += f4_22 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_20 = -f5 * m_A62; + m_A63 += m_A14 * f5_20; + RHS20 += f5_20 * RHS5; + const double f6 = 1.0 / m_A15; + const double f6_18 = -f6 * m_A56; + m_A58 += m_A16 * f6_18; + RHS18 += f6_18 * RHS6; + const double f7 = 1.0 / m_A17; + const double f7_16 = -f7 * m_A49; + m_A50 += m_A18 * f7_16; + m_A51 += m_A19 * f7_16; + RHS16 += f7_16 * RHS7; + const double f7_26 = -f7 * m_A94; + m_A95 += m_A18 * f7_26; + m_A97 += m_A19 * f7_26; + RHS26 += f7_26 * RHS7; + const double f8 = 1.0 / m_A20; + const double f8_21 = -f8 * m_A65; + m_A66 += m_A21 * f8_21; + RHS21 += f8_21 * RHS8; + const double f9 = 1.0 / m_A22; + const double f9_18 = -f9 * m_A57; + m_A58 += m_A23 * f9_18; + m_A59 += m_A24 * f9_18; + RHS18 += f9_18 * RHS9; + const double f9_23 = -f9 * m_A76; + m_A78 += m_A23 * f9_23; + m_A79 += m_A24 * f9_23; + RHS23 += f9_23 * RHS9; + const double f10 = 1.0 / m_A25; + const double f10_30 = -f10 * m_A121; + m_A122 += m_A26 * f10_30; + m_A127 += m_A27 * f10_30; + RHS30 += f10_30 * RHS10; + const double f11 = 1.0 / m_A28; + const double f11_15 = -f11 * m_A43; + m_A45 += m_A29 * f11_15; + m_A46 += m_A30 * f11_15; + m_A47 += m_A31 * f11_15; + RHS15 += f11_15 * RHS11; + const double f11_22 = -f11 * m_A71; + m_A73 += m_A29 * f11_22; + m_A74 += m_A30 * f11_22; + m_A75 += m_A31 * f11_22; + RHS22 += f11_22 * RHS11; + const double f11_24 = -f11 * m_A82; + m_A83 += m_A29 * f11_24; + m_A85 += m_A30 * f11_24; + m_A86 += m_A31 * f11_24; + RHS24 += f11_24 * RHS11; + const double f11_25 = -f11 * m_A87; + m_A89 += m_A29 * f11_25; + m_A91 += m_A30 * f11_25; + m_A92 += m_A31 * f11_25; + RHS25 += f11_25 * RHS11; + const double f11_27 = -f11 * m_A100; + m_A102 += m_A29 * f11_27; + m_A103 += m_A30 * f11_27; + m_A105 += m_A31 * f11_27; + RHS27 += f11_27 * RHS11; + const double f11_30 = -f11 * m_A122; + m_A124 += m_A29 * f11_30; + m_A125 += m_A30 * f11_30; + m_A127 += m_A31 * f11_30; + RHS30 += f11_30 * RHS11; + const double f12 = 1.0 / m_A32; + const double f12_23 = -f12 * m_A77; + m_A79 += m_A33 * f12_23; + m_A80 += m_A34 * f12_23; + m_A81 += m_A35 * f12_23; + RHS23 += f12_23 * RHS12; + const double f12_25 = -f12 * m_A88; + m_A90 += m_A33 * f12_25; + m_A91 += m_A34 * f12_25; + m_A93 += m_A35 * f12_25; + RHS25 += f12_25 * RHS12; + const double f12_29 = -f12 * m_A113; + m_A114 += m_A33 * f12_29; + m_A116 += m_A34 * f12_29; + m_A118 += m_A35 * f12_29; + RHS29 += f12_29 * RHS12; + const double f13 = 1.0 / m_A36; + const double f13_28 = -f13 * m_A108; + m_A111 += m_A37 * f13_28; + RHS28 += f13_28 * RHS13; + const double f14 = 1.0 / m_A38; + const double f14_28 = -f14 * m_A109; + m_A111 += m_A39 * f14_28; + RHS28 += f14_28 * RHS14; + const double f15 = 1.0 / m_A44; + const double f15_22 = -f15 * m_A72; + m_A73 += m_A45 * f15_22; + m_A74 += m_A46 * f15_22; + m_A75 += m_A47 * f15_22; + RHS22 += f15_22 * RHS15; + const double f16 = 1.0 / m_A50; + const double f16_26 = -f16 * m_A95; + m_A97 += m_A51 * f16_26; + RHS26 += f16_26 * RHS16; + const double f17 = 1.0 / m_A52; + const double f17_26 = -f17 * m_A96; + m_A97 += m_A53 * f17_26; + m_A98 += m_A54 * f17_26; + m_A99 += m_A55 * f17_26; + RHS26 += f17_26 * RHS17; + const double f17_27 = -f17 * m_A101; + m_A104 += m_A53 * f17_27; + m_A105 += m_A54 * f17_27; + m_A107 += m_A55 * f17_27; + RHS27 += f17_27 * RHS17; + const double f17_30 = -f17 * m_A123; + m_A126 += m_A53 * f17_30; + m_A127 += m_A54 * f17_30; + m_A129 += m_A55 * f17_30; + RHS30 += f17_30 * RHS17; + const double f18 = 1.0 / m_A58; + const double f18_23 = -f18 * m_A78; + m_A79 += m_A59 * f18_23; + RHS23 += f18_23 * RHS18; + const double f19 = 1.0 / m_A60; + const double f19_28 = -f19 * m_A110; + m_A111 += m_A61 * f19_28; + RHS28 += f19_28 * RHS19; + const double f20 = 1.0 / m_A63; + const double f20_31 = -f20 * m_A131; + m_A136 += m_A64 * f20_31; + RHS31 += f20_31 * RHS20; + const double f21 = 1.0 / m_A66; + const double f21_31 = -f21 * m_A132; + m_A136 += m_A67 * f21_31; + RHS31 += f21_31 * RHS21; + const double f22 = 1.0 / m_A73; + const double f22_24 = -f22 * m_A83; + m_A85 += m_A74 * f22_24; + m_A86 += m_A75 * f22_24; + RHS24 += f22_24 * RHS22; + const double f22_25 = -f22 * m_A89; + m_A91 += m_A74 * f22_25; + m_A92 += m_A75 * f22_25; + RHS25 += f22_25 * RHS22; + const double f22_27 = -f22 * m_A102; + m_A103 += m_A74 * f22_27; + m_A105 += m_A75 * f22_27; + RHS27 += f22_27 * RHS22; + const double f22_30 = -f22 * m_A124; + m_A125 += m_A74 * f22_30; + m_A127 += m_A75 * f22_30; + RHS30 += f22_30 * RHS22; + const double f23 = 1.0 / m_A79; + const double f23_25 = -f23 * m_A90; + m_A91 += m_A80 * f23_25; + m_A93 += m_A81 * f23_25; + RHS25 += f23_25 * RHS23; + const double f23_29 = -f23 * m_A114; + m_A116 += m_A80 * f23_29; + m_A118 += m_A81 * f23_29; + RHS29 += f23_29 * RHS23; + const double f24 = 1.0 / m_A84; + const double f24_29 = -f24 * m_A115; + m_A116 += m_A85 * f24_29; + m_A117 += m_A86 * f24_29; + RHS29 += f24_29 * RHS24; + const double f25 = 1.0 / m_A91; + const double f25_27 = -f25 * m_A103; + m_A105 += m_A92 * f25_27; + m_A106 += m_A93 * f25_27; + RHS27 += f25_27 * RHS25; + const double f25_29 = -f25 * m_A116; + m_A117 += m_A92 * f25_29; + m_A118 += m_A93 * f25_29; + RHS29 += f25_29 * RHS25; + const double f25_30 = -f25 * m_A125; + m_A127 += m_A92 * f25_30; + m_A128 += m_A93 * f25_30; + RHS30 += f25_30 * RHS25; + const double f26 = 1.0 / m_A97; + const double f26_27 = -f26 * m_A104; + m_A105 += m_A98 * f26_27; + m_A107 += m_A99 * f26_27; + RHS27 += f26_27 * RHS26; + const double f26_30 = -f26 * m_A126; + m_A127 += m_A98 * f26_30; + m_A129 += m_A99 * f26_30; + RHS30 += f26_30 * RHS26; + const double f27 = 1.0 / m_A105; + const double f27_29 = -f27 * m_A117; + m_A118 += m_A106 * f27_29; + m_A119 += m_A107 * f27_29; + RHS29 += f27_29 * RHS27; + const double f27_30 = -f27 * m_A127; + m_A128 += m_A106 * f27_30; + m_A129 += m_A107 * f27_30; + RHS30 += f27_30 * RHS27; + const double f28 = 1.0 / m_A111; + const double f28_31 = -f28 * m_A133; + m_A136 += m_A112 * f28_31; + RHS31 += f28_31 * RHS28; + const double f29 = 1.0 / m_A118; + const double f29_30 = -f29 * m_A128; + m_A129 += m_A119 * f29_30; + m_A130 += m_A120 * f29_30; + RHS30 += f29_30 * RHS29; + const double f29_31 = -f29 * m_A134; + m_A135 += m_A119 * f29_31; + m_A136 += m_A120 * f29_31; + RHS31 += f29_31 * RHS29; + const double f30 = 1.0 / m_A129; + const double f30_31 = -f30 * m_A135; + m_A136 += m_A130 * f30_31; + RHS31 += f30_31 * RHS30; + V[31] = RHS31 / m_A136; + double tmp30 = 0.0; + tmp30 += m_A130 * V[31]; + V[30] = (RHS30 - tmp30) / m_A129; + double tmp29 = 0.0; + tmp29 += m_A119 * V[30]; + tmp29 += m_A120 * V[31]; + V[29] = (RHS29 - tmp29) / m_A118; + double tmp28 = 0.0; + tmp28 += m_A112 * V[31]; + V[28] = (RHS28 - tmp28) / m_A111; + double tmp27 = 0.0; + tmp27 += m_A106 * V[29]; + tmp27 += m_A107 * V[30]; + V[27] = (RHS27 - tmp27) / m_A105; + double tmp26 = 0.0; + tmp26 += m_A98 * V[27]; + tmp26 += m_A99 * V[30]; + V[26] = (RHS26 - tmp26) / m_A97; + double tmp25 = 0.0; + tmp25 += m_A92 * V[27]; + tmp25 += m_A93 * V[29]; + V[25] = (RHS25 - tmp25) / m_A91; + double tmp24 = 0.0; + tmp24 += m_A85 * V[25]; + tmp24 += m_A86 * V[27]; + V[24] = (RHS24 - tmp24) / m_A84; + double tmp23 = 0.0; + tmp23 += m_A80 * V[25]; + tmp23 += m_A81 * V[29]; + V[23] = (RHS23 - tmp23) / m_A79; + double tmp22 = 0.0; + tmp22 += m_A74 * V[25]; + tmp22 += m_A75 * V[27]; + V[22] = (RHS22 - tmp22) / m_A73; + double tmp21 = 0.0; + tmp21 += m_A67 * V[31]; + V[21] = (RHS21 - tmp21) / m_A66; + double tmp20 = 0.0; + tmp20 += m_A64 * V[31]; + V[20] = (RHS20 - tmp20) / m_A63; + double tmp19 = 0.0; + tmp19 += m_A61 * V[28]; + V[19] = (RHS19 - tmp19) / m_A60; + double tmp18 = 0.0; + tmp18 += m_A59 * V[23]; + V[18] = (RHS18 - tmp18) / m_A58; + double tmp17 = 0.0; + tmp17 += m_A53 * V[26]; + tmp17 += m_A54 * V[27]; + tmp17 += m_A55 * V[30]; + V[17] = (RHS17 - tmp17) / m_A52; + double tmp16 = 0.0; + tmp16 += m_A51 * V[26]; + V[16] = (RHS16 - tmp16) / m_A50; + double tmp15 = 0.0; + tmp15 += m_A45 * V[22]; + tmp15 += m_A46 * V[25]; + tmp15 += m_A47 * V[27]; + V[15] = (RHS15 - tmp15) / m_A44; + double tmp14 = 0.0; + tmp14 += m_A39 * V[28]; + V[14] = (RHS14 - tmp14) / m_A38; + double tmp13 = 0.0; + tmp13 += m_A37 * V[28]; + V[13] = (RHS13 - tmp13) / m_A36; + double tmp12 = 0.0; + tmp12 += m_A33 * V[23]; + tmp12 += m_A34 * V[25]; + tmp12 += m_A35 * V[29]; + V[12] = (RHS12 - tmp12) / m_A32; + double tmp11 = 0.0; + tmp11 += m_A29 * V[22]; + tmp11 += m_A30 * V[25]; + tmp11 += m_A31 * V[27]; + V[11] = (RHS11 - tmp11) / m_A28; + double tmp10 = 0.0; + tmp10 += m_A26 * V[11]; + tmp10 += m_A27 * V[27]; + V[10] = (RHS10 - tmp10) / m_A25; + double tmp9 = 0.0; + tmp9 += m_A23 * V[18]; + tmp9 += m_A24 * V[23]; + V[9] = (RHS9 - tmp9) / m_A22; + double tmp8 = 0.0; + tmp8 += m_A21 * V[21]; + V[8] = (RHS8 - tmp8) / m_A20; double tmp7 = 0.0; - tmp7 += m_A23 * V[8]; - V[7] = (RHS7 - tmp7) / m_A22; + tmp7 += m_A18 * V[16]; + tmp7 += m_A19 * V[26]; + V[7] = (RHS7 - tmp7) / m_A17; double tmp6 = 0.0; - tmp6 += m_A19 * V[8]; - V[6] = (RHS6 - tmp6) / m_A18; + tmp6 += m_A16 * V[18]; + V[6] = (RHS6 - tmp6) / m_A15; double tmp5 = 0.0; - tmp5 += m_A15 * V[6]; - V[5] = (RHS5 - tmp5) / m_A14; + tmp5 += m_A14 * V[20]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A10 * V[7]; - tmp4 += m_A11 * V[8]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A11 * V[11]; + tmp4 += m_A12 * V[22]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A8 * V[6]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A9 * V[16]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[5]; - tmp2 += m_A6 * V[6]; + tmp2 += m_A5 * V[4]; + tmp2 += m_A6 * V[15]; + tmp2 += m_A7 * V[22]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; + tmp1 += m_A3 * V[22]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[7]; + tmp0 += m_A1 * V[15]; V[0] = (RHS0 - tmp0) / m_A0; } -// gtrak10 -static void nl_gcr_4c46fdf7c0037727_43_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// astrob +static void nl_gcr_339c6b457f339538_159_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -6822,6 +7783,122 @@ double m_A40(0.0); double m_A41(0.0); double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -6834,466 +7911,832 @@ m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A3 += go[3]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[3]; + m_A3 += go[4]; double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[9]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - m_A8 += gt[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A9 += go[12]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - RHS4 -= go[13] * *cnV[13]; - RHS4 -= go[14] * *cnV[14]; - m_A10 += gt[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A11 += go[15]; - double RHS5 = Idr[15]; - RHS5 += Idr[16]; - RHS5 += Idr[17]; - RHS5 -= go[16] * *cnV[16]; - RHS5 -= go[17] * *cnV[17]; - m_A12 += gt[18]; - m_A12 += gt[19]; - m_A12 += gt[20]; - m_A13 += go[18]; - double RHS6 = Idr[18]; - RHS6 += Idr[19]; - RHS6 += Idr[20]; - RHS6 -= go[19] * *cnV[19]; - RHS6 -= go[20] * *cnV[20]; - m_A14 += gt[21]; - m_A14 += gt[22]; - m_A14 += gt[23]; - m_A15 += go[21]; - double RHS7 = Idr[21]; - RHS7 += Idr[22]; - RHS7 += Idr[23]; - RHS7 -= go[22] * *cnV[22]; - RHS7 -= go[23] * *cnV[23]; - m_A16 += gt[24]; - m_A16 += gt[25]; - m_A16 += gt[26]; - m_A17 += go[24]; - double RHS8 = Idr[24]; - RHS8 += Idr[25]; - RHS8 += Idr[26]; - RHS8 -= go[25] * *cnV[25]; - RHS8 -= go[26] * *cnV[26]; - m_A18 += gt[27]; - m_A18 += gt[28]; - m_A18 += gt[29]; - m_A19 += go[27]; - double RHS9 = Idr[27]; - RHS9 += Idr[28]; - RHS9 += Idr[29]; - RHS9 -= go[28] * *cnV[28]; - RHS9 -= go[29] * *cnV[29]; - m_A20 += gt[30]; - m_A20 += gt[31]; - m_A20 += gt[32]; - m_A21 += go[30]; - double RHS10 = Idr[30]; - RHS10 += Idr[31]; - RHS10 += Idr[32]; - RHS10 -= go[31] * *cnV[31]; - RHS10 -= go[32] * *cnV[32]; - m_A22 += gt[33]; - m_A22 += gt[34]; - m_A22 += gt[35]; - m_A23 += go[33]; - double RHS11 = Idr[33]; - RHS11 += Idr[34]; - RHS11 += Idr[35]; - RHS11 -= go[34] * *cnV[34]; - RHS11 -= go[35] * *cnV[35]; - m_A25 += gt[36]; - m_A25 += gt[37]; - m_A25 += gt[38]; - m_A26 += go[36]; - m_A24 += go[37]; - double RHS12 = Idr[36]; - RHS12 += Idr[37]; - RHS12 += Idr[38]; - RHS12 -= go[38] * *cnV[38]; - m_A30 += gt[39]; - m_A30 += gt[40]; - m_A30 += gt[41]; - m_A30 += gt[42]; - m_A30 += gt[43]; - m_A30 += gt[44]; - m_A30 += gt[45]; - m_A29 += go[39]; - m_A28 += go[40]; - m_A27 += go[41]; - m_A31 += go[42]; - m_A31 += go[43]; - double RHS13 = Idr[39]; - RHS13 += Idr[40]; - RHS13 += Idr[41]; - RHS13 += Idr[42]; - RHS13 += Idr[43]; - RHS13 += Idr[44]; - RHS13 += Idr[45]; - RHS13 -= go[44] * *cnV[44]; - RHS13 -= go[45] * *cnV[45]; - m_A42 += gt[46]; - m_A42 += gt[47]; - m_A42 += gt[48]; - m_A42 += gt[49]; - m_A42 += gt[50]; - m_A42 += gt[51]; - m_A42 += gt[52]; - m_A42 += gt[53]; - m_A42 += gt[54]; - m_A42 += gt[55]; - m_A42 += gt[56]; - m_A42 += gt[57]; - m_A42 += gt[58]; - m_A41 += go[46]; - m_A41 += go[47]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A6 += go[10]; + m_A7 += go[11]; + m_A8 += go[12]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A10 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A12 += go[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A14 += go[18]; + double RHS5 = Idr[18]; + RHS5 += Idr[19]; + RHS5 -= go[19] * *cnV[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A17 += go[20]; + m_A16 += go[21]; + double RHS6 = Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 -= go[22] * *cnV[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A20 += go[23]; + m_A21 += go[24]; + m_A19 += go[25]; + double RHS7 = Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 -= go[26] * *cnV[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A23 += go[27]; + m_A24 += go[28]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + m_A25 += gt[29]; + m_A25 += gt[30]; + m_A25 += gt[31]; + m_A27 += go[29]; + m_A26 += go[30]; + double RHS9 = Idr[29]; + RHS9 += Idr[30]; + RHS9 += Idr[31]; + RHS9 -= go[31] * *cnV[31]; + m_A28 += gt[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A30 += go[32]; + m_A31 += go[33]; + m_A29 += go[34]; + double RHS10 = Idr[32]; + RHS10 += Idr[33]; + RHS10 += Idr[34]; + m_A32 += gt[35]; + m_A32 += gt[36]; + m_A32 += gt[37]; + m_A32 += gt[38]; + m_A32 += gt[39]; + m_A32 += gt[40]; + m_A32 += gt[41]; + m_A33 += go[35]; + m_A34 += go[36]; + double RHS11 = Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 += Idr[41]; + RHS11 -= go[37] * *cnV[37]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + RHS11 -= go[40] * *cnV[40]; + RHS11 -= go[41] * *cnV[41]; + m_A35 += gt[42]; + m_A35 += gt[43]; + m_A35 += gt[44]; + m_A35 += gt[45]; + m_A35 += gt[46]; + m_A37 += go[42]; + m_A36 += go[43]; + double RHS12 = Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + RHS12 -= go[44] * *cnV[44]; + RHS12 -= go[45] * *cnV[45]; + RHS12 -= go[46] * *cnV[46]; + m_A38 += gt[47]; + m_A38 += gt[48]; + m_A38 += gt[49]; + m_A38 += gt[50]; + m_A38 += gt[51]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A40 += go[47]; m_A39 += go[48]; - m_A38 += go[49]; - m_A37 += go[50]; - m_A36 += go[51]; - m_A35 += go[52]; - m_A34 += go[53]; - m_A33 += go[54]; - m_A32 += go[55]; - m_A40 += go[56]; - double RHS14 = Idr[46]; - RHS14 += Idr[47]; - RHS14 += Idr[48]; - RHS14 += Idr[49]; - RHS14 += Idr[50]; - RHS14 += Idr[51]; - RHS14 += Idr[52]; - RHS14 += Idr[53]; - RHS14 += Idr[54]; + double RHS13 = Idr[47]; + RHS13 += Idr[48]; + RHS13 += Idr[49]; + RHS13 += Idr[50]; + RHS13 += Idr[51]; + RHS13 += Idr[52]; + RHS13 += Idr[53]; + RHS13 -= go[49] * *cnV[49]; + RHS13 -= go[50] * *cnV[50]; + RHS13 -= go[51] * *cnV[51]; + RHS13 -= go[52] * *cnV[52]; + RHS13 -= go[53] * *cnV[53]; + m_A41 += gt[54]; + m_A41 += gt[55]; + m_A41 += gt[56]; + m_A42 += go[54]; + m_A44 += go[55]; + m_A43 += go[56]; + double RHS14 = Idr[54]; RHS14 += Idr[55]; RHS14 += Idr[56]; - RHS14 += Idr[57]; - RHS14 += Idr[58]; - RHS14 -= go[57] * *cnV[57]; - RHS14 -= go[58] * *cnV[58]; + m_A45 += gt[57]; + m_A45 += gt[58]; + m_A45 += gt[59]; + m_A46 += go[57]; + double RHS15 = Idr[57]; + RHS15 += Idr[58]; + RHS15 += Idr[59]; + RHS15 -= go[58] * *cnV[58]; + RHS15 -= go[59] * *cnV[59]; + m_A47 += gt[60]; + m_A47 += gt[61]; + m_A47 += gt[62]; + m_A47 += gt[63]; + m_A47 += gt[64]; + m_A47 += gt[65]; + m_A47 += gt[66]; + m_A48 += go[60]; + m_A49 += go[61]; + double RHS16 = Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 += Idr[64]; + RHS16 += Idr[65]; + RHS16 += Idr[66]; + RHS16 -= go[62] * *cnV[62]; + RHS16 -= go[63] * *cnV[63]; + RHS16 -= go[64] * *cnV[64]; + RHS16 -= go[65] * *cnV[65]; + RHS16 -= go[66] * *cnV[66]; + m_A52 += gt[67]; + m_A52 += gt[68]; + m_A51 += go[67]; + m_A50 += go[68]; + double RHS17 = Idr[67]; + RHS17 += Idr[68]; + m_A56 += gt[69]; + m_A56 += gt[70]; + m_A56 += gt[71]; + m_A56 += gt[72]; + m_A56 += gt[73]; + m_A59 += go[69]; + m_A55 += go[70]; + m_A58 += go[71]; + double RHS18 = Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 += Idr[72]; + RHS18 += Idr[73]; + RHS18 -= go[72] * *cnV[72]; + RHS18 -= go[73] * *cnV[73]; + m_A61 += gt[74]; + m_A61 += gt[75]; + m_A61 += gt[76]; + m_A61 += gt[77]; + m_A62 += go[74]; + m_A60 += go[75]; + double RHS19 = Idr[74]; + RHS19 += Idr[75]; + RHS19 += Idr[76]; + RHS19 += Idr[77]; + RHS19 -= go[76] * *cnV[76]; + RHS19 -= go[77] * *cnV[77]; + m_A65 += gt[78]; + m_A65 += gt[79]; + m_A63 += go[78]; + m_A64 += go[79]; + double RHS20 = Idr[78]; + RHS20 += Idr[79]; + m_A72 += gt[80]; + m_A72 += gt[81]; + m_A72 += gt[82]; + m_A72 += gt[83]; + m_A72 += gt[84]; + m_A69 += go[80]; + m_A68 += go[81]; + m_A67 += go[82]; + double RHS21 = Idr[80]; + RHS21 += Idr[81]; + RHS21 += Idr[82]; + RHS21 += Idr[83]; + RHS21 += Idr[84]; + RHS21 -= go[83] * *cnV[83]; + RHS21 -= go[84] * *cnV[84]; + m_A79 += gt[85]; + m_A79 += gt[86]; + m_A79 += gt[87]; + m_A79 += gt[88]; + m_A79 += gt[89]; + m_A75 += go[85]; + m_A77 += go[86]; + m_A76 += go[87]; + double RHS22 = Idr[85]; + RHS22 += Idr[86]; + RHS22 += Idr[87]; + RHS22 += Idr[88]; + RHS22 += Idr[89]; + RHS22 -= go[88] * *cnV[88]; + RHS22 -= go[89] * *cnV[89]; + m_A88 += gt[90]; + m_A88 += gt[91]; + m_A88 += gt[92]; + m_A88 += gt[93]; + m_A84 += go[90]; + m_A91 += go[91]; + m_A85 += go[92]; + double RHS23 = Idr[90]; + RHS23 += Idr[91]; + RHS23 += Idr[92]; + RHS23 += Idr[93]; + RHS23 -= go[93] * *cnV[93]; + m_A93 += gt[94]; + m_A93 += gt[95]; + m_A93 += gt[96]; + m_A94 += go[94]; + m_A95 += go[95]; + m_A92 += go[96]; + double RHS24 = Idr[94]; + RHS24 += Idr[95]; + RHS24 += Idr[96]; + m_A97 += gt[97]; + m_A97 += gt[98]; + m_A97 += gt[99]; + m_A99 += go[97]; + m_A96 += go[98]; + double RHS25 = Idr[97]; + RHS25 += Idr[98]; + RHS25 += Idr[99]; + RHS25 -= go[99] * *cnV[99]; + m_A108 += gt[100]; + m_A108 += gt[101]; + m_A108 += gt[102]; + m_A108 += gt[103]; + m_A108 += gt[104]; + m_A101 += go[100]; + m_A104 += go[101]; + m_A100 += go[102]; + m_A102 += go[103]; + double RHS26 = Idr[100]; + RHS26 += Idr[101]; + RHS26 += Idr[102]; + RHS26 += Idr[103]; + RHS26 += Idr[104]; + RHS26 -= go[104] * *cnV[104]; + m_A117 += gt[105]; + m_A117 += gt[106]; + m_A117 += gt[107]; + m_A117 += gt[108]; + m_A117 += gt[109]; + m_A117 += gt[110]; + m_A120 += go[105]; + m_A112 += go[106]; + m_A113 += go[107]; + double RHS27 = Idr[105]; + RHS27 += Idr[106]; + RHS27 += Idr[107]; + RHS27 += Idr[108]; + RHS27 += Idr[109]; + RHS27 += Idr[110]; + RHS27 -= go[108] * *cnV[108]; + RHS27 -= go[109] * *cnV[109]; + RHS27 -= go[110] * *cnV[110]; + m_A125 += gt[111]; + m_A125 += gt[112]; + m_A122 += go[111]; + m_A121 += go[112]; + double RHS28 = Idr[111]; + RHS28 += Idr[112]; + m_A135 += gt[113]; + m_A135 += gt[114]; + m_A135 += gt[115]; + m_A135 += gt[116]; + m_A135 += gt[117]; + m_A135 += gt[118]; + m_A129 += go[113]; + m_A131 += go[114]; + m_A128 += go[115]; + double RHS29 = Idr[113]; + RHS29 += Idr[114]; + RHS29 += Idr[115]; + RHS29 += Idr[116]; + RHS29 += Idr[117]; + RHS29 += Idr[118]; + RHS29 -= go[116] * *cnV[116]; + RHS29 -= go[117] * *cnV[117]; + RHS29 -= go[118] * *cnV[118]; + m_A141 += gt[119]; + m_A141 += gt[120]; + m_A141 += gt[121]; + m_A141 += gt[122]; + m_A141 += gt[123]; + m_A137 += go[119]; + m_A138 += go[120]; + m_A139 += go[121]; + double RHS30 = Idr[119]; + RHS30 += Idr[120]; + RHS30 += Idr[121]; + RHS30 += Idr[122]; + RHS30 += Idr[123]; + RHS30 -= go[122] * *cnV[122]; + RHS30 -= go[123] * *cnV[123]; + m_A149 += gt[124]; + m_A149 += gt[125]; + m_A149 += gt[126]; + m_A149 += gt[127]; + m_A149 += gt[128]; + m_A149 += gt[129]; + m_A146 += go[124]; + m_A145 += go[125]; + m_A147 += go[126]; + m_A144 += go[127]; + double RHS31 = Idr[124]; + RHS31 += Idr[125]; + RHS31 += Idr[126]; + RHS31 += Idr[127]; + RHS31 += Idr[128]; + RHS31 += Idr[129]; + RHS31 -= go[128] * *cnV[128]; + RHS31 -= go[129] * *cnV[129]; + m_A158 += gt[130]; + m_A158 += gt[131]; + m_A158 += gt[132]; + m_A158 += gt[133]; + m_A158 += gt[134]; + m_A152 += go[130]; + m_A151 += go[131]; + m_A153 += go[132]; + double RHS32 = Idr[130]; + RHS32 += Idr[131]; + RHS32 += Idr[132]; + RHS32 += Idr[133]; + RHS32 += Idr[134]; + RHS32 -= go[133] * *cnV[133]; + RHS32 -= go[134] * *cnV[134]; const double f0 = 1.0 / m_A0; - const double f0_12 = -f0 * m_A24; - m_A25 += m_A1 * f0_12; - RHS12 += f0_12 * RHS0; + const double f0_17 = -f0 * m_A50; + m_A52 += m_A1 * f0_17; + RHS17 += f0_17 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_14 = -f1 * m_A32; - m_A42 += m_A3 * f1_14; - RHS14 += f1_14 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_14 = -f2 * m_A33; - m_A42 += m_A5 * f2_14; - RHS14 += f2_14 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_14 = -f3 * m_A34; - m_A42 += m_A7 * f3_14; - RHS14 += f3_14 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_14 = -f4 * m_A35; - m_A42 += m_A9 * f4_14; - RHS14 += f4_14 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_14 = -f5 * m_A36; - m_A42 += m_A11 * f5_14; - RHS14 += f5_14 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_14 = -f6 * m_A37; - m_A42 += m_A13 * f6_14; - RHS14 += f6_14 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_14 = -f7 * m_A38; - m_A42 += m_A15 * f7_14; - RHS14 += f7_14 * RHS7; - const double f8 = 1.0 / m_A16; - const double f8_14 = -f8 * m_A39; - m_A42 += m_A17 * f8_14; - RHS14 += f8_14 * RHS8; - const double f9 = 1.0 / m_A18; - const double f9_13 = -f9 * m_A27; - m_A30 += m_A19 * f9_13; - RHS13 += f9_13 * RHS9; - const double f10 = 1.0 / m_A20; - const double f10_13 = -f10 * m_A28; - m_A30 += m_A21 * f10_13; - RHS13 += f10_13 * RHS10; - const double f11 = 1.0 / m_A22; - const double f11_13 = -f11 * m_A29; - m_A30 += m_A23 * f11_13; - RHS13 += f11_13 * RHS11; - const double f12 = 1.0 / m_A25; - const double f12_14 = -f12 * m_A40; - m_A42 += m_A26 * f12_14; - RHS14 += f12_14 * RHS12; - const double f13 = 1.0 / m_A30; - const double f13_14 = -f13 * m_A41; - m_A42 += m_A31 * f13_14; - RHS14 += f13_14 * RHS13; - V[14] = RHS14 / m_A42; + const double f1_22 = -f1 * m_A75; + m_A76 += m_A3 * f1_22; + m_A78 += m_A4 * f1_22; + RHS22 += f1_22 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_18 = -f2 * m_A55; + m_A56 += m_A6 * f2_18; + m_A57 += m_A7 * f2_18; + m_A58 += m_A8 * f2_18; + RHS18 += f2_18 * RHS2; + const double f2_22 = -f2 * m_A76; + m_A78 += m_A6 * f2_22; + m_A79 += m_A7 * f2_22; + m_A81 += m_A8 * f2_22; + RHS22 += f2_22 * RHS2; + const double f2_26 = -f2 * m_A100; + m_A104 += m_A6 * f2_26; + m_A106 += m_A7 * f2_26; + m_A108 += m_A8 * f2_26; + RHS26 += f2_26 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_27 = -f3 * m_A112; + m_A117 += m_A10 * f3_27; + RHS27 += f3_27 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_20 = -f4 * m_A63; + m_A65 += m_A12 * f4_20; + RHS20 += f4_20 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_19 = -f5 * m_A60; + m_A61 += m_A14 * f5_19; + RHS19 += f5_19 * RHS5; + const double f6 = 1.0 / m_A15; + const double f6_26 = -f6 * m_A101; + m_A108 += m_A16 * f6_26; + m_A110 += m_A17 * f6_26; + RHS26 += f6_26 * RHS6; + const double f6_28 = -f6 * m_A121; + m_A123 += m_A16 * f6_28; + m_A125 += m_A17 * f6_28; + RHS28 += f6_28 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_17 = -f7 * m_A51; + m_A52 += m_A19 * f7_17; + m_A53 += m_A20 * f7_17; + m_A54 += m_A21 * f7_17; + RHS17 += f7_17 * RHS7; + const double f7_21 = -f7 * m_A67; + m_A70 += m_A19 * f7_21; + m_A72 += m_A20 * f7_21; + m_A74 += m_A21 * f7_21; + RHS21 += f7_21 * RHS7; + const double f7_26 = -f7 * m_A102; + m_A103 += m_A19 * f7_26; + m_A105 += m_A20 * f7_26; + m_A108 += m_A21 * f7_26; + RHS26 += f7_26 * RHS7; + const double f8 = 1.0 / m_A22; + const double f8_20 = -f8 * m_A64; + m_A65 += m_A23 * f8_20; + m_A66 += m_A24 * f8_20; + RHS20 += f8_20 * RHS8; + const double f8_21 = -f8 * m_A68; + m_A71 += m_A23 * f8_21; + m_A72 += m_A24 * f8_21; + RHS21 += f8_21 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_21 = -f9 * m_A69; + m_A72 += m_A26 * f9_21; + m_A73 += m_A27 * f9_21; + RHS21 += f9_21 * RHS9; + const double f9_23 = -f9 * m_A84; + m_A86 += m_A26 * f9_23; + m_A88 += m_A27 * f9_23; + RHS23 += f9_23 * RHS9; + const double f10 = 1.0 / m_A28; + const double f10_22 = -f10 * m_A77; + m_A79 += m_A29 * f10_22; + m_A80 += m_A30 * f10_22; + m_A83 += m_A31 * f10_22; + RHS22 += f10_22 * RHS10; + const double f10_23 = -f10 * m_A85; + m_A87 += m_A29 * f10_23; + m_A88 += m_A30 * f10_23; + m_A91 += m_A31 * f10_23; + RHS23 += f10_23 * RHS10; + const double f10_29 = -f10 * m_A128; + m_A130 += m_A29 * f10_29; + m_A131 += m_A30 * f10_29; + m_A135 += m_A31 * f10_29; + RHS29 += f10_29 * RHS10; + const double f11 = 1.0 / m_A32; + const double f11_29 = -f11 * m_A129; + m_A131 += m_A33 * f11_29; + m_A135 += m_A34 * f11_29; + RHS29 += f11_29 * RHS11; + const double f12 = 1.0 / m_A35; + const double f12_24 = -f12 * m_A92; + m_A93 += m_A36 * f12_24; + m_A95 += m_A37 * f12_24; + RHS24 += f12_24 * RHS12; + const double f12_32 = -f12 * m_A151; + m_A152 += m_A36 * f12_32; + m_A158 += m_A37 * f12_32; + RHS32 += f12_32 * RHS12; + const double f13 = 1.0 / m_A38; + const double f13_30 = -f13 * m_A137; + m_A139 += m_A39 * f13_30; + m_A143 += m_A40 * f13_30; + RHS30 += f13_30 * RHS13; + const double f14 = 1.0 / m_A41; + const double f14_25 = -f14 * m_A96; + m_A97 += m_A42 * f14_25; + m_A98 += m_A43 * f14_25; + m_A99 += m_A44 * f14_25; + RHS25 += f14_25 * RHS14; + const double f14_30 = -f14 * m_A138; + m_A140 += m_A42 * f14_30; + m_A141 += m_A43 * f14_30; + m_A142 += m_A44 * f14_30; + RHS30 += f14_30 * RHS14; + const double f14_31 = -f14 * m_A144; + m_A147 += m_A42 * f14_31; + m_A148 += m_A43 * f14_31; + m_A149 += m_A44 * f14_31; + RHS31 += f14_31 * RHS14; + const double f15 = 1.0 / m_A45; + const double f15_31 = -f15 * m_A145; + m_A149 += m_A46 * f15_31; + RHS31 += f15_31 * RHS15; + const double f16 = 1.0 / m_A47; + const double f16_31 = -f16 * m_A146; + m_A147 += m_A48 * f16_31; + m_A149 += m_A49 * f16_31; + RHS31 += f16_31 * RHS16; + const double f17 = 1.0 / m_A52; + const double f17_21 = -f17 * m_A70; + m_A72 += m_A53 * f17_21; + m_A74 += m_A54 * f17_21; + RHS21 += f17_21 * RHS17; + const double f17_26 = -f17 * m_A103; + m_A105 += m_A53 * f17_26; + m_A108 += m_A54 * f17_26; + RHS26 += f17_26 * RHS17; + const double f18 = 1.0 / m_A56; + const double f18_22 = -f18 * m_A78; + m_A79 += m_A57 * f18_22; + m_A81 += m_A58 * f18_22; + m_A82 += m_A59 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_26 = -f18 * m_A104; + m_A106 += m_A57 * f18_26; + m_A108 += m_A58 * f18_26; + m_A109 += m_A59 * f18_26; + RHS26 += f18_26 * RHS18; + const double f18_27 = -f18 * m_A113; + m_A114 += m_A57 * f18_27; + m_A116 += m_A58 * f18_27; + m_A117 += m_A59 * f18_27; + RHS27 += f18_27 * RHS18; + const double f19 = 1.0 / m_A61; + const double f19_28 = -f19 * m_A122; + m_A125 += m_A62 * f19_28; + RHS28 += f19_28 * RHS19; + const double f20 = 1.0 / m_A65; + const double f20_21 = -f20 * m_A71; + m_A72 += m_A66 * f20_21; + RHS21 += f20_21 * RHS20; + const double f21 = 1.0 / m_A72; + const double f21_23 = -f21 * m_A86; + m_A88 += m_A73 * f21_23; + m_A89 += m_A74 * f21_23; + RHS23 += f21_23 * RHS21; + const double f21_26 = -f21 * m_A105; + m_A107 += m_A73 * f21_26; + m_A108 += m_A74 * f21_26; + RHS26 += f21_26 * RHS21; + const double f22 = 1.0 / m_A79; + const double f22_23 = -f22 * m_A87; + m_A88 += m_A80 * f22_23; + m_A89 += m_A81 * f22_23; + m_A90 += m_A82 * f22_23; + m_A91 += m_A83 * f22_23; + RHS23 += f22_23 * RHS22; + const double f22_26 = -f22 * m_A106; + m_A107 += m_A80 * f22_26; + m_A108 += m_A81 * f22_26; + m_A109 += m_A82 * f22_26; + m_A111 += m_A83 * f22_26; + RHS26 += f22_26 * RHS22; + const double f22_27 = -f22 * m_A114; + m_A115 += m_A80 * f22_27; + m_A116 += m_A81 * f22_27; + m_A117 += m_A82 * f22_27; + m_A119 += m_A83 * f22_27; + RHS27 += f22_27 * RHS22; + const double f22_29 = -f22 * m_A130; + m_A131 += m_A80 * f22_29; + m_A132 += m_A81 * f22_29; + m_A133 += m_A82 * f22_29; + m_A135 += m_A83 * f22_29; + RHS29 += f22_29 * RHS22; + const double f23 = 1.0 / m_A88; + const double f23_26 = -f23 * m_A107; + m_A108 += m_A89 * f23_26; + m_A109 += m_A90 * f23_26; + m_A111 += m_A91 * f23_26; + RHS26 += f23_26 * RHS23; + const double f23_27 = -f23 * m_A115; + m_A116 += m_A89 * f23_27; + m_A117 += m_A90 * f23_27; + m_A119 += m_A91 * f23_27; + RHS27 += f23_27 * RHS23; + const double f23_29 = -f23 * m_A131; + m_A132 += m_A89 * f23_29; + m_A133 += m_A90 * f23_29; + m_A135 += m_A91 * f23_29; + RHS29 += f23_29 * RHS23; + const double f24 = 1.0 / m_A93; + const double f24_30 = -f24 * m_A139; + m_A141 += m_A94 * f24_30; + m_A143 += m_A95 * f24_30; + RHS30 += f24_30 * RHS24; + const double f24_32 = -f24 * m_A152; + m_A156 += m_A94 * f24_32; + m_A158 += m_A95 * f24_32; + RHS32 += f24_32 * RHS24; + const double f25 = 1.0 / m_A97; + const double f25_30 = -f25 * m_A140; + m_A141 += m_A98 * f25_30; + m_A142 += m_A99 * f25_30; + RHS30 += f25_30 * RHS25; + const double f25_31 = -f25 * m_A147; + m_A148 += m_A98 * f25_31; + m_A149 += m_A99 * f25_31; + RHS31 += f25_31 * RHS25; + const double f26 = 1.0 / m_A108; + const double f26_27 = -f26 * m_A116; + m_A117 += m_A109 * f26_27; + m_A118 += m_A110 * f26_27; + m_A119 += m_A111 * f26_27; + RHS27 += f26_27 * RHS26; + const double f26_28 = -f26 * m_A123; + m_A124 += m_A109 * f26_28; + m_A125 += m_A110 * f26_28; + m_A126 += m_A111 * f26_28; + RHS28 += f26_28 * RHS26; + const double f26_29 = -f26 * m_A132; + m_A133 += m_A109 * f26_29; + m_A134 += m_A110 * f26_29; + m_A135 += m_A111 * f26_29; + RHS29 += f26_29 * RHS26; + const double f27 = 1.0 / m_A117; + const double f27_28 = -f27 * m_A124; + m_A125 += m_A118 * f27_28; + m_A126 += m_A119 * f27_28; + m_A127 += m_A120 * f27_28; + RHS28 += f27_28 * RHS27; + const double f27_29 = -f27 * m_A133; + m_A134 += m_A118 * f27_29; + m_A135 += m_A119 * f27_29; + m_A136 += m_A120 * f27_29; + RHS29 += f27_29 * RHS27; + const double f27_32 = -f27 * m_A153; + m_A154 += m_A118 * f27_32; + m_A155 += m_A119 * f27_32; + m_A158 += m_A120 * f27_32; + RHS32 += f27_32 * RHS27; + const double f28 = 1.0 / m_A125; + const double f28_29 = -f28 * m_A134; + m_A135 += m_A126 * f28_29; + m_A136 += m_A127 * f28_29; + RHS29 += f28_29 * RHS28; + const double f28_32 = -f28 * m_A154; + m_A155 += m_A126 * f28_32; + m_A158 += m_A127 * f28_32; + RHS32 += f28_32 * RHS28; + const double f29 = 1.0 / m_A135; + const double f29_32 = -f29 * m_A155; + m_A158 += m_A136 * f29_32; + RHS32 += f29_32 * RHS29; + const double f30 = 1.0 / m_A141; + const double f30_31 = -f30 * m_A148; + m_A149 += m_A142 * f30_31; + m_A150 += m_A143 * f30_31; + RHS31 += f30_31 * RHS30; + const double f30_32 = -f30 * m_A156; + m_A157 += m_A142 * f30_32; + m_A158 += m_A143 * f30_32; + RHS32 += f30_32 * RHS30; + const double f31 = 1.0 / m_A149; + const double f31_32 = -f31 * m_A157; + m_A158 += m_A150 * f31_32; + RHS32 += f31_32 * RHS31; + V[32] = RHS32 / m_A158; + double tmp31 = 0.0; + tmp31 += m_A150 * V[32]; + V[31] = (RHS31 - tmp31) / m_A149; + double tmp30 = 0.0; + tmp30 += m_A142 * V[31]; + tmp30 += m_A143 * V[32]; + V[30] = (RHS30 - tmp30) / m_A141; + double tmp29 = 0.0; + tmp29 += m_A136 * V[32]; + V[29] = (RHS29 - tmp29) / m_A135; + double tmp28 = 0.0; + tmp28 += m_A126 * V[29]; + tmp28 += m_A127 * V[32]; + V[28] = (RHS28 - tmp28) / m_A125; + double tmp27 = 0.0; + tmp27 += m_A118 * V[28]; + tmp27 += m_A119 * V[29]; + tmp27 += m_A120 * V[32]; + V[27] = (RHS27 - tmp27) / m_A117; + double tmp26 = 0.0; + tmp26 += m_A109 * V[27]; + tmp26 += m_A110 * V[28]; + tmp26 += m_A111 * V[29]; + V[26] = (RHS26 - tmp26) / m_A108; + double tmp25 = 0.0; + tmp25 += m_A98 * V[30]; + tmp25 += m_A99 * V[31]; + V[25] = (RHS25 - tmp25) / m_A97; + double tmp24 = 0.0; + tmp24 += m_A94 * V[30]; + tmp24 += m_A95 * V[32]; + V[24] = (RHS24 - tmp24) / m_A93; + double tmp23 = 0.0; + tmp23 += m_A89 * V[26]; + tmp23 += m_A90 * V[27]; + tmp23 += m_A91 * V[29]; + V[23] = (RHS23 - tmp23) / m_A88; + double tmp22 = 0.0; + tmp22 += m_A80 * V[23]; + tmp22 += m_A81 * V[26]; + tmp22 += m_A82 * V[27]; + tmp22 += m_A83 * V[29]; + V[22] = (RHS22 - tmp22) / m_A79; + double tmp21 = 0.0; + tmp21 += m_A73 * V[23]; + tmp21 += m_A74 * V[26]; + V[21] = (RHS21 - tmp21) / m_A72; + double tmp20 = 0.0; + tmp20 += m_A66 * V[21]; + V[20] = (RHS20 - tmp20) / m_A65; + double tmp19 = 0.0; + tmp19 += m_A62 * V[28]; + V[19] = (RHS19 - tmp19) / m_A61; + double tmp18 = 0.0; + tmp18 += m_A57 * V[22]; + tmp18 += m_A58 * V[26]; + tmp18 += m_A59 * V[27]; + V[18] = (RHS18 - tmp18) / m_A56; + double tmp17 = 0.0; + tmp17 += m_A53 * V[21]; + tmp17 += m_A54 * V[26]; + V[17] = (RHS17 - tmp17) / m_A52; + double tmp16 = 0.0; + tmp16 += m_A48 * V[25]; + tmp16 += m_A49 * V[31]; + V[16] = (RHS16 - tmp16) / m_A47; + double tmp15 = 0.0; + tmp15 += m_A46 * V[31]; + V[15] = (RHS15 - tmp15) / m_A45; + double tmp14 = 0.0; + tmp14 += m_A42 * V[25]; + tmp14 += m_A43 * V[30]; + tmp14 += m_A44 * V[31]; + V[14] = (RHS14 - tmp14) / m_A41; double tmp13 = 0.0; - tmp13 += m_A31 * V[14]; - V[13] = (RHS13 - tmp13) / m_A30; + tmp13 += m_A39 * V[24]; + tmp13 += m_A40 * V[32]; + V[13] = (RHS13 - tmp13) / m_A38; double tmp12 = 0.0; - tmp12 += m_A26 * V[14]; - V[12] = (RHS12 - tmp12) / m_A25; + tmp12 += m_A36 * V[24]; + tmp12 += m_A37 * V[32]; + V[12] = (RHS12 - tmp12) / m_A35; double tmp11 = 0.0; - tmp11 += m_A23 * V[13]; - V[11] = (RHS11 - tmp11) / m_A22; + tmp11 += m_A33 * V[23]; + tmp11 += m_A34 * V[29]; + V[11] = (RHS11 - tmp11) / m_A32; double tmp10 = 0.0; - tmp10 += m_A21 * V[13]; - V[10] = (RHS10 - tmp10) / m_A20; + tmp10 += m_A29 * V[22]; + tmp10 += m_A30 * V[23]; + tmp10 += m_A31 * V[29]; + V[10] = (RHS10 - tmp10) / m_A28; double tmp9 = 0.0; - tmp9 += m_A19 * V[13]; - V[9] = (RHS9 - tmp9) / m_A18; + tmp9 += m_A26 * V[21]; + tmp9 += m_A27 * V[23]; + V[9] = (RHS9 - tmp9) / m_A25; double tmp8 = 0.0; - tmp8 += m_A17 * V[14]; - V[8] = (RHS8 - tmp8) / m_A16; + tmp8 += m_A23 * V[20]; + tmp8 += m_A24 * V[21]; + V[8] = (RHS8 - tmp8) / m_A22; double tmp7 = 0.0; - tmp7 += m_A15 * V[14]; - V[7] = (RHS7 - tmp7) / m_A14; + tmp7 += m_A19 * V[17]; + tmp7 += m_A20 * V[21]; + tmp7 += m_A21 * V[26]; + V[7] = (RHS7 - tmp7) / m_A18; double tmp6 = 0.0; - tmp6 += m_A13 * V[14]; - V[6] = (RHS6 - tmp6) / m_A12; - double tmp5 = 0.0; - tmp5 += m_A11 * V[14]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[14]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[14]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[14]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[12]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// solarq -static void nl_gcr_4cb524006206eb1a_25_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A2 += gt[11]; - m_A5 += go[4]; - m_A4 += go[5]; - m_A4 += go[6]; - m_A3 += go[7]; - m_A3 += go[8]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 += Idr[11]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - RHS1 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A7 += go[12]; - double RHS2 = Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[13] * *cnV[13]; - m_A10 += gt[14]; - m_A10 += gt[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A10 += gt[19]; - m_A9 += go[14]; - m_A9 += go[15]; - m_A8 += go[16]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A15 += gt[20]; - m_A15 += gt[21]; - m_A15 += gt[22]; - m_A15 += gt[23]; - m_A15 += gt[24]; - m_A16 += go[20]; - m_A16 += go[21]; - m_A13 += go[22]; - m_A13 += go[23]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 -= go[24] * *cnV[24]; - m_A18 += gt[25]; - m_A18 += gt[26]; - m_A18 += gt[27]; - m_A19 += go[25]; - m_A17 += go[26]; - double RHS5 = Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 -= go[27] * *cnV[27]; - m_A24 += gt[28]; - m_A24 += gt[29]; - m_A24 += gt[30]; - m_A24 += gt[31]; - m_A23 += go[28]; - m_A22 += go[29]; - m_A22 += go[30]; - m_A20 += go[31]; - double RHS6 = Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - m_A12 += m_A5 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_4 = -f1 * m_A13; - m_A14 += m_A3 * f1_4; - m_A15 += m_A4 * f1_4; - m_A16 += m_A5 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_6 = -f1 * m_A20; - m_A21 += m_A3 * f1_6; - m_A22 += m_A4 * f1_6; - m_A24 += m_A5 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_5 = -f2 * m_A17; - m_A18 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_4 = -f3 * m_A14; - m_A15 += m_A11 * f3_4; - m_A16 += m_A12 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_6 = -f3 * m_A21; - m_A22 += m_A11 * f3_6; - m_A24 += m_A12 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A15; - const double f4_6 = -f4 * m_A22; - m_A24 += m_A16 * f4_6; - RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A18; - const double f5_6 = -f5 * m_A23; - m_A24 += m_A19 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A24; + tmp6 += m_A16 * V[26]; + tmp6 += m_A17 * V[28]; + V[6] = (RHS6 - tmp6) / m_A15; double tmp5 = 0.0; - tmp5 += m_A19 * V[6]; - V[5] = (RHS5 - tmp5) / m_A18; + tmp5 += m_A14 * V[19]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A16 * V[6]; - V[4] = (RHS4 - tmp4) / m_A15; + tmp4 += m_A12 * V[20]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A11 * V[4]; - tmp3 += m_A12 * V[6]; - V[3] = (RHS3 - tmp3) / m_A10; + tmp3 += m_A10 * V[27]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A7 * V[5]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A6 * V[18]; + tmp2 += m_A7 * V[22]; + tmp2 += m_A8 * V[26]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; - tmp1 += m_A4 * V[4]; - tmp1 += m_A5 * V[6]; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[18]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[17]; V[0] = (RHS0 - tmp0) / m_A0; } // solarq -static void nl_gcr_4e4931ccbfb7a3c_70_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +static void nl_gcr_34e910fc1896999f_76_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -7368,143 +8811,149 @@ double m_A67(0.0); double m_A68(0.0); double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; + m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; + RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; + RHS0 -= go[3] * *cnV[3]; m_A2 += gt[4]; m_A2 += gt[5]; m_A2 += gt[6]; m_A2 += gt[7]; m_A2 += gt[8]; - m_A4 += go[3]; - m_A3 += go[4]; - m_A3 += go[5]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A5 += go[4]; + m_A4 += go[5]; + m_A4 += go[6]; + m_A3 += go[7]; + m_A3 += go[8]; + double RHS1 = Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; RHS1 += Idr[8]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - m_A5 += gt[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A5 += gt[12]; - m_A7 += go[9]; - m_A6 += go[10]; - m_A6 += go[11]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 -= go[12] * *cnV[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A7 += go[12]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[14] * *cnV[14]; + RHS2 -= go[15] * *cnV[15]; m_A8 += gt[16]; m_A8 += gt[17]; m_A8 += gt[18]; m_A8 += gt[19]; - m_A10 += go[13]; - m_A9 += go[14]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A8 += gt[22]; + m_A8 += gt[23]; + m_A11 += go[16]; + m_A10 += go[17]; + m_A10 += go[18]; + m_A9 += go[19]; + m_A9 += go[20]; + double RHS3 = Idr[16]; RHS3 += Idr[17]; RHS3 += Idr[18]; RHS3 += Idr[19]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A11 += gt[20]; - m_A11 += gt[21]; - m_A11 += gt[22]; - m_A11 += gt[23]; - m_A11 += gt[24]; - m_A11 += gt[25]; - m_A11 += gt[26]; - m_A12 += go[20]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; + RHS3 += Idr[20]; + RHS3 += Idr[21]; + RHS3 += Idr[22]; + RHS3 += Idr[23]; + RHS3 -= go[21] * *cnV[21]; + RHS3 -= go[22] * *cnV[22]; + RHS3 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A12 += gt[26]; + m_A13 += go[24]; + m_A14 += go[25]; + double RHS4 = Idr[24]; RHS4 += Idr[25]; RHS4 += Idr[26]; - RHS4 -= go[21] * *cnV[21]; - RHS4 -= go[22] * *cnV[22]; - RHS4 -= go[23] * *cnV[23]; - RHS4 -= go[24] * *cnV[24]; - RHS4 -= go[25] * *cnV[25]; RHS4 -= go[26] * *cnV[26]; - m_A13 += gt[27]; - m_A13 += gt[28]; - m_A13 += gt[29]; - m_A13 += gt[30]; - m_A13 += gt[31]; - m_A14 += go[27]; - m_A15 += go[28]; + m_A15 += gt[27]; + m_A15 += gt[28]; + m_A15 += gt[29]; + m_A15 += gt[30]; + m_A16 += go[27]; double RHS5 = Idr[27]; RHS5 += Idr[28]; RHS5 += Idr[29]; RHS5 += Idr[30]; - RHS5 += Idr[31]; + RHS5 -= go[28] * *cnV[28]; RHS5 -= go[29] * *cnV[29]; RHS5 -= go[30] * *cnV[30]; - RHS5 -= go[31] * *cnV[31]; - m_A16 += gt[32]; - m_A16 += gt[33]; - m_A16 += gt[34]; - m_A16 += gt[35]; - m_A16 += gt[36]; - m_A16 += gt[37]; - m_A16 += gt[38]; - m_A17 += go[32]; - m_A18 += go[33]; - double RHS6 = Idr[32]; + m_A17 += gt[31]; + m_A17 += gt[32]; + m_A17 += gt[33]; + m_A17 += gt[34]; + m_A17 += gt[35]; + m_A17 += gt[36]; + m_A17 += gt[37]; + m_A17 += gt[38]; + m_A20 += go[31]; + m_A19 += go[32]; + m_A19 += go[33]; + m_A18 += go[34]; + m_A18 += go[35]; + double RHS6 = Idr[31]; + RHS6 += Idr[32]; RHS6 += Idr[33]; RHS6 += Idr[34]; RHS6 += Idr[35]; RHS6 += Idr[36]; RHS6 += Idr[37]; RHS6 += Idr[38]; - RHS6 -= go[34] * *cnV[34]; - RHS6 -= go[35] * *cnV[35]; RHS6 -= go[36] * *cnV[36]; RHS6 -= go[37] * *cnV[37]; RHS6 -= go[38] * *cnV[38]; - m_A19 += gt[39]; - m_A19 += gt[40]; - m_A19 += gt[41]; - m_A19 += gt[42]; - m_A20 += go[39]; - m_A21 += go[40]; + m_A21 += gt[39]; + m_A21 += gt[40]; + m_A21 += gt[41]; + m_A23 += go[39]; + m_A22 += go[40]; double RHS7 = Idr[39]; RHS7 += Idr[40]; RHS7 += Idr[41]; - RHS7 += Idr[42]; RHS7 -= go[41] * *cnV[41]; - RHS7 -= go[42] * *cnV[42]; - m_A22 += gt[43]; - m_A22 += gt[44]; - m_A22 += gt[45]; - m_A22 += gt[46]; - m_A22 += gt[47]; - m_A23 += go[43]; + m_A26 += gt[42]; + m_A26 += gt[43]; + m_A26 += gt[44]; + m_A26 += gt[45]; + m_A26 += gt[46]; + m_A26 += gt[47]; + m_A25 += go[42]; + m_A25 += go[43]; m_A24 += go[44]; - double RHS8 = Idr[43]; + double RHS8 = Idr[42]; + RHS8 += Idr[43]; RHS8 += Idr[44]; RHS8 += Idr[45]; RHS8 += Idr[46]; @@ -7512,309 +8961,340 @@ RHS8 -= go[45] * *cnV[45]; RHS8 -= go[46] * *cnV[46]; RHS8 -= go[47] * *cnV[47]; - m_A25 += gt[48]; - m_A25 += gt[49]; - m_A25 += gt[50]; - m_A26 += go[48]; - m_A27 += go[49]; + m_A31 += gt[48]; + m_A31 += gt[49]; + m_A31 += gt[50]; + m_A31 += gt[51]; + m_A31 += gt[52]; + m_A32 += go[48]; + m_A32 += go[49]; + m_A29 += go[50]; + m_A29 += go[51]; double RHS9 = Idr[48]; RHS9 += Idr[49]; RHS9 += Idr[50]; - RHS9 -= go[50] * *cnV[50]; - m_A30 += gt[51]; - m_A30 += gt[52]; - m_A30 += gt[53]; - m_A30 += gt[54]; - m_A30 += gt[55]; - m_A30 += gt[56]; - m_A29 += go[51]; - m_A29 += go[52]; - m_A28 += go[53]; - double RHS10 = Idr[51]; - RHS10 += Idr[52]; - RHS10 += Idr[53]; + RHS9 += Idr[51]; + RHS9 += Idr[52]; + RHS9 -= go[52] * *cnV[52]; + m_A35 += gt[53]; + m_A35 += gt[54]; + m_A35 += gt[55]; + m_A35 += gt[56]; + m_A35 += gt[57]; + m_A35 += gt[58]; + m_A34 += go[53]; + m_A34 += go[54]; + m_A33 += go[55]; + double RHS10 = Idr[53]; RHS10 += Idr[54]; RHS10 += Idr[55]; RHS10 += Idr[56]; - RHS10 -= go[54] * *cnV[54]; - RHS10 -= go[55] * *cnV[55]; + RHS10 += Idr[57]; + RHS10 += Idr[58]; RHS10 -= go[56] * *cnV[56]; - m_A35 += gt[57]; - m_A35 += gt[58]; - m_A35 += gt[59]; - m_A35 += gt[60]; - m_A35 += gt[61]; - m_A33 += go[57]; - m_A33 += go[58]; - m_A32 += go[59]; - double RHS11 = Idr[57]; - RHS11 += Idr[58]; - RHS11 += Idr[59]; + RHS10 -= go[57] * *cnV[57]; + RHS10 -= go[58] * *cnV[58]; + m_A40 += gt[59]; + m_A40 += gt[60]; + m_A40 += gt[61]; + m_A40 += gt[62]; + m_A40 += gt[63]; + m_A40 += gt[64]; + m_A39 += go[59]; + m_A39 += go[60]; + m_A38 += go[61]; + double RHS11 = Idr[59]; RHS11 += Idr[60]; RHS11 += Idr[61]; - RHS11 -= go[60] * *cnV[60]; - RHS11 -= go[61] * *cnV[61]; - m_A39 += gt[62]; - m_A39 += gt[63]; - m_A39 += gt[64]; - m_A39 += gt[65]; - m_A39 += gt[66]; - m_A40 += go[62]; - m_A37 += go[63]; - double RHS12 = Idr[62]; - RHS12 += Idr[63]; - RHS12 += Idr[64]; - RHS12 += Idr[65]; - RHS12 += Idr[66]; - RHS12 -= go[64] * *cnV[64]; - RHS12 -= go[65] * *cnV[65]; - RHS12 -= go[66] * *cnV[66]; - m_A42 += gt[67]; - m_A42 += gt[68]; - m_A42 += gt[69]; - m_A42 += gt[70]; - m_A42 += gt[71]; - m_A42 += gt[72]; - m_A42 += gt[73]; + RHS11 += Idr[62]; + RHS11 += Idr[63]; + RHS11 += Idr[64]; + RHS11 -= go[62] * *cnV[62]; + RHS11 -= go[63] * *cnV[63]; + RHS11 -= go[64] * *cnV[64]; + m_A45 += gt[65]; + m_A45 += gt[66]; + m_A45 += gt[67]; + m_A45 += gt[68]; + m_A45 += gt[69]; + m_A46 += go[65]; + m_A46 += go[66]; m_A43 += go[67]; - m_A41 += go[68]; - double RHS13 = Idr[67]; - RHS13 += Idr[68]; - RHS13 += Idr[69]; - RHS13 += Idr[70]; + m_A43 += go[68]; + double RHS12 = Idr[65]; + RHS12 += Idr[66]; + RHS12 += Idr[67]; + RHS12 += Idr[68]; + RHS12 += Idr[69]; + RHS12 -= go[69] * *cnV[69]; + m_A49 += gt[70]; + m_A49 += gt[71]; + m_A49 += gt[72]; + m_A49 += gt[73]; + m_A49 += gt[74]; + m_A50 += go[70]; + m_A50 += go[71]; + m_A47 += go[72]; + m_A47 += go[73]; + double RHS13 = Idr[70]; RHS13 += Idr[71]; RHS13 += Idr[72]; RHS13 += Idr[73]; - RHS13 -= go[69] * *cnV[69]; - RHS13 -= go[70] * *cnV[70]; - RHS13 -= go[71] * *cnV[71]; - RHS13 -= go[72] * *cnV[72]; - RHS13 -= go[73] * *cnV[73]; - m_A48 += gt[74]; - m_A48 += gt[75]; - m_A48 += gt[76]; - m_A46 += go[74]; - m_A45 += go[75]; - m_A50 += go[76]; - double RHS14 = Idr[74]; - RHS14 += Idr[75]; - RHS14 += Idr[76]; + RHS13 += Idr[74]; + RHS13 -= go[74] * *cnV[74]; + m_A55 += gt[75]; + m_A55 += gt[76]; m_A55 += gt[77]; m_A55 += gt[78]; - m_A55 += gt[79]; - m_A53 += go[77]; + m_A52 += go[75]; + m_A54 += go[76]; + m_A54 += go[77]; m_A51 += go[78]; - m_A57 += go[79]; - double RHS15 = Idr[77]; - RHS15 += Idr[78]; - RHS15 += Idr[79]; - m_A62 += gt[80]; - m_A62 += gt[81]; - m_A62 += gt[82]; - m_A62 += gt[83]; - m_A62 += gt[84]; - m_A58 += go[80]; - m_A60 += go[81]; - m_A59 += go[82]; - double RHS16 = Idr[80]; - RHS16 += Idr[81]; - RHS16 += Idr[82]; - RHS16 += Idr[83]; + double RHS14 = Idr[75]; + RHS14 += Idr[76]; + RHS14 += Idr[77]; + RHS14 += Idr[78]; + m_A60 += gt[79]; + m_A60 += gt[80]; + m_A60 += gt[81]; + m_A60 += gt[82]; + m_A58 += go[79]; + m_A57 += go[80]; + m_A62 += go[81]; + double RHS15 = Idr[79]; + RHS15 += Idr[80]; + RHS15 += Idr[81]; + RHS15 += Idr[82]; + RHS15 -= go[82] * *cnV[82]; + m_A68 += gt[83]; + m_A68 += gt[84]; + m_A68 += gt[85]; + m_A68 += gt[86]; + m_A64 += go[83]; + m_A66 += go[84]; + m_A66 += go[85]; + m_A63 += go[86]; + double RHS16 = Idr[83]; RHS16 += Idr[84]; - RHS16 -= go[83] * *cnV[83]; - RHS16 -= go[84] * *cnV[84]; - m_A69 += gt[85]; - m_A69 += gt[86]; - m_A69 += gt[87]; - m_A69 += gt[88]; - m_A69 += gt[89]; - m_A69 += gt[90]; - m_A64 += go[85]; - m_A67 += go[86]; - m_A65 += go[87]; - m_A66 += go[88]; - double RHS17 = Idr[85]; - RHS17 += Idr[86]; - RHS17 += Idr[87]; + RHS16 += Idr[85]; + RHS16 += Idr[86]; + m_A75 += gt[87]; + m_A75 += gt[88]; + m_A75 += gt[89]; + m_A75 += gt[90]; + m_A75 += gt[91]; + m_A72 += go[87]; + m_A72 += go[88]; + m_A70 += go[89]; + m_A73 += go[90]; + double RHS17 = Idr[87]; RHS17 += Idr[88]; RHS17 += Idr[89]; RHS17 += Idr[90]; - RHS17 -= go[89] * *cnV[89]; - RHS17 -= go[90] * *cnV[90]; + RHS17 += Idr[91]; + RHS17 -= go[91] * *cnV[91]; const double f0 = 1.0 / m_A0; - const double f0_10 = -f0 * m_A28; - m_A30 += m_A1 * f0_10; - RHS10 += f0_10 * RHS0; + const double f0_8 = -f0 * m_A24; + m_A26 += m_A1 * f0_8; + RHS8 += f0_8 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_10 = -f1 * m_A29; - m_A30 += m_A3 * f1_10; - m_A31 += m_A4 * f1_10; - RHS10 += f1_10 * RHS1; - const double f1_11 = -f1 * m_A32; - m_A34 += m_A3 * f1_11; - m_A35 += m_A4 * f1_11; - RHS11 += f1_11 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_11 = -f2 * m_A33; - m_A35 += m_A6 * f2_11; - m_A36 += m_A7 * f2_11; - RHS11 += f2_11 * RHS2; - const double f2_12 = -f2 * m_A37; - m_A38 += m_A6 * f2_12; - m_A39 += m_A7 * f2_12; - RHS12 += f2_12 * RHS2; + const double f1_8 = -f1 * m_A25; + m_A26 += m_A3 * f1_8; + m_A27 += m_A4 * f1_8; + m_A28 += m_A5 * f1_8; + RHS8 += f1_8 * RHS1; + const double f1_9 = -f1 * m_A29; + m_A30 += m_A3 * f1_9; + m_A31 += m_A4 * f1_9; + m_A32 += m_A5 * f1_9; + RHS9 += f1_9 * RHS1; + const double f1_17 = -f1 * m_A70; + m_A71 += m_A3 * f1_17; + m_A72 += m_A4 * f1_17; + m_A75 += m_A5 * f1_17; + RHS17 += f1_17 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_10 = -f2 * m_A33; + m_A35 += m_A7 * f2_10; + RHS10 += f2_10 * RHS2; const double f3 = 1.0 / m_A8; - const double f3_17 = -f3 * m_A64; - m_A66 += m_A9 * f3_17; - m_A69 += m_A10 * f3_17; - RHS17 += f3_17 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_16 = -f4 * m_A58; - m_A59 += m_A12 * f4_16; - RHS16 += f4_16 * RHS4; - const double f5 = 1.0 / m_A13; - const double f5_15 = -f5 * m_A51; - m_A52 += m_A14 * f5_15; - m_A55 += m_A15 * f5_15; - RHS15 += f5_15 * RHS5; - const double f6 = 1.0 / m_A16; - const double f6_15 = -f6 * m_A52; - m_A53 += m_A17 * f6_15; - m_A55 += m_A18 * f6_15; - RHS15 += f6_15 * RHS6; - const double f7 = 1.0 / m_A19; - const double f7_13 = -f7 * m_A41; - m_A43 += m_A20 * f7_13; - m_A44 += m_A21 * f7_13; - RHS13 += f7_13 * RHS7; - const double f7_14 = -f7 * m_A45; - m_A48 += m_A20 * f7_14; - m_A49 += m_A21 * f7_14; - RHS14 += f7_14 * RHS7; - const double f7_15 = -f7 * m_A53; - m_A54 += m_A20 * f7_15; - m_A55 += m_A21 * f7_15; + const double f3_10 = -f3 * m_A34; + m_A35 += m_A9 * f3_10; + m_A36 += m_A10 * f3_10; + m_A37 += m_A11 * f3_10; + RHS10 += f3_10 * RHS3; + const double f3_12 = -f3 * m_A43; + m_A44 += m_A9 * f3_12; + m_A45 += m_A10 * f3_12; + m_A46 += m_A11 * f3_12; + RHS12 += f3_12 * RHS3; + const double f3_14 = -f3 * m_A51; + m_A53 += m_A9 * f3_14; + m_A54 += m_A10 * f3_14; + m_A55 += m_A11 * f3_14; + RHS14 += f3_14 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_14 = -f4 * m_A52; + m_A55 += m_A13 * f4_14; + m_A56 += m_A14 * f4_14; + RHS14 += f4_14 * RHS4; + const double f4_15 = -f4 * m_A57; + m_A59 += m_A13 * f4_15; + m_A60 += m_A14 * f4_15; + RHS15 += f4_15 * RHS4; + const double f5 = 1.0 / m_A15; + const double f5_11 = -f5 * m_A38; + m_A40 += m_A16 * f5_11; + RHS11 += f5_11 * RHS5; + const double f6 = 1.0 / m_A17; + const double f6_11 = -f6 * m_A39; + m_A40 += m_A18 * f6_11; + m_A41 += m_A19 * f6_11; + m_A42 += m_A20 * f6_11; + RHS11 += f6_11 * RHS6; + const double f6_13 = -f6 * m_A47; + m_A48 += m_A18 * f6_13; + m_A49 += m_A19 * f6_13; + m_A50 += m_A20 * f6_13; + RHS13 += f6_13 * RHS6; + const double f6_16 = -f6 * m_A63; + m_A65 += m_A18 * f6_16; + m_A66 += m_A19 * f6_16; + m_A68 += m_A20 * f6_16; + RHS16 += f6_16 * RHS6; + const double f7 = 1.0 / m_A21; + const double f7_15 = -f7 * m_A58; + m_A60 += m_A22 * f7_15; + m_A61 += m_A23 * f7_15; RHS15 += f7_15 * RHS7; - const double f8 = 1.0 / m_A22; - const double f8_14 = -f8 * m_A46; - m_A47 += m_A23 * f8_14; - m_A48 += m_A24 * f8_14; - RHS14 += f8_14 * RHS8; - const double f9 = 1.0 / m_A25; - const double f9_16 = -f9 * m_A59; - m_A62 += m_A26 * f9_16; - m_A63 += m_A27 * f9_16; - RHS16 += f9_16 * RHS9; - const double f9_17 = -f9 * m_A65; - m_A68 += m_A26 * f9_17; - m_A69 += m_A27 * f9_17; + const double f7_16 = -f7 * m_A64; + m_A67 += m_A22 * f7_16; + m_A68 += m_A23 * f7_16; + RHS16 += f7_16 * RHS7; + const double f8 = 1.0 / m_A26; + const double f8_9 = -f8 * m_A30; + m_A31 += m_A27 * f8_9; + m_A32 += m_A28 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_17 = -f8 * m_A71; + m_A72 += m_A27 * f8_17; + m_A75 += m_A28 * f8_17; + RHS17 += f8_17 * RHS8; + const double f9 = 1.0 / m_A31; + const double f9_17 = -f9 * m_A72; + m_A75 += m_A32 * f9_17; RHS17 += f9_17 * RHS9; - const double f10 = 1.0 / m_A30; - const double f10_11 = -f10 * m_A34; - m_A35 += m_A31 * f10_11; - RHS11 += f10_11 * RHS10; - const double f11 = 1.0 / m_A35; - const double f11_12 = -f11 * m_A38; - m_A39 += m_A36 * f11_12; - RHS12 += f11_12 * RHS11; - const double f12 = 1.0 / m_A39; - const double f12_17 = -f12 * m_A66; - m_A69 += m_A40 * f12_17; - RHS17 += f12_17 * RHS12; - const double f13 = 1.0 / m_A42; - const double f13_14 = -f13 * m_A47; - m_A48 += m_A43 * f13_14; - m_A49 += m_A44 * f13_14; - RHS14 += f13_14 * RHS13; - const double f14 = 1.0 / m_A48; - const double f14_15 = -f14 * m_A54; - m_A55 += m_A49 * f14_15; - m_A56 += m_A50 * f14_15; + const double f10 = 1.0 / m_A35; + const double f10_12 = -f10 * m_A44; + m_A45 += m_A36 * f10_12; + m_A46 += m_A37 * f10_12; + RHS12 += f10_12 * RHS10; + const double f10_14 = -f10 * m_A53; + m_A54 += m_A36 * f10_14; + m_A55 += m_A37 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A40; + const double f11_13 = -f11 * m_A48; + m_A49 += m_A41 * f11_13; + m_A50 += m_A42 * f11_13; + RHS13 += f11_13 * RHS11; + const double f11_16 = -f11 * m_A65; + m_A66 += m_A41 * f11_16; + m_A68 += m_A42 * f11_16; + RHS16 += f11_16 * RHS11; + const double f12 = 1.0 / m_A45; + const double f12_14 = -f12 * m_A54; + m_A55 += m_A46 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A49; + const double f13_16 = -f13 * m_A66; + m_A68 += m_A50 * f13_16; + RHS16 += f13_16 * RHS13; + const double f14 = 1.0 / m_A55; + const double f14_15 = -f14 * m_A59; + m_A60 += m_A56 * f14_15; RHS15 += f14_15 * RHS14; - const double f14_16 = -f14 * m_A60; - m_A61 += m_A49 * f14_16; - m_A62 += m_A50 * f14_16; - RHS16 += f14_16 * RHS14; - const double f15 = 1.0 / m_A55; - const double f15_16 = -f15 * m_A61; - m_A62 += m_A56 * f15_16; - m_A63 += m_A57 * f15_16; + const double f15 = 1.0 / m_A60; + const double f15_16 = -f15 * m_A67; + m_A68 += m_A61 * f15_16; + m_A69 += m_A62 * f15_16; RHS16 += f15_16 * RHS15; - const double f15_17 = -f15 * m_A67; - m_A68 += m_A56 * f15_17; - m_A69 += m_A57 * f15_17; + const double f15_17 = -f15 * m_A73; + m_A74 += m_A61 * f15_17; + m_A75 += m_A62 * f15_17; RHS17 += f15_17 * RHS15; - const double f16 = 1.0 / m_A62; - const double f16_17 = -f16 * m_A68; - m_A69 += m_A63 * f16_17; + const double f16 = 1.0 / m_A68; + const double f16_17 = -f16 * m_A74; + m_A75 += m_A69 * f16_17; RHS17 += f16_17 * RHS16; - V[17] = RHS17 / m_A69; + V[17] = RHS17 / m_A75; double tmp16 = 0.0; - tmp16 += m_A63 * V[17]; - V[16] = (RHS16 - tmp16) / m_A62; + tmp16 += m_A69 * V[17]; + V[16] = (RHS16 - tmp16) / m_A68; double tmp15 = 0.0; - tmp15 += m_A56 * V[16]; - tmp15 += m_A57 * V[17]; - V[15] = (RHS15 - tmp15) / m_A55; + tmp15 += m_A61 * V[16]; + tmp15 += m_A62 * V[17]; + V[15] = (RHS15 - tmp15) / m_A60; double tmp14 = 0.0; - tmp14 += m_A49 * V[15]; - tmp14 += m_A50 * V[16]; - V[14] = (RHS14 - tmp14) / m_A48; + tmp14 += m_A56 * V[15]; + V[14] = (RHS14 - tmp14) / m_A55; double tmp13 = 0.0; - tmp13 += m_A43 * V[14]; - tmp13 += m_A44 * V[15]; - V[13] = (RHS13 - tmp13) / m_A42; + tmp13 += m_A50 * V[16]; + V[13] = (RHS13 - tmp13) / m_A49; double tmp12 = 0.0; - tmp12 += m_A40 * V[17]; - V[12] = (RHS12 - tmp12) / m_A39; + tmp12 += m_A46 * V[14]; + V[12] = (RHS12 - tmp12) / m_A45; double tmp11 = 0.0; - tmp11 += m_A36 * V[12]; - V[11] = (RHS11 - tmp11) / m_A35; + tmp11 += m_A41 * V[13]; + tmp11 += m_A42 * V[16]; + V[11] = (RHS11 - tmp11) / m_A40; double tmp10 = 0.0; - tmp10 += m_A31 * V[11]; - V[10] = (RHS10 - tmp10) / m_A30; + tmp10 += m_A36 * V[12]; + tmp10 += m_A37 * V[14]; + V[10] = (RHS10 - tmp10) / m_A35; double tmp9 = 0.0; - tmp9 += m_A26 * V[16]; - tmp9 += m_A27 * V[17]; - V[9] = (RHS9 - tmp9) / m_A25; + tmp9 += m_A32 * V[17]; + V[9] = (RHS9 - tmp9) / m_A31; double tmp8 = 0.0; - tmp8 += m_A23 * V[13]; - tmp8 += m_A24 * V[14]; - V[8] = (RHS8 - tmp8) / m_A22; + tmp8 += m_A27 * V[9]; + tmp8 += m_A28 * V[17]; + V[8] = (RHS8 - tmp8) / m_A26; double tmp7 = 0.0; - tmp7 += m_A20 * V[14]; - tmp7 += m_A21 * V[15]; - V[7] = (RHS7 - tmp7) / m_A19; + tmp7 += m_A22 * V[15]; + tmp7 += m_A23 * V[16]; + V[7] = (RHS7 - tmp7) / m_A21; double tmp6 = 0.0; - tmp6 += m_A17 * V[7]; - tmp6 += m_A18 * V[15]; - V[6] = (RHS6 - tmp6) / m_A16; + tmp6 += m_A18 * V[11]; + tmp6 += m_A19 * V[13]; + tmp6 += m_A20 * V[16]; + V[6] = (RHS6 - tmp6) / m_A17; double tmp5 = 0.0; - tmp5 += m_A14 * V[6]; - tmp5 += m_A15 * V[15]; - V[5] = (RHS5 - tmp5) / m_A13; + tmp5 += m_A16 * V[11]; + V[5] = (RHS5 - tmp5) / m_A15; double tmp4 = 0.0; - tmp4 += m_A12 * V[9]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A13 * V[14]; + tmp4 += m_A14 * V[15]; + V[4] = (RHS4 - tmp4) / m_A12; double tmp3 = 0.0; - tmp3 += m_A9 * V[12]; - tmp3 += m_A10 * V[17]; + tmp3 += m_A9 * V[10]; + tmp3 += m_A10 * V[12]; + tmp3 += m_A11 * V[14]; V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A6 * V[11]; - tmp2 += m_A7 * V[12]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A7 * V[10]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[10]; - tmp1 += m_A4 * V[11]; + tmp1 += m_A3 * V[8]; + tmp1 += m_A4 * V[9]; + tmp1 += m_A5 * V[17]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[10]; + tmp0 += m_A1 * V[8]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_50f5194a994d56ec_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// sspeedr +static void nl_gcr_3e833834e5ce5aee_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -7832,90 +9312,62 @@ double m_A10(0.0); double m_A11(0.0); double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); m_A0 += gt[0]; - m_A0 += gt[1]; m_A1 += go[0]; double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[1]; m_A2 += gt[2]; m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[2]; - double RHS1 = Idr[2]; + m_A3 += go[1]; + double RHS1 = Idr[1]; + RHS1 += Idr[2]; RHS1 += Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; + RHS1 -= go[2] * *cnV[2]; RHS1 -= go[3] * *cnV[3]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - m_A7 += gt[10]; - m_A7 += gt[11]; - m_A6 += go[10]; - m_A8 += go[11]; - double RHS3 = Idr[10]; - RHS3 += Idr[11]; - m_A10 += gt[12]; - m_A10 += gt[13]; - m_A9 += go[12]; - m_A11 += go[13]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - m_A15 += gt[14]; - m_A15 += gt[15]; - m_A15 += gt[16]; - m_A15 += gt[17]; - m_A13 += go[14]; - m_A14 += go[15]; - m_A12 += go[16]; - double RHS5 = Idr[14]; - RHS5 += Idr[15]; - RHS5 += Idr[16]; - RHS5 += Idr[17]; - RHS5 -= go[17] * *cnV[17]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A8 += gt[6]; + m_A8 += gt[7]; + m_A8 += gt[8]; + m_A9 += go[6]; + m_A7 += go[7]; + m_A6 += go[8]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 += Idr[8]; + m_A12 += gt[9]; + m_A12 += gt[10]; + m_A12 += gt[11]; + m_A10 += go[9]; + m_A11 += go[10]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + RHS4 += Idr[11]; + RHS4 -= go[11] * *cnV[11]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A12; - m_A15 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; + const double f0_3 = -f0 * m_A6; + m_A8 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A6; - m_A7 += m_A3 * f1_3; + const double f1_3 = -f1 * m_A7; + m_A8 += m_A3 * f1_3; RHS3 += f1_3 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A9; - m_A10 += m_A5 * f2_4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_5 = -f3 * m_A13; - m_A15 += m_A8 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_5 = -f4 * m_A14; - m_A15 += m_A11 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A15; - double tmp4 = 0.0; - tmp4 += m_A11 * V[5]; - V[4] = (RHS4 - tmp4) / m_A10; + const double f3 = 1.0 / m_A8; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A9 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; double tmp3 = 0.0; - tmp3 += m_A8 * V[5]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A9 * V[4]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; tmp2 += m_A5 * V[4]; V[2] = (RHS2 - tmp2) / m_A4; @@ -7923,12 +9375,12 @@ tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// starhawk -static void nl_gcr_528a27fe9ed07d67_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// astrob +static void nl_gcr_41c6441d98369158_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -7953,320 +9405,187 @@ double m_A17(0.0); double m_A18(0.0); double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A3 += go[7]; - m_A3 += go[8]; - double RHS1 = Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - m_A4 += gt[11]; - m_A4 += gt[12]; - m_A5 += go[11]; - double RHS2 = Idr[11]; - RHS2 += Idr[12]; - RHS2 -= go[12] * *cnV[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A7 += go[13]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 -= go[14] * *cnV[14]; - RHS3 -= go[15] * *cnV[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A9 += go[16]; - double RHS4 = Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 -= go[17] * *cnV[17]; - RHS4 -= go[18] * *cnV[18]; - m_A10 += gt[19]; - m_A10 += gt[20]; - m_A10 += gt[21]; - m_A11 += go[19]; - double RHS5 = Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 -= go[20] * *cnV[20]; - RHS5 -= go[21] * *cnV[21]; - m_A12 += gt[22]; - m_A12 += gt[23]; - m_A12 += gt[24]; - m_A13 += go[22]; - double RHS6 = Idr[22]; - RHS6 += Idr[23]; - RHS6 += Idr[24]; - RHS6 -= go[23] * *cnV[23]; - RHS6 -= go[24] * *cnV[24]; - m_A14 += gt[25]; - m_A14 += gt[26]; - m_A15 += go[25]; - m_A16 += go[26]; - double RHS7 = Idr[25]; - RHS7 += Idr[26]; - m_A17 += gt[27]; - m_A17 += gt[28]; - m_A17 += gt[29]; - m_A18 += go[27]; - double RHS8 = Idr[27]; - RHS8 += Idr[28]; - RHS8 += Idr[29]; - RHS8 -= go[28] * *cnV[28]; - RHS8 -= go[29] * *cnV[29]; - m_A19 += gt[30]; - m_A19 += gt[31]; - m_A19 += gt[32]; - m_A20 += go[30]; - double RHS9 = Idr[30]; - RHS9 += Idr[31]; - RHS9 += Idr[32]; - RHS9 -= go[31] * *cnV[31]; - RHS9 -= go[32] * *cnV[32]; - m_A21 += gt[33]; - m_A21 += gt[34]; - m_A21 += gt[35]; - m_A22 += go[33]; - double RHS10 = Idr[33]; - RHS10 += Idr[34]; - RHS10 += Idr[35]; - RHS10 -= go[34] * *cnV[34]; - RHS10 -= go[35] * *cnV[35]; - m_A23 += gt[36]; - m_A23 += gt[37]; - m_A23 += gt[38]; - m_A24 += go[36]; - double RHS11 = Idr[36]; - RHS11 += Idr[37]; - RHS11 += Idr[38]; - RHS11 -= go[37] * *cnV[37]; - RHS11 -= go[38] * *cnV[38]; - m_A34 += gt[39]; - m_A34 += gt[40]; - m_A34 += gt[41]; - m_A34 += gt[42]; - m_A34 += gt[43]; - m_A34 += gt[44]; - m_A34 += gt[45]; - m_A34 += gt[46]; - m_A34 += gt[47]; - m_A34 += gt[48]; - m_A33 += go[39]; - m_A32 += go[40]; - m_A31 += go[41]; - m_A30 += go[42]; - m_A29 += go[43]; - m_A28 += go[44]; - m_A27 += go[45]; - m_A26 += go[46]; - m_A25 += go[47]; - double RHS12 = Idr[39]; - RHS12 += Idr[40]; - RHS12 += Idr[41]; - RHS12 += Idr[42]; - RHS12 += Idr[43]; - RHS12 += Idr[44]; - RHS12 += Idr[45]; - RHS12 += Idr[46]; - RHS12 += Idr[47]; - RHS12 += Idr[48]; - RHS12 -= go[48] * *cnV[48]; - m_A38 += gt[49]; - m_A38 += gt[50]; - m_A38 += gt[51]; - m_A38 += gt[52]; - m_A38 += gt[53]; - m_A38 += gt[54]; - m_A36 += go[49]; - m_A39 += go[50]; - m_A37 += go[51]; - m_A37 += go[52]; - double RHS13 = Idr[49]; - RHS13 += Idr[50]; - RHS13 += Idr[51]; - RHS13 += Idr[52]; - RHS13 += Idr[53]; - RHS13 += Idr[54]; - RHS13 -= go[53] * *cnV[53]; - RHS13 -= go[54] * *cnV[54]; - m_A44 += gt[55]; - m_A44 += gt[56]; - m_A44 += gt[57]; - m_A44 += gt[58]; - m_A44 += gt[59]; - m_A41 += go[55]; - m_A40 += go[56]; - m_A43 += go[57]; - double RHS14 = Idr[55]; - RHS14 += Idr[56]; - RHS14 += Idr[57]; - RHS14 += Idr[58]; - RHS14 += Idr[59]; - RHS14 -= go[58] * *cnV[58]; - RHS14 -= go[59] * *cnV[59]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A7 += go[5]; + m_A6 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A10 += gt[8]; + m_A10 += gt[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A9 += go[8]; + m_A8 += go[9]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A15 += gt[12]; + m_A15 += gt[13]; + m_A15 += gt[14]; + m_A15 += gt[15]; + m_A13 += go[12]; + m_A12 += go[13]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + m_A19 += gt[16]; + m_A19 += gt[17]; + m_A17 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; const double f0 = 1.0 / m_A0; - const double f0_13 = -f0 * m_A36; - m_A37 += m_A1 * f0_13; - RHS13 += f0_13 * RHS0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_13 = -f1 * m_A37; - m_A38 += m_A3 * f1_13; - RHS13 += f1_13 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_14 = -f2 * m_A40; - m_A44 += m_A5 * f2_14; - RHS14 += f2_14 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_12 = -f3 * m_A25; - m_A34 += m_A7 * f3_12; - RHS12 += f3_12 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_12 = -f4 * m_A26; - m_A34 += m_A9 * f4_12; - RHS12 += f4_12 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_12 = -f5 * m_A27; - m_A34 += m_A11 * f5_12; - RHS12 += f5_12 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_12 = -f6 * m_A28; - m_A34 += m_A13 * f6_12; - RHS12 += f6_12 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_12 = -f7 * m_A29; - m_A34 += m_A15 * f7_12; - m_A35 += m_A16 * f7_12; - RHS12 += f7_12 * RHS7; - const double f7_14 = -f7 * m_A41; - m_A42 += m_A15 * f7_14; - m_A44 += m_A16 * f7_14; - RHS14 += f7_14 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_12 = -f8 * m_A30; - m_A34 += m_A18 * f8_12; - RHS12 += f8_12 * RHS8; - const double f9 = 1.0 / m_A19; - const double f9_12 = -f9 * m_A31; - m_A34 += m_A20 * f9_12; - RHS12 += f9_12 * RHS9; - const double f10 = 1.0 / m_A21; - const double f10_12 = -f10 * m_A32; - m_A34 += m_A22 * f10_12; - RHS12 += f10_12 * RHS10; - const double f11 = 1.0 / m_A23; - const double f11_12 = -f11 * m_A33; - m_A34 += m_A24 * f11_12; - RHS12 += f11_12 * RHS11; - const double f12 = 1.0 / m_A34; - const double f12_14 = -f12 * m_A42; - m_A44 += m_A35 * f12_14; - RHS14 += f12_14 * RHS12; - const double f13 = 1.0 / m_A38; - const double f13_14 = -f13 * m_A43; - m_A44 += m_A39 * f13_14; - RHS14 += f13_14 * RHS13; - V[14] = RHS14 / m_A44; - double tmp13 = 0.0; - tmp13 += m_A39 * V[14]; - V[13] = (RHS13 - tmp13) / m_A38; - double tmp12 = 0.0; - tmp12 += m_A35 * V[14]; - V[12] = (RHS12 - tmp12) / m_A34; - double tmp11 = 0.0; - tmp11 += m_A24 * V[12]; - V[11] = (RHS11 - tmp11) / m_A23; - double tmp10 = 0.0; - tmp10 += m_A22 * V[12]; - V[10] = (RHS10 - tmp10) / m_A21; - double tmp9 = 0.0; - tmp9 += m_A20 * V[12]; - V[9] = (RHS9 - tmp9) / m_A19; - double tmp8 = 0.0; - tmp8 += m_A18 * V[12]; - V[8] = (RHS8 - tmp8) / m_A17; - double tmp7 = 0.0; - tmp7 += m_A15 * V[12]; - tmp7 += m_A16 * V[14]; - V[7] = (RHS7 - tmp7) / m_A14; - double tmp6 = 0.0; - tmp6 += m_A13 * V[12]; - V[6] = (RHS6 - tmp6) / m_A12; - double tmp5 = 0.0; - tmp5 += m_A11 * V[12]; - V[5] = (RHS5 - tmp5) / m_A10; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A12; + m_A14 += m_A3 * f1_4; + m_A15 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A13; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A17; + m_A18 += m_A6 * f2_5; + m_A19 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + RHS4 += f3_4 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A16 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A19; double tmp4 = 0.0; - tmp4 += m_A9 * V[12]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A16 * V[5]; + V[4] = (RHS4 - tmp4) / m_A15; double tmp3 = 0.0; - tmp3 += m_A7 * V[12]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A11 * V[4]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A5 * V[14]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[13]; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[1]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_53e1117fdb16f546_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// warrior +static void nl_gcr_42a31ce5c187b308_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + m_A7 += gt[5]; + m_A7 += gt[6]; + m_A7 += gt[7]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A11 += gt[8]; + m_A9 += go[8]; + double RHS3 = Idr[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A7 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A6; + m_A7 += m_A3 * f1_2; + m_A8 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A8 * V[3]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// 280zzzap +static void nl_gcr_42c57d523cac30d0_122_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -8294,256 +9613,105 @@ double m_A20(0.0); double m_A21(0.0); double m_A22(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A4 += go[4]; - m_A3 += go[5]; - m_A3 += go[6]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A5 += gt[12]; - m_A5 += gt[13]; - m_A7 += go[10]; - m_A6 += go[11]; - m_A6 += go[12]; - double RHS2 = Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[13] * *cnV[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A9 += go[14]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 -= go[15] * *cnV[15]; - m_A12 += gt[16]; - m_A12 += gt[17]; - m_A12 += gt[18]; - m_A12 += gt[19]; - m_A12 += gt[20]; - m_A11 += go[16]; - m_A11 += go[17]; - m_A10 += go[18]; - double RHS4 = Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; - m_A17 += gt[21]; - m_A17 += gt[22]; - m_A17 += gt[23]; - m_A17 += gt[24]; - m_A17 += gt[25]; - m_A15 += go[21]; - m_A15 += go[22]; - m_A14 += go[23]; - double RHS5 = Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; - RHS5 -= go[24] * *cnV[24]; - RHS5 -= go[25] * *cnV[25]; - m_A22 += gt[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A22 += gt[30]; - m_A20 += go[26]; - m_A19 += go[27]; - double RHS6 = Idr[26]; - RHS6 += Idr[27]; - RHS6 += Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 -= go[28] * *cnV[28]; - RHS6 -= go[29] * *cnV[29]; - RHS6 -= go[30] * *cnV[30]; - const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A10; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A11; - m_A12 += m_A3 * f1_4; - m_A13 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A14; - m_A16 += m_A3 * f1_5; - m_A17 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_5 = -f2 * m_A15; - m_A17 += m_A6 * f2_5; - m_A18 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f2_6 = -f2 * m_A19; - m_A21 += m_A6 * f2_6; - m_A22 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_6 = -f3 * m_A20; - m_A22 += m_A9 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A12; - const double f4_5 = -f4 * m_A16; - m_A17 += m_A13 * f4_5; - RHS5 += f4_5 * RHS4; - const double f5 = 1.0 / m_A17; - const double f5_6 = -f5 * m_A21; - m_A22 += m_A18 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A22; - double tmp5 = 0.0; - tmp5 += m_A18 * V[6]; - V[5] = (RHS5 - tmp5) / m_A17; - double tmp4 = 0.0; - tmp4 += m_A13 * V[5]; - V[4] = (RHS4 - tmp4) / m_A12; - double tmp3 = 0.0; - tmp3 += m_A9 * V[6]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A6 * V[5]; - tmp2 += m_A7 * V[6]; - V[2] = (RHS2 - tmp2) / m_A5; - double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - tmp1 += m_A4 * V[5]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// cheekyms -static void nl_gcr_546396f65ce48700_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A2 += go[0]; - m_A1 += go[1]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[2] * *cnV[2]; - m_A3 += gt[3]; - m_A3 += gt[4]; - m_A4 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 -= go[4] * *cnV[4]; - m_A6 += gt[5]; - m_A6 += gt[6]; - m_A7 += go[5]; - m_A5 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - m_A11 += gt[7]; - m_A11 += gt[8]; - m_A11 += gt[9]; - m_A11 += gt[10]; - m_A11 += gt[11]; - m_A11 += gt[12]; - m_A9 += go[7]; - m_A10 += go[8]; - m_A8 += go[9]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - RHS3 += Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A6 += m_A1 * f0_2; - m_A7 += m_A2 * f0_2; - RHS2 += f0_2 * RHS0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - m_A11 += m_A2 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_3 = -f1 * m_A9; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; - double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A4 * V[3]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - tmp0 += m_A2 * V[3]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// dpatrol -static void nl_gcr_59cb6bf7cb9d17dc_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -8556,428 +9724,771 @@ double RHS1 = Idr[2]; RHS1 += Idr[3]; RHS1 -= go[3] * *cnV[3]; - m_A6 += gt[4]; - m_A6 += gt[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; m_A5 += go[4]; - m_A4 += go[5]; double RHS2 = Idr[4]; RHS2 += Idr[5]; RHS2 += Idr[6]; - RHS2 += Idr[7]; + RHS2 -= go[5] * *cnV[5]; RHS2 -= go[6] * *cnV[6]; - RHS2 -= go[7] * *cnV[7]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// breakout -static void nl_gcr_5a3419e2809520de_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[7]; + m_A6 += gt[8]; m_A6 += gt[9]; m_A6 += gt[10]; m_A6 += gt[11]; - m_A7 += go[9]; - double RHS3 = Idr[9]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; RHS3 += Idr[10]; RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[8] * *cnV[8]; + RHS3 -= go[9] * *cnV[9]; RHS3 -= go[10] * *cnV[10]; RHS3 -= go[11] * *cnV[11]; - m_A12 += gt[12]; - m_A12 += gt[13]; - m_A12 += gt[14]; - m_A12 += gt[15]; - m_A12 += gt[16]; - m_A12 += gt[17]; - m_A11 += go[12]; - m_A10 += go[13]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; m_A9 += go[14]; - m_A8 += go[15]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; + double RHS4 = Idr[14]; RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 -= go[16] * *cnV[16]; - RHS4 -= go[17] * *cnV[17]; - const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A8; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A9; - m_A12 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A10; - m_A12 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_4 = -f3 * m_A11; - m_A12 += m_A7 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A12; - double tmp3 = 0.0; - tmp3 += m_A7 * V[4]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// tailg -static void nl_gcr_5ccf7da1202da2e5_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; - m_A0 += gt[7]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; - RHS0 += Idr[7]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - RHS0 -= go[7] * *cnV[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A3 += go[8]; - double RHS1 = Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - m_A4 += gt[11]; - m_A4 += gt[12]; - m_A4 += gt[13]; - m_A5 += go[11]; - double RHS2 = Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[12] * *cnV[12]; - RHS2 -= go[13] * *cnV[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A6 += gt[16]; - m_A7 += go[14]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A8 += gt[19]; - m_A9 += go[17]; - double RHS4 = Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 -= go[18] * *cnV[18]; - RHS4 -= go[19] * *cnV[19]; - m_A10 += gt[20]; - m_A10 += gt[21]; - m_A10 += gt[22]; - m_A11 += go[20]; - double RHS5 = Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 -= go[21] * *cnV[21]; - RHS5 -= go[22] * *cnV[22]; - m_A12 += gt[23]; - m_A12 += gt[24]; - m_A12 += gt[25]; - m_A13 += go[23]; - double RHS6 = Idr[23]; + RHS4 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A12 += go[16]; + m_A13 += go[17]; + m_A11 += go[18]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 -= go[19] * *cnV[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A14 += gt[24]; + m_A14 += gt[25]; + m_A14 += gt[26]; + m_A15 += go[20]; + double RHS6 = Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; RHS6 += Idr[24]; RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 -= go[21] * *cnV[21]; + RHS6 -= go[22] * *cnV[22]; + RHS6 -= go[23] * *cnV[23]; RHS6 -= go[24] * *cnV[24]; RHS6 -= go[25] * *cnV[25]; - m_A14 += gt[26]; - m_A14 += gt[27]; - m_A14 += gt[28]; - m_A15 += go[26]; - double RHS7 = Idr[26]; - RHS7 += Idr[27]; + RHS6 -= go[26] * *cnV[26]; + m_A16 += gt[27]; + m_A16 += gt[28]; + m_A18 += go[27]; + m_A17 += go[28]; + double RHS7 = Idr[27]; RHS7 += Idr[28]; - RHS7 -= go[27] * *cnV[27]; - RHS7 -= go[28] * *cnV[28]; - m_A16 += gt[29]; - m_A16 += gt[30]; - m_A16 += gt[31]; - m_A17 += go[29]; + m_A19 += gt[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A20 += go[29]; double RHS8 = Idr[29]; RHS8 += Idr[30]; RHS8 += Idr[31]; RHS8 -= go[30] * *cnV[30]; RHS8 -= go[31] * *cnV[31]; - m_A19 += gt[32]; - m_A19 += gt[33]; - m_A20 += go[32]; - m_A18 += go[33]; + m_A21 += gt[32]; + m_A21 += gt[33]; + m_A22 += go[32]; double RHS9 = Idr[32]; RHS9 += Idr[33]; - m_A30 += gt[34]; - m_A30 += gt[35]; - m_A30 += gt[36]; - m_A30 += gt[37]; - m_A30 += gt[38]; - m_A30 += gt[39]; - m_A30 += gt[40]; - m_A30 += gt[41]; - m_A30 += gt[42]; - m_A30 += gt[43]; - m_A28 += go[34]; - m_A27 += go[35]; - m_A26 += go[36]; - m_A25 += go[37]; - m_A29 += go[38]; - m_A24 += go[39]; - m_A23 += go[40]; - m_A22 += go[41]; - m_A21 += go[42]; + RHS9 -= go[33] * *cnV[33]; + m_A23 += gt[34]; + m_A23 += gt[35]; + m_A23 += gt[36]; + m_A24 += go[34]; + m_A25 += go[35]; + m_A25 += go[36]; double RHS10 = Idr[34]; RHS10 += Idr[35]; RHS10 += Idr[36]; - RHS10 += Idr[37]; - RHS10 += Idr[38]; - RHS10 += Idr[39]; - RHS10 += Idr[40]; - RHS10 += Idr[41]; - RHS10 += Idr[42]; - RHS10 += Idr[43]; - RHS10 -= go[43] * *cnV[43]; + m_A26 += gt[37]; + m_A26 += gt[38]; + m_A26 += gt[39]; + m_A26 += gt[40]; + m_A26 += gt[41]; + m_A26 += gt[42]; + m_A26 += gt[43]; + m_A27 += go[37]; + double RHS11 = Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + RHS11 -= go[40] * *cnV[40]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + m_A28 += gt[44]; + m_A28 += gt[45]; + m_A28 += gt[46]; + m_A29 += go[44]; + double RHS12 = Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + RHS12 -= go[45] * *cnV[45]; + RHS12 -= go[46] * *cnV[46]; + m_A30 += gt[47]; + m_A30 += gt[48]; + m_A30 += gt[49]; + m_A30 += gt[50]; + m_A32 += go[47]; + m_A31 += go[48]; + m_A33 += go[49]; + double RHS13 = Idr[47]; + RHS13 += Idr[48]; + RHS13 += Idr[49]; + RHS13 += Idr[50]; + RHS13 -= go[50] * *cnV[50]; + m_A35 += gt[51]; + m_A35 += gt[52]; + m_A34 += go[51]; + double RHS14 = Idr[51]; + RHS14 += Idr[52]; + RHS14 -= go[52] * *cnV[52]; + m_A37 += gt[53]; + m_A37 += gt[54]; + m_A37 += gt[55]; + m_A37 += gt[56]; + m_A36 += go[53]; + m_A38 += go[54]; + double RHS15 = Idr[53]; + RHS15 += Idr[54]; + RHS15 += Idr[55]; + RHS15 += Idr[56]; + RHS15 -= go[55] * *cnV[55]; + RHS15 -= go[56] * *cnV[56]; + m_A40 += gt[57]; + m_A40 += gt[58]; + m_A39 += go[57]; + double RHS16 = Idr[57]; + RHS16 += Idr[58]; + RHS16 -= go[58] * *cnV[58]; + m_A43 += gt[59]; + m_A43 += gt[60]; + m_A41 += go[59]; + m_A42 += go[60]; + double RHS17 = Idr[59]; + RHS17 += Idr[60]; + m_A47 += gt[61]; + m_A47 += gt[62]; + m_A47 += gt[63]; + m_A47 += gt[64]; + m_A47 += gt[65]; + m_A46 += go[61]; + m_A49 += go[62]; + m_A50 += go[63]; + double RHS18 = Idr[61]; + RHS18 += Idr[62]; + RHS18 += Idr[63]; + RHS18 += Idr[64]; + RHS18 += Idr[65]; + RHS18 -= go[64] * *cnV[64]; + RHS18 -= go[65] * *cnV[65]; + m_A52 += gt[66]; + m_A52 += gt[67]; + m_A51 += go[66]; + double RHS19 = Idr[66]; + RHS19 += Idr[67]; + RHS19 -= go[67] * *cnV[67]; + m_A55 += gt[68]; + m_A55 += gt[69]; + m_A54 += go[68]; + m_A53 += go[69]; + double RHS20 = Idr[68]; + RHS20 += Idr[69]; + m_A60 += gt[70]; + m_A60 += gt[71]; + m_A60 += gt[72]; + m_A60 += gt[73]; + m_A59 += go[70]; + m_A61 += go[71]; + double RHS21 = Idr[70]; + RHS21 += Idr[71]; + RHS21 += Idr[72]; + RHS21 += Idr[73]; + RHS21 -= go[72] * *cnV[72]; + RHS21 -= go[73] * *cnV[73]; + m_A69 += gt[74]; + m_A69 += gt[75]; + m_A69 += gt[76]; + m_A69 += gt[77]; + m_A69 += gt[78]; + m_A69 += gt[79]; + m_A69 += gt[80]; + m_A69 += gt[81]; + m_A69 += gt[82]; + m_A62 += go[74]; + m_A65 += go[75]; + m_A65 += go[76]; + m_A64 += go[77]; + m_A63 += go[78]; + m_A71 += go[79]; + double RHS22 = Idr[74]; + RHS22 += Idr[75]; + RHS22 += Idr[76]; + RHS22 += Idr[77]; + RHS22 += Idr[78]; + RHS22 += Idr[79]; + RHS22 += Idr[80]; + RHS22 += Idr[81]; + RHS22 += Idr[82]; + RHS22 -= go[80] * *cnV[80]; + RHS22 -= go[81] * *cnV[81]; + RHS22 -= go[82] * *cnV[82]; + m_A75 += gt[83]; + m_A75 += gt[84]; + m_A75 += gt[85]; + m_A75 += gt[86]; + m_A74 += go[83]; + m_A76 += go[84]; + double RHS23 = Idr[83]; + RHS23 += Idr[84]; + RHS23 += Idr[85]; + RHS23 += Idr[86]; + RHS23 -= go[85] * *cnV[85]; + RHS23 -= go[86] * *cnV[86]; + m_A82 += gt[87]; + m_A82 += gt[88]; + m_A82 += gt[89]; + m_A82 += gt[90]; + m_A82 += gt[91]; + m_A82 += gt[92]; + m_A77 += go[87]; + m_A78 += go[88]; + m_A84 += go[89]; + double RHS24 = Idr[87]; + RHS24 += Idr[88]; + RHS24 += Idr[89]; + RHS24 += Idr[90]; + RHS24 += Idr[91]; + RHS24 += Idr[92]; + RHS24 -= go[90] * *cnV[90]; + RHS24 -= go[91] * *cnV[91]; + RHS24 -= go[92] * *cnV[92]; + m_A93 += gt[93]; + m_A93 += gt[94]; + m_A93 += gt[95]; + m_A93 += gt[96]; + m_A93 += gt[97]; + m_A91 += go[93]; + m_A89 += go[94]; + m_A88 += go[95]; + m_A87 += go[96]; + m_A86 += go[97]; + double RHS25 = Idr[93]; + RHS25 += Idr[94]; + RHS25 += Idr[95]; + RHS25 += Idr[96]; + RHS25 += Idr[97]; + m_A104 += gt[98]; + m_A104 += gt[99]; + m_A104 += gt[100]; + m_A104 += gt[101]; + m_A104 += gt[102]; + m_A102 += go[98]; + m_A99 += go[99]; + m_A98 += go[100]; + m_A97 += go[101]; + m_A96 += go[102]; + double RHS26 = Idr[98]; + RHS26 += Idr[99]; + RHS26 += Idr[100]; + RHS26 += Idr[101]; + RHS26 += Idr[102]; + m_A113 += gt[103]; + m_A113 += gt[104]; + m_A113 += gt[105]; + m_A113 += gt[106]; + m_A107 += go[103]; + m_A106 += go[104]; + m_A114 += go[105]; + double RHS27 = Idr[103]; + RHS27 += Idr[104]; + RHS27 += Idr[105]; + RHS27 += Idr[106]; + RHS27 -= go[106] * *cnV[106]; + m_A121 += gt[107]; + m_A121 += gt[108]; + m_A121 += gt[109]; + m_A121 += gt[110]; + m_A121 += gt[111]; + m_A118 += go[107]; + m_A117 += go[108]; + m_A120 += go[109]; + m_A116 += go[110]; + m_A115 += go[111]; + double RHS28 = Idr[107]; + RHS28 += Idr[108]; + RHS28 += Idr[109]; + RHS28 += Idr[110]; + RHS28 += Idr[111]; const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A18; - m_A19 += m_A1 * f0_9; - RHS9 += f0_9 * RHS0; + const double f0_17 = -f0 * m_A41; + m_A43 += m_A1 * f0_17; + RHS17 += f0_17 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_10 = -f1 * m_A21; - m_A30 += m_A3 * f1_10; - RHS10 += f1_10 * RHS1; + const double f1_14 = -f1 * m_A34; + m_A35 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; + const double f1_25 = -f1 * m_A86; + m_A89 += m_A3 * f1_25; + RHS25 += f1_25 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_10 = -f2 * m_A22; - m_A30 += m_A5 * f2_10; - RHS10 += f2_10 * RHS2; + const double f2_15 = -f2 * m_A36; + m_A38 += m_A5 * f2_15; + RHS15 += f2_15 * RHS2; + const double f2_25 = -f2 * m_A87; + m_A93 += m_A5 * f2_25; + RHS25 += f2_25 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_10 = -f3 * m_A23; - m_A30 += m_A7 * f3_10; - RHS10 += f3_10 * RHS3; + const double f3_22 = -f3 * m_A62; + m_A66 += m_A7 * f3_22; + RHS22 += f3_22 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_10 = -f4 * m_A24; - m_A30 += m_A9 * f4_10; - RHS10 += f4_10 * RHS4; + const double f4_16 = -f4 * m_A39; + m_A40 += m_A9 * f4_16; + RHS16 += f4_16 * RHS4; + const double f4_28 = -f4 * m_A115; + m_A117 += m_A9 * f4_28; + RHS28 += f4_28 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_10 = -f5 * m_A25; - m_A30 += m_A11 * f5_10; - RHS10 += f5_10 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_10 = -f6 * m_A26; - m_A30 += m_A13 * f6_10; - RHS10 += f6_10 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_10 = -f7 * m_A27; - m_A30 += m_A15 * f7_10; - RHS10 += f7_10 * RHS7; - const double f8 = 1.0 / m_A16; - const double f8_10 = -f8 * m_A28; - m_A30 += m_A17 * f8_10; - RHS10 += f8_10 * RHS8; - const double f9 = 1.0 / m_A19; - const double f9_10 = -f9 * m_A29; - m_A30 += m_A20 * f9_10; - RHS10 += f9_10 * RHS9; - V[10] = RHS10 / m_A30; - double tmp9 = 0.0; - tmp9 += m_A20 * V[10]; - V[9] = (RHS9 - tmp9) / m_A19; - double tmp8 = 0.0; - tmp8 += m_A17 * V[10]; - V[8] = (RHS8 - tmp8) / m_A16; - double tmp7 = 0.0; - tmp7 += m_A15 * V[10]; - V[7] = (RHS7 - tmp7) / m_A14; - double tmp6 = 0.0; - tmp6 += m_A13 * V[10]; - V[6] = (RHS6 - tmp6) / m_A12; - double tmp5 = 0.0; - tmp5 += m_A11 * V[10]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[10]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[10]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[10]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[10]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// starcas -static void nl_gcr_5d550fc7441617a2_109_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); + const double f5_17 = -f5 * m_A42; + m_A43 += m_A11 * f5_17; + m_A44 += m_A12 * f5_17; + m_A45 += m_A13 * f5_17; + RHS17 += f5_17 * RHS5; + const double f5_22 = -f5 * m_A63; + m_A67 += m_A11 * f5_22; + m_A69 += m_A12 * f5_22; + m_A71 += m_A13 * f5_22; + RHS22 += f5_22 * RHS5; + const double f5_25 = -f5 * m_A88; + m_A90 += m_A11 * f5_25; + m_A91 += m_A12 * f5_25; + m_A93 += m_A13 * f5_25; + RHS25 += f5_25 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_18 = -f6 * m_A46; + m_A48 += m_A15 * f6_18; + RHS18 += f6_18 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_22 = -f7 * m_A64; + m_A69 += m_A17 * f7_22; + m_A73 += m_A18 * f7_22; + RHS22 += f7_22 * RHS7; + const double f7_27 = -f7 * m_A106; + m_A109 += m_A17 * f7_27; + m_A113 += m_A18 * f7_27; + RHS27 += f7_27 * RHS7; + const double f8 = 1.0 / m_A19; + const double f8_21 = -f8 * m_A59; + m_A61 += m_A20 * f8_21; + RHS21 += f8_21 * RHS8; + const double f8_28 = -f8 * m_A116; + m_A121 += m_A20 * f8_28; + RHS28 += f8_28 * RHS8; + const double f9 = 1.0 / m_A21; + const double f9_19 = -f9 * m_A51; + m_A52 += m_A22 * f9_19; + RHS19 += f9_19 * RHS9; + const double f9_26 = -f9 * m_A96; + m_A99 += m_A22 * f9_26; + RHS26 += f9_26 * RHS9; + const double f10 = 1.0 / m_A23; + const double f10_20 = -f10 * m_A53; + m_A55 += m_A24 * f10_20; + m_A56 += m_A25 * f10_20; + RHS20 += f10_20 * RHS10; + const double f10_22 = -f10 * m_A65; + m_A68 += m_A24 * f10_22; + m_A69 += m_A25 * f10_22; + RHS22 += f10_22 * RHS10; + const double f11 = 1.0 / m_A26; + const double f11_24 = -f11 * m_A77; + m_A81 += m_A27 * f11_24; + RHS24 += f11_24 * RHS11; + const double f12 = 1.0 / m_A28; + const double f12_23 = -f12 * m_A74; + m_A76 += m_A29 * f12_23; + RHS23 += f12_23 * RHS12; + const double f12_26 = -f12 * m_A97; + m_A104 += m_A29 * f12_26; + RHS26 += f12_26 * RHS12; + const double f13 = 1.0 / m_A30; + const double f13_20 = -f13 * m_A54; + m_A55 += m_A31 * f13_20; + m_A57 += m_A32 * f13_20; + m_A58 += m_A33 * f13_20; + RHS20 += f13_20 * RHS13; + const double f13_24 = -f13 * m_A78; + m_A79 += m_A31 * f13_24; + m_A82 += m_A32 * f13_24; + m_A84 += m_A33 * f13_24; + RHS24 += f13_24 * RHS13; + const double f13_26 = -f13 * m_A98; + m_A100 += m_A31 * f13_26; + m_A102 += m_A32 * f13_26; + m_A104 += m_A33 * f13_26; + RHS26 += f13_26 * RHS13; + const double f14 = 1.0 / m_A35; + const double f14_25 = -f14 * m_A89; + RHS25 += f14_25 * RHS14; + const double f15 = 1.0 / m_A37; + const double f15_22 = -f15 * m_A66; + m_A71 += m_A38 * f15_22; + RHS22 += f15_22 * RHS15; + const double f16 = 1.0 / m_A40; + const double f16_28 = -f16 * m_A117; + RHS28 += f16_28 * RHS16; + const double f17 = 1.0 / m_A43; + const double f17_22 = -f17 * m_A67; + m_A69 += m_A44 * f17_22; + m_A71 += m_A45 * f17_22; + RHS22 += f17_22 * RHS17; + const double f17_25 = -f17 * m_A90; + m_A91 += m_A44 * f17_25; + m_A93 += m_A45 * f17_25; + RHS25 += f17_25 * RHS17; + const double f18 = 1.0 / m_A47; + const double f18_27 = -f18 * m_A107; + m_A108 += m_A48 * f18_27; + m_A113 += m_A49 * f18_27; + m_A114 += m_A50 * f18_27; + RHS27 += f18_27 * RHS18; + const double f18_28 = -f18 * m_A118; + m_A119 += m_A48 * f18_28; + m_A120 += m_A49 * f18_28; + m_A121 += m_A50 * f18_28; + RHS28 += f18_28 * RHS18; + const double f19 = 1.0 / m_A52; + const double f19_26 = -f19 * m_A99; + RHS26 += f19_26 * RHS19; + const double f20 = 1.0 / m_A55; + const double f20_22 = -f20 * m_A68; + m_A69 += m_A56 * f20_22; + m_A70 += m_A57 * f20_22; + m_A72 += m_A58 * f20_22; + RHS22 += f20_22 * RHS20; + const double f20_24 = -f20 * m_A79; + m_A80 += m_A56 * f20_24; + m_A82 += m_A57 * f20_24; + m_A84 += m_A58 * f20_24; + RHS24 += f20_24 * RHS20; + const double f20_26 = -f20 * m_A100; + m_A101 += m_A56 * f20_26; + m_A102 += m_A57 * f20_26; + m_A104 += m_A58 * f20_26; + RHS26 += f20_26 * RHS20; + const double f21 = 1.0 / m_A60; + const double f21_27 = -f21 * m_A108; + m_A114 += m_A61 * f21_27; + RHS27 += f21_27 * RHS21; + const double f21_28 = -f21 * m_A119; + m_A121 += m_A61 * f21_28; + RHS28 += f21_28 * RHS21; + const double f22 = 1.0 / m_A69; + const double f22_24 = -f22 * m_A80; + m_A82 += m_A70 * f22_24; + m_A83 += m_A71 * f22_24; + m_A84 += m_A72 * f22_24; + m_A85 += m_A73 * f22_24; + RHS24 += f22_24 * RHS22; + const double f22_25 = -f22 * m_A91; + m_A92 += m_A70 * f22_25; + m_A93 += m_A71 * f22_25; + m_A94 += m_A72 * f22_25; + m_A95 += m_A73 * f22_25; + RHS25 += f22_25 * RHS22; + const double f22_26 = -f22 * m_A101; + m_A102 += m_A70 * f22_26; + m_A103 += m_A71 * f22_26; + m_A104 += m_A72 * f22_26; + m_A105 += m_A73 * f22_26; + RHS26 += f22_26 * RHS22; + const double f22_27 = -f22 * m_A109; + m_A110 += m_A70 * f22_27; + m_A111 += m_A71 * f22_27; + m_A112 += m_A72 * f22_27; + m_A113 += m_A73 * f22_27; + RHS27 += f22_27 * RHS22; + const double f23 = 1.0 / m_A75; + const double f23_24 = -f23 * m_A81; + m_A84 += m_A76 * f23_24; + RHS24 += f23_24 * RHS23; + const double f24 = 1.0 / m_A82; + const double f24_25 = -f24 * m_A92; + m_A93 += m_A83 * f24_25; + m_A94 += m_A84 * f24_25; + m_A95 += m_A85 * f24_25; + RHS25 += f24_25 * RHS24; + const double f24_26 = -f24 * m_A102; + m_A103 += m_A83 * f24_26; + m_A104 += m_A84 * f24_26; + m_A105 += m_A85 * f24_26; + RHS26 += f24_26 * RHS24; + const double f24_27 = -f24 * m_A110; + m_A111 += m_A83 * f24_27; + m_A112 += m_A84 * f24_27; + m_A113 += m_A85 * f24_27; + RHS27 += f24_27 * RHS24; + const double f25 = 1.0 / m_A93; + const double f25_26 = -f25 * m_A103; + m_A104 += m_A94 * f25_26; + m_A105 += m_A95 * f25_26; + RHS26 += f25_26 * RHS25; + const double f25_27 = -f25 * m_A111; + m_A112 += m_A94 * f25_27; + m_A113 += m_A95 * f25_27; + RHS27 += f25_27 * RHS25; + const double f26 = 1.0 / m_A104; + const double f26_27 = -f26 * m_A112; + m_A113 += m_A105 * f26_27; + RHS27 += f26_27 * RHS26; + const double f27 = 1.0 / m_A113; + const double f27_28 = -f27 * m_A120; + m_A121 += m_A114 * f27_28; + RHS28 += f27_28 * RHS27; + V[28] = RHS28 / m_A121; + double tmp27 = 0.0; + tmp27 += m_A114 * V[28]; + V[27] = (RHS27 - tmp27) / m_A113; + double tmp26 = 0.0; + tmp26 += m_A105 * V[27]; + V[26] = (RHS26 - tmp26) / m_A104; + double tmp25 = 0.0; + tmp25 += m_A94 * V[26]; + tmp25 += m_A95 * V[27]; + V[25] = (RHS25 - tmp25) / m_A93; + double tmp24 = 0.0; + tmp24 += m_A83 * V[25]; + tmp24 += m_A84 * V[26]; + tmp24 += m_A85 * V[27]; + V[24] = (RHS24 - tmp24) / m_A82; + double tmp23 = 0.0; + tmp23 += m_A76 * V[26]; + V[23] = (RHS23 - tmp23) / m_A75; + double tmp22 = 0.0; + tmp22 += m_A70 * V[24]; + tmp22 += m_A71 * V[25]; + tmp22 += m_A72 * V[26]; + tmp22 += m_A73 * V[27]; + V[22] = (RHS22 - tmp22) / m_A69; + double tmp21 = 0.0; + tmp21 += m_A61 * V[28]; + V[21] = (RHS21 - tmp21) / m_A60; + double tmp20 = 0.0; + tmp20 += m_A56 * V[22]; + tmp20 += m_A57 * V[24]; + tmp20 += m_A58 * V[26]; + V[20] = (RHS20 - tmp20) / m_A55; + double tmp19 = 0.0; + V[19] = (RHS19 - tmp19) / m_A52; + double tmp18 = 0.0; + tmp18 += m_A48 * V[21]; + tmp18 += m_A49 * V[27]; + tmp18 += m_A50 * V[28]; + V[18] = (RHS18 - tmp18) / m_A47; + double tmp17 = 0.0; + tmp17 += m_A44 * V[22]; + tmp17 += m_A45 * V[25]; + V[17] = (RHS17 - tmp17) / m_A43; + double tmp16 = 0.0; + V[16] = (RHS16 - tmp16) / m_A40; + double tmp15 = 0.0; + tmp15 += m_A38 * V[25]; + V[15] = (RHS15 - tmp15) / m_A37; + double tmp14 = 0.0; + V[14] = (RHS14 - tmp14) / m_A35; + double tmp13 = 0.0; + tmp13 += m_A31 * V[20]; + tmp13 += m_A32 * V[24]; + tmp13 += m_A33 * V[26]; + V[13] = (RHS13 - tmp13) / m_A30; + double tmp12 = 0.0; + tmp12 += m_A29 * V[26]; + V[12] = (RHS12 - tmp12) / m_A28; + double tmp11 = 0.0; + tmp11 += m_A27 * V[23]; + V[11] = (RHS11 - tmp11) / m_A26; + double tmp10 = 0.0; + tmp10 += m_A24 * V[20]; + tmp10 += m_A25 * V[22]; + V[10] = (RHS10 - tmp10) / m_A23; + double tmp9 = 0.0; + tmp9 += m_A22 * V[19]; + V[9] = (RHS9 - tmp9) / m_A21; + double tmp8 = 0.0; + tmp8 += m_A20 * V[28]; + V[8] = (RHS8 - tmp8) / m_A19; + double tmp7 = 0.0; + tmp7 += m_A17 * V[22]; + tmp7 += m_A18 * V[27]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A15 * V[21]; + V[6] = (RHS6 - tmp6) / m_A14; + double tmp5 = 0.0; + tmp5 += m_A11 * V[17]; + tmp5 += m_A12 * V[22]; + tmp5 += m_A13 * V[25]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[16]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[15]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[25]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[14]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[17]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// ripoff +static void nl_gcr_43188bf576854ae0_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A5 += gt[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A6 += go[4]; + m_A4 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; + m_A9 += gt[7]; + m_A9 += gt[8]; + m_A7 += go[7]; + m_A8 += go[8]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// destroyr +static void nl_gcr_4334c95878d1be92_399_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); double m_A41(0.0); double m_A42(0.0); double m_A43(0.0); @@ -9046,617 +10557,2383 @@ double m_A106(0.0); double m_A107(0.0); double m_A108(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A7 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - RHS3 -= go[7] * *cnV[7]; - m_A8 += gt[8]; - m_A8 += gt[9]; - m_A8 += gt[10]; - m_A10 += go[8]; - m_A9 += go[9]; - double RHS4 = Idr[8]; - RHS4 += Idr[9]; - RHS4 += Idr[10]; - RHS4 -= go[10] * *cnV[10]; - m_A11 += gt[11]; - m_A11 += gt[12]; - m_A12 += go[11]; - double RHS5 = Idr[11]; - RHS5 += Idr[12]; - RHS5 -= go[12] * *cnV[12]; - m_A13 += gt[13]; - m_A13 += gt[14]; - m_A13 += gt[15]; - m_A15 += go[13]; - m_A14 += go[14]; - double RHS6 = Idr[13]; - RHS6 += Idr[14]; - RHS6 += Idr[15]; - RHS6 -= go[15] * *cnV[15]; - m_A16 += gt[16]; - m_A16 += gt[17]; - m_A16 += gt[18]; - m_A16 += gt[19]; - m_A17 += go[16]; - double RHS7 = Idr[16]; - RHS7 += Idr[17]; - RHS7 += Idr[18]; - RHS7 += Idr[19]; - RHS7 -= go[17] * *cnV[17]; - RHS7 -= go[18] * *cnV[18]; - RHS7 -= go[19] * *cnV[19]; - m_A18 += gt[20]; - m_A18 += gt[21]; - m_A19 += go[20]; - double RHS8 = Idr[20]; - RHS8 += Idr[21]; - RHS8 -= go[21] * *cnV[21]; - m_A20 += gt[22]; - m_A20 += gt[23]; - m_A20 += gt[24]; - m_A20 += gt[25]; - m_A20 += gt[26]; - m_A21 += go[22]; - m_A23 += go[23]; - m_A22 += go[24]; - double RHS9 = Idr[22]; - RHS9 += Idr[23]; - RHS9 += Idr[24]; - RHS9 += Idr[25]; - RHS9 += Idr[26]; - RHS9 -= go[25] * *cnV[25]; - RHS9 -= go[26] * *cnV[26]; - m_A24 += gt[27]; - m_A24 += gt[28]; - m_A24 += gt[29]; - m_A24 += gt[30]; - m_A24 += gt[31]; - m_A24 += gt[32]; - m_A24 += gt[33]; - m_A27 += go[27]; - m_A26 += go[28]; - m_A26 += go[29]; - m_A26 += go[30]; - m_A25 += go[31]; - m_A25 += go[32]; - double RHS10 = Idr[27]; - RHS10 += Idr[28]; - RHS10 += Idr[29]; - RHS10 += Idr[30]; - RHS10 += Idr[31]; - RHS10 += Idr[32]; - RHS10 += Idr[33]; - RHS10 -= go[33] * *cnV[33]; - m_A28 += gt[34]; + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); + double m_A198(0.0); + double m_A199(0.0); + double m_A200(0.0); + double m_A201(0.0); + double m_A202(0.0); + double m_A203(0.0); + double m_A204(0.0); + double m_A205(0.0); + double m_A206(0.0); + double m_A207(0.0); + double m_A208(0.0); + double m_A209(0.0); + double m_A210(0.0); + double m_A211(0.0); + double m_A212(0.0); + double m_A213(0.0); + double m_A214(0.0); + double m_A215(0.0); + double m_A216(0.0); + double m_A217(0.0); + double m_A218(0.0); + double m_A219(0.0); + double m_A220(0.0); + double m_A221(0.0); + double m_A222(0.0); + double m_A223(0.0); + double m_A224(0.0); + double m_A225(0.0); + double m_A226(0.0); + double m_A227(0.0); + double m_A228(0.0); + double m_A229(0.0); + double m_A230(0.0); + double m_A231(0.0); + double m_A232(0.0); + double m_A233(0.0); + double m_A234(0.0); + double m_A235(0.0); + double m_A236(0.0); + double m_A237(0.0); + double m_A238(0.0); + double m_A239(0.0); + double m_A240(0.0); + double m_A241(0.0); + double m_A242(0.0); + double m_A243(0.0); + double m_A244(0.0); + double m_A245(0.0); + double m_A246(0.0); + double m_A247(0.0); + double m_A248(0.0); + double m_A249(0.0); + double m_A250(0.0); + double m_A251(0.0); + double m_A252(0.0); + double m_A253(0.0); + double m_A254(0.0); + double m_A255(0.0); + double m_A256(0.0); + double m_A257(0.0); + double m_A258(0.0); + double m_A259(0.0); + double m_A260(0.0); + double m_A261(0.0); + double m_A262(0.0); + double m_A263(0.0); + double m_A264(0.0); + double m_A265(0.0); + double m_A266(0.0); + double m_A267(0.0); + double m_A268(0.0); + double m_A269(0.0); + double m_A270(0.0); + double m_A271(0.0); + double m_A272(0.0); + double m_A273(0.0); + double m_A274(0.0); + double m_A275(0.0); + double m_A276(0.0); + double m_A277(0.0); + double m_A278(0.0); + double m_A279(0.0); + double m_A280(0.0); + double m_A281(0.0); + double m_A282(0.0); + double m_A283(0.0); + double m_A284(0.0); + double m_A285(0.0); + double m_A286(0.0); + double m_A287(0.0); + double m_A288(0.0); + double m_A289(0.0); + double m_A290(0.0); + double m_A291(0.0); + double m_A292(0.0); + double m_A293(0.0); + double m_A294(0.0); + double m_A295(0.0); + double m_A296(0.0); + double m_A297(0.0); + double m_A298(0.0); + double m_A299(0.0); + double m_A300(0.0); + double m_A301(0.0); + double m_A302(0.0); + double m_A303(0.0); + double m_A304(0.0); + double m_A305(0.0); + double m_A306(0.0); + double m_A307(0.0); + double m_A308(0.0); + double m_A309(0.0); + double m_A310(0.0); + double m_A311(0.0); + double m_A312(0.0); + double m_A313(0.0); + double m_A314(0.0); + double m_A315(0.0); + double m_A316(0.0); + double m_A317(0.0); + double m_A318(0.0); + double m_A319(0.0); + double m_A320(0.0); + double m_A321(0.0); + double m_A322(0.0); + double m_A323(0.0); + double m_A324(0.0); + double m_A325(0.0); + double m_A326(0.0); + double m_A327(0.0); + double m_A328(0.0); + double m_A329(0.0); + double m_A330(0.0); + double m_A331(0.0); + double m_A332(0.0); + double m_A333(0.0); + double m_A334(0.0); + double m_A335(0.0); + double m_A336(0.0); + double m_A337(0.0); + double m_A338(0.0); + double m_A339(0.0); + double m_A340(0.0); + double m_A341(0.0); + double m_A342(0.0); + double m_A343(0.0); + double m_A344(0.0); + double m_A345(0.0); + double m_A346(0.0); + double m_A347(0.0); + double m_A348(0.0); + double m_A349(0.0); + double m_A350(0.0); + double m_A351(0.0); + double m_A352(0.0); + double m_A353(0.0); + double m_A354(0.0); + double m_A355(0.0); + double m_A356(0.0); + double m_A357(0.0); + double m_A358(0.0); + double m_A359(0.0); + double m_A360(0.0); + double m_A361(0.0); + double m_A362(0.0); + double m_A363(0.0); + double m_A364(0.0); + double m_A365(0.0); + double m_A366(0.0); + double m_A367(0.0); + double m_A368(0.0); + double m_A369(0.0); + double m_A370(0.0); + double m_A371(0.0); + double m_A372(0.0); + double m_A373(0.0); + double m_A374(0.0); + double m_A375(0.0); + double m_A376(0.0); + double m_A377(0.0); + double m_A378(0.0); + double m_A379(0.0); + double m_A380(0.0); + double m_A381(0.0); + double m_A382(0.0); + double m_A383(0.0); + double m_A384(0.0); + double m_A385(0.0); + double m_A386(0.0); + double m_A387(0.0); + double m_A388(0.0); + double m_A389(0.0); + double m_A390(0.0); + double m_A391(0.0); + double m_A392(0.0); + double m_A393(0.0); + double m_A394(0.0); + double m_A395(0.0); + double m_A396(0.0); + double m_A397(0.0); + double m_A398(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A7 += go[4]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A11 += go[10]; + m_A12 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + m_A13 += gt[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A14 += go[13]; + m_A15 += go[14]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[15] * *cnV[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A16 += gt[19]; + m_A17 += go[16]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 -= go[17] * *cnV[17]; + RHS6 -= go[18] * *cnV[18]; + RHS6 -= go[19] * *cnV[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A22 += go[20]; + m_A21 += go[21]; + m_A20 += go[22]; + m_A19 += go[23]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 -= go[24] * *cnV[24]; + RHS7 -= go[25] * *cnV[25]; + RHS7 -= go[26] * *cnV[26]; + m_A23 += gt[27]; + m_A23 += gt[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A23 += gt[32]; + m_A23 += gt[33]; + m_A27 += go[27]; + m_A26 += go[28]; + m_A25 += go[29]; + m_A24 += go[30]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 -= go[31] * *cnV[31]; + RHS8 -= go[32] * *cnV[32]; + RHS8 -= go[33] * *cnV[33]; + m_A28 += gt[34]; m_A28 += gt[35]; + m_A28 += gt[36]; m_A29 += go[34]; - double RHS11 = Idr[34]; - RHS11 += Idr[35]; - RHS11 -= go[35] * *cnV[35]; - m_A30 += gt[36]; - m_A30 += gt[37]; - m_A30 += gt[38]; - m_A30 += gt[39]; - m_A30 += gt[40]; - m_A31 += go[36]; - m_A31 += go[37]; - m_A32 += go[38]; - m_A32 += go[39]; - double RHS12 = Idr[36]; - RHS12 += Idr[37]; - RHS12 += Idr[38]; - RHS12 += Idr[39]; - RHS12 += Idr[40]; - RHS12 -= go[40] * *cnV[40]; - m_A33 += gt[41]; - m_A33 += gt[42]; - m_A33 += gt[43]; - m_A35 += go[41]; - m_A34 += go[42]; - double RHS13 = Idr[41]; - RHS13 += Idr[42]; - RHS13 += Idr[43]; - RHS13 -= go[43] * *cnV[43]; - m_A38 += gt[44]; - m_A38 += gt[45]; - m_A38 += gt[46]; - m_A37 += go[44]; - m_A36 += go[45]; - double RHS14 = Idr[44]; - RHS14 += Idr[45]; - RHS14 += Idr[46]; - RHS14 -= go[46] * *cnV[46]; - m_A42 += gt[47]; - m_A42 += gt[48]; - m_A42 += gt[49]; - m_A41 += go[47]; + m_A30 += go[35]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 -= go[36] * *cnV[36]; + m_A31 += gt[37]; + m_A31 += gt[38]; + m_A31 += gt[39]; + m_A31 += gt[40]; + m_A31 += gt[41]; + m_A31 += gt[42]; + m_A31 += gt[43]; + m_A32 += go[37]; + m_A33 += go[38]; + double RHS10 = Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 -= go[39] * *cnV[39]; + RHS10 -= go[40] * *cnV[40]; + RHS10 -= go[41] * *cnV[41]; + RHS10 -= go[42] * *cnV[42]; + RHS10 -= go[43] * *cnV[43]; + m_A34 += gt[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A36 += go[44]; + m_A35 += go[45]; + m_A37 += go[46]; + double RHS11 = Idr[44]; + RHS11 += Idr[45]; + RHS11 += Idr[46]; + m_A38 += gt[47]; + m_A38 += gt[48]; + m_A38 += gt[49]; + m_A38 += gt[50]; + m_A38 += gt[51]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A39 += go[47]; m_A40 += go[48]; - double RHS15 = Idr[47]; - RHS15 += Idr[48]; - RHS15 += Idr[49]; - RHS15 -= go[49] * *cnV[49]; - m_A46 += gt[50]; - m_A46 += gt[51]; - m_A46 += gt[52]; - m_A44 += go[50]; - m_A47 += go[51]; - double RHS16 = Idr[50]; - RHS16 += Idr[51]; - RHS16 += Idr[52]; - RHS16 -= go[52] * *cnV[52]; - m_A50 += gt[53]; - m_A50 += gt[54]; - m_A50 += gt[55]; - m_A48 += go[53]; - m_A51 += go[54]; - double RHS17 = Idr[53]; - RHS17 += Idr[54]; - RHS17 += Idr[55]; - RHS17 -= go[55] * *cnV[55]; - m_A54 += gt[56]; - m_A54 += gt[57]; - m_A54 += gt[58]; - m_A54 += gt[59]; - m_A54 += gt[60]; - m_A54 += gt[61]; - m_A53 += go[56]; - m_A53 += go[57]; - m_A52 += go[58]; - double RHS18 = Idr[56]; - RHS18 += Idr[57]; - RHS18 += Idr[58]; - RHS18 += Idr[59]; - RHS18 += Idr[60]; - RHS18 += Idr[61]; - RHS18 -= go[59] * *cnV[59]; - RHS18 -= go[60] * *cnV[60]; - RHS18 -= go[61] * *cnV[61]; - m_A58 += gt[62]; - m_A58 += gt[63]; - m_A58 += gt[64]; - m_A58 += gt[65]; - m_A58 += gt[66]; - m_A58 += gt[67]; - m_A58 += gt[68]; - m_A57 += go[62]; - m_A59 += go[63]; - double RHS19 = Idr[62]; - RHS19 += Idr[63]; - RHS19 += Idr[64]; - RHS19 += Idr[65]; - RHS19 += Idr[66]; - RHS19 += Idr[67]; - RHS19 += Idr[68]; - RHS19 -= go[64] * *cnV[64]; - RHS19 -= go[65] * *cnV[65]; - RHS19 -= go[66] * *cnV[66]; - RHS19 -= go[67] * *cnV[67]; - RHS19 -= go[68] * *cnV[68]; - m_A63 += gt[69]; - m_A63 += gt[70]; - m_A63 += gt[71]; - m_A63 += gt[72]; - m_A63 += gt[73]; - m_A63 += gt[74]; - m_A64 += go[69]; - m_A64 += go[70]; - m_A61 += go[71]; - m_A61 += go[72]; - m_A61 += go[73]; - m_A60 += go[74]; - double RHS20 = Idr[69]; - RHS20 += Idr[70]; - RHS20 += Idr[71]; - RHS20 += Idr[72]; - RHS20 += Idr[73]; - RHS20 += Idr[74]; - m_A69 += gt[75]; - m_A69 += gt[76]; - m_A69 += gt[77]; - m_A69 += gt[78]; - m_A68 += go[75]; - m_A68 += go[76]; - m_A70 += go[77]; - m_A67 += go[78]; - double RHS21 = Idr[75]; - RHS21 += Idr[76]; - RHS21 += Idr[77]; - RHS21 += Idr[78]; - m_A73 += gt[79]; - m_A73 += gt[80]; - m_A73 += gt[81]; - m_A72 += go[79]; - m_A71 += go[80]; - double RHS22 = Idr[79]; - RHS22 += Idr[80]; - RHS22 += Idr[81]; - RHS22 -= go[81] * *cnV[81]; - m_A80 += gt[82]; - m_A80 += gt[83]; - m_A80 += gt[84]; - m_A80 += gt[85]; - m_A80 += gt[86]; - m_A80 += gt[87]; - m_A80 += gt[88]; - m_A80 += gt[89]; - m_A79 += go[82]; - m_A76 += go[83]; - m_A76 += go[84]; - m_A78 += go[85]; - m_A78 += go[86]; - m_A75 += go[87]; - double RHS23 = Idr[82]; - RHS23 += Idr[83]; - RHS23 += Idr[84]; - RHS23 += Idr[85]; - RHS23 += Idr[86]; - RHS23 += Idr[87]; - RHS23 += Idr[88]; - RHS23 += Idr[89]; - RHS23 -= go[88] * *cnV[88]; - RHS23 -= go[89] * *cnV[89]; - m_A87 += gt[90]; - m_A87 += gt[91]; - m_A87 += gt[92]; - m_A87 += gt[93]; - m_A84 += go[90]; - m_A89 += go[91]; - m_A83 += go[92]; - double RHS24 = Idr[90]; - RHS24 += Idr[91]; - RHS24 += Idr[92]; - RHS24 += Idr[93]; - RHS24 -= go[93] * *cnV[93]; - m_A95 += gt[94]; - m_A95 += gt[95]; - m_A95 += gt[96]; - m_A95 += gt[97]; - m_A91 += go[94]; - m_A96 += go[95]; - m_A90 += go[96]; - double RHS25 = Idr[94]; - RHS25 += Idr[95]; - RHS25 += Idr[96]; - RHS25 += Idr[97]; - RHS25 -= go[97] * *cnV[97]; - m_A99 += gt[98]; - m_A99 += gt[99]; - m_A99 += gt[100]; - m_A97 += go[98]; - m_A100 += go[99]; - double RHS26 = Idr[98]; - RHS26 += Idr[99]; - RHS26 += Idr[100]; - RHS26 -= go[100] * *cnV[100]; - m_A108 += gt[101]; - m_A108 += gt[102]; - m_A108 += gt[103]; - m_A108 += gt[104]; - m_A108 += gt[105]; - m_A108 += gt[106]; - m_A108 += gt[107]; - m_A108 += gt[108]; - m_A108 += gt[109]; - m_A104 += go[101]; - m_A101 += go[102]; - m_A107 += go[103]; - m_A103 += go[104]; - m_A102 += go[105]; - m_A106 += go[106]; - m_A105 += go[107]; - double RHS27 = Idr[101]; - RHS27 += Idr[102]; - RHS27 += Idr[103]; - RHS27 += Idr[104]; - RHS27 += Idr[105]; - RHS27 += Idr[106]; - RHS27 += Idr[107]; - RHS27 += Idr[108]; - RHS27 += Idr[109]; - RHS27 -= go[108] * *cnV[108]; - RHS27 -= go[109] * *cnV[109]; + double RHS12 = Idr[47]; + RHS12 += Idr[48]; + RHS12 += Idr[49]; + RHS12 += Idr[50]; + RHS12 += Idr[51]; + RHS12 += Idr[52]; + RHS12 += Idr[53]; + RHS12 -= go[49] * *cnV[49]; + RHS12 -= go[50] * *cnV[50]; + RHS12 -= go[51] * *cnV[51]; + RHS12 -= go[52] * *cnV[52]; + RHS12 -= go[53] * *cnV[53]; + m_A41 += gt[54]; + m_A41 += gt[55]; + m_A41 += gt[56]; + m_A41 += gt[57]; + m_A44 += go[54]; + m_A42 += go[55]; + m_A43 += go[56]; + double RHS13 = Idr[54]; + RHS13 += Idr[55]; + RHS13 += Idr[56]; + RHS13 += Idr[57]; + RHS13 -= go[57] * *cnV[57]; + m_A45 += gt[58]; + m_A45 += gt[59]; + m_A45 += gt[60]; + m_A45 += gt[61]; + m_A45 += gt[62]; + m_A46 += go[58]; + m_A47 += go[59]; + double RHS14 = Idr[58]; + RHS14 += Idr[59]; + RHS14 += Idr[60]; + RHS14 += Idr[61]; + RHS14 += Idr[62]; + RHS14 -= go[60] * *cnV[60]; + RHS14 -= go[61] * *cnV[61]; + RHS14 -= go[62] * *cnV[62]; + m_A48 += gt[63]; + m_A48 += gt[64]; + m_A48 += gt[65]; + m_A48 += gt[66]; + m_A48 += gt[67]; + m_A48 += gt[68]; + m_A48 += gt[69]; + m_A50 += go[63]; + m_A49 += go[64]; + double RHS15 = Idr[63]; + RHS15 += Idr[64]; + RHS15 += Idr[65]; + RHS15 += Idr[66]; + RHS15 += Idr[67]; + RHS15 += Idr[68]; + RHS15 += Idr[69]; + RHS15 -= go[65] * *cnV[65]; + RHS15 -= go[66] * *cnV[66]; + RHS15 -= go[67] * *cnV[67]; + RHS15 -= go[68] * *cnV[68]; + RHS15 -= go[69] * *cnV[69]; + m_A51 += gt[70]; + m_A51 += gt[71]; + m_A51 += gt[72]; + m_A51 += gt[73]; + m_A51 += gt[74]; + m_A52 += go[70]; + m_A53 += go[71]; + double RHS16 = Idr[70]; + RHS16 += Idr[71]; + RHS16 += Idr[72]; + RHS16 += Idr[73]; + RHS16 += Idr[74]; + RHS16 -= go[72] * *cnV[72]; + RHS16 -= go[73] * *cnV[73]; + RHS16 -= go[74] * *cnV[74]; + m_A54 += gt[75]; + m_A54 += gt[76]; + m_A54 += gt[77]; + m_A55 += go[75]; + double RHS17 = Idr[75]; + RHS17 += Idr[76]; + RHS17 += Idr[77]; + RHS17 -= go[76] * *cnV[76]; + RHS17 -= go[77] * *cnV[77]; + m_A56 += gt[78]; + m_A56 += gt[79]; + m_A57 += go[78]; + m_A58 += go[79]; + double RHS18 = Idr[78]; + RHS18 += Idr[79]; + m_A59 += gt[80]; + m_A59 += gt[81]; + m_A59 += gt[82]; + m_A60 += go[80]; + double RHS19 = Idr[80]; + RHS19 += Idr[81]; + RHS19 += Idr[82]; + RHS19 -= go[81] * *cnV[81]; + RHS19 -= go[82] * *cnV[82]; + m_A61 += gt[83]; + m_A61 += gt[84]; + m_A61 += gt[85]; + m_A62 += go[83]; + double RHS20 = Idr[83]; + RHS20 += Idr[84]; + RHS20 += Idr[85]; + RHS20 -= go[84] * *cnV[84]; + RHS20 -= go[85] * *cnV[85]; + m_A63 += gt[86]; + m_A63 += gt[87]; + m_A64 += go[86]; + double RHS21 = Idr[86]; + RHS21 += Idr[87]; + RHS21 -= go[87] * *cnV[87]; + m_A65 += gt[88]; + m_A65 += gt[89]; + m_A65 += gt[90]; + m_A65 += gt[91]; + m_A67 += go[88]; + m_A66 += go[89]; + double RHS22 = Idr[88]; + RHS22 += Idr[89]; + RHS22 += Idr[90]; + RHS22 += Idr[91]; + RHS22 -= go[90] * *cnV[90]; + RHS22 -= go[91] * *cnV[91]; + m_A68 += gt[92]; + m_A68 += gt[93]; + m_A68 += gt[94]; + m_A68 += gt[95]; + m_A68 += gt[96]; + m_A68 += gt[97]; + m_A68 += gt[98]; + m_A70 += go[92]; + m_A69 += go[93]; + double RHS23 = Idr[92]; + RHS23 += Idr[93]; + RHS23 += Idr[94]; + RHS23 += Idr[95]; + RHS23 += Idr[96]; + RHS23 += Idr[97]; + RHS23 += Idr[98]; + RHS23 -= go[94] * *cnV[94]; + RHS23 -= go[95] * *cnV[95]; + RHS23 -= go[96] * *cnV[96]; + RHS23 -= go[97] * *cnV[97]; + RHS23 -= go[98] * *cnV[98]; + m_A71 += gt[99]; + m_A71 += gt[100]; + m_A72 += go[99]; + double RHS24 = Idr[99]; + RHS24 += Idr[100]; + RHS24 -= go[100] * *cnV[100]; + m_A73 += gt[101]; + m_A73 += gt[102]; + m_A73 += gt[103]; + m_A74 += go[101]; + double RHS25 = Idr[101]; + RHS25 += Idr[102]; + RHS25 += Idr[103]; + RHS25 -= go[102] * *cnV[102]; + RHS25 -= go[103] * *cnV[103]; + m_A75 += gt[104]; + m_A75 += gt[105]; + m_A75 += gt[106]; + m_A75 += gt[107]; + m_A75 += gt[108]; + m_A75 += gt[109]; + m_A75 += gt[110]; + m_A76 += go[104]; + double RHS26 = Idr[104]; + RHS26 += Idr[105]; + RHS26 += Idr[106]; + RHS26 += Idr[107]; + RHS26 += Idr[108]; + RHS26 += Idr[109]; + RHS26 += Idr[110]; + RHS26 -= go[105] * *cnV[105]; + RHS26 -= go[106] * *cnV[106]; + RHS26 -= go[107] * *cnV[107]; + RHS26 -= go[108] * *cnV[108]; + RHS26 -= go[109] * *cnV[109]; + RHS26 -= go[110] * *cnV[110]; + m_A77 += gt[111]; + m_A77 += gt[112]; + m_A77 += gt[113]; + m_A77 += gt[114]; + m_A77 += gt[115]; + m_A79 += go[111]; + m_A78 += go[112]; + m_A80 += go[113]; + double RHS27 = Idr[111]; + RHS27 += Idr[112]; + RHS27 += Idr[113]; + RHS27 += Idr[114]; + RHS27 += Idr[115]; + RHS27 -= go[114] * *cnV[114]; + RHS27 -= go[115] * *cnV[115]; + m_A81 += gt[116]; + m_A81 += gt[117]; + m_A81 += gt[118]; + m_A81 += gt[119]; + m_A81 += gt[120]; + m_A81 += gt[121]; + m_A82 += go[116]; + m_A83 += go[117]; + m_A83 += go[118]; + double RHS28 = Idr[116]; + RHS28 += Idr[117]; + RHS28 += Idr[118]; + RHS28 += Idr[119]; + RHS28 += Idr[120]; + RHS28 += Idr[121]; + RHS28 -= go[119] * *cnV[119]; + RHS28 -= go[120] * *cnV[120]; + RHS28 -= go[121] * *cnV[121]; + m_A84 += gt[122]; + m_A84 += gt[123]; + m_A84 += gt[124]; + m_A84 += gt[125]; + m_A85 += go[122]; + m_A87 += go[123]; + m_A86 += go[124]; + double RHS29 = Idr[122]; + RHS29 += Idr[123]; + RHS29 += Idr[124]; + RHS29 += Idr[125]; + RHS29 -= go[125] * *cnV[125]; + m_A88 += gt[126]; + m_A88 += gt[127]; + m_A88 += gt[128]; + m_A88 += gt[129]; + m_A89 += go[126]; + m_A90 += go[127]; + double RHS30 = Idr[126]; + RHS30 += Idr[127]; + RHS30 += Idr[128]; + RHS30 += Idr[129]; + RHS30 -= go[128] * *cnV[128]; + RHS30 -= go[129] * *cnV[129]; + m_A91 += gt[130]; + m_A91 += gt[131]; + m_A91 += gt[132]; + m_A91 += gt[133]; + m_A91 += gt[134]; + m_A92 += go[130]; + m_A94 += go[131]; + m_A93 += go[132]; + double RHS31 = Idr[130]; + RHS31 += Idr[131]; + RHS31 += Idr[132]; + RHS31 += Idr[133]; + RHS31 += Idr[134]; + RHS31 -= go[133] * *cnV[133]; + RHS31 -= go[134] * *cnV[134]; + m_A95 += gt[135]; + m_A95 += gt[136]; + m_A96 += go[135]; + m_A97 += go[136]; + double RHS32 = Idr[135]; + RHS32 += Idr[136]; + m_A98 += gt[137]; + m_A98 += gt[138]; + m_A98 += gt[139]; + m_A98 += gt[140]; + m_A98 += gt[141]; + m_A100 += go[137]; + m_A100 += go[138]; + m_A99 += go[139]; + double RHS33 = Idr[137]; + RHS33 += Idr[138]; + RHS33 += Idr[139]; + RHS33 += Idr[140]; + RHS33 += Idr[141]; + RHS33 -= go[140] * *cnV[140]; + RHS33 -= go[141] * *cnV[141]; + m_A101 += gt[142]; + m_A101 += gt[143]; + m_A103 += go[142]; + m_A102 += go[143]; + double RHS34 = Idr[142]; + RHS34 += Idr[143]; + m_A104 += gt[144]; + m_A104 += gt[145]; + m_A106 += go[144]; + m_A105 += go[145]; + double RHS35 = Idr[144]; + RHS35 += Idr[145]; + m_A107 += gt[146]; + m_A107 += gt[147]; + m_A108 += go[146]; + double RHS36 = Idr[146]; + RHS36 += Idr[147]; + RHS36 -= go[147] * *cnV[147]; + m_A110 += gt[148]; + m_A110 += gt[149]; + m_A110 += gt[150]; + m_A109 += go[148]; + m_A111 += go[149]; + double RHS37 = Idr[148]; + RHS37 += Idr[149]; + RHS37 += Idr[150]; + RHS37 -= go[150] * *cnV[150]; + m_A114 += gt[151]; + m_A114 += gt[152]; + m_A114 += gt[153]; + m_A114 += gt[154]; + m_A113 += go[151]; + m_A112 += go[152]; + double RHS38 = Idr[151]; + RHS38 += Idr[152]; + RHS38 += Idr[153]; + RHS38 += Idr[154]; + RHS38 -= go[153] * *cnV[153]; + RHS38 -= go[154] * *cnV[154]; + m_A120 += gt[155]; + m_A120 += gt[156]; + m_A120 += gt[157]; + m_A120 += gt[158]; + m_A118 += go[155]; + m_A117 += go[156]; + double RHS39 = Idr[155]; + RHS39 += Idr[156]; + RHS39 += Idr[157]; + RHS39 += Idr[158]; + RHS39 -= go[157] * *cnV[157]; + RHS39 -= go[158] * *cnV[158]; + m_A130 += gt[159]; + m_A130 += gt[160]; + m_A130 += gt[161]; + m_A130 += gt[162]; + m_A127 += go[159]; + m_A126 += go[160]; + m_A125 += go[161]; + double RHS40 = Idr[159]; + RHS40 += Idr[160]; + RHS40 += Idr[161]; + RHS40 += Idr[162]; + RHS40 -= go[162] * *cnV[162]; + m_A137 += gt[163]; + m_A137 += gt[164]; + m_A137 += gt[165]; + m_A136 += go[163]; + m_A135 += go[164]; + double RHS41 = Idr[163]; + RHS41 += Idr[164]; + RHS41 += Idr[165]; + RHS41 -= go[165] * *cnV[165]; + m_A140 += gt[166]; + m_A140 += gt[167]; + m_A140 += gt[168]; + m_A140 += gt[169]; + m_A142 += go[166]; + m_A142 += go[167]; + m_A141 += go[168]; + double RHS42 = Idr[166]; + RHS42 += Idr[167]; + RHS42 += Idr[168]; + RHS42 += Idr[169]; + RHS42 -= go[169] * *cnV[169]; + m_A144 += gt[170]; + m_A144 += gt[171]; + m_A144 += gt[172]; + m_A144 += gt[173]; + m_A144 += gt[174]; + m_A144 += gt[175]; + m_A144 += gt[176]; + m_A145 += go[170]; + m_A143 += go[171]; + double RHS43 = Idr[170]; + RHS43 += Idr[171]; + RHS43 += Idr[172]; + RHS43 += Idr[173]; + RHS43 += Idr[174]; + RHS43 += Idr[175]; + RHS43 += Idr[176]; + RHS43 -= go[172] * *cnV[172]; + RHS43 -= go[173] * *cnV[173]; + RHS43 -= go[174] * *cnV[174]; + RHS43 -= go[175] * *cnV[175]; + RHS43 -= go[176] * *cnV[176]; + m_A149 += gt[177]; + m_A149 += gt[178]; + m_A149 += gt[179]; + m_A149 += gt[180]; + m_A147 += go[177]; + m_A148 += go[178]; + m_A150 += go[179]; + double RHS44 = Idr[177]; + RHS44 += Idr[178]; + RHS44 += Idr[179]; + RHS44 += Idr[180]; + RHS44 -= go[180] * *cnV[180]; + m_A153 += gt[181]; + m_A153 += gt[182]; + m_A153 += gt[183]; + m_A153 += gt[184]; + m_A153 += gt[185]; + m_A151 += go[181]; + m_A156 += go[182]; + m_A152 += go[183]; + double RHS45 = Idr[181]; + RHS45 += Idr[182]; + RHS45 += Idr[183]; + RHS45 += Idr[184]; + RHS45 += Idr[185]; + RHS45 -= go[184] * *cnV[184]; + RHS45 -= go[185] * *cnV[185]; + m_A161 += gt[186]; + m_A161 += gt[187]; + m_A161 += gt[188]; + m_A159 += go[186]; + m_A158 += go[187]; + m_A157 += go[188]; + double RHS46 = Idr[186]; + RHS46 += Idr[187]; + RHS46 += Idr[188]; + m_A166 += gt[189]; + m_A166 += gt[190]; + m_A166 += gt[191]; + m_A167 += go[189]; + m_A165 += go[190]; + double RHS47 = Idr[189]; + RHS47 += Idr[190]; + RHS47 += Idr[191]; + RHS47 -= go[191] * *cnV[191]; + m_A171 += gt[192]; + m_A171 += gt[193]; + m_A171 += gt[194]; + m_A174 += go[192]; + m_A169 += go[193]; + m_A168 += go[194]; + double RHS48 = Idr[192]; + RHS48 += Idr[193]; + RHS48 += Idr[194]; + m_A177 += gt[195]; + m_A177 += gt[196]; + m_A177 += gt[197]; + m_A177 += gt[198]; + m_A176 += go[195]; + m_A175 += go[196]; + double RHS49 = Idr[195]; + RHS49 += Idr[196]; + RHS49 += Idr[197]; + RHS49 += Idr[198]; + RHS49 -= go[197] * *cnV[197]; + RHS49 -= go[198] * *cnV[198]; + m_A185 += gt[199]; + m_A185 += gt[200]; + m_A185 += gt[201]; + m_A185 += gt[202]; + m_A185 += gt[203]; + m_A185 += gt[204]; + m_A189 += go[199]; + m_A182 += go[200]; + m_A181 += go[201]; + m_A180 += go[202]; + m_A187 += go[203]; + double RHS50 = Idr[199]; + RHS50 += Idr[200]; + RHS50 += Idr[201]; + RHS50 += Idr[202]; + RHS50 += Idr[203]; + RHS50 += Idr[204]; + RHS50 -= go[204] * *cnV[204]; + m_A191 += gt[205]; + m_A191 += gt[206]; + m_A193 += go[205]; + m_A190 += go[206]; + double RHS51 = Idr[205]; + RHS51 += Idr[206]; + m_A196 += gt[207]; + m_A196 += gt[208]; + m_A196 += gt[209]; + m_A196 += gt[210]; + m_A196 += gt[211]; + m_A197 += go[207]; + m_A198 += go[208]; + m_A194 += go[209]; + double RHS52 = Idr[207]; + RHS52 += Idr[208]; + RHS52 += Idr[209]; + RHS52 += Idr[210]; + RHS52 += Idr[211]; + RHS52 -= go[210] * *cnV[210]; + RHS52 -= go[211] * *cnV[211]; + m_A202 += gt[212]; + m_A202 += gt[213]; + m_A202 += gt[214]; + m_A202 += gt[215]; + m_A202 += gt[216]; + m_A202 += gt[217]; + m_A202 += gt[218]; + m_A203 += go[212]; + m_A201 += go[213]; + double RHS53 = Idr[212]; + RHS53 += Idr[213]; + RHS53 += Idr[214]; + RHS53 += Idr[215]; + RHS53 += Idr[216]; + RHS53 += Idr[217]; + RHS53 += Idr[218]; + RHS53 -= go[214] * *cnV[214]; + RHS53 -= go[215] * *cnV[215]; + RHS53 -= go[216] * *cnV[216]; + RHS53 -= go[217] * *cnV[217]; + RHS53 -= go[218] * *cnV[218]; + m_A206 += gt[219]; + m_A206 += gt[220]; + m_A206 += gt[221]; + m_A207 += go[219]; + m_A205 += go[220]; + double RHS54 = Idr[219]; + RHS54 += Idr[220]; + RHS54 += Idr[221]; + RHS54 -= go[221] * *cnV[221]; + m_A211 += gt[222]; + m_A211 += gt[223]; + m_A211 += gt[224]; + m_A211 += gt[225]; + m_A209 += go[222]; + m_A209 += go[223]; + m_A208 += go[224]; + double RHS55 = Idr[222]; + RHS55 += Idr[223]; + RHS55 += Idr[224]; + RHS55 += Idr[225]; + RHS55 -= go[225] * *cnV[225]; + m_A218 += gt[226]; + m_A218 += gt[227]; + m_A218 += gt[228]; + m_A218 += gt[229]; + m_A218 += gt[230]; + m_A218 += gt[231]; + m_A218 += gt[232]; + m_A217 += go[226]; + m_A216 += go[227]; + m_A219 += go[228]; + m_A215 += go[229]; + double RHS56 = Idr[226]; + RHS56 += Idr[227]; + RHS56 += Idr[228]; + RHS56 += Idr[229]; + RHS56 += Idr[230]; + RHS56 += Idr[231]; + RHS56 += Idr[232]; + RHS56 -= go[230] * *cnV[230]; + RHS56 -= go[231] * *cnV[231]; + RHS56 -= go[232] * *cnV[232]; + m_A220 += gt[233]; + m_A220 += gt[234]; + m_A222 += go[233]; + m_A221 += go[234]; + double RHS57 = Idr[233]; + RHS57 += Idr[234]; + m_A227 += gt[235]; + m_A227 += gt[236]; + m_A227 += gt[237]; + m_A227 += gt[238]; + m_A227 += gt[239]; + m_A227 += gt[240]; + m_A227 += gt[241]; + m_A223 += go[235]; + m_A225 += go[236]; + m_A229 += go[237]; + m_A231 += go[238]; + m_A230 += go[239]; + double RHS58 = Idr[235]; + RHS58 += Idr[236]; + RHS58 += Idr[237]; + RHS58 += Idr[238]; + RHS58 += Idr[239]; + RHS58 += Idr[240]; + RHS58 += Idr[241]; + RHS58 -= go[240] * *cnV[240]; + RHS58 -= go[241] * *cnV[241]; + m_A237 += gt[242]; + m_A237 += gt[243]; + m_A240 += go[242]; + m_A233 += go[243]; + double RHS59 = Idr[242]; + RHS59 += Idr[243]; + m_A245 += gt[244]; + m_A245 += gt[245]; + m_A242 += go[244]; + m_A241 += go[245]; + double RHS60 = Idr[244]; + RHS60 += Idr[245]; + m_A253 += gt[246]; + m_A253 += gt[247]; + m_A252 += go[246]; + m_A251 += go[247]; + double RHS61 = Idr[246]; + RHS61 += Idr[247]; + m_A258 += gt[248]; + m_A258 += gt[249]; + m_A258 += gt[250]; + m_A258 += gt[251]; + m_A258 += gt[252]; + m_A258 += gt[253]; + m_A258 += gt[254]; + m_A256 += go[248]; + m_A257 += go[249]; + double RHS62 = Idr[248]; + RHS62 += Idr[249]; + RHS62 += Idr[250]; + RHS62 += Idr[251]; + RHS62 += Idr[252]; + RHS62 += Idr[253]; + RHS62 += Idr[254]; + RHS62 -= go[250] * *cnV[250]; + RHS62 -= go[251] * *cnV[251]; + RHS62 -= go[252] * *cnV[252]; + RHS62 -= go[253] * *cnV[253]; + RHS62 -= go[254] * *cnV[254]; + m_A262 += gt[255]; + m_A262 += gt[256]; + m_A261 += go[255]; + m_A260 += go[256]; + double RHS63 = Idr[255]; + RHS63 += Idr[256]; + m_A265 += gt[257]; + m_A265 += gt[258]; + m_A267 += go[257]; + m_A264 += go[258]; + double RHS64 = Idr[257]; + RHS64 += Idr[258]; + m_A276 += gt[259]; + m_A276 += gt[260]; + m_A276 += gt[261]; + m_A276 += gt[262]; + m_A270 += go[259]; + m_A269 += go[260]; + m_A268 += go[261]; + m_A271 += go[262]; + double RHS65 = Idr[259]; + RHS65 += Idr[260]; + RHS65 += Idr[261]; + RHS65 += Idr[262]; + m_A288 += gt[263]; + m_A288 += gt[264]; + m_A288 += gt[265]; + m_A288 += gt[266]; + m_A288 += gt[267]; + m_A288 += gt[268]; + m_A281 += go[263]; + m_A283 += go[264]; + m_A285 += go[265]; + m_A280 += go[266]; + double RHS66 = Idr[263]; + RHS66 += Idr[264]; + RHS66 += Idr[265]; + RHS66 += Idr[266]; + RHS66 += Idr[267]; + RHS66 += Idr[268]; + RHS66 -= go[267] * *cnV[267]; + RHS66 -= go[268] * *cnV[268]; + m_A298 += gt[269]; + m_A298 += gt[270]; + m_A298 += gt[271]; + m_A298 += gt[272]; + m_A298 += gt[273]; + m_A298 += gt[274]; + m_A296 += go[269]; + m_A301 += go[270]; + m_A293 += go[271]; + m_A291 += go[272]; + m_A292 += go[273]; + double RHS67 = Idr[269]; + RHS67 += Idr[270]; + RHS67 += Idr[271]; + RHS67 += Idr[272]; + RHS67 += Idr[273]; + RHS67 += Idr[274]; + RHS67 -= go[274] * *cnV[274]; + m_A309 += gt[275]; + m_A309 += gt[276]; + m_A309 += gt[277]; + m_A309 += gt[278]; + m_A303 += go[275]; + m_A302 += go[276]; + m_A306 += go[277]; + m_A304 += go[278]; + double RHS68 = Idr[275]; + RHS68 += Idr[276]; + RHS68 += Idr[277]; + RHS68 += Idr[278]; + m_A320 += gt[279]; + m_A320 += gt[280]; + m_A320 += gt[281]; + m_A320 += gt[282]; + m_A320 += gt[283]; + m_A320 += gt[284]; + m_A313 += go[279]; + m_A312 += go[280]; + m_A316 += go[281]; + m_A317 += go[282]; + double RHS69 = Idr[279]; + RHS69 += Idr[280]; + RHS69 += Idr[281]; + RHS69 += Idr[282]; + RHS69 += Idr[283]; + RHS69 += Idr[284]; + RHS69 -= go[283] * *cnV[283]; + RHS69 -= go[284] * *cnV[284]; + m_A326 += gt[285]; + m_A326 += gt[286]; + m_A326 += gt[287]; + m_A326 += gt[288]; + m_A326 += gt[289]; + m_A326 += gt[290]; + m_A322 += go[285]; + m_A324 += go[286]; + m_A323 += go[287]; + m_A323 += go[288]; + double RHS70 = Idr[285]; + RHS70 += Idr[286]; + RHS70 += Idr[287]; + RHS70 += Idr[288]; + RHS70 += Idr[289]; + RHS70 += Idr[290]; + RHS70 -= go[289] * *cnV[289]; + RHS70 -= go[290] * *cnV[290]; + m_A333 += gt[291]; + m_A333 += gt[292]; + m_A333 += gt[293]; + m_A329 += go[291]; + m_A328 += go[292]; + m_A331 += go[293]; + double RHS71 = Idr[291]; + RHS71 += Idr[292]; + RHS71 += Idr[293]; + m_A348 += gt[294]; + m_A348 += gt[295]; + m_A348 += gt[296]; + m_A343 += go[294]; + m_A338 += go[295]; + m_A340 += go[296]; + double RHS72 = Idr[294]; + RHS72 += Idr[295]; + RHS72 += Idr[296]; + m_A360 += gt[297]; + m_A360 += gt[298]; + m_A360 += gt[299]; + m_A352 += go[297]; + m_A356 += go[298]; + m_A353 += go[299]; + double RHS73 = Idr[297]; + RHS73 += Idr[298]; + RHS73 += Idr[299]; + m_A377 += gt[300]; + m_A377 += gt[301]; + m_A377 += gt[302]; + m_A377 += gt[303]; + m_A377 += gt[304]; + m_A377 += gt[305]; + m_A365 += go[300]; + m_A364 += go[301]; + m_A366 += go[302]; + m_A363 += go[303]; + m_A370 += go[304]; + m_A367 += go[305]; + double RHS74 = Idr[300]; + RHS74 += Idr[301]; + RHS74 += Idr[302]; + RHS74 += Idr[303]; + RHS74 += Idr[304]; + RHS74 += Idr[305]; + m_A398 += gt[306]; + m_A398 += gt[307]; + m_A398 += gt[308]; + m_A398 += gt[309]; + m_A398 += gt[310]; + m_A398 += gt[311]; + m_A398 += gt[312]; + m_A398 += gt[313]; + m_A398 += gt[314]; + m_A398 += gt[315]; + m_A381 += go[306]; + m_A381 += go[307]; + m_A382 += go[308]; + m_A380 += go[309]; + m_A391 += go[310]; + m_A379 += go[311]; + m_A386 += go[312]; + double RHS75 = Idr[306]; + RHS75 += Idr[307]; + RHS75 += Idr[308]; + RHS75 += Idr[309]; + RHS75 += Idr[310]; + RHS75 += Idr[311]; + RHS75 += Idr[312]; + RHS75 += Idr[313]; + RHS75 += Idr[314]; + RHS75 += Idr[315]; + RHS75 -= go[313] * *cnV[313]; + RHS75 -= go[314] * *cnV[314]; + RHS75 -= go[315] * *cnV[315]; const double f0 = 1.0 / m_A0; - const double f0_14 = -f0 * m_A36; - m_A38 += m_A1 * f0_14; - RHS14 += f0_14 * RHS0; + const double f0_38 = -f0 * m_A112; + m_A114 += m_A1 * f0_38; + RHS38 += f0_38 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_15 = -f1 * m_A40; - m_A42 += m_A3 * f1_15; - RHS15 += f1_15 * RHS1; + const double f1_37 = -f1 * m_A109; + m_A110 += m_A3 * f1_37; + RHS37 += f1_37 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_24 = -f2 * m_A83; - m_A87 += m_A5 * f2_24; - RHS24 += f2_24 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_25 = -f3 * m_A90; - m_A95 += m_A7 * f3_25; - RHS25 += f3_25 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_14 = -f4 * m_A37; - m_A38 += m_A9 * f4_14; - m_A39 += m_A10 * f4_14; - RHS14 += f4_14 * RHS4; - const double f4_16 = -f4 * m_A44; - m_A45 += m_A9 * f4_16; - m_A46 += m_A10 * f4_16; - RHS16 += f4_16 * RHS4; - const double f5 = 1.0 / m_A11; - const double f5_22 = -f5 * m_A71; - m_A73 += m_A12 * f5_22; - RHS22 += f5_22 * RHS5; - const double f6 = 1.0 / m_A13; - const double f6_15 = -f6 * m_A41; - m_A42 += m_A14 * f6_15; - m_A43 += m_A15 * f6_15; - RHS15 += f6_15 * RHS6; - const double f6_17 = -f6 * m_A48; - m_A49 += m_A14 * f6_17; - m_A50 += m_A15 * f6_17; - RHS17 += f6_17 * RHS6; - const double f7 = 1.0 / m_A16; - const double f7_18 = -f7 * m_A52; - m_A54 += m_A17 * f7_18; - RHS18 += f7_18 * RHS7; - const double f8 = 1.0 / m_A18; - const double f8_19 = -f8 * m_A57; - m_A59 += m_A19 * f8_19; - RHS19 += f8_19 * RHS8; - const double f8_27 = -f8 * m_A101; - m_A108 += m_A19 * f8_27; - RHS27 += f8_27 * RHS8; - const double f9 = 1.0 / m_A20; - const double f9_20 = -f9 * m_A60; - m_A63 += m_A21 * f9_20; - m_A65 += m_A22 * f9_20; - m_A66 += m_A23 * f9_20; - RHS20 += f9_20 * RHS9; - const double f9_24 = -f9 * m_A84; - m_A85 += m_A21 * f9_24; - m_A87 += m_A22 * f9_24; - m_A88 += m_A23 * f9_24; - RHS24 += f9_24 * RHS9; - const double f9_25 = -f9 * m_A91; - m_A92 += m_A21 * f9_25; - m_A94 += m_A22 * f9_25; - m_A95 += m_A23 * f9_25; - RHS25 += f9_25 * RHS9; - const double f10 = 1.0 / m_A24; - const double f10_18 = -f10 * m_A53; - m_A54 += m_A25 * f10_18; - m_A55 += m_A26 * f10_18; - m_A56 += m_A27 * f10_18; - RHS18 += f10_18 * RHS10; - const double f10_20 = -f10 * m_A61; - m_A62 += m_A25 * f10_20; - m_A63 += m_A26 * f10_20; - m_A64 += m_A27 * f10_20; - RHS20 += f10_20 * RHS10; - const double f10_23 = -f10 * m_A75; - m_A77 += m_A25 * f10_23; - m_A78 += m_A26 * f10_23; - m_A80 += m_A27 * f10_23; - RHS23 += f10_23 * RHS10; - const double f11 = 1.0 / m_A28; - const double f11_21 = -f11 * m_A67; - m_A69 += m_A29 * f11_21; - RHS21 += f11_21 * RHS11; - const double f12 = 1.0 / m_A30; - const double f12_21 = -f12 * m_A68; - m_A69 += m_A31 * f12_21; - m_A70 += m_A32 * f12_21; - RHS21 += f12_21 * RHS12; - const double f12_23 = -f12 * m_A76; - m_A79 += m_A31 * f12_23; - m_A80 += m_A32 * f12_23; - RHS23 += f12_23 * RHS12; - const double f13 = 1.0 / m_A33; - const double f13_22 = -f13 * m_A72; - m_A73 += m_A34 * f13_22; - m_A74 += m_A35 * f13_22; - RHS22 += f13_22 * RHS13; - const double f13_26 = -f13 * m_A97; - m_A98 += m_A34 * f13_26; - m_A99 += m_A35 * f13_26; - RHS26 += f13_26 * RHS13; - const double f14 = 1.0 / m_A38; - const double f14_16 = -f14 * m_A45; - m_A46 += m_A39 * f14_16; - RHS16 += f14_16 * RHS14; - const double f15 = 1.0 / m_A42; - const double f15_17 = -f15 * m_A49; - m_A50 += m_A43 * f15_17; - RHS17 += f15_17 * RHS15; - const double f16 = 1.0 / m_A46; - const double f16_27 = -f16 * m_A102; - m_A108 += m_A47 * f16_27; - RHS27 += f16_27 * RHS16; - const double f17 = 1.0 / m_A50; - const double f17_27 = -f17 * m_A103; - m_A108 += m_A51 * f17_27; - RHS27 += f17_27 * RHS17; - const double f18 = 1.0 / m_A54; - const double f18_20 = -f18 * m_A62; - m_A63 += m_A55 * f18_20; - m_A64 += m_A56 * f18_20; - RHS20 += f18_20 * RHS18; - const double f18_23 = -f18 * m_A77; - m_A78 += m_A55 * f18_23; - m_A80 += m_A56 * f18_23; - RHS23 += f18_23 * RHS18; - const double f19 = 1.0 / m_A58; - const double f19_27 = -f19 * m_A104; - m_A108 += m_A59 * f19_27; - RHS27 += f19_27 * RHS19; - const double f20 = 1.0 / m_A63; - const double f20_23 = -f20 * m_A78; - m_A80 += m_A64 * f20_23; - m_A81 += m_A65 * f20_23; - m_A82 += m_A66 * f20_23; - RHS23 += f20_23 * RHS20; - const double f20_24 = -f20 * m_A85; - m_A86 += m_A64 * f20_24; - m_A87 += m_A65 * f20_24; - m_A88 += m_A66 * f20_24; - RHS24 += f20_24 * RHS20; - const double f20_25 = -f20 * m_A92; - m_A93 += m_A64 * f20_25; - m_A94 += m_A65 * f20_25; - m_A95 += m_A66 * f20_25; - RHS25 += f20_25 * RHS20; - const double f21 = 1.0 / m_A69; - const double f21_23 = -f21 * m_A79; - m_A80 += m_A70 * f21_23; - RHS23 += f21_23 * RHS21; - const double f22 = 1.0 / m_A73; - const double f22_26 = -f22 * m_A98; - m_A99 += m_A74 * f22_26; - RHS26 += f22_26 * RHS22; - const double f23 = 1.0 / m_A80; - const double f23_24 = -f23 * m_A86; - m_A87 += m_A81 * f23_24; - m_A88 += m_A82 * f23_24; - RHS24 += f23_24 * RHS23; - const double f23_25 = -f23 * m_A93; - m_A94 += m_A81 * f23_25; - m_A95 += m_A82 * f23_25; - RHS25 += f23_25 * RHS23; - const double f24 = 1.0 / m_A87; - const double f24_25 = -f24 * m_A94; - m_A95 += m_A88 * f24_25; - m_A96 += m_A89 * f24_25; - RHS25 += f24_25 * RHS24; - const double f24_27 = -f24 * m_A105; - m_A106 += m_A88 * f24_27; - m_A108 += m_A89 * f24_27; - RHS27 += f24_27 * RHS24; - const double f25 = 1.0 / m_A95; - const double f25_27 = -f25 * m_A106; - m_A108 += m_A96 * f25_27; - RHS27 += f25_27 * RHS25; - const double f26 = 1.0 / m_A99; - const double f26_27 = -f26 * m_A107; - m_A108 += m_A100 * f26_27; - RHS27 += f26_27 * RHS26; - V[27] = RHS27 / m_A108; + const double f2_38 = -f2 * m_A113; + m_A114 += m_A5 * f2_38; + m_A115 += m_A6 * f2_38; + m_A116 += m_A7 * f2_38; + RHS38 += f2_38 * RHS2; + const double f2_39 = -f2 * m_A117; + m_A119 += m_A5 * f2_39; + m_A120 += m_A6 * f2_39; + m_A121 += m_A7 * f2_39; + RHS39 += f2_39 * RHS2; + const double f2_40 = -f2 * m_A125; + m_A128 += m_A5 * f2_40; + m_A129 += m_A6 * f2_40; + m_A130 += m_A7 * f2_40; + RHS40 += f2_40 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_44 = -f3 * m_A147; + m_A149 += m_A9 * f3_44; + RHS44 += f3_44 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_50 = -f4 * m_A180; + m_A185 += m_A11 * f4_50; + m_A187 += m_A12 * f4_50; + RHS50 += f4_50 * RHS4; + const double f4_68 = -f4 * m_A302; + m_A306 += m_A11 * f4_68; + m_A309 += m_A12 * f4_68; + RHS68 += f4_68 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_44 = -f5 * m_A148; + m_A149 += m_A14 * f5_44; + m_A150 += m_A15 * f5_44; + RHS44 += f5_44 * RHS5; + const double f5_67 = -f5 * m_A291; + m_A296 += m_A14 * f5_67; + m_A298 += m_A15 * f5_67; + RHS67 += f5_67 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_47 = -f6 * m_A165; + m_A166 += m_A17 * f6_47; + RHS47 += f6_47 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_39 = -f7 * m_A118; + m_A120 += m_A19 * f7_39; + m_A122 += m_A20 * f7_39; + m_A123 += m_A21 * f7_39; + m_A124 += m_A22 * f7_39; + RHS39 += f7_39 * RHS7; + const double f7_50 = -f7 * m_A181; + m_A183 += m_A19 * f7_50; + m_A185 += m_A20 * f7_50; + m_A186 += m_A21 * f7_50; + m_A189 += m_A22 * f7_50; + RHS50 += f7_50 * RHS7; + const double f7_67 = -f7 * m_A292; + m_A294 += m_A19 * f7_67; + m_A297 += m_A20 * f7_67; + m_A298 += m_A21 * f7_67; + m_A301 += m_A22 * f7_67; + RHS67 += f7_67 * RHS7; + const double f7_75 = -f7 * m_A379; + m_A383 += m_A19 * f7_75; + m_A386 += m_A20 * f7_75; + m_A391 += m_A21 * f7_75; + m_A398 += m_A22 * f7_75; + RHS75 += f7_75 * RHS7; + const double f8 = 1.0 / m_A23; + const double f8_40 = -f8 * m_A126; + m_A130 += m_A24 * f8_40; + m_A131 += m_A25 * f8_40; + m_A132 += m_A26 * f8_40; + m_A134 += m_A27 * f8_40; + RHS40 += f8_40 * RHS8; + const double f8_50 = -f8 * m_A182; + m_A184 += m_A24 * f8_50; + m_A185 += m_A25 * f8_50; + m_A186 += m_A26 * f8_50; + m_A189 += m_A27 * f8_50; + RHS50 += f8_50 * RHS8; + const double f8_67 = -f8 * m_A293; + m_A295 += m_A24 * f8_67; + m_A297 += m_A25 * f8_67; + m_A298 += m_A26 * f8_67; + m_A301 += m_A27 * f8_67; + RHS67 += f8_67 * RHS8; + const double f8_75 = -f8 * m_A380; + m_A384 += m_A24 * f8_75; + m_A386 += m_A25 * f8_75; + m_A391 += m_A26 * f8_75; + m_A398 += m_A27 * f8_75; + RHS75 += f8_75 * RHS8; + const double f9 = 1.0 / m_A28; + const double f9_51 = -f9 * m_A190; + m_A191 += m_A29 * f9_51; + m_A192 += m_A30 * f9_51; + RHS51 += f9_51 * RHS9; + const double f9_65 = -f9 * m_A268; + m_A273 += m_A29 * f9_65; + m_A276 += m_A30 * f9_65; + RHS65 += f9_65 * RHS9; + const double f10 = 1.0 / m_A31; + const double f10_45 = -f10 * m_A151; + m_A152 += m_A32 * f10_45; + m_A155 += m_A33 * f10_45; + RHS45 += f10_45 * RHS10; + const double f11 = 1.0 / m_A34; + const double f11_45 = -f11 * m_A152; + m_A153 += m_A35 * f11_45; + m_A154 += m_A36 * f11_45; + m_A155 += m_A37 * f11_45; + RHS45 += f11_45 * RHS11; + const double f11_52 = -f11 * m_A194; + m_A195 += m_A35 * f11_52; + m_A196 += m_A36 * f11_52; + m_A199 += m_A37 * f11_52; + RHS52 += f11_52 * RHS11; + const double f11_72 = -f11 * m_A338; + m_A339 += m_A35 * f11_72; + m_A341 += m_A36 * f11_72; + m_A348 += m_A37 * f11_72; + RHS72 += f11_72 * RHS11; + const double f12 = 1.0 / m_A38; + const double f12_58 = -f12 * m_A223; + m_A224 += m_A39 * f12_58; + m_A231 += m_A40 * f12_58; + RHS58 += f12_58 * RHS12; + const double f13 = 1.0 / m_A41; + const double f13_48 = -f13 * m_A168; + m_A171 += m_A42 * f13_48; + m_A173 += m_A43 * f13_48; + m_A174 += m_A44 * f13_48; + RHS48 += f13_48 * RHS13; + const double f13_65 = -f13 * m_A269; + m_A272 += m_A42 * f13_65; + m_A276 += m_A43 * f13_65; + m_A277 += m_A44 * f13_65; + RHS65 += f13_65 * RHS13; + const double f13_66 = -f13 * m_A280; + m_A285 += m_A42 * f13_66; + m_A287 += m_A43 * f13_66; + m_A288 += m_A44 * f13_66; + RHS66 += f13_66 * RHS13; + const double f14 = 1.0 / m_A45; + const double f14_53 = -f14 * m_A201; + m_A203 += m_A46 * f14_53; + m_A204 += m_A47 * f14_53; + RHS53 += f14_53 * RHS14; + const double f14_58 = -f14 * m_A224; + m_A229 += m_A46 * f14_58; + m_A231 += m_A47 * f14_58; + RHS58 += f14_58 * RHS14; + const double f14_71 = -f14 * m_A328; + m_A333 += m_A46 * f14_71; + m_A335 += m_A47 * f14_71; + RHS71 += f14_71 * RHS14; + const double f14_73 = -f14 * m_A352; + m_A358 += m_A46 * f14_73; + m_A360 += m_A47 * f14_73; + RHS73 += f14_73 * RHS14; + const double f15 = 1.0 / m_A48; + const double f15_66 = -f15 * m_A281; + m_A282 += m_A49 * f15_66; + m_A285 += m_A50 * f15_66; + RHS66 += f15_66 * RHS15; + const double f16 = 1.0 / m_A51; + const double f16_43 = -f16 * m_A143; + m_A145 += m_A52 * f16_43; + m_A146 += m_A53 * f16_43; + RHS43 += f16_43 * RHS16; + const double f16_46 = -f16 * m_A157; + m_A161 += m_A52 * f16_46; + m_A162 += m_A53 * f16_46; + RHS46 += f16_46 * RHS16; + const double f16_48 = -f16 * m_A169; + m_A170 += m_A52 * f16_48; + m_A171 += m_A53 * f16_48; + RHS48 += f16_48 * RHS16; + const double f16_66 = -f16 * m_A282; + m_A284 += m_A52 * f16_66; + m_A285 += m_A53 * f16_66; + RHS66 += f16_66 * RHS16; + const double f17 = 1.0 / m_A54; + const double f17_63 = -f17 * m_A260; + m_A262 += m_A55 * f17_63; + RHS63 += f17_63 * RHS17; + const double f18 = 1.0 / m_A56; + const double f18_46 = -f18 * m_A158; + m_A161 += m_A57 * f18_46; + m_A164 += m_A58 * f18_46; + RHS46 += f18_46 * RHS18; + const double f18_66 = -f18 * m_A283; + m_A284 += m_A57 * f18_66; + m_A288 += m_A58 * f18_66; + RHS66 += f18_66 * RHS18; + const double f19 = 1.0 / m_A59; + const double f19_56 = -f19 * m_A215; + m_A218 += m_A60 * f19_56; + RHS56 += f19_56 * RHS19; + const double f20 = 1.0 / m_A61; + const double f20_54 = -f20 * m_A205; + m_A206 += m_A62 * f20_54; + RHS54 += f20_54 * RHS20; + const double f21 = 1.0 / m_A63; + const double f21_56 = -f21 * m_A216; + m_A218 += m_A64 * f21_56; + RHS56 += f21_56 * RHS21; + const double f22 = 1.0 / m_A65; + const double f22_40 = -f22 * m_A127; + m_A130 += m_A66 * f22_40; + m_A133 += m_A67 * f22_40; + RHS40 += f22_40 * RHS22; + const double f22_69 = -f22 * m_A312; + m_A314 += m_A66 * f22_69; + m_A320 += m_A67 * f22_69; + RHS69 += f22_69 * RHS22; + const double f23 = 1.0 / m_A68; + const double f23_69 = -f23 * m_A313; + m_A316 += m_A69 * f23_69; + m_A320 += m_A70 * f23_69; + RHS69 += f23_69 * RHS23; + const double f24 = 1.0 / m_A71; + const double f24_56 = -f24 * m_A217; + m_A218 += m_A72 * f24_56; + RHS56 += f24_56 * RHS24; + const double f25 = 1.0 / m_A73; + const double f25_41 = -f25 * m_A135; + m_A137 += m_A74 * f25_41; + RHS41 += f25_41 * RHS25; + const double f26 = 1.0 / m_A75; + const double f26_70 = -f26 * m_A322; + m_A323 += m_A76 * f26_70; + RHS70 += f26_70 * RHS26; + const double f27 = 1.0 / m_A77; + const double f27_41 = -f27 * m_A136; + m_A137 += m_A78 * f27_41; + m_A138 += m_A79 * f27_41; + m_A139 += m_A80 * f27_41; + RHS41 += f27_41 * RHS27; + const double f27_62 = -f27 * m_A256; + m_A257 += m_A78 * f27_62; + m_A258 += m_A79 * f27_62; + m_A259 += m_A80 * f27_62; + RHS62 += f27_62 * RHS27; + const double f27_68 = -f27 * m_A303; + m_A305 += m_A78 * f27_68; + m_A307 += m_A79 * f27_68; + m_A309 += m_A80 * f27_68; + RHS68 += f27_68 * RHS27; + const double f28 = 1.0 / m_A81; + const double f28_49 = -f28 * m_A175; + m_A177 += m_A82 * f28_49; + m_A179 += m_A83 * f28_49; + RHS49 += f28_49 * RHS28; + const double f28_75 = -f28 * m_A381; + m_A385 += m_A82 * f28_75; + m_A398 += m_A83 * f28_75; + RHS75 += f28_75 * RHS28; + const double f29 = 1.0 / m_A84; + const double f29_55 = -f29 * m_A208; + m_A211 += m_A85 * f29_55; + m_A212 += m_A86 * f29_55; + m_A213 += m_A87 * f29_55; + RHS55 += f29_55 * RHS29; + const double f29_58 = -f29 * m_A225; + m_A226 += m_A85 * f29_58; + m_A227 += m_A86 * f29_58; + m_A228 += m_A87 * f29_58; + RHS58 += f29_58 * RHS29; + const double f29_60 = -f29 * m_A241; + m_A243 += m_A85 * f29_60; + m_A244 += m_A86 * f29_60; + m_A245 += m_A87 * f29_60; + RHS60 += f29_60 * RHS29; + const double f30 = 1.0 / m_A88; + const double f30_61 = -f30 * m_A251; + m_A253 += m_A89 * f30_61; + m_A255 += m_A90 * f30_61; + RHS61 += f30_61 * RHS30; + const double f30_75 = -f30 * m_A382; + m_A390 += m_A89 * f30_75; + m_A398 += m_A90 * f30_75; + RHS75 += f30_75 * RHS30; + const double f31 = 1.0 / m_A91; + const double f31_46 = -f31 * m_A159; + m_A160 += m_A92 * f31_46; + m_A161 += m_A93 * f31_46; + m_A163 += m_A94 * f31_46; + RHS46 += f31_46 * RHS31; + const double f31_59 = -f31 * m_A233; + m_A234 += m_A92 * f31_59; + m_A235 += m_A93 * f31_59; + m_A237 += m_A94 * f31_59; + RHS59 += f31_59 * RHS31; + const double f32 = 1.0 / m_A95; + const double f32_64 = -f32 * m_A264; + m_A265 += m_A96 * f32_64; + m_A266 += m_A97 * f32_64; + RHS64 += f32_64 * RHS32; + const double f32_65 = -f32 * m_A270; + m_A275 += m_A96 * f32_65; + m_A276 += m_A97 * f32_65; + RHS65 += f32_65 * RHS32; + const double f33 = 1.0 / m_A98; + const double f33_49 = -f33 * m_A176; + m_A177 += m_A99 * f33_49; + m_A178 += m_A100 * f33_49; + RHS49 += f33_49 * RHS33; + const double f33_55 = -f33 * m_A209; + m_A210 += m_A99 * f33_55; + m_A211 += m_A100 * f33_55; + RHS55 += f33_55 * RHS33; + const double f34 = 1.0 / m_A101; + const double f34_60 = -f34 * m_A242; + m_A245 += m_A102 * f34_60; + m_A249 += m_A103 * f34_60; + RHS60 += f34_60 * RHS34; + const double f34_74 = -f34 * m_A363; + m_A368 += m_A102 * f34_74; + m_A377 += m_A103 * f34_74; + RHS74 += f34_74 * RHS34; + const double f35 = 1.0 / m_A104; + const double f35_61 = -f35 * m_A252; + m_A253 += m_A105 * f35_61; + m_A254 += m_A106 * f35_61; + RHS61 += f35_61 * RHS35; + const double f35_74 = -f35 * m_A364; + m_A369 += m_A105 * f35_74; + m_A377 += m_A106 * f35_74; + RHS74 += f35_74 * RHS35; + const double f36 = 1.0 / m_A107; + const double f36_74 = -f36 * m_A365; + m_A377 += m_A108 * f36_74; + RHS74 += f36_74 * RHS36; + const double f37 = 1.0 / m_A110; + const double f37_68 = -f37 * m_A304; + m_A309 += m_A111 * f37_68; + RHS68 += f37_68 * RHS37; + const double f38 = 1.0 / m_A114; + const double f38_39 = -f38 * m_A119; + m_A120 += m_A115 * f38_39; + m_A121 += m_A116 * f38_39; + RHS39 += f38_39 * RHS38; + const double f38_40 = -f38 * m_A128; + m_A129 += m_A115 * f38_40; + m_A130 += m_A116 * f38_40; + RHS40 += f38_40 * RHS38; + const double f39 = 1.0 / m_A120; + const double f39_40 = -f39 * m_A129; + m_A130 += m_A121 * f39_40; + m_A131 += m_A122 * f39_40; + m_A132 += m_A123 * f39_40; + m_A134 += m_A124 * f39_40; + RHS40 += f39_40 * RHS39; + const double f39_50 = -f39 * m_A183; + m_A184 += m_A121 * f39_50; + m_A185 += m_A122 * f39_50; + m_A186 += m_A123 * f39_50; + m_A189 += m_A124 * f39_50; + RHS50 += f39_50 * RHS39; + const double f39_67 = -f39 * m_A294; + m_A295 += m_A121 * f39_67; + m_A297 += m_A122 * f39_67; + m_A298 += m_A123 * f39_67; + m_A301 += m_A124 * f39_67; + RHS67 += f39_67 * RHS39; + const double f39_75 = -f39 * m_A383; + m_A384 += m_A121 * f39_75; + m_A386 += m_A122 * f39_75; + m_A391 += m_A123 * f39_75; + m_A398 += m_A124 * f39_75; + RHS75 += f39_75 * RHS39; + const double f40 = 1.0 / m_A130; + const double f40_50 = -f40 * m_A184; + m_A185 += m_A131 * f40_50; + m_A186 += m_A132 * f40_50; + m_A188 += m_A133 * f40_50; + m_A189 += m_A134 * f40_50; + RHS50 += f40_50 * RHS40; + const double f40_67 = -f40 * m_A295; + m_A297 += m_A131 * f40_67; + m_A298 += m_A132 * f40_67; + m_A300 += m_A133 * f40_67; + m_A301 += m_A134 * f40_67; + RHS67 += f40_67 * RHS40; + const double f40_69 = -f40 * m_A314; + m_A315 += m_A131 * f40_69; + m_A318 += m_A132 * f40_69; + m_A320 += m_A133 * f40_69; + m_A321 += m_A134 * f40_69; + RHS69 += f40_69 * RHS40; + const double f40_75 = -f40 * m_A384; + m_A386 += m_A131 * f40_75; + m_A391 += m_A132 * f40_75; + m_A393 += m_A133 * f40_75; + m_A398 += m_A134 * f40_75; + RHS75 += f40_75 * RHS40; + const double f41 = 1.0 / m_A137; + const double f41_62 = -f41 * m_A257; + m_A258 += m_A138 * f41_62; + m_A259 += m_A139 * f41_62; + RHS62 += f41_62 * RHS41; + const double f41_68 = -f41 * m_A305; + m_A307 += m_A138 * f41_68; + m_A309 += m_A139 * f41_68; + RHS68 += f41_68 * RHS41; + const double f42 = 1.0 / m_A140; + const double f42_63 = -f42 * m_A261; + m_A262 += m_A141 * f42_63; + m_A263 += m_A142 * f42_63; + RHS63 += f42_63 * RHS42; + const double f42_70 = -f42 * m_A323; + m_A325 += m_A141 * f42_70; + m_A326 += m_A142 * f42_70; + RHS70 += f42_70 * RHS42; + const double f43 = 1.0 / m_A144; + const double f43_46 = -f43 * m_A160; + m_A161 += m_A145 * f43_46; + m_A162 += m_A146 * f43_46; + RHS46 += f43_46 * RHS43; + const double f43_59 = -f43 * m_A234; + m_A235 += m_A145 * f43_59; + m_A236 += m_A146 * f43_59; + RHS59 += f43_59 * RHS43; + const double f44 = 1.0 / m_A149; + const double f44_67 = -f44 * m_A296; + m_A298 += m_A150 * f44_67; + RHS67 += f44_67 * RHS44; + const double f45 = 1.0 / m_A153; + const double f45_52 = -f45 * m_A195; + m_A196 += m_A154 * f45_52; + m_A199 += m_A155 * f45_52; + m_A200 += m_A156 * f45_52; + RHS52 += f45_52 * RHS45; + const double f45_72 = -f45 * m_A339; + m_A341 += m_A154 * f45_72; + m_A348 += m_A155 * f45_72; + m_A349 += m_A156 * f45_72; + RHS72 += f45_72 * RHS45; + const double f45_73 = -f45 * m_A353; + m_A354 += m_A154 * f45_73; + m_A359 += m_A155 * f45_73; + m_A360 += m_A156 * f45_73; + RHS73 += f45_73 * RHS45; + const double f46 = 1.0 / m_A161; + const double f46_48 = -f46 * m_A170; + m_A171 += m_A162 * f46_48; + m_A172 += m_A163 * f46_48; + m_A174 += m_A164 * f46_48; + RHS48 += f46_48 * RHS46; + const double f46_59 = -f46 * m_A235; + m_A236 += m_A162 * f46_59; + m_A237 += m_A163 * f46_59; + m_A239 += m_A164 * f46_59; + RHS59 += f46_59 * RHS46; + const double f46_66 = -f46 * m_A284; + m_A285 += m_A162 * f46_66; + m_A286 += m_A163 * f46_66; + m_A288 += m_A164 * f46_66; + RHS66 += f46_66 * RHS46; + const double f47 = 1.0 / m_A166; + const double f47_65 = -f47 * m_A271; + m_A276 += m_A167 * f47_65; + RHS65 += f47_65 * RHS47; + const double f48 = 1.0 / m_A171; + const double f48_59 = -f48 * m_A236; + m_A237 += m_A172 * f48_59; + m_A238 += m_A173 * f48_59; + m_A239 += m_A174 * f48_59; + RHS59 += f48_59 * RHS48; + const double f48_65 = -f48 * m_A272; + m_A274 += m_A172 * f48_65; + m_A276 += m_A173 * f48_65; + m_A277 += m_A174 * f48_65; + RHS65 += f48_65 * RHS48; + const double f48_66 = -f48 * m_A285; + m_A286 += m_A172 * f48_66; + m_A287 += m_A173 * f48_66; + m_A288 += m_A174 * f48_66; + RHS66 += f48_66 * RHS48; + const double f49 = 1.0 / m_A177; + const double f49_55 = -f49 * m_A210; + m_A211 += m_A178 * f49_55; + m_A214 += m_A179 * f49_55; + RHS55 += f49_55 * RHS49; + const double f49_75 = -f49 * m_A385; + m_A387 += m_A178 * f49_75; + m_A398 += m_A179 * f49_75; + RHS75 += f49_75 * RHS49; + const double f50 = 1.0 / m_A185; + const double f50_67 = -f50 * m_A297; + m_A298 += m_A186 * f50_67; + m_A299 += m_A187 * f50_67; + m_A300 += m_A188 * f50_67; + m_A301 += m_A189 * f50_67; + RHS67 += f50_67 * RHS50; + const double f50_68 = -f50 * m_A306; + m_A308 += m_A186 * f50_68; + m_A309 += m_A187 * f50_68; + m_A310 += m_A188 * f50_68; + m_A311 += m_A189 * f50_68; + RHS68 += f50_68 * RHS50; + const double f50_69 = -f50 * m_A315; + m_A318 += m_A186 * f50_69; + m_A319 += m_A187 * f50_69; + m_A320 += m_A188 * f50_69; + m_A321 += m_A189 * f50_69; + RHS69 += f50_69 * RHS50; + const double f50_75 = -f50 * m_A386; + m_A391 += m_A186 * f50_75; + m_A392 += m_A187 * f50_75; + m_A393 += m_A188 * f50_75; + m_A398 += m_A189 * f50_75; + RHS75 += f50_75 * RHS50; + const double f51 = 1.0 / m_A191; + const double f51_65 = -f51 * m_A273; + m_A276 += m_A192 * f51_65; + m_A278 += m_A193 * f51_65; + RHS65 += f51_65 * RHS51; + const double f51_72 = -f51 * m_A340; + m_A345 += m_A192 * f51_72; + m_A348 += m_A193 * f51_72; + RHS72 += f51_72 * RHS51; + const double f52 = 1.0 / m_A196; + const double f52_71 = -f52 * m_A329; + m_A330 += m_A197 * f52_71; + m_A333 += m_A198 * f52_71; + m_A334 += m_A199 * f52_71; + m_A335 += m_A200 * f52_71; + RHS71 += f52_71 * RHS52; + const double f52_72 = -f52 * m_A341; + m_A342 += m_A197 * f52_72; + m_A347 += m_A198 * f52_72; + m_A348 += m_A199 * f52_72; + m_A349 += m_A200 * f52_72; + RHS72 += f52_72 * RHS52; + const double f52_73 = -f52 * m_A354; + m_A355 += m_A197 * f52_73; + m_A358 += m_A198 * f52_73; + m_A359 += m_A199 * f52_73; + m_A360 += m_A200 * f52_73; + RHS73 += f52_73 * RHS52; + const double f53 = 1.0 / m_A202; + const double f53_71 = -f53 * m_A330; + m_A333 += m_A203 * f53_71; + m_A335 += m_A204 * f53_71; + RHS71 += f53_71 * RHS53; + const double f53_72 = -f53 * m_A342; + m_A347 += m_A203 * f53_72; + m_A349 += m_A204 * f53_72; + RHS72 += f53_72 * RHS53; + const double f53_73 = -f53 * m_A355; + m_A358 += m_A203 * f53_73; + m_A360 += m_A204 * f53_73; + RHS73 += f53_73 * RHS53; + const double f54 = 1.0 / m_A206; + const double f54_69 = -f54 * m_A316; + m_A320 += m_A207 * f54_69; + RHS69 += f54_69 * RHS54; + const double f55 = 1.0 / m_A211; + const double f55_58 = -f55 * m_A226; + m_A227 += m_A212 * f55_58; + m_A228 += m_A213 * f55_58; + m_A232 += m_A214 * f55_58; + RHS58 += f55_58 * RHS55; + const double f55_60 = -f55 * m_A243; + m_A244 += m_A212 * f55_60; + m_A245 += m_A213 * f55_60; + m_A250 += m_A214 * f55_60; + RHS60 += f55_60 * RHS55; + const double f55_75 = -f55 * m_A387; + m_A388 += m_A212 * f55_75; + m_A389 += m_A213 * f55_75; + m_A398 += m_A214 * f55_75; + RHS75 += f55_75 * RHS55; + const double f56 = 1.0 / m_A218; + const double f56_69 = -f56 * m_A317; + m_A320 += m_A219 * f56_69; + RHS69 += f56_69 * RHS56; + const double f57 = 1.0 / m_A220; + const double f57_70 = -f57 * m_A324; + m_A326 += m_A221 * f57_70; + m_A327 += m_A222 * f57_70; + RHS70 += f57_70 * RHS57; + const double f57_74 = -f57 * m_A366; + m_A373 += m_A221 * f57_74; + m_A377 += m_A222 * f57_74; + RHS74 += f57_74 * RHS57; + const double f58 = 1.0 / m_A227; + const double f58_60 = -f58 * m_A244; + m_A245 += m_A228 * f58_60; + m_A246 += m_A229 * f58_60; + m_A247 += m_A230 * f58_60; + m_A248 += m_A231 * f58_60; + m_A250 += m_A232 * f58_60; + RHS60 += f58_60 * RHS58; + const double f58_71 = -f58 * m_A331; + m_A332 += m_A228 * f58_71; + m_A333 += m_A229 * f58_71; + m_A334 += m_A230 * f58_71; + m_A335 += m_A231 * f58_71; + m_A337 += m_A232 * f58_71; + RHS71 += f58_71 * RHS58; + const double f58_72 = -f58 * m_A343; + m_A344 += m_A228 * f58_72; + m_A347 += m_A229 * f58_72; + m_A348 += m_A230 * f58_72; + m_A349 += m_A231 * f58_72; + m_A351 += m_A232 * f58_72; + RHS72 += f58_72 * RHS58; + const double f58_73 = -f58 * m_A356; + m_A357 += m_A228 * f58_73; + m_A358 += m_A229 * f58_73; + m_A359 += m_A230 * f58_73; + m_A360 += m_A231 * f58_73; + m_A362 += m_A232 * f58_73; + RHS73 += f58_73 * RHS58; + const double f58_75 = -f58 * m_A388; + m_A389 += m_A228 * f58_75; + m_A394 += m_A229 * f58_75; + m_A395 += m_A230 * f58_75; + m_A396 += m_A231 * f58_75; + m_A398 += m_A232 * f58_75; + RHS75 += f58_75 * RHS58; + const double f59 = 1.0 / m_A237; + const double f59_65 = -f59 * m_A274; + m_A276 += m_A238 * f59_65; + m_A277 += m_A239 * f59_65; + m_A279 += m_A240 * f59_65; + RHS65 += f59_65 * RHS59; + const double f59_66 = -f59 * m_A286; + m_A287 += m_A238 * f59_66; + m_A288 += m_A239 * f59_66; + m_A290 += m_A240 * f59_66; + RHS66 += f59_66 * RHS59; + const double f59_74 = -f59 * m_A367; + m_A371 += m_A238 * f59_74; + m_A372 += m_A239 * f59_74; + m_A377 += m_A240 * f59_74; + RHS74 += f59_74 * RHS59; + const double f60 = 1.0 / m_A245; + const double f60_71 = -f60 * m_A332; + m_A333 += m_A246 * f60_71; + m_A334 += m_A247 * f60_71; + m_A335 += m_A248 * f60_71; + m_A336 += m_A249 * f60_71; + m_A337 += m_A250 * f60_71; + RHS71 += f60_71 * RHS60; + const double f60_72 = -f60 * m_A344; + m_A347 += m_A246 * f60_72; + m_A348 += m_A247 * f60_72; + m_A349 += m_A248 * f60_72; + m_A350 += m_A249 * f60_72; + m_A351 += m_A250 * f60_72; + RHS72 += f60_72 * RHS60; + const double f60_73 = -f60 * m_A357; + m_A358 += m_A246 * f60_73; + m_A359 += m_A247 * f60_73; + m_A360 += m_A248 * f60_73; + m_A361 += m_A249 * f60_73; + m_A362 += m_A250 * f60_73; + RHS73 += f60_73 * RHS60; + const double f60_74 = -f60 * m_A368; + m_A374 += m_A246 * f60_74; + m_A375 += m_A247 * f60_74; + m_A376 += m_A248 * f60_74; + m_A377 += m_A249 * f60_74; + m_A378 += m_A250 * f60_74; + RHS74 += f60_74 * RHS60; + const double f60_75 = -f60 * m_A389; + m_A394 += m_A246 * f60_75; + m_A395 += m_A247 * f60_75; + m_A396 += m_A248 * f60_75; + m_A397 += m_A249 * f60_75; + m_A398 += m_A250 * f60_75; + RHS75 += f60_75 * RHS60; + const double f61 = 1.0 / m_A253; + const double f61_74 = -f61 * m_A369; + m_A377 += m_A254 * f61_74; + m_A378 += m_A255 * f61_74; + RHS74 += f61_74 * RHS61; + const double f61_75 = -f61 * m_A390; + m_A397 += m_A254 * f61_75; + m_A398 += m_A255 * f61_75; + RHS75 += f61_75 * RHS61; + const double f62 = 1.0 / m_A258; + const double f62_68 = -f62 * m_A307; + m_A309 += m_A259 * f62_68; + RHS68 += f62_68 * RHS62; + const double f63 = 1.0 / m_A262; + const double f63_70 = -f63 * m_A325; + m_A326 += m_A263 * f63_70; + RHS70 += f63_70 * RHS63; + const double f64 = 1.0 / m_A265; + const double f64_65 = -f64 * m_A275; + m_A276 += m_A266 * f64_65; + m_A279 += m_A267 * f64_65; + RHS65 += f64_65 * RHS64; + const double f64_74 = -f64 * m_A370; + m_A371 += m_A266 * f64_74; + m_A377 += m_A267 * f64_74; + RHS74 += f64_74 * RHS64; + const double f65 = 1.0 / m_A276; + const double f65_66 = -f65 * m_A287; + m_A288 += m_A277 * f65_66; + m_A289 += m_A278 * f65_66; + m_A290 += m_A279 * f65_66; + RHS66 += f65_66 * RHS65; + const double f65_72 = -f65 * m_A345; + m_A346 += m_A277 * f65_72; + m_A348 += m_A278 * f65_72; + m_A350 += m_A279 * f65_72; + RHS72 += f65_72 * RHS65; + const double f65_74 = -f65 * m_A371; + m_A372 += m_A277 * f65_74; + m_A375 += m_A278 * f65_74; + m_A377 += m_A279 * f65_74; + RHS74 += f65_74 * RHS65; + const double f66 = 1.0 / m_A288; + const double f66_72 = -f66 * m_A346; + m_A348 += m_A289 * f66_72; + m_A350 += m_A290 * f66_72; + RHS72 += f66_72 * RHS66; + const double f66_74 = -f66 * m_A372; + m_A375 += m_A289 * f66_74; + m_A377 += m_A290 * f66_74; + RHS74 += f66_74 * RHS66; + const double f67 = 1.0 / m_A298; + const double f67_68 = -f67 * m_A308; + m_A309 += m_A299 * f67_68; + m_A310 += m_A300 * f67_68; + m_A311 += m_A301 * f67_68; + RHS68 += f67_68 * RHS67; + const double f67_69 = -f67 * m_A318; + m_A319 += m_A299 * f67_69; + m_A320 += m_A300 * f67_69; + m_A321 += m_A301 * f67_69; + RHS69 += f67_69 * RHS67; + const double f67_75 = -f67 * m_A391; + m_A392 += m_A299 * f67_75; + m_A393 += m_A300 * f67_75; + m_A398 += m_A301 * f67_75; + RHS75 += f67_75 * RHS67; + const double f68 = 1.0 / m_A309; + const double f68_69 = -f68 * m_A319; + m_A320 += m_A310 * f68_69; + m_A321 += m_A311 * f68_69; + RHS69 += f68_69 * RHS68; + const double f68_75 = -f68 * m_A392; + m_A393 += m_A310 * f68_75; + m_A398 += m_A311 * f68_75; + RHS75 += f68_75 * RHS68; + const double f69 = 1.0 / m_A320; + const double f69_75 = -f69 * m_A393; + m_A398 += m_A321 * f69_75; + RHS75 += f69_75 * RHS69; + const double f70 = 1.0 / m_A326; + const double f70_74 = -f70 * m_A373; + m_A377 += m_A327 * f70_74; + RHS74 += f70_74 * RHS70; + const double f71 = 1.0 / m_A333; + const double f71_72 = -f71 * m_A347; + m_A348 += m_A334 * f71_72; + m_A349 += m_A335 * f71_72; + m_A350 += m_A336 * f71_72; + m_A351 += m_A337 * f71_72; + RHS72 += f71_72 * RHS71; + const double f71_73 = -f71 * m_A358; + m_A359 += m_A334 * f71_73; + m_A360 += m_A335 * f71_73; + m_A361 += m_A336 * f71_73; + m_A362 += m_A337 * f71_73; + RHS73 += f71_73 * RHS71; + const double f71_74 = -f71 * m_A374; + m_A375 += m_A334 * f71_74; + m_A376 += m_A335 * f71_74; + m_A377 += m_A336 * f71_74; + m_A378 += m_A337 * f71_74; + RHS74 += f71_74 * RHS71; + const double f71_75 = -f71 * m_A394; + m_A395 += m_A334 * f71_75; + m_A396 += m_A335 * f71_75; + m_A397 += m_A336 * f71_75; + m_A398 += m_A337 * f71_75; + RHS75 += f71_75 * RHS71; + const double f72 = 1.0 / m_A348; + const double f72_73 = -f72 * m_A359; + m_A360 += m_A349 * f72_73; + m_A361 += m_A350 * f72_73; + m_A362 += m_A351 * f72_73; + RHS73 += f72_73 * RHS72; + const double f72_74 = -f72 * m_A375; + m_A376 += m_A349 * f72_74; + m_A377 += m_A350 * f72_74; + m_A378 += m_A351 * f72_74; + RHS74 += f72_74 * RHS72; + const double f72_75 = -f72 * m_A395; + m_A396 += m_A349 * f72_75; + m_A397 += m_A350 * f72_75; + m_A398 += m_A351 * f72_75; + RHS75 += f72_75 * RHS72; + const double f73 = 1.0 / m_A360; + const double f73_74 = -f73 * m_A376; + m_A377 += m_A361 * f73_74; + m_A378 += m_A362 * f73_74; + RHS74 += f73_74 * RHS73; + const double f73_75 = -f73 * m_A396; + m_A397 += m_A361 * f73_75; + m_A398 += m_A362 * f73_75; + RHS75 += f73_75 * RHS73; + const double f74 = 1.0 / m_A377; + const double f74_75 = -f74 * m_A397; + m_A398 += m_A378 * f74_75; + RHS75 += f74_75 * RHS74; + V[75] = RHS75 / m_A398; + double tmp74 = 0.0; + tmp74 += m_A378 * V[75]; + V[74] = (RHS74 - tmp74) / m_A377; + double tmp73 = 0.0; + tmp73 += m_A361 * V[74]; + tmp73 += m_A362 * V[75]; + V[73] = (RHS73 - tmp73) / m_A360; + double tmp72 = 0.0; + tmp72 += m_A349 * V[73]; + tmp72 += m_A350 * V[74]; + tmp72 += m_A351 * V[75]; + V[72] = (RHS72 - tmp72) / m_A348; + double tmp71 = 0.0; + tmp71 += m_A334 * V[72]; + tmp71 += m_A335 * V[73]; + tmp71 += m_A336 * V[74]; + tmp71 += m_A337 * V[75]; + V[71] = (RHS71 - tmp71) / m_A333; + double tmp70 = 0.0; + tmp70 += m_A327 * V[74]; + V[70] = (RHS70 - tmp70) / m_A326; + double tmp69 = 0.0; + tmp69 += m_A321 * V[75]; + V[69] = (RHS69 - tmp69) / m_A320; + double tmp68 = 0.0; + tmp68 += m_A310 * V[69]; + tmp68 += m_A311 * V[75]; + V[68] = (RHS68 - tmp68) / m_A309; + double tmp67 = 0.0; + tmp67 += m_A299 * V[68]; + tmp67 += m_A300 * V[69]; + tmp67 += m_A301 * V[75]; + V[67] = (RHS67 - tmp67) / m_A298; + double tmp66 = 0.0; + tmp66 += m_A289 * V[72]; + tmp66 += m_A290 * V[74]; + V[66] = (RHS66 - tmp66) / m_A288; + double tmp65 = 0.0; + tmp65 += m_A277 * V[66]; + tmp65 += m_A278 * V[72]; + tmp65 += m_A279 * V[74]; + V[65] = (RHS65 - tmp65) / m_A276; + double tmp64 = 0.0; + tmp64 += m_A266 * V[65]; + tmp64 += m_A267 * V[74]; + V[64] = (RHS64 - tmp64) / m_A265; + double tmp63 = 0.0; + tmp63 += m_A263 * V[70]; + V[63] = (RHS63 - tmp63) / m_A262; + double tmp62 = 0.0; + tmp62 += m_A259 * V[68]; + V[62] = (RHS62 - tmp62) / m_A258; + double tmp61 = 0.0; + tmp61 += m_A254 * V[74]; + tmp61 += m_A255 * V[75]; + V[61] = (RHS61 - tmp61) / m_A253; + double tmp60 = 0.0; + tmp60 += m_A246 * V[71]; + tmp60 += m_A247 * V[72]; + tmp60 += m_A248 * V[73]; + tmp60 += m_A249 * V[74]; + tmp60 += m_A250 * V[75]; + V[60] = (RHS60 - tmp60) / m_A245; + double tmp59 = 0.0; + tmp59 += m_A238 * V[65]; + tmp59 += m_A239 * V[66]; + tmp59 += m_A240 * V[74]; + V[59] = (RHS59 - tmp59) / m_A237; + double tmp58 = 0.0; + tmp58 += m_A228 * V[60]; + tmp58 += m_A229 * V[71]; + tmp58 += m_A230 * V[72]; + tmp58 += m_A231 * V[73]; + tmp58 += m_A232 * V[75]; + V[58] = (RHS58 - tmp58) / m_A227; + double tmp57 = 0.0; + tmp57 += m_A221 * V[70]; + tmp57 += m_A222 * V[74]; + V[57] = (RHS57 - tmp57) / m_A220; + double tmp56 = 0.0; + tmp56 += m_A219 * V[69]; + V[56] = (RHS56 - tmp56) / m_A218; + double tmp55 = 0.0; + tmp55 += m_A212 * V[58]; + tmp55 += m_A213 * V[60]; + tmp55 += m_A214 * V[75]; + V[55] = (RHS55 - tmp55) / m_A211; + double tmp54 = 0.0; + tmp54 += m_A207 * V[69]; + V[54] = (RHS54 - tmp54) / m_A206; + double tmp53 = 0.0; + tmp53 += m_A203 * V[71]; + tmp53 += m_A204 * V[73]; + V[53] = (RHS53 - tmp53) / m_A202; + double tmp52 = 0.0; + tmp52 += m_A197 * V[53]; + tmp52 += m_A198 * V[71]; + tmp52 += m_A199 * V[72]; + tmp52 += m_A200 * V[73]; + V[52] = (RHS52 - tmp52) / m_A196; + double tmp51 = 0.0; + tmp51 += m_A192 * V[65]; + tmp51 += m_A193 * V[72]; + V[51] = (RHS51 - tmp51) / m_A191; + double tmp50 = 0.0; + tmp50 += m_A186 * V[67]; + tmp50 += m_A187 * V[68]; + tmp50 += m_A188 * V[69]; + tmp50 += m_A189 * V[75]; + V[50] = (RHS50 - tmp50) / m_A185; + double tmp49 = 0.0; + tmp49 += m_A178 * V[55]; + tmp49 += m_A179 * V[75]; + V[49] = (RHS49 - tmp49) / m_A177; + double tmp48 = 0.0; + tmp48 += m_A172 * V[59]; + tmp48 += m_A173 * V[65]; + tmp48 += m_A174 * V[66]; + V[48] = (RHS48 - tmp48) / m_A171; + double tmp47 = 0.0; + tmp47 += m_A167 * V[65]; + V[47] = (RHS47 - tmp47) / m_A166; + double tmp46 = 0.0; + tmp46 += m_A162 * V[48]; + tmp46 += m_A163 * V[59]; + tmp46 += m_A164 * V[66]; + V[46] = (RHS46 - tmp46) / m_A161; + double tmp45 = 0.0; + tmp45 += m_A154 * V[52]; + tmp45 += m_A155 * V[72]; + tmp45 += m_A156 * V[73]; + V[45] = (RHS45 - tmp45) / m_A153; + double tmp44 = 0.0; + tmp44 += m_A150 * V[67]; + V[44] = (RHS44 - tmp44) / m_A149; + double tmp43 = 0.0; + tmp43 += m_A145 * V[46]; + tmp43 += m_A146 * V[48]; + V[43] = (RHS43 - tmp43) / m_A144; + double tmp42 = 0.0; + tmp42 += m_A141 * V[63]; + tmp42 += m_A142 * V[70]; + V[42] = (RHS42 - tmp42) / m_A140; + double tmp41 = 0.0; + tmp41 += m_A138 * V[62]; + tmp41 += m_A139 * V[68]; + V[41] = (RHS41 - tmp41) / m_A137; + double tmp40 = 0.0; + tmp40 += m_A131 * V[50]; + tmp40 += m_A132 * V[67]; + tmp40 += m_A133 * V[69]; + tmp40 += m_A134 * V[75]; + V[40] = (RHS40 - tmp40) / m_A130; + double tmp39 = 0.0; + tmp39 += m_A121 * V[40]; + tmp39 += m_A122 * V[50]; + tmp39 += m_A123 * V[67]; + tmp39 += m_A124 * V[75]; + V[39] = (RHS39 - tmp39) / m_A120; + double tmp38 = 0.0; + tmp38 += m_A115 * V[39]; + tmp38 += m_A116 * V[40]; + V[38] = (RHS38 - tmp38) / m_A114; + double tmp37 = 0.0; + tmp37 += m_A111 * V[68]; + V[37] = (RHS37 - tmp37) / m_A110; + double tmp36 = 0.0; + tmp36 += m_A108 * V[74]; + V[36] = (RHS36 - tmp36) / m_A107; + double tmp35 = 0.0; + tmp35 += m_A105 * V[61]; + tmp35 += m_A106 * V[74]; + V[35] = (RHS35 - tmp35) / m_A104; + double tmp34 = 0.0; + tmp34 += m_A102 * V[60]; + tmp34 += m_A103 * V[74]; + V[34] = (RHS34 - tmp34) / m_A101; + double tmp33 = 0.0; + tmp33 += m_A99 * V[49]; + tmp33 += m_A100 * V[55]; + V[33] = (RHS33 - tmp33) / m_A98; + double tmp32 = 0.0; + tmp32 += m_A96 * V[64]; + tmp32 += m_A97 * V[65]; + V[32] = (RHS32 - tmp32) / m_A95; + double tmp31 = 0.0; + tmp31 += m_A92 * V[43]; + tmp31 += m_A93 * V[46]; + tmp31 += m_A94 * V[59]; + V[31] = (RHS31 - tmp31) / m_A91; + double tmp30 = 0.0; + tmp30 += m_A89 * V[61]; + tmp30 += m_A90 * V[75]; + V[30] = (RHS30 - tmp30) / m_A88; + double tmp29 = 0.0; + tmp29 += m_A85 * V[55]; + tmp29 += m_A86 * V[58]; + tmp29 += m_A87 * V[60]; + V[29] = (RHS29 - tmp29) / m_A84; + double tmp28 = 0.0; + tmp28 += m_A82 * V[49]; + tmp28 += m_A83 * V[75]; + V[28] = (RHS28 - tmp28) / m_A81; + double tmp27 = 0.0; + tmp27 += m_A78 * V[41]; + tmp27 += m_A79 * V[62]; + tmp27 += m_A80 * V[68]; + V[27] = (RHS27 - tmp27) / m_A77; double tmp26 = 0.0; - tmp26 += m_A100 * V[27]; - V[26] = (RHS26 - tmp26) / m_A99; + tmp26 += m_A76 * V[42]; + V[26] = (RHS26 - tmp26) / m_A75; double tmp25 = 0.0; - tmp25 += m_A96 * V[27]; - V[25] = (RHS25 - tmp25) / m_A95; + tmp25 += m_A74 * V[41]; + V[25] = (RHS25 - tmp25) / m_A73; double tmp24 = 0.0; - tmp24 += m_A88 * V[25]; - tmp24 += m_A89 * V[27]; - V[24] = (RHS24 - tmp24) / m_A87; + tmp24 += m_A72 * V[56]; + V[24] = (RHS24 - tmp24) / m_A71; double tmp23 = 0.0; - tmp23 += m_A81 * V[24]; - tmp23 += m_A82 * V[25]; - V[23] = (RHS23 - tmp23) / m_A80; + tmp23 += m_A69 * V[54]; + tmp23 += m_A70 * V[69]; + V[23] = (RHS23 - tmp23) / m_A68; double tmp22 = 0.0; - tmp22 += m_A74 * V[26]; - V[22] = (RHS22 - tmp22) / m_A73; + tmp22 += m_A66 * V[40]; + tmp22 += m_A67 * V[69]; + V[22] = (RHS22 - tmp22) / m_A65; double tmp21 = 0.0; - tmp21 += m_A70 * V[23]; - V[21] = (RHS21 - tmp21) / m_A69; + tmp21 += m_A64 * V[56]; + V[21] = (RHS21 - tmp21) / m_A63; double tmp20 = 0.0; - tmp20 += m_A64 * V[23]; - tmp20 += m_A65 * V[24]; - tmp20 += m_A66 * V[25]; - V[20] = (RHS20 - tmp20) / m_A63; + tmp20 += m_A62 * V[54]; + V[20] = (RHS20 - tmp20) / m_A61; double tmp19 = 0.0; - tmp19 += m_A59 * V[27]; - V[19] = (RHS19 - tmp19) / m_A58; + tmp19 += m_A60 * V[56]; + V[19] = (RHS19 - tmp19) / m_A59; double tmp18 = 0.0; - tmp18 += m_A55 * V[20]; - tmp18 += m_A56 * V[23]; - V[18] = (RHS18 - tmp18) / m_A54; + tmp18 += m_A57 * V[46]; + tmp18 += m_A58 * V[66]; + V[18] = (RHS18 - tmp18) / m_A56; double tmp17 = 0.0; - tmp17 += m_A51 * V[27]; - V[17] = (RHS17 - tmp17) / m_A50; + tmp17 += m_A55 * V[63]; + V[17] = (RHS17 - tmp17) / m_A54; double tmp16 = 0.0; - tmp16 += m_A47 * V[27]; - V[16] = (RHS16 - tmp16) / m_A46; + tmp16 += m_A52 * V[46]; + tmp16 += m_A53 * V[48]; + V[16] = (RHS16 - tmp16) / m_A51; double tmp15 = 0.0; - tmp15 += m_A43 * V[17]; - V[15] = (RHS15 - tmp15) / m_A42; + tmp15 += m_A49 * V[16]; + tmp15 += m_A50 * V[48]; + V[15] = (RHS15 - tmp15) / m_A48; double tmp14 = 0.0; - tmp14 += m_A39 * V[16]; - V[14] = (RHS14 - tmp14) / m_A38; + tmp14 += m_A46 * V[71]; + tmp14 += m_A47 * V[73]; + V[14] = (RHS14 - tmp14) / m_A45; double tmp13 = 0.0; - tmp13 += m_A34 * V[22]; - tmp13 += m_A35 * V[26]; - V[13] = (RHS13 - tmp13) / m_A33; + tmp13 += m_A42 * V[48]; + tmp13 += m_A43 * V[65]; + tmp13 += m_A44 * V[66]; + V[13] = (RHS13 - tmp13) / m_A41; double tmp12 = 0.0; - tmp12 += m_A31 * V[21]; - tmp12 += m_A32 * V[23]; - V[12] = (RHS12 - tmp12) / m_A30; + tmp12 += m_A39 * V[14]; + tmp12 += m_A40 * V[73]; + V[12] = (RHS12 - tmp12) / m_A38; double tmp11 = 0.0; - tmp11 += m_A29 * V[21]; - V[11] = (RHS11 - tmp11) / m_A28; + tmp11 += m_A35 * V[45]; + tmp11 += m_A36 * V[52]; + tmp11 += m_A37 * V[72]; + V[11] = (RHS11 - tmp11) / m_A34; double tmp10 = 0.0; - tmp10 += m_A25 * V[18]; - tmp10 += m_A26 * V[20]; - tmp10 += m_A27 * V[23]; - V[10] = (RHS10 - tmp10) / m_A24; + tmp10 += m_A32 * V[11]; + tmp10 += m_A33 * V[72]; + V[10] = (RHS10 - tmp10) / m_A31; double tmp9 = 0.0; - tmp9 += m_A21 * V[20]; - tmp9 += m_A22 * V[24]; - tmp9 += m_A23 * V[25]; - V[9] = (RHS9 - tmp9) / m_A20; + tmp9 += m_A29 * V[51]; + tmp9 += m_A30 * V[65]; + V[9] = (RHS9 - tmp9) / m_A28; double tmp8 = 0.0; - tmp8 += m_A19 * V[27]; - V[8] = (RHS8 - tmp8) / m_A18; + tmp8 += m_A24 * V[40]; + tmp8 += m_A25 * V[50]; + tmp8 += m_A26 * V[67]; + tmp8 += m_A27 * V[75]; + V[8] = (RHS8 - tmp8) / m_A23; double tmp7 = 0.0; - tmp7 += m_A17 * V[18]; - V[7] = (RHS7 - tmp7) / m_A16; + tmp7 += m_A19 * V[39]; + tmp7 += m_A20 * V[50]; + tmp7 += m_A21 * V[67]; + tmp7 += m_A22 * V[75]; + V[7] = (RHS7 - tmp7) / m_A18; double tmp6 = 0.0; - tmp6 += m_A14 * V[15]; - tmp6 += m_A15 * V[17]; - V[6] = (RHS6 - tmp6) / m_A13; + tmp6 += m_A17 * V[47]; + V[6] = (RHS6 - tmp6) / m_A16; double tmp5 = 0.0; - tmp5 += m_A12 * V[22]; - V[5] = (RHS5 - tmp5) / m_A11; + tmp5 += m_A14 * V[44]; + tmp5 += m_A15 * V[67]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; - tmp4 += m_A10 * V[16]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A11 * V[50]; + tmp4 += m_A12 * V[68]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A7 * V[25]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A9 * V[44]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[24]; + tmp2 += m_A5 * V[38]; + tmp2 += m_A6 * V[39]; + tmp2 += m_A7 * V[40]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[15]; + tmp1 += m_A3 * V[37]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[14]; + tmp0 += m_A1 * V[38]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_6041272373b8603c_178_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// kidniki +static void nl_gcr_43f7ff9bc651cc7a_198_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -9839,978 +13116,1196 @@ double m_A175(0.0); double m_A176(0.0); double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[2]; m_A2 += gt[3]; - m_A2 += gt[4]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 -= go[4] * *cnV[4]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; m_A4 += gt[5]; m_A4 += gt[6]; - m_A6 += go[5]; - m_A5 += go[6]; - double RHS2 = Idr[5]; + m_A6 += go[4]; + m_A5 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; m_A7 += gt[7]; m_A7 += gt[8]; + m_A7 += gt[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; m_A8 += go[7]; + m_A9 += go[8]; double RHS3 = Idr[7]; RHS3 += Idr[8]; - RHS3 -= go[8] * *cnV[8]; - m_A9 += gt[9]; - m_A9 += gt[10]; - m_A9 += gt[11]; - m_A9 += gt[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A9 += gt[15]; - m_A10 += go[9]; - double RHS4 = Idr[9]; - RHS4 += Idr[10]; - RHS4 += Idr[11]; - RHS4 += Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[9] * *cnV[9]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A12 += go[14]; + m_A11 += go[15]; + double RHS4 = Idr[14]; RHS4 += Idr[15]; - RHS4 -= go[10] * *cnV[10]; - RHS4 -= go[11] * *cnV[11]; - RHS4 -= go[12] * *cnV[12]; - RHS4 -= go[13] * *cnV[13]; - RHS4 -= go[14] * *cnV[14]; - RHS4 -= go[15] * *cnV[15]; - m_A11 += gt[16]; - m_A11 += gt[17]; - m_A12 += go[16]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A14 += go[16]; double RHS5 = Idr[16]; RHS5 += Idr[17]; RHS5 -= go[17] * *cnV[17]; - m_A13 += gt[18]; - m_A13 += gt[19]; - m_A14 += go[18]; - double RHS6 = Idr[18]; + m_A15 += gt[18]; + m_A15 += gt[19]; + m_A15 += gt[20]; + m_A16 += go[18]; + double RHS6 = Idr[18]; RHS6 += Idr[19]; + RHS6 += Idr[20]; RHS6 -= go[19] * *cnV[19]; - m_A15 += gt[20]; - m_A15 += gt[21]; - m_A16 += go[20]; - double RHS7 = Idr[20]; - RHS7 += Idr[21]; - RHS7 -= go[21] * *cnV[21]; + RHS6 -= go[20] * *cnV[20]; + m_A17 += gt[21]; m_A17 += gt[22]; m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A17 += gt[26]; + m_A17 += gt[27]; + m_A19 += go[21]; m_A18 += go[22]; - double RHS8 = Idr[22]; - RHS8 += Idr[23]; - RHS8 -= go[23] * *cnV[23]; - m_A19 += gt[24]; - m_A19 += gt[25]; - m_A20 += go[24]; - m_A21 += go[25]; - double RHS9 = Idr[24]; - RHS9 += Idr[25]; - m_A22 += gt[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A23 += go[26]; - m_A23 += go[27]; - double RHS10 = Idr[26]; - RHS10 += Idr[27]; - RHS10 += Idr[28]; - RHS10 += Idr[29]; - RHS10 -= go[28] * *cnV[28]; - RHS10 -= go[29] * *cnV[29]; - m_A24 += gt[30]; - m_A24 += gt[31]; - m_A24 += gt[32]; - m_A24 += gt[33]; - m_A25 += go[30]; + double RHS7 = Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; + RHS7 -= go[25] * *cnV[25]; + RHS7 -= go[26] * *cnV[26]; + RHS7 -= go[27] * *cnV[27]; + m_A20 += gt[28]; + m_A20 += gt[29]; + m_A21 += go[28]; + m_A22 += go[29]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A23 += gt[32]; + m_A24 += go[30]; m_A25 += go[31]; - double RHS11 = Idr[30]; - RHS11 += Idr[31]; - RHS11 += Idr[32]; - RHS11 += Idr[33]; - RHS11 -= go[32] * *cnV[32]; - RHS11 -= go[33] * *cnV[33]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 -= go[32] * *cnV[32]; + m_A26 += gt[33]; m_A26 += gt[34]; - m_A26 += gt[35]; - m_A26 += gt[36]; - m_A26 += gt[37]; - m_A27 += go[34]; - m_A27 += go[35]; - double RHS12 = Idr[34]; - RHS12 += Idr[35]; - RHS12 += Idr[36]; - RHS12 += Idr[37]; - RHS12 -= go[36] * *cnV[36]; - RHS12 -= go[37] * *cnV[37]; + m_A27 += go[33]; + double RHS10 = Idr[33]; + RHS10 += Idr[34]; + RHS10 -= go[34] * *cnV[34]; + m_A28 += gt[35]; + m_A28 += gt[36]; + m_A28 += gt[37]; m_A28 += gt[38]; - m_A28 += gt[39]; - m_A29 += go[38]; - double RHS13 = Idr[38]; - RHS13 += Idr[39]; - RHS13 -= go[39] * *cnV[39]; - m_A30 += gt[40]; - m_A30 += gt[41]; - m_A30 += gt[42]; - m_A31 += go[40]; - double RHS14 = Idr[40]; - RHS14 += Idr[41]; - RHS14 += Idr[42]; - RHS14 -= go[41] * *cnV[41]; - RHS14 -= go[42] * *cnV[42]; - m_A32 += gt[43]; - m_A32 += gt[44]; - m_A32 += gt[45]; - m_A33 += go[43]; - double RHS15 = Idr[43]; - RHS15 += Idr[44]; - RHS15 += Idr[45]; - RHS15 -= go[44] * *cnV[44]; - RHS15 -= go[45] * *cnV[45]; - m_A34 += gt[46]; - m_A34 += gt[47]; - m_A34 += gt[48]; - m_A35 += go[46]; - double RHS16 = Idr[46]; - RHS16 += Idr[47]; - RHS16 += Idr[48]; - RHS16 -= go[47] * *cnV[47]; - RHS16 -= go[48] * *cnV[48]; - m_A36 += gt[49]; - m_A36 += gt[50]; - m_A37 += go[49]; - double RHS17 = Idr[49]; - RHS17 += Idr[50]; - RHS17 -= go[50] * *cnV[50]; - m_A38 += gt[51]; - m_A38 += gt[52]; - m_A38 += gt[53]; - m_A38 += gt[54]; - m_A39 += go[51]; - double RHS18 = Idr[51]; - RHS18 += Idr[52]; - RHS18 += Idr[53]; - RHS18 += Idr[54]; - RHS18 -= go[52] * *cnV[52]; - RHS18 -= go[53] * *cnV[53]; - RHS18 -= go[54] * *cnV[54]; - m_A40 += gt[55]; - m_A40 += gt[56]; - m_A40 += gt[57]; - m_A40 += gt[58]; - m_A40 += gt[59]; - m_A41 += go[55]; - double RHS19 = Idr[55]; - RHS19 += Idr[56]; - RHS19 += Idr[57]; - RHS19 += Idr[58]; - RHS19 += Idr[59]; - RHS19 -= go[56] * *cnV[56]; - RHS19 -= go[57] * *cnV[57]; - RHS19 -= go[58] * *cnV[58]; - RHS19 -= go[59] * *cnV[59]; - m_A42 += gt[60]; - m_A42 += gt[61]; - m_A42 += gt[62]; - m_A42 += gt[63]; - m_A42 += gt[64]; - m_A42 += gt[65]; - m_A42 += gt[66]; - m_A43 += go[60]; - double RHS20 = Idr[60]; - RHS20 += Idr[61]; - RHS20 += Idr[62]; - RHS20 += Idr[63]; - RHS20 += Idr[64]; - RHS20 += Idr[65]; - RHS20 += Idr[66]; - RHS20 -= go[61] * *cnV[61]; - RHS20 -= go[62] * *cnV[62]; - RHS20 -= go[63] * *cnV[63]; - RHS20 -= go[64] * *cnV[64]; - RHS20 -= go[65] * *cnV[65]; - RHS20 -= go[66] * *cnV[66]; - m_A44 += gt[67]; - m_A44 += gt[68]; - m_A44 += gt[69]; - m_A45 += go[67]; - double RHS21 = Idr[67]; - RHS21 += Idr[68]; - RHS21 += Idr[69]; - RHS21 -= go[68] * *cnV[68]; - RHS21 -= go[69] * *cnV[69]; - m_A46 += gt[70]; - m_A46 += gt[71]; - m_A48 += go[70]; - m_A47 += go[71]; - double RHS22 = Idr[70]; - RHS22 += Idr[71]; - m_A49 += gt[72]; - m_A49 += gt[73]; - m_A49 += gt[74]; - m_A51 += go[72]; - m_A50 += go[73]; - double RHS23 = Idr[72]; - RHS23 += Idr[73]; - RHS23 += Idr[74]; - RHS23 -= go[74] * *cnV[74]; - m_A52 += gt[75]; - m_A52 += gt[76]; - m_A52 += gt[77]; - m_A53 += go[75]; - double RHS24 = Idr[75]; - RHS24 += Idr[76]; - RHS24 += Idr[77]; - RHS24 -= go[76] * *cnV[76]; - RHS24 -= go[77] * *cnV[77]; - m_A54 += gt[78]; - m_A54 += gt[79]; - m_A54 += gt[80]; - m_A54 += gt[81]; - m_A55 += go[78]; - m_A55 += go[79]; - m_A56 += go[80]; - double RHS25 = Idr[78]; - RHS25 += Idr[79]; - RHS25 += Idr[80]; - RHS25 += Idr[81]; - RHS25 -= go[81] * *cnV[81]; - m_A60 += gt[82]; - m_A60 += gt[83]; - m_A60 += gt[84]; - m_A59 += go[82]; - m_A58 += go[83]; - m_A57 += go[84]; - double RHS26 = Idr[82]; - RHS26 += Idr[83]; - RHS26 += Idr[84]; - m_A62 += gt[85]; - m_A62 += gt[86]; - m_A63 += go[85]; - m_A64 += go[86]; - double RHS27 = Idr[85]; - RHS27 += Idr[86]; - m_A65 += gt[87]; - m_A65 += gt[88]; - m_A65 += gt[89]; - m_A66 += go[87]; - double RHS28 = Idr[87]; - RHS28 += Idr[88]; - RHS28 += Idr[89]; - RHS28 -= go[88] * *cnV[88]; - RHS28 -= go[89] * *cnV[89]; - m_A67 += gt[90]; - m_A67 += gt[91]; - m_A67 += gt[92]; - m_A69 += go[90]; - m_A68 += go[91]; - double RHS29 = Idr[90]; - RHS29 += Idr[91]; - RHS29 += Idr[92]; - RHS29 -= go[92] * *cnV[92]; - m_A70 += gt[93]; - m_A70 += gt[94]; - m_A72 += go[93]; - m_A71 += go[94]; - double RHS30 = Idr[93]; - RHS30 += Idr[94]; - m_A74 += gt[95]; - m_A74 += gt[96]; - m_A73 += go[95]; - double RHS31 = Idr[95]; - RHS31 += Idr[96]; - RHS31 -= go[96] * *cnV[96]; - m_A82 += gt[97]; - m_A82 += gt[98]; - m_A82 += gt[99]; - m_A82 += gt[100]; - m_A82 += gt[101]; - m_A82 += gt[102]; - m_A82 += gt[103]; - m_A82 += gt[104]; - m_A82 += gt[105]; - m_A82 += gt[106]; - m_A81 += go[97]; - m_A80 += go[98]; - m_A79 += go[99]; - m_A78 += go[100]; - m_A78 += go[101]; - m_A77 += go[102]; - m_A77 += go[103]; - m_A76 += go[104]; - m_A76 += go[105]; - m_A75 += go[106]; - double RHS32 = Idr[97]; - RHS32 += Idr[98]; - RHS32 += Idr[99]; - RHS32 += Idr[100]; - RHS32 += Idr[101]; - RHS32 += Idr[102]; - RHS32 += Idr[103]; - RHS32 += Idr[104]; - RHS32 += Idr[105]; - RHS32 += Idr[106]; - m_A86 += gt[107]; - m_A86 += gt[108]; - m_A86 += gt[109]; - m_A86 += gt[110]; - m_A86 += gt[111]; - m_A86 += gt[112]; - m_A86 += gt[113]; - m_A85 += go[107]; - m_A84 += go[108]; - double RHS33 = Idr[107]; - RHS33 += Idr[108]; - RHS33 += Idr[109]; - RHS33 += Idr[110]; - RHS33 += Idr[111]; - RHS33 += Idr[112]; - RHS33 += Idr[113]; - RHS33 -= go[109] * *cnV[109]; - RHS33 -= go[110] * *cnV[110]; - RHS33 -= go[111] * *cnV[111]; - RHS33 -= go[112] * *cnV[112]; - RHS33 -= go[113] * *cnV[113]; - m_A90 += gt[114]; - m_A90 += gt[115]; - m_A91 += go[114]; - m_A88 += go[115]; - double RHS34 = Idr[114]; - RHS34 += Idr[115]; - m_A94 += gt[116]; - m_A94 += gt[117]; - m_A94 += gt[118]; - m_A94 += gt[119]; - m_A94 += gt[120]; - m_A92 += go[116]; - m_A93 += go[117]; - m_A93 += go[118]; - double RHS35 = Idr[116]; - RHS35 += Idr[117]; - RHS35 += Idr[118]; - RHS35 += Idr[119]; - RHS35 += Idr[120]; - RHS35 -= go[119] * *cnV[119]; - RHS35 -= go[120] * *cnV[120]; - m_A97 += gt[121]; - m_A97 += gt[122]; - m_A98 += go[121]; - m_A96 += go[122]; - double RHS36 = Idr[121]; - RHS36 += Idr[122]; - m_A100 += gt[123]; - m_A100 += gt[124]; - m_A99 += go[123]; - m_A102 += go[124]; - double RHS37 = Idr[123]; - RHS37 += Idr[124]; - m_A105 += gt[125]; - m_A105 += gt[126]; - m_A107 += go[125]; - m_A103 += go[126]; - double RHS38 = Idr[125]; - RHS38 += Idr[126]; - m_A111 += gt[127]; - m_A111 += gt[128]; - m_A111 += gt[129]; - m_A109 += go[127]; - m_A108 += go[128]; - double RHS39 = Idr[127]; - RHS39 += Idr[128]; - RHS39 += Idr[129]; - RHS39 -= go[129] * *cnV[129]; - m_A116 += gt[130]; - m_A116 += gt[131]; - m_A116 += gt[132]; - m_A114 += go[130]; - m_A113 += go[131]; - m_A118 += go[132]; - double RHS40 = Idr[130]; - RHS40 += Idr[131]; - RHS40 += Idr[132]; - m_A120 += gt[133]; - m_A120 += gt[134]; - m_A120 += gt[135]; - m_A120 += gt[136]; - m_A121 += go[133]; - m_A119 += go[134]; - double RHS41 = Idr[133]; - RHS41 += Idr[134]; - RHS41 += Idr[135]; - RHS41 += Idr[136]; - RHS41 -= go[135] * *cnV[135]; - RHS41 -= go[136] * *cnV[136]; - m_A124 += gt[137]; - m_A124 += gt[138]; - m_A123 += go[137]; - m_A122 += go[138]; - double RHS42 = Idr[137]; - RHS42 += Idr[138]; - m_A131 += gt[139]; - m_A131 += gt[140]; - m_A131 += gt[141]; - m_A131 += gt[142]; - m_A131 += gt[143]; - m_A131 += gt[144]; - m_A132 += go[139]; - m_A132 += go[140]; - m_A129 += go[141]; - m_A128 += go[142]; - m_A127 += go[143]; - m_A126 += go[144]; - double RHS43 = Idr[139]; - RHS43 += Idr[140]; - RHS43 += Idr[141]; - RHS43 += Idr[142]; - RHS43 += Idr[143]; - RHS43 += Idr[144]; - m_A141 += gt[145]; - m_A141 += gt[146]; - m_A141 += gt[147]; - m_A141 += gt[148]; - m_A141 += gt[149]; - m_A141 += gt[150]; - m_A141 += gt[151]; - m_A136 += go[145]; - m_A135 += go[146]; - m_A134 += go[147]; - m_A133 += go[148]; - m_A140 += go[149]; - m_A137 += go[150]; - m_A139 += go[151]; - double RHS44 = Idr[145]; - RHS44 += Idr[146]; - RHS44 += Idr[147]; - RHS44 += Idr[148]; - RHS44 += Idr[149]; - RHS44 += Idr[150]; - RHS44 += Idr[151]; - m_A143 += gt[152]; - m_A143 += gt[153]; - m_A143 += gt[154]; - m_A143 += gt[155]; - m_A144 += go[152]; - m_A142 += go[153]; - double RHS45 = Idr[152]; - RHS45 += Idr[153]; - RHS45 += Idr[154]; - RHS45 += Idr[155]; - RHS45 -= go[154] * *cnV[154]; - RHS45 -= go[155] * *cnV[155]; - m_A147 += gt[156]; - m_A147 += gt[157]; - m_A145 += go[156]; - m_A148 += go[157]; - double RHS46 = Idr[156]; - RHS46 += Idr[157]; - m_A155 += gt[158]; - m_A155 += gt[159]; - m_A155 += gt[160]; - m_A155 += gt[161]; - m_A155 += gt[162]; - m_A155 += gt[163]; - m_A150 += go[158]; - m_A151 += go[159]; - m_A154 += go[160]; - m_A154 += go[161]; - double RHS47 = Idr[158]; - RHS47 += Idr[159]; - RHS47 += Idr[160]; - RHS47 += Idr[161]; - RHS47 += Idr[162]; - RHS47 += Idr[163]; - RHS47 -= go[162] * *cnV[162]; - RHS47 -= go[163] * *cnV[163]; - m_A162 += gt[164]; - m_A162 += gt[165]; - m_A162 += gt[166]; - m_A162 += gt[167]; - m_A162 += gt[168]; - m_A163 += go[164]; - m_A159 += go[165]; - m_A160 += go[166]; - m_A158 += go[167]; - m_A157 += go[168]; - double RHS48 = Idr[164]; - RHS48 += Idr[165]; - RHS48 += Idr[166]; - RHS48 += Idr[167]; - RHS48 += Idr[168]; - m_A169 += gt[169]; - m_A169 += gt[170]; - m_A169 += gt[171]; - m_A169 += gt[172]; - m_A167 += go[169]; - m_A164 += go[170]; - m_A165 += go[171]; - double RHS49 = Idr[169]; - RHS49 += Idr[170]; - RHS49 += Idr[171]; - RHS49 += Idr[172]; - RHS49 -= go[172] * *cnV[172]; - m_A177 += gt[173]; - m_A177 += gt[174]; - m_A177 += gt[175]; - m_A177 += gt[176]; - m_A177 += gt[177]; - m_A171 += go[173]; - m_A172 += go[174]; - m_A175 += go[175]; - double RHS50 = Idr[173]; - RHS50 += Idr[174]; - RHS50 += Idr[175]; - RHS50 += Idr[176]; - RHS50 += Idr[177]; - RHS50 -= go[176] * *cnV[176]; - RHS50 -= go[177] * *cnV[177]; + m_A30 += go[35]; + m_A29 += go[36]; + m_A29 += go[37]; + double RHS11 = Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 -= go[38] * *cnV[38]; + m_A31 += gt[39]; + m_A31 += gt[40]; + m_A33 += go[39]; + m_A32 += go[40]; + double RHS12 = Idr[39]; + RHS12 += Idr[40]; + m_A34 += gt[41]; + m_A34 += gt[42]; + m_A34 += gt[43]; + m_A36 += go[41]; + m_A35 += go[42]; + double RHS13 = Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 -= go[43] * *cnV[43]; + m_A37 += gt[44]; + m_A37 += gt[45]; + m_A37 += gt[46]; + m_A38 += go[44]; + m_A39 += go[45]; + double RHS14 = Idr[44]; + RHS14 += Idr[45]; + RHS14 += Idr[46]; + RHS14 -= go[46] * *cnV[46]; + m_A40 += gt[47]; + m_A40 += gt[48]; + m_A40 += gt[49]; + m_A40 += gt[50]; + m_A40 += gt[51]; + m_A42 += go[47]; + m_A41 += go[48]; + m_A41 += go[49]; + double RHS15 = Idr[47]; + RHS15 += Idr[48]; + RHS15 += Idr[49]; + RHS15 += Idr[50]; + RHS15 += Idr[51]; + RHS15 -= go[50] * *cnV[50]; + RHS15 -= go[51] * *cnV[51]; + m_A43 += gt[52]; + m_A43 += gt[53]; + m_A43 += gt[54]; + m_A43 += gt[55]; + m_A44 += go[52]; + double RHS16 = Idr[52]; + RHS16 += Idr[53]; + RHS16 += Idr[54]; + RHS16 += Idr[55]; + RHS16 -= go[53] * *cnV[53]; + RHS16 -= go[54] * *cnV[54]; + RHS16 -= go[55] * *cnV[55]; + m_A45 += gt[56]; + m_A45 += gt[57]; + m_A45 += gt[58]; + m_A45 += gt[59]; + m_A46 += go[56]; + double RHS17 = Idr[56]; + RHS17 += Idr[57]; + RHS17 += Idr[58]; + RHS17 += Idr[59]; + RHS17 -= go[57] * *cnV[57]; + RHS17 -= go[58] * *cnV[58]; + RHS17 -= go[59] * *cnV[59]; + m_A47 += gt[60]; + m_A47 += gt[61]; + m_A47 += gt[62]; + m_A47 += gt[63]; + m_A47 += gt[64]; + m_A49 += go[60]; + m_A49 += go[61]; + m_A48 += go[62]; + double RHS18 = Idr[60]; + RHS18 += Idr[61]; + RHS18 += Idr[62]; + RHS18 += Idr[63]; + RHS18 += Idr[64]; + RHS18 -= go[63] * *cnV[63]; + RHS18 -= go[64] * *cnV[64]; + m_A50 += gt[65]; + m_A50 += gt[66]; + m_A50 += gt[67]; + m_A50 += gt[68]; + m_A50 += gt[69]; + m_A53 += go[65]; + m_A52 += go[66]; + m_A51 += go[67]; + m_A51 += go[68]; + double RHS19 = Idr[65]; + RHS19 += Idr[66]; + RHS19 += Idr[67]; + RHS19 += Idr[68]; + RHS19 += Idr[69]; + RHS19 -= go[69] * *cnV[69]; + m_A54 += gt[70]; + m_A54 += gt[71]; + m_A54 += gt[72]; + m_A54 += gt[73]; + m_A57 += go[70]; + m_A56 += go[71]; + m_A55 += go[72]; + double RHS20 = Idr[70]; + RHS20 += Idr[71]; + RHS20 += Idr[72]; + RHS20 += Idr[73]; + RHS20 -= go[73] * *cnV[73]; + m_A58 += gt[74]; + m_A58 += gt[75]; + m_A58 += gt[76]; + m_A59 += go[74]; + m_A60 += go[75]; + double RHS21 = Idr[74]; + RHS21 += Idr[75]; + RHS21 += Idr[76]; + RHS21 -= go[76] * *cnV[76]; + m_A61 += gt[77]; + m_A61 += gt[78]; + m_A62 += go[77]; + m_A63 += go[78]; + double RHS22 = Idr[77]; + RHS22 += Idr[78]; + m_A64 += gt[79]; + m_A64 += gt[80]; + m_A65 += go[79]; + m_A66 += go[80]; + double RHS23 = Idr[79]; + RHS23 += Idr[80]; + m_A69 += gt[81]; + m_A69 += gt[82]; + m_A69 += gt[83]; + m_A69 += gt[84]; + m_A68 += go[81]; + m_A68 += go[82]; + m_A67 += go[83]; + double RHS24 = Idr[81]; + RHS24 += Idr[82]; + RHS24 += Idr[83]; + RHS24 += Idr[84]; + RHS24 -= go[84] * *cnV[84]; + m_A75 += gt[85]; + m_A75 += gt[86]; + m_A75 += gt[87]; + m_A73 += go[85]; + m_A72 += go[86]; + double RHS25 = Idr[85]; + RHS25 += Idr[86]; + RHS25 += Idr[87]; + RHS25 -= go[87] * *cnV[87]; + m_A79 += gt[88]; + m_A79 += gt[89]; + m_A79 += gt[90]; + m_A78 += go[88]; + m_A77 += go[89]; + double RHS26 = Idr[88]; + RHS26 += Idr[89]; + RHS26 += Idr[90]; + RHS26 -= go[90] * *cnV[90]; + m_A83 += gt[91]; + m_A83 += gt[92]; + m_A83 += gt[93]; + m_A83 += gt[94]; + m_A83 += gt[95]; + m_A83 += gt[96]; + m_A82 += go[91]; + m_A82 += go[92]; + m_A81 += go[93]; + double RHS27 = Idr[91]; + RHS27 += Idr[92]; + RHS27 += Idr[93]; + RHS27 += Idr[94]; + RHS27 += Idr[95]; + RHS27 += Idr[96]; + RHS27 -= go[94] * *cnV[94]; + RHS27 -= go[95] * *cnV[95]; + RHS27 -= go[96] * *cnV[96]; + m_A93 += gt[97]; + m_A93 += gt[98]; + m_A93 += gt[99]; + m_A87 += go[97]; + m_A89 += go[98]; + m_A88 += go[99]; + double RHS28 = Idr[97]; + RHS28 += Idr[98]; + RHS28 += Idr[99]; + m_A102 += gt[100]; + m_A102 += gt[101]; + m_A102 += gt[102]; + m_A99 += go[100]; + m_A98 += go[101]; + m_A97 += go[102]; + double RHS29 = Idr[100]; + RHS29 += Idr[101]; + RHS29 += Idr[102]; + m_A110 += gt[103]; + m_A110 += gt[104]; + m_A110 += gt[105]; + m_A110 += gt[106]; + m_A107 += go[103]; + m_A106 += go[104]; + m_A106 += go[105]; + double RHS30 = Idr[103]; + RHS30 += Idr[104]; + RHS30 += Idr[105]; + RHS30 += Idr[106]; + RHS30 -= go[106] * *cnV[106]; + m_A116 += gt[107]; + m_A116 += gt[108]; + m_A116 += gt[109]; + m_A116 += gt[110]; + m_A116 += gt[111]; + m_A116 += gt[112]; + m_A114 += go[107]; + m_A115 += go[108]; + m_A115 += go[109]; + m_A117 += go[110]; + m_A117 += go[111]; + m_A113 += go[112]; + double RHS31 = Idr[107]; + RHS31 += Idr[108]; + RHS31 += Idr[109]; + RHS31 += Idr[110]; + RHS31 += Idr[111]; + RHS31 += Idr[112]; + m_A120 += gt[113]; + m_A120 += gt[114]; + m_A119 += go[113]; + double RHS32 = Idr[113]; + RHS32 += Idr[114]; + RHS32 -= go[114] * *cnV[114]; + m_A123 += gt[115]; + m_A123 += gt[116]; + m_A122 += go[115]; + m_A124 += go[116]; + double RHS33 = Idr[115]; + RHS33 += Idr[116]; + m_A126 += gt[117]; + m_A126 += gt[118]; + m_A126 += gt[119]; + m_A126 += gt[120]; + m_A126 += gt[121]; + m_A126 += gt[122]; + m_A126 += gt[123]; + m_A125 += go[117]; + m_A127 += go[118]; + double RHS34 = Idr[117]; + RHS34 += Idr[118]; + RHS34 += Idr[119]; + RHS34 += Idr[120]; + RHS34 += Idr[121]; + RHS34 += Idr[122]; + RHS34 += Idr[123]; + RHS34 -= go[119] * *cnV[119]; + RHS34 -= go[120] * *cnV[120]; + RHS34 -= go[121] * *cnV[121]; + RHS34 -= go[122] * *cnV[122]; + RHS34 -= go[123] * *cnV[123]; + m_A129 += gt[124]; + m_A129 += gt[125]; + m_A128 += go[124]; + double RHS35 = Idr[124]; + RHS35 += Idr[125]; + RHS35 -= go[125] * *cnV[125]; + m_A133 += gt[126]; + m_A133 += gt[127]; + m_A133 += gt[128]; + m_A133 += gt[129]; + m_A133 += gt[130]; + m_A133 += gt[131]; + m_A132 += go[126]; + m_A135 += go[127]; + m_A131 += go[128]; + double RHS36 = Idr[126]; + RHS36 += Idr[127]; + RHS36 += Idr[128]; + RHS36 += Idr[129]; + RHS36 += Idr[130]; + RHS36 += Idr[131]; + RHS36 -= go[129] * *cnV[129]; + RHS36 -= go[130] * *cnV[130]; + RHS36 -= go[131] * *cnV[131]; + m_A139 += gt[132]; + m_A139 += gt[133]; + m_A139 += gt[134]; + m_A139 += gt[135]; + m_A139 += gt[136]; + m_A139 += gt[137]; + m_A136 += go[132]; + m_A137 += go[133]; + m_A141 += go[134]; + m_A138 += go[135]; + double RHS37 = Idr[132]; + RHS37 += Idr[133]; + RHS37 += Idr[134]; + RHS37 += Idr[135]; + RHS37 += Idr[136]; + RHS37 += Idr[137]; + RHS37 -= go[136] * *cnV[136]; + RHS37 -= go[137] * *cnV[137]; + m_A149 += gt[138]; + m_A149 += gt[139]; + m_A149 += gt[140]; + m_A149 += gt[141]; + m_A149 += gt[142]; + m_A149 += gt[143]; + m_A145 += go[138]; + m_A144 += go[139]; + m_A142 += go[140]; + m_A143 += go[141]; + m_A152 += go[142]; + double RHS38 = Idr[138]; + RHS38 += Idr[139]; + RHS38 += Idr[140]; + RHS38 += Idr[141]; + RHS38 += Idr[142]; + RHS38 += Idr[143]; + RHS38 -= go[143] * *cnV[143]; + m_A157 += gt[144]; + m_A157 += gt[145]; + m_A157 += gt[146]; + m_A157 += gt[147]; + m_A157 += gt[148]; + m_A154 += go[144]; + m_A153 += go[145]; + m_A155 += go[146]; + m_A155 += go[147]; + double RHS39 = Idr[144]; + RHS39 += Idr[145]; + RHS39 += Idr[146]; + RHS39 += Idr[147]; + RHS39 += Idr[148]; + RHS39 -= go[148] * *cnV[148]; + m_A164 += gt[149]; + m_A164 += gt[150]; + m_A164 += gt[151]; + m_A164 += gt[152]; + m_A164 += gt[153]; + m_A162 += go[149]; + m_A165 += go[150]; + m_A165 += go[151]; + m_A161 += go[152]; + m_A163 += go[153]; + double RHS40 = Idr[149]; + RHS40 += Idr[150]; + RHS40 += Idr[151]; + RHS40 += Idr[152]; + RHS40 += Idr[153]; + m_A174 += gt[154]; + m_A174 += gt[155]; + m_A174 += gt[156]; + m_A167 += go[154]; + m_A166 += go[155]; + m_A171 += go[156]; + double RHS41 = Idr[154]; + RHS41 += Idr[155]; + RHS41 += Idr[156]; + m_A182 += gt[157]; + m_A182 += gt[158]; + m_A182 += gt[159]; + m_A177 += go[157]; + m_A178 += go[158]; + m_A179 += go[159]; + double RHS42 = Idr[157]; + RHS42 += Idr[158]; + RHS42 += Idr[159]; + m_A197 += gt[160]; + m_A197 += gt[161]; + m_A197 += gt[162]; + m_A197 += gt[163]; + m_A197 += gt[164]; + m_A197 += gt[165]; + m_A197 += gt[166]; + m_A197 += gt[167]; + m_A192 += go[160]; + m_A185 += go[161]; + m_A186 += go[162]; + m_A184 += go[163]; + m_A194 += go[164]; + m_A194 += go[165]; + double RHS43 = Idr[160]; + RHS43 += Idr[161]; + RHS43 += Idr[162]; + RHS43 += Idr[163]; + RHS43 += Idr[164]; + RHS43 += Idr[165]; + RHS43 += Idr[166]; + RHS43 += Idr[167]; + RHS43 -= go[166] * *cnV[166]; + RHS43 -= go[167] * *cnV[167]; const double f0 = 1.0 / m_A0; - const double f0_26 = -f0 * m_A57; - m_A60 += m_A1 * f0_26; - RHS26 += f0_26 * RHS0; + const double f0_33 = -f0 * m_A122; + m_A123 += m_A1 * f0_33; + RHS33 += f0_33 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_26 = -f1 * m_A58; - m_A60 += m_A3 * f1_26; - RHS26 += f1_26 * RHS1; + const double f1_34 = -f1 * m_A125; + m_A127 += m_A3 * f1_34; + RHS34 += f1_34 * RHS1; + const double f1_40 = -f1 * m_A161; + m_A164 += m_A3 * f1_40; + RHS40 += f1_40 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_26 = -f2 * m_A59; - m_A60 += m_A5 * f2_26; - m_A61 += m_A6 * f2_26; - RHS26 += f2_26 * RHS2; - const double f2_34 = -f2 * m_A88; - m_A89 += m_A5 * f2_34; - m_A90 += m_A6 * f2_34; - RHS34 += f2_34 * RHS2; + const double f2_40 = -f2 * m_A162; + m_A164 += m_A5 * f2_40; + m_A165 += m_A6 * f2_40; + RHS40 += f2_40 * RHS2; + const double f2_43 = -f2 * m_A184; + m_A194 += m_A5 * f2_43; + m_A197 += m_A6 * f2_43; + RHS43 += f2_43 * RHS2; const double f3 = 1.0 / m_A7; - const double f3_36 = -f3 * m_A96; - m_A97 += m_A8 * f3_36; - RHS36 += f3_36 * RHS3; - const double f3_48 = -f3 * m_A157; - m_A160 += m_A8 * f3_48; - RHS48 += f3_48 * RHS3; - const double f4 = 1.0 / m_A9; - const double f4_50 = -f4 * m_A171; - m_A173 += m_A10 * f4_50; - RHS50 += f4_50 * RHS4; - const double f5 = 1.0 / m_A11; - const double f5_44 = -f5 * m_A133; - m_A141 += m_A12 * f5_44; - RHS44 += f5_44 * RHS5; - const double f6 = 1.0 / m_A13; - const double f6_44 = -f6 * m_A134; - m_A141 += m_A14 * f6_44; - RHS44 += f6_44 * RHS6; - const double f7 = 1.0 / m_A15; - const double f7_44 = -f7 * m_A135; - m_A141 += m_A16 * f7_44; - RHS44 += f7_44 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_44 = -f8 * m_A136; - m_A141 += m_A18 * f8_44; - RHS44 += f8_44 * RHS8; - const double f9 = 1.0 / m_A19; - const double f9_32 = -f9 * m_A75; - m_A82 += m_A20 * f9_32; - m_A83 += m_A21 * f9_32; - RHS32 += f9_32 * RHS9; - const double f9_44 = -f9 * m_A137; - m_A138 += m_A20 * f9_44; - m_A141 += m_A21 * f9_44; - RHS44 += f9_44 * RHS9; - const double f10 = 1.0 / m_A22; - const double f10_32 = -f10 * m_A76; - m_A82 += m_A23 * f10_32; - RHS32 += f10_32 * RHS10; - const double f11 = 1.0 / m_A24; - const double f11_32 = -f11 * m_A77; - m_A82 += m_A25 * f11_32; - RHS32 += f11_32 * RHS11; - const double f12 = 1.0 / m_A26; - const double f12_32 = -f12 * m_A78; - m_A82 += m_A27 * f12_32; - RHS32 += f12_32 * RHS12; - const double f13 = 1.0 / m_A28; - const double f13_31 = -f13 * m_A73; - m_A74 += m_A29 * f13_31; - RHS31 += f13_31 * RHS13; - const double f13_43 = -f13 * m_A126; - m_A129 += m_A29 * f13_43; - RHS43 += f13_43 * RHS13; - const double f14 = 1.0 / m_A30; - const double f14_32 = -f14 * m_A79; - m_A82 += m_A31 * f14_32; - RHS32 += f14_32 * RHS14; - const double f15 = 1.0 / m_A32; - const double f15_35 = -f15 * m_A92; - m_A94 += m_A33 * f15_35; - RHS35 += f15_35 * RHS15; - const double f16 = 1.0 / m_A34; - const double f16_32 = -f16 * m_A80; - m_A82 += m_A35 * f16_32; - RHS32 += f16_32 * RHS16; - const double f17 = 1.0 / m_A36; - const double f17_32 = -f17 * m_A81; - m_A82 += m_A37 * f17_32; - RHS32 += f17_32 * RHS17; - const double f18 = 1.0 / m_A38; - const double f18_42 = -f18 * m_A122; - m_A124 += m_A39 * f18_42; - RHS42 += f18_42 * RHS18; - const double f19 = 1.0 / m_A40; - const double f19_33 = -f19 * m_A84; - m_A86 += m_A41 * f19_33; - RHS33 += f19_33 * RHS19; - const double f20 = 1.0 / m_A42; - const double f20_47 = -f20 * m_A150; - m_A153 += m_A43 * f20_47; - RHS47 += f20_47 * RHS20; - const double f21 = 1.0 / m_A44; - const double f21_45 = -f21 * m_A142; - m_A144 += m_A45 * f21_45; - RHS45 += f21_45 * RHS21; - const double f21_48 = -f21 * m_A158; - m_A162 += m_A45 * f21_48; - RHS48 += f21_48 * RHS21; - const double f22 = 1.0 / m_A46; - const double f22_33 = -f22 * m_A85; - m_A86 += m_A47 * f22_33; - m_A87 += m_A48 * f22_33; - RHS33 += f22_33 * RHS22; - const double f22_39 = -f22 * m_A108; - m_A110 += m_A47 * f22_39; - m_A111 += m_A48 * f22_39; - RHS39 += f22_39 * RHS22; - const double f23 = 1.0 / m_A49; - const double f23_37 = -f23 * m_A99; - m_A100 += m_A50 * f23_37; - m_A101 += m_A51 * f23_37; - RHS37 += f23_37 * RHS23; - const double f23_38 = -f23 * m_A103; - m_A104 += m_A50 * f23_38; - m_A105 += m_A51 * f23_38; + const double f3_37 = -f3 * m_A136; + m_A138 += m_A8 * f3_37; + m_A139 += m_A9 * f3_37; + RHS37 += f3_37 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_37 = -f4 * m_A137; + m_A139 += m_A11 * f4_37; + m_A140 += m_A12 * f4_37; + RHS37 += f4_37 * RHS4; + const double f4_38 = -f4 * m_A142; + m_A148 += m_A11 * f4_38; + m_A149 += m_A12 * f4_38; + RHS38 += f4_38 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_42 = -f5 * m_A177; + m_A182 += m_A14 * f5_42; + RHS42 += f5_42 * RHS5; + const double f6 = 1.0 / m_A15; + const double f6_36 = -f6 * m_A131; + m_A133 += m_A16 * f6_36; + RHS36 += f6_36 * RHS6; + const double f7 = 1.0 / m_A17; + const double f7_36 = -f7 * m_A132; + m_A134 += m_A18 * f7_36; + m_A135 += m_A19 * f7_36; + RHS36 += f7_36 * RHS7; + const double f8 = 1.0 / m_A20; + const double f8_27 = -f8 * m_A81; + m_A83 += m_A21 * f8_27; + m_A86 += m_A22 * f8_27; + RHS27 += f8_27 * RHS8; + const double f8_43 = -f8 * m_A185; + m_A187 += m_A21 * f8_43; + m_A197 += m_A22 * f8_43; + RHS43 += f8_43 * RHS8; + const double f9 = 1.0 / m_A23; + const double f9_31 = -f9 * m_A113; + m_A116 += m_A24 * f9_31; + m_A118 += m_A25 * f9_31; + RHS31 += f9_31 * RHS9; + const double f9_43 = -f9 * m_A186; + m_A191 += m_A24 * f9_43; + m_A197 += m_A25 * f9_43; + RHS43 += f9_43 * RHS9; + const double f10 = 1.0 / m_A26; + const double f10_31 = -f10 * m_A114; + m_A116 += m_A27 * f10_31; + RHS31 += f10_31 * RHS10; + const double f11 = 1.0 / m_A28; + const double f11_31 = -f11 * m_A115; + m_A116 += m_A29 * f11_31; + m_A117 += m_A30 * f11_31; + RHS31 += f11_31 * RHS11; + const double f11_39 = -f11 * m_A153; + m_A155 += m_A29 * f11_39; + m_A157 += m_A30 * f11_39; + RHS39 += f11_39 * RHS11; + const double f12 = 1.0 / m_A31; + const double f12_38 = -f12 * m_A143; + m_A149 += m_A32 * f12_38; + m_A150 += m_A33 * f12_38; + RHS38 += f12_38 * RHS12; + const double f12_39 = -f12 * m_A154; + m_A156 += m_A32 * f12_39; + m_A157 += m_A33 * f12_39; + RHS39 += f12_39 * RHS12; + const double f13 = 1.0 / m_A34; + const double f13_37 = -f13 * m_A138; + m_A139 += m_A35 * f13_37; + m_A141 += m_A36 * f13_37; + RHS37 += f13_37 * RHS13; + const double f13_41 = -f13 * m_A166; + m_A171 += m_A35 * f13_41; + m_A174 += m_A36 * f13_41; + RHS41 += f13_41 * RHS13; + const double f14 = 1.0 / m_A37; + const double f14_24 = -f14 * m_A67; + m_A69 += m_A38 * f14_24; + m_A71 += m_A39 * f14_24; + RHS24 += f14_24 * RHS14; + const double f14_28 = -f14 * m_A87; + m_A90 += m_A38 * f14_28; + m_A93 += m_A39 * f14_28; + RHS28 += f14_28 * RHS14; + const double f15 = 1.0 / m_A40; + const double f15_24 = -f15 * m_A68; + m_A69 += m_A41 * f15_24; + m_A70 += m_A42 * f15_24; + RHS24 += f15_24 * RHS15; + const double f15_25 = -f15 * m_A72; + m_A74 += m_A41 * f15_25; + m_A75 += m_A42 * f15_25; + RHS25 += f15_25 * RHS15; + const double f16 = 1.0 / m_A43; + const double f16_25 = -f16 * m_A73; + m_A75 += m_A44 * f16_25; + RHS25 += f16_25 * RHS16; + const double f17 = 1.0 / m_A45; + const double f17_26 = -f17 * m_A77; + m_A79 += m_A46 * f17_26; + RHS26 += f17_26 * RHS17; + const double f18 = 1.0 / m_A47; + const double f18_26 = -f18 * m_A78; + m_A79 += m_A48 * f18_26; + m_A80 += m_A49 * f18_26; + RHS26 += f18_26 * RHS18; + const double f18_30 = -f18 * m_A106; + m_A108 += m_A48 * f18_30; + m_A110 += m_A49 * f18_30; + RHS30 += f18_30 * RHS18; + const double f19 = 1.0 / m_A50; + const double f19_27 = -f19 * m_A82; + m_A83 += m_A51 * f19_27; + m_A84 += m_A52 * f19_27; + m_A85 += m_A53 * f19_27; + RHS27 += f19_27 * RHS19; + const double f19_28 = -f19 * m_A88; + m_A92 += m_A51 * f19_28; + m_A93 += m_A52 * f19_28; + m_A94 += m_A53 * f19_28; + RHS28 += f19_28 * RHS19; + const double f19_29 = -f19 * m_A97; + m_A100 += m_A51 * f19_29; + m_A101 += m_A52 * f19_29; + m_A102 += m_A53 * f19_29; + RHS29 += f19_29 * RHS19; + const double f20 = 1.0 / m_A54; + const double f20_28 = -f20 * m_A89; + m_A93 += m_A55 * f20_28; + m_A94 += m_A56 * f20_28; + m_A95 += m_A57 * f20_28; + RHS28 += f20_28 * RHS20; + const double f20_29 = -f20 * m_A98; + m_A101 += m_A55 * f20_29; + m_A102 += m_A56 * f20_29; + m_A104 += m_A57 * f20_29; + RHS29 += f20_29 * RHS20; + const double f20_41 = -f20 * m_A167; + m_A168 += m_A55 * f20_41; + m_A169 += m_A56 * f20_41; + m_A174 += m_A57 * f20_41; + RHS41 += f20_41 * RHS20; + const double f21 = 1.0 / m_A58; + const double f21_29 = -f21 * m_A99; + m_A102 += m_A59 * f21_29; + m_A103 += m_A60 * f21_29; + RHS29 += f21_29 * RHS21; + const double f21_30 = -f21 * m_A107; + m_A109 += m_A59 * f21_30; + m_A110 += m_A60 * f21_30; + RHS30 += f21_30 * RHS21; + const double f22 = 1.0 / m_A61; + const double f22_32 = -f22 * m_A119; + m_A120 += m_A62 * f22_32; + m_A121 += m_A63 * f22_32; + RHS32 += f22_32 * RHS22; + const double f22_38 = -f22 * m_A144; + m_A146 += m_A62 * f22_38; + m_A149 += m_A63 * f22_38; + RHS38 += f22_38 * RHS22; + const double f23 = 1.0 / m_A64; + const double f23_35 = -f23 * m_A128; + m_A129 += m_A65 * f23_35; + m_A130 += m_A66 * f23_35; + RHS35 += f23_35 * RHS23; + const double f23_38 = -f23 * m_A145; + m_A147 += m_A65 * f23_38; + m_A149 += m_A66 * f23_38; RHS38 += f23_38 * RHS23; - const double f24 = 1.0 / m_A52; - const double f24_48 = -f24 * m_A159; - m_A162 += m_A53 * f24_48; - RHS48 += f24_48 * RHS24; - const double f25 = 1.0 / m_A54; - const double f25_35 = -f25 * m_A93; - m_A94 += m_A55 * f25_35; - m_A95 += m_A56 * f25_35; - RHS35 += f25_35 * RHS25; - const double f25_40 = -f25 * m_A113; - m_A115 += m_A55 * f25_40; - m_A116 += m_A56 * f25_40; - RHS40 += f25_40 * RHS25; - const double f26 = 1.0 / m_A60; - const double f26_34 = -f26 * m_A89; - m_A90 += m_A61 * f26_34; - RHS34 += f26_34 * RHS26; - const double f27 = 1.0 / m_A62; - const double f27_39 = -f27 * m_A109; - m_A111 += m_A63 * f27_39; - m_A112 += m_A64 * f27_39; - RHS39 += f27_39 * RHS27; - const double f27_49 = -f27 * m_A164; - m_A166 += m_A63 * f27_49; - m_A169 += m_A64 * f27_49; - RHS49 += f27_49 * RHS27; - const double f28 = 1.0 / m_A65; - const double f28_41 = -f28 * m_A119; - m_A121 += m_A66 * f28_41; + const double f24 = 1.0 / m_A69; + const double f24_25 = -f24 * m_A74; + m_A75 += m_A70 * f24_25; + m_A76 += m_A71 * f24_25; + RHS25 += f24_25 * RHS24; + const double f24_28 = -f24 * m_A90; + m_A91 += m_A70 * f24_28; + m_A93 += m_A71 * f24_28; + RHS28 += f24_28 * RHS24; + const double f25 = 1.0 / m_A75; + const double f25_28 = -f25 * m_A91; + m_A93 += m_A76 * f25_28; + RHS28 += f25_28 * RHS25; + const double f26 = 1.0 / m_A79; + const double f26_30 = -f26 * m_A108; + m_A110 += m_A80 * f26_30; + RHS30 += f26_30 * RHS26; + const double f27 = 1.0 / m_A83; + const double f27_28 = -f27 * m_A92; + m_A93 += m_A84 * f27_28; + m_A94 += m_A85 * f27_28; + m_A96 += m_A86 * f27_28; + RHS28 += f27_28 * RHS27; + const double f27_29 = -f27 * m_A100; + m_A101 += m_A84 * f27_29; + m_A102 += m_A85 * f27_29; + m_A105 += m_A86 * f27_29; + RHS29 += f27_29 * RHS27; + const double f27_43 = -f27 * m_A187; + m_A188 += m_A84 * f27_43; + m_A189 += m_A85 * f27_43; + m_A197 += m_A86 * f27_43; + RHS43 += f27_43 * RHS27; + const double f28 = 1.0 / m_A93; + const double f28_29 = -f28 * m_A101; + m_A102 += m_A94 * f28_29; + m_A104 += m_A95 * f28_29; + m_A105 += m_A96 * f28_29; + RHS29 += f28_29 * RHS28; + const double f28_41 = -f28 * m_A168; + m_A169 += m_A94 * f28_41; + m_A174 += m_A95 * f28_41; + m_A176 += m_A96 * f28_41; RHS41 += f28_41 * RHS28; - const double f28_43 = -f28 * m_A127; - m_A131 += m_A66 * f28_43; + const double f28_43 = -f28 * m_A188; + m_A189 += m_A94 * f28_43; + m_A195 += m_A95 * f28_43; + m_A197 += m_A96 * f28_43; RHS43 += f28_43 * RHS28; - const double f29 = 1.0 / m_A67; - const double f29_40 = -f29 * m_A114; - m_A116 += m_A68 * f29_40; - m_A117 += m_A69 * f29_40; - RHS40 += f29_40 * RHS29; - const double f29_46 = -f29 * m_A145; - m_A146 += m_A68 * f29_46; - m_A147 += m_A69 * f29_46; - RHS46 += f29_46 * RHS29; - const double f30 = 1.0 / m_A70; - const double f30_42 = -f30 * m_A123; - m_A124 += m_A71 * f30_42; - m_A125 += m_A72 * f30_42; - RHS42 += f30_42 * RHS30; - const double f30_43 = -f30 * m_A128; - m_A130 += m_A71 * f30_43; - m_A131 += m_A72 * f30_43; + const double f29 = 1.0 / m_A102; + const double f29_30 = -f29 * m_A109; + m_A110 += m_A103 * f29_30; + m_A111 += m_A104 * f29_30; + m_A112 += m_A105 * f29_30; + RHS30 += f29_30 * RHS29; + const double f29_41 = -f29 * m_A169; + m_A170 += m_A103 * f29_41; + m_A174 += m_A104 * f29_41; + m_A176 += m_A105 * f29_41; + RHS41 += f29_41 * RHS29; + const double f29_43 = -f29 * m_A189; + m_A190 += m_A103 * f29_43; + m_A195 += m_A104 * f29_43; + m_A197 += m_A105 * f29_43; + RHS43 += f29_43 * RHS29; + const double f30 = 1.0 / m_A110; + const double f30_41 = -f30 * m_A170; + m_A174 += m_A111 * f30_41; + m_A176 += m_A112 * f30_41; + RHS41 += f30_41 * RHS30; + const double f30_43 = -f30 * m_A190; + m_A195 += m_A111 * f30_43; + m_A197 += m_A112 * f30_43; RHS43 += f30_43 * RHS30; - const double f31 = 1.0 / m_A74; - const double f31_43 = -f31 * m_A129; + const double f31 = 1.0 / m_A116; + const double f31_39 = -f31 * m_A155; + m_A157 += m_A117 * f31_39; + m_A160 += m_A118 * f31_39; + RHS39 += f31_39 * RHS31; + const double f31_43 = -f31 * m_A191; + m_A193 += m_A117 * f31_43; + m_A197 += m_A118 * f31_43; RHS43 += f31_43 * RHS31; - const double f32 = 1.0 / m_A82; - const double f32_44 = -f32 * m_A138; - m_A141 += m_A83 * f32_44; - RHS44 += f32_44 * RHS32; - const double f33 = 1.0 / m_A86; - const double f33_39 = -f33 * m_A110; - m_A111 += m_A87 * f33_39; - RHS39 += f33_39 * RHS33; - const double f34 = 1.0 / m_A90; - const double f34_44 = -f34 * m_A139; - m_A141 += m_A91 * f34_44; - RHS44 += f34_44 * RHS34; - const double f35 = 1.0 / m_A94; - const double f35_40 = -f35 * m_A115; - m_A116 += m_A95 * f35_40; - RHS40 += f35_40 * RHS35; - const double f36 = 1.0 / m_A97; - const double f36_44 = -f36 * m_A140; - m_A141 += m_A98 * f36_44; - RHS44 += f36_44 * RHS36; - const double f36_48 = -f36 * m_A160; - m_A161 += m_A98 * f36_48; - RHS48 += f36_48 * RHS36; - const double f37 = 1.0 / m_A100; - const double f37_38 = -f37 * m_A104; - m_A105 += m_A101 * f37_38; - m_A106 += m_A102 * f37_38; + const double f32 = 1.0 / m_A120; + const double f32_38 = -f32 * m_A146; + m_A149 += m_A121 * f32_38; + RHS38 += f32_38 * RHS32; + const double f33 = 1.0 / m_A123; + const double f33_40 = -f33 * m_A163; + m_A164 += m_A124 * f33_40; + RHS40 += f33_40 * RHS33; + const double f34 = 1.0 / m_A126; + const double f34_43 = -f34 * m_A192; + m_A194 += m_A127 * f34_43; + RHS43 += f34_43 * RHS34; + const double f35 = 1.0 / m_A129; + const double f35_38 = -f35 * m_A147; + m_A149 += m_A130 * f35_38; + RHS38 += f35_38 * RHS35; + const double f36 = 1.0 / m_A133; + const double f36_42 = -f36 * m_A178; + m_A179 += m_A134 * f36_42; + m_A182 += m_A135 * f36_42; + RHS42 += f36_42 * RHS36; + const double f37 = 1.0 / m_A139; + const double f37_38 = -f37 * m_A148; + m_A149 += m_A140 * f37_38; + m_A151 += m_A141 * f37_38; RHS38 += f37_38 * RHS37; - const double f37_47 = -f37 * m_A151; - m_A152 += m_A101 * f37_47; - m_A155 += m_A102 * f37_47; - RHS47 += f37_47 * RHS37; - const double f38 = 1.0 / m_A105; - const double f38_47 = -f38 * m_A152; - m_A155 += m_A106 * f38_47; - m_A156 += m_A107 * f38_47; - RHS47 += f38_47 * RHS38; - const double f38_49 = -f38 * m_A165; - m_A168 += m_A106 * f38_49; - m_A169 += m_A107 * f38_49; - RHS49 += f38_49 * RHS38; - const double f39 = 1.0 / m_A111; - const double f39_49 = -f39 * m_A166; - m_A169 += m_A112 * f39_49; - RHS49 += f39_49 * RHS39; - const double f40 = 1.0 / m_A116; - const double f40_46 = -f40 * m_A146; - m_A147 += m_A117 * f40_46; - m_A149 += m_A118 * f40_46; - RHS46 += f40_46 * RHS40; - const double f40_50 = -f40 * m_A172; - m_A174 += m_A117 * f40_50; - m_A177 += m_A118 * f40_50; - RHS50 += f40_50 * RHS40; - const double f41 = 1.0 / m_A120; - const double f41_47 = -f41 * m_A153; - m_A154 += m_A121 * f41_47; - RHS47 += f41_47 * RHS41; - const double f42 = 1.0 / m_A124; - const double f42_43 = -f42 * m_A130; - m_A131 += m_A125 * f42_43; + const double f37_41 = -f37 * m_A171; + m_A172 += m_A140 * f37_41; + m_A174 += m_A141 * f37_41; + RHS41 += f37_41 * RHS37; + const double f38 = 1.0 / m_A149; + const double f38_39 = -f38 * m_A156; + m_A157 += m_A150 * f38_39; + m_A158 += m_A151 * f38_39; + m_A159 += m_A152 * f38_39; + RHS39 += f38_39 * RHS38; + const double f38_41 = -f38 * m_A172; + m_A173 += m_A150 * f38_41; + m_A174 += m_A151 * f38_41; + m_A175 += m_A152 * f38_41; + RHS41 += f38_41 * RHS38; + const double f38_42 = -f38 * m_A179; + m_A180 += m_A150 * f38_42; + m_A181 += m_A151 * f38_42; + m_A182 += m_A152 * f38_42; + RHS42 += f38_42 * RHS38; + const double f39 = 1.0 / m_A157; + const double f39_41 = -f39 * m_A173; + m_A174 += m_A158 * f39_41; + m_A175 += m_A159 * f39_41; + m_A176 += m_A160 * f39_41; + RHS41 += f39_41 * RHS39; + const double f39_42 = -f39 * m_A180; + m_A181 += m_A158 * f39_42; + m_A182 += m_A159 * f39_42; + m_A183 += m_A160 * f39_42; + RHS42 += f39_42 * RHS39; + const double f39_43 = -f39 * m_A193; + m_A195 += m_A158 * f39_43; + m_A196 += m_A159 * f39_43; + m_A197 += m_A160 * f39_43; + RHS43 += f39_43 * RHS39; + const double f40 = 1.0 / m_A164; + const double f40_43 = -f40 * m_A194; + m_A197 += m_A165 * f40_43; + RHS43 += f40_43 * RHS40; + const double f41 = 1.0 / m_A174; + const double f41_42 = -f41 * m_A181; + m_A182 += m_A175 * f41_42; + m_A183 += m_A176 * f41_42; + RHS42 += f41_42 * RHS41; + const double f41_43 = -f41 * m_A195; + m_A196 += m_A175 * f41_43; + m_A197 += m_A176 * f41_43; + RHS43 += f41_43 * RHS41; + const double f42 = 1.0 / m_A182; + const double f42_43 = -f42 * m_A196; + m_A197 += m_A183 * f42_43; RHS43 += f42_43 * RHS42; - const double f43 = 1.0 / m_A131; - const double f43_47 = -f43 * m_A154; - m_A155 += m_A132 * f43_47; - RHS47 += f43_47 * RHS43; - const double f44 = 1.0 / m_A141; - const double f44_48 = -f44 * m_A161; - RHS48 += f44_48 * RHS44; - const double f45 = 1.0 / m_A143; - const double f45_50 = -f45 * m_A173; - m_A175 += m_A144 * f45_50; - RHS50 += f45_50 * RHS45; - const double f46 = 1.0 / m_A147; - const double f46_49 = -f46 * m_A167; - m_A169 += m_A148 * f46_49; - m_A170 += m_A149 * f46_49; - RHS49 += f46_49 * RHS46; - const double f46_50 = -f46 * m_A174; - m_A176 += m_A148 * f46_50; - m_A177 += m_A149 * f46_50; - RHS50 += f46_50 * RHS46; - const double f47 = 1.0 / m_A155; - const double f47_49 = -f47 * m_A168; - m_A169 += m_A156 * f47_49; - RHS49 += f47_49 * RHS47; - const double f48 = 1.0 / m_A162; - const double f48_50 = -f48 * m_A175; - m_A177 += m_A163 * f48_50; - RHS50 += f48_50 * RHS48; - const double f49 = 1.0 / m_A169; - const double f49_50 = -f49 * m_A176; - m_A177 += m_A170 * f49_50; - RHS50 += f49_50 * RHS49; - V[50] = RHS50 / m_A177; - double tmp49 = 0.0; - tmp49 += m_A170 * V[50]; - V[49] = (RHS49 - tmp49) / m_A169; - double tmp48 = 0.0; - tmp48 += m_A163 * V[50]; - V[48] = (RHS48 - tmp48) / m_A162; - double tmp47 = 0.0; - tmp47 += m_A156 * V[49]; - V[47] = (RHS47 - tmp47) / m_A155; - double tmp46 = 0.0; - tmp46 += m_A148 * V[49]; - tmp46 += m_A149 * V[50]; - V[46] = (RHS46 - tmp46) / m_A147; - double tmp45 = 0.0; - tmp45 += m_A144 * V[48]; - V[45] = (RHS45 - tmp45) / m_A143; - double tmp44 = 0.0; - V[44] = (RHS44 - tmp44) / m_A141; - double tmp43 = 0.0; - tmp43 += m_A132 * V[47]; - V[43] = (RHS43 - tmp43) / m_A131; + V[43] = RHS43 / m_A197; double tmp42 = 0.0; - tmp42 += m_A125 * V[43]; - V[42] = (RHS42 - tmp42) / m_A124; + tmp42 += m_A183 * V[43]; + V[42] = (RHS42 - tmp42) / m_A182; double tmp41 = 0.0; - tmp41 += m_A121 * V[43]; - V[41] = (RHS41 - tmp41) / m_A120; + tmp41 += m_A175 * V[42]; + tmp41 += m_A176 * V[43]; + V[41] = (RHS41 - tmp41) / m_A174; double tmp40 = 0.0; - tmp40 += m_A117 * V[46]; - tmp40 += m_A118 * V[50]; - V[40] = (RHS40 - tmp40) / m_A116; + tmp40 += m_A165 * V[43]; + V[40] = (RHS40 - tmp40) / m_A164; double tmp39 = 0.0; - tmp39 += m_A112 * V[49]; - V[39] = (RHS39 - tmp39) / m_A111; + tmp39 += m_A158 * V[41]; + tmp39 += m_A159 * V[42]; + tmp39 += m_A160 * V[43]; + V[39] = (RHS39 - tmp39) / m_A157; double tmp38 = 0.0; - tmp38 += m_A106 * V[47]; - tmp38 += m_A107 * V[49]; - V[38] = (RHS38 - tmp38) / m_A105; + tmp38 += m_A150 * V[39]; + tmp38 += m_A151 * V[41]; + tmp38 += m_A152 * V[42]; + V[38] = (RHS38 - tmp38) / m_A149; double tmp37 = 0.0; - tmp37 += m_A101 * V[38]; - tmp37 += m_A102 * V[47]; - V[37] = (RHS37 - tmp37) / m_A100; + tmp37 += m_A140 * V[38]; + tmp37 += m_A141 * V[41]; + V[37] = (RHS37 - tmp37) / m_A139; double tmp36 = 0.0; - tmp36 += m_A98 * V[44]; - V[36] = (RHS36 - tmp36) / m_A97; + tmp36 += m_A134 * V[38]; + tmp36 += m_A135 * V[42]; + V[36] = (RHS36 - tmp36) / m_A133; double tmp35 = 0.0; - tmp35 += m_A95 * V[40]; - V[35] = (RHS35 - tmp35) / m_A94; + tmp35 += m_A130 * V[38]; + V[35] = (RHS35 - tmp35) / m_A129; double tmp34 = 0.0; - tmp34 += m_A91 * V[44]; - V[34] = (RHS34 - tmp34) / m_A90; + tmp34 += m_A127 * V[40]; + V[34] = (RHS34 - tmp34) / m_A126; double tmp33 = 0.0; - tmp33 += m_A87 * V[39]; - V[33] = (RHS33 - tmp33) / m_A86; + tmp33 += m_A124 * V[40]; + V[33] = (RHS33 - tmp33) / m_A123; double tmp32 = 0.0; - tmp32 += m_A83 * V[44]; - V[32] = (RHS32 - tmp32) / m_A82; + tmp32 += m_A121 * V[38]; + V[32] = (RHS32 - tmp32) / m_A120; double tmp31 = 0.0; - V[31] = (RHS31 - tmp31) / m_A74; + tmp31 += m_A117 * V[39]; + tmp31 += m_A118 * V[43]; + V[31] = (RHS31 - tmp31) / m_A116; double tmp30 = 0.0; - tmp30 += m_A71 * V[42]; - tmp30 += m_A72 * V[43]; - V[30] = (RHS30 - tmp30) / m_A70; + tmp30 += m_A111 * V[41]; + tmp30 += m_A112 * V[43]; + V[30] = (RHS30 - tmp30) / m_A110; double tmp29 = 0.0; - tmp29 += m_A68 * V[40]; - tmp29 += m_A69 * V[46]; - V[29] = (RHS29 - tmp29) / m_A67; + tmp29 += m_A103 * V[30]; + tmp29 += m_A104 * V[41]; + tmp29 += m_A105 * V[43]; + V[29] = (RHS29 - tmp29) / m_A102; double tmp28 = 0.0; - tmp28 += m_A66 * V[43]; - V[28] = (RHS28 - tmp28) / m_A65; + tmp28 += m_A94 * V[29]; + tmp28 += m_A95 * V[41]; + tmp28 += m_A96 * V[43]; + V[28] = (RHS28 - tmp28) / m_A93; double tmp27 = 0.0; - tmp27 += m_A63 * V[39]; - tmp27 += m_A64 * V[49]; - V[27] = (RHS27 - tmp27) / m_A62; + tmp27 += m_A84 * V[28]; + tmp27 += m_A85 * V[29]; + tmp27 += m_A86 * V[43]; + V[27] = (RHS27 - tmp27) / m_A83; double tmp26 = 0.0; - tmp26 += m_A61 * V[34]; - V[26] = (RHS26 - tmp26) / m_A60; + tmp26 += m_A80 * V[30]; + V[26] = (RHS26 - tmp26) / m_A79; double tmp25 = 0.0; - tmp25 += m_A55 * V[35]; - tmp25 += m_A56 * V[40]; - V[25] = (RHS25 - tmp25) / m_A54; + tmp25 += m_A76 * V[28]; + V[25] = (RHS25 - tmp25) / m_A75; double tmp24 = 0.0; - tmp24 += m_A53 * V[48]; - V[24] = (RHS24 - tmp24) / m_A52; + tmp24 += m_A70 * V[25]; + tmp24 += m_A71 * V[28]; + V[24] = (RHS24 - tmp24) / m_A69; double tmp23 = 0.0; - tmp23 += m_A50 * V[37]; - tmp23 += m_A51 * V[38]; - V[23] = (RHS23 - tmp23) / m_A49; + tmp23 += m_A65 * V[35]; + tmp23 += m_A66 * V[38]; + V[23] = (RHS23 - tmp23) / m_A64; double tmp22 = 0.0; - tmp22 += m_A47 * V[33]; - tmp22 += m_A48 * V[39]; - V[22] = (RHS22 - tmp22) / m_A46; + tmp22 += m_A62 * V[32]; + tmp22 += m_A63 * V[38]; + V[22] = (RHS22 - tmp22) / m_A61; double tmp21 = 0.0; - tmp21 += m_A45 * V[48]; - V[21] = (RHS21 - tmp21) / m_A44; + tmp21 += m_A59 * V[29]; + tmp21 += m_A60 * V[30]; + V[21] = (RHS21 - tmp21) / m_A58; double tmp20 = 0.0; - tmp20 += m_A43 * V[41]; - V[20] = (RHS20 - tmp20) / m_A42; + tmp20 += m_A55 * V[28]; + tmp20 += m_A56 * V[29]; + tmp20 += m_A57 * V[41]; + V[20] = (RHS20 - tmp20) / m_A54; double tmp19 = 0.0; - tmp19 += m_A41 * V[33]; - V[19] = (RHS19 - tmp19) / m_A40; + tmp19 += m_A51 * V[27]; + tmp19 += m_A52 * V[28]; + tmp19 += m_A53 * V[29]; + V[19] = (RHS19 - tmp19) / m_A50; double tmp18 = 0.0; - tmp18 += m_A39 * V[42]; - V[18] = (RHS18 - tmp18) / m_A38; + tmp18 += m_A48 * V[26]; + tmp18 += m_A49 * V[30]; + V[18] = (RHS18 - tmp18) / m_A47; double tmp17 = 0.0; - tmp17 += m_A37 * V[32]; - V[17] = (RHS17 - tmp17) / m_A36; + tmp17 += m_A46 * V[26]; + V[17] = (RHS17 - tmp17) / m_A45; double tmp16 = 0.0; - tmp16 += m_A35 * V[32]; - V[16] = (RHS16 - tmp16) / m_A34; + tmp16 += m_A44 * V[25]; + V[16] = (RHS16 - tmp16) / m_A43; double tmp15 = 0.0; - tmp15 += m_A33 * V[35]; - V[15] = (RHS15 - tmp15) / m_A32; + tmp15 += m_A41 * V[24]; + tmp15 += m_A42 * V[25]; + V[15] = (RHS15 - tmp15) / m_A40; double tmp14 = 0.0; - tmp14 += m_A31 * V[32]; - V[14] = (RHS14 - tmp14) / m_A30; + tmp14 += m_A38 * V[24]; + tmp14 += m_A39 * V[28]; + V[14] = (RHS14 - tmp14) / m_A37; double tmp13 = 0.0; - tmp13 += m_A29 * V[31]; - V[13] = (RHS13 - tmp13) / m_A28; + tmp13 += m_A35 * V[37]; + tmp13 += m_A36 * V[41]; + V[13] = (RHS13 - tmp13) / m_A34; double tmp12 = 0.0; - tmp12 += m_A27 * V[32]; - V[12] = (RHS12 - tmp12) / m_A26; + tmp12 += m_A32 * V[38]; + tmp12 += m_A33 * V[39]; + V[12] = (RHS12 - tmp12) / m_A31; double tmp11 = 0.0; - tmp11 += m_A25 * V[32]; - V[11] = (RHS11 - tmp11) / m_A24; + tmp11 += m_A29 * V[31]; + tmp11 += m_A30 * V[39]; + V[11] = (RHS11 - tmp11) / m_A28; double tmp10 = 0.0; - tmp10 += m_A23 * V[32]; - V[10] = (RHS10 - tmp10) / m_A22; + tmp10 += m_A27 * V[31]; + V[10] = (RHS10 - tmp10) / m_A26; double tmp9 = 0.0; - tmp9 += m_A20 * V[32]; - tmp9 += m_A21 * V[44]; - V[9] = (RHS9 - tmp9) / m_A19; + tmp9 += m_A24 * V[31]; + tmp9 += m_A25 * V[43]; + V[9] = (RHS9 - tmp9) / m_A23; double tmp8 = 0.0; - tmp8 += m_A18 * V[44]; - V[8] = (RHS8 - tmp8) / m_A17; + tmp8 += m_A21 * V[27]; + tmp8 += m_A22 * V[43]; + V[8] = (RHS8 - tmp8) / m_A20; double tmp7 = 0.0; - tmp7 += m_A16 * V[44]; - V[7] = (RHS7 - tmp7) / m_A15; + tmp7 += m_A18 * V[38]; + tmp7 += m_A19 * V[42]; + V[7] = (RHS7 - tmp7) / m_A17; double tmp6 = 0.0; - tmp6 += m_A14 * V[44]; - V[6] = (RHS6 - tmp6) / m_A13; + tmp6 += m_A16 * V[36]; + V[6] = (RHS6 - tmp6) / m_A15; double tmp5 = 0.0; - tmp5 += m_A12 * V[44]; - V[5] = (RHS5 - tmp5) / m_A11; + tmp5 += m_A14 * V[42]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A10 * V[45]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A11 * V[37]; + tmp4 += m_A12 * V[38]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A8 * V[36]; + tmp3 += m_A8 * V[13]; + tmp3 += m_A9 * V[37]; V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A5 * V[26]; - tmp2 += m_A6 * V[34]; + tmp2 += m_A5 * V[40]; + tmp2 += m_A6 * V[43]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[26]; + tmp1 += m_A3 * V[40]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[26]; + tmp0 += m_A1 * V[33]; V[0] = (RHS0 - tmp0) / m_A0; } -// solarq -static void nl_gcr_62612f71055b8fd4_303_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// gamemachine +static void nl_gcr_491f95430bfdfd05_19_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[15]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[16] * *cnV[16]; + RHS5 -= go[17] * *cnV[17]; + m_A18 += gt[18]; + m_A18 += gt[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A17 += go[18]; + m_A16 += go[19]; + m_A15 += go[20]; + m_A14 += go[21]; + m_A13 += go[22]; + m_A12 += go[23]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[24] * *cnV[24]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A12; + m_A18 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A13; + m_A18 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A14; + m_A18 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A15; + m_A18 += m_A7 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_6 = -f4 * m_A16; + m_A18 += m_A9 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_6 = -f5 * m_A17; + m_A18 += m_A11 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A18; + double tmp5 = 0.0; + tmp5 += m_A11 * V[6]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[6]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[6]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[6]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// sspeedr +static void nl_gcr_4a8e2b707bbac8a6_95_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -10910,679 +14405,7029 @@ double m_A92(0.0); double m_A93(0.0); double m_A94(0.0); - double m_A95(0.0); - double m_A96(0.0); - double m_A97(0.0); - double m_A98(0.0); - double m_A99(0.0); - double m_A100(0.0); - double m_A101(0.0); - double m_A102(0.0); - double m_A103(0.0); - double m_A104(0.0); - double m_A105(0.0); - double m_A106(0.0); - double m_A107(0.0); - double m_A108(0.0); - double m_A109(0.0); - double m_A110(0.0); - double m_A111(0.0); - double m_A112(0.0); - double m_A113(0.0); - double m_A114(0.0); - double m_A115(0.0); - double m_A116(0.0); - double m_A117(0.0); - double m_A118(0.0); - double m_A119(0.0); - double m_A120(0.0); - double m_A121(0.0); - double m_A122(0.0); - double m_A123(0.0); - double m_A124(0.0); - double m_A125(0.0); - double m_A126(0.0); - double m_A127(0.0); - double m_A128(0.0); - double m_A129(0.0); - double m_A130(0.0); - double m_A131(0.0); - double m_A132(0.0); - double m_A133(0.0); - double m_A134(0.0); - double m_A135(0.0); - double m_A136(0.0); - double m_A137(0.0); - double m_A138(0.0); - double m_A139(0.0); - double m_A140(0.0); - double m_A141(0.0); - double m_A142(0.0); - double m_A143(0.0); - double m_A144(0.0); - double m_A145(0.0); - double m_A146(0.0); - double m_A147(0.0); - double m_A148(0.0); - double m_A149(0.0); - double m_A150(0.0); - double m_A151(0.0); - double m_A152(0.0); - double m_A153(0.0); - double m_A154(0.0); - double m_A155(0.0); - double m_A156(0.0); - double m_A157(0.0); - double m_A158(0.0); - double m_A159(0.0); - double m_A160(0.0); - double m_A161(0.0); - double m_A162(0.0); - double m_A163(0.0); - double m_A164(0.0); - double m_A165(0.0); - double m_A166(0.0); - double m_A167(0.0); - double m_A168(0.0); - double m_A169(0.0); - double m_A170(0.0); - double m_A171(0.0); - double m_A172(0.0); - double m_A173(0.0); - double m_A174(0.0); - double m_A175(0.0); - double m_A176(0.0); - double m_A177(0.0); - double m_A178(0.0); - double m_A179(0.0); - double m_A180(0.0); - double m_A181(0.0); - double m_A182(0.0); - double m_A183(0.0); - double m_A184(0.0); - double m_A185(0.0); - double m_A186(0.0); - double m_A187(0.0); - double m_A188(0.0); - double m_A189(0.0); - double m_A190(0.0); - double m_A191(0.0); - double m_A192(0.0); - double m_A193(0.0); - double m_A194(0.0); - double m_A195(0.0); - double m_A196(0.0); - double m_A197(0.0); - double m_A198(0.0); - double m_A199(0.0); - double m_A200(0.0); - double m_A201(0.0); - double m_A202(0.0); - double m_A203(0.0); - double m_A204(0.0); - double m_A205(0.0); - double m_A206(0.0); - double m_A207(0.0); - double m_A208(0.0); - double m_A209(0.0); - double m_A210(0.0); - double m_A211(0.0); - double m_A212(0.0); - double m_A213(0.0); - double m_A214(0.0); - double m_A215(0.0); - double m_A216(0.0); - double m_A217(0.0); - double m_A218(0.0); - double m_A219(0.0); - double m_A220(0.0); - double m_A221(0.0); - double m_A222(0.0); - double m_A223(0.0); - double m_A224(0.0); - double m_A225(0.0); - double m_A226(0.0); - double m_A227(0.0); - double m_A228(0.0); - double m_A229(0.0); - double m_A230(0.0); - double m_A231(0.0); - double m_A232(0.0); - double m_A233(0.0); - double m_A234(0.0); - double m_A235(0.0); - double m_A236(0.0); - double m_A237(0.0); - double m_A238(0.0); - double m_A239(0.0); - double m_A240(0.0); - double m_A241(0.0); - double m_A242(0.0); - double m_A243(0.0); - double m_A244(0.0); - double m_A245(0.0); - double m_A246(0.0); - double m_A247(0.0); - double m_A248(0.0); - double m_A249(0.0); - double m_A250(0.0); - double m_A251(0.0); - double m_A252(0.0); - double m_A253(0.0); - double m_A254(0.0); - double m_A255(0.0); - double m_A256(0.0); - double m_A257(0.0); - double m_A258(0.0); - double m_A259(0.0); - double m_A260(0.0); - double m_A261(0.0); - double m_A262(0.0); - double m_A263(0.0); - double m_A264(0.0); - double m_A265(0.0); - double m_A266(0.0); - double m_A267(0.0); - double m_A268(0.0); - double m_A269(0.0); - double m_A270(0.0); - double m_A271(0.0); - double m_A272(0.0); - double m_A273(0.0); - double m_A274(0.0); - double m_A275(0.0); - double m_A276(0.0); - double m_A277(0.0); - double m_A278(0.0); - double m_A279(0.0); - double m_A280(0.0); - double m_A281(0.0); - double m_A282(0.0); - double m_A283(0.0); - double m_A284(0.0); - double m_A285(0.0); - double m_A286(0.0); - double m_A287(0.0); - double m_A288(0.0); - double m_A289(0.0); - double m_A290(0.0); - double m_A291(0.0); - double m_A292(0.0); - double m_A293(0.0); - double m_A294(0.0); - double m_A295(0.0); - double m_A296(0.0); - double m_A297(0.0); - double m_A298(0.0); - double m_A299(0.0); - double m_A300(0.0); - double m_A301(0.0); - double m_A302(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; - m_A0 += gt[7]; - m_A0 += gt[8]; - m_A0 += gt[9]; - m_A0 += gt[10]; - m_A0 += gt[11]; - m_A0 += gt[12]; - m_A0 += gt[13]; - m_A2 += go[0]; - m_A1 += go[1]; - m_A1 += go[2]; - m_A0 += go[3]; - m_A0 += go[4]; - m_A0 += go[5]; - m_A0 += go[6]; - m_A3 += go[7]; - m_A3 += go[8]; + m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; - RHS0 += Idr[7]; - RHS0 += Idr[8]; - RHS0 += Idr[9]; - RHS0 += Idr[10]; - RHS0 += Idr[11]; - RHS0 += Idr[12]; - RHS0 += Idr[13]; - RHS0 -= go[9] * *cnV[9]; - RHS0 -= go[10] * *cnV[10]; - RHS0 -= go[11] * *cnV[11]; - RHS0 -= go[12] * *cnV[12]; - RHS0 -= go[13] * *cnV[13]; - m_A4 += gt[14]; - m_A4 += gt[15]; - m_A4 += gt[16]; - m_A4 += gt[17]; - m_A4 += gt[18]; - m_A4 += gt[19]; - m_A4 += gt[20]; - m_A4 += gt[21]; - m_A4 += gt[22]; - m_A4 += gt[23]; - m_A4 += gt[24]; - m_A4 += gt[25]; - m_A4 += gt[26]; - m_A4 += gt[27]; - m_A4 += go[14]; - m_A4 += go[15]; - m_A4 += go[16]; - m_A4 += go[17]; - m_A5 += go[18]; - m_A5 += go[19]; - m_A5 += go[20]; - m_A5 += go[21]; - m_A6 += go[22]; - double RHS1 = Idr[14]; - RHS1 += Idr[15]; - RHS1 += Idr[16]; - RHS1 += Idr[17]; - RHS1 += Idr[18]; - RHS1 += Idr[19]; - RHS1 += Idr[20]; - RHS1 += Idr[21]; - RHS1 += Idr[22]; - RHS1 += Idr[23]; - RHS1 += Idr[24]; - RHS1 += Idr[25]; - RHS1 += Idr[26]; - RHS1 += Idr[27]; - RHS1 -= go[23] * *cnV[23]; - RHS1 -= go[24] * *cnV[24]; - RHS1 -= go[25] * *cnV[25]; - RHS1 -= go[26] * *cnV[26]; - RHS1 -= go[27] * *cnV[27]; - m_A7 += gt[28]; - m_A7 += gt[29]; - m_A7 += gt[30]; - m_A7 += gt[31]; - m_A7 += gt[32]; - m_A7 += gt[33]; - m_A7 += gt[34]; - m_A7 += gt[35]; - m_A8 += go[28]; - m_A8 += go[29]; - m_A9 += go[30]; - m_A9 += go[31]; - m_A9 += go[32]; - m_A10 += go[33]; - m_A10 += go[34]; - m_A10 += go[35]; - double RHS2 = Idr[28]; - RHS2 += Idr[29]; - RHS2 += Idr[30]; - RHS2 += Idr[31]; - RHS2 += Idr[32]; - RHS2 += Idr[33]; - RHS2 += Idr[34]; - RHS2 += Idr[35]; - m_A11 += gt[36]; - m_A11 += gt[37]; - m_A11 += gt[38]; - m_A11 += gt[39]; - m_A11 += gt[40]; - m_A12 += go[36]; - m_A12 += go[37]; - m_A13 += go[38]; - m_A13 += go[39]; - double RHS3 = Idr[36]; - RHS3 += Idr[37]; - RHS3 += Idr[38]; - RHS3 += Idr[39]; - RHS3 += Idr[40]; - RHS3 -= go[40] * *cnV[40]; - m_A14 += gt[41]; - m_A14 += gt[42]; - m_A14 += gt[43]; - m_A14 += gt[44]; - m_A14 += gt[45]; - m_A14 += gt[46]; - m_A14 += gt[47]; - m_A14 += gt[48]; - m_A14 += gt[49]; - m_A14 += gt[50]; - m_A14 += gt[51]; - m_A14 += gt[52]; - m_A14 += gt[53]; - m_A14 += gt[54]; - m_A14 += go[41]; - m_A14 += go[42]; - m_A14 += go[43]; - m_A14 += go[44]; - m_A15 += go[45]; - m_A15 += go[46]; - m_A15 += go[47]; - m_A15 += go[48]; - m_A16 += go[49]; - double RHS4 = Idr[41]; - RHS4 += Idr[42]; - RHS4 += Idr[43]; - RHS4 += Idr[44]; - RHS4 += Idr[45]; - RHS4 += Idr[46]; - RHS4 += Idr[47]; - RHS4 += Idr[48]; - RHS4 += Idr[49]; - RHS4 += Idr[50]; - RHS4 += Idr[51]; - RHS4 += Idr[52]; - RHS4 += Idr[53]; - RHS4 += Idr[54]; - RHS4 -= go[50] * *cnV[50]; - RHS4 -= go[51] * *cnV[51]; - RHS4 -= go[52] * *cnV[52]; - RHS4 -= go[53] * *cnV[53]; - RHS4 -= go[54] * *cnV[54]; - m_A17 += gt[55]; - m_A17 += gt[56]; - m_A17 += gt[57]; - m_A17 += gt[58]; - m_A17 += gt[59]; - m_A17 += gt[60]; - m_A17 += gt[61]; - m_A17 += gt[62]; - m_A17 += gt[63]; - m_A17 += gt[64]; - m_A17 += gt[65]; - m_A17 += gt[66]; - m_A17 += gt[67]; - m_A17 += gt[68]; - m_A19 += go[55]; - m_A18 += go[56]; - m_A18 += go[57]; - m_A17 += go[58]; - m_A17 += go[59]; - m_A17 += go[60]; - m_A17 += go[61]; - m_A20 += go[62]; - m_A20 += go[63]; - double RHS5 = Idr[55]; - RHS5 += Idr[56]; - RHS5 += Idr[57]; - RHS5 += Idr[58]; - RHS5 += Idr[59]; - RHS5 += Idr[60]; - RHS5 += Idr[61]; - RHS5 += Idr[62]; - RHS5 += Idr[63]; - RHS5 += Idr[64]; - RHS5 += Idr[65]; - RHS5 += Idr[66]; - RHS5 += Idr[67]; - RHS5 += Idr[68]; - RHS5 -= go[64] * *cnV[64]; - RHS5 -= go[65] * *cnV[65]; - RHS5 -= go[66] * *cnV[66]; - RHS5 -= go[67] * *cnV[67]; - RHS5 -= go[68] * *cnV[68]; - m_A21 += gt[69]; - m_A21 += gt[70]; - m_A21 += gt[71]; - m_A21 += gt[72]; - m_A22 += go[69]; - double RHS6 = Idr[69]; - RHS6 += Idr[70]; - RHS6 += Idr[71]; - RHS6 += Idr[72]; - RHS6 -= go[70] * *cnV[70]; - RHS6 -= go[71] * *cnV[71]; - RHS6 -= go[72] * *cnV[72]; - m_A23 += gt[73]; - m_A23 += gt[74]; - m_A23 += gt[75]; - m_A23 += gt[76]; - m_A23 += gt[77]; - m_A23 += gt[78]; - m_A23 += gt[79]; - m_A23 += gt[80]; - m_A24 += go[73]; - m_A24 += go[74]; - m_A25 += go[75]; - m_A25 += go[76]; - m_A25 += go[77]; - m_A26 += go[78]; - m_A26 += go[79]; - m_A26 += go[80]; - double RHS7 = Idr[73]; - RHS7 += Idr[74]; - RHS7 += Idr[75]; - RHS7 += Idr[76]; - RHS7 += Idr[77]; - RHS7 += Idr[78]; - RHS7 += Idr[79]; - RHS7 += Idr[80]; - m_A27 += gt[81]; - m_A27 += gt[82]; - m_A27 += gt[83]; - m_A27 += gt[84]; - m_A27 += gt[85]; - m_A27 += gt[86]; - m_A27 += gt[87]; - m_A27 += gt[88]; - m_A27 += gt[89]; - m_A27 += gt[90]; - m_A27 += gt[91]; - m_A27 += gt[92]; - m_A29 += go[81]; - m_A28 += go[82]; - m_A28 += go[83]; - m_A27 += go[84]; - m_A27 += go[85]; - m_A27 += go[86]; - m_A27 += go[87]; - double RHS8 = Idr[81]; - RHS8 += Idr[82]; - RHS8 += Idr[83]; - RHS8 += Idr[84]; - RHS8 += Idr[85]; - RHS8 += Idr[86]; - RHS8 += Idr[87]; - RHS8 += Idr[88]; - RHS8 += Idr[89]; - RHS8 += Idr[90]; - RHS8 += Idr[91]; - RHS8 += Idr[92]; - RHS8 -= go[88] * *cnV[88]; - RHS8 -= go[89] * *cnV[89]; - RHS8 -= go[90] * *cnV[90]; - RHS8 -= go[91] * *cnV[91]; - RHS8 -= go[92] * *cnV[92]; - m_A30 += gt[93]; - m_A30 += gt[94]; - m_A30 += gt[95]; - m_A30 += gt[96]; - m_A30 += gt[97]; - m_A30 += gt[98]; - m_A30 += gt[99]; - m_A30 += gt[100]; - m_A33 += go[93]; - m_A32 += go[94]; - m_A32 += go[95]; - m_A31 += go[96]; - m_A31 += go[97]; - double RHS9 = Idr[93]; - RHS9 += Idr[94]; - RHS9 += Idr[95]; - RHS9 += Idr[96]; - RHS9 += Idr[97]; - RHS9 += Idr[98]; - RHS9 += Idr[99]; - RHS9 += Idr[100]; - RHS9 -= go[98] * *cnV[98]; - RHS9 -= go[99] * *cnV[99]; - RHS9 -= go[100] * *cnV[100]; - m_A34 += gt[101]; - m_A34 += gt[102]; - m_A34 += gt[103]; - m_A34 += gt[104]; - m_A34 += gt[105]; - m_A34 += gt[106]; - m_A34 += gt[107]; - m_A34 += gt[108]; - m_A34 += gt[109]; - m_A34 += gt[110]; - m_A34 += gt[111]; - m_A34 += gt[112]; - m_A36 += go[101]; - m_A35 += go[102]; - m_A35 += go[103]; - m_A34 += go[104]; - m_A34 += go[105]; - m_A34 += go[106]; - m_A34 += go[107]; - double RHS10 = Idr[101]; - RHS10 += Idr[102]; - RHS10 += Idr[103]; - RHS10 += Idr[104]; - RHS10 += Idr[105]; - RHS10 += Idr[106]; - RHS10 += Idr[107]; - RHS10 += Idr[108]; - RHS10 += Idr[109]; - RHS10 += Idr[110]; - RHS10 += Idr[111]; - RHS10 += Idr[112]; - RHS10 -= go[108] * *cnV[108]; - RHS10 -= go[109] * *cnV[109]; - RHS10 -= go[110] * *cnV[110]; - RHS10 -= go[111] * *cnV[111]; - RHS10 -= go[112] * *cnV[112]; - m_A37 += gt[113]; - m_A37 += gt[114]; - m_A37 += gt[115]; - m_A37 += gt[116]; - m_A37 += gt[117]; - m_A38 += go[113]; - m_A38 += go[114]; - m_A39 += go[115]; - m_A39 += go[116]; - double RHS11 = Idr[113]; - RHS11 += Idr[114]; - RHS11 += Idr[115]; - RHS11 += Idr[116]; - RHS11 += Idr[117]; - RHS11 -= go[117] * *cnV[117]; - m_A40 += gt[118]; - m_A40 += gt[119]; - m_A40 += gt[120]; - m_A40 += gt[121]; - m_A40 += gt[122]; - m_A40 += gt[123]; - m_A42 += go[118]; - m_A41 += go[119]; - m_A41 += go[120]; - m_A43 += go[121]; - m_A43 += go[122]; - double RHS12 = Idr[118]; - RHS12 += Idr[119]; - RHS12 += Idr[120]; - RHS12 += Idr[121]; - RHS12 += Idr[122]; - RHS12 += Idr[123]; - RHS12 -= go[123] * *cnV[123]; - m_A44 += gt[124]; - m_A44 += gt[125]; - m_A44 += gt[126]; - m_A44 += gt[127]; - m_A44 += gt[128]; - m_A44 += gt[129]; - m_A44 += gt[130]; - m_A45 += go[124]; - m_A46 += go[125]; - double RHS13 = Idr[124]; - RHS13 += Idr[125]; - RHS13 += Idr[126]; - RHS13 += Idr[127]; - RHS13 += Idr[128]; - RHS13 += Idr[129]; - RHS13 += Idr[130]; - RHS13 -= go[126] * *cnV[126]; - RHS13 -= go[127] * *cnV[127]; - RHS13 -= go[128] * *cnV[128]; - RHS13 -= go[129] * *cnV[129]; - RHS13 -= go[130] * *cnV[130]; - m_A47 += gt[131]; - m_A47 += gt[132]; - m_A47 += gt[133]; - m_A47 += gt[134]; - m_A48 += go[131]; - double RHS14 = Idr[131]; - RHS14 += Idr[132]; - RHS14 += Idr[133]; - RHS14 += Idr[134]; - RHS14 -= go[132] * *cnV[132]; - RHS14 -= go[133] * *cnV[133]; - RHS14 -= go[134] * *cnV[134]; - m_A49 += gt[135]; - m_A49 += gt[136]; - m_A50 += go[135]; - double RHS15 = Idr[135]; - RHS15 += Idr[136]; - RHS15 -= go[136] * *cnV[136]; - m_A51 += gt[137]; - m_A51 += gt[138]; - m_A51 += gt[139]; - m_A51 += gt[140]; - m_A51 += gt[141]; - m_A51 += gt[142]; - m_A51 += gt[143]; - m_A52 += go[137]; - double RHS16 = Idr[137]; - RHS16 += Idr[138]; - RHS16 += Idr[139]; - RHS16 += Idr[140]; - RHS16 += Idr[141]; - RHS16 += Idr[142]; - RHS16 += Idr[143]; - RHS16 -= go[138] * *cnV[138]; - RHS16 -= go[139] * *cnV[139]; - RHS16 -= go[140] * *cnV[140]; - RHS16 -= go[141] * *cnV[141]; - RHS16 -= go[142] * *cnV[142]; - RHS16 -= go[143] * *cnV[143]; - m_A53 += gt[144]; - m_A53 += gt[145]; - m_A53 += gt[146]; - m_A53 += gt[147]; - m_A53 += gt[148]; - m_A53 += gt[149]; - m_A53 += gt[150]; - m_A54 += go[144]; - m_A55 += go[145]; - double RHS17 = Idr[144]; - RHS17 += Idr[145]; - RHS17 += Idr[146]; - RHS17 += Idr[147]; - RHS17 += Idr[148]; - RHS17 += Idr[149]; - RHS17 += Idr[150]; - RHS17 -= go[146] * *cnV[146]; - RHS17 -= go[147] * *cnV[147]; - RHS17 -= go[148] * *cnV[148]; - RHS17 -= go[149] * *cnV[149]; - RHS17 -= go[150] * *cnV[150]; - m_A56 += gt[151]; - m_A56 += gt[152]; - m_A56 += gt[153]; - m_A57 += go[151]; - double RHS18 = Idr[151]; - RHS18 += Idr[152]; - RHS18 += Idr[153]; - RHS18 -= go[152] * *cnV[152]; - RHS18 -= go[153] * *cnV[153]; - m_A58 += gt[154]; - m_A58 += gt[155]; - m_A58 += gt[156]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A6 += gt[17]; + m_A6 += gt[18]; + m_A6 += gt[19]; + m_A7 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A9 += go[20]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A12 += gt[26]; + m_A12 += gt[27]; + m_A13 += go[24]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + m_A14 += gt[28]; + m_A14 += gt[29]; + m_A14 += gt[30]; + m_A14 += gt[31]; + m_A15 += go[28]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 -= go[29] * *cnV[29]; + RHS7 -= go[30] * *cnV[30]; + RHS7 -= go[31] * *cnV[31]; + m_A16 += gt[32]; + m_A16 += gt[33]; + m_A17 += go[32]; + double RHS8 = Idr[32]; + RHS8 += Idr[33]; + RHS8 -= go[33] * *cnV[33]; + m_A18 += gt[34]; + m_A18 += gt[35]; + m_A18 += gt[36]; + m_A18 += gt[37]; + m_A19 += go[34]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[35] * *cnV[35]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; + m_A20 += gt[38]; + m_A20 += gt[39]; + m_A22 += go[38]; + m_A21 += go[39]; + double RHS10 = Idr[38]; + RHS10 += Idr[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A23 += gt[42]; + m_A23 += gt[43]; + m_A24 += go[40]; + double RHS11 = Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + m_A25 += gt[44]; + m_A25 += gt[45]; + m_A25 += gt[46]; + m_A27 += go[44]; + m_A28 += go[45]; + m_A26 += go[46]; + double RHS12 = Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + m_A29 += gt[47]; + m_A29 += gt[48]; + m_A31 += go[47]; + m_A30 += go[48]; + double RHS13 = Idr[47]; + RHS13 += Idr[48]; + m_A37 += gt[49]; + m_A37 += gt[50]; + m_A37 += gt[51]; + m_A37 += gt[52]; + m_A37 += gt[53]; + m_A37 += gt[54]; + m_A36 += go[49]; + m_A35 += go[50]; + m_A34 += go[51]; + m_A33 += go[52]; + m_A32 += go[53]; + double RHS14 = Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 -= go[54] * *cnV[54]; + m_A39 += gt[55]; + m_A39 += gt[56]; + m_A39 += gt[57]; + m_A39 += gt[58]; + m_A38 += go[55]; + m_A40 += go[56]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 -= go[57] * *cnV[57]; + RHS15 -= go[58] * *cnV[58]; + m_A42 += gt[59]; + m_A42 += gt[60]; + m_A42 += gt[61]; + m_A42 += gt[62]; + m_A41 += go[59]; + m_A43 += go[60]; + double RHS16 = Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 -= go[61] * *cnV[61]; + RHS16 -= go[62] * *cnV[62]; + m_A45 += gt[63]; + m_A45 += gt[64]; + m_A45 += gt[65]; + m_A46 += go[63]; + m_A44 += go[64]; + double RHS17 = Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + RHS17 -= go[65] * *cnV[65]; + m_A52 += gt[66]; + m_A52 += gt[67]; + m_A52 += gt[68]; + m_A52 += gt[69]; + m_A52 += gt[70]; + m_A52 += gt[71]; + m_A49 += go[66]; + m_A50 += go[67]; + m_A51 += go[68]; + m_A47 += go[69]; + m_A48 += go[70]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 -= go[71] * *cnV[71]; + m_A59 += gt[72]; + m_A59 += gt[73]; + m_A57 += go[72]; + m_A62 += go[73]; + double RHS19 = Idr[72]; + RHS19 += Idr[73]; + m_A66 += gt[74]; + m_A66 += gt[75]; + m_A66 += gt[76]; + m_A66 += gt[77]; + m_A66 += gt[78]; + m_A66 += gt[79]; + m_A66 += gt[80]; + m_A63 += go[74]; + m_A64 += go[75]; + m_A68 += go[76]; + m_A67 += go[77]; + m_A67 += go[78]; + double RHS20 = Idr[74]; + RHS20 += Idr[75]; + RHS20 += Idr[76]; + RHS20 += Idr[77]; + RHS20 += Idr[78]; + RHS20 += Idr[79]; + RHS20 += Idr[80]; + RHS20 -= go[79] * *cnV[79]; + RHS20 -= go[80] * *cnV[80]; + m_A73 += gt[81]; + m_A73 += gt[82]; + m_A73 += gt[83]; + m_A73 += gt[84]; + m_A73 += gt[85]; + m_A72 += go[81]; + m_A72 += go[82]; + m_A71 += go[83]; + m_A69 += go[84]; + m_A70 += go[85]; + double RHS21 = Idr[81]; + RHS21 += Idr[82]; + RHS21 += Idr[83]; + RHS21 += Idr[84]; + RHS21 += Idr[85]; + m_A80 += gt[86]; + m_A80 += gt[87]; + m_A80 += gt[88]; + m_A80 += gt[89]; + m_A80 += gt[90]; + m_A80 += gt[91]; + m_A80 += gt[92]; + m_A80 += gt[93]; + m_A80 += gt[94]; + m_A80 += gt[95]; + m_A80 += gt[96]; + m_A75 += go[86]; + m_A82 += go[87]; + m_A76 += go[88]; + double RHS22 = Idr[86]; + RHS22 += Idr[87]; + RHS22 += Idr[88]; + RHS22 += Idr[89]; + RHS22 += Idr[90]; + RHS22 += Idr[91]; + RHS22 += Idr[92]; + RHS22 += Idr[93]; + RHS22 += Idr[94]; + RHS22 += Idr[95]; + RHS22 += Idr[96]; + RHS22 -= go[89] * *cnV[89]; + RHS22 -= go[90] * *cnV[90]; + RHS22 -= go[91] * *cnV[91]; + RHS22 -= go[92] * *cnV[92]; + RHS22 -= go[93] * *cnV[93]; + RHS22 -= go[94] * *cnV[94]; + RHS22 -= go[95] * *cnV[95]; + RHS22 -= go[96] * *cnV[96]; + m_A88 += gt[97]; + m_A88 += gt[98]; + m_A88 += gt[99]; + m_A88 += gt[100]; + m_A88 += gt[101]; + m_A83 += go[97]; + m_A85 += go[98]; + m_A84 += go[99]; + m_A86 += go[100]; + double RHS23 = Idr[97]; + RHS23 += Idr[98]; + RHS23 += Idr[99]; + RHS23 += Idr[100]; + RHS23 += Idr[101]; + RHS23 -= go[101] * *cnV[101]; + m_A94 += gt[102]; + m_A94 += gt[103]; + m_A94 += gt[104]; + m_A91 += go[102]; + m_A89 += go[103]; + m_A92 += go[104]; + double RHS24 = Idr[102]; + RHS24 += Idr[103]; + RHS24 += Idr[104]; + const double f0 = 1.0 / m_A0; + const double f0_15 = -f0 * m_A38; + m_A40 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f0_21 = -f0 * m_A69; + m_A73 += m_A1 * f0_21; + RHS21 += f0_21 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_20 = -f1 * m_A63; + m_A65 += m_A3 * f1_20; + RHS20 += f1_20 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_16 = -f2 * m_A41; + m_A43 += m_A5 * f2_16; + RHS16 += f2_16 * RHS2; + const double f2_18 = -f2 * m_A47; + m_A52 += m_A5 * f2_18; + RHS18 += f2_18 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_22 = -f3 * m_A75; + m_A77 += m_A7 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_14 = -f4 * m_A32; + m_A37 += m_A9 * f4_14; + RHS14 += f4_14 * RHS4; + const double f4_21 = -f4 * m_A70; + m_A71 += m_A9 * f4_21; + RHS21 += f4_21 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_17 = -f5 * m_A44; + m_A45 += m_A11 * f5_17; + RHS17 += f5_17 * RHS5; + const double f5_18 = -f5 * m_A48; + m_A51 += m_A11 * f5_18; + RHS18 += f5_18 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A33; + m_A37 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_14 = -f7 * m_A34; + m_A37 += m_A15 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_23 = -f8 * m_A83; + m_A88 += m_A17 * f8_23; + RHS23 += f8_23 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_14 = -f9 * m_A35; + m_A37 += m_A19 * f9_14; + RHS14 += f9_14 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_20 = -f10 * m_A64; + m_A66 += m_A21 * f10_20; + m_A68 += m_A22 * f10_20; + RHS20 += f10_20 * RHS10; + const double f10_23 = -f10 * m_A84; + m_A86 += m_A21 * f10_23; + m_A88 += m_A22 * f10_23; + RHS23 += f10_23 * RHS10; + const double f11 = 1.0 / m_A23; + const double f11_14 = -f11 * m_A36; + m_A37 += m_A24 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A25; + const double f12_18 = -f12 * m_A49; + m_A52 += m_A26 * f12_18; + m_A53 += m_A27 * f12_18; + m_A56 += m_A28 * f12_18; + RHS18 += f12_18 * RHS12; + const double f12_19 = -f12 * m_A57; + m_A58 += m_A26 * f12_19; + m_A59 += m_A27 * f12_19; + m_A62 += m_A28 * f12_19; + RHS19 += f12_19 * RHS12; + const double f12_24 = -f12 * m_A89; + m_A90 += m_A26 * f12_24; + m_A91 += m_A27 * f12_24; + m_A94 += m_A28 * f12_24; + RHS24 += f12_24 * RHS12; + const double f13 = 1.0 / m_A29; + const double f13_18 = -f13 * m_A50; + m_A52 += m_A30 * f13_18; + m_A54 += m_A31 * f13_18; + RHS18 += f13_18 * RHS13; + const double f13_22 = -f13 * m_A76; + m_A78 += m_A30 * f13_22; + m_A80 += m_A31 * f13_22; + RHS22 += f13_22 * RHS13; + const double f14 = 1.0 / m_A37; + const double f14_21 = -f14 * m_A71; + RHS21 += f14_21 * RHS14; + const double f15 = 1.0 / m_A39; + const double f15_20 = -f15 * m_A65; + m_A67 += m_A40 * f15_20; + RHS20 += f15_20 * RHS15; + const double f16 = 1.0 / m_A42; + const double f16_22 = -f16 * m_A77; + m_A78 += m_A43 * f16_22; + RHS22 += f16_22 * RHS16; + const double f17 = 1.0 / m_A45; + const double f17_18 = -f17 * m_A51; + m_A55 += m_A46 * f17_18; + RHS18 += f17_18 * RHS17; + const double f17_23 = -f17 * m_A85; + m_A88 += m_A46 * f17_23; + RHS23 += f17_23 * RHS17; + const double f18 = 1.0 / m_A52; + const double f18_19 = -f18 * m_A58; + m_A59 += m_A53 * f18_19; + m_A60 += m_A54 * f18_19; + m_A61 += m_A55 * f18_19; + m_A62 += m_A56 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_22 = -f18 * m_A78; + m_A79 += m_A53 * f18_22; + m_A80 += m_A54 * f18_22; + m_A81 += m_A55 * f18_22; + m_A82 += m_A56 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_24 = -f18 * m_A90; + m_A91 += m_A53 * f18_24; + m_A92 += m_A54 * f18_24; + m_A93 += m_A55 * f18_24; + m_A94 += m_A56 * f18_24; + RHS24 += f18_24 * RHS18; + const double f19 = 1.0 / m_A59; + const double f19_22 = -f19 * m_A79; + m_A80 += m_A60 * f19_22; + m_A81 += m_A61 * f19_22; + m_A82 += m_A62 * f19_22; + RHS22 += f19_22 * RHS19; + const double f19_24 = -f19 * m_A91; + m_A92 += m_A60 * f19_24; + m_A93 += m_A61 * f19_24; + m_A94 += m_A62 * f19_24; + RHS24 += f19_24 * RHS19; + const double f20 = 1.0 / m_A66; + const double f20_21 = -f20 * m_A72; + m_A73 += m_A67 * f20_21; + m_A74 += m_A68 * f20_21; + RHS21 += f20_21 * RHS20; + const double f20_23 = -f20 * m_A86; + m_A87 += m_A67 * f20_23; + m_A88 += m_A68 * f20_23; + RHS23 += f20_23 * RHS20; + const double f21 = 1.0 / m_A73; + const double f21_23 = -f21 * m_A87; + m_A88 += m_A74 * f21_23; + RHS23 += f21_23 * RHS21; + const double f22 = 1.0 / m_A80; + const double f22_24 = -f22 * m_A92; + m_A93 += m_A81 * f22_24; + m_A94 += m_A82 * f22_24; + RHS24 += f22_24 * RHS22; + const double f23 = 1.0 / m_A88; + const double f23_24 = -f23 * m_A93; + RHS24 += f23_24 * RHS23; + V[24] = RHS24 / m_A94; + double tmp23 = 0.0; + V[23] = (RHS23 - tmp23) / m_A88; + double tmp22 = 0.0; + tmp22 += m_A81 * V[23]; + tmp22 += m_A82 * V[24]; + V[22] = (RHS22 - tmp22) / m_A80; + double tmp21 = 0.0; + tmp21 += m_A74 * V[23]; + V[21] = (RHS21 - tmp21) / m_A73; + double tmp20 = 0.0; + tmp20 += m_A67 * V[21]; + tmp20 += m_A68 * V[23]; + V[20] = (RHS20 - tmp20) / m_A66; + double tmp19 = 0.0; + tmp19 += m_A60 * V[22]; + tmp19 += m_A61 * V[23]; + tmp19 += m_A62 * V[24]; + V[19] = (RHS19 - tmp19) / m_A59; + double tmp18 = 0.0; + tmp18 += m_A53 * V[19]; + tmp18 += m_A54 * V[22]; + tmp18 += m_A55 * V[23]; + tmp18 += m_A56 * V[24]; + V[18] = (RHS18 - tmp18) / m_A52; + double tmp17 = 0.0; + tmp17 += m_A46 * V[23]; + V[17] = (RHS17 - tmp17) / m_A45; + double tmp16 = 0.0; + tmp16 += m_A43 * V[18]; + V[16] = (RHS16 - tmp16) / m_A42; + double tmp15 = 0.0; + tmp15 += m_A40 * V[21]; + V[15] = (RHS15 - tmp15) / m_A39; + double tmp14 = 0.0; + V[14] = (RHS14 - tmp14) / m_A37; + double tmp13 = 0.0; + tmp13 += m_A30 * V[18]; + tmp13 += m_A31 * V[22]; + V[13] = (RHS13 - tmp13) / m_A29; + double tmp12 = 0.0; + tmp12 += m_A26 * V[18]; + tmp12 += m_A27 * V[19]; + tmp12 += m_A28 * V[24]; + V[12] = (RHS12 - tmp12) / m_A25; + double tmp11 = 0.0; + tmp11 += m_A24 * V[14]; + V[11] = (RHS11 - tmp11) / m_A23; + double tmp10 = 0.0; + tmp10 += m_A21 * V[20]; + tmp10 += m_A22 * V[23]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[14]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[23]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[14]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[17]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[14]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[16]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[18]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[15]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[21]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// ripoff +static void nl_gcr_4b5ecfbb8f9fa97b_29_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A6 += go[4]; + m_A5 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + m_A7 += gt[6]; + m_A7 += gt[7]; + m_A7 += gt[8]; + m_A7 += gt[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A8 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[7] * *cnV[7]; + RHS3 -= go[8] * *cnV[8]; + RHS3 -= go[9] * *cnV[9]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A11 += go[13]; + m_A10 += go[14]; + double RHS4 = Idr[13]; + RHS4 += Idr[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A12 += go[15]; + m_A13 += go[16]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + m_A18 += gt[18]; + m_A18 += gt[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A19 += go[18]; + m_A19 += go[19]; + m_A16 += go[20]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 -= go[21] * *cnV[21]; + m_A22 += gt[22]; + m_A22 += gt[23]; + m_A22 += gt[24]; + m_A21 += go[22]; + m_A20 += go[23]; + double RHS7 = Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[24] * *cnV[24]; + m_A28 += gt[25]; + m_A28 += gt[26]; + m_A28 += gt[27]; + m_A28 += gt[28]; + m_A28 += gt[29]; + m_A28 += gt[30]; + m_A24 += go[25]; + m_A25 += go[26]; + m_A26 += go[27]; + m_A26 += go[28]; + double RHS8 = Idr[25]; + RHS8 += Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + const double f0 = 1.0 / m_A0; + const double f0_7 = -f0 * m_A20; + m_A22 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A12; + m_A14 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_5 = -f2 * m_A13; + m_A14 += m_A5 * f2_5; + m_A15 += m_A6 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_6 = -f2 * m_A16; + m_A17 += m_A5 * f2_6; + m_A18 += m_A6 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_8 = -f3 * m_A24; + m_A26 += m_A8 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_7 = -f4 * m_A21; + m_A22 += m_A10 * f4_7; + m_A23 += m_A11 * f4_7; + RHS7 += f4_7 * RHS4; + const double f4_8 = -f4 * m_A25; + m_A27 += m_A10 * f4_8; + m_A28 += m_A11 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_6 = -f5 * m_A17; + m_A18 += m_A15 * f5_6; + RHS6 += f5_6 * RHS5; + const double f6 = 1.0 / m_A18; + const double f6_8 = -f6 * m_A26; + m_A28 += m_A19 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A22; + const double f7_8 = -f7 * m_A27; + m_A28 += m_A23 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A28; + double tmp7 = 0.0; + tmp7 += m_A23 * V[8]; + V[7] = (RHS7 - tmp7) / m_A22; + double tmp6 = 0.0; + tmp6 += m_A19 * V[8]; + V[6] = (RHS6 - tmp6) / m_A18; + double tmp5 = 0.0; + tmp5 += m_A15 * V[6]; + V[5] = (RHS5 - tmp5) / m_A14; + double tmp4 = 0.0; + tmp4 += m_A10 * V[7]; + tmp4 += m_A11 * V[8]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A8 * V[6]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[5]; + tmp2 += m_A6 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// gtrak10 +static void nl_gcr_4c46fdf7c0037727_43_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[15]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[16] * *cnV[16]; + RHS5 -= go[17] * *cnV[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A13 += go[18]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A15 += go[21]; + double RHS7 = Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 -= go[22] * *cnV[22]; + RHS7 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A17 += go[24]; + double RHS8 = Idr[24]; + RHS8 += Idr[25]; + RHS8 += Idr[26]; + RHS8 -= go[25] * *cnV[25]; + RHS8 -= go[26] * *cnV[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A18 += gt[29]; + m_A19 += go[27]; + double RHS9 = Idr[27]; + RHS9 += Idr[28]; + RHS9 += Idr[29]; + RHS9 -= go[28] * *cnV[28]; + RHS9 -= go[29] * *cnV[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A21 += go[30]; + double RHS10 = Idr[30]; + RHS10 += Idr[31]; + RHS10 += Idr[32]; + RHS10 -= go[31] * *cnV[31]; + RHS10 -= go[32] * *cnV[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A23 += go[33]; + double RHS11 = Idr[33]; + RHS11 += Idr[34]; + RHS11 += Idr[35]; + RHS11 -= go[34] * *cnV[34]; + RHS11 -= go[35] * *cnV[35]; + m_A25 += gt[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A26 += go[36]; + m_A24 += go[37]; + double RHS12 = Idr[36]; + RHS12 += Idr[37]; + RHS12 += Idr[38]; + RHS12 -= go[38] * *cnV[38]; + m_A30 += gt[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A30 += gt[43]; + m_A30 += gt[44]; + m_A30 += gt[45]; + m_A29 += go[39]; + m_A28 += go[40]; + m_A27 += go[41]; + m_A31 += go[42]; + m_A31 += go[43]; + double RHS13 = Idr[39]; + RHS13 += Idr[40]; + RHS13 += Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 += Idr[44]; + RHS13 += Idr[45]; + RHS13 -= go[44] * *cnV[44]; + RHS13 -= go[45] * *cnV[45]; + m_A42 += gt[46]; + m_A42 += gt[47]; + m_A42 += gt[48]; + m_A42 += gt[49]; + m_A42 += gt[50]; + m_A42 += gt[51]; + m_A42 += gt[52]; + m_A42 += gt[53]; + m_A42 += gt[54]; + m_A42 += gt[55]; + m_A42 += gt[56]; + m_A42 += gt[57]; + m_A42 += gt[58]; + m_A41 += go[46]; + m_A41 += go[47]; + m_A39 += go[48]; + m_A38 += go[49]; + m_A37 += go[50]; + m_A36 += go[51]; + m_A35 += go[52]; + m_A34 += go[53]; + m_A33 += go[54]; + m_A32 += go[55]; + m_A40 += go[56]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 += Idr[55]; + RHS14 += Idr[56]; + RHS14 += Idr[57]; + RHS14 += Idr[58]; + RHS14 -= go[57] * *cnV[57]; + RHS14 -= go[58] * *cnV[58]; + const double f0 = 1.0 / m_A0; + const double f0_12 = -f0 * m_A24; + m_A25 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_14 = -f1 * m_A32; + m_A42 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_14 = -f2 * m_A33; + m_A42 += m_A5 * f2_14; + RHS14 += f2_14 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_14 = -f3 * m_A34; + m_A42 += m_A7 * f3_14; + RHS14 += f3_14 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_14 = -f4 * m_A35; + m_A42 += m_A9 * f4_14; + RHS14 += f4_14 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_14 = -f5 * m_A36; + m_A42 += m_A11 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A37; + m_A42 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_14 = -f7 * m_A38; + m_A42 += m_A15 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_14 = -f8 * m_A39; + m_A42 += m_A17 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_13 = -f9 * m_A27; + m_A30 += m_A19 * f9_13; + RHS13 += f9_13 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_13 = -f10 * m_A28; + m_A30 += m_A21 * f10_13; + RHS13 += f10_13 * RHS10; + const double f11 = 1.0 / m_A22; + const double f11_13 = -f11 * m_A29; + m_A30 += m_A23 * f11_13; + RHS13 += f11_13 * RHS11; + const double f12 = 1.0 / m_A25; + const double f12_14 = -f12 * m_A40; + m_A42 += m_A26 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A30; + const double f13_14 = -f13 * m_A41; + m_A42 += m_A31 * f13_14; + RHS14 += f13_14 * RHS13; + V[14] = RHS14 / m_A42; + double tmp13 = 0.0; + tmp13 += m_A31 * V[14]; + V[13] = (RHS13 - tmp13) / m_A30; + double tmp12 = 0.0; + tmp12 += m_A26 * V[14]; + V[12] = (RHS12 - tmp12) / m_A25; + double tmp11 = 0.0; + tmp11 += m_A23 * V[13]; + V[11] = (RHS11 - tmp11) / m_A22; + double tmp10 = 0.0; + tmp10 += m_A21 * V[13]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[13]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[14]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[14]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[14]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[14]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[14]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[14]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[14]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[12]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// solarq +static void nl_gcr_4cb524006206eb1a_25_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A5 += go[4]; + m_A4 += go[5]; + m_A4 += go[6]; + m_A3 += go[7]; + m_A3 += go[8]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[12]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A9 += go[14]; + m_A9 += go[15]; + m_A8 += go[16]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A15 += gt[23]; + m_A15 += gt[24]; + m_A16 += go[20]; + m_A16 += go[21]; + m_A13 += go[22]; + m_A13 += go[23]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 -= go[24] * *cnV[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A19 += go[25]; + m_A17 += go[26]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[27] * *cnV[27]; + m_A24 += gt[28]; + m_A24 += gt[29]; + m_A24 += gt[30]; + m_A24 += gt[31]; + m_A23 += go[28]; + m_A22 += go[29]; + m_A22 += go[30]; + m_A20 += go[31]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + m_A12 += m_A5 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A13; + m_A14 += m_A3 * f1_4; + m_A15 += m_A4 * f1_4; + m_A16 += m_A5 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_6 = -f1 * m_A20; + m_A21 += m_A3 * f1_6; + m_A22 += m_A4 * f1_6; + m_A24 += m_A5 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_5 = -f2 * m_A17; + m_A18 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + m_A16 += m_A12 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_6 = -f3 * m_A21; + m_A22 += m_A11 * f3_6; + m_A24 += m_A12 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_6 = -f4 * m_A22; + m_A24 += m_A16 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A18; + const double f5_6 = -f5 * m_A23; + m_A24 += m_A19 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A24; + double tmp5 = 0.0; + tmp5 += m_A19 * V[6]; + V[5] = (RHS5 - tmp5) / m_A18; + double tmp4 = 0.0; + tmp4 += m_A16 * V[6]; + V[4] = (RHS4 - tmp4) / m_A15; + double tmp3 = 0.0; + tmp3 += m_A11 * V[4]; + tmp3 += m_A12 * V[6]; + V[3] = (RHS3 - tmp3) / m_A10; + double tmp2 = 0.0; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; + tmp1 += m_A5 * V[6]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// spacfury +static void nl_gcr_4dbd0f2aec7ef707_110_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[3]; + m_A5 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[7]; + m_A8 += go[8]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A11 += go[14]; + m_A12 += go[15]; + m_A10 += go[16]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A14 += go[17]; + m_A15 += go[18]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A17 += go[24]; + double RHS5 = Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A19 += go[27]; + double RHS6 = Idr[27]; + RHS6 += Idr[28]; + RHS6 -= go[28] * *cnV[28]; + m_A20 += gt[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A22 += go[29]; + m_A23 += go[30]; + m_A21 += go[31]; + double RHS7 = Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 -= go[32] * *cnV[32]; + m_A24 += gt[33]; + m_A24 += gt[34]; + m_A24 += gt[35]; + m_A24 += gt[36]; + m_A24 += gt[37]; + m_A24 += gt[38]; + m_A24 += gt[39]; + m_A25 += go[33]; + m_A26 += go[34]; + double RHS8 = Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + RHS8 -= go[35] * *cnV[35]; + RHS8 -= go[36] * *cnV[36]; + RHS8 -= go[37] * *cnV[37]; + RHS8 -= go[38] * *cnV[38]; + RHS8 -= go[39] * *cnV[39]; + m_A27 += gt[40]; + m_A27 += gt[41]; + m_A27 += gt[42]; + m_A30 += go[40]; + m_A29 += go[41]; + m_A28 += go[42]; + double RHS9 = Idr[40]; + RHS9 += Idr[41]; + RHS9 += Idr[42]; + m_A31 += gt[43]; + m_A31 += gt[44]; + m_A31 += gt[45]; + m_A31 += gt[46]; + m_A31 += gt[47]; + m_A31 += gt[48]; + m_A31 += gt[49]; + m_A33 += go[43]; + m_A32 += go[44]; + double RHS10 = Idr[43]; + RHS10 += Idr[44]; + RHS10 += Idr[45]; + RHS10 += Idr[46]; + RHS10 += Idr[47]; + RHS10 += Idr[48]; + RHS10 += Idr[49]; + RHS10 -= go[45] * *cnV[45]; + RHS10 -= go[46] * *cnV[46]; + RHS10 -= go[47] * *cnV[47]; + RHS10 -= go[48] * *cnV[48]; + RHS10 -= go[49] * *cnV[49]; + m_A36 += gt[50]; + m_A36 += gt[51]; + m_A35 += go[50]; + m_A34 += go[51]; + double RHS11 = Idr[50]; + RHS11 += Idr[51]; + m_A41 += gt[52]; + m_A41 += gt[53]; + m_A41 += gt[54]; + m_A41 += gt[55]; + m_A41 += gt[56]; + m_A42 += go[52]; + m_A39 += go[53]; + double RHS12 = Idr[52]; + RHS12 += Idr[53]; + RHS12 += Idr[54]; + RHS12 += Idr[55]; + RHS12 += Idr[56]; + RHS12 -= go[54] * *cnV[54]; + RHS12 -= go[55] * *cnV[55]; + RHS12 -= go[56] * *cnV[56]; + m_A46 += gt[57]; + m_A46 += gt[58]; + m_A46 += gt[59]; + m_A46 += gt[60]; + m_A46 += gt[61]; + m_A43 += go[57]; + m_A44 += go[58]; + m_A48 += go[59]; + double RHS13 = Idr[57]; + RHS13 += Idr[58]; + RHS13 += Idr[59]; + RHS13 += Idr[60]; + RHS13 += Idr[61]; + RHS13 -= go[60] * *cnV[60]; + RHS13 -= go[61] * *cnV[61]; + m_A52 += gt[62]; + m_A52 += gt[63]; + m_A51 += go[62]; + m_A50 += go[63]; + double RHS14 = Idr[62]; + RHS14 += Idr[63]; + m_A57 += gt[64]; + m_A57 += gt[65]; + m_A57 += gt[66]; + m_A59 += go[64]; + m_A55 += go[65]; + double RHS15 = Idr[64]; + RHS15 += Idr[65]; + RHS15 += Idr[66]; + RHS15 -= go[66] * *cnV[66]; + m_A62 += gt[67]; + m_A62 += gt[68]; + m_A62 += gt[69]; + m_A62 += gt[70]; + m_A62 += gt[71]; + m_A63 += go[67]; + m_A60 += go[68]; + double RHS16 = Idr[67]; + RHS16 += Idr[68]; + RHS16 += Idr[69]; + RHS16 += Idr[70]; + RHS16 += Idr[71]; + RHS16 -= go[69] * *cnV[69]; + RHS16 -= go[70] * *cnV[70]; + RHS16 -= go[71] * *cnV[71]; + m_A65 += gt[72]; + m_A65 += gt[73]; + m_A65 += gt[74]; + m_A64 += go[72]; + m_A67 += go[73]; + m_A66 += go[74]; + double RHS17 = Idr[72]; + RHS17 += Idr[73]; + RHS17 += Idr[74]; + m_A71 += gt[75]; + m_A71 += gt[76]; + m_A71 += gt[77]; + m_A71 += gt[78]; + m_A71 += gt[79]; + m_A68 += go[75]; + m_A69 += go[76]; + m_A73 += go[77]; + double RHS18 = Idr[75]; + RHS18 += Idr[76]; + RHS18 += Idr[77]; + RHS18 += Idr[78]; + RHS18 += Idr[79]; + RHS18 -= go[78] * *cnV[78]; + RHS18 -= go[79] * *cnV[79]; + m_A77 += gt[80]; + m_A77 += gt[81]; + m_A77 += gt[82]; + m_A79 += go[80]; + m_A75 += go[81]; + double RHS19 = Idr[80]; + RHS19 += Idr[81]; + RHS19 += Idr[82]; + RHS19 -= go[82] * *cnV[82]; + m_A85 += gt[83]; + m_A85 += gt[84]; + m_A85 += gt[85]; + m_A82 += go[83]; + m_A83 += go[84]; + m_A80 += go[85]; + double RHS20 = Idr[83]; + RHS20 += Idr[84]; + RHS20 += Idr[85]; + m_A93 += gt[86]; + m_A93 += gt[87]; + m_A93 += gt[88]; + m_A93 += gt[89]; + m_A93 += gt[90]; + m_A93 += gt[91]; + m_A88 += go[86]; + m_A91 += go[87]; + m_A90 += go[88]; + m_A87 += go[89]; + double RHS21 = Idr[86]; + RHS21 += Idr[87]; + RHS21 += Idr[88]; + RHS21 += Idr[89]; + RHS21 += Idr[90]; + RHS21 += Idr[91]; + RHS21 -= go[90] * *cnV[90]; + RHS21 -= go[91] * *cnV[91]; + m_A100 += gt[92]; + m_A100 += gt[93]; + m_A100 += gt[94]; + m_A97 += go[92]; + m_A98 += go[93]; + m_A95 += go[94]; + double RHS22 = Idr[92]; + RHS22 += Idr[93]; + RHS22 += Idr[94]; + m_A109 += gt[95]; + m_A109 += gt[96]; + m_A109 += gt[97]; + m_A109 += gt[98]; + m_A109 += gt[99]; + m_A109 += gt[100]; + m_A103 += go[95]; + m_A106 += go[96]; + m_A102 += go[97]; + m_A104 += go[98]; + double RHS23 = Idr[95]; + RHS23 += Idr[96]; + RHS23 += Idr[97]; + RHS23 += Idr[98]; + RHS23 += Idr[99]; + RHS23 += Idr[100]; + RHS23 -= go[99] * *cnV[99]; + RHS23 -= go[100] * *cnV[100]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A34; + m_A36 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_11 = -f1 * m_A35; + m_A36 += m_A3 * f1_11; + m_A37 += m_A4 * f1_11; + m_A38 += m_A5 * f1_11; + RHS11 += f1_11 * RHS1; + const double f1_12 = -f1 * m_A39; + m_A40 += m_A3 * f1_12; + m_A41 += m_A4 * f1_12; + m_A42 += m_A5 * f1_12; + RHS12 += f1_12 * RHS1; + const double f1_20 = -f1 * m_A80; + m_A81 += m_A3 * f1_20; + m_A82 += m_A4 * f1_20; + m_A85 += m_A5 * f1_20; + RHS20 += f1_20 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_13 = -f2 * m_A43; + m_A45 += m_A7 * f2_13; + m_A48 += m_A8 * f2_13; + RHS13 += f2_13 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_13 = -f3 * m_A44; + m_A46 += m_A10 * f3_13; + m_A47 += m_A11 * f3_13; + m_A49 += m_A12 * f3_13; + RHS13 += f3_13 * RHS3; + const double f3_15 = -f3 * m_A55; + m_A56 += m_A10 * f3_15; + m_A57 += m_A11 * f3_15; + m_A59 += m_A12 * f3_15; + RHS15 += f3_15 * RHS3; + const double f3_21 = -f3 * m_A87; + m_A89 += m_A10 * f3_21; + m_A90 += m_A11 * f3_21; + m_A93 += m_A12 * f3_21; + RHS21 += f3_21 * RHS3; + const double f4 = 1.0 / m_A13; + const double f4_21 = -f4 * m_A88; + m_A90 += m_A14 * f4_21; + m_A93 += m_A15 * f4_21; + RHS21 += f4_21 * RHS4; + const double f5 = 1.0 / m_A16; + const double f5_14 = -f5 * m_A50; + m_A52 += m_A17 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A18; + const double f6_17 = -f6 * m_A64; + m_A65 += m_A19 * f6_17; + RHS17 += f6_17 * RHS6; + const double f7 = 1.0 / m_A20; + const double f7_14 = -f7 * m_A51; + m_A52 += m_A21 * f7_14; + m_A53 += m_A22 * f7_14; + m_A54 += m_A23 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_16 = -f7 * m_A60; + m_A61 += m_A21 * f7_16; + m_A62 += m_A22 * f7_16; + m_A63 += m_A23 * f7_16; + RHS16 += f7_16 * RHS7; + const double f7_22 = -f7 * m_A95; + m_A96 += m_A21 * f7_22; + m_A97 += m_A22 * f7_22; + m_A100 += m_A23 * f7_22; + RHS22 += f7_22 * RHS7; + const double f8 = 1.0 / m_A24; + const double f8_18 = -f8 * m_A68; + m_A70 += m_A25 * f8_18; + m_A73 += m_A26 * f8_18; + RHS18 += f8_18 * RHS8; + const double f9 = 1.0 / m_A27; + const double f9_18 = -f9 * m_A69; + m_A71 += m_A28 * f9_18; + m_A72 += m_A29 * f9_18; + m_A74 += m_A30 * f9_18; + RHS18 += f9_18 * RHS9; + const double f9_19 = -f9 * m_A75; + m_A76 += m_A28 * f9_19; + m_A77 += m_A29 * f9_19; + m_A79 += m_A30 * f9_19; + RHS19 += f9_19 * RHS9; + const double f9_23 = -f9 * m_A102; + m_A105 += m_A28 * f9_23; + m_A106 += m_A29 * f9_23; + m_A109 += m_A30 * f9_23; + RHS23 += f9_23 * RHS9; + const double f10 = 1.0 / m_A31; + const double f10_23 = -f10 * m_A103; + m_A106 += m_A32 * f10_23; + m_A109 += m_A33 * f10_23; + RHS23 += f10_23 * RHS10; + const double f11 = 1.0 / m_A36; + const double f11_12 = -f11 * m_A40; + m_A41 += m_A37 * f11_12; + m_A42 += m_A38 * f11_12; + RHS12 += f11_12 * RHS11; + const double f11_20 = -f11 * m_A81; + m_A82 += m_A37 * f11_20; + m_A85 += m_A38 * f11_20; + RHS20 += f11_20 * RHS11; + const double f12 = 1.0 / m_A41; + const double f12_13 = -f12 * m_A45; + m_A48 += m_A42 * f12_13; + RHS13 += f12_13 * RHS12; + const double f12_20 = -f12 * m_A82; + m_A85 += m_A42 * f12_20; + RHS20 += f12_20 * RHS12; + const double f13 = 1.0 / m_A46; + const double f13_15 = -f13 * m_A56; + m_A57 += m_A47 * f13_15; + m_A58 += m_A48 * f13_15; + m_A59 += m_A49 * f13_15; + RHS15 += f13_15 * RHS13; + const double f13_20 = -f13 * m_A83; + m_A84 += m_A47 * f13_20; + m_A85 += m_A48 * f13_20; + m_A86 += m_A49 * f13_20; + RHS20 += f13_20 * RHS13; + const double f13_21 = -f13 * m_A89; + m_A90 += m_A47 * f13_21; + m_A92 += m_A48 * f13_21; + m_A93 += m_A49 * f13_21; + RHS21 += f13_21 * RHS13; + const double f14 = 1.0 / m_A52; + const double f14_16 = -f14 * m_A61; + m_A62 += m_A53 * f14_16; + m_A63 += m_A54 * f14_16; + RHS16 += f14_16 * RHS14; + const double f14_22 = -f14 * m_A96; + m_A97 += m_A53 * f14_22; + m_A100 += m_A54 * f14_22; + RHS22 += f14_22 * RHS14; + const double f15 = 1.0 / m_A57; + const double f15_20 = -f15 * m_A84; + m_A85 += m_A58 * f15_20; + m_A86 += m_A59 * f15_20; + RHS20 += f15_20 * RHS15; + const double f15_21 = -f15 * m_A90; + m_A92 += m_A58 * f15_21; + m_A93 += m_A59 * f15_21; + RHS21 += f15_21 * RHS15; + const double f16 = 1.0 / m_A62; + const double f16_18 = -f16 * m_A70; + m_A73 += m_A63 * f16_18; + RHS18 += f16_18 * RHS16; + const double f16_22 = -f16 * m_A97; + m_A100 += m_A63 * f16_22; + RHS22 += f16_22 * RHS16; + const double f17 = 1.0 / m_A65; + const double f17_21 = -f17 * m_A91; + m_A93 += m_A66 * f17_21; + m_A94 += m_A67 * f17_21; + RHS21 += f17_21 * RHS17; + const double f17_23 = -f17 * m_A104; + m_A107 += m_A66 * f17_23; + m_A109 += m_A67 * f17_23; + RHS23 += f17_23 * RHS17; + const double f18 = 1.0 / m_A71; + const double f18_19 = -f18 * m_A76; + m_A77 += m_A72 * f18_19; + m_A78 += m_A73 * f18_19; + m_A79 += m_A74 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_22 = -f18 * m_A98; + m_A99 += m_A72 * f18_22; + m_A100 += m_A73 * f18_22; + m_A101 += m_A74 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_23 = -f18 * m_A105; + m_A106 += m_A72 * f18_23; + m_A108 += m_A73 * f18_23; + m_A109 += m_A74 * f18_23; + RHS23 += f18_23 * RHS18; + const double f19 = 1.0 / m_A77; + const double f19_22 = -f19 * m_A99; + m_A100 += m_A78 * f19_22; + m_A101 += m_A79 * f19_22; + RHS22 += f19_22 * RHS19; + const double f19_23 = -f19 * m_A106; + m_A108 += m_A78 * f19_23; + m_A109 += m_A79 * f19_23; + RHS23 += f19_23 * RHS19; + const double f20 = 1.0 / m_A85; + const double f20_21 = -f20 * m_A92; + m_A93 += m_A86 * f20_21; + RHS21 += f20_21 * RHS20; + const double f21 = 1.0 / m_A93; + const double f21_23 = -f21 * m_A107; + m_A109 += m_A94 * f21_23; + RHS23 += f21_23 * RHS21; + const double f22 = 1.0 / m_A100; + const double f22_23 = -f22 * m_A108; + m_A109 += m_A101 * f22_23; + RHS23 += f22_23 * RHS22; + V[23] = RHS23 / m_A109; + double tmp22 = 0.0; + tmp22 += m_A101 * V[23]; + V[22] = (RHS22 - tmp22) / m_A100; + double tmp21 = 0.0; + tmp21 += m_A94 * V[23]; + V[21] = (RHS21 - tmp21) / m_A93; + double tmp20 = 0.0; + tmp20 += m_A86 * V[21]; + V[20] = (RHS20 - tmp20) / m_A85; + double tmp19 = 0.0; + tmp19 += m_A78 * V[22]; + tmp19 += m_A79 * V[23]; + V[19] = (RHS19 - tmp19) / m_A77; + double tmp18 = 0.0; + tmp18 += m_A72 * V[19]; + tmp18 += m_A73 * V[22]; + tmp18 += m_A74 * V[23]; + V[18] = (RHS18 - tmp18) / m_A71; + double tmp17 = 0.0; + tmp17 += m_A66 * V[21]; + tmp17 += m_A67 * V[23]; + V[17] = (RHS17 - tmp17) / m_A65; + double tmp16 = 0.0; + tmp16 += m_A63 * V[22]; + V[16] = (RHS16 - tmp16) / m_A62; + double tmp15 = 0.0; + tmp15 += m_A58 * V[20]; + tmp15 += m_A59 * V[21]; + V[15] = (RHS15 - tmp15) / m_A57; + double tmp14 = 0.0; + tmp14 += m_A53 * V[16]; + tmp14 += m_A54 * V[22]; + V[14] = (RHS14 - tmp14) / m_A52; + double tmp13 = 0.0; + tmp13 += m_A47 * V[15]; + tmp13 += m_A48 * V[20]; + tmp13 += m_A49 * V[21]; + V[13] = (RHS13 - tmp13) / m_A46; + double tmp12 = 0.0; + tmp12 += m_A42 * V[20]; + V[12] = (RHS12 - tmp12) / m_A41; + double tmp11 = 0.0; + tmp11 += m_A37 * V[12]; + tmp11 += m_A38 * V[20]; + V[11] = (RHS11 - tmp11) / m_A36; + double tmp10 = 0.0; + tmp10 += m_A32 * V[19]; + tmp10 += m_A33 * V[23]; + V[10] = (RHS10 - tmp10) / m_A31; + double tmp9 = 0.0; + tmp9 += m_A28 * V[18]; + tmp9 += m_A29 * V[19]; + tmp9 += m_A30 * V[23]; + V[9] = (RHS9 - tmp9) / m_A27; + double tmp8 = 0.0; + tmp8 += m_A25 * V[16]; + tmp8 += m_A26 * V[22]; + V[8] = (RHS8 - tmp8) / m_A24; + double tmp7 = 0.0; + tmp7 += m_A21 * V[14]; + tmp7 += m_A22 * V[16]; + tmp7 += m_A23 * V[22]; + V[7] = (RHS7 - tmp7) / m_A20; + double tmp6 = 0.0; + tmp6 += m_A19 * V[17]; + V[6] = (RHS6 - tmp6) / m_A18; + double tmp5 = 0.0; + tmp5 += m_A17 * V[14]; + V[5] = (RHS5 - tmp5) / m_A16; + double tmp4 = 0.0; + tmp4 += m_A14 * V[15]; + tmp4 += m_A15 * V[21]; + V[4] = (RHS4 - tmp4) / m_A13; + double tmp3 = 0.0; + tmp3 += m_A10 * V[13]; + tmp3 += m_A11 * V[15]; + tmp3 += m_A12 * V[21]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A7 * V[12]; + tmp2 += m_A8 * V[20]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[11]; + tmp1 += m_A4 * V[12]; + tmp1 += m_A5 * V[20]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[11]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// solarq +static void nl_gcr_4e4931ccbfb7a3c_70_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A4 += go[3]; + m_A3 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A7 += go[9]; + m_A6 += go[10]; + m_A6 += go[11]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[12] * *cnV[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A10 += go[13]; + m_A9 += go[14]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A11 += gt[23]; + m_A11 += gt[24]; + m_A11 += gt[25]; + m_A11 += gt[26]; + m_A12 += go[20]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 += Idr[26]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + RHS4 -= go[25] * *cnV[25]; + RHS4 -= go[26] * *cnV[26]; + m_A13 += gt[27]; + m_A13 += gt[28]; + m_A13 += gt[29]; + m_A13 += gt[30]; + m_A13 += gt[31]; + m_A14 += go[27]; + m_A15 += go[28]; + double RHS5 = Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 += Idr[30]; + RHS5 += Idr[31]; + RHS5 -= go[29] * *cnV[29]; + RHS5 -= go[30] * *cnV[30]; + RHS5 -= go[31] * *cnV[31]; + m_A16 += gt[32]; + m_A16 += gt[33]; + m_A16 += gt[34]; + m_A16 += gt[35]; + m_A16 += gt[36]; + m_A16 += gt[37]; + m_A16 += gt[38]; + m_A17 += go[32]; + m_A18 += go[33]; + double RHS6 = Idr[32]; + RHS6 += Idr[33]; + RHS6 += Idr[34]; + RHS6 += Idr[35]; + RHS6 += Idr[36]; + RHS6 += Idr[37]; + RHS6 += Idr[38]; + RHS6 -= go[34] * *cnV[34]; + RHS6 -= go[35] * *cnV[35]; + RHS6 -= go[36] * *cnV[36]; + RHS6 -= go[37] * *cnV[37]; + RHS6 -= go[38] * *cnV[38]; + m_A19 += gt[39]; + m_A19 += gt[40]; + m_A19 += gt[41]; + m_A19 += gt[42]; + m_A20 += go[39]; + m_A21 += go[40]; + double RHS7 = Idr[39]; + RHS7 += Idr[40]; + RHS7 += Idr[41]; + RHS7 += Idr[42]; + RHS7 -= go[41] * *cnV[41]; + RHS7 -= go[42] * *cnV[42]; + m_A22 += gt[43]; + m_A22 += gt[44]; + m_A22 += gt[45]; + m_A22 += gt[46]; + m_A22 += gt[47]; + m_A23 += go[43]; + m_A24 += go[44]; + double RHS8 = Idr[43]; + RHS8 += Idr[44]; + RHS8 += Idr[45]; + RHS8 += Idr[46]; + RHS8 += Idr[47]; + RHS8 -= go[45] * *cnV[45]; + RHS8 -= go[46] * *cnV[46]; + RHS8 -= go[47] * *cnV[47]; + m_A25 += gt[48]; + m_A25 += gt[49]; + m_A25 += gt[50]; + m_A26 += go[48]; + m_A27 += go[49]; + double RHS9 = Idr[48]; + RHS9 += Idr[49]; + RHS9 += Idr[50]; + RHS9 -= go[50] * *cnV[50]; + m_A30 += gt[51]; + m_A30 += gt[52]; + m_A30 += gt[53]; + m_A30 += gt[54]; + m_A30 += gt[55]; + m_A30 += gt[56]; + m_A29 += go[51]; + m_A29 += go[52]; + m_A28 += go[53]; + double RHS10 = Idr[51]; + RHS10 += Idr[52]; + RHS10 += Idr[53]; + RHS10 += Idr[54]; + RHS10 += Idr[55]; + RHS10 += Idr[56]; + RHS10 -= go[54] * *cnV[54]; + RHS10 -= go[55] * *cnV[55]; + RHS10 -= go[56] * *cnV[56]; + m_A35 += gt[57]; + m_A35 += gt[58]; + m_A35 += gt[59]; + m_A35 += gt[60]; + m_A35 += gt[61]; + m_A33 += go[57]; + m_A33 += go[58]; + m_A32 += go[59]; + double RHS11 = Idr[57]; + RHS11 += Idr[58]; + RHS11 += Idr[59]; + RHS11 += Idr[60]; + RHS11 += Idr[61]; + RHS11 -= go[60] * *cnV[60]; + RHS11 -= go[61] * *cnV[61]; + m_A39 += gt[62]; + m_A39 += gt[63]; + m_A39 += gt[64]; + m_A39 += gt[65]; + m_A39 += gt[66]; + m_A40 += go[62]; + m_A37 += go[63]; + double RHS12 = Idr[62]; + RHS12 += Idr[63]; + RHS12 += Idr[64]; + RHS12 += Idr[65]; + RHS12 += Idr[66]; + RHS12 -= go[64] * *cnV[64]; + RHS12 -= go[65] * *cnV[65]; + RHS12 -= go[66] * *cnV[66]; + m_A42 += gt[67]; + m_A42 += gt[68]; + m_A42 += gt[69]; + m_A42 += gt[70]; + m_A42 += gt[71]; + m_A42 += gt[72]; + m_A42 += gt[73]; + m_A43 += go[67]; + m_A41 += go[68]; + double RHS13 = Idr[67]; + RHS13 += Idr[68]; + RHS13 += Idr[69]; + RHS13 += Idr[70]; + RHS13 += Idr[71]; + RHS13 += Idr[72]; + RHS13 += Idr[73]; + RHS13 -= go[69] * *cnV[69]; + RHS13 -= go[70] * *cnV[70]; + RHS13 -= go[71] * *cnV[71]; + RHS13 -= go[72] * *cnV[72]; + RHS13 -= go[73] * *cnV[73]; + m_A48 += gt[74]; + m_A48 += gt[75]; + m_A48 += gt[76]; + m_A46 += go[74]; + m_A45 += go[75]; + m_A50 += go[76]; + double RHS14 = Idr[74]; + RHS14 += Idr[75]; + RHS14 += Idr[76]; + m_A55 += gt[77]; + m_A55 += gt[78]; + m_A55 += gt[79]; + m_A53 += go[77]; + m_A51 += go[78]; + m_A57 += go[79]; + double RHS15 = Idr[77]; + RHS15 += Idr[78]; + RHS15 += Idr[79]; + m_A62 += gt[80]; + m_A62 += gt[81]; + m_A62 += gt[82]; + m_A62 += gt[83]; + m_A62 += gt[84]; + m_A58 += go[80]; + m_A60 += go[81]; + m_A59 += go[82]; + double RHS16 = Idr[80]; + RHS16 += Idr[81]; + RHS16 += Idr[82]; + RHS16 += Idr[83]; + RHS16 += Idr[84]; + RHS16 -= go[83] * *cnV[83]; + RHS16 -= go[84] * *cnV[84]; + m_A69 += gt[85]; + m_A69 += gt[86]; + m_A69 += gt[87]; + m_A69 += gt[88]; + m_A69 += gt[89]; + m_A69 += gt[90]; + m_A64 += go[85]; + m_A67 += go[86]; + m_A65 += go[87]; + m_A66 += go[88]; + double RHS17 = Idr[85]; + RHS17 += Idr[86]; + RHS17 += Idr[87]; + RHS17 += Idr[88]; + RHS17 += Idr[89]; + RHS17 += Idr[90]; + RHS17 -= go[89] * *cnV[89]; + RHS17 -= go[90] * *cnV[90]; + const double f0 = 1.0 / m_A0; + const double f0_10 = -f0 * m_A28; + m_A30 += m_A1 * f0_10; + RHS10 += f0_10 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_10 = -f1 * m_A29; + m_A30 += m_A3 * f1_10; + m_A31 += m_A4 * f1_10; + RHS10 += f1_10 * RHS1; + const double f1_11 = -f1 * m_A32; + m_A34 += m_A3 * f1_11; + m_A35 += m_A4 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_11 = -f2 * m_A33; + m_A35 += m_A6 * f2_11; + m_A36 += m_A7 * f2_11; + RHS11 += f2_11 * RHS2; + const double f2_12 = -f2 * m_A37; + m_A38 += m_A6 * f2_12; + m_A39 += m_A7 * f2_12; + RHS12 += f2_12 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_17 = -f3 * m_A64; + m_A66 += m_A9 * f3_17; + m_A69 += m_A10 * f3_17; + RHS17 += f3_17 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_16 = -f4 * m_A58; + m_A59 += m_A12 * f4_16; + RHS16 += f4_16 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_15 = -f5 * m_A51; + m_A52 += m_A14 * f5_15; + m_A55 += m_A15 * f5_15; + RHS15 += f5_15 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_15 = -f6 * m_A52; + m_A53 += m_A17 * f6_15; + m_A55 += m_A18 * f6_15; + RHS15 += f6_15 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_13 = -f7 * m_A41; + m_A43 += m_A20 * f7_13; + m_A44 += m_A21 * f7_13; + RHS13 += f7_13 * RHS7; + const double f7_14 = -f7 * m_A45; + m_A48 += m_A20 * f7_14; + m_A49 += m_A21 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_15 = -f7 * m_A53; + m_A54 += m_A20 * f7_15; + m_A55 += m_A21 * f7_15; + RHS15 += f7_15 * RHS7; + const double f8 = 1.0 / m_A22; + const double f8_14 = -f8 * m_A46; + m_A47 += m_A23 * f8_14; + m_A48 += m_A24 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_16 = -f9 * m_A59; + m_A62 += m_A26 * f9_16; + m_A63 += m_A27 * f9_16; + RHS16 += f9_16 * RHS9; + const double f9_17 = -f9 * m_A65; + m_A68 += m_A26 * f9_17; + m_A69 += m_A27 * f9_17; + RHS17 += f9_17 * RHS9; + const double f10 = 1.0 / m_A30; + const double f10_11 = -f10 * m_A34; + m_A35 += m_A31 * f10_11; + RHS11 += f10_11 * RHS10; + const double f11 = 1.0 / m_A35; + const double f11_12 = -f11 * m_A38; + m_A39 += m_A36 * f11_12; + RHS12 += f11_12 * RHS11; + const double f12 = 1.0 / m_A39; + const double f12_17 = -f12 * m_A66; + m_A69 += m_A40 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A42; + const double f13_14 = -f13 * m_A47; + m_A48 += m_A43 * f13_14; + m_A49 += m_A44 * f13_14; + RHS14 += f13_14 * RHS13; + const double f14 = 1.0 / m_A48; + const double f14_15 = -f14 * m_A54; + m_A55 += m_A49 * f14_15; + m_A56 += m_A50 * f14_15; + RHS15 += f14_15 * RHS14; + const double f14_16 = -f14 * m_A60; + m_A61 += m_A49 * f14_16; + m_A62 += m_A50 * f14_16; + RHS16 += f14_16 * RHS14; + const double f15 = 1.0 / m_A55; + const double f15_16 = -f15 * m_A61; + m_A62 += m_A56 * f15_16; + m_A63 += m_A57 * f15_16; + RHS16 += f15_16 * RHS15; + const double f15_17 = -f15 * m_A67; + m_A68 += m_A56 * f15_17; + m_A69 += m_A57 * f15_17; + RHS17 += f15_17 * RHS15; + const double f16 = 1.0 / m_A62; + const double f16_17 = -f16 * m_A68; + m_A69 += m_A63 * f16_17; + RHS17 += f16_17 * RHS16; + V[17] = RHS17 / m_A69; + double tmp16 = 0.0; + tmp16 += m_A63 * V[17]; + V[16] = (RHS16 - tmp16) / m_A62; + double tmp15 = 0.0; + tmp15 += m_A56 * V[16]; + tmp15 += m_A57 * V[17]; + V[15] = (RHS15 - tmp15) / m_A55; + double tmp14 = 0.0; + tmp14 += m_A49 * V[15]; + tmp14 += m_A50 * V[16]; + V[14] = (RHS14 - tmp14) / m_A48; + double tmp13 = 0.0; + tmp13 += m_A43 * V[14]; + tmp13 += m_A44 * V[15]; + V[13] = (RHS13 - tmp13) / m_A42; + double tmp12 = 0.0; + tmp12 += m_A40 * V[17]; + V[12] = (RHS12 - tmp12) / m_A39; + double tmp11 = 0.0; + tmp11 += m_A36 * V[12]; + V[11] = (RHS11 - tmp11) / m_A35; + double tmp10 = 0.0; + tmp10 += m_A31 * V[11]; + V[10] = (RHS10 - tmp10) / m_A30; + double tmp9 = 0.0; + tmp9 += m_A26 * V[16]; + tmp9 += m_A27 * V[17]; + V[9] = (RHS9 - tmp9) / m_A25; + double tmp8 = 0.0; + tmp8 += m_A23 * V[13]; + tmp8 += m_A24 * V[14]; + V[8] = (RHS8 - tmp8) / m_A22; + double tmp7 = 0.0; + tmp7 += m_A20 * V[14]; + tmp7 += m_A21 * V[15]; + V[7] = (RHS7 - tmp7) / m_A19; + double tmp6 = 0.0; + tmp6 += m_A17 * V[7]; + tmp6 += m_A18 * V[15]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A14 * V[6]; + tmp5 += m_A15 * V[15]; + V[5] = (RHS5 - tmp5) / m_A13; + double tmp4 = 0.0; + tmp4 += m_A12 * V[9]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A9 * V[12]; + tmp3 += m_A10 * V[17]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A6 * V[11]; + tmp2 += m_A7 * V[12]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[10]; + tmp1 += m_A4 * V[11]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[10]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_4f2b2f3cdc384f75_41_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A4 += go[7]; + m_A3 += go[8]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A5 += gt[14]; + m_A5 += gt[15]; + m_A6 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[14] * *cnV[14]; + RHS2 -= go[15] * *cnV[15]; + m_A7 += gt[16]; + m_A7 += gt[17]; + m_A7 += gt[18]; + m_A8 += go[16]; + m_A9 += go[17]; + double RHS3 = Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[18] * *cnV[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A10 += gt[24]; + m_A10 += gt[25]; + m_A11 += go[19]; + m_A12 += go[20]; + m_A13 += go[21]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + RHS4 -= go[25] * *cnV[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A16 += gt[28]; + m_A16 += gt[29]; + m_A16 += gt[30]; + m_A15 += go[26]; + m_A14 += go[27]; + double RHS5 = Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 += Idr[30]; + RHS5 -= go[28] * *cnV[28]; + RHS5 -= go[29] * *cnV[29]; + RHS5 -= go[30] * *cnV[30]; + m_A19 += gt[31]; + m_A19 += gt[32]; + m_A19 += gt[33]; + m_A19 += gt[34]; + m_A19 += gt[35]; + m_A19 += gt[36]; + m_A19 += gt[37]; + m_A20 += go[31]; + m_A18 += go[32]; + double RHS6 = Idr[31]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 += Idr[34]; + RHS6 += Idr[35]; + RHS6 += Idr[36]; + RHS6 += Idr[37]; + RHS6 -= go[33] * *cnV[33]; + RHS6 -= go[34] * *cnV[34]; + RHS6 -= go[35] * *cnV[35]; + RHS6 -= go[36] * *cnV[36]; + RHS6 -= go[37] * *cnV[37]; + m_A24 += gt[38]; + m_A24 += gt[39]; + m_A24 += gt[40]; + m_A25 += go[38]; + m_A22 += go[39]; + double RHS7 = Idr[38]; + RHS7 += Idr[39]; + RHS7 += Idr[40]; + RHS7 -= go[40] * *cnV[40]; + m_A29 += gt[41]; + m_A29 += gt[42]; + m_A29 += gt[43]; + m_A27 += go[41]; + m_A26 += go[42]; + double RHS8 = Idr[41]; + RHS8 += Idr[42]; + RHS8 += Idr[43]; + RHS8 -= go[43] * *cnV[43]; + m_A35 += gt[44]; + m_A35 += gt[45]; + m_A35 += gt[46]; + m_A32 += go[44]; + m_A31 += go[45]; + m_A36 += go[46]; + double RHS9 = Idr[44]; + RHS9 += Idr[45]; + RHS9 += Idr[46]; + m_A40 += gt[47]; + m_A40 += gt[48]; + m_A40 += gt[49]; + m_A40 += gt[50]; + m_A40 += gt[51]; + m_A37 += go[47]; + m_A39 += go[48]; + m_A38 += go[49]; + double RHS10 = Idr[47]; + RHS10 += Idr[48]; + RHS10 += Idr[49]; + RHS10 += Idr[50]; + RHS10 += Idr[51]; + RHS10 -= go[50] * *cnV[50]; + RHS10 -= go[51] * *cnV[51]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A14; + m_A16 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A15; + m_A16 += m_A3 * f1_5; + m_A17 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f1_7 = -f1 * m_A22; + m_A23 += m_A3 * f1_7; + m_A24 += m_A4 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_10 = -f2 * m_A37; + m_A38 += m_A6 * f2_10; + RHS10 += f2_10 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_6 = -f3 * m_A18; + m_A20 += m_A8 * f3_6; + m_A21 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_8 = -f3 * m_A26; + m_A29 += m_A8 * f3_8; + m_A30 += m_A9 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_9 = -f3 * m_A31; + m_A34 += m_A8 * f3_9; + m_A35 += m_A9 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_8 = -f4 * m_A27; + m_A28 += m_A11 * f4_8; + m_A29 += m_A12 * f4_8; + m_A30 += m_A13 * f4_8; + RHS8 += f4_8 * RHS4; + const double f4_9 = -f4 * m_A32; + m_A33 += m_A11 * f4_9; + m_A34 += m_A12 * f4_9; + m_A35 += m_A13 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A16; + const double f5_7 = -f5 * m_A23; + m_A24 += m_A17 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_8 = -f6 * m_A28; + m_A29 += m_A20 * f6_8; + m_A30 += m_A21 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_9 = -f6 * m_A33; + m_A34 += m_A20 * f6_9; + m_A35 += m_A21 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A24; + const double f7_10 = -f7 * m_A38; + m_A40 += m_A25 * f7_10; + RHS10 += f7_10 * RHS7; + const double f8 = 1.0 / m_A29; + const double f8_9 = -f8 * m_A34; + m_A35 += m_A30 * f8_9; + RHS9 += f8_9 * RHS8; + const double f9 = 1.0 / m_A35; + const double f9_10 = -f9 * m_A39; + m_A40 += m_A36 * f9_10; + RHS10 += f9_10 * RHS9; + V[10] = RHS10 / m_A40; + double tmp9 = 0.0; + tmp9 += m_A36 * V[10]; + V[9] = (RHS9 - tmp9) / m_A35; + double tmp8 = 0.0; + tmp8 += m_A30 * V[9]; + V[8] = (RHS8 - tmp8) / m_A29; + double tmp7 = 0.0; + tmp7 += m_A25 * V[10]; + V[7] = (RHS7 - tmp7) / m_A24; + double tmp6 = 0.0; + tmp6 += m_A20 * V[8]; + tmp6 += m_A21 * V[9]; + V[6] = (RHS6 - tmp6) / m_A19; + double tmp5 = 0.0; + tmp5 += m_A17 * V[7]; + V[5] = (RHS5 - tmp5) / m_A16; + double tmp4 = 0.0; + tmp4 += m_A11 * V[6]; + tmp4 += m_A12 * V[8]; + tmp4 += m_A13 * V[9]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A8 * V[8]; + tmp3 += m_A9 * V[9]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A6 * V[7]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[5]; + tmp1 += m_A4 * V[7]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// boxingb +static void nl_gcr_50f5194a994d56ec_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A6 += go[10]; + m_A8 += go[11]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A9 += go[12]; + m_A11 += go[13]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + m_A15 += gt[14]; + m_A15 += gt[15]; + m_A15 += gt[16]; + m_A15 += gt[17]; + m_A13 += go[14]; + m_A14 += go[15]; + m_A12 += go[16]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A12; + m_A15 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A6; + m_A7 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A9; + m_A10 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_5 = -f3 * m_A13; + m_A15 += m_A8 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_5 = -f4 * m_A14; + m_A15 += m_A11 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A15; + double tmp4 = 0.0; + tmp4 += m_A11 * V[5]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A8 * V[5]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starhawk +static void nl_gcr_528a27fe9ed07d67_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A3 += go[7]; + m_A3 += go[8]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A5 += go[11]; + double RHS2 = Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[12] * *cnV[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A7 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A9 += go[16]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A11 += go[19]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + m_A12 += gt[22]; + m_A12 += gt[23]; + m_A12 += gt[24]; + m_A13 += go[22]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[23] * *cnV[23]; + RHS6 -= go[24] * *cnV[24]; + m_A14 += gt[25]; + m_A14 += gt[26]; + m_A15 += go[25]; + m_A16 += go[26]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + m_A17 += gt[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[27]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 -= go[28] * *cnV[28]; + RHS8 -= go[29] * *cnV[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A19 += gt[32]; + m_A20 += go[30]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 -= go[31] * *cnV[31]; + RHS9 -= go[32] * *cnV[32]; + m_A21 += gt[33]; + m_A21 += gt[34]; + m_A21 += gt[35]; + m_A22 += go[33]; + double RHS10 = Idr[33]; + RHS10 += Idr[34]; + RHS10 += Idr[35]; + RHS10 -= go[34] * *cnV[34]; + RHS10 -= go[35] * *cnV[35]; + m_A23 += gt[36]; + m_A23 += gt[37]; + m_A23 += gt[38]; + m_A24 += go[36]; + double RHS11 = Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 -= go[37] * *cnV[37]; + RHS11 -= go[38] * *cnV[38]; + m_A34 += gt[39]; + m_A34 += gt[40]; + m_A34 += gt[41]; + m_A34 += gt[42]; + m_A34 += gt[43]; + m_A34 += gt[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A33 += go[39]; + m_A32 += go[40]; + m_A31 += go[41]; + m_A30 += go[42]; + m_A29 += go[43]; + m_A28 += go[44]; + m_A27 += go[45]; + m_A26 += go[46]; + m_A25 += go[47]; + double RHS12 = Idr[39]; + RHS12 += Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 -= go[48] * *cnV[48]; + m_A38 += gt[49]; + m_A38 += gt[50]; + m_A38 += gt[51]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A38 += gt[54]; + m_A36 += go[49]; + m_A39 += go[50]; + m_A37 += go[51]; + m_A37 += go[52]; + double RHS13 = Idr[49]; + RHS13 += Idr[50]; + RHS13 += Idr[51]; + RHS13 += Idr[52]; + RHS13 += Idr[53]; + RHS13 += Idr[54]; + RHS13 -= go[53] * *cnV[53]; + RHS13 -= go[54] * *cnV[54]; + m_A44 += gt[55]; + m_A44 += gt[56]; + m_A44 += gt[57]; + m_A44 += gt[58]; + m_A44 += gt[59]; + m_A41 += go[55]; + m_A40 += go[56]; + m_A43 += go[57]; + double RHS14 = Idr[55]; + RHS14 += Idr[56]; + RHS14 += Idr[57]; + RHS14 += Idr[58]; + RHS14 += Idr[59]; + RHS14 -= go[58] * *cnV[58]; + RHS14 -= go[59] * *cnV[59]; + const double f0 = 1.0 / m_A0; + const double f0_13 = -f0 * m_A36; + m_A37 += m_A1 * f0_13; + RHS13 += f0_13 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_13 = -f1 * m_A37; + m_A38 += m_A3 * f1_13; + RHS13 += f1_13 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_14 = -f2 * m_A40; + m_A44 += m_A5 * f2_14; + RHS14 += f2_14 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_12 = -f3 * m_A25; + m_A34 += m_A7 * f3_12; + RHS12 += f3_12 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_12 = -f4 * m_A26; + m_A34 += m_A9 * f4_12; + RHS12 += f4_12 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_12 = -f5 * m_A27; + m_A34 += m_A11 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_12 = -f6 * m_A28; + m_A34 += m_A13 * f6_12; + RHS12 += f6_12 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_12 = -f7 * m_A29; + m_A34 += m_A15 * f7_12; + m_A35 += m_A16 * f7_12; + RHS12 += f7_12 * RHS7; + const double f7_14 = -f7 * m_A41; + m_A42 += m_A15 * f7_14; + m_A44 += m_A16 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_12 = -f8 * m_A30; + m_A34 += m_A18 * f8_12; + RHS12 += f8_12 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_12 = -f9 * m_A31; + m_A34 += m_A20 * f9_12; + RHS12 += f9_12 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_12 = -f10 * m_A32; + m_A34 += m_A22 * f10_12; + RHS12 += f10_12 * RHS10; + const double f11 = 1.0 / m_A23; + const double f11_12 = -f11 * m_A33; + m_A34 += m_A24 * f11_12; + RHS12 += f11_12 * RHS11; + const double f12 = 1.0 / m_A34; + const double f12_14 = -f12 * m_A42; + m_A44 += m_A35 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A38; + const double f13_14 = -f13 * m_A43; + m_A44 += m_A39 * f13_14; + RHS14 += f13_14 * RHS13; + V[14] = RHS14 / m_A44; + double tmp13 = 0.0; + tmp13 += m_A39 * V[14]; + V[13] = (RHS13 - tmp13) / m_A38; + double tmp12 = 0.0; + tmp12 += m_A35 * V[14]; + V[12] = (RHS12 - tmp12) / m_A34; + double tmp11 = 0.0; + tmp11 += m_A24 * V[12]; + V[11] = (RHS11 - tmp11) / m_A23; + double tmp10 = 0.0; + tmp10 += m_A22 * V[12]; + V[10] = (RHS10 - tmp10) / m_A21; + double tmp9 = 0.0; + tmp9 += m_A20 * V[12]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A18 * V[12]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A15 * V[12]; + tmp7 += m_A16 * V[14]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[12]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[12]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[12]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[12]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[14]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[13]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[1]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// astrob +static void nl_gcr_536c3652eb3bc075_46_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A3 += go[7]; + m_A4 += go[8]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A6 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A7 += gt[13]; + m_A7 += gt[14]; + m_A7 += gt[15]; + m_A8 += go[13]; + m_A9 += go[14]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[16]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[17] * *cnV[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A14 += go[18]; + m_A13 += go[19]; + m_A13 += go[20]; + double RHS5 = Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 -= go[21] * *cnV[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A16 += gt[28]; + m_A15 += go[22]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 -= go[23] * *cnV[23]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + RHS6 -= go[28] * *cnV[28]; + m_A21 += gt[29]; + m_A21 += gt[30]; + m_A21 += gt[31]; + m_A21 += gt[32]; + m_A21 += gt[33]; + m_A19 += go[29]; + m_A22 += go[30]; + m_A20 += go[31]; + double RHS7 = Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 -= go[32] * *cnV[32]; + RHS7 -= go[33] * *cnV[33]; + m_A26 += gt[34]; + m_A26 += gt[35]; + m_A26 += gt[36]; + m_A26 += gt[37]; + m_A26 += gt[38]; + m_A26 += gt[39]; + m_A27 += go[34]; + m_A27 += go[35]; + m_A25 += go[36]; + m_A25 += go[37]; + m_A24 += go[38]; + m_A28 += go[39]; + double RHS8 = Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + m_A31 += gt[40]; + m_A31 += gt[41]; + m_A31 += gt[42]; + m_A31 += gt[43]; + m_A31 += gt[44]; + m_A29 += go[40]; + m_A30 += go[41]; + m_A30 += go[42]; + double RHS9 = Idr[40]; + RHS9 += Idr[41]; + RHS9 += Idr[42]; + RHS9 += Idr[43]; + RHS9 += Idr[44]; + RHS9 -= go[43] * *cnV[43]; + RHS9 -= go[44] * *cnV[44]; + m_A36 += gt[45]; + m_A36 += gt[46]; + m_A36 += gt[47]; + m_A36 += gt[48]; + m_A36 += gt[49]; + m_A34 += go[45]; + m_A33 += go[46]; + m_A35 += go[47]; + m_A37 += go[48]; + double RHS10 = Idr[45]; + RHS10 += Idr[46]; + RHS10 += Idr[47]; + RHS10 += Idr[48]; + RHS10 += Idr[49]; + RHS10 -= go[49] * *cnV[49]; + m_A45 += gt[50]; + m_A45 += gt[51]; + m_A45 += gt[52]; + m_A45 += gt[53]; + m_A45 += gt[54]; + m_A45 += gt[55]; + m_A45 += gt[56]; + m_A40 += go[50]; + m_A42 += go[51]; + m_A39 += go[52]; + m_A44 += go[53]; + m_A38 += go[54]; + double RHS11 = Idr[50]; + RHS11 += Idr[51]; + RHS11 += Idr[52]; + RHS11 += Idr[53]; + RHS11 += Idr[54]; + RHS11 += Idr[55]; + RHS11 += Idr[56]; + RHS11 -= go[55] * *cnV[55]; + RHS11 -= go[56] * *cnV[56]; + const double f0 = 1.0 / m_A0; + const double f0_7 = -f0 * m_A19; + m_A20 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A20; + m_A21 += m_A3 * f1_7; + m_A23 += m_A4 * f1_7; + RHS7 += f1_7 * RHS1; + const double f1_11 = -f1 * m_A38; + m_A41 += m_A3 * f1_11; + m_A45 += m_A4 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_10 = -f2 * m_A33; + m_A36 += m_A6 * f2_10; + RHS10 += f2_10 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_6 = -f3 * m_A15; + m_A17 += m_A8 * f3_6; + m_A18 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_10 = -f3 * m_A34; + m_A36 += m_A8 * f3_10; + m_A37 += m_A9 * f3_10; + RHS10 += f3_10 * RHS3; + const double f3_11 = -f3 * m_A39; + m_A44 += m_A8 * f3_11; + m_A45 += m_A9 * f3_11; + RHS11 += f3_11 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_8 = -f4 * m_A24; + m_A26 += m_A11 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_8 = -f5 * m_A25; + m_A26 += m_A13 * f5_8; + m_A27 += m_A14 * f5_8; + RHS8 += f5_8 * RHS5; + const double f5_9 = -f5 * m_A29; + m_A30 += m_A13 * f5_9; + m_A31 += m_A14 * f5_9; + RHS9 += f5_9 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_11 = -f6 * m_A40; + m_A44 += m_A17 * f6_11; + m_A45 += m_A18 * f6_11; + RHS11 += f6_11 * RHS6; + const double f7 = 1.0 / m_A21; + const double f7_10 = -f7 * m_A35; + m_A36 += m_A22 * f7_10; + m_A37 += m_A23 * f7_10; + RHS10 += f7_10 * RHS7; + const double f7_11 = -f7 * m_A41; + m_A44 += m_A22 * f7_11; + m_A45 += m_A23 * f7_11; + RHS11 += f7_11 * RHS7; + const double f8 = 1.0 / m_A26; + const double f8_9 = -f8 * m_A30; + m_A31 += m_A27 * f8_9; + m_A32 += m_A28 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_11 = -f8 * m_A42; + m_A43 += m_A27 * f8_11; + m_A45 += m_A28 * f8_11; + RHS11 += f8_11 * RHS8; + const double f9 = 1.0 / m_A31; + const double f9_11 = -f9 * m_A43; + m_A45 += m_A32 * f9_11; + RHS11 += f9_11 * RHS9; + const double f10 = 1.0 / m_A36; + const double f10_11 = -f10 * m_A44; + m_A45 += m_A37 * f10_11; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A45; + double tmp10 = 0.0; + tmp10 += m_A37 * V[11]; + V[10] = (RHS10 - tmp10) / m_A36; + double tmp9 = 0.0; + tmp9 += m_A32 * V[11]; + V[9] = (RHS9 - tmp9) / m_A31; + double tmp8 = 0.0; + tmp8 += m_A27 * V[9]; + tmp8 += m_A28 * V[11]; + V[8] = (RHS8 - tmp8) / m_A26; + double tmp7 = 0.0; + tmp7 += m_A22 * V[10]; + tmp7 += m_A23 * V[11]; + V[7] = (RHS7 - tmp7) / m_A21; + double tmp6 = 0.0; + tmp6 += m_A17 * V[10]; + tmp6 += m_A18 * V[11]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A13 * V[8]; + tmp5 += m_A14 * V[9]; + V[5] = (RHS5 - tmp5) / m_A12; + double tmp4 = 0.0; + tmp4 += m_A11 * V[8]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A8 * V[10]; + tmp3 += m_A9 * V[11]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A6 * V[10]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[7]; + tmp1 += m_A4 * V[11]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[1]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// boxingb +static void nl_gcr_53e1117fdb16f546_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[4]; + m_A3 += go[5]; + m_A3 += go[6]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A7 += go[10]; + m_A6 += go[11]; + m_A6 += go[12]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A9 += go[14]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[15] * *cnV[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A11 += go[16]; + m_A11 += go[17]; + m_A10 += go[18]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + m_A17 += gt[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A15 += go[21]; + m_A15 += go[22]; + m_A14 += go[23]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A20 += go[26]; + m_A19 += go[27]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 -= go[28] * *cnV[28]; + RHS6 -= go[29] * *cnV[29]; + RHS6 -= go[30] * *cnV[30]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A10; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A11; + m_A12 += m_A3 * f1_4; + m_A13 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A14; + m_A16 += m_A3 * f1_5; + m_A17 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_5 = -f2 * m_A15; + m_A17 += m_A6 * f2_5; + m_A18 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_6 = -f2 * m_A19; + m_A21 += m_A6 * f2_6; + m_A22 += m_A7 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_6 = -f3 * m_A20; + m_A22 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_5 = -f4 * m_A16; + m_A17 += m_A13 * f4_5; + RHS5 += f4_5 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A18 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A22; + double tmp5 = 0.0; + tmp5 += m_A18 * V[6]; + V[5] = (RHS5 - tmp5) / m_A17; + double tmp4 = 0.0; + tmp4 += m_A13 * V[5]; + V[4] = (RHS4 - tmp4) / m_A12; + double tmp3 = 0.0; + tmp3 += m_A9 * V[6]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A6 * V[5]; + tmp2 += m_A7 * V[6]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[4]; + tmp1 += m_A4 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// cheekyms +static void nl_gcr_546396f65ce48700_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A2 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[2] * *cnV[2]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A4 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A7 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + m_A11 += gt[7]; + m_A11 += gt[8]; + m_A11 += gt[9]; + m_A11 += gt[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A9 += go[7]; + m_A10 += go[8]; + m_A8 += go[9]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A6 += m_A1 * f0_2; + m_A7 += m_A2 * f0_2; + RHS2 += f0_2 * RHS0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + m_A11 += m_A2 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_3 = -f1 * m_A9; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A7 * V[3]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + tmp0 += m_A2 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// dpatrol +static void nl_gcr_59cb6bf7cb9d17dc_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A6 += gt[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A5 += go[4]; + m_A4 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_5a3419e2809520de_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A11 += go[12]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A8; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A9; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A7 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; + double tmp3 = 0.0; + tmp3 += m_A7 * V[4]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// segausb +static void nl_gcr_5b73834d5f313d38_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A7 += gt[7]; + m_A7 += gt[8]; + m_A7 += gt[9]; + m_A6 += go[7]; + m_A5 += go[8]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[9] * *cnV[9]; + m_A11 += gt[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A11 += gt[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A9 += go[10]; + m_A10 += go[11]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A7 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A6; + m_A7 += m_A3 * f1_2; + m_A8 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A8 * V[3]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// tailg +static void nl_gcr_5ccf7da1202da2e5_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A0 += gt[7]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 += Idr[7]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + RHS0 -= go[7] * *cnV[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A3 += go[8]; + double RHS1 = Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A5 += go[11]; + double RHS2 = Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A7 += go[14]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A9 += go[17]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A11 += go[20]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + m_A12 += gt[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A13 += go[23]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + m_A14 += gt[26]; + m_A14 += gt[27]; + m_A14 += gt[28]; + m_A15 += go[26]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 += Idr[28]; + RHS7 -= go[27] * *cnV[27]; + RHS7 -= go[28] * *cnV[28]; + m_A16 += gt[29]; + m_A16 += gt[30]; + m_A16 += gt[31]; + m_A17 += go[29]; + double RHS8 = Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + m_A19 += gt[32]; + m_A19 += gt[33]; + m_A20 += go[32]; + m_A18 += go[33]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A30 += gt[37]; + m_A30 += gt[38]; + m_A30 += gt[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A30 += gt[43]; + m_A28 += go[34]; + m_A27 += go[35]; + m_A26 += go[36]; + m_A25 += go[37]; + m_A29 += go[38]; + m_A24 += go[39]; + m_A23 += go[40]; + m_A22 += go[41]; + m_A21 += go[42]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 -= go[43] * *cnV[43]; + const double f0 = 1.0 / m_A0; + const double f0_9 = -f0 * m_A18; + m_A19 += m_A1 * f0_9; + RHS9 += f0_9 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_10 = -f1 * m_A21; + m_A30 += m_A3 * f1_10; + RHS10 += f1_10 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_10 = -f2 * m_A22; + m_A30 += m_A5 * f2_10; + RHS10 += f2_10 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_10 = -f3 * m_A23; + m_A30 += m_A7 * f3_10; + RHS10 += f3_10 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_10 = -f4 * m_A24; + m_A30 += m_A9 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_10 = -f5 * m_A25; + m_A30 += m_A11 * f5_10; + RHS10 += f5_10 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_10 = -f6 * m_A26; + m_A30 += m_A13 * f6_10; + RHS10 += f6_10 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_10 = -f7 * m_A27; + m_A30 += m_A15 * f7_10; + RHS10 += f7_10 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_10 = -f8 * m_A28; + m_A30 += m_A17 * f8_10; + RHS10 += f8_10 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_10 = -f9 * m_A29; + m_A30 += m_A20 * f9_10; + RHS10 += f9_10 * RHS9; + V[10] = RHS10 / m_A30; + double tmp9 = 0.0; + tmp9 += m_A20 * V[10]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A17 * V[10]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[10]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[10]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[10]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[10]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[10]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[10]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[10]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[9]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starcas +static void nl_gcr_5d550fc7441617a2_109_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A10 += go[8]; + m_A9 += go[9]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 += Idr[10]; + RHS4 -= go[10] * *cnV[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A12 += go[11]; + double RHS5 = Idr[11]; + RHS5 += Idr[12]; + RHS5 -= go[12] * *cnV[12]; + m_A13 += gt[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A15 += go[13]; + m_A14 += go[14]; + double RHS6 = Idr[13]; + RHS6 += Idr[14]; + RHS6 += Idr[15]; + RHS6 -= go[15] * *cnV[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A16 += gt[19]; + m_A17 += go[16]; + double RHS7 = Idr[16]; + RHS7 += Idr[17]; + RHS7 += Idr[18]; + RHS7 += Idr[19]; + RHS7 -= go[17] * *cnV[17]; + RHS7 -= go[18] * *cnV[18]; + RHS7 -= go[19] * *cnV[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A19 += go[20]; + double RHS8 = Idr[20]; + RHS8 += Idr[21]; + RHS8 -= go[21] * *cnV[21]; + m_A20 += gt[22]; + m_A20 += gt[23]; + m_A20 += gt[24]; + m_A20 += gt[25]; + m_A20 += gt[26]; + m_A21 += go[22]; + m_A23 += go[23]; + m_A22 += go[24]; + double RHS9 = Idr[22]; + RHS9 += Idr[23]; + RHS9 += Idr[24]; + RHS9 += Idr[25]; + RHS9 += Idr[26]; + RHS9 -= go[25] * *cnV[25]; + RHS9 -= go[26] * *cnV[26]; + m_A24 += gt[27]; + m_A24 += gt[28]; + m_A24 += gt[29]; + m_A24 += gt[30]; + m_A24 += gt[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A27 += go[27]; + m_A26 += go[28]; + m_A26 += go[29]; + m_A26 += go[30]; + m_A25 += go[31]; + m_A25 += go[32]; + double RHS10 = Idr[27]; + RHS10 += Idr[28]; + RHS10 += Idr[29]; + RHS10 += Idr[30]; + RHS10 += Idr[31]; + RHS10 += Idr[32]; + RHS10 += Idr[33]; + RHS10 -= go[33] * *cnV[33]; + m_A28 += gt[34]; + m_A28 += gt[35]; + m_A29 += go[34]; + double RHS11 = Idr[34]; + RHS11 += Idr[35]; + RHS11 -= go[35] * *cnV[35]; + m_A30 += gt[36]; + m_A30 += gt[37]; + m_A30 += gt[38]; + m_A30 += gt[39]; + m_A30 += gt[40]; + m_A31 += go[36]; + m_A31 += go[37]; + m_A32 += go[38]; + m_A32 += go[39]; + double RHS12 = Idr[36]; + RHS12 += Idr[37]; + RHS12 += Idr[38]; + RHS12 += Idr[39]; + RHS12 += Idr[40]; + RHS12 -= go[40] * *cnV[40]; + m_A33 += gt[41]; + m_A33 += gt[42]; + m_A33 += gt[43]; + m_A35 += go[41]; + m_A34 += go[42]; + double RHS13 = Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 -= go[43] * *cnV[43]; + m_A38 += gt[44]; + m_A38 += gt[45]; + m_A38 += gt[46]; + m_A37 += go[44]; + m_A36 += go[45]; + double RHS14 = Idr[44]; + RHS14 += Idr[45]; + RHS14 += Idr[46]; + RHS14 -= go[46] * *cnV[46]; + m_A42 += gt[47]; + m_A42 += gt[48]; + m_A42 += gt[49]; + m_A41 += go[47]; + m_A40 += go[48]; + double RHS15 = Idr[47]; + RHS15 += Idr[48]; + RHS15 += Idr[49]; + RHS15 -= go[49] * *cnV[49]; + m_A46 += gt[50]; + m_A46 += gt[51]; + m_A46 += gt[52]; + m_A44 += go[50]; + m_A47 += go[51]; + double RHS16 = Idr[50]; + RHS16 += Idr[51]; + RHS16 += Idr[52]; + RHS16 -= go[52] * *cnV[52]; + m_A50 += gt[53]; + m_A50 += gt[54]; + m_A50 += gt[55]; + m_A48 += go[53]; + m_A51 += go[54]; + double RHS17 = Idr[53]; + RHS17 += Idr[54]; + RHS17 += Idr[55]; + RHS17 -= go[55] * *cnV[55]; + m_A54 += gt[56]; + m_A54 += gt[57]; + m_A54 += gt[58]; + m_A54 += gt[59]; + m_A54 += gt[60]; + m_A54 += gt[61]; + m_A53 += go[56]; + m_A53 += go[57]; + m_A52 += go[58]; + double RHS18 = Idr[56]; + RHS18 += Idr[57]; + RHS18 += Idr[58]; + RHS18 += Idr[59]; + RHS18 += Idr[60]; + RHS18 += Idr[61]; + RHS18 -= go[59] * *cnV[59]; + RHS18 -= go[60] * *cnV[60]; + RHS18 -= go[61] * *cnV[61]; + m_A58 += gt[62]; + m_A58 += gt[63]; + m_A58 += gt[64]; + m_A58 += gt[65]; + m_A58 += gt[66]; + m_A58 += gt[67]; + m_A58 += gt[68]; + m_A57 += go[62]; + m_A59 += go[63]; + double RHS19 = Idr[62]; + RHS19 += Idr[63]; + RHS19 += Idr[64]; + RHS19 += Idr[65]; + RHS19 += Idr[66]; + RHS19 += Idr[67]; + RHS19 += Idr[68]; + RHS19 -= go[64] * *cnV[64]; + RHS19 -= go[65] * *cnV[65]; + RHS19 -= go[66] * *cnV[66]; + RHS19 -= go[67] * *cnV[67]; + RHS19 -= go[68] * *cnV[68]; + m_A63 += gt[69]; + m_A63 += gt[70]; + m_A63 += gt[71]; + m_A63 += gt[72]; + m_A63 += gt[73]; + m_A63 += gt[74]; + m_A64 += go[69]; + m_A64 += go[70]; + m_A61 += go[71]; + m_A61 += go[72]; + m_A61 += go[73]; + m_A60 += go[74]; + double RHS20 = Idr[69]; + RHS20 += Idr[70]; + RHS20 += Idr[71]; + RHS20 += Idr[72]; + RHS20 += Idr[73]; + RHS20 += Idr[74]; + m_A69 += gt[75]; + m_A69 += gt[76]; + m_A69 += gt[77]; + m_A69 += gt[78]; + m_A68 += go[75]; + m_A68 += go[76]; + m_A70 += go[77]; + m_A67 += go[78]; + double RHS21 = Idr[75]; + RHS21 += Idr[76]; + RHS21 += Idr[77]; + RHS21 += Idr[78]; + m_A73 += gt[79]; + m_A73 += gt[80]; + m_A73 += gt[81]; + m_A72 += go[79]; + m_A71 += go[80]; + double RHS22 = Idr[79]; + RHS22 += Idr[80]; + RHS22 += Idr[81]; + RHS22 -= go[81] * *cnV[81]; + m_A80 += gt[82]; + m_A80 += gt[83]; + m_A80 += gt[84]; + m_A80 += gt[85]; + m_A80 += gt[86]; + m_A80 += gt[87]; + m_A80 += gt[88]; + m_A80 += gt[89]; + m_A79 += go[82]; + m_A76 += go[83]; + m_A76 += go[84]; + m_A78 += go[85]; + m_A78 += go[86]; + m_A75 += go[87]; + double RHS23 = Idr[82]; + RHS23 += Idr[83]; + RHS23 += Idr[84]; + RHS23 += Idr[85]; + RHS23 += Idr[86]; + RHS23 += Idr[87]; + RHS23 += Idr[88]; + RHS23 += Idr[89]; + RHS23 -= go[88] * *cnV[88]; + RHS23 -= go[89] * *cnV[89]; + m_A87 += gt[90]; + m_A87 += gt[91]; + m_A87 += gt[92]; + m_A87 += gt[93]; + m_A84 += go[90]; + m_A89 += go[91]; + m_A83 += go[92]; + double RHS24 = Idr[90]; + RHS24 += Idr[91]; + RHS24 += Idr[92]; + RHS24 += Idr[93]; + RHS24 -= go[93] * *cnV[93]; + m_A95 += gt[94]; + m_A95 += gt[95]; + m_A95 += gt[96]; + m_A95 += gt[97]; + m_A91 += go[94]; + m_A96 += go[95]; + m_A90 += go[96]; + double RHS25 = Idr[94]; + RHS25 += Idr[95]; + RHS25 += Idr[96]; + RHS25 += Idr[97]; + RHS25 -= go[97] * *cnV[97]; + m_A99 += gt[98]; + m_A99 += gt[99]; + m_A99 += gt[100]; + m_A97 += go[98]; + m_A100 += go[99]; + double RHS26 = Idr[98]; + RHS26 += Idr[99]; + RHS26 += Idr[100]; + RHS26 -= go[100] * *cnV[100]; + m_A108 += gt[101]; + m_A108 += gt[102]; + m_A108 += gt[103]; + m_A108 += gt[104]; + m_A108 += gt[105]; + m_A108 += gt[106]; + m_A108 += gt[107]; + m_A108 += gt[108]; + m_A108 += gt[109]; + m_A104 += go[101]; + m_A101 += go[102]; + m_A107 += go[103]; + m_A103 += go[104]; + m_A102 += go[105]; + m_A106 += go[106]; + m_A105 += go[107]; + double RHS27 = Idr[101]; + RHS27 += Idr[102]; + RHS27 += Idr[103]; + RHS27 += Idr[104]; + RHS27 += Idr[105]; + RHS27 += Idr[106]; + RHS27 += Idr[107]; + RHS27 += Idr[108]; + RHS27 += Idr[109]; + RHS27 -= go[108] * *cnV[108]; + RHS27 -= go[109] * *cnV[109]; + const double f0 = 1.0 / m_A0; + const double f0_14 = -f0 * m_A36; + m_A38 += m_A1 * f0_14; + RHS14 += f0_14 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_15 = -f1 * m_A40; + m_A42 += m_A3 * f1_15; + RHS15 += f1_15 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_24 = -f2 * m_A83; + m_A87 += m_A5 * f2_24; + RHS24 += f2_24 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_25 = -f3 * m_A90; + m_A95 += m_A7 * f3_25; + RHS25 += f3_25 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_14 = -f4 * m_A37; + m_A38 += m_A9 * f4_14; + m_A39 += m_A10 * f4_14; + RHS14 += f4_14 * RHS4; + const double f4_16 = -f4 * m_A44; + m_A45 += m_A9 * f4_16; + m_A46 += m_A10 * f4_16; + RHS16 += f4_16 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_22 = -f5 * m_A71; + m_A73 += m_A12 * f5_22; + RHS22 += f5_22 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_15 = -f6 * m_A41; + m_A42 += m_A14 * f6_15; + m_A43 += m_A15 * f6_15; + RHS15 += f6_15 * RHS6; + const double f6_17 = -f6 * m_A48; + m_A49 += m_A14 * f6_17; + m_A50 += m_A15 * f6_17; + RHS17 += f6_17 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_18 = -f7 * m_A52; + m_A54 += m_A17 * f7_18; + RHS18 += f7_18 * RHS7; + const double f8 = 1.0 / m_A18; + const double f8_19 = -f8 * m_A57; + m_A59 += m_A19 * f8_19; + RHS19 += f8_19 * RHS8; + const double f8_27 = -f8 * m_A101; + m_A108 += m_A19 * f8_27; + RHS27 += f8_27 * RHS8; + const double f9 = 1.0 / m_A20; + const double f9_20 = -f9 * m_A60; + m_A63 += m_A21 * f9_20; + m_A65 += m_A22 * f9_20; + m_A66 += m_A23 * f9_20; + RHS20 += f9_20 * RHS9; + const double f9_24 = -f9 * m_A84; + m_A85 += m_A21 * f9_24; + m_A87 += m_A22 * f9_24; + m_A88 += m_A23 * f9_24; + RHS24 += f9_24 * RHS9; + const double f9_25 = -f9 * m_A91; + m_A92 += m_A21 * f9_25; + m_A94 += m_A22 * f9_25; + m_A95 += m_A23 * f9_25; + RHS25 += f9_25 * RHS9; + const double f10 = 1.0 / m_A24; + const double f10_18 = -f10 * m_A53; + m_A54 += m_A25 * f10_18; + m_A55 += m_A26 * f10_18; + m_A56 += m_A27 * f10_18; + RHS18 += f10_18 * RHS10; + const double f10_20 = -f10 * m_A61; + m_A62 += m_A25 * f10_20; + m_A63 += m_A26 * f10_20; + m_A64 += m_A27 * f10_20; + RHS20 += f10_20 * RHS10; + const double f10_23 = -f10 * m_A75; + m_A77 += m_A25 * f10_23; + m_A78 += m_A26 * f10_23; + m_A80 += m_A27 * f10_23; + RHS23 += f10_23 * RHS10; + const double f11 = 1.0 / m_A28; + const double f11_21 = -f11 * m_A67; + m_A69 += m_A29 * f11_21; + RHS21 += f11_21 * RHS11; + const double f12 = 1.0 / m_A30; + const double f12_21 = -f12 * m_A68; + m_A69 += m_A31 * f12_21; + m_A70 += m_A32 * f12_21; + RHS21 += f12_21 * RHS12; + const double f12_23 = -f12 * m_A76; + m_A79 += m_A31 * f12_23; + m_A80 += m_A32 * f12_23; + RHS23 += f12_23 * RHS12; + const double f13 = 1.0 / m_A33; + const double f13_22 = -f13 * m_A72; + m_A73 += m_A34 * f13_22; + m_A74 += m_A35 * f13_22; + RHS22 += f13_22 * RHS13; + const double f13_26 = -f13 * m_A97; + m_A98 += m_A34 * f13_26; + m_A99 += m_A35 * f13_26; + RHS26 += f13_26 * RHS13; + const double f14 = 1.0 / m_A38; + const double f14_16 = -f14 * m_A45; + m_A46 += m_A39 * f14_16; + RHS16 += f14_16 * RHS14; + const double f15 = 1.0 / m_A42; + const double f15_17 = -f15 * m_A49; + m_A50 += m_A43 * f15_17; + RHS17 += f15_17 * RHS15; + const double f16 = 1.0 / m_A46; + const double f16_27 = -f16 * m_A102; + m_A108 += m_A47 * f16_27; + RHS27 += f16_27 * RHS16; + const double f17 = 1.0 / m_A50; + const double f17_27 = -f17 * m_A103; + m_A108 += m_A51 * f17_27; + RHS27 += f17_27 * RHS17; + const double f18 = 1.0 / m_A54; + const double f18_20 = -f18 * m_A62; + m_A63 += m_A55 * f18_20; + m_A64 += m_A56 * f18_20; + RHS20 += f18_20 * RHS18; + const double f18_23 = -f18 * m_A77; + m_A78 += m_A55 * f18_23; + m_A80 += m_A56 * f18_23; + RHS23 += f18_23 * RHS18; + const double f19 = 1.0 / m_A58; + const double f19_27 = -f19 * m_A104; + m_A108 += m_A59 * f19_27; + RHS27 += f19_27 * RHS19; + const double f20 = 1.0 / m_A63; + const double f20_23 = -f20 * m_A78; + m_A80 += m_A64 * f20_23; + m_A81 += m_A65 * f20_23; + m_A82 += m_A66 * f20_23; + RHS23 += f20_23 * RHS20; + const double f20_24 = -f20 * m_A85; + m_A86 += m_A64 * f20_24; + m_A87 += m_A65 * f20_24; + m_A88 += m_A66 * f20_24; + RHS24 += f20_24 * RHS20; + const double f20_25 = -f20 * m_A92; + m_A93 += m_A64 * f20_25; + m_A94 += m_A65 * f20_25; + m_A95 += m_A66 * f20_25; + RHS25 += f20_25 * RHS20; + const double f21 = 1.0 / m_A69; + const double f21_23 = -f21 * m_A79; + m_A80 += m_A70 * f21_23; + RHS23 += f21_23 * RHS21; + const double f22 = 1.0 / m_A73; + const double f22_26 = -f22 * m_A98; + m_A99 += m_A74 * f22_26; + RHS26 += f22_26 * RHS22; + const double f23 = 1.0 / m_A80; + const double f23_24 = -f23 * m_A86; + m_A87 += m_A81 * f23_24; + m_A88 += m_A82 * f23_24; + RHS24 += f23_24 * RHS23; + const double f23_25 = -f23 * m_A93; + m_A94 += m_A81 * f23_25; + m_A95 += m_A82 * f23_25; + RHS25 += f23_25 * RHS23; + const double f24 = 1.0 / m_A87; + const double f24_25 = -f24 * m_A94; + m_A95 += m_A88 * f24_25; + m_A96 += m_A89 * f24_25; + RHS25 += f24_25 * RHS24; + const double f24_27 = -f24 * m_A105; + m_A106 += m_A88 * f24_27; + m_A108 += m_A89 * f24_27; + RHS27 += f24_27 * RHS24; + const double f25 = 1.0 / m_A95; + const double f25_27 = -f25 * m_A106; + m_A108 += m_A96 * f25_27; + RHS27 += f25_27 * RHS25; + const double f26 = 1.0 / m_A99; + const double f26_27 = -f26 * m_A107; + m_A108 += m_A100 * f26_27; + RHS27 += f26_27 * RHS26; + V[27] = RHS27 / m_A108; + double tmp26 = 0.0; + tmp26 += m_A100 * V[27]; + V[26] = (RHS26 - tmp26) / m_A99; + double tmp25 = 0.0; + tmp25 += m_A96 * V[27]; + V[25] = (RHS25 - tmp25) / m_A95; + double tmp24 = 0.0; + tmp24 += m_A88 * V[25]; + tmp24 += m_A89 * V[27]; + V[24] = (RHS24 - tmp24) / m_A87; + double tmp23 = 0.0; + tmp23 += m_A81 * V[24]; + tmp23 += m_A82 * V[25]; + V[23] = (RHS23 - tmp23) / m_A80; + double tmp22 = 0.0; + tmp22 += m_A74 * V[26]; + V[22] = (RHS22 - tmp22) / m_A73; + double tmp21 = 0.0; + tmp21 += m_A70 * V[23]; + V[21] = (RHS21 - tmp21) / m_A69; + double tmp20 = 0.0; + tmp20 += m_A64 * V[23]; + tmp20 += m_A65 * V[24]; + tmp20 += m_A66 * V[25]; + V[20] = (RHS20 - tmp20) / m_A63; + double tmp19 = 0.0; + tmp19 += m_A59 * V[27]; + V[19] = (RHS19 - tmp19) / m_A58; + double tmp18 = 0.0; + tmp18 += m_A55 * V[20]; + tmp18 += m_A56 * V[23]; + V[18] = (RHS18 - tmp18) / m_A54; + double tmp17 = 0.0; + tmp17 += m_A51 * V[27]; + V[17] = (RHS17 - tmp17) / m_A50; + double tmp16 = 0.0; + tmp16 += m_A47 * V[27]; + V[16] = (RHS16 - tmp16) / m_A46; + double tmp15 = 0.0; + tmp15 += m_A43 * V[17]; + V[15] = (RHS15 - tmp15) / m_A42; + double tmp14 = 0.0; + tmp14 += m_A39 * V[16]; + V[14] = (RHS14 - tmp14) / m_A38; + double tmp13 = 0.0; + tmp13 += m_A34 * V[22]; + tmp13 += m_A35 * V[26]; + V[13] = (RHS13 - tmp13) / m_A33; + double tmp12 = 0.0; + tmp12 += m_A31 * V[21]; + tmp12 += m_A32 * V[23]; + V[12] = (RHS12 - tmp12) / m_A30; + double tmp11 = 0.0; + tmp11 += m_A29 * V[21]; + V[11] = (RHS11 - tmp11) / m_A28; + double tmp10 = 0.0; + tmp10 += m_A25 * V[18]; + tmp10 += m_A26 * V[20]; + tmp10 += m_A27 * V[23]; + V[10] = (RHS10 - tmp10) / m_A24; + double tmp9 = 0.0; + tmp9 += m_A21 * V[20]; + tmp9 += m_A22 * V[24]; + tmp9 += m_A23 * V[25]; + V[9] = (RHS9 - tmp9) / m_A20; + double tmp8 = 0.0; + tmp8 += m_A19 * V[27]; + V[8] = (RHS8 - tmp8) / m_A18; + double tmp7 = 0.0; + tmp7 += m_A17 * V[18]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A14 * V[15]; + tmp6 += m_A15 * V[17]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A12 * V[22]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A9 * V[14]; + tmp4 += m_A10 * V[16]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[25]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[24]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[15]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[14]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// zac1b11142 +static void nl_gcr_6041272373b8603c_178_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + m_A7 += gt[7]; + m_A7 += gt[8]; + m_A8 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A10 += go[9]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[10] * *cnV[10]; + RHS4 -= go[11] * *cnV[11]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A12 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A14 += go[18]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 -= go[19] * *cnV[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A16 += go[20]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + RHS7 -= go[21] * *cnV[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A18 += go[22]; + double RHS8 = Idr[22]; + RHS8 += Idr[23]; + RHS8 -= go[23] * *cnV[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A20 += go[24]; + m_A21 += go[25]; + double RHS9 = Idr[24]; + RHS9 += Idr[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A23 += go[26]; + m_A23 += go[27]; + double RHS10 = Idr[26]; + RHS10 += Idr[27]; + RHS10 += Idr[28]; + RHS10 += Idr[29]; + RHS10 -= go[28] * *cnV[28]; + RHS10 -= go[29] * *cnV[29]; + m_A24 += gt[30]; + m_A24 += gt[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A25 += go[30]; + m_A25 += go[31]; + double RHS11 = Idr[30]; + RHS11 += Idr[31]; + RHS11 += Idr[32]; + RHS11 += Idr[33]; + RHS11 -= go[32] * *cnV[32]; + RHS11 -= go[33] * *cnV[33]; + m_A26 += gt[34]; + m_A26 += gt[35]; + m_A26 += gt[36]; + m_A26 += gt[37]; + m_A27 += go[34]; + m_A27 += go[35]; + double RHS12 = Idr[34]; + RHS12 += Idr[35]; + RHS12 += Idr[36]; + RHS12 += Idr[37]; + RHS12 -= go[36] * *cnV[36]; + RHS12 -= go[37] * *cnV[37]; + m_A28 += gt[38]; + m_A28 += gt[39]; + m_A29 += go[38]; + double RHS13 = Idr[38]; + RHS13 += Idr[39]; + RHS13 -= go[39] * *cnV[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A31 += go[40]; + double RHS14 = Idr[40]; + RHS14 += Idr[41]; + RHS14 += Idr[42]; + RHS14 -= go[41] * *cnV[41]; + RHS14 -= go[42] * *cnV[42]; + m_A32 += gt[43]; + m_A32 += gt[44]; + m_A32 += gt[45]; + m_A33 += go[43]; + double RHS15 = Idr[43]; + RHS15 += Idr[44]; + RHS15 += Idr[45]; + RHS15 -= go[44] * *cnV[44]; + RHS15 -= go[45] * *cnV[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A35 += go[46]; + double RHS16 = Idr[46]; + RHS16 += Idr[47]; + RHS16 += Idr[48]; + RHS16 -= go[47] * *cnV[47]; + RHS16 -= go[48] * *cnV[48]; + m_A36 += gt[49]; + m_A36 += gt[50]; + m_A37 += go[49]; + double RHS17 = Idr[49]; + RHS17 += Idr[50]; + RHS17 -= go[50] * *cnV[50]; + m_A38 += gt[51]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A38 += gt[54]; + m_A39 += go[51]; + double RHS18 = Idr[51]; + RHS18 += Idr[52]; + RHS18 += Idr[53]; + RHS18 += Idr[54]; + RHS18 -= go[52] * *cnV[52]; + RHS18 -= go[53] * *cnV[53]; + RHS18 -= go[54] * *cnV[54]; + m_A40 += gt[55]; + m_A40 += gt[56]; + m_A40 += gt[57]; + m_A40 += gt[58]; + m_A40 += gt[59]; + m_A41 += go[55]; + double RHS19 = Idr[55]; + RHS19 += Idr[56]; + RHS19 += Idr[57]; + RHS19 += Idr[58]; + RHS19 += Idr[59]; + RHS19 -= go[56] * *cnV[56]; + RHS19 -= go[57] * *cnV[57]; + RHS19 -= go[58] * *cnV[58]; + RHS19 -= go[59] * *cnV[59]; + m_A42 += gt[60]; + m_A42 += gt[61]; + m_A42 += gt[62]; + m_A42 += gt[63]; + m_A42 += gt[64]; + m_A42 += gt[65]; + m_A42 += gt[66]; + m_A43 += go[60]; + double RHS20 = Idr[60]; + RHS20 += Idr[61]; + RHS20 += Idr[62]; + RHS20 += Idr[63]; + RHS20 += Idr[64]; + RHS20 += Idr[65]; + RHS20 += Idr[66]; + RHS20 -= go[61] * *cnV[61]; + RHS20 -= go[62] * *cnV[62]; + RHS20 -= go[63] * *cnV[63]; + RHS20 -= go[64] * *cnV[64]; + RHS20 -= go[65] * *cnV[65]; + RHS20 -= go[66] * *cnV[66]; + m_A44 += gt[67]; + m_A44 += gt[68]; + m_A44 += gt[69]; + m_A45 += go[67]; + double RHS21 = Idr[67]; + RHS21 += Idr[68]; + RHS21 += Idr[69]; + RHS21 -= go[68] * *cnV[68]; + RHS21 -= go[69] * *cnV[69]; + m_A46 += gt[70]; + m_A46 += gt[71]; + m_A48 += go[70]; + m_A47 += go[71]; + double RHS22 = Idr[70]; + RHS22 += Idr[71]; + m_A49 += gt[72]; + m_A49 += gt[73]; + m_A49 += gt[74]; + m_A51 += go[72]; + m_A50 += go[73]; + double RHS23 = Idr[72]; + RHS23 += Idr[73]; + RHS23 += Idr[74]; + RHS23 -= go[74] * *cnV[74]; + m_A52 += gt[75]; + m_A52 += gt[76]; + m_A52 += gt[77]; + m_A53 += go[75]; + double RHS24 = Idr[75]; + RHS24 += Idr[76]; + RHS24 += Idr[77]; + RHS24 -= go[76] * *cnV[76]; + RHS24 -= go[77] * *cnV[77]; + m_A54 += gt[78]; + m_A54 += gt[79]; + m_A54 += gt[80]; + m_A54 += gt[81]; + m_A55 += go[78]; + m_A55 += go[79]; + m_A56 += go[80]; + double RHS25 = Idr[78]; + RHS25 += Idr[79]; + RHS25 += Idr[80]; + RHS25 += Idr[81]; + RHS25 -= go[81] * *cnV[81]; + m_A60 += gt[82]; + m_A60 += gt[83]; + m_A60 += gt[84]; + m_A59 += go[82]; + m_A58 += go[83]; + m_A57 += go[84]; + double RHS26 = Idr[82]; + RHS26 += Idr[83]; + RHS26 += Idr[84]; + m_A62 += gt[85]; + m_A62 += gt[86]; + m_A63 += go[85]; + m_A64 += go[86]; + double RHS27 = Idr[85]; + RHS27 += Idr[86]; + m_A65 += gt[87]; + m_A65 += gt[88]; + m_A65 += gt[89]; + m_A66 += go[87]; + double RHS28 = Idr[87]; + RHS28 += Idr[88]; + RHS28 += Idr[89]; + RHS28 -= go[88] * *cnV[88]; + RHS28 -= go[89] * *cnV[89]; + m_A67 += gt[90]; + m_A67 += gt[91]; + m_A67 += gt[92]; + m_A69 += go[90]; + m_A68 += go[91]; + double RHS29 = Idr[90]; + RHS29 += Idr[91]; + RHS29 += Idr[92]; + RHS29 -= go[92] * *cnV[92]; + m_A70 += gt[93]; + m_A70 += gt[94]; + m_A72 += go[93]; + m_A71 += go[94]; + double RHS30 = Idr[93]; + RHS30 += Idr[94]; + m_A74 += gt[95]; + m_A74 += gt[96]; + m_A73 += go[95]; + double RHS31 = Idr[95]; + RHS31 += Idr[96]; + RHS31 -= go[96] * *cnV[96]; + m_A82 += gt[97]; + m_A82 += gt[98]; + m_A82 += gt[99]; + m_A82 += gt[100]; + m_A82 += gt[101]; + m_A82 += gt[102]; + m_A82 += gt[103]; + m_A82 += gt[104]; + m_A82 += gt[105]; + m_A82 += gt[106]; + m_A81 += go[97]; + m_A80 += go[98]; + m_A79 += go[99]; + m_A78 += go[100]; + m_A78 += go[101]; + m_A77 += go[102]; + m_A77 += go[103]; + m_A76 += go[104]; + m_A76 += go[105]; + m_A75 += go[106]; + double RHS32 = Idr[97]; + RHS32 += Idr[98]; + RHS32 += Idr[99]; + RHS32 += Idr[100]; + RHS32 += Idr[101]; + RHS32 += Idr[102]; + RHS32 += Idr[103]; + RHS32 += Idr[104]; + RHS32 += Idr[105]; + RHS32 += Idr[106]; + m_A86 += gt[107]; + m_A86 += gt[108]; + m_A86 += gt[109]; + m_A86 += gt[110]; + m_A86 += gt[111]; + m_A86 += gt[112]; + m_A86 += gt[113]; + m_A85 += go[107]; + m_A84 += go[108]; + double RHS33 = Idr[107]; + RHS33 += Idr[108]; + RHS33 += Idr[109]; + RHS33 += Idr[110]; + RHS33 += Idr[111]; + RHS33 += Idr[112]; + RHS33 += Idr[113]; + RHS33 -= go[109] * *cnV[109]; + RHS33 -= go[110] * *cnV[110]; + RHS33 -= go[111] * *cnV[111]; + RHS33 -= go[112] * *cnV[112]; + RHS33 -= go[113] * *cnV[113]; + m_A90 += gt[114]; + m_A90 += gt[115]; + m_A91 += go[114]; + m_A88 += go[115]; + double RHS34 = Idr[114]; + RHS34 += Idr[115]; + m_A94 += gt[116]; + m_A94 += gt[117]; + m_A94 += gt[118]; + m_A94 += gt[119]; + m_A94 += gt[120]; + m_A92 += go[116]; + m_A93 += go[117]; + m_A93 += go[118]; + double RHS35 = Idr[116]; + RHS35 += Idr[117]; + RHS35 += Idr[118]; + RHS35 += Idr[119]; + RHS35 += Idr[120]; + RHS35 -= go[119] * *cnV[119]; + RHS35 -= go[120] * *cnV[120]; + m_A97 += gt[121]; + m_A97 += gt[122]; + m_A98 += go[121]; + m_A96 += go[122]; + double RHS36 = Idr[121]; + RHS36 += Idr[122]; + m_A100 += gt[123]; + m_A100 += gt[124]; + m_A99 += go[123]; + m_A102 += go[124]; + double RHS37 = Idr[123]; + RHS37 += Idr[124]; + m_A105 += gt[125]; + m_A105 += gt[126]; + m_A107 += go[125]; + m_A103 += go[126]; + double RHS38 = Idr[125]; + RHS38 += Idr[126]; + m_A111 += gt[127]; + m_A111 += gt[128]; + m_A111 += gt[129]; + m_A109 += go[127]; + m_A108 += go[128]; + double RHS39 = Idr[127]; + RHS39 += Idr[128]; + RHS39 += Idr[129]; + RHS39 -= go[129] * *cnV[129]; + m_A116 += gt[130]; + m_A116 += gt[131]; + m_A116 += gt[132]; + m_A114 += go[130]; + m_A113 += go[131]; + m_A118 += go[132]; + double RHS40 = Idr[130]; + RHS40 += Idr[131]; + RHS40 += Idr[132]; + m_A120 += gt[133]; + m_A120 += gt[134]; + m_A120 += gt[135]; + m_A120 += gt[136]; + m_A121 += go[133]; + m_A119 += go[134]; + double RHS41 = Idr[133]; + RHS41 += Idr[134]; + RHS41 += Idr[135]; + RHS41 += Idr[136]; + RHS41 -= go[135] * *cnV[135]; + RHS41 -= go[136] * *cnV[136]; + m_A124 += gt[137]; + m_A124 += gt[138]; + m_A123 += go[137]; + m_A122 += go[138]; + double RHS42 = Idr[137]; + RHS42 += Idr[138]; + m_A131 += gt[139]; + m_A131 += gt[140]; + m_A131 += gt[141]; + m_A131 += gt[142]; + m_A131 += gt[143]; + m_A131 += gt[144]; + m_A132 += go[139]; + m_A132 += go[140]; + m_A129 += go[141]; + m_A128 += go[142]; + m_A127 += go[143]; + m_A126 += go[144]; + double RHS43 = Idr[139]; + RHS43 += Idr[140]; + RHS43 += Idr[141]; + RHS43 += Idr[142]; + RHS43 += Idr[143]; + RHS43 += Idr[144]; + m_A141 += gt[145]; + m_A141 += gt[146]; + m_A141 += gt[147]; + m_A141 += gt[148]; + m_A141 += gt[149]; + m_A141 += gt[150]; + m_A141 += gt[151]; + m_A136 += go[145]; + m_A135 += go[146]; + m_A134 += go[147]; + m_A133 += go[148]; + m_A140 += go[149]; + m_A137 += go[150]; + m_A139 += go[151]; + double RHS44 = Idr[145]; + RHS44 += Idr[146]; + RHS44 += Idr[147]; + RHS44 += Idr[148]; + RHS44 += Idr[149]; + RHS44 += Idr[150]; + RHS44 += Idr[151]; + m_A143 += gt[152]; + m_A143 += gt[153]; + m_A143 += gt[154]; + m_A143 += gt[155]; + m_A144 += go[152]; + m_A142 += go[153]; + double RHS45 = Idr[152]; + RHS45 += Idr[153]; + RHS45 += Idr[154]; + RHS45 += Idr[155]; + RHS45 -= go[154] * *cnV[154]; + RHS45 -= go[155] * *cnV[155]; + m_A147 += gt[156]; + m_A147 += gt[157]; + m_A145 += go[156]; + m_A148 += go[157]; + double RHS46 = Idr[156]; + RHS46 += Idr[157]; + m_A155 += gt[158]; + m_A155 += gt[159]; + m_A155 += gt[160]; + m_A155 += gt[161]; + m_A155 += gt[162]; + m_A155 += gt[163]; + m_A150 += go[158]; + m_A151 += go[159]; + m_A154 += go[160]; + m_A154 += go[161]; + double RHS47 = Idr[158]; + RHS47 += Idr[159]; + RHS47 += Idr[160]; + RHS47 += Idr[161]; + RHS47 += Idr[162]; + RHS47 += Idr[163]; + RHS47 -= go[162] * *cnV[162]; + RHS47 -= go[163] * *cnV[163]; + m_A162 += gt[164]; + m_A162 += gt[165]; + m_A162 += gt[166]; + m_A162 += gt[167]; + m_A162 += gt[168]; + m_A163 += go[164]; + m_A159 += go[165]; + m_A160 += go[166]; + m_A158 += go[167]; + m_A157 += go[168]; + double RHS48 = Idr[164]; + RHS48 += Idr[165]; + RHS48 += Idr[166]; + RHS48 += Idr[167]; + RHS48 += Idr[168]; + m_A169 += gt[169]; + m_A169 += gt[170]; + m_A169 += gt[171]; + m_A169 += gt[172]; + m_A167 += go[169]; + m_A164 += go[170]; + m_A165 += go[171]; + double RHS49 = Idr[169]; + RHS49 += Idr[170]; + RHS49 += Idr[171]; + RHS49 += Idr[172]; + RHS49 -= go[172] * *cnV[172]; + m_A177 += gt[173]; + m_A177 += gt[174]; + m_A177 += gt[175]; + m_A177 += gt[176]; + m_A177 += gt[177]; + m_A171 += go[173]; + m_A172 += go[174]; + m_A175 += go[175]; + double RHS50 = Idr[173]; + RHS50 += Idr[174]; + RHS50 += Idr[175]; + RHS50 += Idr[176]; + RHS50 += Idr[177]; + RHS50 -= go[176] * *cnV[176]; + RHS50 -= go[177] * *cnV[177]; + const double f0 = 1.0 / m_A0; + const double f0_26 = -f0 * m_A57; + m_A60 += m_A1 * f0_26; + RHS26 += f0_26 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_26 = -f1 * m_A58; + m_A60 += m_A3 * f1_26; + RHS26 += f1_26 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_26 = -f2 * m_A59; + m_A60 += m_A5 * f2_26; + m_A61 += m_A6 * f2_26; + RHS26 += f2_26 * RHS2; + const double f2_34 = -f2 * m_A88; + m_A89 += m_A5 * f2_34; + m_A90 += m_A6 * f2_34; + RHS34 += f2_34 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_36 = -f3 * m_A96; + m_A97 += m_A8 * f3_36; + RHS36 += f3_36 * RHS3; + const double f3_48 = -f3 * m_A157; + m_A160 += m_A8 * f3_48; + RHS48 += f3_48 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_50 = -f4 * m_A171; + m_A173 += m_A10 * f4_50; + RHS50 += f4_50 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_44 = -f5 * m_A133; + m_A141 += m_A12 * f5_44; + RHS44 += f5_44 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_44 = -f6 * m_A134; + m_A141 += m_A14 * f6_44; + RHS44 += f6_44 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_44 = -f7 * m_A135; + m_A141 += m_A16 * f7_44; + RHS44 += f7_44 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_44 = -f8 * m_A136; + m_A141 += m_A18 * f8_44; + RHS44 += f8_44 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_32 = -f9 * m_A75; + m_A82 += m_A20 * f9_32; + m_A83 += m_A21 * f9_32; + RHS32 += f9_32 * RHS9; + const double f9_44 = -f9 * m_A137; + m_A138 += m_A20 * f9_44; + m_A141 += m_A21 * f9_44; + RHS44 += f9_44 * RHS9; + const double f10 = 1.0 / m_A22; + const double f10_32 = -f10 * m_A76; + m_A82 += m_A23 * f10_32; + RHS32 += f10_32 * RHS10; + const double f11 = 1.0 / m_A24; + const double f11_32 = -f11 * m_A77; + m_A82 += m_A25 * f11_32; + RHS32 += f11_32 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_32 = -f12 * m_A78; + m_A82 += m_A27 * f12_32; + RHS32 += f12_32 * RHS12; + const double f13 = 1.0 / m_A28; + const double f13_31 = -f13 * m_A73; + m_A74 += m_A29 * f13_31; + RHS31 += f13_31 * RHS13; + const double f13_43 = -f13 * m_A126; + m_A129 += m_A29 * f13_43; + RHS43 += f13_43 * RHS13; + const double f14 = 1.0 / m_A30; + const double f14_32 = -f14 * m_A79; + m_A82 += m_A31 * f14_32; + RHS32 += f14_32 * RHS14; + const double f15 = 1.0 / m_A32; + const double f15_35 = -f15 * m_A92; + m_A94 += m_A33 * f15_35; + RHS35 += f15_35 * RHS15; + const double f16 = 1.0 / m_A34; + const double f16_32 = -f16 * m_A80; + m_A82 += m_A35 * f16_32; + RHS32 += f16_32 * RHS16; + const double f17 = 1.0 / m_A36; + const double f17_32 = -f17 * m_A81; + m_A82 += m_A37 * f17_32; + RHS32 += f17_32 * RHS17; + const double f18 = 1.0 / m_A38; + const double f18_42 = -f18 * m_A122; + m_A124 += m_A39 * f18_42; + RHS42 += f18_42 * RHS18; + const double f19 = 1.0 / m_A40; + const double f19_33 = -f19 * m_A84; + m_A86 += m_A41 * f19_33; + RHS33 += f19_33 * RHS19; + const double f20 = 1.0 / m_A42; + const double f20_47 = -f20 * m_A150; + m_A153 += m_A43 * f20_47; + RHS47 += f20_47 * RHS20; + const double f21 = 1.0 / m_A44; + const double f21_45 = -f21 * m_A142; + m_A144 += m_A45 * f21_45; + RHS45 += f21_45 * RHS21; + const double f21_48 = -f21 * m_A158; + m_A162 += m_A45 * f21_48; + RHS48 += f21_48 * RHS21; + const double f22 = 1.0 / m_A46; + const double f22_33 = -f22 * m_A85; + m_A86 += m_A47 * f22_33; + m_A87 += m_A48 * f22_33; + RHS33 += f22_33 * RHS22; + const double f22_39 = -f22 * m_A108; + m_A110 += m_A47 * f22_39; + m_A111 += m_A48 * f22_39; + RHS39 += f22_39 * RHS22; + const double f23 = 1.0 / m_A49; + const double f23_37 = -f23 * m_A99; + m_A100 += m_A50 * f23_37; + m_A101 += m_A51 * f23_37; + RHS37 += f23_37 * RHS23; + const double f23_38 = -f23 * m_A103; + m_A104 += m_A50 * f23_38; + m_A105 += m_A51 * f23_38; + RHS38 += f23_38 * RHS23; + const double f24 = 1.0 / m_A52; + const double f24_48 = -f24 * m_A159; + m_A162 += m_A53 * f24_48; + RHS48 += f24_48 * RHS24; + const double f25 = 1.0 / m_A54; + const double f25_35 = -f25 * m_A93; + m_A94 += m_A55 * f25_35; + m_A95 += m_A56 * f25_35; + RHS35 += f25_35 * RHS25; + const double f25_40 = -f25 * m_A113; + m_A115 += m_A55 * f25_40; + m_A116 += m_A56 * f25_40; + RHS40 += f25_40 * RHS25; + const double f26 = 1.0 / m_A60; + const double f26_34 = -f26 * m_A89; + m_A90 += m_A61 * f26_34; + RHS34 += f26_34 * RHS26; + const double f27 = 1.0 / m_A62; + const double f27_39 = -f27 * m_A109; + m_A111 += m_A63 * f27_39; + m_A112 += m_A64 * f27_39; + RHS39 += f27_39 * RHS27; + const double f27_49 = -f27 * m_A164; + m_A166 += m_A63 * f27_49; + m_A169 += m_A64 * f27_49; + RHS49 += f27_49 * RHS27; + const double f28 = 1.0 / m_A65; + const double f28_41 = -f28 * m_A119; + m_A121 += m_A66 * f28_41; + RHS41 += f28_41 * RHS28; + const double f28_43 = -f28 * m_A127; + m_A131 += m_A66 * f28_43; + RHS43 += f28_43 * RHS28; + const double f29 = 1.0 / m_A67; + const double f29_40 = -f29 * m_A114; + m_A116 += m_A68 * f29_40; + m_A117 += m_A69 * f29_40; + RHS40 += f29_40 * RHS29; + const double f29_46 = -f29 * m_A145; + m_A146 += m_A68 * f29_46; + m_A147 += m_A69 * f29_46; + RHS46 += f29_46 * RHS29; + const double f30 = 1.0 / m_A70; + const double f30_42 = -f30 * m_A123; + m_A124 += m_A71 * f30_42; + m_A125 += m_A72 * f30_42; + RHS42 += f30_42 * RHS30; + const double f30_43 = -f30 * m_A128; + m_A130 += m_A71 * f30_43; + m_A131 += m_A72 * f30_43; + RHS43 += f30_43 * RHS30; + const double f31 = 1.0 / m_A74; + const double f31_43 = -f31 * m_A129; + RHS43 += f31_43 * RHS31; + const double f32 = 1.0 / m_A82; + const double f32_44 = -f32 * m_A138; + m_A141 += m_A83 * f32_44; + RHS44 += f32_44 * RHS32; + const double f33 = 1.0 / m_A86; + const double f33_39 = -f33 * m_A110; + m_A111 += m_A87 * f33_39; + RHS39 += f33_39 * RHS33; + const double f34 = 1.0 / m_A90; + const double f34_44 = -f34 * m_A139; + m_A141 += m_A91 * f34_44; + RHS44 += f34_44 * RHS34; + const double f35 = 1.0 / m_A94; + const double f35_40 = -f35 * m_A115; + m_A116 += m_A95 * f35_40; + RHS40 += f35_40 * RHS35; + const double f36 = 1.0 / m_A97; + const double f36_44 = -f36 * m_A140; + m_A141 += m_A98 * f36_44; + RHS44 += f36_44 * RHS36; + const double f36_48 = -f36 * m_A160; + m_A161 += m_A98 * f36_48; + RHS48 += f36_48 * RHS36; + const double f37 = 1.0 / m_A100; + const double f37_38 = -f37 * m_A104; + m_A105 += m_A101 * f37_38; + m_A106 += m_A102 * f37_38; + RHS38 += f37_38 * RHS37; + const double f37_47 = -f37 * m_A151; + m_A152 += m_A101 * f37_47; + m_A155 += m_A102 * f37_47; + RHS47 += f37_47 * RHS37; + const double f38 = 1.0 / m_A105; + const double f38_47 = -f38 * m_A152; + m_A155 += m_A106 * f38_47; + m_A156 += m_A107 * f38_47; + RHS47 += f38_47 * RHS38; + const double f38_49 = -f38 * m_A165; + m_A168 += m_A106 * f38_49; + m_A169 += m_A107 * f38_49; + RHS49 += f38_49 * RHS38; + const double f39 = 1.0 / m_A111; + const double f39_49 = -f39 * m_A166; + m_A169 += m_A112 * f39_49; + RHS49 += f39_49 * RHS39; + const double f40 = 1.0 / m_A116; + const double f40_46 = -f40 * m_A146; + m_A147 += m_A117 * f40_46; + m_A149 += m_A118 * f40_46; + RHS46 += f40_46 * RHS40; + const double f40_50 = -f40 * m_A172; + m_A174 += m_A117 * f40_50; + m_A177 += m_A118 * f40_50; + RHS50 += f40_50 * RHS40; + const double f41 = 1.0 / m_A120; + const double f41_47 = -f41 * m_A153; + m_A154 += m_A121 * f41_47; + RHS47 += f41_47 * RHS41; + const double f42 = 1.0 / m_A124; + const double f42_43 = -f42 * m_A130; + m_A131 += m_A125 * f42_43; + RHS43 += f42_43 * RHS42; + const double f43 = 1.0 / m_A131; + const double f43_47 = -f43 * m_A154; + m_A155 += m_A132 * f43_47; + RHS47 += f43_47 * RHS43; + const double f44 = 1.0 / m_A141; + const double f44_48 = -f44 * m_A161; + RHS48 += f44_48 * RHS44; + const double f45 = 1.0 / m_A143; + const double f45_50 = -f45 * m_A173; + m_A175 += m_A144 * f45_50; + RHS50 += f45_50 * RHS45; + const double f46 = 1.0 / m_A147; + const double f46_49 = -f46 * m_A167; + m_A169 += m_A148 * f46_49; + m_A170 += m_A149 * f46_49; + RHS49 += f46_49 * RHS46; + const double f46_50 = -f46 * m_A174; + m_A176 += m_A148 * f46_50; + m_A177 += m_A149 * f46_50; + RHS50 += f46_50 * RHS46; + const double f47 = 1.0 / m_A155; + const double f47_49 = -f47 * m_A168; + m_A169 += m_A156 * f47_49; + RHS49 += f47_49 * RHS47; + const double f48 = 1.0 / m_A162; + const double f48_50 = -f48 * m_A175; + m_A177 += m_A163 * f48_50; + RHS50 += f48_50 * RHS48; + const double f49 = 1.0 / m_A169; + const double f49_50 = -f49 * m_A176; + m_A177 += m_A170 * f49_50; + RHS50 += f49_50 * RHS49; + V[50] = RHS50 / m_A177; + double tmp49 = 0.0; + tmp49 += m_A170 * V[50]; + V[49] = (RHS49 - tmp49) / m_A169; + double tmp48 = 0.0; + tmp48 += m_A163 * V[50]; + V[48] = (RHS48 - tmp48) / m_A162; + double tmp47 = 0.0; + tmp47 += m_A156 * V[49]; + V[47] = (RHS47 - tmp47) / m_A155; + double tmp46 = 0.0; + tmp46 += m_A148 * V[49]; + tmp46 += m_A149 * V[50]; + V[46] = (RHS46 - tmp46) / m_A147; + double tmp45 = 0.0; + tmp45 += m_A144 * V[48]; + V[45] = (RHS45 - tmp45) / m_A143; + double tmp44 = 0.0; + V[44] = (RHS44 - tmp44) / m_A141; + double tmp43 = 0.0; + tmp43 += m_A132 * V[47]; + V[43] = (RHS43 - tmp43) / m_A131; + double tmp42 = 0.0; + tmp42 += m_A125 * V[43]; + V[42] = (RHS42 - tmp42) / m_A124; + double tmp41 = 0.0; + tmp41 += m_A121 * V[43]; + V[41] = (RHS41 - tmp41) / m_A120; + double tmp40 = 0.0; + tmp40 += m_A117 * V[46]; + tmp40 += m_A118 * V[50]; + V[40] = (RHS40 - tmp40) / m_A116; + double tmp39 = 0.0; + tmp39 += m_A112 * V[49]; + V[39] = (RHS39 - tmp39) / m_A111; + double tmp38 = 0.0; + tmp38 += m_A106 * V[47]; + tmp38 += m_A107 * V[49]; + V[38] = (RHS38 - tmp38) / m_A105; + double tmp37 = 0.0; + tmp37 += m_A101 * V[38]; + tmp37 += m_A102 * V[47]; + V[37] = (RHS37 - tmp37) / m_A100; + double tmp36 = 0.0; + tmp36 += m_A98 * V[44]; + V[36] = (RHS36 - tmp36) / m_A97; + double tmp35 = 0.0; + tmp35 += m_A95 * V[40]; + V[35] = (RHS35 - tmp35) / m_A94; + double tmp34 = 0.0; + tmp34 += m_A91 * V[44]; + V[34] = (RHS34 - tmp34) / m_A90; + double tmp33 = 0.0; + tmp33 += m_A87 * V[39]; + V[33] = (RHS33 - tmp33) / m_A86; + double tmp32 = 0.0; + tmp32 += m_A83 * V[44]; + V[32] = (RHS32 - tmp32) / m_A82; + double tmp31 = 0.0; + V[31] = (RHS31 - tmp31) / m_A74; + double tmp30 = 0.0; + tmp30 += m_A71 * V[42]; + tmp30 += m_A72 * V[43]; + V[30] = (RHS30 - tmp30) / m_A70; + double tmp29 = 0.0; + tmp29 += m_A68 * V[40]; + tmp29 += m_A69 * V[46]; + V[29] = (RHS29 - tmp29) / m_A67; + double tmp28 = 0.0; + tmp28 += m_A66 * V[43]; + V[28] = (RHS28 - tmp28) / m_A65; + double tmp27 = 0.0; + tmp27 += m_A63 * V[39]; + tmp27 += m_A64 * V[49]; + V[27] = (RHS27 - tmp27) / m_A62; + double tmp26 = 0.0; + tmp26 += m_A61 * V[34]; + V[26] = (RHS26 - tmp26) / m_A60; + double tmp25 = 0.0; + tmp25 += m_A55 * V[35]; + tmp25 += m_A56 * V[40]; + V[25] = (RHS25 - tmp25) / m_A54; + double tmp24 = 0.0; + tmp24 += m_A53 * V[48]; + V[24] = (RHS24 - tmp24) / m_A52; + double tmp23 = 0.0; + tmp23 += m_A50 * V[37]; + tmp23 += m_A51 * V[38]; + V[23] = (RHS23 - tmp23) / m_A49; + double tmp22 = 0.0; + tmp22 += m_A47 * V[33]; + tmp22 += m_A48 * V[39]; + V[22] = (RHS22 - tmp22) / m_A46; + double tmp21 = 0.0; + tmp21 += m_A45 * V[48]; + V[21] = (RHS21 - tmp21) / m_A44; + double tmp20 = 0.0; + tmp20 += m_A43 * V[41]; + V[20] = (RHS20 - tmp20) / m_A42; + double tmp19 = 0.0; + tmp19 += m_A41 * V[33]; + V[19] = (RHS19 - tmp19) / m_A40; + double tmp18 = 0.0; + tmp18 += m_A39 * V[42]; + V[18] = (RHS18 - tmp18) / m_A38; + double tmp17 = 0.0; + tmp17 += m_A37 * V[32]; + V[17] = (RHS17 - tmp17) / m_A36; + double tmp16 = 0.0; + tmp16 += m_A35 * V[32]; + V[16] = (RHS16 - tmp16) / m_A34; + double tmp15 = 0.0; + tmp15 += m_A33 * V[35]; + V[15] = (RHS15 - tmp15) / m_A32; + double tmp14 = 0.0; + tmp14 += m_A31 * V[32]; + V[14] = (RHS14 - tmp14) / m_A30; + double tmp13 = 0.0; + tmp13 += m_A29 * V[31]; + V[13] = (RHS13 - tmp13) / m_A28; + double tmp12 = 0.0; + tmp12 += m_A27 * V[32]; + V[12] = (RHS12 - tmp12) / m_A26; + double tmp11 = 0.0; + tmp11 += m_A25 * V[32]; + V[11] = (RHS11 - tmp11) / m_A24; + double tmp10 = 0.0; + tmp10 += m_A23 * V[32]; + V[10] = (RHS10 - tmp10) / m_A22; + double tmp9 = 0.0; + tmp9 += m_A20 * V[32]; + tmp9 += m_A21 * V[44]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A18 * V[44]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A16 * V[44]; + V[7] = (RHS7 - tmp7) / m_A15; + double tmp6 = 0.0; + tmp6 += m_A14 * V[44]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A12 * V[44]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A10 * V[45]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A8 * V[36]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[26]; + tmp2 += m_A6 * V[34]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[26]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[26]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// solarq +static void nl_gcr_62612f71055b8fd4_303_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); + double m_A198(0.0); + double m_A199(0.0); + double m_A200(0.0); + double m_A201(0.0); + double m_A202(0.0); + double m_A203(0.0); + double m_A204(0.0); + double m_A205(0.0); + double m_A206(0.0); + double m_A207(0.0); + double m_A208(0.0); + double m_A209(0.0); + double m_A210(0.0); + double m_A211(0.0); + double m_A212(0.0); + double m_A213(0.0); + double m_A214(0.0); + double m_A215(0.0); + double m_A216(0.0); + double m_A217(0.0); + double m_A218(0.0); + double m_A219(0.0); + double m_A220(0.0); + double m_A221(0.0); + double m_A222(0.0); + double m_A223(0.0); + double m_A224(0.0); + double m_A225(0.0); + double m_A226(0.0); + double m_A227(0.0); + double m_A228(0.0); + double m_A229(0.0); + double m_A230(0.0); + double m_A231(0.0); + double m_A232(0.0); + double m_A233(0.0); + double m_A234(0.0); + double m_A235(0.0); + double m_A236(0.0); + double m_A237(0.0); + double m_A238(0.0); + double m_A239(0.0); + double m_A240(0.0); + double m_A241(0.0); + double m_A242(0.0); + double m_A243(0.0); + double m_A244(0.0); + double m_A245(0.0); + double m_A246(0.0); + double m_A247(0.0); + double m_A248(0.0); + double m_A249(0.0); + double m_A250(0.0); + double m_A251(0.0); + double m_A252(0.0); + double m_A253(0.0); + double m_A254(0.0); + double m_A255(0.0); + double m_A256(0.0); + double m_A257(0.0); + double m_A258(0.0); + double m_A259(0.0); + double m_A260(0.0); + double m_A261(0.0); + double m_A262(0.0); + double m_A263(0.0); + double m_A264(0.0); + double m_A265(0.0); + double m_A266(0.0); + double m_A267(0.0); + double m_A268(0.0); + double m_A269(0.0); + double m_A270(0.0); + double m_A271(0.0); + double m_A272(0.0); + double m_A273(0.0); + double m_A274(0.0); + double m_A275(0.0); + double m_A276(0.0); + double m_A277(0.0); + double m_A278(0.0); + double m_A279(0.0); + double m_A280(0.0); + double m_A281(0.0); + double m_A282(0.0); + double m_A283(0.0); + double m_A284(0.0); + double m_A285(0.0); + double m_A286(0.0); + double m_A287(0.0); + double m_A288(0.0); + double m_A289(0.0); + double m_A290(0.0); + double m_A291(0.0); + double m_A292(0.0); + double m_A293(0.0); + double m_A294(0.0); + double m_A295(0.0); + double m_A296(0.0); + double m_A297(0.0); + double m_A298(0.0); + double m_A299(0.0); + double m_A300(0.0); + double m_A301(0.0); + double m_A302(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A0 += gt[7]; + m_A0 += gt[8]; + m_A0 += gt[9]; + m_A0 += gt[10]; + m_A0 += gt[11]; + m_A0 += gt[12]; + m_A0 += gt[13]; + m_A2 += go[0]; + m_A1 += go[1]; + m_A1 += go[2]; + m_A0 += go[3]; + m_A0 += go[4]; + m_A0 += go[5]; + m_A0 += go[6]; + m_A3 += go[7]; + m_A3 += go[8]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 += Idr[7]; + RHS0 += Idr[8]; + RHS0 += Idr[9]; + RHS0 += Idr[10]; + RHS0 += Idr[11]; + RHS0 += Idr[12]; + RHS0 += Idr[13]; + RHS0 -= go[9] * *cnV[9]; + RHS0 -= go[10] * *cnV[10]; + RHS0 -= go[11] * *cnV[11]; + RHS0 -= go[12] * *cnV[12]; + RHS0 -= go[13] * *cnV[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A4 += gt[16]; + m_A4 += gt[17]; + m_A4 += gt[18]; + m_A4 += gt[19]; + m_A4 += gt[20]; + m_A4 += gt[21]; + m_A4 += gt[22]; + m_A4 += gt[23]; + m_A4 += gt[24]; + m_A4 += gt[25]; + m_A4 += gt[26]; + m_A4 += gt[27]; + m_A4 += go[14]; + m_A4 += go[15]; + m_A4 += go[16]; + m_A4 += go[17]; + m_A5 += go[18]; + m_A5 += go[19]; + m_A5 += go[20]; + m_A5 += go[21]; + m_A6 += go[22]; + double RHS1 = Idr[14]; + RHS1 += Idr[15]; + RHS1 += Idr[16]; + RHS1 += Idr[17]; + RHS1 += Idr[18]; + RHS1 += Idr[19]; + RHS1 += Idr[20]; + RHS1 += Idr[21]; + RHS1 += Idr[22]; + RHS1 += Idr[23]; + RHS1 += Idr[24]; + RHS1 += Idr[25]; + RHS1 += Idr[26]; + RHS1 += Idr[27]; + RHS1 -= go[23] * *cnV[23]; + RHS1 -= go[24] * *cnV[24]; + RHS1 -= go[25] * *cnV[25]; + RHS1 -= go[26] * *cnV[26]; + RHS1 -= go[27] * *cnV[27]; + m_A7 += gt[28]; + m_A7 += gt[29]; + m_A7 += gt[30]; + m_A7 += gt[31]; + m_A7 += gt[32]; + m_A7 += gt[33]; + m_A7 += gt[34]; + m_A7 += gt[35]; + m_A8 += go[28]; + m_A8 += go[29]; + m_A9 += go[30]; + m_A9 += go[31]; + m_A9 += go[32]; + m_A10 += go[33]; + m_A10 += go[34]; + m_A10 += go[35]; + double RHS2 = Idr[28]; + RHS2 += Idr[29]; + RHS2 += Idr[30]; + RHS2 += Idr[31]; + RHS2 += Idr[32]; + RHS2 += Idr[33]; + RHS2 += Idr[34]; + RHS2 += Idr[35]; + m_A11 += gt[36]; + m_A11 += gt[37]; + m_A11 += gt[38]; + m_A11 += gt[39]; + m_A11 += gt[40]; + m_A12 += go[36]; + m_A12 += go[37]; + m_A13 += go[38]; + m_A13 += go[39]; + double RHS3 = Idr[36]; + RHS3 += Idr[37]; + RHS3 += Idr[38]; + RHS3 += Idr[39]; + RHS3 += Idr[40]; + RHS3 -= go[40] * *cnV[40]; + m_A14 += gt[41]; + m_A14 += gt[42]; + m_A14 += gt[43]; + m_A14 += gt[44]; + m_A14 += gt[45]; + m_A14 += gt[46]; + m_A14 += gt[47]; + m_A14 += gt[48]; + m_A14 += gt[49]; + m_A14 += gt[50]; + m_A14 += gt[51]; + m_A14 += gt[52]; + m_A14 += gt[53]; + m_A14 += gt[54]; + m_A14 += go[41]; + m_A14 += go[42]; + m_A14 += go[43]; + m_A14 += go[44]; + m_A15 += go[45]; + m_A15 += go[46]; + m_A15 += go[47]; + m_A15 += go[48]; + m_A16 += go[49]; + double RHS4 = Idr[41]; + RHS4 += Idr[42]; + RHS4 += Idr[43]; + RHS4 += Idr[44]; + RHS4 += Idr[45]; + RHS4 += Idr[46]; + RHS4 += Idr[47]; + RHS4 += Idr[48]; + RHS4 += Idr[49]; + RHS4 += Idr[50]; + RHS4 += Idr[51]; + RHS4 += Idr[52]; + RHS4 += Idr[53]; + RHS4 += Idr[54]; + RHS4 -= go[50] * *cnV[50]; + RHS4 -= go[51] * *cnV[51]; + RHS4 -= go[52] * *cnV[52]; + RHS4 -= go[53] * *cnV[53]; + RHS4 -= go[54] * *cnV[54]; + m_A17 += gt[55]; + m_A17 += gt[56]; + m_A17 += gt[57]; + m_A17 += gt[58]; + m_A17 += gt[59]; + m_A17 += gt[60]; + m_A17 += gt[61]; + m_A17 += gt[62]; + m_A17 += gt[63]; + m_A17 += gt[64]; + m_A17 += gt[65]; + m_A17 += gt[66]; + m_A17 += gt[67]; + m_A17 += gt[68]; + m_A19 += go[55]; + m_A18 += go[56]; + m_A18 += go[57]; + m_A17 += go[58]; + m_A17 += go[59]; + m_A17 += go[60]; + m_A17 += go[61]; + m_A20 += go[62]; + m_A20 += go[63]; + double RHS5 = Idr[55]; + RHS5 += Idr[56]; + RHS5 += Idr[57]; + RHS5 += Idr[58]; + RHS5 += Idr[59]; + RHS5 += Idr[60]; + RHS5 += Idr[61]; + RHS5 += Idr[62]; + RHS5 += Idr[63]; + RHS5 += Idr[64]; + RHS5 += Idr[65]; + RHS5 += Idr[66]; + RHS5 += Idr[67]; + RHS5 += Idr[68]; + RHS5 -= go[64] * *cnV[64]; + RHS5 -= go[65] * *cnV[65]; + RHS5 -= go[66] * *cnV[66]; + RHS5 -= go[67] * *cnV[67]; + RHS5 -= go[68] * *cnV[68]; + m_A21 += gt[69]; + m_A21 += gt[70]; + m_A21 += gt[71]; + m_A21 += gt[72]; + m_A22 += go[69]; + double RHS6 = Idr[69]; + RHS6 += Idr[70]; + RHS6 += Idr[71]; + RHS6 += Idr[72]; + RHS6 -= go[70] * *cnV[70]; + RHS6 -= go[71] * *cnV[71]; + RHS6 -= go[72] * *cnV[72]; + m_A23 += gt[73]; + m_A23 += gt[74]; + m_A23 += gt[75]; + m_A23 += gt[76]; + m_A23 += gt[77]; + m_A23 += gt[78]; + m_A23 += gt[79]; + m_A23 += gt[80]; + m_A24 += go[73]; + m_A24 += go[74]; + m_A25 += go[75]; + m_A25 += go[76]; + m_A25 += go[77]; + m_A26 += go[78]; + m_A26 += go[79]; + m_A26 += go[80]; + double RHS7 = Idr[73]; + RHS7 += Idr[74]; + RHS7 += Idr[75]; + RHS7 += Idr[76]; + RHS7 += Idr[77]; + RHS7 += Idr[78]; + RHS7 += Idr[79]; + RHS7 += Idr[80]; + m_A27 += gt[81]; + m_A27 += gt[82]; + m_A27 += gt[83]; + m_A27 += gt[84]; + m_A27 += gt[85]; + m_A27 += gt[86]; + m_A27 += gt[87]; + m_A27 += gt[88]; + m_A27 += gt[89]; + m_A27 += gt[90]; + m_A27 += gt[91]; + m_A27 += gt[92]; + m_A29 += go[81]; + m_A28 += go[82]; + m_A28 += go[83]; + m_A27 += go[84]; + m_A27 += go[85]; + m_A27 += go[86]; + m_A27 += go[87]; + double RHS8 = Idr[81]; + RHS8 += Idr[82]; + RHS8 += Idr[83]; + RHS8 += Idr[84]; + RHS8 += Idr[85]; + RHS8 += Idr[86]; + RHS8 += Idr[87]; + RHS8 += Idr[88]; + RHS8 += Idr[89]; + RHS8 += Idr[90]; + RHS8 += Idr[91]; + RHS8 += Idr[92]; + RHS8 -= go[88] * *cnV[88]; + RHS8 -= go[89] * *cnV[89]; + RHS8 -= go[90] * *cnV[90]; + RHS8 -= go[91] * *cnV[91]; + RHS8 -= go[92] * *cnV[92]; + m_A30 += gt[93]; + m_A30 += gt[94]; + m_A30 += gt[95]; + m_A30 += gt[96]; + m_A30 += gt[97]; + m_A30 += gt[98]; + m_A30 += gt[99]; + m_A30 += gt[100]; + m_A33 += go[93]; + m_A32 += go[94]; + m_A32 += go[95]; + m_A31 += go[96]; + m_A31 += go[97]; + double RHS9 = Idr[93]; + RHS9 += Idr[94]; + RHS9 += Idr[95]; + RHS9 += Idr[96]; + RHS9 += Idr[97]; + RHS9 += Idr[98]; + RHS9 += Idr[99]; + RHS9 += Idr[100]; + RHS9 -= go[98] * *cnV[98]; + RHS9 -= go[99] * *cnV[99]; + RHS9 -= go[100] * *cnV[100]; + m_A34 += gt[101]; + m_A34 += gt[102]; + m_A34 += gt[103]; + m_A34 += gt[104]; + m_A34 += gt[105]; + m_A34 += gt[106]; + m_A34 += gt[107]; + m_A34 += gt[108]; + m_A34 += gt[109]; + m_A34 += gt[110]; + m_A34 += gt[111]; + m_A34 += gt[112]; + m_A36 += go[101]; + m_A35 += go[102]; + m_A35 += go[103]; + m_A34 += go[104]; + m_A34 += go[105]; + m_A34 += go[106]; + m_A34 += go[107]; + double RHS10 = Idr[101]; + RHS10 += Idr[102]; + RHS10 += Idr[103]; + RHS10 += Idr[104]; + RHS10 += Idr[105]; + RHS10 += Idr[106]; + RHS10 += Idr[107]; + RHS10 += Idr[108]; + RHS10 += Idr[109]; + RHS10 += Idr[110]; + RHS10 += Idr[111]; + RHS10 += Idr[112]; + RHS10 -= go[108] * *cnV[108]; + RHS10 -= go[109] * *cnV[109]; + RHS10 -= go[110] * *cnV[110]; + RHS10 -= go[111] * *cnV[111]; + RHS10 -= go[112] * *cnV[112]; + m_A37 += gt[113]; + m_A37 += gt[114]; + m_A37 += gt[115]; + m_A37 += gt[116]; + m_A37 += gt[117]; + m_A38 += go[113]; + m_A38 += go[114]; + m_A39 += go[115]; + m_A39 += go[116]; + double RHS11 = Idr[113]; + RHS11 += Idr[114]; + RHS11 += Idr[115]; + RHS11 += Idr[116]; + RHS11 += Idr[117]; + RHS11 -= go[117] * *cnV[117]; + m_A40 += gt[118]; + m_A40 += gt[119]; + m_A40 += gt[120]; + m_A40 += gt[121]; + m_A40 += gt[122]; + m_A40 += gt[123]; + m_A42 += go[118]; + m_A41 += go[119]; + m_A41 += go[120]; + m_A43 += go[121]; + m_A43 += go[122]; + double RHS12 = Idr[118]; + RHS12 += Idr[119]; + RHS12 += Idr[120]; + RHS12 += Idr[121]; + RHS12 += Idr[122]; + RHS12 += Idr[123]; + RHS12 -= go[123] * *cnV[123]; + m_A44 += gt[124]; + m_A44 += gt[125]; + m_A44 += gt[126]; + m_A44 += gt[127]; + m_A44 += gt[128]; + m_A44 += gt[129]; + m_A44 += gt[130]; + m_A45 += go[124]; + m_A46 += go[125]; + double RHS13 = Idr[124]; + RHS13 += Idr[125]; + RHS13 += Idr[126]; + RHS13 += Idr[127]; + RHS13 += Idr[128]; + RHS13 += Idr[129]; + RHS13 += Idr[130]; + RHS13 -= go[126] * *cnV[126]; + RHS13 -= go[127] * *cnV[127]; + RHS13 -= go[128] * *cnV[128]; + RHS13 -= go[129] * *cnV[129]; + RHS13 -= go[130] * *cnV[130]; + m_A47 += gt[131]; + m_A47 += gt[132]; + m_A47 += gt[133]; + m_A47 += gt[134]; + m_A48 += go[131]; + double RHS14 = Idr[131]; + RHS14 += Idr[132]; + RHS14 += Idr[133]; + RHS14 += Idr[134]; + RHS14 -= go[132] * *cnV[132]; + RHS14 -= go[133] * *cnV[133]; + RHS14 -= go[134] * *cnV[134]; + m_A49 += gt[135]; + m_A49 += gt[136]; + m_A50 += go[135]; + double RHS15 = Idr[135]; + RHS15 += Idr[136]; + RHS15 -= go[136] * *cnV[136]; + m_A51 += gt[137]; + m_A51 += gt[138]; + m_A51 += gt[139]; + m_A51 += gt[140]; + m_A51 += gt[141]; + m_A51 += gt[142]; + m_A51 += gt[143]; + m_A52 += go[137]; + double RHS16 = Idr[137]; + RHS16 += Idr[138]; + RHS16 += Idr[139]; + RHS16 += Idr[140]; + RHS16 += Idr[141]; + RHS16 += Idr[142]; + RHS16 += Idr[143]; + RHS16 -= go[138] * *cnV[138]; + RHS16 -= go[139] * *cnV[139]; + RHS16 -= go[140] * *cnV[140]; + RHS16 -= go[141] * *cnV[141]; + RHS16 -= go[142] * *cnV[142]; + RHS16 -= go[143] * *cnV[143]; + m_A53 += gt[144]; + m_A53 += gt[145]; + m_A53 += gt[146]; + m_A53 += gt[147]; + m_A53 += gt[148]; + m_A53 += gt[149]; + m_A53 += gt[150]; + m_A54 += go[144]; + m_A55 += go[145]; + double RHS17 = Idr[144]; + RHS17 += Idr[145]; + RHS17 += Idr[146]; + RHS17 += Idr[147]; + RHS17 += Idr[148]; + RHS17 += Idr[149]; + RHS17 += Idr[150]; + RHS17 -= go[146] * *cnV[146]; + RHS17 -= go[147] * *cnV[147]; + RHS17 -= go[148] * *cnV[148]; + RHS17 -= go[149] * *cnV[149]; + RHS17 -= go[150] * *cnV[150]; + m_A56 += gt[151]; + m_A56 += gt[152]; + m_A56 += gt[153]; + m_A57 += go[151]; + double RHS18 = Idr[151]; + RHS18 += Idr[152]; + RHS18 += Idr[153]; + RHS18 -= go[152] * *cnV[152]; + RHS18 -= go[153] * *cnV[153]; + m_A58 += gt[154]; + m_A58 += gt[155]; + m_A58 += gt[156]; m_A58 += gt[157]; m_A58 += gt[158]; m_A58 += gt[159]; @@ -12310,970 +22155,15519 @@ RHS51 -= go[395] * *cnV[395]; RHS51 -= go[396] * *cnV[396]; const double f0 = 1.0 / m_A0; - const double f0_27 = -f0 * m_A84; - m_A85 += m_A1 * f0_27; - m_A86 += m_A2 * f0_27; - m_A87 += m_A3 * f0_27; - RHS27 += f0_27 * RHS0; - const double f0_44 = -f0 * m_A202; - m_A204 += m_A1 * f0_44; - m_A205 += m_A2 * f0_44; - m_A207 += m_A3 * f0_44; - RHS44 += f0_44 * RHS0; - const double f0_49 = -f0 * m_A261; - m_A263 += m_A1 * f0_49; - m_A269 += m_A2 * f0_49; - m_A273 += m_A3 * f0_49; - RHS49 += f0_49 * RHS0; - const double f1 = 1.0 / m_A4; - const double f1_44 = -f1 * m_A203; - m_A205 += m_A5 * f1_44; - m_A206 += m_A6 * f1_44; - RHS44 += f1_44 * RHS1; - const double f1_48 = -f1 * m_A246; - m_A254 += m_A5 * f1_48; - m_A257 += m_A6 * f1_48; - RHS48 += f1_48 * RHS1; - const double f2 = 1.0 / m_A7; - const double f2_28 = -f2 * m_A88; - m_A89 += m_A8 * f2_28; - m_A90 += m_A9 * f2_28; - m_A91 += m_A10 * f2_28; - RHS28 += f2_28 * RHS2; - const double f2_43 = -f2 * m_A188; - m_A190 += m_A8 * f2_43; - m_A195 += m_A9 * f2_43; - m_A198 += m_A10 * f2_43; - RHS43 += f2_43 * RHS2; - const double f2_48 = -f2 * m_A247; - m_A248 += m_A8 * f2_48; - m_A253 += m_A9 * f2_48; - m_A257 += m_A10 * f2_48; - RHS48 += f2_48 * RHS2; - const double f3 = 1.0 / m_A11; - const double f3_30 = -f3 * m_A96; - m_A99 += m_A12 * f3_30; - m_A103 += m_A13 * f3_30; + const double f0_27 = -f0 * m_A84; + m_A85 += m_A1 * f0_27; + m_A86 += m_A2 * f0_27; + m_A87 += m_A3 * f0_27; + RHS27 += f0_27 * RHS0; + const double f0_44 = -f0 * m_A202; + m_A204 += m_A1 * f0_44; + m_A205 += m_A2 * f0_44; + m_A207 += m_A3 * f0_44; + RHS44 += f0_44 * RHS0; + const double f0_49 = -f0 * m_A261; + m_A263 += m_A1 * f0_49; + m_A269 += m_A2 * f0_49; + m_A273 += m_A3 * f0_49; + RHS49 += f0_49 * RHS0; + const double f1 = 1.0 / m_A4; + const double f1_44 = -f1 * m_A203; + m_A205 += m_A5 * f1_44; + m_A206 += m_A6 * f1_44; + RHS44 += f1_44 * RHS1; + const double f1_48 = -f1 * m_A246; + m_A254 += m_A5 * f1_48; + m_A257 += m_A6 * f1_48; + RHS48 += f1_48 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_28 = -f2 * m_A88; + m_A89 += m_A8 * f2_28; + m_A90 += m_A9 * f2_28; + m_A91 += m_A10 * f2_28; + RHS28 += f2_28 * RHS2; + const double f2_43 = -f2 * m_A188; + m_A190 += m_A8 * f2_43; + m_A195 += m_A9 * f2_43; + m_A198 += m_A10 * f2_43; + RHS43 += f2_43 * RHS2; + const double f2_48 = -f2 * m_A247; + m_A248 += m_A8 * f2_48; + m_A253 += m_A9 * f2_48; + m_A257 += m_A10 * f2_48; + RHS48 += f2_48 * RHS2; + const double f3 = 1.0 / m_A11; + const double f3_30 = -f3 * m_A96; + m_A99 += m_A12 * f3_30; + m_A103 += m_A13 * f3_30; + RHS30 += f3_30 * RHS3; + const double f3_49 = -f3 * m_A262; + m_A264 += m_A12 * f3_49; + m_A273 += m_A13 * f3_49; + RHS49 += f3_49 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_45 = -f4 * m_A208; + m_A211 += m_A15 * f4_45; + m_A213 += m_A16 * f4_45; + RHS45 += f4_45 * RHS4; + const double f4_51 = -f4 * m_A290; + m_A296 += m_A15 * f4_51; + m_A302 += m_A16 * f4_51; + RHS51 += f4_51 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_34 = -f5 * m_A125; + m_A126 += m_A18 * f5_34; + m_A127 += m_A19 * f5_34; + m_A128 += m_A20 * f5_34; + RHS34 += f5_34 * RHS5; + const double f5_45 = -f5 * m_A209; + m_A210 += m_A18 * f5_45; + m_A211 += m_A19 * f5_45; + m_A212 += m_A20 * f5_45; + RHS45 += f5_45 * RHS5; + const double f5_50 = -f5 * m_A276; + m_A278 += m_A18 * f5_50; + m_A283 += m_A19 * f5_50; + m_A288 += m_A20 * f5_50; + RHS50 += f5_50 * RHS5; + const double f6 = 1.0 / m_A21; + const double f6_24 = -f6 * m_A72; + m_A74 += m_A22 * f6_24; + RHS24 += f6_24 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_35 = -f7 * m_A129; + m_A130 += m_A24 * f7_35; + m_A131 += m_A25 * f7_35; + m_A132 += m_A26 * f7_35; + RHS35 += f7_35 * RHS7; + const double f7_46 = -f7 * m_A214; + m_A217 += m_A24 * f7_46; + m_A222 += m_A25 * f7_46; + m_A227 += m_A26 * f7_46; + RHS46 += f7_46 * RHS7; + const double f7_51 = -f7 * m_A291; + m_A293 += m_A24 * f7_51; + m_A297 += m_A25 * f7_51; + m_A302 += m_A26 * f7_51; + RHS51 += f7_51 * RHS7; + const double f8 = 1.0 / m_A27; + const double f8_30 = -f8 * m_A97; + m_A99 += m_A28 * f8_30; + m_A101 += m_A29 * f8_30; + RHS30 += f8_30 * RHS8; + const double f8_39 = -f8 * m_A150; + m_A155 += m_A28 * f8_39; + m_A158 += m_A29 * f8_39; + RHS39 += f8_39 * RHS8; + const double f9 = 1.0 / m_A30; + const double f9_24 = -f9 * m_A73; + m_A74 += m_A31 * f9_24; + m_A75 += m_A32 * f9_24; + m_A76 += m_A33 * f9_24; + RHS24 += f9_24 * RHS9; + const double f9_26 = -f9 * m_A80; + m_A81 += m_A31 * f9_26; + m_A82 += m_A32 * f9_26; + m_A83 += m_A33 * f9_26; + RHS26 += f9_26 * RHS9; + const double f9_39 = -f9 * m_A151; + m_A153 += m_A31 * f9_39; + m_A154 += m_A32 * f9_39; + m_A158 += m_A33 * f9_39; + RHS39 += f9_39 * RHS9; + const double f10 = 1.0 / m_A34; + const double f10_36 = -f10 * m_A133; + m_A137 += m_A35 * f10_36; + m_A138 += m_A36 * f10_36; + RHS36 += f10_36 * RHS10; + const double f10_39 = -f10 * m_A152; + m_A157 += m_A35 * f10_39; + m_A158 += m_A36 * f10_39; + RHS39 += f10_39 * RHS10; + const double f11 = 1.0 / m_A37; + const double f11_36 = -f11 * m_A134; + m_A137 += m_A38 * f11_36; + m_A143 += m_A39 * f11_36; + RHS36 += f11_36 * RHS11; + const double f11_50 = -f11 * m_A277; + m_A279 += m_A38 * f11_50; + m_A288 += m_A39 * f11_50; + RHS50 += f11_50 * RHS11; + const double f12 = 1.0 / m_A40; + const double f12_30 = -f12 * m_A98; + m_A99 += m_A41 * f12_30; + m_A100 += m_A42 * f12_30; + m_A102 += m_A43 * f12_30; + RHS30 += f12_30 * RHS12; + const double f12_32 = -f12 * m_A108; + m_A110 += m_A41 * f12_32; + m_A111 += m_A42 * f12_32; + m_A114 += m_A43 * f12_32; + RHS32 += f12_32 * RHS12; + const double f12_43 = -f12 * m_A189; + m_A191 += m_A41 * f12_43; + m_A192 += m_A42 * f12_43; + m_A195 += m_A43 * f12_43; + RHS43 += f12_43 * RHS12; + const double f13 = 1.0 / m_A44; + const double f13_31 = -f13 * m_A104; + m_A105 += m_A45 * f13_31; + m_A107 += m_A46 * f13_31; + RHS31 += f13_31 * RHS13; + const double f14 = 1.0 / m_A47; + const double f14_37 = -f14 * m_A144; + m_A145 += m_A48 * f14_37; + RHS37 += f14_37 * RHS14; + const double f15 = 1.0 / m_A49; + const double f15_40 = -f15 * m_A166; + m_A172 += m_A50 * f15_40; + RHS40 += f15_40 * RHS15; + const double f16 = 1.0 / m_A51; + const double f16_32 = -f16 * m_A109; + m_A113 += m_A52 * f16_32; + RHS32 += f16_32 * RHS16; + const double f17 = 1.0 / m_A53; + const double f17_33 = -f17 * m_A116; + m_A119 += m_A54 * f17_33; + m_A124 += m_A55 * f17_33; + RHS33 += f17_33 * RHS17; + const double f18 = 1.0 / m_A56; + const double f18_29 = -f18 * m_A92; + m_A94 += m_A57 * f18_29; + RHS29 += f18_29 * RHS18; + const double f19 = 1.0 / m_A58; + const double f19_33 = -f19 * m_A117; + m_A119 += m_A59 * f19_33; + m_A120 += m_A60 * f19_33; + m_A122 += m_A61 * f19_33; + RHS33 += f19_33 * RHS19; + const double f19_36 = -f19 * m_A135; + m_A136 += m_A59 * f19_36; + m_A137 += m_A60 * f19_36; + m_A140 += m_A61 * f19_36; + RHS36 += f19_36 * RHS19; + const double f19_46 = -f19 * m_A215; + m_A216 += m_A59 * f19_46; + m_A218 += m_A60 * f19_46; + m_A222 += m_A61 * f19_46; + RHS46 += f19_46 * RHS19; + const double f20 = 1.0 / m_A62; + const double f20_33 = -f20 * m_A118; + m_A119 += m_A63 * f20_33; + m_A123 += m_A64 * f20_33; + RHS33 += f20_33 * RHS20; + const double f20_47 = -f20 * m_A228; + m_A232 += m_A63 * f20_47; + m_A241 += m_A64 * f20_47; + RHS47 += f20_47 * RHS20; + const double f21 = 1.0 / m_A65; + const double f21_41 = -f21 * m_A180; + m_A182 += m_A66 * f21_41; + RHS41 += f21_41 * RHS21; + const double f22 = 1.0 / m_A67; + const double f22_29 = -f22 * m_A93; + m_A94 += m_A68 * f22_29; + m_A95 += m_A69 * f22_29; + RHS29 += f22_29 * RHS22; + const double f22_47 = -f22 * m_A229; + m_A231 += m_A68 * f22_47; + m_A241 += m_A69 * f22_47; + RHS47 += f22_47 * RHS22; + const double f23 = 1.0 / m_A70; + const double f23_38 = -f23 * m_A147; + m_A149 += m_A71 * f23_38; + RHS38 += f23_38 * RHS23; + const double f23_42 = -f23 * m_A183; + m_A186 += m_A71 * f23_42; + RHS42 += f23_42 * RHS23; + const double f24 = 1.0 / m_A74; + const double f24_26 = -f24 * m_A81; + m_A82 += m_A75 * f24_26; + m_A83 += m_A76 * f24_26; + RHS26 += f24_26 * RHS24; + const double f24_39 = -f24 * m_A153; + m_A154 += m_A75 * f24_39; + m_A158 += m_A76 * f24_39; + RHS39 += f24_39 * RHS24; + const double f25 = 1.0 / m_A77; + const double f25_42 = -f25 * m_A184; + m_A186 += m_A78 * f25_42; + m_A187 += m_A79 * f25_42; + RHS42 += f25_42 * RHS25; + const double f25_47 = -f25 * m_A230; + m_A238 += m_A78 * f25_47; + m_A241 += m_A79 * f25_47; + RHS47 += f25_47 * RHS25; + const double f26 = 1.0 / m_A82; + const double f26_39 = -f26 * m_A154; + m_A158 += m_A83 * f26_39; + RHS39 += f26_39 * RHS26; + const double f27 = 1.0 / m_A85; + const double f27_44 = -f27 * m_A204; + m_A205 += m_A86 * f27_44; + m_A207 += m_A87 * f27_44; + RHS44 += f27_44 * RHS27; + const double f27_49 = -f27 * m_A263; + m_A269 += m_A86 * f27_49; + m_A273 += m_A87 * f27_49; + RHS49 += f27_49 * RHS27; + const double f28 = 1.0 / m_A89; + const double f28_43 = -f28 * m_A190; + m_A195 += m_A90 * f28_43; + m_A198 += m_A91 * f28_43; + RHS43 += f28_43 * RHS28; + const double f28_48 = -f28 * m_A248; + m_A253 += m_A90 * f28_48; + m_A257 += m_A91 * f28_48; + RHS48 += f28_48 * RHS28; + const double f29 = 1.0 / m_A94; + const double f29_47 = -f29 * m_A231; + m_A241 += m_A95 * f29_47; + RHS47 += f29_47 * RHS29; + const double f30 = 1.0 / m_A99; + const double f30_32 = -f30 * m_A110; + m_A111 += m_A100 * f30_32; + m_A112 += m_A101 * f30_32; + m_A114 += m_A102 * f30_32; + m_A115 += m_A103 * f30_32; + RHS32 += f30_32 * RHS30; + const double f30_39 = -f30 * m_A155; + m_A156 += m_A100 * f30_39; + m_A158 += m_A101 * f30_39; + m_A160 += m_A102 * f30_39; + m_A164 += m_A103 * f30_39; + RHS39 += f30_39 * RHS30; + const double f30_43 = -f30 * m_A191; + m_A192 += m_A100 * f30_43; + m_A193 += m_A101 * f30_43; + m_A195 += m_A102 * f30_43; + m_A199 += m_A103 * f30_43; + RHS43 += f30_43 * RHS30; + const double f30_49 = -f30 * m_A264; + m_A265 += m_A100 * f30_49; + m_A266 += m_A101 * f30_49; + m_A268 += m_A102 * f30_49; + m_A273 += m_A103 * f30_49; + RHS49 += f30_49 * RHS30; + const double f31 = 1.0 / m_A105; + const double f31_40 = -f31 * m_A167; + m_A172 += m_A106 * f31_40; + m_A179 += m_A107 * f31_40; + RHS40 += f31_40 * RHS31; + const double f31_51 = -f31 * m_A292; + m_A294 += m_A106 * f31_51; + m_A302 += m_A107 * f31_51; + RHS51 += f31_51 * RHS31; + const double f32 = 1.0 / m_A111; + const double f32_39 = -f32 * m_A156; + m_A158 += m_A112 * f32_39; + m_A159 += m_A113 * f32_39; + m_A160 += m_A114 * f32_39; + m_A164 += m_A115 * f32_39; + RHS39 += f32_39 * RHS32; + const double f32_40 = -f32 * m_A168; + m_A171 += m_A112 * f32_40; + m_A172 += m_A113 * f32_40; + m_A173 += m_A114 * f32_40; + m_A177 += m_A115 * f32_40; + RHS40 += f32_40 * RHS32; + const double f32_43 = -f32 * m_A192; + m_A193 += m_A112 * f32_43; + m_A194 += m_A113 * f32_43; + m_A195 += m_A114 * f32_43; + m_A199 += m_A115 * f32_43; + RHS43 += f32_43 * RHS32; + const double f32_49 = -f32 * m_A265; + m_A266 += m_A112 * f32_49; + m_A267 += m_A113 * f32_49; + m_A268 += m_A114 * f32_49; + m_A273 += m_A115 * f32_49; + RHS49 += f32_49 * RHS32; + const double f33 = 1.0 / m_A119; + const double f33_36 = -f33 * m_A136; + m_A137 += m_A120 * f33_36; + m_A139 += m_A121 * f33_36; + m_A140 += m_A122 * f33_36; + m_A141 += m_A123 * f33_36; + m_A142 += m_A124 * f33_36; + RHS36 += f33_36 * RHS33; + const double f33_40 = -f33 * m_A169; + m_A170 += m_A120 * f33_40; + m_A172 += m_A121 * f33_40; + m_A174 += m_A122 * f33_40; + m_A175 += m_A123 * f33_40; + m_A176 += m_A124 * f33_40; + RHS40 += f33_40 * RHS33; + const double f33_46 = -f33 * m_A216; + m_A218 += m_A120 * f33_46; + m_A220 += m_A121 * f33_46; + m_A222 += m_A122 * f33_46; + m_A223 += m_A123 * f33_46; + m_A224 += m_A124 * f33_46; + RHS46 += f33_46 * RHS33; + const double f33_47 = -f33 * m_A232; + m_A233 += m_A120 * f33_47; + m_A236 += m_A121 * f33_47; + m_A240 += m_A122 * f33_47; + m_A241 += m_A123 * f33_47; + m_A242 += m_A124 * f33_47; + RHS47 += f33_47 * RHS33; + const double f33_48 = -f33 * m_A249; + m_A250 += m_A120 * f33_48; + m_A252 += m_A121 * f33_48; + m_A255 += m_A122 * f33_48; + m_A256 += m_A123 * f33_48; + m_A257 += m_A124 * f33_48; + RHS48 += f33_48 * RHS33; + const double f34 = 1.0 / m_A126; + const double f34_45 = -f34 * m_A210; + m_A211 += m_A127 * f34_45; + m_A212 += m_A128 * f34_45; + RHS45 += f34_45 * RHS34; + const double f34_50 = -f34 * m_A278; + m_A283 += m_A127 * f34_50; + m_A288 += m_A128 * f34_50; + RHS50 += f34_50 * RHS34; + const double f35 = 1.0 / m_A130; + const double f35_46 = -f35 * m_A217; + m_A222 += m_A131 * f35_46; + m_A227 += m_A132 * f35_46; + RHS46 += f35_46 * RHS35; + const double f35_51 = -f35 * m_A293; + m_A297 += m_A131 * f35_51; + m_A302 += m_A132 * f35_51; + RHS51 += f35_51 * RHS35; + const double f36 = 1.0 / m_A137; + const double f36_39 = -f36 * m_A157; + m_A158 += m_A138 * f36_39; + m_A159 += m_A139 * f36_39; + m_A161 += m_A140 * f36_39; + m_A162 += m_A141 * f36_39; + m_A163 += m_A142 * f36_39; + m_A165 += m_A143 * f36_39; + RHS39 += f36_39 * RHS36; + const double f36_40 = -f36 * m_A170; + m_A171 += m_A138 * f36_40; + m_A172 += m_A139 * f36_40; + m_A174 += m_A140 * f36_40; + m_A175 += m_A141 * f36_40; + m_A176 += m_A142 * f36_40; + m_A178 += m_A143 * f36_40; + RHS40 += f36_40 * RHS36; + const double f36_46 = -f36 * m_A218; + m_A219 += m_A138 * f36_46; + m_A220 += m_A139 * f36_46; + m_A222 += m_A140 * f36_46; + m_A223 += m_A141 * f36_46; + m_A224 += m_A142 * f36_46; + m_A226 += m_A143 * f36_46; + RHS46 += f36_46 * RHS36; + const double f36_47 = -f36 * m_A233; + m_A235 += m_A138 * f36_47; + m_A236 += m_A139 * f36_47; + m_A240 += m_A140 * f36_47; + m_A241 += m_A141 * f36_47; + m_A242 += m_A142 * f36_47; + m_A244 += m_A143 * f36_47; + RHS47 += f36_47 * RHS36; + const double f36_48 = -f36 * m_A250; + m_A251 += m_A138 * f36_48; + m_A252 += m_A139 * f36_48; + m_A255 += m_A140 * f36_48; + m_A256 += m_A141 * f36_48; + m_A257 += m_A142 * f36_48; + m_A259 += m_A143 * f36_48; + RHS48 += f36_48 * RHS36; + const double f36_50 = -f36 * m_A279; + m_A280 += m_A138 * f36_50; + m_A281 += m_A139 * f36_50; + m_A284 += m_A140 * f36_50; + m_A285 += m_A141 * f36_50; + m_A286 += m_A142 * f36_50; + m_A288 += m_A143 * f36_50; + RHS50 += f36_50 * RHS36; + const double f37 = 1.0 / m_A145; + const double f37_47 = -f37 * m_A234; + m_A241 += m_A146 * f37_47; + RHS47 += f37_47 * RHS37; + const double f38 = 1.0 / m_A148; + const double f38_42 = -f38 * m_A185; + m_A186 += m_A149 * f38_42; + RHS42 += f38_42 * RHS38; + const double f39 = 1.0 / m_A158; + const double f39_40 = -f39 * m_A171; + m_A172 += m_A159 * f39_40; + m_A173 += m_A160 * f39_40; + m_A174 += m_A161 * f39_40; + m_A175 += m_A162 * f39_40; + m_A176 += m_A163 * f39_40; + m_A177 += m_A164 * f39_40; + m_A178 += m_A165 * f39_40; + RHS40 += f39_40 * RHS39; + const double f39_43 = -f39 * m_A193; + m_A194 += m_A159 * f39_43; + m_A195 += m_A160 * f39_43; + m_A196 += m_A161 * f39_43; + m_A197 += m_A162 * f39_43; + m_A198 += m_A163 * f39_43; + m_A199 += m_A164 * f39_43; + m_A200 += m_A165 * f39_43; + RHS43 += f39_43 * RHS39; + const double f39_46 = -f39 * m_A219; + m_A220 += m_A159 * f39_46; + m_A221 += m_A160 * f39_46; + m_A222 += m_A161 * f39_46; + m_A223 += m_A162 * f39_46; + m_A224 += m_A163 * f39_46; + m_A225 += m_A164 * f39_46; + m_A226 += m_A165 * f39_46; + RHS46 += f39_46 * RHS39; + const double f39_47 = -f39 * m_A235; + m_A236 += m_A159 * f39_47; + m_A239 += m_A160 * f39_47; + m_A240 += m_A161 * f39_47; + m_A241 += m_A162 * f39_47; + m_A242 += m_A163 * f39_47; + m_A243 += m_A164 * f39_47; + m_A244 += m_A165 * f39_47; + RHS47 += f39_47 * RHS39; + const double f39_48 = -f39 * m_A251; + m_A252 += m_A159 * f39_48; + m_A253 += m_A160 * f39_48; + m_A255 += m_A161 * f39_48; + m_A256 += m_A162 * f39_48; + m_A257 += m_A163 * f39_48; + m_A258 += m_A164 * f39_48; + m_A259 += m_A165 * f39_48; + RHS48 += f39_48 * RHS39; + const double f39_49 = -f39 * m_A266; + m_A267 += m_A159 * f39_49; + m_A268 += m_A160 * f39_49; + m_A270 += m_A161 * f39_49; + m_A271 += m_A162 * f39_49; + m_A272 += m_A163 * f39_49; + m_A273 += m_A164 * f39_49; + m_A274 += m_A165 * f39_49; + RHS49 += f39_49 * RHS39; + const double f39_50 = -f39 * m_A280; + m_A281 += m_A159 * f39_50; + m_A282 += m_A160 * f39_50; + m_A284 += m_A161 * f39_50; + m_A285 += m_A162 * f39_50; + m_A286 += m_A163 * f39_50; + m_A287 += m_A164 * f39_50; + m_A288 += m_A165 * f39_50; + RHS50 += f39_50 * RHS39; + const double f40 = 1.0 / m_A172; + const double f40_43 = -f40 * m_A194; + m_A195 += m_A173 * f40_43; + m_A196 += m_A174 * f40_43; + m_A197 += m_A175 * f40_43; + m_A198 += m_A176 * f40_43; + m_A199 += m_A177 * f40_43; + m_A200 += m_A178 * f40_43; + m_A201 += m_A179 * f40_43; + RHS43 += f40_43 * RHS40; + const double f40_46 = -f40 * m_A220; + m_A221 += m_A173 * f40_46; + m_A222 += m_A174 * f40_46; + m_A223 += m_A175 * f40_46; + m_A224 += m_A176 * f40_46; + m_A225 += m_A177 * f40_46; + m_A226 += m_A178 * f40_46; + m_A227 += m_A179 * f40_46; + RHS46 += f40_46 * RHS40; + const double f40_47 = -f40 * m_A236; + m_A239 += m_A173 * f40_47; + m_A240 += m_A174 * f40_47; + m_A241 += m_A175 * f40_47; + m_A242 += m_A176 * f40_47; + m_A243 += m_A177 * f40_47; + m_A244 += m_A178 * f40_47; + m_A245 += m_A179 * f40_47; + RHS47 += f40_47 * RHS40; + const double f40_48 = -f40 * m_A252; + m_A253 += m_A173 * f40_48; + m_A255 += m_A174 * f40_48; + m_A256 += m_A175 * f40_48; + m_A257 += m_A176 * f40_48; + m_A258 += m_A177 * f40_48; + m_A259 += m_A178 * f40_48; + m_A260 += m_A179 * f40_48; + RHS48 += f40_48 * RHS40; + const double f40_49 = -f40 * m_A267; + m_A268 += m_A173 * f40_49; + m_A270 += m_A174 * f40_49; + m_A271 += m_A175 * f40_49; + m_A272 += m_A176 * f40_49; + m_A273 += m_A177 * f40_49; + m_A274 += m_A178 * f40_49; + m_A275 += m_A179 * f40_49; + RHS49 += f40_49 * RHS40; + const double f40_50 = -f40 * m_A281; + m_A282 += m_A173 * f40_50; + m_A284 += m_A174 * f40_50; + m_A285 += m_A175 * f40_50; + m_A286 += m_A176 * f40_50; + m_A287 += m_A177 * f40_50; + m_A288 += m_A178 * f40_50; + m_A289 += m_A179 * f40_50; + RHS50 += f40_50 * RHS40; + const double f40_51 = -f40 * m_A294; + m_A295 += m_A173 * f40_51; + m_A297 += m_A174 * f40_51; + m_A298 += m_A175 * f40_51; + m_A299 += m_A176 * f40_51; + m_A300 += m_A177 * f40_51; + m_A301 += m_A178 * f40_51; + m_A302 += m_A179 * f40_51; + RHS51 += f40_51 * RHS40; + const double f41 = 1.0 / m_A181; + const double f41_47 = -f41 * m_A237; + m_A241 += m_A182 * f41_47; + RHS47 += f41_47 * RHS41; + const double f42 = 1.0 / m_A186; + const double f42_47 = -f42 * m_A238; + m_A241 += m_A187 * f42_47; + RHS47 += f42_47 * RHS42; + const double f43 = 1.0 / m_A195; + const double f43_46 = -f43 * m_A221; + m_A222 += m_A196 * f43_46; + m_A223 += m_A197 * f43_46; + m_A224 += m_A198 * f43_46; + m_A225 += m_A199 * f43_46; + m_A226 += m_A200 * f43_46; + m_A227 += m_A201 * f43_46; + RHS46 += f43_46 * RHS43; + const double f43_47 = -f43 * m_A239; + m_A240 += m_A196 * f43_47; + m_A241 += m_A197 * f43_47; + m_A242 += m_A198 * f43_47; + m_A243 += m_A199 * f43_47; + m_A244 += m_A200 * f43_47; + m_A245 += m_A201 * f43_47; + RHS47 += f43_47 * RHS43; + const double f43_48 = -f43 * m_A253; + m_A255 += m_A196 * f43_48; + m_A256 += m_A197 * f43_48; + m_A257 += m_A198 * f43_48; + m_A258 += m_A199 * f43_48; + m_A259 += m_A200 * f43_48; + m_A260 += m_A201 * f43_48; + RHS48 += f43_48 * RHS43; + const double f43_49 = -f43 * m_A268; + m_A270 += m_A196 * f43_49; + m_A271 += m_A197 * f43_49; + m_A272 += m_A198 * f43_49; + m_A273 += m_A199 * f43_49; + m_A274 += m_A200 * f43_49; + m_A275 += m_A201 * f43_49; + RHS49 += f43_49 * RHS43; + const double f43_50 = -f43 * m_A282; + m_A284 += m_A196 * f43_50; + m_A285 += m_A197 * f43_50; + m_A286 += m_A198 * f43_50; + m_A287 += m_A199 * f43_50; + m_A288 += m_A200 * f43_50; + m_A289 += m_A201 * f43_50; + RHS50 += f43_50 * RHS43; + const double f43_51 = -f43 * m_A295; + m_A297 += m_A196 * f43_51; + m_A298 += m_A197 * f43_51; + m_A299 += m_A198 * f43_51; + m_A300 += m_A199 * f43_51; + m_A301 += m_A200 * f43_51; + m_A302 += m_A201 * f43_51; + RHS51 += f43_51 * RHS43; + const double f44 = 1.0 / m_A205; + const double f44_48 = -f44 * m_A254; + m_A257 += m_A206 * f44_48; + m_A258 += m_A207 * f44_48; + RHS48 += f44_48 * RHS44; + const double f44_49 = -f44 * m_A269; + m_A272 += m_A206 * f44_49; + m_A273 += m_A207 * f44_49; + RHS49 += f44_49 * RHS44; + const double f45 = 1.0 / m_A211; + const double f45_50 = -f45 * m_A283; + m_A288 += m_A212 * f45_50; + m_A289 += m_A213 * f45_50; + RHS50 += f45_50 * RHS45; + const double f45_51 = -f45 * m_A296; + m_A301 += m_A212 * f45_51; + m_A302 += m_A213 * f45_51; + RHS51 += f45_51 * RHS45; + const double f46 = 1.0 / m_A222; + const double f46_47 = -f46 * m_A240; + m_A241 += m_A223 * f46_47; + m_A242 += m_A224 * f46_47; + m_A243 += m_A225 * f46_47; + m_A244 += m_A226 * f46_47; + m_A245 += m_A227 * f46_47; + RHS47 += f46_47 * RHS46; + const double f46_48 = -f46 * m_A255; + m_A256 += m_A223 * f46_48; + m_A257 += m_A224 * f46_48; + m_A258 += m_A225 * f46_48; + m_A259 += m_A226 * f46_48; + m_A260 += m_A227 * f46_48; + RHS48 += f46_48 * RHS46; + const double f46_49 = -f46 * m_A270; + m_A271 += m_A223 * f46_49; + m_A272 += m_A224 * f46_49; + m_A273 += m_A225 * f46_49; + m_A274 += m_A226 * f46_49; + m_A275 += m_A227 * f46_49; + RHS49 += f46_49 * RHS46; + const double f46_50 = -f46 * m_A284; + m_A285 += m_A223 * f46_50; + m_A286 += m_A224 * f46_50; + m_A287 += m_A225 * f46_50; + m_A288 += m_A226 * f46_50; + m_A289 += m_A227 * f46_50; + RHS50 += f46_50 * RHS46; + const double f46_51 = -f46 * m_A297; + m_A298 += m_A223 * f46_51; + m_A299 += m_A224 * f46_51; + m_A300 += m_A225 * f46_51; + m_A301 += m_A226 * f46_51; + m_A302 += m_A227 * f46_51; + RHS51 += f46_51 * RHS46; + const double f47 = 1.0 / m_A241; + const double f47_48 = -f47 * m_A256; + m_A257 += m_A242 * f47_48; + m_A258 += m_A243 * f47_48; + m_A259 += m_A244 * f47_48; + m_A260 += m_A245 * f47_48; + RHS48 += f47_48 * RHS47; + const double f47_49 = -f47 * m_A271; + m_A272 += m_A242 * f47_49; + m_A273 += m_A243 * f47_49; + m_A274 += m_A244 * f47_49; + m_A275 += m_A245 * f47_49; + RHS49 += f47_49 * RHS47; + const double f47_50 = -f47 * m_A285; + m_A286 += m_A242 * f47_50; + m_A287 += m_A243 * f47_50; + m_A288 += m_A244 * f47_50; + m_A289 += m_A245 * f47_50; + RHS50 += f47_50 * RHS47; + const double f47_51 = -f47 * m_A298; + m_A299 += m_A242 * f47_51; + m_A300 += m_A243 * f47_51; + m_A301 += m_A244 * f47_51; + m_A302 += m_A245 * f47_51; + RHS51 += f47_51 * RHS47; + const double f48 = 1.0 / m_A257; + const double f48_49 = -f48 * m_A272; + m_A273 += m_A258 * f48_49; + m_A274 += m_A259 * f48_49; + m_A275 += m_A260 * f48_49; + RHS49 += f48_49 * RHS48; + const double f48_50 = -f48 * m_A286; + m_A287 += m_A258 * f48_50; + m_A288 += m_A259 * f48_50; + m_A289 += m_A260 * f48_50; + RHS50 += f48_50 * RHS48; + const double f48_51 = -f48 * m_A299; + m_A300 += m_A258 * f48_51; + m_A301 += m_A259 * f48_51; + m_A302 += m_A260 * f48_51; + RHS51 += f48_51 * RHS48; + const double f49 = 1.0 / m_A273; + const double f49_50 = -f49 * m_A287; + m_A288 += m_A274 * f49_50; + m_A289 += m_A275 * f49_50; + RHS50 += f49_50 * RHS49; + const double f49_51 = -f49 * m_A300; + m_A301 += m_A274 * f49_51; + m_A302 += m_A275 * f49_51; + RHS51 += f49_51 * RHS49; + const double f50 = 1.0 / m_A288; + const double f50_51 = -f50 * m_A301; + m_A302 += m_A289 * f50_51; + RHS51 += f50_51 * RHS50; + V[51] = RHS51 / m_A302; + double tmp50 = 0.0; + tmp50 += m_A289 * V[51]; + V[50] = (RHS50 - tmp50) / m_A288; + double tmp49 = 0.0; + tmp49 += m_A274 * V[50]; + tmp49 += m_A275 * V[51]; + V[49] = (RHS49 - tmp49) / m_A273; + double tmp48 = 0.0; + tmp48 += m_A258 * V[49]; + tmp48 += m_A259 * V[50]; + tmp48 += m_A260 * V[51]; + V[48] = (RHS48 - tmp48) / m_A257; + double tmp47 = 0.0; + tmp47 += m_A242 * V[48]; + tmp47 += m_A243 * V[49]; + tmp47 += m_A244 * V[50]; + tmp47 += m_A245 * V[51]; + V[47] = (RHS47 - tmp47) / m_A241; + double tmp46 = 0.0; + tmp46 += m_A223 * V[47]; + tmp46 += m_A224 * V[48]; + tmp46 += m_A225 * V[49]; + tmp46 += m_A226 * V[50]; + tmp46 += m_A227 * V[51]; + V[46] = (RHS46 - tmp46) / m_A222; + double tmp45 = 0.0; + tmp45 += m_A212 * V[50]; + tmp45 += m_A213 * V[51]; + V[45] = (RHS45 - tmp45) / m_A211; + double tmp44 = 0.0; + tmp44 += m_A206 * V[48]; + tmp44 += m_A207 * V[49]; + V[44] = (RHS44 - tmp44) / m_A205; + double tmp43 = 0.0; + tmp43 += m_A196 * V[46]; + tmp43 += m_A197 * V[47]; + tmp43 += m_A198 * V[48]; + tmp43 += m_A199 * V[49]; + tmp43 += m_A200 * V[50]; + tmp43 += m_A201 * V[51]; + V[43] = (RHS43 - tmp43) / m_A195; + double tmp42 = 0.0; + tmp42 += m_A187 * V[47]; + V[42] = (RHS42 - tmp42) / m_A186; + double tmp41 = 0.0; + tmp41 += m_A182 * V[47]; + V[41] = (RHS41 - tmp41) / m_A181; + double tmp40 = 0.0; + tmp40 += m_A173 * V[43]; + tmp40 += m_A174 * V[46]; + tmp40 += m_A175 * V[47]; + tmp40 += m_A176 * V[48]; + tmp40 += m_A177 * V[49]; + tmp40 += m_A178 * V[50]; + tmp40 += m_A179 * V[51]; + V[40] = (RHS40 - tmp40) / m_A172; + double tmp39 = 0.0; + tmp39 += m_A159 * V[40]; + tmp39 += m_A160 * V[43]; + tmp39 += m_A161 * V[46]; + tmp39 += m_A162 * V[47]; + tmp39 += m_A163 * V[48]; + tmp39 += m_A164 * V[49]; + tmp39 += m_A165 * V[50]; + V[39] = (RHS39 - tmp39) / m_A158; + double tmp38 = 0.0; + tmp38 += m_A149 * V[42]; + V[38] = (RHS38 - tmp38) / m_A148; + double tmp37 = 0.0; + tmp37 += m_A146 * V[47]; + V[37] = (RHS37 - tmp37) / m_A145; + double tmp36 = 0.0; + tmp36 += m_A138 * V[39]; + tmp36 += m_A139 * V[40]; + tmp36 += m_A140 * V[46]; + tmp36 += m_A141 * V[47]; + tmp36 += m_A142 * V[48]; + tmp36 += m_A143 * V[50]; + V[36] = (RHS36 - tmp36) / m_A137; + double tmp35 = 0.0; + tmp35 += m_A131 * V[46]; + tmp35 += m_A132 * V[51]; + V[35] = (RHS35 - tmp35) / m_A130; + double tmp34 = 0.0; + tmp34 += m_A127 * V[45]; + tmp34 += m_A128 * V[50]; + V[34] = (RHS34 - tmp34) / m_A126; + double tmp33 = 0.0; + tmp33 += m_A120 * V[36]; + tmp33 += m_A121 * V[40]; + tmp33 += m_A122 * V[46]; + tmp33 += m_A123 * V[47]; + tmp33 += m_A124 * V[48]; + V[33] = (RHS33 - tmp33) / m_A119; + double tmp32 = 0.0; + tmp32 += m_A112 * V[39]; + tmp32 += m_A113 * V[40]; + tmp32 += m_A114 * V[43]; + tmp32 += m_A115 * V[49]; + V[32] = (RHS32 - tmp32) / m_A111; + double tmp31 = 0.0; + tmp31 += m_A106 * V[40]; + tmp31 += m_A107 * V[51]; + V[31] = (RHS31 - tmp31) / m_A105; + double tmp30 = 0.0; + tmp30 += m_A100 * V[32]; + tmp30 += m_A101 * V[39]; + tmp30 += m_A102 * V[43]; + tmp30 += m_A103 * V[49]; + V[30] = (RHS30 - tmp30) / m_A99; + double tmp29 = 0.0; + tmp29 += m_A95 * V[47]; + V[29] = (RHS29 - tmp29) / m_A94; + double tmp28 = 0.0; + tmp28 += m_A90 * V[43]; + tmp28 += m_A91 * V[48]; + V[28] = (RHS28 - tmp28) / m_A89; + double tmp27 = 0.0; + tmp27 += m_A86 * V[44]; + tmp27 += m_A87 * V[49]; + V[27] = (RHS27 - tmp27) / m_A85; + double tmp26 = 0.0; + tmp26 += m_A83 * V[39]; + V[26] = (RHS26 - tmp26) / m_A82; + double tmp25 = 0.0; + tmp25 += m_A78 * V[42]; + tmp25 += m_A79 * V[47]; + V[25] = (RHS25 - tmp25) / m_A77; + double tmp24 = 0.0; + tmp24 += m_A75 * V[26]; + tmp24 += m_A76 * V[39]; + V[24] = (RHS24 - tmp24) / m_A74; + double tmp23 = 0.0; + tmp23 += m_A71 * V[42]; + V[23] = (RHS23 - tmp23) / m_A70; + double tmp22 = 0.0; + tmp22 += m_A68 * V[29]; + tmp22 += m_A69 * V[47]; + V[22] = (RHS22 - tmp22) / m_A67; + double tmp21 = 0.0; + tmp21 += m_A66 * V[47]; + V[21] = (RHS21 - tmp21) / m_A65; + double tmp20 = 0.0; + tmp20 += m_A63 * V[33]; + tmp20 += m_A64 * V[47]; + V[20] = (RHS20 - tmp20) / m_A62; + double tmp19 = 0.0; + tmp19 += m_A59 * V[33]; + tmp19 += m_A60 * V[36]; + tmp19 += m_A61 * V[46]; + V[19] = (RHS19 - tmp19) / m_A58; + double tmp18 = 0.0; + tmp18 += m_A57 * V[29]; + V[18] = (RHS18 - tmp18) / m_A56; + double tmp17 = 0.0; + tmp17 += m_A54 * V[33]; + tmp17 += m_A55 * V[48]; + V[17] = (RHS17 - tmp17) / m_A53; + double tmp16 = 0.0; + tmp16 += m_A52 * V[40]; + V[16] = (RHS16 - tmp16) / m_A51; + double tmp15 = 0.0; + tmp15 += m_A50 * V[40]; + V[15] = (RHS15 - tmp15) / m_A49; + double tmp14 = 0.0; + tmp14 += m_A48 * V[37]; + V[14] = (RHS14 - tmp14) / m_A47; + double tmp13 = 0.0; + tmp13 += m_A45 * V[31]; + tmp13 += m_A46 * V[51]; + V[13] = (RHS13 - tmp13) / m_A44; + double tmp12 = 0.0; + tmp12 += m_A41 * V[30]; + tmp12 += m_A42 * V[32]; + tmp12 += m_A43 * V[43]; + V[12] = (RHS12 - tmp12) / m_A40; + double tmp11 = 0.0; + tmp11 += m_A38 * V[36]; + tmp11 += m_A39 * V[50]; + V[11] = (RHS11 - tmp11) / m_A37; + double tmp10 = 0.0; + tmp10 += m_A35 * V[36]; + tmp10 += m_A36 * V[39]; + V[10] = (RHS10 - tmp10) / m_A34; + double tmp9 = 0.0; + tmp9 += m_A31 * V[24]; + tmp9 += m_A32 * V[26]; + tmp9 += m_A33 * V[39]; + V[9] = (RHS9 - tmp9) / m_A30; + double tmp8 = 0.0; + tmp8 += m_A28 * V[30]; + tmp8 += m_A29 * V[39]; + V[8] = (RHS8 - tmp8) / m_A27; + double tmp7 = 0.0; + tmp7 += m_A24 * V[35]; + tmp7 += m_A25 * V[46]; + tmp7 += m_A26 * V[51]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A22 * V[24]; + V[6] = (RHS6 - tmp6) / m_A21; + double tmp5 = 0.0; + tmp5 += m_A18 * V[34]; + tmp5 += m_A19 * V[45]; + tmp5 += m_A20 * V[50]; + V[5] = (RHS5 - tmp5) / m_A17; + double tmp4 = 0.0; + tmp4 += m_A15 * V[45]; + tmp4 += m_A16 * V[51]; + V[4] = (RHS4 - tmp4) / m_A14; + double tmp3 = 0.0; + tmp3 += m_A12 * V[30]; + tmp3 += m_A13 * V[49]; + V[3] = (RHS3 - tmp3) / m_A11; + double tmp2 = 0.0; + tmp2 += m_A8 * V[28]; + tmp2 += m_A9 * V[43]; + tmp2 += m_A10 * V[48]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A5 * V[44]; + tmp1 += m_A6 * V[48]; + V[1] = (RHS1 - tmp1) / m_A4; + double tmp0 = 0.0; + tmp0 += m_A1 * V[27]; + tmp0 += m_A2 * V[44]; + tmp0 += m_A3 * V[49]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// konami1x +static void nl_gcr_62b99b9904a8c804_49_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A11 += go[10]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A13 += go[12]; + double RHS6 = Idr[12]; + RHS6 += Idr[13]; + RHS6 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A15 += go[14]; + double RHS7 = Idr[14]; + RHS7 += Idr[15]; + RHS7 -= go[15] * *cnV[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A16 += gt[19]; + m_A16 += gt[20]; + m_A16 += gt[21]; + m_A16 += gt[22]; + m_A17 += go[16]; + double RHS8 = Idr[16]; + RHS8 += Idr[17]; + RHS8 += Idr[18]; + RHS8 += Idr[19]; + RHS8 += Idr[20]; + RHS8 += Idr[21]; + RHS8 += Idr[22]; + RHS8 -= go[17] * *cnV[17]; + RHS8 -= go[18] * *cnV[18]; + RHS8 -= go[19] * *cnV[19]; + RHS8 -= go[20] * *cnV[20]; + RHS8 -= go[21] * *cnV[21]; + RHS8 -= go[22] * *cnV[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A19 += go[23]; + double RHS9 = Idr[23]; + RHS9 += Idr[24]; + RHS9 -= go[24] * *cnV[24]; + m_A20 += gt[25]; + m_A20 += gt[26]; + m_A21 += go[25]; + double RHS10 = Idr[25]; + RHS10 += Idr[26]; + RHS10 -= go[26] * *cnV[26]; + m_A25 += gt[27]; + m_A25 += gt[28]; + m_A25 += gt[29]; + m_A25 += gt[30]; + m_A26 += go[27]; + m_A24 += go[28]; + m_A23 += go[29]; + m_A22 += go[30]; + double RHS11 = Idr[27]; + RHS11 += Idr[28]; + RHS11 += Idr[29]; + RHS11 += Idr[30]; + m_A30 += gt[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A31 += go[31]; + m_A29 += go[32]; + m_A28 += go[33]; + m_A27 += go[34]; + double RHS12 = Idr[31]; + RHS12 += Idr[32]; + RHS12 += Idr[33]; + RHS12 += Idr[34]; + m_A35 += gt[35]; + m_A35 += gt[36]; + m_A35 += gt[37]; + m_A35 += gt[38]; + m_A36 += go[35]; + m_A34 += go[36]; + m_A33 += go[37]; + m_A32 += go[38]; + double RHS13 = Idr[35]; + RHS13 += Idr[36]; + RHS13 += Idr[37]; + RHS13 += Idr[38]; + m_A38 += gt[39]; + m_A38 += gt[40]; + m_A38 += gt[41]; + m_A37 += go[39]; + m_A39 += go[40]; + double RHS14 = Idr[39]; + RHS14 += Idr[40]; + RHS14 += Idr[41]; + RHS14 -= go[41] * *cnV[41]; + m_A43 += gt[42]; + m_A43 += gt[43]; + m_A43 += gt[44]; + m_A43 += gt[45]; + m_A43 += gt[46]; + m_A44 += go[42]; + m_A42 += go[43]; + m_A41 += go[44]; + m_A40 += go[45]; + double RHS15 = Idr[42]; + RHS15 += Idr[43]; + RHS15 += Idr[44]; + RHS15 += Idr[45]; + RHS15 += Idr[46]; + RHS15 -= go[46] * *cnV[46]; + m_A48 += gt[47]; + m_A48 += gt[48]; + m_A48 += gt[49]; + m_A48 += gt[50]; + m_A48 += gt[51]; + m_A45 += go[47]; + m_A46 += go[48]; + m_A47 += go[49]; + double RHS16 = Idr[47]; + RHS16 += Idr[48]; + RHS16 += Idr[49]; + RHS16 += Idr[50]; + RHS16 += Idr[51]; + RHS16 -= go[50] * *cnV[50]; + RHS16 -= go[51] * *cnV[51]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A22; + m_A25 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_11 = -f1 * m_A23; + m_A25 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_11 = -f2 * m_A24; + m_A25 += m_A5 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_12 = -f3 * m_A27; + m_A30 += m_A7 * f3_12; + RHS12 += f3_12 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_12 = -f4 * m_A28; + m_A30 += m_A9 * f4_12; + RHS12 += f4_12 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_12 = -f5 * m_A29; + m_A30 += m_A11 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_13 = -f6 * m_A32; + m_A35 += m_A13 * f6_13; + RHS13 += f6_13 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_13 = -f7 * m_A33; + m_A35 += m_A15 * f7_13; + RHS13 += f7_13 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_16 = -f8 * m_A45; + m_A47 += m_A17 * f8_16; + RHS16 += f8_16 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_13 = -f9 * m_A34; + m_A35 += m_A19 * f9_13; + RHS13 += f9_13 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_14 = -f10 * m_A37; + m_A38 += m_A21 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A25; + const double f11_15 = -f11 * m_A40; + m_A43 += m_A26 * f11_15; + RHS15 += f11_15 * RHS11; + const double f12 = 1.0 / m_A30; + const double f12_15 = -f12 * m_A41; + m_A43 += m_A31 * f12_15; + RHS15 += f12_15 * RHS12; + const double f13 = 1.0 / m_A35; + const double f13_15 = -f13 * m_A42; + m_A43 += m_A36 * f13_15; + RHS15 += f13_15 * RHS13; + const double f14 = 1.0 / m_A38; + const double f14_16 = -f14 * m_A46; + m_A48 += m_A39 * f14_16; + RHS16 += f14_16 * RHS14; + const double f15 = 1.0 / m_A43; + const double f15_16 = -f15 * m_A47; + m_A48 += m_A44 * f15_16; + RHS16 += f15_16 * RHS15; + V[16] = RHS16 / m_A48; + double tmp15 = 0.0; + tmp15 += m_A44 * V[16]; + V[15] = (RHS15 - tmp15) / m_A43; + double tmp14 = 0.0; + tmp14 += m_A39 * V[16]; + V[14] = (RHS14 - tmp14) / m_A38; + double tmp13 = 0.0; + tmp13 += m_A36 * V[15]; + V[13] = (RHS13 - tmp13) / m_A35; + double tmp12 = 0.0; + tmp12 += m_A31 * V[15]; + V[12] = (RHS12 - tmp12) / m_A30; + double tmp11 = 0.0; + tmp11 += m_A26 * V[15]; + V[11] = (RHS11 - tmp11) / m_A25; + double tmp10 = 0.0; + tmp10 += m_A21 * V[14]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[13]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[15]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[13]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[13]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[12]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[12]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[12]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[11]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[11]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[11]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_643133e86b2b1628_73_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A2 += gt[12]; + m_A2 += gt[13]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 += Idr[12]; + RHS1 += Idr[13]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + RHS1 -= go[12] * *cnV[12]; + RHS1 -= go[13] * *cnV[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A4 += gt[16]; + m_A4 += gt[17]; + m_A4 += gt[18]; + m_A5 += go[14]; + m_A6 += go[15]; + double RHS2 = Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 += Idr[17]; + RHS2 += Idr[18]; + RHS2 -= go[16] * *cnV[16]; + RHS2 -= go[17] * *cnV[17]; + RHS2 -= go[18] * *cnV[18]; + m_A7 += gt[19]; + m_A7 += gt[20]; + m_A8 += go[19]; + double RHS3 = Idr[19]; + RHS3 += Idr[20]; + RHS3 -= go[20] * *cnV[20]; + m_A9 += gt[21]; + m_A9 += gt[22]; + m_A10 += go[21]; + double RHS4 = Idr[21]; + RHS4 += Idr[22]; + RHS4 -= go[22] * *cnV[22]; + m_A11 += gt[23]; + m_A11 += gt[24]; + m_A11 += gt[25]; + m_A12 += go[23]; + double RHS5 = Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + m_A13 += gt[26]; + m_A13 += gt[27]; + m_A13 += gt[28]; + m_A14 += go[26]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 -= go[27] * *cnV[27]; + RHS6 -= go[28] * *cnV[28]; + m_A16 += gt[29]; + m_A16 += gt[30]; + m_A16 += gt[31]; + m_A16 += gt[32]; + m_A16 += gt[33]; + m_A16 += gt[34]; + m_A15 += go[29]; + m_A18 += go[30]; + m_A19 += go[31]; + m_A19 += go[32]; + double RHS7 = Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 -= go[33] * *cnV[33]; + RHS7 -= go[34] * *cnV[34]; + m_A20 += gt[35]; + m_A20 += gt[36]; + m_A20 += gt[37]; + m_A21 += go[35]; + double RHS8 = Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 -= go[36] * *cnV[36]; + RHS8 -= go[37] * *cnV[37]; + m_A22 += gt[38]; + m_A22 += gt[39]; + m_A23 += go[38]; + double RHS9 = Idr[38]; + RHS9 += Idr[39]; + RHS9 -= go[39] * *cnV[39]; + m_A25 += gt[40]; + m_A25 += gt[41]; + m_A25 += gt[42]; + m_A27 += go[40]; + m_A24 += go[41]; + double RHS10 = Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 -= go[42] * *cnV[42]; + m_A30 += gt[43]; + m_A30 += gt[44]; + m_A30 += gt[45]; + m_A32 += go[43]; + m_A28 += go[44]; + double RHS11 = Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 -= go[45] * *cnV[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A33 += go[46]; + m_A35 += go[47]; + double RHS12 = Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 -= go[48] * *cnV[48]; + m_A37 += gt[49]; + m_A37 += gt[50]; + m_A37 += gt[51]; + m_A37 += gt[52]; + m_A38 += go[49]; + m_A36 += go[50]; + double RHS13 = Idr[49]; + RHS13 += Idr[50]; + RHS13 += Idr[51]; + RHS13 += Idr[52]; + RHS13 -= go[51] * *cnV[51]; + RHS13 -= go[52] * *cnV[52]; + m_A42 += gt[53]; + m_A42 += gt[54]; + m_A40 += go[53]; + m_A39 += go[54]; + double RHS14 = Idr[53]; + RHS14 += Idr[54]; + m_A45 += gt[55]; + m_A45 += gt[56]; + m_A45 += gt[57]; + m_A45 += gt[58]; + m_A46 += go[55]; + m_A44 += go[56]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 -= go[57] * *cnV[57]; + RHS15 -= go[58] * *cnV[58]; + m_A52 += gt[59]; + m_A52 += gt[60]; + m_A52 += gt[61]; + m_A48 += go[59]; + m_A49 += go[60]; + m_A47 += go[61]; + double RHS16 = Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + m_A57 += gt[62]; + m_A57 += gt[63]; + m_A57 += gt[64]; + m_A57 += gt[65]; + m_A57 += gt[66]; + m_A54 += go[62]; + m_A55 += go[63]; + m_A58 += go[64]; + double RHS17 = Idr[62]; + RHS17 += Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + RHS17 += Idr[66]; + RHS17 -= go[65] * *cnV[65]; + RHS17 -= go[66] * *cnV[66]; + m_A65 += gt[67]; + m_A65 += gt[68]; + m_A65 += gt[69]; + m_A65 += gt[70]; + m_A65 += gt[71]; + m_A65 += gt[72]; + m_A61 += go[67]; + m_A61 += go[68]; + m_A63 += go[69]; + m_A60 += go[70]; + m_A59 += go[71]; + double RHS18 = Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 += Idr[72]; + RHS18 -= go[72] * *cnV[72]; + m_A72 += gt[73]; + m_A72 += gt[74]; + m_A72 += gt[75]; + m_A72 += gt[76]; + m_A72 += gt[77]; + m_A68 += go[73]; + m_A70 += go[74]; + m_A69 += go[75]; + m_A67 += go[76]; + m_A66 += go[77]; + double RHS19 = Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + RHS19 += Idr[76]; + RHS19 += Idr[77]; + const double f0 = 1.0 / m_A0; + const double f0_17 = -f0 * m_A54; + m_A56 += m_A1 * f0_17; + RHS17 += f0_17 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A15; + m_A17 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_10 = -f2 * m_A24; + m_A25 += m_A5 * f2_10; + m_A26 += m_A6 * f2_10; + RHS10 += f2_10 * RHS2; + const double f2_11 = -f2 * m_A28; + m_A29 += m_A5 * f2_11; + m_A30 += m_A6 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_14 = -f3 * m_A39; + m_A42 += m_A8 * f3_14; + RHS14 += f3_14 * RHS3; + const double f3_18 = -f3 * m_A59; + m_A63 += m_A8 * f3_18; + RHS18 += f3_18 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_16 = -f4 * m_A47; + m_A52 += m_A10 * f4_16; + RHS16 += f4_16 * RHS4; + const double f4_19 = -f4 * m_A66; + m_A69 += m_A10 * f4_19; + RHS19 += f4_19 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_13 = -f5 * m_A36; + m_A38 += m_A12 * f5_13; + RHS13 += f5_13 * RHS5; + const double f5_18 = -f5 * m_A60; + m_A65 += m_A12 * f5_18; + RHS18 += f5_18 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_12 = -f6 * m_A33; + m_A34 += m_A14 * f6_12; + RHS12 += f6_12 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_16 = -f7 * m_A48; + m_A50 += m_A17 * f7_16; + m_A52 += m_A18 * f7_16; + m_A53 += m_A19 * f7_16; + RHS16 += f7_16 * RHS7; + const double f7_18 = -f7 * m_A61; + m_A62 += m_A17 * f7_18; + m_A64 += m_A18 * f7_18; + m_A65 += m_A19 * f7_18; + RHS18 += f7_18 * RHS7; + const double f8 = 1.0 / m_A20; + const double f8_15 = -f8 * m_A44; + m_A46 += m_A21 * f8_15; + RHS15 += f8_15 * RHS8; + const double f8_19 = -f8 * m_A67; + m_A72 += m_A21 * f8_19; + RHS19 += f8_19 * RHS8; + const double f9 = 1.0 / m_A22; + const double f9_19 = -f9 * m_A68; + m_A72 += m_A23 * f9_19; + RHS19 += f9_19 * RHS9; + const double f10 = 1.0 / m_A25; + const double f10_11 = -f10 * m_A29; + m_A30 += m_A26 * f10_11; + m_A31 += m_A27 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_14 = -f10 * m_A40; + m_A41 += m_A26 * f10_14; + m_A42 += m_A27 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A30; + const double f11_14 = -f11 * m_A41; + m_A42 += m_A31 * f11_14; + m_A43 += m_A32 * f11_14; + RHS14 += f11_14 * RHS11; + const double f11_16 = -f11 * m_A49; + m_A51 += m_A31 * f11_16; + m_A52 += m_A32 * f11_16; + RHS16 += f11_16 * RHS11; + const double f12 = 1.0 / m_A34; + const double f12_17 = -f12 * m_A55; + m_A57 += m_A35 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A37; + const double f13_16 = -f13 * m_A50; + m_A53 += m_A38 * f13_16; + RHS16 += f13_16 * RHS13; + const double f13_18 = -f13 * m_A62; + m_A65 += m_A38 * f13_18; + RHS18 += f13_18 * RHS13; + const double f14 = 1.0 / m_A42; + const double f14_16 = -f14 * m_A51; + m_A52 += m_A43 * f14_16; + RHS16 += f14_16 * RHS14; + const double f14_18 = -f14 * m_A63; + m_A64 += m_A43 * f14_18; + RHS18 += f14_18 * RHS14; + const double f15 = 1.0 / m_A45; + const double f15_17 = -f15 * m_A56; + m_A58 += m_A46 * f15_17; + RHS17 += f15_17 * RHS15; + const double f16 = 1.0 / m_A52; + const double f16_18 = -f16 * m_A64; + m_A65 += m_A53 * f16_18; + RHS18 += f16_18 * RHS16; + const double f16_19 = -f16 * m_A69; + m_A71 += m_A53 * f16_19; + RHS19 += f16_19 * RHS16; + const double f17 = 1.0 / m_A57; + const double f17_19 = -f17 * m_A70; + m_A72 += m_A58 * f17_19; + RHS19 += f17_19 * RHS17; + const double f18 = 1.0 / m_A65; + const double f18_19 = -f18 * m_A71; + RHS19 += f18_19 * RHS18; + V[19] = RHS19 / m_A72; + double tmp18 = 0.0; + V[18] = (RHS18 - tmp18) / m_A65; + double tmp17 = 0.0; + tmp17 += m_A58 * V[19]; + V[17] = (RHS17 - tmp17) / m_A57; + double tmp16 = 0.0; + tmp16 += m_A53 * V[18]; + V[16] = (RHS16 - tmp16) / m_A52; + double tmp15 = 0.0; + tmp15 += m_A46 * V[19]; + V[15] = (RHS15 - tmp15) / m_A45; + double tmp14 = 0.0; + tmp14 += m_A43 * V[16]; + V[14] = (RHS14 - tmp14) / m_A42; + double tmp13 = 0.0; + tmp13 += m_A38 * V[18]; + V[13] = (RHS13 - tmp13) / m_A37; + double tmp12 = 0.0; + tmp12 += m_A35 * V[17]; + V[12] = (RHS12 - tmp12) / m_A34; + double tmp11 = 0.0; + tmp11 += m_A31 * V[14]; + tmp11 += m_A32 * V[16]; + V[11] = (RHS11 - tmp11) / m_A30; + double tmp10 = 0.0; + tmp10 += m_A26 * V[11]; + tmp10 += m_A27 * V[14]; + V[10] = (RHS10 - tmp10) / m_A25; + double tmp9 = 0.0; + tmp9 += m_A23 * V[19]; + V[9] = (RHS9 - tmp9) / m_A22; + double tmp8 = 0.0; + tmp8 += m_A21 * V[19]; + V[8] = (RHS8 - tmp8) / m_A20; + double tmp7 = 0.0; + tmp7 += m_A17 * V[13]; + tmp7 += m_A18 * V[16]; + tmp7 += m_A19 * V[18]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A14 * V[12]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A12 * V[18]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A10 * V[16]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A8 * V[14]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[10]; + tmp2 += m_A6 * V[11]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[13]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[15]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starfire +static void nl_gcr_649ebca7fa6793ed_27_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A1 += go[0]; + m_A1 += go[1]; + m_A2 += go[2]; + m_A2 += go[3]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + m_A3 += gt[6]; + m_A3 += gt[7]; + m_A3 += gt[8]; + m_A3 += gt[9]; + m_A3 += gt[10]; + m_A3 += gt[11]; + m_A3 += gt[12]; + m_A4 += go[6]; + m_A5 += go[7]; + double RHS1 = Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 += Idr[12]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + RHS1 -= go[12] * *cnV[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A7 += go[13]; + m_A8 += go[14]; + double RHS2 = Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 -= go[15] * *cnV[15]; + RHS2 -= go[16] * *cnV[16]; + m_A9 += gt[17]; + m_A9 += gt[18]; + m_A10 += go[17]; + double RHS3 = Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[18] * *cnV[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A12 += go[19]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[20] * *cnV[20]; + m_A17 += gt[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A17 += gt[26]; + m_A17 += gt[27]; + m_A13 += go[21]; + m_A16 += go[22]; + m_A15 += go[23]; + m_A14 += go[24]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + RHS5 -= go[27] * *cnV[27]; + m_A20 += gt[28]; + m_A20 += gt[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A19 += go[28]; + m_A19 += go[29]; + m_A21 += go[30]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 -= go[31] * *cnV[31]; + m_A26 += gt[32]; + m_A26 += gt[33]; + m_A26 += gt[34]; + m_A26 += gt[35]; + m_A26 += gt[36]; + m_A26 += gt[37]; + m_A23 += go[32]; + m_A25 += go[33]; + m_A22 += go[34]; + m_A22 += go[35]; + double RHS7 = Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 -= go[36] * *cnV[36]; + RHS7 -= go[37] * *cnV[37]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A19; + m_A20 += m_A1 * f0_6; + m_A21 += m_A2 * f0_6; + RHS6 += f0_6 * RHS0; + const double f0_7 = -f0 * m_A22; + m_A25 += m_A1 * f0_7; + m_A26 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_5 = -f1 * m_A13; + m_A14 += m_A4 * f1_5; + m_A18 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_5 = -f2 * m_A14; + m_A17 += m_A7 * f2_5; + m_A18 += m_A8 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_7 = -f2 * m_A23; + m_A24 += m_A7 * f2_7; + m_A26 += m_A8 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_5 = -f3 * m_A15; + m_A17 += m_A10 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_5 = -f4 * m_A16; + m_A17 += m_A12 * f4_5; + RHS5 += f4_5 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_7 = -f5 * m_A24; + m_A26 += m_A18 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A20; + const double f6_7 = -f6 * m_A25; + m_A26 += m_A21 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A26; + double tmp6 = 0.0; + tmp6 += m_A21 * V[7]; + V[6] = (RHS6 - tmp6) / m_A20; + double tmp5 = 0.0; + tmp5 += m_A18 * V[7]; + V[5] = (RHS5 - tmp5) / m_A17; + double tmp4 = 0.0; + tmp4 += m_A12 * V[5]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A10 * V[5]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A7 * V[5]; + tmp2 += m_A8 * V[7]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A4 * V[2]; + tmp1 += m_A5 * V[7]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[6]; + tmp0 += m_A2 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// armora +static void nl_gcr_64e460d8f716cd89_58_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[4]; + m_A3 += go[5]; + m_A3 += go[6]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A6 += go[10]; + m_A6 += go[11]; + m_A7 += go[12]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A9 += go[14]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A12 += go[18]; + m_A11 += go[19]; + m_A11 += go[20]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + m_A13 += gt[24]; + m_A13 += gt[25]; + m_A13 += gt[26]; + m_A13 += gt[27]; + m_A14 += go[24]; + m_A14 += go[25]; + m_A15 += go[26]; + double RHS5 = Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[27] * *cnV[27]; + m_A16 += gt[28]; + m_A16 += gt[29]; + m_A16 += gt[30]; + m_A16 += gt[31]; + m_A16 += gt[32]; + m_A16 += gt[33]; + m_A17 += go[28]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 -= go[29] * *cnV[29]; + RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; + RHS6 -= go[32] * *cnV[32]; + RHS6 -= go[33] * *cnV[33]; + m_A18 += gt[34]; + m_A18 += gt[35]; + m_A18 += gt[36]; + m_A18 += gt[37]; + m_A18 += gt[38]; + m_A18 += gt[39]; + m_A20 += go[34]; + m_A19 += go[35]; + m_A19 += go[36]; + double RHS7 = Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 += Idr[38]; + RHS7 += Idr[39]; + RHS7 -= go[37] * *cnV[37]; + RHS7 -= go[38] * *cnV[38]; + RHS7 -= go[39] * *cnV[39]; + m_A21 += gt[40]; + m_A21 += gt[41]; + m_A21 += gt[42]; + m_A21 += gt[43]; + m_A23 += go[40]; + m_A23 += go[41]; + m_A22 += go[42]; + double RHS8 = Idr[40]; + RHS8 += Idr[41]; + RHS8 += Idr[42]; + RHS8 += Idr[43]; + RHS8 -= go[43] * *cnV[43]; + m_A26 += gt[44]; + m_A26 += gt[45]; + m_A26 += gt[46]; + m_A26 += gt[47]; + m_A26 += gt[48]; + m_A26 += gt[49]; + m_A25 += go[44]; + m_A25 += go[45]; + m_A24 += go[46]; + double RHS9 = Idr[44]; + RHS9 += Idr[45]; + RHS9 += Idr[46]; + RHS9 += Idr[47]; + RHS9 += Idr[48]; + RHS9 += Idr[49]; + RHS9 -= go[47] * *cnV[47]; + RHS9 -= go[48] * *cnV[48]; + RHS9 -= go[49] * *cnV[49]; + m_A31 += gt[50]; + m_A31 += gt[51]; + m_A31 += gt[52]; + m_A31 += gt[53]; + m_A31 += gt[54]; + m_A29 += go[50]; + m_A29 += go[51]; + m_A28 += go[52]; + double RHS10 = Idr[50]; + RHS10 += Idr[51]; + RHS10 += Idr[52]; + RHS10 += Idr[53]; + RHS10 += Idr[54]; + RHS10 -= go[53] * *cnV[53]; + RHS10 -= go[54] * *cnV[54]; + m_A35 += gt[55]; + m_A35 += gt[56]; + m_A35 += gt[57]; + m_A35 += gt[58]; + m_A35 += gt[59]; + m_A35 += gt[60]; + m_A34 += go[55]; + m_A34 += go[56]; + m_A33 += go[57]; + double RHS11 = Idr[55]; + RHS11 += Idr[56]; + RHS11 += Idr[57]; + RHS11 += Idr[58]; + RHS11 += Idr[59]; + RHS11 += Idr[60]; + RHS11 -= go[58] * *cnV[58]; + RHS11 -= go[59] * *cnV[59]; + RHS11 -= go[60] * *cnV[60]; + m_A40 += gt[61]; + m_A40 += gt[62]; + m_A40 += gt[63]; + m_A40 += gt[64]; + m_A40 += gt[65]; + m_A38 += go[61]; + m_A38 += go[62]; + m_A37 += go[63]; + double RHS12 = Idr[61]; + RHS12 += Idr[62]; + RHS12 += Idr[63]; + RHS12 += Idr[64]; + RHS12 += Idr[65]; + RHS12 -= go[64] * *cnV[64]; + RHS12 -= go[65] * *cnV[65]; + m_A44 += gt[66]; + m_A44 += gt[67]; + m_A44 += gt[68]; + m_A44 += gt[69]; + m_A44 += gt[70]; + m_A44 += gt[71]; + m_A43 += go[66]; + m_A43 += go[67]; + m_A42 += go[68]; + double RHS13 = Idr[66]; + RHS13 += Idr[67]; + RHS13 += Idr[68]; + RHS13 += Idr[69]; + RHS13 += Idr[70]; + RHS13 += Idr[71]; + RHS13 -= go[69] * *cnV[69]; + RHS13 -= go[70] * *cnV[70]; + RHS13 -= go[71] * *cnV[71]; + m_A51 += gt[72]; + m_A51 += gt[73]; + m_A51 += gt[74]; + m_A51 += gt[75]; + m_A51 += gt[76]; + m_A51 += gt[77]; + m_A48 += go[72]; + m_A47 += go[73]; + m_A46 += go[74]; + double RHS14 = Idr[72]; + RHS14 += Idr[73]; + RHS14 += Idr[74]; + RHS14 += Idr[75]; + RHS14 += Idr[76]; + RHS14 += Idr[77]; + RHS14 -= go[75] * *cnV[75]; + RHS14 -= go[76] * *cnV[76]; + RHS14 -= go[77] * *cnV[77]; + m_A57 += gt[78]; + m_A57 += gt[79]; + m_A57 += gt[80]; + m_A57 += gt[81]; + m_A57 += gt[82]; + m_A54 += go[78]; + m_A54 += go[79]; + m_A53 += go[80]; + double RHS15 = Idr[78]; + RHS15 += Idr[79]; + RHS15 += Idr[80]; + RHS15 += Idr[81]; + RHS15 += Idr[82]; + RHS15 -= go[81] * *cnV[81]; + RHS15 -= go[82] * *cnV[82]; + const double f0 = 1.0 / m_A0; + const double f0_9 = -f0 * m_A24; + m_A26 += m_A1 * f0_9; + RHS9 += f0_9 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_9 = -f1 * m_A25; + m_A26 += m_A3 * f1_9; + m_A27 += m_A4 * f1_9; + RHS9 += f1_9 * RHS1; + const double f1_10 = -f1 * m_A28; + m_A30 += m_A3 * f1_10; + m_A31 += m_A4 * f1_10; + RHS10 += f1_10 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_10 = -f2 * m_A29; + m_A31 += m_A6 * f2_10; + m_A32 += m_A7 * f2_10; + RHS10 += f2_10 * RHS2; + const double f2_14 = -f2 * m_A46; + m_A49 += m_A6 * f2_14; + m_A51 += m_A7 * f2_14; + RHS14 += f2_14 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_11 = -f3 * m_A33; + m_A35 += m_A9 * f3_11; + RHS11 += f3_11 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_11 = -f4 * m_A34; + m_A35 += m_A11 * f4_11; + m_A36 += m_A12 * f4_11; + RHS11 += f4_11 * RHS4; + const double f4_12 = -f4 * m_A37; + m_A39 += m_A11 * f4_12; + m_A40 += m_A12 * f4_12; + RHS12 += f4_12 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_12 = -f5 * m_A38; + m_A40 += m_A14 * f5_12; + m_A41 += m_A15 * f5_12; + RHS12 += f5_12 * RHS5; + const double f5_14 = -f5 * m_A47; + m_A50 += m_A14 * f5_14; + m_A51 += m_A15 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_13 = -f6 * m_A42; + m_A44 += m_A17 * f6_13; + RHS13 += f6_13 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_13 = -f7 * m_A43; + m_A44 += m_A19 * f7_13; + m_A45 += m_A20 * f7_13; + RHS13 += f7_13 * RHS7; + const double f7_15 = -f7 * m_A53; + m_A55 += m_A19 * f7_15; + m_A57 += m_A20 * f7_15; + RHS15 += f7_15 * RHS7; + const double f8 = 1.0 / m_A21; + const double f8_14 = -f8 * m_A48; + m_A51 += m_A22 * f8_14; + m_A52 += m_A23 * f8_14; + RHS14 += f8_14 * RHS8; + const double f8_15 = -f8 * m_A54; + m_A56 += m_A22 * f8_15; + m_A57 += m_A23 * f8_15; + RHS15 += f8_15 * RHS8; + const double f9 = 1.0 / m_A26; + const double f9_10 = -f9 * m_A30; + m_A31 += m_A27 * f9_10; + RHS10 += f9_10 * RHS9; + const double f10 = 1.0 / m_A31; + const double f10_14 = -f10 * m_A49; + m_A51 += m_A32 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A35; + const double f11_12 = -f11 * m_A39; + m_A40 += m_A36 * f11_12; + RHS12 += f11_12 * RHS11; + const double f12 = 1.0 / m_A40; + const double f12_14 = -f12 * m_A50; + m_A51 += m_A41 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A44; + const double f13_15 = -f13 * m_A55; + m_A57 += m_A45 * f13_15; + RHS15 += f13_15 * RHS13; + const double f14 = 1.0 / m_A51; + const double f14_15 = -f14 * m_A56; + m_A57 += m_A52 * f14_15; + RHS15 += f14_15 * RHS14; + V[15] = RHS15 / m_A57; + double tmp14 = 0.0; + tmp14 += m_A52 * V[15]; + V[14] = (RHS14 - tmp14) / m_A51; + double tmp13 = 0.0; + tmp13 += m_A45 * V[15]; + V[13] = (RHS13 - tmp13) / m_A44; + double tmp12 = 0.0; + tmp12 += m_A41 * V[14]; + V[12] = (RHS12 - tmp12) / m_A40; + double tmp11 = 0.0; + tmp11 += m_A36 * V[12]; + V[11] = (RHS11 - tmp11) / m_A35; + double tmp10 = 0.0; + tmp10 += m_A32 * V[14]; + V[10] = (RHS10 - tmp10) / m_A31; + double tmp9 = 0.0; + tmp9 += m_A27 * V[10]; + V[9] = (RHS9 - tmp9) / m_A26; + double tmp8 = 0.0; + tmp8 += m_A22 * V[14]; + tmp8 += m_A23 * V[15]; + V[8] = (RHS8 - tmp8) / m_A21; + double tmp7 = 0.0; + tmp7 += m_A19 * V[13]; + tmp7 += m_A20 * V[15]; + V[7] = (RHS7 - tmp7) / m_A18; + double tmp6 = 0.0; + tmp6 += m_A17 * V[13]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A14 * V[12]; + tmp5 += m_A15 * V[14]; + V[5] = (RHS5 - tmp5) / m_A13; + double tmp4 = 0.0; + tmp4 += m_A11 * V[11]; + tmp4 += m_A12 * V[12]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A9 * V[11]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A6 * V[10]; + tmp2 += m_A7 * V[14]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[9]; + tmp1 += m_A4 * V[10]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[9]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// flyball +static void nl_gcr_6622b53554e3776_291_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); + double m_A198(0.0); + double m_A199(0.0); + double m_A200(0.0); + double m_A201(0.0); + double m_A202(0.0); + double m_A203(0.0); + double m_A204(0.0); + double m_A205(0.0); + double m_A206(0.0); + double m_A207(0.0); + double m_A208(0.0); + double m_A209(0.0); + double m_A210(0.0); + double m_A211(0.0); + double m_A212(0.0); + double m_A213(0.0); + double m_A214(0.0); + double m_A215(0.0); + double m_A216(0.0); + double m_A217(0.0); + double m_A218(0.0); + double m_A219(0.0); + double m_A220(0.0); + double m_A221(0.0); + double m_A222(0.0); + double m_A223(0.0); + double m_A224(0.0); + double m_A225(0.0); + double m_A226(0.0); + double m_A227(0.0); + double m_A228(0.0); + double m_A229(0.0); + double m_A230(0.0); + double m_A231(0.0); + double m_A232(0.0); + double m_A233(0.0); + double m_A234(0.0); + double m_A235(0.0); + double m_A236(0.0); + double m_A237(0.0); + double m_A238(0.0); + double m_A239(0.0); + double m_A240(0.0); + double m_A241(0.0); + double m_A242(0.0); + double m_A243(0.0); + double m_A244(0.0); + double m_A245(0.0); + double m_A246(0.0); + double m_A247(0.0); + double m_A248(0.0); + double m_A249(0.0); + double m_A250(0.0); + double m_A251(0.0); + double m_A252(0.0); + double m_A253(0.0); + double m_A254(0.0); + double m_A255(0.0); + double m_A256(0.0); + double m_A257(0.0); + double m_A258(0.0); + double m_A259(0.0); + double m_A260(0.0); + double m_A261(0.0); + double m_A262(0.0); + double m_A263(0.0); + double m_A264(0.0); + double m_A265(0.0); + double m_A266(0.0); + double m_A267(0.0); + double m_A268(0.0); + double m_A269(0.0); + double m_A270(0.0); + double m_A271(0.0); + double m_A272(0.0); + double m_A273(0.0); + double m_A274(0.0); + double m_A275(0.0); + double m_A276(0.0); + double m_A277(0.0); + double m_A278(0.0); + double m_A279(0.0); + double m_A280(0.0); + double m_A281(0.0); + double m_A282(0.0); + double m_A283(0.0); + double m_A284(0.0); + double m_A285(0.0); + double m_A286(0.0); + double m_A287(0.0); + double m_A288(0.0); + double m_A289(0.0); + double m_A290(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A7 += go[4]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A11 += go[10]; + m_A12 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + m_A13 += gt[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A14 += go[13]; + m_A15 += go[14]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[15] * *cnV[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A16 += gt[19]; + m_A16 += gt[20]; + m_A16 += gt[21]; + m_A16 += gt[22]; + m_A20 += go[16]; + m_A19 += go[17]; + m_A18 += go[18]; + m_A17 += go[19]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 -= go[20] * *cnV[20]; + RHS6 -= go[21] * *cnV[21]; + RHS6 -= go[22] * *cnV[22]; + m_A21 += gt[23]; + m_A21 += gt[24]; + m_A22 += go[23]; + double RHS7 = Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[24] * *cnV[24]; + m_A23 += gt[25]; + m_A23 += gt[26]; + m_A24 += go[25]; + double RHS8 = Idr[25]; + RHS8 += Idr[26]; + RHS8 -= go[26] * *cnV[26]; + m_A25 += gt[27]; + m_A25 += gt[28]; + m_A25 += gt[29]; + m_A25 += gt[30]; + m_A25 += gt[31]; + m_A25 += gt[32]; + m_A25 += gt[33]; + m_A29 += go[27]; + m_A28 += go[28]; + m_A27 += go[29]; + m_A26 += go[30]; + double RHS9 = Idr[27]; + RHS9 += Idr[28]; + RHS9 += Idr[29]; + RHS9 += Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[31] * *cnV[31]; + RHS9 -= go[32] * *cnV[32]; + RHS9 -= go[33] * *cnV[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A31 += go[34]; + m_A32 += go[35]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; + m_A33 += gt[36]; + m_A33 += gt[37]; + m_A34 += go[36]; + double RHS11 = Idr[36]; + RHS11 += Idr[37]; + RHS11 -= go[37] * *cnV[37]; + m_A35 += gt[38]; + m_A35 += gt[39]; + m_A35 += gt[40]; + m_A35 += gt[41]; + m_A35 += gt[42]; + m_A35 += gt[43]; + m_A35 += gt[44]; + m_A36 += go[38]; + double RHS12 = Idr[38]; + RHS12 += Idr[39]; + RHS12 += Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 -= go[39] * *cnV[39]; + RHS12 -= go[40] * *cnV[40]; + RHS12 -= go[41] * *cnV[41]; + RHS12 -= go[42] * *cnV[42]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + m_A37 += gt[45]; + m_A37 += gt[46]; + m_A37 += gt[47]; + m_A37 += gt[48]; + m_A39 += go[45]; + m_A40 += go[46]; + m_A38 += go[47]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 += Idr[48]; + RHS13 -= go[48] * *cnV[48]; + m_A41 += gt[49]; + m_A41 += gt[50]; + m_A42 += go[49]; + m_A43 += go[50]; + double RHS14 = Idr[49]; + RHS14 += Idr[50]; + m_A44 += gt[51]; + m_A44 += gt[52]; + m_A44 += gt[53]; + m_A45 += go[51]; + double RHS15 = Idr[51]; + RHS15 += Idr[52]; + RHS15 += Idr[53]; + RHS15 -= go[52] * *cnV[52]; + RHS15 -= go[53] * *cnV[53]; + m_A46 += gt[54]; + m_A46 += gt[55]; + m_A46 += gt[56]; + m_A46 += gt[57]; + m_A49 += go[54]; + m_A48 += go[55]; + m_A47 += go[56]; + double RHS16 = Idr[54]; + RHS16 += Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; + RHS16 -= go[57] * *cnV[57]; + m_A50 += gt[58]; + m_A50 += gt[59]; + m_A50 += gt[60]; + m_A52 += go[58]; + m_A51 += go[59]; + double RHS17 = Idr[58]; + RHS17 += Idr[59]; + RHS17 += Idr[60]; + RHS17 -= go[60] * *cnV[60]; + m_A53 += gt[61]; + m_A53 += gt[62]; + m_A53 += gt[63]; + m_A54 += go[61]; + m_A55 += go[62]; + double RHS18 = Idr[61]; + RHS18 += Idr[62]; + RHS18 += Idr[63]; + RHS18 -= go[63] * *cnV[63]; + m_A56 += gt[64]; + m_A56 += gt[65]; + m_A56 += gt[66]; + m_A56 += gt[67]; + m_A57 += go[64]; + m_A57 += go[65]; + double RHS19 = Idr[64]; + RHS19 += Idr[65]; + RHS19 += Idr[66]; + RHS19 += Idr[67]; + RHS19 -= go[66] * *cnV[66]; + RHS19 -= go[67] * *cnV[67]; + m_A58 += gt[68]; + m_A58 += gt[69]; + m_A58 += gt[70]; + m_A58 += gt[71]; + m_A58 += gt[72]; + m_A58 += gt[73]; + m_A58 += gt[74]; + m_A60 += go[68]; + m_A61 += go[69]; + m_A62 += go[70]; + m_A59 += go[71]; + double RHS20 = Idr[68]; + RHS20 += Idr[69]; + RHS20 += Idr[70]; + RHS20 += Idr[71]; + RHS20 += Idr[72]; + RHS20 += Idr[73]; + RHS20 += Idr[74]; + RHS20 -= go[72] * *cnV[72]; + RHS20 -= go[73] * *cnV[73]; + RHS20 -= go[74] * *cnV[74]; + m_A63 += gt[75]; + m_A63 += gt[76]; + m_A63 += gt[77]; + m_A63 += gt[78]; + m_A63 += gt[79]; + m_A63 += gt[80]; + m_A63 += gt[81]; + m_A64 += go[75]; + m_A66 += go[76]; + m_A67 += go[77]; + m_A65 += go[78]; + double RHS21 = Idr[75]; + RHS21 += Idr[76]; + RHS21 += Idr[77]; + RHS21 += Idr[78]; + RHS21 += Idr[79]; + RHS21 += Idr[80]; + RHS21 += Idr[81]; + RHS21 -= go[79] * *cnV[79]; + RHS21 -= go[80] * *cnV[80]; + RHS21 -= go[81] * *cnV[81]; + m_A68 += gt[82]; + m_A68 += gt[83]; + m_A68 += gt[84]; + m_A69 += go[82]; + double RHS22 = Idr[82]; + RHS22 += Idr[83]; + RHS22 += Idr[84]; + RHS22 -= go[83] * *cnV[83]; + RHS22 -= go[84] * *cnV[84]; + m_A70 += gt[85]; + m_A70 += gt[86]; + m_A70 += gt[87]; + m_A71 += go[85]; + double RHS23 = Idr[85]; + RHS23 += Idr[86]; + RHS23 += Idr[87]; + RHS23 -= go[86] * *cnV[86]; + RHS23 -= go[87] * *cnV[87]; + m_A72 += gt[88]; + m_A72 += gt[89]; + m_A72 += gt[90]; + m_A72 += gt[91]; + m_A74 += go[88]; + m_A73 += go[89]; + double RHS24 = Idr[88]; + RHS24 += Idr[89]; + RHS24 += Idr[90]; + RHS24 += Idr[91]; + RHS24 -= go[90] * *cnV[90]; + RHS24 -= go[91] * *cnV[91]; + m_A75 += gt[92]; + m_A75 += gt[93]; + m_A75 += gt[94]; + m_A75 += gt[95]; + m_A76 += go[92]; + m_A77 += go[93]; + double RHS25 = Idr[92]; + RHS25 += Idr[93]; + RHS25 += Idr[94]; + RHS25 += Idr[95]; + RHS25 -= go[94] * *cnV[94]; + RHS25 -= go[95] * *cnV[95]; + m_A78 += gt[96]; + m_A78 += gt[97]; + m_A79 += go[96]; + double RHS26 = Idr[96]; + RHS26 += Idr[97]; + RHS26 -= go[97] * *cnV[97]; + m_A80 += gt[98]; + m_A80 += gt[99]; + m_A81 += go[98]; + double RHS27 = Idr[98]; + RHS27 += Idr[99]; + RHS27 -= go[99] * *cnV[99]; + m_A82 += gt[100]; + m_A82 += gt[101]; + m_A83 += go[100]; + double RHS28 = Idr[100]; + RHS28 += Idr[101]; + RHS28 -= go[101] * *cnV[101]; + m_A86 += gt[102]; + m_A86 += gt[103]; + m_A86 += gt[104]; + m_A86 += gt[105]; + m_A85 += go[102]; + m_A84 += go[103]; + double RHS29 = Idr[102]; + RHS29 += Idr[103]; + RHS29 += Idr[104]; + RHS29 += Idr[105]; + RHS29 -= go[104] * *cnV[104]; + RHS29 -= go[105] * *cnV[105]; + m_A92 += gt[106]; + m_A92 += gt[107]; + m_A92 += gt[108]; + m_A92 += gt[109]; + m_A90 += go[106]; + m_A89 += go[107]; + double RHS30 = Idr[106]; + RHS30 += Idr[107]; + RHS30 += Idr[108]; + RHS30 += Idr[109]; + RHS30 -= go[108] * *cnV[108]; + RHS30 -= go[109] * *cnV[109]; + m_A99 += gt[110]; + m_A99 += gt[111]; + m_A99 += gt[112]; + m_A99 += gt[113]; + m_A97 += go[110]; + m_A98 += go[111]; + double RHS31 = Idr[110]; + RHS31 += Idr[111]; + RHS31 += Idr[112]; + RHS31 += Idr[113]; + RHS31 -= go[112] * *cnV[112]; + RHS31 -= go[113] * *cnV[113]; + m_A104 += gt[114]; + m_A104 += gt[115]; + m_A104 += gt[116]; + m_A103 += go[114]; + m_A105 += go[115]; + double RHS32 = Idr[114]; + RHS32 += Idr[115]; + RHS32 += Idr[116]; + RHS32 -= go[116] * *cnV[116]; + m_A108 += gt[117]; + m_A108 += gt[118]; + m_A108 += gt[119]; + m_A108 += gt[120]; + m_A107 += go[117]; + m_A106 += go[118]; + double RHS33 = Idr[117]; + RHS33 += Idr[118]; + RHS33 += Idr[119]; + RHS33 += Idr[120]; + RHS33 -= go[119] * *cnV[119]; + RHS33 -= go[120] * *cnV[120]; + m_A113 += gt[121]; + m_A113 += gt[122]; + m_A113 += gt[123]; + m_A113 += gt[124]; + m_A111 += go[121]; + m_A112 += go[122]; + m_A114 += go[123]; + double RHS34 = Idr[121]; + RHS34 += Idr[122]; + RHS34 += Idr[123]; + RHS34 += Idr[124]; + RHS34 -= go[124] * *cnV[124]; + m_A116 += gt[125]; + m_A116 += gt[126]; + m_A116 += gt[127]; + m_A115 += go[125]; + m_A117 += go[126]; + double RHS35 = Idr[125]; + RHS35 += Idr[126]; + RHS35 += Idr[127]; + RHS35 -= go[127] * *cnV[127]; + m_A120 += gt[128]; + m_A120 += gt[129]; + m_A120 += gt[130]; + m_A121 += go[128]; + m_A118 += go[129]; + double RHS36 = Idr[128]; + RHS36 += Idr[129]; + RHS36 += Idr[130]; + RHS36 -= go[130] * *cnV[130]; + m_A127 += gt[131]; + m_A127 += gt[132]; + m_A127 += gt[133]; + m_A127 += gt[134]; + m_A129 += go[131]; + m_A124 += go[132]; + m_A123 += go[133]; + double RHS37 = Idr[131]; + RHS37 += Idr[132]; + RHS37 += Idr[133]; + RHS37 += Idr[134]; + RHS37 -= go[134] * *cnV[134]; + m_A135 += gt[135]; + m_A135 += gt[136]; + m_A135 += gt[137]; + m_A135 += gt[138]; + m_A133 += go[135]; + m_A132 += go[136]; + double RHS38 = Idr[135]; + RHS38 += Idr[136]; + RHS38 += Idr[137]; + RHS38 += Idr[138]; + RHS38 -= go[137] * *cnV[137]; + RHS38 -= go[138] * *cnV[138]; + m_A140 += gt[139]; + m_A140 += gt[140]; + m_A140 += gt[141]; + m_A141 += go[139]; + double RHS39 = Idr[139]; + RHS39 += Idr[140]; + RHS39 += Idr[141]; + RHS39 -= go[140] * *cnV[140]; + RHS39 -= go[141] * *cnV[141]; + m_A143 += gt[142]; + m_A143 += gt[143]; + m_A143 += gt[144]; + m_A142 += go[142]; + m_A144 += go[143]; + double RHS40 = Idr[142]; + RHS40 += Idr[143]; + RHS40 += Idr[144]; + RHS40 -= go[144] * *cnV[144]; + m_A147 += gt[145]; + m_A147 += gt[146]; + m_A147 += gt[147]; + m_A147 += gt[148]; + m_A145 += go[145]; + m_A146 += go[146]; + m_A148 += go[147]; + double RHS41 = Idr[145]; + RHS41 += Idr[146]; + RHS41 += Idr[147]; + RHS41 += Idr[148]; + RHS41 -= go[148] * *cnV[148]; + m_A153 += gt[149]; + m_A153 += gt[150]; + m_A153 += gt[151]; + m_A153 += gt[152]; + m_A153 += gt[153]; + m_A153 += gt[154]; + m_A153 += gt[155]; + m_A151 += go[149]; + m_A150 += go[150]; + m_A156 += go[151]; + m_A149 += go[152]; + m_A157 += go[153]; + double RHS42 = Idr[149]; + RHS42 += Idr[150]; + RHS42 += Idr[151]; + RHS42 += Idr[152]; + RHS42 += Idr[153]; + RHS42 += Idr[154]; + RHS42 += Idr[155]; + RHS42 -= go[154] * *cnV[154]; + RHS42 -= go[155] * *cnV[155]; + m_A163 += gt[156]; + m_A163 += gt[157]; + m_A163 += gt[158]; + m_A163 += gt[159]; + m_A163 += gt[160]; + m_A163 += gt[161]; + m_A167 += go[156]; + m_A160 += go[157]; + m_A159 += go[158]; + m_A158 += go[159]; + m_A165 += go[160]; + double RHS43 = Idr[156]; + RHS43 += Idr[157]; + RHS43 += Idr[158]; + RHS43 += Idr[159]; + RHS43 += Idr[160]; + RHS43 += Idr[161]; + RHS43 -= go[161] * *cnV[161]; + m_A170 += gt[162]; + m_A170 += gt[163]; + m_A174 += go[162]; + m_A168 += go[163]; + double RHS44 = Idr[162]; + RHS44 += Idr[163]; + m_A180 += gt[164]; + m_A180 += gt[165]; + m_A180 += gt[166]; + m_A180 += gt[167]; + m_A180 += gt[168]; + m_A180 += gt[169]; + m_A175 += go[164]; + m_A177 += go[165]; + m_A179 += go[166]; + m_A176 += go[167]; + double RHS45 = Idr[164]; + RHS45 += Idr[165]; + RHS45 += Idr[166]; + RHS45 += Idr[167]; + RHS45 += Idr[168]; + RHS45 += Idr[169]; + RHS45 -= go[168] * *cnV[168]; + RHS45 -= go[169] * *cnV[169]; + m_A184 += gt[170]; + m_A184 += gt[171]; + m_A185 += go[170]; + m_A183 += go[171]; + double RHS46 = Idr[170]; + RHS46 += Idr[171]; + m_A192 += gt[172]; + m_A192 += gt[173]; + m_A192 += gt[174]; + m_A192 += gt[175]; + m_A192 += gt[176]; + m_A192 += gt[177]; + m_A189 += go[172]; + m_A188 += go[173]; + m_A187 += go[174]; + m_A187 += go[175]; + m_A190 += go[176]; + double RHS47 = Idr[172]; + RHS47 += Idr[173]; + RHS47 += Idr[174]; + RHS47 += Idr[175]; + RHS47 += Idr[176]; + RHS47 += Idr[177]; + RHS47 -= go[177] * *cnV[177]; + m_A202 += gt[178]; + m_A202 += gt[179]; + m_A202 += gt[180]; + m_A202 += gt[181]; + m_A196 += go[178]; + m_A197 += go[179]; + m_A204 += go[180]; + m_A199 += go[181]; + double RHS48 = Idr[178]; + RHS48 += Idr[179]; + RHS48 += Idr[180]; + RHS48 += Idr[181]; + m_A206 += gt[182]; + m_A206 += gt[183]; + m_A206 += gt[184]; + m_A205 += go[182]; + m_A207 += go[183]; + double RHS49 = Idr[182]; + RHS49 += Idr[183]; + RHS49 += Idr[184]; + RHS49 -= go[184] * *cnV[184]; + m_A215 += gt[185]; + m_A215 += gt[186]; + m_A215 += gt[187]; + m_A215 += gt[188]; + m_A212 += go[185]; + m_A209 += go[186]; + m_A208 += go[187]; + double RHS50 = Idr[185]; + RHS50 += Idr[186]; + RHS50 += Idr[187]; + RHS50 += Idr[188]; + RHS50 -= go[188] * *cnV[188]; + m_A227 += gt[189]; + m_A227 += gt[190]; + m_A227 += gt[191]; + m_A227 += gt[192]; + m_A227 += gt[193]; + m_A227 += gt[194]; + m_A223 += go[189]; + m_A224 += go[190]; + m_A221 += go[191]; + m_A219 += go[192]; + m_A220 += go[193]; + double RHS51 = Idr[189]; + RHS51 += Idr[190]; + RHS51 += Idr[191]; + RHS51 += Idr[192]; + RHS51 += Idr[193]; + RHS51 += Idr[194]; + RHS51 -= go[194] * *cnV[194]; + m_A237 += gt[195]; + m_A237 += gt[196]; + m_A237 += gt[197]; + m_A237 += gt[198]; + m_A231 += go[195]; + m_A230 += go[196]; + m_A233 += go[197]; + m_A232 += go[198]; + double RHS52 = Idr[195]; + RHS52 += Idr[196]; + RHS52 += Idr[197]; + RHS52 += Idr[198]; + m_A250 += gt[199]; + m_A250 += gt[200]; + m_A250 += gt[201]; + m_A250 += gt[202]; + m_A250 += gt[203]; + m_A250 += gt[204]; + m_A245 += go[199]; + m_A252 += go[200]; + m_A243 += go[201]; + m_A241 += go[202]; + m_A242 += go[203]; + double RHS53 = Idr[199]; + RHS53 += Idr[200]; + RHS53 += Idr[201]; + RHS53 += Idr[202]; + RHS53 += Idr[203]; + RHS53 += Idr[204]; + RHS53 -= go[204] * *cnV[204]; + m_A264 += gt[205]; + m_A264 += gt[206]; + m_A264 += gt[207]; + m_A264 += gt[208]; + m_A264 += gt[209]; + m_A264 += gt[210]; + m_A257 += go[205]; + m_A255 += go[206]; + m_A254 += go[207]; + m_A253 += go[208]; + m_A259 += go[209]; + double RHS54 = Idr[205]; + RHS54 += Idr[206]; + RHS54 += Idr[207]; + RHS54 += Idr[208]; + RHS54 += Idr[209]; + RHS54 += Idr[210]; + RHS54 -= go[210] * *cnV[210]; + m_A276 += gt[211]; + m_A276 += gt[212]; + m_A276 += gt[213]; + m_A276 += gt[214]; + m_A276 += gt[215]; + m_A276 += gt[216]; + m_A276 += gt[217]; + m_A272 += go[211]; + m_A271 += go[212]; + m_A270 += go[213]; + m_A269 += go[214]; + m_A268 += go[215]; + m_A267 += go[216]; + double RHS55 = Idr[211]; + RHS55 += Idr[212]; + RHS55 += Idr[213]; + RHS55 += Idr[214]; + RHS55 += Idr[215]; + RHS55 += Idr[216]; + RHS55 += Idr[217]; + RHS55 -= go[217] * *cnV[217]; + m_A290 += gt[218]; + m_A290 += gt[219]; + m_A290 += gt[220]; + m_A290 += gt[221]; + m_A290 += gt[222]; + m_A290 += gt[223]; + m_A290 += gt[224]; + m_A280 += go[218]; + m_A279 += go[219]; + m_A287 += go[220]; + m_A278 += go[221]; + m_A283 += go[222]; + double RHS56 = Idr[218]; + RHS56 += Idr[219]; + RHS56 += Idr[220]; + RHS56 += Idr[221]; + RHS56 += Idr[222]; + RHS56 += Idr[223]; + RHS56 += Idr[224]; + RHS56 -= go[223] * *cnV[223]; + RHS56 -= go[224] * *cnV[224]; + const double f0 = 1.0 / m_A0; + const double f0_29 = -f0 * m_A84; + m_A86 += m_A1 * f0_29; + RHS29 += f0_29 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_32 = -f1 * m_A103; + m_A104 += m_A3 * f1_32; + RHS32 += f1_32 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_29 = -f2 * m_A85; + m_A86 += m_A5 * f2_29; + m_A87 += m_A6 * f2_29; + m_A88 += m_A7 * f2_29; + RHS29 += f2_29 * RHS2; + const double f2_30 = -f2 * m_A89; + m_A91 += m_A5 * f2_30; + m_A92 += m_A6 * f2_30; + m_A93 += m_A7 * f2_30; + RHS30 += f2_30 * RHS2; + const double f2_37 = -f2 * m_A123; + m_A125 += m_A5 * f2_37; + m_A126 += m_A6 * f2_37; + m_A127 += m_A7 * f2_37; + RHS37 += f2_37 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_34 = -f3 * m_A111; + m_A113 += m_A9 * f3_34; + RHS34 += f3_34 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_43 = -f4 * m_A158; + m_A163 += m_A11 * f4_43; + m_A165 += m_A12 * f4_43; + RHS43 += f4_43 * RHS4; + const double f4_52 = -f4 * m_A230; + m_A233 += m_A11 * f4_52; + m_A237 += m_A12 * f4_52; + RHS52 += f4_52 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_34 = -f5 * m_A112; + m_A113 += m_A14 * f5_34; + m_A114 += m_A15 * f5_34; + RHS34 += f5_34 * RHS5; + const double f5_53 = -f5 * m_A241; + m_A245 += m_A14 * f5_53; + m_A250 += m_A15 * f5_53; + RHS53 += f5_53 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_30 = -f6 * m_A90; + m_A92 += m_A17 * f6_30; + m_A94 += m_A18 * f6_30; + m_A95 += m_A19 * f6_30; + m_A96 += m_A20 * f6_30; + RHS30 += f6_30 * RHS6; + const double f6_43 = -f6 * m_A159; + m_A161 += m_A17 * f6_43; + m_A163 += m_A18 * f6_43; + m_A166 += m_A19 * f6_43; + m_A167 += m_A20 * f6_43; + RHS43 += f6_43 * RHS6; + const double f6_53 = -f6 * m_A242; + m_A244 += m_A17 * f6_53; + m_A247 += m_A18 * f6_53; + m_A250 += m_A19 * f6_53; + m_A252 += m_A20 * f6_53; + RHS53 += f6_53 * RHS6; + const double f6_56 = -f6 * m_A278; + m_A281 += m_A17 * f6_56; + m_A283 += m_A18 * f6_56; + m_A287 += m_A19 * f6_56; + m_A290 += m_A20 * f6_56; + RHS56 += f6_56 * RHS6; + const double f7 = 1.0 / m_A21; + const double f7_33 = -f7 * m_A106; + m_A108 += m_A22 * f7_33; + RHS33 += f7_33 * RHS7; + const double f8 = 1.0 / m_A23; + const double f8_35 = -f8 * m_A115; + m_A116 += m_A24 * f8_35; + RHS35 += f8_35 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_37 = -f9 * m_A124; + m_A127 += m_A26 * f9_37; + m_A128 += m_A27 * f9_37; + m_A130 += m_A28 * f9_37; + m_A131 += m_A29 * f9_37; + RHS37 += f9_37 * RHS9; + const double f9_43 = -f9 * m_A160; + m_A162 += m_A26 * f9_43; + m_A163 += m_A27 * f9_43; + m_A166 += m_A28 * f9_43; + m_A167 += m_A29 * f9_43; + RHS43 += f9_43 * RHS9; + const double f9_53 = -f9 * m_A243; + m_A246 += m_A26 * f9_53; + m_A247 += m_A27 * f9_53; + m_A250 += m_A28 * f9_53; + m_A252 += m_A29 * f9_53; + RHS53 += f9_53 * RHS9; + const double f9_56 = -f9 * m_A279; + m_A282 += m_A26 * f9_56; + m_A283 += m_A27 * f9_56; + m_A287 += m_A28 * f9_56; + m_A290 += m_A29 * f9_56; + RHS56 += f9_56 * RHS9; + const double f10 = 1.0 / m_A30; + const double f10_31 = -f10 * m_A97; + m_A99 += m_A31 * f10_31; + m_A102 += m_A32 * f10_31; + RHS31 += f10_31 * RHS10; + const double f10_48 = -f10 * m_A196; + m_A198 += m_A31 * f10_48; + m_A202 += m_A32 * f10_48; + RHS48 += f10_48 * RHS10; + const double f11 = 1.0 / m_A33; + const double f11_41 = -f11 * m_A145; + m_A147 += m_A34 * f11_41; + RHS41 += f11_41 * RHS11; + const double f12 = 1.0 / m_A35; + const double f12_45 = -f12 * m_A175; + m_A179 += m_A36 * f12_45; + RHS45 += f12_45 * RHS12; + const double f13 = 1.0 / m_A37; + const double f13_31 = -f13 * m_A98; + m_A99 += m_A38 * f13_31; + m_A100 += m_A39 * f13_31; + m_A101 += m_A40 * f13_31; + RHS31 += f13_31 * RHS13; + const double f13_36 = -f13 * m_A118; + m_A119 += m_A38 * f13_36; + m_A120 += m_A39 * f13_36; + m_A121 += m_A40 * f13_36; + RHS36 += f13_36 * RHS13; + const double f13_45 = -f13 * m_A176; + m_A178 += m_A38 * f13_45; + m_A179 += m_A39 * f13_45; + m_A180 += m_A40 * f13_45; + RHS45 += f13_45 * RHS13; + const double f14 = 1.0 / m_A41; + const double f14_45 = -f14 * m_A177; + m_A180 += m_A42 * f14_45; + m_A182 += m_A43 * f14_45; + RHS45 += f14_45 * RHS14; + const double f14_52 = -f14 * m_A231; + m_A234 += m_A42 * f14_52; + m_A237 += m_A43 * f14_52; + RHS52 += f14_52 * RHS14; + const double f15 = 1.0 / m_A44; + const double f15_40 = -f15 * m_A142; + m_A143 += m_A45 * f15_40; + RHS40 += f15_40 * RHS15; + const double f16 = 1.0 / m_A46; + const double f16_33 = -f16 * m_A107; + m_A108 += m_A47 * f16_33; + m_A109 += m_A48 * f16_33; + m_A110 += m_A49 * f16_33; + RHS33 += f16_33 * RHS16; + const double f16_38 = -f16 * m_A132; + m_A134 += m_A47 * f16_38; + m_A135 += m_A48 * f16_38; + m_A137 += m_A49 * f16_38; + RHS38 += f16_38 * RHS16; + const double f16_50 = -f16 * m_A208; + m_A210 += m_A47 * f16_50; + m_A211 += m_A48 * f16_50; + m_A215 += m_A49 * f16_50; + RHS50 += f16_50 * RHS16; + const double f17 = 1.0 / m_A50; + const double f17_48 = -f17 * m_A197; + m_A202 += m_A51 * f17_48; + m_A204 += m_A52 * f17_48; + RHS48 += f17_48 * RHS17; + const double f17_54 = -f17 * m_A253; + m_A259 += m_A51 * f17_54; + m_A264 += m_A52 * f17_54; + RHS54 += f17_54 * RHS17; + const double f18 = 1.0 / m_A53; + const double f18_41 = -f18 * m_A146; + m_A147 += m_A54 * f18_41; + m_A148 += m_A55 * f18_41; + RHS41 += f18_41 * RHS18; + const double f18_51 = -f18 * m_A219; + m_A223 += m_A54 * f18_51; + m_A227 += m_A55 * f18_51; + RHS51 += f18_51 * RHS18; + const double f19 = 1.0 / m_A56; + const double f19_47 = -f19 * m_A187; + m_A192 += m_A57 * f19_47; + RHS47 += f19_47 * RHS19; + const double f20 = 1.0 / m_A58; + const double f20_38 = -f20 * m_A133; + m_A135 += m_A59 * f20_38; + m_A136 += m_A60 * f20_38; + m_A138 += m_A61 * f20_38; + m_A139 += m_A62 * f20_38; + RHS38 += f20_38 * RHS20; + const double f20_42 = -f20 * m_A149; + m_A152 += m_A59 * f20_42; + m_A153 += m_A60 * f20_42; + m_A156 += m_A61 * f20_42; + m_A157 += m_A62 * f20_42; + RHS42 += f20_42 * RHS20; + const double f20_51 = -f20 * m_A220; + m_A222 += m_A59 * f20_51; + m_A224 += m_A60 * f20_51; + m_A227 += m_A61 * f20_51; + m_A228 += m_A62 * f20_51; + RHS51 += f20_51 * RHS20; + const double f20_54 = -f20 * m_A254; + m_A256 += m_A59 * f20_54; + m_A257 += m_A60 * f20_54; + m_A261 += m_A61 * f20_54; + m_A264 += m_A62 * f20_54; + RHS54 += f20_54 * RHS20; + const double f21 = 1.0 / m_A63; + const double f21_42 = -f21 * m_A150; + m_A153 += m_A64 * f21_42; + m_A155 += m_A65 * f21_42; + m_A156 += m_A66 * f21_42; + m_A157 += m_A67 * f21_42; + RHS42 += f21_42 * RHS21; + const double f21_50 = -f21 * m_A209; + m_A213 += m_A64 * f21_50; + m_A215 += m_A65 * f21_50; + m_A216 += m_A66 * f21_50; + m_A217 += m_A67 * f21_50; + RHS50 += f21_50 * RHS21; + const double f21_51 = -f21 * m_A221; + m_A224 += m_A64 * f21_51; + m_A226 += m_A65 * f21_51; + m_A227 += m_A66 * f21_51; + m_A228 += m_A67 * f21_51; + RHS51 += f21_51 * RHS21; + const double f21_54 = -f21 * m_A255; + m_A257 += m_A64 * f21_54; + m_A260 += m_A65 * f21_54; + m_A261 += m_A66 * f21_54; + m_A264 += m_A67 * f21_54; + RHS54 += f21_54 * RHS21; + const double f22 = 1.0 / m_A68; + const double f22_47 = -f22 * m_A188; + m_A192 += m_A69 * f22_47; + RHS47 += f22_47 * RHS22; + const double f23 = 1.0 / m_A70; + const double f23_47 = -f23 * m_A189; + m_A192 += m_A71 * f23_47; + RHS47 += f23_47 * RHS23; + const double f24 = 1.0 / m_A72; + const double f24_42 = -f24 * m_A151; + m_A153 += m_A73 * f24_42; + m_A154 += m_A74 * f24_42; + RHS42 += f24_42 * RHS24; + const double f24_44 = -f24 * m_A168; + m_A169 += m_A73 * f24_44; + m_A170 += m_A74 * f24_44; + RHS44 += f24_44 * RHS24; + const double f25 = 1.0 / m_A75; + const double f25_46 = -f25 * m_A183; + m_A184 += m_A76 * f25_46; + m_A186 += m_A77 * f25_46; + RHS46 += f25_46 * RHS25; + const double f25_56 = -f25 * m_A280; + m_A284 += m_A76 * f25_56; + m_A290 += m_A77 * f25_56; + RHS56 += f25_56 * RHS25; + const double f26 = 1.0 / m_A78; + const double f26_55 = -f26 * m_A267; + m_A276 += m_A79 * f26_55; + RHS55 += f26_55 * RHS26; + const double f27 = 1.0 / m_A80; + const double f27_55 = -f27 * m_A268; + m_A276 += m_A81 * f27_55; + RHS55 += f27_55 * RHS27; + const double f28 = 1.0 / m_A82; + const double f28_49 = -f28 * m_A205; + m_A206 += m_A83 * f28_49; + RHS49 += f28_49 * RHS28; + const double f29 = 1.0 / m_A86; + const double f29_30 = -f29 * m_A91; + m_A92 += m_A87 * f29_30; + m_A93 += m_A88 * f29_30; + RHS30 += f29_30 * RHS29; + const double f29_37 = -f29 * m_A125; + m_A126 += m_A87 * f29_37; + m_A127 += m_A88 * f29_37; + RHS37 += f29_37 * RHS29; + const double f30 = 1.0 / m_A92; + const double f30_37 = -f30 * m_A126; + m_A127 += m_A93 * f30_37; + m_A128 += m_A94 * f30_37; + m_A130 += m_A95 * f30_37; + m_A131 += m_A96 * f30_37; + RHS37 += f30_37 * RHS30; + const double f30_43 = -f30 * m_A161; + m_A162 += m_A93 * f30_43; + m_A163 += m_A94 * f30_43; + m_A166 += m_A95 * f30_43; + m_A167 += m_A96 * f30_43; + RHS43 += f30_43 * RHS30; + const double f30_53 = -f30 * m_A244; + m_A246 += m_A93 * f30_53; + m_A247 += m_A94 * f30_53; + m_A250 += m_A95 * f30_53; + m_A252 += m_A96 * f30_53; + RHS53 += f30_53 * RHS30; + const double f30_56 = -f30 * m_A281; + m_A282 += m_A93 * f30_56; + m_A283 += m_A94 * f30_56; + m_A287 += m_A95 * f30_56; + m_A290 += m_A96 * f30_56; + RHS56 += f30_56 * RHS30; + const double f31 = 1.0 / m_A99; + const double f31_36 = -f31 * m_A119; + m_A120 += m_A100 * f31_36; + m_A121 += m_A101 * f31_36; + m_A122 += m_A102 * f31_36; + RHS36 += f31_36 * RHS31; + const double f31_45 = -f31 * m_A178; + m_A179 += m_A100 * f31_45; + m_A180 += m_A101 * f31_45; + m_A181 += m_A102 * f31_45; + RHS45 += f31_45 * RHS31; + const double f31_48 = -f31 * m_A198; + m_A200 += m_A100 * f31_48; + m_A201 += m_A101 * f31_48; + m_A202 += m_A102 * f31_48; + RHS48 += f31_48 * RHS31; + const double f32 = 1.0 / m_A104; + const double f32_52 = -f32 * m_A232; + m_A237 += m_A105 * f32_52; + RHS52 += f32_52 * RHS32; + const double f33 = 1.0 / m_A108; + const double f33_38 = -f33 * m_A134; + m_A135 += m_A109 * f33_38; + m_A137 += m_A110 * f33_38; + RHS38 += f33_38 * RHS33; + const double f33_50 = -f33 * m_A210; + m_A211 += m_A109 * f33_50; + m_A215 += m_A110 * f33_50; + RHS50 += f33_50 * RHS33; + const double f34 = 1.0 / m_A113; + const double f34_53 = -f34 * m_A245; + m_A250 += m_A114 * f34_53; + RHS53 += f34_53 * RHS34; + const double f35 = 1.0 / m_A116; + const double f35_48 = -f35 * m_A199; + m_A202 += m_A117 * f35_48; + RHS48 += f35_48 * RHS35; + const double f36 = 1.0 / m_A120; + const double f36_45 = -f36 * m_A179; + m_A180 += m_A121 * f36_45; + m_A181 += m_A122 * f36_45; + RHS45 += f36_45 * RHS36; + const double f36_48 = -f36 * m_A200; + m_A201 += m_A121 * f36_48; + m_A202 += m_A122 * f36_48; + RHS48 += f36_48 * RHS36; + const double f37 = 1.0 / m_A127; + const double f37_43 = -f37 * m_A162; + m_A163 += m_A128 * f37_43; + m_A164 += m_A129 * f37_43; + m_A166 += m_A130 * f37_43; + m_A167 += m_A131 * f37_43; + RHS43 += f37_43 * RHS37; + const double f37_47 = -f37 * m_A190; + m_A191 += m_A128 * f37_47; + m_A192 += m_A129 * f37_47; + m_A194 += m_A130 * f37_47; + m_A195 += m_A131 * f37_47; + RHS47 += f37_47 * RHS37; + const double f37_53 = -f37 * m_A246; + m_A247 += m_A128 * f37_53; + m_A248 += m_A129 * f37_53; + m_A250 += m_A130 * f37_53; + m_A252 += m_A131 * f37_53; + RHS53 += f37_53 * RHS37; + const double f37_56 = -f37 * m_A282; + m_A283 += m_A128 * f37_56; + m_A285 += m_A129 * f37_56; + m_A287 += m_A130 * f37_56; + m_A290 += m_A131 * f37_56; + RHS56 += f37_56 * RHS37; + const double f38 = 1.0 / m_A135; + const double f38_42 = -f38 * m_A152; + m_A153 += m_A136 * f38_42; + m_A155 += m_A137 * f38_42; + m_A156 += m_A138 * f38_42; + m_A157 += m_A139 * f38_42; + RHS42 += f38_42 * RHS38; + const double f38_50 = -f38 * m_A211; + m_A213 += m_A136 * f38_50; + m_A215 += m_A137 * f38_50; + m_A216 += m_A138 * f38_50; + m_A217 += m_A139 * f38_50; + RHS50 += f38_50 * RHS38; + const double f38_51 = -f38 * m_A222; + m_A224 += m_A136 * f38_51; + m_A226 += m_A137 * f38_51; + m_A227 += m_A138 * f38_51; + m_A228 += m_A139 * f38_51; + RHS51 += f38_51 * RHS38; + const double f38_54 = -f38 * m_A256; + m_A257 += m_A136 * f38_54; + m_A260 += m_A137 * f38_54; + m_A261 += m_A138 * f38_54; + m_A264 += m_A139 * f38_54; + RHS54 += f38_54 * RHS38; + const double f39 = 1.0 / m_A140; + const double f39_55 = -f39 * m_A269; + m_A276 += m_A141 * f39_55; + RHS55 += f39_55 * RHS39; + const double f40 = 1.0 / m_A143; + const double f40_50 = -f40 * m_A212; + m_A215 += m_A144 * f40_50; + RHS50 += f40_50 * RHS40; + const double f41 = 1.0 / m_A147; + const double f41_51 = -f41 * m_A223; + m_A227 += m_A148 * f41_51; + RHS51 += f41_51 * RHS41; + const double f42 = 1.0 / m_A153; + const double f42_44 = -f42 * m_A169; + m_A170 += m_A154 * f42_44; + m_A171 += m_A155 * f42_44; + m_A172 += m_A156 * f42_44; + m_A173 += m_A157 * f42_44; + RHS44 += f42_44 * RHS42; + const double f42_50 = -f42 * m_A213; + m_A214 += m_A154 * f42_50; + m_A215 += m_A155 * f42_50; + m_A216 += m_A156 * f42_50; + m_A217 += m_A157 * f42_50; + RHS50 += f42_50 * RHS42; + const double f42_51 = -f42 * m_A224; + m_A225 += m_A154 * f42_51; + m_A226 += m_A155 * f42_51; + m_A227 += m_A156 * f42_51; + m_A228 += m_A157 * f42_51; + RHS51 += f42_51 * RHS42; + const double f42_54 = -f42 * m_A257; + m_A258 += m_A154 * f42_54; + m_A260 += m_A155 * f42_54; + m_A261 += m_A156 * f42_54; + m_A264 += m_A157 * f42_54; + RHS54 += f42_54 * RHS42; + const double f43 = 1.0 / m_A163; + const double f43_47 = -f43 * m_A191; + m_A192 += m_A164 * f43_47; + m_A193 += m_A165 * f43_47; + m_A194 += m_A166 * f43_47; + m_A195 += m_A167 * f43_47; + RHS47 += f43_47 * RHS43; + const double f43_52 = -f43 * m_A233; + m_A235 += m_A164 * f43_52; + m_A237 += m_A165 * f43_52; + m_A238 += m_A166 * f43_52; + m_A240 += m_A167 * f43_52; + RHS52 += f43_52 * RHS43; + const double f43_53 = -f43 * m_A247; + m_A248 += m_A164 * f43_53; + m_A249 += m_A165 * f43_53; + m_A250 += m_A166 * f43_53; + m_A252 += m_A167 * f43_53; + RHS53 += f43_53 * RHS43; + const double f43_56 = -f43 * m_A283; + m_A285 += m_A164 * f43_56; + m_A286 += m_A165 * f43_56; + m_A287 += m_A166 * f43_56; + m_A290 += m_A167 * f43_56; + RHS56 += f43_56 * RHS43; + const double f44 = 1.0 / m_A170; + const double f44_50 = -f44 * m_A214; + m_A215 += m_A171 * f44_50; + m_A216 += m_A172 * f44_50; + m_A217 += m_A173 * f44_50; + m_A218 += m_A174 * f44_50; + RHS50 += f44_50 * RHS44; + const double f44_51 = -f44 * m_A225; + m_A226 += m_A171 * f44_51; + m_A227 += m_A172 * f44_51; + m_A228 += m_A173 * f44_51; + m_A229 += m_A174 * f44_51; + RHS51 += f44_51 * RHS44; + const double f44_54 = -f44 * m_A258; + m_A260 += m_A171 * f44_54; + m_A261 += m_A172 * f44_54; + m_A264 += m_A173 * f44_54; + m_A265 += m_A174 * f44_54; + RHS54 += f44_54 * RHS44; + const double f44_55 = -f44 * m_A270; + m_A273 += m_A171 * f44_55; + m_A274 += m_A172 * f44_55; + m_A275 += m_A173 * f44_55; + m_A276 += m_A174 * f44_55; + RHS55 += f44_55 * RHS44; + const double f45 = 1.0 / m_A180; + const double f45_48 = -f45 * m_A201; + m_A202 += m_A181 * f45_48; + m_A203 += m_A182 * f45_48; + RHS48 += f45_48 * RHS45; + const double f45_52 = -f45 * m_A234; + m_A236 += m_A181 * f45_52; + m_A237 += m_A182 * f45_52; + RHS52 += f45_52 * RHS45; + const double f46 = 1.0 / m_A184; + const double f46_55 = -f46 * m_A271; + m_A276 += m_A185 * f46_55; + m_A277 += m_A186 * f46_55; + RHS55 += f46_55 * RHS46; + const double f46_56 = -f46 * m_A284; + m_A289 += m_A185 * f46_56; + m_A290 += m_A186 * f46_56; + RHS56 += f46_56 * RHS46; + const double f47 = 1.0 / m_A192; + const double f47_52 = -f47 * m_A235; + m_A237 += m_A193 * f47_52; + m_A238 += m_A194 * f47_52; + m_A240 += m_A195 * f47_52; + RHS52 += f47_52 * RHS47; + const double f47_53 = -f47 * m_A248; + m_A249 += m_A193 * f47_53; + m_A250 += m_A194 * f47_53; + m_A252 += m_A195 * f47_53; + RHS53 += f47_53 * RHS47; + const double f47_56 = -f47 * m_A285; + m_A286 += m_A193 * f47_56; + m_A287 += m_A194 * f47_56; + m_A290 += m_A195 * f47_56; + RHS56 += f47_56 * RHS47; + const double f48 = 1.0 / m_A202; + const double f48_52 = -f48 * m_A236; + m_A237 += m_A203 * f48_52; + m_A239 += m_A204 * f48_52; + RHS52 += f48_52 * RHS48; + const double f48_54 = -f48 * m_A259; + m_A262 += m_A203 * f48_54; + m_A264 += m_A204 * f48_54; + RHS54 += f48_54 * RHS48; + const double f49 = 1.0 / m_A206; + const double f49_55 = -f49 * m_A272; + m_A276 += m_A207 * f49_55; + RHS55 += f49_55 * RHS49; + const double f50 = 1.0 / m_A215; + const double f50_51 = -f50 * m_A226; + m_A227 += m_A216 * f50_51; + m_A228 += m_A217 * f50_51; + m_A229 += m_A218 * f50_51; + RHS51 += f50_51 * RHS50; + const double f50_54 = -f50 * m_A260; + m_A261 += m_A216 * f50_54; + m_A264 += m_A217 * f50_54; + m_A265 += m_A218 * f50_54; + RHS54 += f50_54 * RHS50; + const double f50_55 = -f50 * m_A273; + m_A274 += m_A216 * f50_55; + m_A275 += m_A217 * f50_55; + m_A276 += m_A218 * f50_55; + RHS55 += f50_55 * RHS50; + const double f51 = 1.0 / m_A227; + const double f51_54 = -f51 * m_A261; + m_A264 += m_A228 * f51_54; + m_A265 += m_A229 * f51_54; + RHS54 += f51_54 * RHS51; + const double f51_55 = -f51 * m_A274; + m_A275 += m_A228 * f51_55; + m_A276 += m_A229 * f51_55; + RHS55 += f51_55 * RHS51; + const double f52 = 1.0 / m_A237; + const double f52_53 = -f52 * m_A249; + m_A250 += m_A238 * f52_53; + m_A251 += m_A239 * f52_53; + m_A252 += m_A240 * f52_53; + RHS53 += f52_53 * RHS52; + const double f52_54 = -f52 * m_A262; + m_A263 += m_A238 * f52_54; + m_A264 += m_A239 * f52_54; + m_A266 += m_A240 * f52_54; + RHS54 += f52_54 * RHS52; + const double f52_56 = -f52 * m_A286; + m_A287 += m_A238 * f52_56; + m_A288 += m_A239 * f52_56; + m_A290 += m_A240 * f52_56; + RHS56 += f52_56 * RHS52; + const double f53 = 1.0 / m_A250; + const double f53_54 = -f53 * m_A263; + m_A264 += m_A251 * f53_54; + m_A266 += m_A252 * f53_54; + RHS54 += f53_54 * RHS53; + const double f53_56 = -f53 * m_A287; + m_A288 += m_A251 * f53_56; + m_A290 += m_A252 * f53_56; + RHS56 += f53_56 * RHS53; + const double f54 = 1.0 / m_A264; + const double f54_55 = -f54 * m_A275; + m_A276 += m_A265 * f54_55; + m_A277 += m_A266 * f54_55; + RHS55 += f54_55 * RHS54; + const double f54_56 = -f54 * m_A288; + m_A289 += m_A265 * f54_56; + m_A290 += m_A266 * f54_56; + RHS56 += f54_56 * RHS54; + const double f55 = 1.0 / m_A276; + const double f55_56 = -f55 * m_A289; + m_A290 += m_A277 * f55_56; + RHS56 += f55_56 * RHS55; + V[56] = RHS56 / m_A290; + double tmp55 = 0.0; + tmp55 += m_A277 * V[56]; + V[55] = (RHS55 - tmp55) / m_A276; + double tmp54 = 0.0; + tmp54 += m_A265 * V[55]; + tmp54 += m_A266 * V[56]; + V[54] = (RHS54 - tmp54) / m_A264; + double tmp53 = 0.0; + tmp53 += m_A251 * V[54]; + tmp53 += m_A252 * V[56]; + V[53] = (RHS53 - tmp53) / m_A250; + double tmp52 = 0.0; + tmp52 += m_A238 * V[53]; + tmp52 += m_A239 * V[54]; + tmp52 += m_A240 * V[56]; + V[52] = (RHS52 - tmp52) / m_A237; + double tmp51 = 0.0; + tmp51 += m_A228 * V[54]; + tmp51 += m_A229 * V[55]; + V[51] = (RHS51 - tmp51) / m_A227; + double tmp50 = 0.0; + tmp50 += m_A216 * V[51]; + tmp50 += m_A217 * V[54]; + tmp50 += m_A218 * V[55]; + V[50] = (RHS50 - tmp50) / m_A215; + double tmp49 = 0.0; + tmp49 += m_A207 * V[55]; + V[49] = (RHS49 - tmp49) / m_A206; + double tmp48 = 0.0; + tmp48 += m_A203 * V[52]; + tmp48 += m_A204 * V[54]; + V[48] = (RHS48 - tmp48) / m_A202; + double tmp47 = 0.0; + tmp47 += m_A193 * V[52]; + tmp47 += m_A194 * V[53]; + tmp47 += m_A195 * V[56]; + V[47] = (RHS47 - tmp47) / m_A192; + double tmp46 = 0.0; + tmp46 += m_A185 * V[55]; + tmp46 += m_A186 * V[56]; + V[46] = (RHS46 - tmp46) / m_A184; + double tmp45 = 0.0; + tmp45 += m_A181 * V[48]; + tmp45 += m_A182 * V[52]; + V[45] = (RHS45 - tmp45) / m_A180; + double tmp44 = 0.0; + tmp44 += m_A171 * V[50]; + tmp44 += m_A172 * V[51]; + tmp44 += m_A173 * V[54]; + tmp44 += m_A174 * V[55]; + V[44] = (RHS44 - tmp44) / m_A170; + double tmp43 = 0.0; + tmp43 += m_A164 * V[47]; + tmp43 += m_A165 * V[52]; + tmp43 += m_A166 * V[53]; + tmp43 += m_A167 * V[56]; + V[43] = (RHS43 - tmp43) / m_A163; + double tmp42 = 0.0; + tmp42 += m_A154 * V[44]; + tmp42 += m_A155 * V[50]; + tmp42 += m_A156 * V[51]; + tmp42 += m_A157 * V[54]; + V[42] = (RHS42 - tmp42) / m_A153; + double tmp41 = 0.0; + tmp41 += m_A148 * V[51]; + V[41] = (RHS41 - tmp41) / m_A147; + double tmp40 = 0.0; + tmp40 += m_A144 * V[50]; + V[40] = (RHS40 - tmp40) / m_A143; + double tmp39 = 0.0; + tmp39 += m_A141 * V[55]; + V[39] = (RHS39 - tmp39) / m_A140; + double tmp38 = 0.0; + tmp38 += m_A136 * V[42]; + tmp38 += m_A137 * V[50]; + tmp38 += m_A138 * V[51]; + tmp38 += m_A139 * V[54]; + V[38] = (RHS38 - tmp38) / m_A135; + double tmp37 = 0.0; + tmp37 += m_A128 * V[43]; + tmp37 += m_A129 * V[47]; + tmp37 += m_A130 * V[53]; + tmp37 += m_A131 * V[56]; + V[37] = (RHS37 - tmp37) / m_A127; + double tmp36 = 0.0; + tmp36 += m_A121 * V[45]; + tmp36 += m_A122 * V[48]; + V[36] = (RHS36 - tmp36) / m_A120; + double tmp35 = 0.0; + tmp35 += m_A117 * V[48]; + V[35] = (RHS35 - tmp35) / m_A116; + double tmp34 = 0.0; + tmp34 += m_A114 * V[53]; + V[34] = (RHS34 - tmp34) / m_A113; + double tmp33 = 0.0; + tmp33 += m_A109 * V[38]; + tmp33 += m_A110 * V[50]; + V[33] = (RHS33 - tmp33) / m_A108; + double tmp32 = 0.0; + tmp32 += m_A105 * V[52]; + V[32] = (RHS32 - tmp32) / m_A104; + double tmp31 = 0.0; + tmp31 += m_A100 * V[36]; + tmp31 += m_A101 * V[45]; + tmp31 += m_A102 * V[48]; + V[31] = (RHS31 - tmp31) / m_A99; + double tmp30 = 0.0; + tmp30 += m_A93 * V[37]; + tmp30 += m_A94 * V[43]; + tmp30 += m_A95 * V[53]; + tmp30 += m_A96 * V[56]; + V[30] = (RHS30 - tmp30) / m_A92; + double tmp29 = 0.0; + tmp29 += m_A87 * V[30]; + tmp29 += m_A88 * V[37]; + V[29] = (RHS29 - tmp29) / m_A86; + double tmp28 = 0.0; + tmp28 += m_A83 * V[49]; + V[28] = (RHS28 - tmp28) / m_A82; + double tmp27 = 0.0; + tmp27 += m_A81 * V[55]; + V[27] = (RHS27 - tmp27) / m_A80; + double tmp26 = 0.0; + tmp26 += m_A79 * V[55]; + V[26] = (RHS26 - tmp26) / m_A78; + double tmp25 = 0.0; + tmp25 += m_A76 * V[46]; + tmp25 += m_A77 * V[56]; + V[25] = (RHS25 - tmp25) / m_A75; + double tmp24 = 0.0; + tmp24 += m_A73 * V[42]; + tmp24 += m_A74 * V[44]; + V[24] = (RHS24 - tmp24) / m_A72; + double tmp23 = 0.0; + tmp23 += m_A71 * V[47]; + V[23] = (RHS23 - tmp23) / m_A70; + double tmp22 = 0.0; + tmp22 += m_A69 * V[47]; + V[22] = (RHS22 - tmp22) / m_A68; + double tmp21 = 0.0; + tmp21 += m_A64 * V[42]; + tmp21 += m_A65 * V[50]; + tmp21 += m_A66 * V[51]; + tmp21 += m_A67 * V[54]; + V[21] = (RHS21 - tmp21) / m_A63; + double tmp20 = 0.0; + tmp20 += m_A59 * V[38]; + tmp20 += m_A60 * V[42]; + tmp20 += m_A61 * V[51]; + tmp20 += m_A62 * V[54]; + V[20] = (RHS20 - tmp20) / m_A58; + double tmp19 = 0.0; + tmp19 += m_A57 * V[47]; + V[19] = (RHS19 - tmp19) / m_A56; + double tmp18 = 0.0; + tmp18 += m_A54 * V[41]; + tmp18 += m_A55 * V[51]; + V[18] = (RHS18 - tmp18) / m_A53; + double tmp17 = 0.0; + tmp17 += m_A51 * V[48]; + tmp17 += m_A52 * V[54]; + V[17] = (RHS17 - tmp17) / m_A50; + double tmp16 = 0.0; + tmp16 += m_A47 * V[33]; + tmp16 += m_A48 * V[38]; + tmp16 += m_A49 * V[50]; + V[16] = (RHS16 - tmp16) / m_A46; + double tmp15 = 0.0; + tmp15 += m_A45 * V[40]; + V[15] = (RHS15 - tmp15) / m_A44; + double tmp14 = 0.0; + tmp14 += m_A42 * V[45]; + tmp14 += m_A43 * V[52]; + V[14] = (RHS14 - tmp14) / m_A41; + double tmp13 = 0.0; + tmp13 += m_A38 * V[31]; + tmp13 += m_A39 * V[36]; + tmp13 += m_A40 * V[45]; + V[13] = (RHS13 - tmp13) / m_A37; + double tmp12 = 0.0; + tmp12 += m_A36 * V[36]; + V[12] = (RHS12 - tmp12) / m_A35; + double tmp11 = 0.0; + tmp11 += m_A34 * V[41]; + V[11] = (RHS11 - tmp11) / m_A33; + double tmp10 = 0.0; + tmp10 += m_A31 * V[31]; + tmp10 += m_A32 * V[48]; + V[10] = (RHS10 - tmp10) / m_A30; + double tmp9 = 0.0; + tmp9 += m_A26 * V[37]; + tmp9 += m_A27 * V[43]; + tmp9 += m_A28 * V[53]; + tmp9 += m_A29 * V[56]; + V[9] = (RHS9 - tmp9) / m_A25; + double tmp8 = 0.0; + tmp8 += m_A24 * V[35]; + V[8] = (RHS8 - tmp8) / m_A23; + double tmp7 = 0.0; + tmp7 += m_A22 * V[33]; + V[7] = (RHS7 - tmp7) / m_A21; + double tmp6 = 0.0; + tmp6 += m_A17 * V[30]; + tmp6 += m_A18 * V[43]; + tmp6 += m_A19 * V[53]; + tmp6 += m_A20 * V[56]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A14 * V[34]; + tmp5 += m_A15 * V[53]; + V[5] = (RHS5 - tmp5) / m_A13; + double tmp4 = 0.0; + tmp4 += m_A11 * V[43]; + tmp4 += m_A12 * V[52]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A9 * V[34]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A5 * V[29]; + tmp2 += m_A6 * V[30]; + tmp2 += m_A7 * V[37]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[32]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[29]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// solarq +static void nl_gcr_66496d6073aca98e_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[4]; + m_A3 += go[5]; + m_A3 += go[6]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A7 += go[10]; + m_A6 += go[11]; + m_A6 += go[12]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A9 += go[14]; + m_A9 += go[15]; + m_A8 += go[16]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A15 += gt[23]; + m_A15 += gt[24]; + m_A13 += go[20]; + m_A13 += go[21]; + m_A12 += go[22]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A17 += go[25]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 -= go[26] * *cnV[26]; + RHS5 -= go[27] * *cnV[27]; + RHS5 -= go[28] * *cnV[28]; + RHS5 -= go[29] * *cnV[29]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A12; + m_A14 += m_A3 * f1_4; + m_A15 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A13; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A17; + m_A18 += m_A6 * f2_5; + m_A19 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + RHS4 += f3_4 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A16 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A19; + double tmp4 = 0.0; + tmp4 += m_A16 * V[5]; + V[4] = (RHS4 - tmp4) / m_A15; + double tmp3 = 0.0; + tmp3 += m_A11 * V[4]; + V[3] = (RHS3 - tmp3) / m_A10; + double tmp2 = 0.0; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starhawk +static void nl_gcr_67838e11f714c455_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A4 += go[2]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A7 += go[6]; + m_A7 += go[7]; + m_A5 += go[8]; + m_A5 += go[9]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A11 += gt[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A10 += go[11]; + m_A10 += go[12]; + m_A9 += go[13]; + m_A8 += go[14]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A11 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + m_A7 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A7 * V[3]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// ripoff +static void nl_gcr_698d5dd47fb16d5_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A7 += gt[6]; + m_A7 += gt[7]; + m_A6 += go[6]; + m_A8 += go[7]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + m_A10 += gt[8]; + m_A10 += gt[9]; + m_A9 += go[8]; + m_A11 += go[9]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + m_A15 += gt[10]; + m_A15 += gt[11]; + m_A15 += gt[12]; + m_A15 += gt[13]; + m_A14 += go[10]; + m_A13 += go[11]; + m_A12 += go[12]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 += Idr[12]; + RHS5 += Idr[13]; + RHS5 -= go[13] * *cnV[13]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A12; + m_A15 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A6; + m_A7 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A9; + m_A10 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_5 = -f3 * m_A13; + m_A15 += m_A8 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_5 = -f4 * m_A14; + m_A15 += m_A11 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A15; + double tmp4 = 0.0; + tmp4 += m_A11 * V[5]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A8 * V[5]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// astrob +static void nl_gcr_6c24726f30e8dc34_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A4 += go[3]; + m_A4 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A6 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A8 += go[11]; + m_A7 += go[12]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A12 += go[14]; + m_A11 += go[15]; + m_A11 += go[16]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A7; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A3 * f1_3; + m_A10 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A11; + m_A13 += m_A3 * f1_4; + m_A14 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A14; + double tmp3 = 0.0; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[4]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// spacfury +static void nl_gcr_6eae7b15cd376318_43_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A1 += go[0]; + m_A2 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A3 += gt[7]; + m_A3 += gt[8]; + m_A3 += gt[9]; + m_A3 += gt[10]; + m_A3 += gt[11]; + m_A4 += go[5]; + m_A5 += go[6]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A8 += go[12]; + m_A7 += go[13]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 -= go[14] * *cnV[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A9 += gt[17]; + m_A11 += go[15]; + m_A10 += go[16]; + double RHS3 = Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[17] * *cnV[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A14 += go[18]; + m_A12 += go[19]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A15 += go[23]; + m_A16 += go[24]; + m_A20 += go[25]; + double RHS5 = Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[26] * *cnV[26]; + RHS5 -= go[27] * *cnV[27]; + m_A24 += gt[28]; + m_A24 += gt[29]; + m_A24 += gt[30]; + m_A26 += go[28]; + m_A22 += go[29]; + m_A21 += go[30]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + m_A29 += gt[31]; + m_A29 += gt[32]; + m_A29 += gt[33]; + m_A29 += gt[34]; + m_A29 += gt[35]; + m_A29 += gt[36]; + m_A29 += gt[37]; + m_A31 += go[31]; + m_A27 += go[32]; + double RHS7 = Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 -= go[33] * *cnV[33]; + RHS7 -= go[34] * *cnV[34]; + RHS7 -= go[35] * *cnV[35]; + RHS7 -= go[36] * *cnV[36]; + RHS7 -= go[37] * *cnV[37]; + m_A36 += gt[38]; + m_A36 += gt[39]; + m_A36 += gt[40]; + m_A34 += go[38]; + m_A33 += go[39]; + m_A32 += go[40]; + double RHS8 = Idr[38]; + RHS8 += Idr[39]; + RHS8 += Idr[40]; + m_A42 += gt[41]; + m_A42 += gt[42]; + m_A42 += gt[43]; + m_A42 += gt[44]; + m_A42 += gt[45]; + m_A42 += gt[46]; + m_A40 += go[41]; + m_A38 += go[42]; + m_A39 += go[43]; + double RHS9 = Idr[41]; + RHS9 += Idr[42]; + RHS9 += Idr[43]; + RHS9 += Idr[44]; + RHS9 += Idr[45]; + RHS9 += Idr[46]; + RHS9 -= go[44] * *cnV[44]; + RHS9 -= go[45] * *cnV[45]; + RHS9 -= go[46] * *cnV[46]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A12; + m_A13 += m_A1 * f0_4; + m_A14 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f0_8 = -f0 * m_A32; + m_A33 += m_A1 * f0_8; + m_A36 += m_A2 * f0_8; + RHS8 += f0_8 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_5 = -f1 * m_A15; + m_A17 += m_A4 * f1_5; + m_A20 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_5 = -f2 * m_A16; + m_A18 += m_A7 * f2_5; + m_A19 += m_A8 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_6 = -f2 * m_A21; + m_A23 += m_A7 * f2_6; + m_A24 += m_A8 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_6 = -f3 * m_A22; + m_A24 += m_A10 * f3_6; + m_A26 += m_A11 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_7 = -f3 * m_A27; + m_A28 += m_A10 * f3_7; + m_A31 += m_A11 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_9 = -f3 * m_A38; + m_A39 += m_A10 * f3_9; + m_A42 += m_A11 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A13; + const double f4_5 = -f4 * m_A17; + m_A20 += m_A14 * f4_5; + RHS5 += f4_5 * RHS4; + const double f4_8 = -f4 * m_A33; + m_A36 += m_A14 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A18; + const double f5_6 = -f5 * m_A23; + m_A24 += m_A19 * f5_6; + m_A25 += m_A20 * f5_6; + RHS6 += f5_6 * RHS5; + const double f5_8 = -f5 * m_A34; + m_A35 += m_A19 * f5_8; + m_A36 += m_A20 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A24; + const double f6_7 = -f6 * m_A28; + m_A30 += m_A25 * f6_7; + m_A31 += m_A26 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A35; + m_A36 += m_A25 * f6_8; + m_A37 += m_A26 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_9 = -f6 * m_A39; + m_A41 += m_A25 * f6_9; + m_A42 += m_A26 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A29; + const double f7_9 = -f7 * m_A40; + m_A41 += m_A30 * f7_9; + m_A42 += m_A31 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A36; + const double f8_9 = -f8 * m_A41; + m_A42 += m_A37 * f8_9; + RHS9 += f8_9 * RHS8; + V[9] = RHS9 / m_A42; + double tmp8 = 0.0; + tmp8 += m_A37 * V[9]; + V[8] = (RHS8 - tmp8) / m_A36; + double tmp7 = 0.0; + tmp7 += m_A30 * V[8]; + tmp7 += m_A31 * V[9]; + V[7] = (RHS7 - tmp7) / m_A29; + double tmp6 = 0.0; + tmp6 += m_A25 * V[8]; + tmp6 += m_A26 * V[9]; + V[6] = (RHS6 - tmp6) / m_A24; + double tmp5 = 0.0; + tmp5 += m_A19 * V[6]; + tmp5 += m_A20 * V[8]; + V[5] = (RHS5 - tmp5) / m_A18; + double tmp4 = 0.0; + tmp4 += m_A14 * V[8]; + V[4] = (RHS4 - tmp4) / m_A13; + double tmp3 = 0.0; + tmp3 += m_A10 * V[6]; + tmp3 += m_A11 * V[9]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A7 * V[5]; + tmp2 += m_A8 * V[6]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A4 * V[4]; + tmp1 += m_A5 * V[8]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + tmp0 += m_A2 * V[8]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// barrier +static void nl_gcr_6ef39a62161d596c_47_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A5 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A7 += go[11]; + m_A7 += go[12]; + m_A7 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[16] * *cnV[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A11 += go[17]; + m_A12 += go[18]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A13 += gt[25]; + m_A14 += go[19]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A16 += gt[28]; + m_A16 += gt[29]; + m_A16 += gt[30]; + m_A15 += go[26]; + m_A15 += go[27]; + m_A15 += go[28]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 -= go[29] * *cnV[29]; + RHS6 -= go[30] * *cnV[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A20 += gt[34]; + m_A19 += go[31]; + m_A21 += go[32]; + m_A21 += go[33]; + double RHS7 = Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 -= go[34] * *cnV[34]; + m_A23 += gt[35]; + m_A23 += gt[36]; + m_A22 += go[35]; + m_A24 += go[36]; + double RHS8 = Idr[35]; + RHS8 += Idr[36]; + m_A26 += gt[37]; + m_A26 += gt[38]; + m_A26 += gt[39]; + m_A28 += go[37]; + m_A25 += go[38]; + double RHS9 = Idr[37]; + RHS9 += Idr[38]; + RHS9 += Idr[39]; + RHS9 -= go[39] * *cnV[39]; + m_A33 += gt[40]; + m_A33 += gt[41]; + m_A33 += gt[42]; + m_A33 += gt[43]; + m_A33 += gt[44]; + m_A33 += gt[45]; + m_A33 += gt[46]; + m_A29 += go[40]; + m_A30 += go[41]; + m_A32 += go[42]; + m_A32 += go[43]; + double RHS10 = Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 += Idr[44]; + RHS10 += Idr[45]; + RHS10 += Idr[46]; + RHS10 -= go[44] * *cnV[44]; + RHS10 -= go[45] * *cnV[45]; + RHS10 -= go[46] * *cnV[46]; + m_A41 += gt[47]; + m_A41 += gt[48]; + m_A41 += gt[49]; + m_A41 += gt[50]; + m_A41 += gt[51]; + m_A41 += gt[52]; + m_A36 += go[47]; + m_A35 += go[48]; + m_A38 += go[49]; + double RHS11 = Idr[47]; + RHS11 += Idr[48]; + RHS11 += Idr[49]; + RHS11 += Idr[50]; + RHS11 += Idr[51]; + RHS11 += Idr[52]; + RHS11 -= go[50] * *cnV[50]; + RHS11 -= go[51] * *cnV[51]; + RHS11 -= go[52] * *cnV[52]; + m_A46 += gt[53]; + m_A46 += gt[54]; + m_A46 += gt[55]; + m_A46 += gt[56]; + m_A46 += gt[57]; + m_A43 += go[53]; + m_A44 += go[54]; + double RHS12 = Idr[53]; + RHS12 += Idr[54]; + RHS12 += Idr[55]; + RHS12 += Idr[56]; + RHS12 += Idr[57]; + RHS12 -= go[55] * *cnV[55]; + RHS12 -= go[56] * *cnV[56]; + RHS12 -= go[57] * *cnV[57]; + const double f0 = 1.0 / m_A0; + const double f0_7 = -f0 * m_A19; + m_A20 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_10 = -f1 * m_A29; + m_A32 += m_A3 * f1_10; + RHS10 += f1_10 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_8 = -f2 * m_A22; + m_A23 += m_A5 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A15; + m_A16 += m_A7 * f3_6; + m_A17 += m_A8 * f3_6; + m_A18 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_10 = -f3 * m_A30; + m_A31 += m_A7 * f3_10; + m_A33 += m_A8 * f3_10; + m_A34 += m_A9 * f3_10; + RHS10 += f3_10 * RHS3; + const double f3_11 = -f3 * m_A35; + m_A37 += m_A7 * f3_11; + m_A40 += m_A8 * f3_11; + m_A41 += m_A9 * f3_11; + RHS11 += f3_11 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_9 = -f4 * m_A25; + m_A26 += m_A11 * f4_9; + m_A27 += m_A12 * f4_9; + RHS9 += f4_9 * RHS4; + const double f4_11 = -f4 * m_A36; + m_A39 += m_A11 * f4_11; + m_A41 += m_A12 * f4_11; + RHS11 += f4_11 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_12 = -f5 * m_A43; + m_A44 += m_A14 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_10 = -f6 * m_A31; + m_A33 += m_A17 * f6_10; + m_A34 += m_A18 * f6_10; + RHS10 += f6_10 * RHS6; + const double f6_11 = -f6 * m_A37; + m_A40 += m_A17 * f6_11; + m_A41 += m_A18 * f6_11; + RHS11 += f6_11 * RHS6; + const double f7 = 1.0 / m_A20; + const double f7_10 = -f7 * m_A32; + m_A33 += m_A21 * f7_10; + RHS10 += f7_10 * RHS7; + const double f8 = 1.0 / m_A23; + const double f8_11 = -f8 * m_A38; + m_A41 += m_A24 * f8_11; + RHS11 += f8_11 * RHS8; + const double f9 = 1.0 / m_A26; + const double f9_11 = -f9 * m_A39; + m_A41 += m_A27 * f9_11; + m_A42 += m_A28 * f9_11; + RHS11 += f9_11 * RHS9; + const double f9_12 = -f9 * m_A44; + m_A45 += m_A27 * f9_12; + m_A46 += m_A28 * f9_12; + RHS12 += f9_12 * RHS9; + const double f10 = 1.0 / m_A33; + const double f10_11 = -f10 * m_A40; + m_A41 += m_A34 * f10_11; + RHS11 += f10_11 * RHS10; + const double f11 = 1.0 / m_A41; + const double f11_12 = -f11 * m_A45; + m_A46 += m_A42 * f11_12; + RHS12 += f11_12 * RHS11; + V[12] = RHS12 / m_A46; + double tmp11 = 0.0; + tmp11 += m_A42 * V[12]; + V[11] = (RHS11 - tmp11) / m_A41; + double tmp10 = 0.0; + tmp10 += m_A34 * V[11]; + V[10] = (RHS10 - tmp10) / m_A33; + double tmp9 = 0.0; + tmp9 += m_A27 * V[11]; + tmp9 += m_A28 * V[12]; + V[9] = (RHS9 - tmp9) / m_A26; + double tmp8 = 0.0; + tmp8 += m_A24 * V[11]; + V[8] = (RHS8 - tmp8) / m_A23; + double tmp7 = 0.0; + tmp7 += m_A21 * V[10]; + V[7] = (RHS7 - tmp7) / m_A20; + double tmp6 = 0.0; + tmp6 += m_A17 * V[10]; + tmp6 += m_A18 * V[11]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A14 * V[9]; + V[5] = (RHS5 - tmp5) / m_A13; + double tmp4 = 0.0; + tmp4 += m_A11 * V[9]; + tmp4 += m_A12 * V[11]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + tmp3 += m_A8 * V[10]; + tmp3 += m_A9 * V[11]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[8]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[7]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starhawk +static void nl_gcr_723fa454468a93d_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A5 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// cheekyms +static void nl_gcr_733c72a820fdbd1f_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A5 += go[6]; + m_A4 += go[7]; + m_A4 += go[8]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// tailg +static void nl_gcr_7388106355fb27c3_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[2]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[7]; + m_A7 += go[8]; + m_A5 += go[9]; + m_A5 += go[10]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A11 += gt[12]; + m_A11 += gt[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A10 += go[12]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A11 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + m_A7 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A7 * V[3]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// tp1985 +static void nl_gcr_73f2ba8ad4a45b26_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A6 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A7 += go[8]; + m_A8 += go[9]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// zac1b11142 +static void nl_gcr_7425594cec8024ad_30_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A9 += go[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A11 += gt[23]; + m_A10 += go[18]; + m_A12 += go[19]; + m_A12 += go[20]; + double RHS5 = Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A15 += go[24]; + m_A14 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A19 += go[26]; + m_A17 += go[27]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + m_A25 += gt[28]; + m_A25 += gt[29]; + m_A25 += gt[30]; + m_A25 += gt[31]; + m_A25 += gt[32]; + m_A25 += gt[33]; + m_A23 += go[28]; + m_A22 += go[29]; + m_A22 += go[30]; + m_A24 += go[31]; + m_A21 += go[32]; + m_A20 += go[33]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + m_A29 += gt[34]; + m_A29 += gt[35]; + m_A29 += gt[36]; + m_A29 += gt[37]; + m_A28 += go[34]; + m_A27 += go[35]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A10; + m_A13 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A17; + m_A18 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A14; + m_A16 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; + const double f2_8 = -f2 * m_A20; + m_A23 += m_A5 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A15; + m_A16 += m_A7 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_8 = -f4 * m_A21; + m_A25 += m_A9 * f4_8; + RHS8 += f4_8 * RHS4; + const double f4_9 = -f4 * m_A27; + m_A28 += m_A9 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_8 = -f5 * m_A22; + m_A25 += m_A12 * f5_8; + m_A26 += m_A13 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_8 = -f6 * m_A23; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_8 = -f7 * m_A24; + m_A25 += m_A19 * f7_8; + RHS8 += f7_8 * RHS7; + const double f8 = 1.0 / m_A25; + const double f8_9 = -f8 * m_A28; + m_A29 += m_A26 * f8_9; + RHS9 += f8_9 * RHS8; + V[9] = RHS9 / m_A29; + double tmp8 = 0.0; + tmp8 += m_A26 * V[9]; + V[8] = (RHS8 - tmp8) / m_A25; + double tmp7 = 0.0; + tmp7 += m_A19 * V[8]; + V[7] = (RHS7 - tmp7) / m_A18; + double tmp6 = 0.0; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A12 * V[8]; + tmp5 += m_A13 * V[9]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A9 * V[8]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[7]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[9]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// tp1985 +static void nl_gcr_74349e9889a2630b_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A5 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[8] * *cnV[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// gunfight +static void nl_gcr_743595e64cee0a5e_112_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A12 += go[10]; + m_A11 += go[11]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + m_A13 += gt[12]; + m_A13 += gt[13]; + m_A15 += go[12]; + m_A14 += go[13]; + double RHS6 = Idr[12]; + RHS6 += Idr[13]; + m_A17 += gt[14]; + m_A17 += gt[15]; + m_A17 += gt[16]; + m_A16 += go[14]; + m_A18 += go[15]; + double RHS7 = Idr[14]; + RHS7 += Idr[15]; + RHS7 += Idr[16]; + RHS7 -= go[16] * *cnV[16]; + m_A21 += gt[17]; + m_A21 += gt[18]; + m_A21 += gt[19]; + m_A20 += go[17]; + m_A22 += go[18]; + double RHS8 = Idr[17]; + RHS8 += Idr[18]; + RHS8 += Idr[19]; + RHS8 -= go[19] * *cnV[19]; + m_A25 += gt[20]; + m_A25 += gt[21]; + m_A25 += gt[22]; + m_A24 += go[20]; + m_A26 += go[21]; + double RHS9 = Idr[20]; + RHS9 += Idr[21]; + RHS9 += Idr[22]; + RHS9 -= go[22] * *cnV[22]; + m_A29 += gt[23]; + m_A29 += gt[24]; + m_A29 += gt[25]; + m_A28 += go[23]; + m_A30 += go[24]; + double RHS10 = Idr[23]; + RHS10 += Idr[24]; + RHS10 += Idr[25]; + RHS10 -= go[25] * *cnV[25]; + m_A32 += gt[26]; + m_A32 += gt[27]; + m_A32 += gt[28]; + m_A34 += go[26]; + m_A33 += go[27]; + double RHS11 = Idr[26]; + RHS11 += Idr[27]; + RHS11 += Idr[28]; + RHS11 -= go[28] * *cnV[28]; + m_A35 += gt[29]; + m_A35 += gt[30]; + m_A35 += gt[31]; + m_A37 += go[29]; + m_A36 += go[30]; + double RHS12 = Idr[29]; + RHS12 += Idr[30]; + RHS12 += Idr[31]; + RHS12 -= go[31] * *cnV[31]; + m_A40 += gt[32]; + m_A40 += gt[33]; + m_A38 += go[32]; + m_A39 += go[33]; + double RHS13 = Idr[32]; + RHS13 += Idr[33]; + m_A44 += gt[34]; + m_A44 += gt[35]; + m_A42 += go[34]; + m_A43 += go[35]; + double RHS14 = Idr[34]; + RHS14 += Idr[35]; + m_A47 += gt[36]; + m_A47 += gt[37]; + m_A47 += gt[38]; + m_A46 += go[36]; + m_A48 += go[37]; + double RHS15 = Idr[36]; + RHS15 += Idr[37]; + RHS15 += Idr[38]; + RHS15 -= go[38] * *cnV[38]; + m_A50 += gt[39]; + m_A50 += gt[40]; + m_A49 += go[39]; + m_A51 += go[40]; + double RHS16 = Idr[39]; + RHS16 += Idr[40]; + m_A52 += gt[41]; + m_A52 += gt[42]; + m_A52 += gt[43]; + m_A52 += gt[44]; + m_A52 += gt[45]; + m_A53 += go[41]; + m_A54 += go[42]; + m_A54 += go[43]; + double RHS17 = Idr[41]; + RHS17 += Idr[42]; + RHS17 += Idr[43]; + RHS17 += Idr[44]; + RHS17 += Idr[45]; + RHS17 -= go[44] * *cnV[44]; + RHS17 -= go[45] * *cnV[45]; + m_A56 += gt[46]; + m_A56 += gt[47]; + m_A56 += gt[48]; + m_A56 += gt[49]; + m_A57 += go[46]; + m_A58 += go[47]; + m_A55 += go[48]; + double RHS18 = Idr[46]; + RHS18 += Idr[47]; + RHS18 += Idr[48]; + RHS18 += Idr[49]; + RHS18 -= go[49] * *cnV[49]; + m_A60 += gt[50]; + m_A60 += gt[51]; + m_A60 += gt[52]; + m_A60 += gt[53]; + m_A61 += go[50]; + m_A62 += go[51]; + m_A59 += go[52]; + double RHS19 = Idr[50]; + RHS19 += Idr[51]; + RHS19 += Idr[52]; + RHS19 += Idr[53]; + RHS19 -= go[53] * *cnV[53]; + m_A63 += gt[54]; + m_A63 += gt[55]; + m_A63 += gt[56]; + m_A63 += gt[57]; + m_A63 += gt[58]; + m_A64 += go[54]; + m_A65 += go[55]; + m_A65 += go[56]; + double RHS20 = Idr[54]; + RHS20 += Idr[55]; + RHS20 += Idr[56]; + RHS20 += Idr[57]; + RHS20 += Idr[58]; + RHS20 -= go[57] * *cnV[57]; + RHS20 -= go[58] * *cnV[58]; + m_A66 += gt[59]; + m_A66 += gt[60]; + m_A66 += gt[61]; + m_A66 += gt[62]; + m_A67 += go[59]; + m_A68 += go[60]; + m_A68 += go[61]; + double RHS21 = Idr[59]; + RHS21 += Idr[60]; + RHS21 += Idr[61]; + RHS21 += Idr[62]; + RHS21 -= go[62] * *cnV[62]; + m_A71 += gt[63]; + m_A71 += gt[64]; + m_A71 += gt[65]; + m_A71 += gt[66]; + m_A71 += gt[67]; + m_A69 += go[63]; + m_A70 += go[64]; + m_A72 += go[65]; + m_A72 += go[66]; + double RHS22 = Idr[63]; + RHS22 += Idr[64]; + RHS22 += Idr[65]; + RHS22 += Idr[66]; + RHS22 += Idr[67]; + RHS22 -= go[67] * *cnV[67]; + m_A76 += gt[68]; + m_A76 += gt[69]; + m_A76 += gt[70]; + m_A76 += gt[71]; + m_A76 += gt[72]; + m_A73 += go[68]; + m_A75 += go[69]; + m_A78 += go[70]; + m_A78 += go[71]; + m_A74 += go[72]; + double RHS23 = Idr[68]; + RHS23 += Idr[69]; + RHS23 += Idr[70]; + RHS23 += Idr[71]; + RHS23 += Idr[72]; + m_A82 += gt[73]; + m_A82 += gt[74]; + m_A82 += gt[75]; + m_A82 += gt[76]; + m_A82 += gt[77]; + m_A79 += go[73]; + m_A81 += go[74]; + m_A83 += go[75]; + m_A83 += go[76]; + m_A80 += go[77]; + double RHS24 = Idr[73]; + RHS24 += Idr[74]; + RHS24 += Idr[75]; + RHS24 += Idr[76]; + RHS24 += Idr[77]; + m_A90 += gt[78]; + m_A90 += gt[79]; + m_A90 += gt[80]; + m_A90 += gt[81]; + m_A90 += gt[82]; + m_A90 += gt[83]; + m_A90 += gt[84]; + m_A90 += gt[85]; + m_A89 += go[78]; + m_A89 += go[79]; + m_A88 += go[80]; + m_A88 += go[81]; + m_A85 += go[82]; + m_A87 += go[83]; + double RHS25 = Idr[78]; + RHS25 += Idr[79]; + RHS25 += Idr[80]; + RHS25 += Idr[81]; + RHS25 += Idr[82]; + RHS25 += Idr[83]; + RHS25 += Idr[84]; + RHS25 += Idr[85]; + RHS25 -= go[84] * *cnV[84]; + RHS25 -= go[85] * *cnV[85]; + m_A103 += gt[86]; + m_A103 += gt[87]; + m_A103 += gt[88]; + m_A103 += gt[89]; + m_A103 += gt[90]; + m_A103 += gt[91]; + m_A103 += gt[92]; + m_A103 += gt[93]; + m_A99 += go[86]; + m_A99 += go[87]; + m_A98 += go[88]; + m_A98 += go[89]; + m_A92 += go[90]; + m_A93 += go[91]; + double RHS26 = Idr[86]; + RHS26 += Idr[87]; + RHS26 += Idr[88]; + RHS26 += Idr[89]; + RHS26 += Idr[90]; + RHS26 += Idr[91]; + RHS26 += Idr[92]; + RHS26 += Idr[93]; + RHS26 -= go[92] * *cnV[92]; + RHS26 -= go[93] * *cnV[93]; + m_A111 += gt[94]; + m_A111 += gt[95]; + m_A111 += gt[96]; + m_A111 += gt[97]; + m_A111 += gt[98]; + m_A111 += gt[99]; + m_A111 += gt[100]; + m_A111 += gt[101]; + m_A109 += go[94]; + m_A109 += go[95]; + m_A108 += go[96]; + m_A108 += go[97]; + m_A105 += go[98]; + m_A107 += go[99]; + double RHS27 = Idr[94]; + RHS27 += Idr[95]; + RHS27 += Idr[96]; + RHS27 += Idr[97]; + RHS27 += Idr[98]; + RHS27 += Idr[99]; + RHS27 += Idr[100]; + RHS27 += Idr[101]; + RHS27 -= go[100] * *cnV[100]; + RHS27 -= go[101] * *cnV[101]; + const double f0 = 1.0 / m_A0; + const double f0_15 = -f0 * m_A46; + m_A47 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_13 = -f1 * m_A38; + m_A40 += m_A3 * f1_13; + RHS13 += f1_13 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_14 = -f2 * m_A42; + m_A44 += m_A5 * f2_14; + RHS14 += f2_14 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_18 = -f3 * m_A55; + m_A56 += m_A7 * f3_18; + RHS18 += f3_18 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_19 = -f4 * m_A59; + m_A60 += m_A9 * f4_19; + RHS19 += f4_19 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_7 = -f5 * m_A16; + m_A17 += m_A11 * f5_7; + m_A19 += m_A12 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_26 = -f5 * m_A92; + m_A94 += m_A11 * f5_26; + m_A103 += m_A12 * f5_26; + RHS26 += f5_26 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_8 = -f6 * m_A20; + m_A21 += m_A14 * f6_8; + m_A23 += m_A15 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_26 = -f6 * m_A93; + m_A95 += m_A14 * f6_26; + m_A103 += m_A15 * f6_26; + RHS26 += f6_26 * RHS6; + const double f7 = 1.0 / m_A17; + const double f7_9 = -f7 * m_A24; + m_A25 += m_A18 * f7_9; + m_A27 += m_A19 * f7_9; + RHS9 += f7_9 * RHS7; + const double f7_26 = -f7 * m_A94; + m_A96 += m_A18 * f7_26; + m_A103 += m_A19 * f7_26; + RHS26 += f7_26 * RHS7; + const double f8 = 1.0 / m_A21; + const double f8_10 = -f8 * m_A28; + m_A29 += m_A22 * f8_10; + m_A31 += m_A23 * f8_10; + RHS10 += f8_10 * RHS8; + const double f8_26 = -f8 * m_A95; + m_A97 += m_A22 * f8_26; + m_A103 += m_A23 * f8_26; + RHS26 += f8_26 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_23 = -f9 * m_A73; + m_A76 += m_A26 * f9_23; + m_A77 += m_A27 * f9_23; + RHS23 += f9_23 * RHS9; + const double f9_26 = -f9 * m_A96; + m_A100 += m_A26 * f9_26; + m_A103 += m_A27 * f9_26; + RHS26 += f9_26 * RHS9; + const double f10 = 1.0 / m_A29; + const double f10_24 = -f10 * m_A79; + m_A82 += m_A30 * f10_24; + m_A84 += m_A31 * f10_24; + RHS24 += f10_24 * RHS10; + const double f10_26 = -f10 * m_A97; + m_A101 += m_A30 * f10_26; + m_A103 += m_A31 * f10_26; + RHS26 += f10_26 * RHS10; + const double f11 = 1.0 / m_A32; + const double f11_13 = -f11 * m_A39; + m_A40 += m_A33 * f11_13; + m_A41 += m_A34 * f11_13; + RHS13 += f11_13 * RHS11; + const double f11_27 = -f11 * m_A105; + m_A106 += m_A33 * f11_27; + m_A111 += m_A34 * f11_27; + RHS27 += f11_27 * RHS11; + const double f12 = 1.0 / m_A35; + const double f12_14 = -f12 * m_A43; + m_A44 += m_A36 * f12_14; + m_A45 += m_A37 * f12_14; + RHS14 += f12_14 * RHS12; + const double f12_25 = -f12 * m_A85; + m_A86 += m_A36 * f12_25; + m_A90 += m_A37 * f12_25; + RHS25 += f12_25 * RHS12; + const double f13 = 1.0 / m_A40; + const double f13_27 = -f13 * m_A106; + m_A111 += m_A41 * f13_27; + RHS27 += f13_27 * RHS13; + const double f14 = 1.0 / m_A44; + const double f14_25 = -f14 * m_A86; + m_A90 += m_A45 * f14_25; + RHS25 += f14_25 * RHS14; + const double f15 = 1.0 / m_A47; + const double f15_16 = -f15 * m_A49; + m_A50 += m_A48 * f15_16; + RHS16 += f15_16 * RHS15; + const double f16 = 1.0 / m_A50; + const double f16_22 = -f16 * m_A69; + m_A71 += m_A51 * f16_22; + RHS22 += f16_22 * RHS16; + const double f17 = 1.0 / m_A52; + const double f17_22 = -f17 * m_A70; + m_A71 += m_A53 * f17_22; + m_A72 += m_A54 * f17_22; + RHS22 += f17_22 * RHS17; + const double f17_26 = -f17 * m_A98; + m_A99 += m_A53 * f17_26; + m_A103 += m_A54 * f17_26; + RHS26 += f17_26 * RHS17; + const double f18 = 1.0 / m_A56; + const double f18_23 = -f18 * m_A74; + m_A76 += m_A57 * f18_23; + m_A78 += m_A58 * f18_23; + RHS23 += f18_23 * RHS18; + const double f18_27 = -f18 * m_A107; + m_A109 += m_A57 * f18_27; + m_A111 += m_A58 * f18_27; + RHS27 += f18_27 * RHS18; + const double f19 = 1.0 / m_A60; + const double f19_24 = -f19 * m_A80; + m_A82 += m_A61 * f19_24; + m_A83 += m_A62 * f19_24; + RHS24 += f19_24 * RHS19; + const double f19_25 = -f19 * m_A87; + m_A89 += m_A61 * f19_25; + m_A90 += m_A62 * f19_25; + RHS25 += f19_25 * RHS19; + const double f20 = 1.0 / m_A63; + const double f20_23 = -f20 * m_A75; + m_A76 += m_A64 * f20_23; + m_A78 += m_A65 * f20_23; + RHS23 += f20_23 * RHS20; + const double f20_27 = -f20 * m_A108; + m_A109 += m_A64 * f20_27; + m_A111 += m_A65 * f20_27; + RHS27 += f20_27 * RHS20; + const double f21 = 1.0 / m_A66; + const double f21_24 = -f21 * m_A81; + m_A82 += m_A67 * f21_24; + m_A83 += m_A68 * f21_24; + RHS24 += f21_24 * RHS21; + const double f21_25 = -f21 * m_A88; + m_A89 += m_A67 * f21_25; + m_A90 += m_A68 * f21_25; + RHS25 += f21_25 * RHS21; + const double f22 = 1.0 / m_A71; + const double f22_26 = -f22 * m_A99; + m_A103 += m_A72 * f22_26; + RHS26 += f22_26 * RHS22; + const double f23 = 1.0 / m_A76; + const double f23_26 = -f23 * m_A100; + m_A103 += m_A77 * f23_26; + m_A104 += m_A78 * f23_26; + RHS26 += f23_26 * RHS23; + const double f23_27 = -f23 * m_A109; + m_A110 += m_A77 * f23_27; + m_A111 += m_A78 * f23_27; + RHS27 += f23_27 * RHS23; + const double f24 = 1.0 / m_A82; + const double f24_25 = -f24 * m_A89; + m_A90 += m_A83 * f24_25; + m_A91 += m_A84 * f24_25; + RHS25 += f24_25 * RHS24; + const double f24_26 = -f24 * m_A101; + m_A102 += m_A83 * f24_26; + m_A103 += m_A84 * f24_26; + RHS26 += f24_26 * RHS24; + const double f25 = 1.0 / m_A90; + const double f25_26 = -f25 * m_A102; + m_A103 += m_A91 * f25_26; + RHS26 += f25_26 * RHS25; + const double f26 = 1.0 / m_A103; + const double f26_27 = -f26 * m_A110; + m_A111 += m_A104 * f26_27; + RHS27 += f26_27 * RHS26; + V[27] = RHS27 / m_A111; + double tmp26 = 0.0; + tmp26 += m_A104 * V[27]; + V[26] = (RHS26 - tmp26) / m_A103; + double tmp25 = 0.0; + tmp25 += m_A91 * V[26]; + V[25] = (RHS25 - tmp25) / m_A90; + double tmp24 = 0.0; + tmp24 += m_A83 * V[25]; + tmp24 += m_A84 * V[26]; + V[24] = (RHS24 - tmp24) / m_A82; + double tmp23 = 0.0; + tmp23 += m_A77 * V[26]; + tmp23 += m_A78 * V[27]; + V[23] = (RHS23 - tmp23) / m_A76; + double tmp22 = 0.0; + tmp22 += m_A72 * V[26]; + V[22] = (RHS22 - tmp22) / m_A71; + double tmp21 = 0.0; + tmp21 += m_A67 * V[24]; + tmp21 += m_A68 * V[25]; + V[21] = (RHS21 - tmp21) / m_A66; + double tmp20 = 0.0; + tmp20 += m_A64 * V[23]; + tmp20 += m_A65 * V[27]; + V[20] = (RHS20 - tmp20) / m_A63; + double tmp19 = 0.0; + tmp19 += m_A61 * V[24]; + tmp19 += m_A62 * V[25]; + V[19] = (RHS19 - tmp19) / m_A60; + double tmp18 = 0.0; + tmp18 += m_A57 * V[23]; + tmp18 += m_A58 * V[27]; + V[18] = (RHS18 - tmp18) / m_A56; + double tmp17 = 0.0; + tmp17 += m_A53 * V[22]; + tmp17 += m_A54 * V[26]; + V[17] = (RHS17 - tmp17) / m_A52; + double tmp16 = 0.0; + tmp16 += m_A51 * V[22]; + V[16] = (RHS16 - tmp16) / m_A50; + double tmp15 = 0.0; + tmp15 += m_A48 * V[16]; + V[15] = (RHS15 - tmp15) / m_A47; + double tmp14 = 0.0; + tmp14 += m_A45 * V[25]; + V[14] = (RHS14 - tmp14) / m_A44; + double tmp13 = 0.0; + tmp13 += m_A41 * V[27]; + V[13] = (RHS13 - tmp13) / m_A40; + double tmp12 = 0.0; + tmp12 += m_A36 * V[14]; + tmp12 += m_A37 * V[25]; + V[12] = (RHS12 - tmp12) / m_A35; + double tmp11 = 0.0; + tmp11 += m_A33 * V[13]; + tmp11 += m_A34 * V[27]; + V[11] = (RHS11 - tmp11) / m_A32; + double tmp10 = 0.0; + tmp10 += m_A30 * V[24]; + tmp10 += m_A31 * V[26]; + V[10] = (RHS10 - tmp10) / m_A29; + double tmp9 = 0.0; + tmp9 += m_A26 * V[23]; + tmp9 += m_A27 * V[26]; + V[9] = (RHS9 - tmp9) / m_A25; + double tmp8 = 0.0; + tmp8 += m_A22 * V[10]; + tmp8 += m_A23 * V[26]; + V[8] = (RHS8 - tmp8) / m_A21; + double tmp7 = 0.0; + tmp7 += m_A18 * V[9]; + tmp7 += m_A19 * V[26]; + V[7] = (RHS7 - tmp7) / m_A17; + double tmp6 = 0.0; + tmp6 += m_A14 * V[8]; + tmp6 += m_A15 * V[26]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A11 * V[7]; + tmp5 += m_A12 * V[26]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[19]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[18]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[14]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[13]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[15]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// ripoff +static void nl_gcr_76c9e236353caed1_35_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A3 += go[0]; + m_A2 += go[1]; + m_A1 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A10 += go[12]; + m_A9 += go[13]; + m_A8 += go[14]; + m_A7 += go[15]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 -= go[16] * *cnV[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A12 += go[17]; + m_A11 += go[18]; + double RHS3 = Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 += Idr[20]; + RHS3 -= go[19] * *cnV[19]; + RHS3 -= go[20] * *cnV[20]; + m_A20 += gt[21]; + m_A20 += gt[22]; + m_A20 += gt[23]; + m_A20 += gt[24]; + m_A18 += go[21]; + m_A17 += go[22]; + double RHS4 = Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + m_A27 += gt[25]; + m_A27 += gt[26]; + m_A27 += gt[27]; + m_A27 += gt[28]; + m_A24 += go[25]; + m_A23 += go[26]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 -= go[27] * *cnV[27]; + RHS5 -= go[28] * *cnV[28]; + m_A34 += gt[29]; + m_A34 += gt[30]; + m_A34 += gt[31]; + m_A34 += gt[32]; + m_A34 += gt[33]; + m_A34 += gt[34]; + m_A29 += go[29]; + m_A30 += go[30]; + double RHS6 = Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 += Idr[34]; + RHS6 -= go[31] * *cnV[31]; + RHS6 -= go[32] * *cnV[32]; + RHS6 -= go[33] * *cnV[33]; + RHS6 -= go[34] * *cnV[34]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A11; + m_A13 += m_A1 * f0_3; + m_A14 += m_A2 * f0_3; + m_A15 += m_A3 * f0_3; + RHS3 += f0_3 * RHS0; + const double f0_4 = -f0 * m_A17; + m_A19 += m_A1 * f0_4; + m_A20 += m_A2 * f0_4; + m_A21 += m_A3 * f0_4; + RHS4 += f0_4 * RHS0; + const double f0_5 = -f0 * m_A23; + m_A25 += m_A1 * f0_5; + m_A26 += m_A2 * f0_5; + m_A27 += m_A3 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A4; + const double f1_6 = -f1 * m_A29; + m_A30 += m_A5 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A12; + m_A13 += m_A7 * f2_3; + m_A14 += m_A8 * f2_3; + m_A15 += m_A9 * f2_3; + m_A16 += m_A10 * f2_3; + RHS3 += f2_3 * RHS2; + const double f2_4 = -f2 * m_A18; + m_A19 += m_A7 * f2_4; + m_A20 += m_A8 * f2_4; + m_A21 += m_A9 * f2_4; + m_A22 += m_A10 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A24; + m_A25 += m_A7 * f2_5; + m_A26 += m_A8 * f2_5; + m_A27 += m_A9 * f2_5; + m_A28 += m_A10 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_6 = -f2 * m_A30; + m_A31 += m_A7 * f2_6; + m_A32 += m_A8 * f2_6; + m_A33 += m_A9 * f2_6; + m_A34 += m_A10 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A13; + const double f3_4 = -f3 * m_A19; + m_A20 += m_A14 * f3_4; + m_A21 += m_A15 * f3_4; + m_A22 += m_A16 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A25; + m_A26 += m_A14 * f3_5; + m_A27 += m_A15 * f3_5; + m_A28 += m_A16 * f3_5; + RHS5 += f3_5 * RHS3; + const double f3_6 = -f3 * m_A31; + m_A32 += m_A14 * f3_6; + m_A33 += m_A15 * f3_6; + m_A34 += m_A16 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A20; + const double f4_5 = -f4 * m_A26; + m_A27 += m_A21 * f4_5; + m_A28 += m_A22 * f4_5; + RHS5 += f4_5 * RHS4; + const double f4_6 = -f4 * m_A32; + m_A33 += m_A21 * f4_6; + m_A34 += m_A22 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A27; + const double f5_6 = -f5 * m_A33; + m_A34 += m_A28 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A34; + double tmp5 = 0.0; + tmp5 += m_A28 * V[6]; + V[5] = (RHS5 - tmp5) / m_A27; + double tmp4 = 0.0; + tmp4 += m_A21 * V[5]; + tmp4 += m_A22 * V[6]; + V[4] = (RHS4 - tmp4) / m_A20; + double tmp3 = 0.0; + tmp3 += m_A14 * V[4]; + tmp3 += m_A15 * V[5]; + tmp3 += m_A16 * V[6]; + V[3] = (RHS3 - tmp3) / m_A13; + double tmp2 = 0.0; + tmp2 += m_A7 * V[3]; + tmp2 += m_A8 * V[4]; + tmp2 += m_A9 * V[5]; + tmp2 += m_A10 * V[6]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A5 * V[2]; + V[1] = (RHS1 - tmp1) / m_A4; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + tmp0 += m_A2 * V[4]; + tmp0 += m_A3 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// gamemachine +static void nl_gcr_782d79b5cbe953b1_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A5 += go[7]; + m_A5 += go[8]; + m_A4 += go[9]; + m_A4 += go[10]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// barrier +static void nl_gcr_79e756c5892cf87d_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[5] * *cnV[5]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A8 += go[11]; + m_A9 += go[12]; + m_A7 += go[13]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A11 += go[16]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A12 += go[19]; + m_A13 += go[20]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A17 += go[21]; + m_A19 += go[22]; + double RHS6 = Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 -= go[23] * *cnV[23]; + m_A23 += gt[24]; + m_A23 += gt[25]; + m_A21 += go[24]; + m_A20 += go[25]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + m_A30 += gt[26]; + m_A30 += gt[27]; + m_A30 += gt[28]; + m_A30 += gt[29]; + m_A30 += gt[30]; + m_A25 += go[26]; + m_A26 += go[27]; + m_A28 += go[28]; + double RHS8 = Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A12; + m_A14 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A17; + m_A18 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_8 = -f2 * m_A25; + m_A28 += m_A5 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_5 = -f3 * m_A13; + m_A14 += m_A7 * f3_5; + m_A15 += m_A8 * f3_5; + m_A16 += m_A9 * f3_5; + RHS5 += f3_5 * RHS3; + const double f3_7 = -f3 * m_A20; + m_A22 += m_A7 * f3_7; + m_A23 += m_A8 * f3_7; + m_A24 += m_A9 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_8 = -f3 * m_A26; + m_A27 += m_A7 * f3_8; + m_A29 += m_A8 * f3_8; + m_A30 += m_A9 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_7 = -f4 * m_A21; + m_A23 += m_A11 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_7 = -f5 * m_A22; + m_A23 += m_A15 * f5_7; + m_A24 += m_A16 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A27; + m_A29 += m_A15 * f5_8; + m_A30 += m_A16 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A18; + const double f6_8 = -f6 * m_A28; + m_A30 += m_A19 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_8 = -f7 * m_A29; + m_A30 += m_A24 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A30; + double tmp7 = 0.0; + tmp7 += m_A24 * V[8]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A19 * V[8]; + V[6] = (RHS6 - tmp6) / m_A18; + double tmp5 = 0.0; + tmp5 += m_A15 * V[7]; + tmp5 += m_A16 * V[8]; + V[5] = (RHS5 - tmp5) / m_A14; + double tmp4 = 0.0; + tmp4 += m_A11 * V[7]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A7 * V[5]; + tmp3 += m_A8 * V[7]; + tmp3 += m_A9 * V[8]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[6]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_7a42b97d838ca073_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A5 += go[7]; + m_A4 += go[8]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[9] * *cnV[9]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_7aee4423e3fdbfda_128_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A7 += go[4]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A9 += go[8]; + m_A10 += go[9]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 -= go[10] * *cnV[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A12 += go[11]; + double RHS4 = Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + m_A13 += gt[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A16 += go[13]; + m_A17 += go[14]; + m_A15 += go[15]; + m_A14 += go[16]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 -= go[17] * *cnV[17]; + RHS5 -= go[18] * *cnV[18]; + RHS5 -= go[19] * *cnV[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A21 += go[20]; + m_A22 += go[21]; + m_A19 += go[22]; + m_A20 += go[23]; + double RHS6 = Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + m_A23 += gt[27]; + m_A23 += gt[28]; + m_A23 += gt[29]; + m_A24 += go[27]; + m_A25 += go[28]; + double RHS7 = Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 -= go[29] * *cnV[29]; + m_A26 += gt[30]; + m_A26 += gt[31]; + m_A27 += go[30]; + double RHS8 = Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[31] * *cnV[31]; + m_A28 += gt[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A29 += go[32]; + m_A30 += go[33]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 -= go[34] * *cnV[34]; + m_A31 += gt[35]; + m_A31 += gt[36]; + m_A31 += gt[37]; + m_A32 += go[35]; + double RHS10 = Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 -= go[36] * *cnV[36]; + RHS10 -= go[37] * *cnV[37]; + m_A33 += gt[38]; + m_A33 += gt[39]; + m_A33 += gt[40]; + m_A35 += go[38]; + m_A34 += go[39]; + double RHS11 = Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 -= go[40] * *cnV[40]; + m_A38 += gt[41]; + m_A38 += gt[42]; + m_A38 += gt[43]; + m_A38 += gt[44]; + m_A37 += go[41]; + m_A36 += go[42]; + double RHS12 = Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + m_A44 += gt[45]; + m_A44 += gt[46]; + m_A44 += gt[47]; + m_A44 += gt[48]; + m_A42 += go[45]; + m_A41 += go[46]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 += Idr[48]; + RHS13 -= go[47] * *cnV[47]; + RHS13 -= go[48] * *cnV[48]; + m_A50 += gt[49]; + m_A50 += gt[50]; + m_A50 += gt[51]; + m_A49 += go[49]; + m_A51 += go[50]; + double RHS14 = Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 -= go[51] * *cnV[51]; + m_A53 += gt[52]; + m_A53 += gt[53]; + m_A53 += gt[54]; + m_A53 += gt[55]; + m_A52 += go[52]; + m_A54 += go[53]; + double RHS15 = Idr[52]; + RHS15 += Idr[53]; + RHS15 += Idr[54]; + RHS15 += Idr[55]; + RHS15 -= go[54] * *cnV[54]; + RHS15 -= go[55] * *cnV[55]; + m_A59 += gt[56]; + m_A59 += gt[57]; + m_A59 += gt[58]; + m_A59 += gt[59]; + m_A59 += gt[60]; + m_A59 += gt[61]; + m_A62 += go[56]; + m_A57 += go[57]; + m_A56 += go[58]; + m_A55 += go[59]; + m_A61 += go[60]; + double RHS16 = Idr[56]; + RHS16 += Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + RHS16 -= go[61] * *cnV[61]; + m_A66 += gt[62]; + m_A66 += gt[63]; + m_A66 += gt[64]; + m_A66 += gt[65]; + m_A65 += go[62]; + m_A64 += go[63]; + m_A67 += go[64]; + double RHS17 = Idr[62]; + RHS17 += Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + RHS17 -= go[65] * *cnV[65]; + m_A73 += gt[66]; + m_A73 += gt[67]; + m_A73 += gt[68]; + m_A73 += gt[69]; + m_A76 += go[66]; + m_A69 += go[67]; + m_A68 += go[68]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 -= go[69] * *cnV[69]; + m_A79 += gt[70]; + m_A79 += gt[71]; + m_A78 += go[70]; + double RHS19 = Idr[70]; + RHS19 += Idr[71]; + RHS19 -= go[71] * *cnV[71]; + m_A83 += gt[72]; + m_A83 += gt[73]; + m_A83 += gt[74]; + m_A82 += go[72]; + m_A81 += go[73]; + double RHS20 = Idr[72]; + RHS20 += Idr[73]; + RHS20 += Idr[74]; + RHS20 -= go[74] * *cnV[74]; + m_A87 += gt[75]; + m_A87 += gt[76]; + m_A87 += gt[77]; + m_A87 += gt[78]; + m_A87 += gt[79]; + m_A87 += gt[80]; + m_A87 += gt[81]; + m_A88 += go[75]; + m_A85 += go[76]; + double RHS21 = Idr[75]; + RHS21 += Idr[76]; + RHS21 += Idr[77]; + RHS21 += Idr[78]; + RHS21 += Idr[79]; + RHS21 += Idr[80]; + RHS21 += Idr[81]; + RHS21 -= go[77] * *cnV[77]; + RHS21 -= go[78] * *cnV[78]; + RHS21 -= go[79] * *cnV[79]; + RHS21 -= go[80] * *cnV[80]; + RHS21 -= go[81] * *cnV[81]; + m_A95 += gt[82]; + m_A95 += gt[83]; + m_A95 += gt[84]; + m_A95 += gt[85]; + m_A90 += go[82]; + m_A89 += go[83]; + m_A92 += go[84]; + m_A91 += go[85]; + double RHS22 = Idr[82]; + RHS22 += Idr[83]; + RHS22 += Idr[84]; + RHS22 += Idr[85]; + m_A106 += gt[86]; + m_A106 += gt[87]; + m_A106 += gt[88]; + m_A106 += gt[89]; + m_A106 += gt[90]; + m_A106 += gt[91]; + m_A106 += gt[92]; + m_A106 += gt[93]; + m_A102 += go[86]; + m_A100 += go[87]; + m_A108 += go[88]; + m_A99 += go[89]; + m_A103 += go[90]; + double RHS23 = Idr[86]; + RHS23 += Idr[87]; + RHS23 += Idr[88]; + RHS23 += Idr[89]; + RHS23 += Idr[90]; + RHS23 += Idr[91]; + RHS23 += Idr[92]; + RHS23 += Idr[93]; + RHS23 -= go[91] * *cnV[91]; + RHS23 -= go[92] * *cnV[92]; + RHS23 -= go[93] * *cnV[93]; + m_A115 += gt[94]; + m_A115 += gt[95]; + m_A115 += gt[96]; + m_A115 += gt[97]; + m_A115 += gt[98]; + m_A112 += go[94]; + m_A109 += go[95]; + m_A110 += go[96]; + double RHS24 = Idr[94]; + RHS24 += Idr[95]; + RHS24 += Idr[96]; + RHS24 += Idr[97]; + RHS24 += Idr[98]; + RHS24 -= go[97] * *cnV[97]; + RHS24 -= go[98] * *cnV[98]; + m_A127 += gt[99]; + m_A127 += gt[100]; + m_A127 += gt[101]; + m_A127 += gt[102]; + m_A127 += gt[103]; + m_A127 += gt[104]; + m_A122 += go[99]; + m_A125 += go[100]; + m_A118 += go[101]; + m_A119 += go[102]; + m_A117 += go[103]; + double RHS25 = Idr[99]; + RHS25 += Idr[100]; + RHS25 += Idr[101]; + RHS25 += Idr[102]; + RHS25 += Idr[103]; + RHS25 += Idr[104]; + RHS25 -= go[104] * *cnV[104]; + const double f0 = 1.0 / m_A0; + const double f0_12 = -f0 * m_A36; + m_A38 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_14 = -f1 * m_A49; + m_A50 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_12 = -f2 * m_A37; + m_A38 += m_A5 * f2_12; + m_A39 += m_A6 * f2_12; + m_A40 += m_A7 * f2_12; + RHS12 += f2_12 * RHS2; + const double f2_13 = -f2 * m_A41; + m_A43 += m_A5 * f2_13; + m_A44 += m_A6 * f2_13; + m_A46 += m_A7 * f2_13; + RHS13 += f2_13 * RHS2; + const double f2_18 = -f2 * m_A68; + m_A70 += m_A5 * f2_18; + m_A71 += m_A6 * f2_18; + m_A73 += m_A7 * f2_18; + RHS18 += f2_18 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_16 = -f3 * m_A55; + m_A59 += m_A9 * f3_16; + m_A61 += m_A10 * f3_16; + RHS16 += f3_16 * RHS3; + const double f3_22 = -f3 * m_A89; + m_A92 += m_A9 * f3_22; + m_A95 += m_A10 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_15 = -f4 * m_A52; + m_A53 += m_A12 * f4_15; + RHS15 += f4_15 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_13 = -f5 * m_A42; + m_A44 += m_A14 * f5_13; + m_A45 += m_A15 * f5_13; + m_A47 += m_A16 * f5_13; + m_A48 += m_A17 * f5_13; + RHS13 += f5_13 * RHS5; + const double f5_16 = -f5 * m_A56; + m_A58 += m_A14 * f5_16; + m_A59 += m_A15 * f5_16; + m_A62 += m_A16 * f5_16; + m_A63 += m_A17 * f5_16; + RHS16 += f5_16 * RHS5; + const double f5_23 = -f5 * m_A99; + m_A101 += m_A14 * f5_23; + m_A103 += m_A15 * f5_23; + m_A106 += m_A16 * f5_23; + m_A108 += m_A17 * f5_23; + RHS23 += f5_23 * RHS5; + const double f5_25 = -f5 * m_A117; + m_A120 += m_A14 * f5_25; + m_A121 += m_A15 * f5_25; + m_A125 += m_A16 * f5_25; + m_A127 += m_A17 * f5_25; + RHS25 += f5_25 * RHS5; + const double f6 = 1.0 / m_A18; + const double f6_16 = -f6 * m_A57; + m_A59 += m_A19 * f6_16; + m_A60 += m_A20 * f6_16; + m_A62 += m_A21 * f6_16; + m_A63 += m_A22 * f6_16; + RHS16 += f6_16 * RHS6; + const double f6_18 = -f6 * m_A69; + m_A72 += m_A19 * f6_18; + m_A73 += m_A20 * f6_18; + m_A75 += m_A21 * f6_18; + m_A77 += m_A22 * f6_18; + RHS18 += f6_18 * RHS6; + const double f6_23 = -f6 * m_A100; + m_A103 += m_A19 * f6_23; + m_A104 += m_A20 * f6_23; + m_A106 += m_A21 * f6_23; + m_A108 += m_A22 * f6_23; + RHS23 += f6_23 * RHS6; + const double f6_25 = -f6 * m_A118; + m_A121 += m_A19 * f6_25; + m_A123 += m_A20 * f6_25; + m_A125 += m_A21 * f6_25; + m_A127 += m_A22 * f6_25; + RHS25 += f6_25 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_17 = -f7 * m_A64; + m_A66 += m_A24 * f7_17; + m_A67 += m_A25 * f7_17; + RHS17 += f7_17 * RHS7; + const double f7_25 = -f7 * m_A119; + m_A122 += m_A24 * f7_25; + m_A127 += m_A25 * f7_25; + RHS25 += f7_25 * RHS7; + const double f8 = 1.0 / m_A26; + const double f8_17 = -f8 * m_A65; + m_A66 += m_A27 * f8_17; + RHS17 += f8_17 * RHS8; + const double f9 = 1.0 / m_A28; + const double f9_19 = -f9 * m_A78; + m_A79 += m_A29 * f9_19; + m_A80 += m_A30 * f9_19; + RHS19 += f9_19 * RHS9; + const double f9_22 = -f9 * m_A90; + m_A94 += m_A29 * f9_22; + m_A95 += m_A30 * f9_22; + RHS22 += f9_22 * RHS9; + const double f10 = 1.0 / m_A31; + const double f10_20 = -f10 * m_A81; + m_A83 += m_A32 * f10_20; + RHS20 += f10_20 * RHS10; + const double f11 = 1.0 / m_A33; + const double f11_20 = -f11 * m_A82; + m_A83 += m_A34 * f11_20; + m_A84 += m_A35 * f11_20; + RHS20 += f11_20 * RHS11; + const double f11_21 = -f11 * m_A85; + m_A86 += m_A34 * f11_21; + m_A88 += m_A35 * f11_21; + RHS21 += f11_21 * RHS11; + const double f11_24 = -f11 * m_A109; + m_A111 += m_A34 * f11_24; + m_A115 += m_A35 * f11_24; + RHS24 += f11_24 * RHS11; + const double f12 = 1.0 / m_A38; + const double f12_13 = -f12 * m_A43; + m_A44 += m_A39 * f12_13; + m_A46 += m_A40 * f12_13; + RHS13 += f12_13 * RHS12; + const double f12_18 = -f12 * m_A70; + m_A71 += m_A39 * f12_18; + m_A73 += m_A40 * f12_18; + RHS18 += f12_18 * RHS12; + const double f13 = 1.0 / m_A44; + const double f13_16 = -f13 * m_A58; + m_A59 += m_A45 * f13_16; + m_A60 += m_A46 * f13_16; + m_A62 += m_A47 * f13_16; + m_A63 += m_A48 * f13_16; + RHS16 += f13_16 * RHS13; + const double f13_18 = -f13 * m_A71; + m_A72 += m_A45 * f13_18; + m_A73 += m_A46 * f13_18; + m_A75 += m_A47 * f13_18; + m_A77 += m_A48 * f13_18; + RHS18 += f13_18 * RHS13; + const double f13_23 = -f13 * m_A101; + m_A103 += m_A45 * f13_23; + m_A104 += m_A46 * f13_23; + m_A106 += m_A47 * f13_23; + m_A108 += m_A48 * f13_23; + RHS23 += f13_23 * RHS13; + const double f13_25 = -f13 * m_A120; + m_A121 += m_A45 * f13_25; + m_A123 += m_A46 * f13_25; + m_A125 += m_A47 * f13_25; + m_A127 += m_A48 * f13_25; + RHS25 += f13_25 * RHS13; + const double f14 = 1.0 / m_A50; + const double f14_22 = -f14 * m_A91; + m_A95 += m_A51 * f14_22; + RHS22 += f14_22 * RHS14; + const double f15 = 1.0 / m_A53; + const double f15_23 = -f15 * m_A102; + m_A106 += m_A54 * f15_23; + RHS23 += f15_23 * RHS15; + const double f16 = 1.0 / m_A59; + const double f16_18 = -f16 * m_A72; + m_A73 += m_A60 * f16_18; + m_A74 += m_A61 * f16_18; + m_A75 += m_A62 * f16_18; + m_A77 += m_A63 * f16_18; + RHS18 += f16_18 * RHS16; + const double f16_22 = -f16 * m_A92; + m_A93 += m_A60 * f16_22; + m_A95 += m_A61 * f16_22; + m_A96 += m_A62 * f16_22; + m_A98 += m_A63 * f16_22; + RHS22 += f16_22 * RHS16; + const double f16_23 = -f16 * m_A103; + m_A104 += m_A60 * f16_23; + m_A105 += m_A61 * f16_23; + m_A106 += m_A62 * f16_23; + m_A108 += m_A63 * f16_23; + RHS23 += f16_23 * RHS16; + const double f16_25 = -f16 * m_A121; + m_A123 += m_A60 * f16_25; + m_A124 += m_A61 * f16_25; + m_A125 += m_A62 * f16_25; + m_A127 += m_A63 * f16_25; + RHS25 += f16_25 * RHS16; + const double f17 = 1.0 / m_A66; + const double f17_25 = -f17 * m_A122; + m_A127 += m_A67 * f17_25; + RHS25 += f17_25 * RHS17; + const double f18 = 1.0 / m_A73; + const double f18_22 = -f18 * m_A93; + m_A95 += m_A74 * f18_22; + m_A96 += m_A75 * f18_22; + m_A97 += m_A76 * f18_22; + m_A98 += m_A77 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_23 = -f18 * m_A104; + m_A105 += m_A74 * f18_23; + m_A106 += m_A75 * f18_23; + m_A107 += m_A76 * f18_23; + m_A108 += m_A77 * f18_23; + RHS23 += f18_23 * RHS18; + const double f18_24 = -f18 * m_A110; + m_A113 += m_A74 * f18_24; + m_A114 += m_A75 * f18_24; + m_A115 += m_A76 * f18_24; + m_A116 += m_A77 * f18_24; + RHS24 += f18_24 * RHS18; + const double f18_25 = -f18 * m_A123; + m_A124 += m_A74 * f18_25; + m_A125 += m_A75 * f18_25; + m_A126 += m_A76 * f18_25; + m_A127 += m_A77 * f18_25; + RHS25 += f18_25 * RHS18; + const double f19 = 1.0 / m_A79; + const double f19_22 = -f19 * m_A94; + m_A95 += m_A80 * f19_22; + RHS22 += f19_22 * RHS19; + const double f20 = 1.0 / m_A83; + const double f20_21 = -f20 * m_A86; + m_A88 += m_A84 * f20_21; + RHS21 += f20_21 * RHS20; + const double f20_24 = -f20 * m_A111; + m_A115 += m_A84 * f20_24; + RHS24 += f20_24 * RHS20; + const double f21 = 1.0 / m_A87; + const double f21_24 = -f21 * m_A112; + m_A115 += m_A88 * f21_24; + RHS24 += f21_24 * RHS21; + const double f22 = 1.0 / m_A95; + const double f22_23 = -f22 * m_A105; + m_A106 += m_A96 * f22_23; + m_A107 += m_A97 * f22_23; + m_A108 += m_A98 * f22_23; + RHS23 += f22_23 * RHS22; + const double f22_24 = -f22 * m_A113; + m_A114 += m_A96 * f22_24; + m_A115 += m_A97 * f22_24; + m_A116 += m_A98 * f22_24; + RHS24 += f22_24 * RHS22; + const double f22_25 = -f22 * m_A124; + m_A125 += m_A96 * f22_25; + m_A126 += m_A97 * f22_25; + m_A127 += m_A98 * f22_25; + RHS25 += f22_25 * RHS22; + const double f23 = 1.0 / m_A106; + const double f23_24 = -f23 * m_A114; + m_A115 += m_A107 * f23_24; + m_A116 += m_A108 * f23_24; + RHS24 += f23_24 * RHS23; + const double f23_25 = -f23 * m_A125; + m_A126 += m_A107 * f23_25; + m_A127 += m_A108 * f23_25; + RHS25 += f23_25 * RHS23; + const double f24 = 1.0 / m_A115; + const double f24_25 = -f24 * m_A126; + m_A127 += m_A116 * f24_25; + RHS25 += f24_25 * RHS24; + V[25] = RHS25 / m_A127; + double tmp24 = 0.0; + tmp24 += m_A116 * V[25]; + V[24] = (RHS24 - tmp24) / m_A115; + double tmp23 = 0.0; + tmp23 += m_A107 * V[24]; + tmp23 += m_A108 * V[25]; + V[23] = (RHS23 - tmp23) / m_A106; + double tmp22 = 0.0; + tmp22 += m_A96 * V[23]; + tmp22 += m_A97 * V[24]; + tmp22 += m_A98 * V[25]; + V[22] = (RHS22 - tmp22) / m_A95; + double tmp21 = 0.0; + tmp21 += m_A88 * V[24]; + V[21] = (RHS21 - tmp21) / m_A87; + double tmp20 = 0.0; + tmp20 += m_A84 * V[24]; + V[20] = (RHS20 - tmp20) / m_A83; + double tmp19 = 0.0; + tmp19 += m_A80 * V[22]; + V[19] = (RHS19 - tmp19) / m_A79; + double tmp18 = 0.0; + tmp18 += m_A74 * V[22]; + tmp18 += m_A75 * V[23]; + tmp18 += m_A76 * V[24]; + tmp18 += m_A77 * V[25]; + V[18] = (RHS18 - tmp18) / m_A73; + double tmp17 = 0.0; + tmp17 += m_A67 * V[25]; + V[17] = (RHS17 - tmp17) / m_A66; + double tmp16 = 0.0; + tmp16 += m_A60 * V[18]; + tmp16 += m_A61 * V[22]; + tmp16 += m_A62 * V[23]; + tmp16 += m_A63 * V[25]; + V[16] = (RHS16 - tmp16) / m_A59; + double tmp15 = 0.0; + tmp15 += m_A54 * V[23]; + V[15] = (RHS15 - tmp15) / m_A53; + double tmp14 = 0.0; + tmp14 += m_A51 * V[22]; + V[14] = (RHS14 - tmp14) / m_A50; + double tmp13 = 0.0; + tmp13 += m_A45 * V[16]; + tmp13 += m_A46 * V[18]; + tmp13 += m_A47 * V[23]; + tmp13 += m_A48 * V[25]; + V[13] = (RHS13 - tmp13) / m_A44; + double tmp12 = 0.0; + tmp12 += m_A39 * V[13]; + tmp12 += m_A40 * V[18]; + V[12] = (RHS12 - tmp12) / m_A38; + double tmp11 = 0.0; + tmp11 += m_A34 * V[20]; + tmp11 += m_A35 * V[24]; + V[11] = (RHS11 - tmp11) / m_A33; + double tmp10 = 0.0; + tmp10 += m_A32 * V[20]; + V[10] = (RHS10 - tmp10) / m_A31; + double tmp9 = 0.0; + tmp9 += m_A29 * V[19]; + tmp9 += m_A30 * V[22]; + V[9] = (RHS9 - tmp9) / m_A28; + double tmp8 = 0.0; + tmp8 += m_A27 * V[17]; + V[8] = (RHS8 - tmp8) / m_A26; + double tmp7 = 0.0; + tmp7 += m_A24 * V[17]; + tmp7 += m_A25 * V[25]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A19 * V[16]; + tmp6 += m_A20 * V[18]; + tmp6 += m_A21 * V[23]; + tmp6 += m_A22 * V[25]; + V[6] = (RHS6 - tmp6) / m_A18; + double tmp5 = 0.0; + tmp5 += m_A14 * V[13]; + tmp5 += m_A15 * V[16]; + tmp5 += m_A16 * V[23]; + tmp5 += m_A17 * V[25]; + V[5] = (RHS5 - tmp5) / m_A13; + double tmp4 = 0.0; + tmp4 += m_A12 * V[15]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A9 * V[16]; + tmp3 += m_A10 * V[22]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A5 * V[12]; + tmp2 += m_A6 * V[13]; + tmp2 += m_A7 * V[18]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[14]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[12]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// astrob +static void nl_gcr_7c86a9bc1c6aef4c_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A5 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// solarq +static void nl_gcr_7caaa135bff3d9f3_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A4 += go[2]; + m_A3 += go[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A6 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; + m_A9 += gt[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A8 += go[7]; + m_A7 += go[8]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A14 += gt[10]; + m_A14 += gt[11]; + m_A14 += gt[12]; + m_A12 += go[10]; + m_A11 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A7; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A3 * f1_3; + m_A10 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A11; + m_A13 += m_A3 * f1_4; + m_A14 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A14; + double tmp3 = 0.0; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[4]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// warrior +static void nl_gcr_8003d4625273fa4d_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A6 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A7 += go[8]; + m_A8 += go[9]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_8046625a0fe0959_21_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + m_A2 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A3 += gt[7]; + m_A3 += gt[8]; + m_A3 += gt[9]; + m_A5 += go[7]; + m_A4 += go[8]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[9] * *cnV[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[10]; + m_A8 += go[11]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A9 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A12 += go[15]; + m_A15 += go[16]; + m_A13 += go[17]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + m_A20 += gt[21]; + m_A20 += gt[22]; + m_A20 += gt[23]; + m_A17 += go[21]; + m_A16 += go[22]; + m_A19 += go[23]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A12; + m_A13 += m_A1 * f0_4; + m_A14 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_4 = -f1 * m_A13; + m_A14 += m_A4 * f1_4; + m_A15 += m_A5 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A16; + m_A19 += m_A4 * f1_5; + m_A20 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A7 * f2_3; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + const double f2_5 = -f2 * m_A17; + m_A18 += m_A7 * f2_5; + m_A20 += m_A8 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_5 = -f3 * m_A18; + m_A20 += m_A11 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A19; + m_A20 += m_A15 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A20; + double tmp4 = 0.0; + tmp4 += m_A15 * V[5]; + V[4] = (RHS4 - tmp4) / m_A14; + double tmp3 = 0.0; + tmp3 += m_A11 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; + double tmp2 = 0.0; + tmp2 += m_A7 * V[3]; + tmp2 += m_A8 * V[5]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A4 * V[4]; + tmp1 += m_A5 * V[5]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[1]; + tmp0 += m_A2 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// mario +static void nl_gcr_80b4b1e5cc58d303_29_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A8 += go[9]; + m_A7 += go[10]; + m_A7 += go[11]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[12] * *cnV[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A10 += go[13]; + double RHS4 = Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A12 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A14 += gt[24]; + m_A16 += go[18]; + m_A16 += go[19]; + m_A13 += go[20]; + m_A13 += go[21]; + m_A15 += go[22]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[23] * *cnV[23]; + RHS6 -= go[24] * *cnV[24]; + m_A22 += gt[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A20 += go[25]; + m_A21 += go[26]; + m_A19 += go[27]; + m_A18 += go[28]; + m_A17 += go[29]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 -= go[30] * *cnV[30]; + m_A28 += gt[31]; + m_A28 += gt[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A28 += gt[35]; + m_A28 += gt[36]; + m_A25 += go[31]; + m_A24 += go[32]; + m_A26 += go[33]; + m_A26 += go[34]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 -= go[35] * *cnV[35]; + RHS8 -= go[36] * *cnV[36]; + const double f0 = 1.0 / m_A0; + const double f0_7 = -f0 * m_A17; + m_A22 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A18; + m_A22 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_7 = -f2 * m_A19; + m_A22 += m_A5 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A13; + m_A14 += m_A7 * f3_6; + m_A16 += m_A8 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_8 = -f3 * m_A24; + m_A26 += m_A7 * f3_8; + m_A28 += m_A8 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_8 = -f4 * m_A25; + m_A28 += m_A10 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_7 = -f5 * m_A20; + m_A22 += m_A12 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_7 = -f6 * m_A21; + m_A22 += m_A15 * f6_7; + m_A23 += m_A16 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A26; + m_A27 += m_A15 * f6_8; + m_A28 += m_A16 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A22; + const double f7_8 = -f7 * m_A27; + m_A28 += m_A23 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A28; + double tmp7 = 0.0; + tmp7 += m_A23 * V[8]; + V[7] = (RHS7 - tmp7) / m_A22; + double tmp6 = 0.0; + tmp6 += m_A15 * V[7]; + tmp6 += m_A16 * V[8]; + V[6] = (RHS6 - tmp6) / m_A14; + double tmp5 = 0.0; + tmp5 += m_A12 * V[7]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A10 * V[8]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + tmp3 += m_A8 * V[8]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[7]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[7]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// elim +static void nl_gcr_81f40a54af2ca202_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A6 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A8 += go[9]; + m_A7 += go[10]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// sundance +static void nl_gcr_8446e63d7842f6a6_70_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[7] * *cnV[7]; + RHS3 -= go[8] * *cnV[8]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A10 += go[9]; + m_A9 += go[10]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A11 += gt[13]; + m_A12 += go[11]; + m_A13 += go[12]; + double RHS5 = Idr[11]; + RHS5 += Idr[12]; + RHS5 += Idr[13]; + RHS5 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A15 += go[14]; + double RHS6 = Idr[14]; + RHS6 += Idr[15]; + RHS6 += Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 -= go[15] * *cnV[15]; + RHS6 -= go[16] * *cnV[16]; + RHS6 -= go[17] * *cnV[17]; + RHS6 -= go[18] * *cnV[18]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + m_A16 += gt[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A18 += go[21]; + m_A18 += go[22]; + m_A17 += go[23]; + double RHS7 = Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[24] * *cnV[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A21 += go[25]; + m_A20 += go[26]; + double RHS8 = Idr[25]; + RHS8 += Idr[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A24 += go[27]; + m_A23 += go[28]; + double RHS9 = Idr[27]; + RHS9 += Idr[28]; + RHS9 += Idr[29]; + RHS9 -= go[29] * *cnV[29]; + m_A27 += gt[30]; + m_A27 += gt[31]; + m_A26 += go[30]; + m_A25 += go[31]; + double RHS10 = Idr[30]; + RHS10 += Idr[31]; + m_A31 += gt[32]; + m_A31 += gt[33]; + m_A31 += gt[34]; + m_A32 += go[32]; + m_A30 += go[33]; + double RHS11 = Idr[32]; + RHS11 += Idr[33]; + RHS11 += Idr[34]; + RHS11 -= go[34] * *cnV[34]; + m_A35 += gt[35]; + m_A35 += gt[36]; + m_A35 += gt[37]; + m_A34 += go[35]; + m_A33 += go[36]; + double RHS12 = Idr[35]; + RHS12 += Idr[36]; + RHS12 += Idr[37]; + RHS12 -= go[37] * *cnV[37]; + m_A40 += gt[38]; + m_A40 += gt[39]; + m_A40 += gt[40]; + m_A40 += gt[41]; + m_A43 += go[38]; + m_A38 += go[39]; + m_A37 += go[40]; + double RHS13 = Idr[38]; + RHS13 += Idr[39]; + RHS13 += Idr[40]; + RHS13 += Idr[41]; + RHS13 -= go[41] * *cnV[41]; + m_A50 += gt[42]; + m_A50 += gt[43]; + m_A50 += gt[44]; + m_A50 += gt[45]; + m_A50 += gt[46]; + m_A50 += gt[47]; + m_A44 += go[42]; + m_A46 += go[43]; + m_A45 += go[44]; + m_A45 += go[45]; + double RHS14 = Idr[42]; + RHS14 += Idr[43]; + RHS14 += Idr[44]; + RHS14 += Idr[45]; + RHS14 += Idr[46]; + RHS14 += Idr[47]; + RHS14 -= go[46] * *cnV[46]; + RHS14 -= go[47] * *cnV[47]; + m_A55 += gt[48]; + m_A55 += gt[49]; + m_A55 += gt[50]; + m_A54 += go[48]; + m_A53 += go[49]; + double RHS15 = Idr[48]; + RHS15 += Idr[49]; + RHS15 += Idr[50]; + RHS15 -= go[50] * *cnV[50]; + m_A62 += gt[51]; + m_A62 += gt[52]; + m_A62 += gt[53]; + m_A62 += gt[54]; + m_A57 += go[51]; + m_A58 += go[52]; + m_A59 += go[53]; + double RHS16 = Idr[51]; + RHS16 += Idr[52]; + RHS16 += Idr[53]; + RHS16 += Idr[54]; + RHS16 -= go[54] * *cnV[54]; + m_A69 += gt[55]; + m_A69 += gt[56]; + m_A64 += go[55]; + m_A65 += go[56]; + double RHS17 = Idr[55]; + RHS17 += Idr[56]; + const double f0 = 1.0 / m_A0; + const double f0_15 = -f0 * m_A53; + m_A55 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_12 = -f1 * m_A33; + m_A35 += m_A3 * f1_12; + RHS12 += f1_12 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_11 = -f2 * m_A30; + m_A31 += m_A5 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_16 = -f3 * m_A57; + m_A62 += m_A7 * f3_16; + RHS16 += f3_16 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_13 = -f4 * m_A37; + m_A40 += m_A9 * f4_13; + m_A42 += m_A10 * f4_13; + RHS13 += f4_13 * RHS4; + const double f4_16 = -f4 * m_A58; + m_A60 += m_A9 * f4_16; + m_A62 += m_A10 * f4_16; + RHS16 += f4_16 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_10 = -f5 * m_A25; + m_A27 += m_A12 * f5_10; + m_A28 += m_A13 * f5_10; + RHS10 += f5_10 * RHS5; + const double f5_13 = -f5 * m_A38; + m_A39 += m_A12 * f5_13; + m_A40 += m_A13 * f5_13; + RHS13 += f5_13 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_14 = -f6 * m_A44; + m_A45 += m_A15 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_10 = -f7 * m_A26; + m_A27 += m_A17 * f7_10; + m_A29 += m_A18 * f7_10; + RHS10 += f7_10 * RHS7; + const double f7_14 = -f7 * m_A45; + m_A47 += m_A17 * f7_14; + m_A50 += m_A18 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A19; + const double f8_12 = -f8 * m_A34; + m_A35 += m_A20 * f8_12; + m_A36 += m_A21 * f8_12; + RHS12 += f8_12 * RHS8; + const double f8_14 = -f8 * m_A46; + m_A48 += m_A20 * f8_14; + m_A50 += m_A21 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A22; + const double f9_15 = -f9 * m_A54; + m_A55 += m_A23 * f9_15; + m_A56 += m_A24 * f9_15; + RHS15 += f9_15 * RHS9; + const double f9_17 = -f9 * m_A64; + m_A67 += m_A23 * f9_17; + m_A69 += m_A24 * f9_17; + RHS17 += f9_17 * RHS9; + const double f10 = 1.0 / m_A27; + const double f10_13 = -f10 * m_A39; + m_A40 += m_A28 * f10_13; + m_A41 += m_A29 * f10_13; + RHS13 += f10_13 * RHS10; + const double f10_14 = -f10 * m_A47; + m_A49 += m_A28 * f10_14; + m_A50 += m_A29 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A31; + const double f11_16 = -f11 * m_A59; + m_A62 += m_A32 * f11_16; + RHS16 += f11_16 * RHS11; + const double f12 = 1.0 / m_A35; + const double f12_14 = -f12 * m_A48; + m_A50 += m_A36 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A40; + const double f13_14 = -f13 * m_A49; + m_A50 += m_A41 * f13_14; + m_A51 += m_A42 * f13_14; + m_A52 += m_A43 * f13_14; + RHS14 += f13_14 * RHS13; + const double f13_16 = -f13 * m_A60; + m_A61 += m_A41 * f13_16; + m_A62 += m_A42 * f13_16; + m_A63 += m_A43 * f13_16; + RHS16 += f13_16 * RHS13; + const double f13_17 = -f13 * m_A65; + m_A66 += m_A41 * f13_17; + m_A68 += m_A42 * f13_17; + m_A69 += m_A43 * f13_17; + RHS17 += f13_17 * RHS13; + const double f14 = 1.0 / m_A50; + const double f14_16 = -f14 * m_A61; + m_A62 += m_A51 * f14_16; + m_A63 += m_A52 * f14_16; + RHS16 += f14_16 * RHS14; + const double f14_17 = -f14 * m_A66; + m_A68 += m_A51 * f14_17; + m_A69 += m_A52 * f14_17; + RHS17 += f14_17 * RHS14; + const double f15 = 1.0 / m_A55; + const double f15_17 = -f15 * m_A67; + m_A69 += m_A56 * f15_17; + RHS17 += f15_17 * RHS15; + const double f16 = 1.0 / m_A62; + const double f16_17 = -f16 * m_A68; + m_A69 += m_A63 * f16_17; + RHS17 += f16_17 * RHS16; + V[17] = RHS17 / m_A69; + double tmp16 = 0.0; + tmp16 += m_A63 * V[17]; + V[16] = (RHS16 - tmp16) / m_A62; + double tmp15 = 0.0; + tmp15 += m_A56 * V[17]; + V[15] = (RHS15 - tmp15) / m_A55; + double tmp14 = 0.0; + tmp14 += m_A51 * V[16]; + tmp14 += m_A52 * V[17]; + V[14] = (RHS14 - tmp14) / m_A50; + double tmp13 = 0.0; + tmp13 += m_A41 * V[14]; + tmp13 += m_A42 * V[16]; + tmp13 += m_A43 * V[17]; + V[13] = (RHS13 - tmp13) / m_A40; + double tmp12 = 0.0; + tmp12 += m_A36 * V[14]; + V[12] = (RHS12 - tmp12) / m_A35; + double tmp11 = 0.0; + tmp11 += m_A32 * V[16]; + V[11] = (RHS11 - tmp11) / m_A31; + double tmp10 = 0.0; + tmp10 += m_A28 * V[13]; + tmp10 += m_A29 * V[14]; + V[10] = (RHS10 - tmp10) / m_A27; + double tmp9 = 0.0; + tmp9 += m_A23 * V[15]; + tmp9 += m_A24 * V[17]; + V[9] = (RHS9 - tmp9) / m_A22; + double tmp8 = 0.0; + tmp8 += m_A20 * V[12]; + tmp8 += m_A21 * V[14]; + V[8] = (RHS8 - tmp8) / m_A19; + double tmp7 = 0.0; + tmp7 += m_A17 * V[10]; + tmp7 += m_A18 * V[14]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A15 * V[7]; + V[6] = (RHS6 - tmp6) / m_A14; + double tmp5 = 0.0; + tmp5 += m_A12 * V[10]; + tmp5 += m_A13 * V[13]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A9 * V[13]; + tmp4 += m_A10 * V[16]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[16]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[11]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[12]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[15]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// dpatrol +static void nl_gcr_85652d3e3ada285a_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A8 += go[9]; + m_A7 += go[10]; + m_A6 += go[11]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A5 * V[3]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// zac1b11142 +static void nl_gcr_861d39f81d29d51_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + m_A7 += gt[5]; + m_A7 += gt[6]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + m_A11 += gt[7]; + m_A11 += gt[8]; + m_A9 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[8] * *cnV[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A7 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A6; + m_A7 += m_A3 * f1_2; + m_A8 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A8 * V[3]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// 280zzzap +static void nl_gcr_864a61c57bac9c38_123_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A9 += go[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A14 += go[24]; + m_A13 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[26]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[28]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 -= go[29] * *cnV[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A19 += gt[32]; + m_A19 += gt[33]; + m_A19 += gt[34]; + m_A19 += gt[35]; + m_A19 += gt[36]; + m_A20 += go[30]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 -= go[31] * *cnV[31]; + RHS9 -= go[32] * *cnV[32]; + RHS9 -= go[33] * *cnV[33]; + RHS9 -= go[34] * *cnV[34]; + RHS9 -= go[35] * *cnV[35]; + RHS9 -= go[36] * *cnV[36]; + m_A21 += gt[37]; + m_A21 += gt[38]; + m_A21 += gt[39]; + m_A22 += go[37]; + double RHS10 = Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 -= go[38] * *cnV[38]; + RHS10 -= go[39] * *cnV[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A23 += gt[42]; + m_A23 += gt[43]; + m_A24 += go[40]; + double RHS11 = Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + m_A25 += gt[44]; + m_A25 += gt[45]; + m_A25 += gt[46]; + m_A25 += gt[47]; + m_A25 += gt[48]; + m_A25 += gt[49]; + m_A25 += gt[50]; + m_A26 += go[44]; + double RHS12 = Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 += Idr[49]; + RHS12 += Idr[50]; + RHS12 -= go[45] * *cnV[45]; + RHS12 -= go[46] * *cnV[46]; + RHS12 -= go[47] * *cnV[47]; + RHS12 -= go[48] * *cnV[48]; + RHS12 -= go[49] * *cnV[49]; + RHS12 -= go[50] * *cnV[50]; + m_A27 += gt[51]; + m_A27 += gt[52]; + m_A28 += go[51]; + double RHS13 = Idr[51]; + RHS13 += Idr[52]; + RHS13 -= go[52] * *cnV[52]; + m_A29 += gt[53]; + m_A29 += gt[54]; + m_A30 += go[53]; + double RHS14 = Idr[53]; + RHS14 += Idr[54]; + RHS14 -= go[54] * *cnV[54]; + m_A31 += gt[55]; + m_A31 += gt[56]; + m_A32 += go[55]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + RHS15 -= go[56] * *cnV[56]; + m_A33 += gt[57]; + m_A33 += gt[58]; + m_A33 += gt[59]; + m_A33 += gt[60]; + m_A35 += go[57]; + m_A34 += go[58]; + double RHS16 = Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + RHS16 += Idr[60]; + RHS16 -= go[59] * *cnV[59]; + RHS16 -= go[60] * *cnV[60]; + m_A36 += gt[61]; + m_A36 += gt[62]; + m_A36 += gt[63]; + m_A37 += go[61]; + double RHS17 = Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; + RHS17 -= go[62] * *cnV[62]; + RHS17 -= go[63] * *cnV[63]; + m_A38 += gt[64]; + m_A38 += gt[65]; + m_A39 += go[64]; + double RHS18 = Idr[64]; + RHS18 += Idr[65]; + RHS18 -= go[65] * *cnV[65]; + m_A40 += gt[66]; + m_A40 += gt[67]; + m_A41 += go[66]; + double RHS19 = Idr[66]; + RHS19 += Idr[67]; + RHS19 -= go[67] * *cnV[67]; + m_A43 += gt[68]; + m_A43 += gt[69]; + m_A43 += gt[70]; + m_A43 += gt[71]; + m_A42 += go[68]; + double RHS20 = Idr[68]; + RHS20 += Idr[69]; + RHS20 += Idr[70]; + RHS20 += Idr[71]; + RHS20 -= go[69] * *cnV[69]; + RHS20 -= go[70] * *cnV[70]; + RHS20 -= go[71] * *cnV[71]; + m_A47 += gt[72]; + m_A47 += gt[73]; + m_A46 += go[72]; + m_A45 += go[73]; + double RHS21 = Idr[72]; + RHS21 += Idr[73]; + m_A51 += gt[74]; + m_A51 += gt[75]; + m_A49 += go[74]; + double RHS22 = Idr[74]; + RHS22 += Idr[75]; + RHS22 -= go[75] * *cnV[75]; + m_A54 += gt[76]; + m_A54 += gt[77]; + m_A54 += gt[78]; + m_A53 += go[76]; + m_A52 += go[77]; + double RHS23 = Idr[76]; + RHS23 += Idr[77]; + RHS23 += Idr[78]; + RHS23 -= go[78] * *cnV[78]; + m_A56 += gt[79]; + m_A56 += gt[80]; + m_A56 += gt[81]; + m_A56 += gt[82]; + m_A55 += go[79]; + m_A57 += go[80]; + double RHS24 = Idr[79]; + RHS24 += Idr[80]; + RHS24 += Idr[81]; + RHS24 += Idr[82]; + RHS24 -= go[81] * *cnV[81]; + RHS24 -= go[82] * *cnV[82]; + m_A59 += gt[83]; + m_A59 += gt[84]; + m_A59 += gt[85]; + m_A59 += gt[86]; + m_A58 += go[83]; + m_A60 += go[84]; + double RHS25 = Idr[83]; + RHS25 += Idr[84]; + RHS25 += Idr[85]; + RHS25 += Idr[86]; + RHS25 -= go[85] * *cnV[85]; + RHS25 -= go[86] * *cnV[86]; + m_A62 += gt[87]; + m_A62 += gt[88]; + m_A63 += go[87]; + m_A61 += go[88]; + double RHS26 = Idr[87]; + RHS26 += Idr[88]; + m_A67 += gt[89]; + m_A67 += gt[90]; + m_A67 += gt[91]; + m_A67 += gt[92]; + m_A67 += gt[93]; + m_A67 += gt[94]; + m_A64 += go[89]; + m_A65 += go[90]; + m_A69 += go[91]; + m_A68 += go[92]; + double RHS27 = Idr[89]; + RHS27 += Idr[90]; + RHS27 += Idr[91]; + RHS27 += Idr[92]; + RHS27 += Idr[93]; + RHS27 += Idr[94]; + RHS27 -= go[93] * *cnV[93]; + RHS27 -= go[94] * *cnV[94]; + m_A72 += gt[95]; + m_A72 += gt[96]; + m_A72 += gt[97]; + m_A72 += gt[98]; + m_A71 += go[95]; + m_A73 += go[96]; + double RHS28 = Idr[95]; + RHS28 += Idr[96]; + RHS28 += Idr[97]; + RHS28 += Idr[98]; + RHS28 -= go[97] * *cnV[97]; + RHS28 -= go[98] * *cnV[98]; + m_A76 += gt[99]; + m_A76 += gt[100]; + m_A76 += gt[101]; + m_A76 += gt[102]; + m_A77 += go[99]; + m_A78 += go[100]; + m_A74 += go[101]; + m_A75 += go[102]; + double RHS29 = Idr[99]; + RHS29 += Idr[100]; + RHS29 += Idr[101]; + RHS29 += Idr[102]; + m_A81 += gt[103]; + m_A81 += gt[104]; + m_A81 += gt[105]; + m_A80 += go[103]; + m_A79 += go[104]; + double RHS30 = Idr[103]; + RHS30 += Idr[104]; + RHS30 += Idr[105]; + RHS30 -= go[105] * *cnV[105]; + m_A84 += gt[106]; + m_A84 += gt[107]; + m_A82 += go[106]; + m_A83 += go[107]; + double RHS31 = Idr[106]; + RHS31 += Idr[107]; + m_A91 += gt[108]; + m_A91 += gt[109]; + m_A91 += gt[110]; + m_A91 += gt[111]; + m_A91 += gt[112]; + m_A86 += go[108]; + m_A90 += go[109]; + m_A88 += go[110]; + m_A85 += go[111]; + m_A87 += go[112]; + double RHS32 = Idr[108]; + RHS32 += Idr[109]; + RHS32 += Idr[110]; + RHS32 += Idr[111]; + RHS32 += Idr[112]; + m_A99 += gt[113]; + m_A99 += gt[114]; + m_A99 += gt[115]; + m_A99 += gt[116]; + m_A99 += gt[117]; + m_A96 += go[113]; + m_A100 += go[114]; + m_A97 += go[115]; + m_A94 += go[116]; + m_A95 += go[117]; + double RHS33 = Idr[113]; + RHS33 += Idr[114]; + RHS33 += Idr[115]; + RHS33 += Idr[116]; + RHS33 += Idr[117]; + m_A106 += gt[118]; + m_A106 += gt[119]; + m_A106 += gt[120]; + m_A106 += gt[121]; + m_A103 += go[118]; + m_A104 += go[119]; + m_A101 += go[120]; + m_A102 += go[121]; + double RHS34 = Idr[118]; + RHS34 += Idr[119]; + RHS34 += Idr[120]; + RHS34 += Idr[121]; + m_A111 += gt[122]; + m_A111 += gt[123]; + m_A111 += gt[124]; + m_A111 += gt[125]; + m_A108 += go[122]; + m_A109 += go[123]; + double RHS35 = Idr[122]; + RHS35 += Idr[123]; + RHS35 += Idr[124]; + RHS35 += Idr[125]; + RHS35 -= go[124] * *cnV[124]; + RHS35 -= go[125] * *cnV[125]; + m_A122 += gt[126]; + m_A122 += gt[127]; + m_A122 += gt[128]; + m_A122 += gt[129]; + m_A122 += gt[130]; + m_A122 += gt[131]; + m_A113 += go[126]; + m_A117 += go[127]; + m_A120 += go[128]; + m_A114 += go[129]; + double RHS36 = Idr[126]; + RHS36 += Idr[127]; + RHS36 += Idr[128]; + RHS36 += Idr[129]; + RHS36 += Idr[130]; + RHS36 += Idr[131]; + RHS36 -= go[130] * *cnV[130]; + RHS36 -= go[131] * *cnV[131]; + const double f0 = 1.0 / m_A0; + const double f0_24 = -f0 * m_A55; + m_A57 += m_A1 * f0_24; + RHS24 += f0_24 * RHS0; + const double f0_32 = -f0 * m_A85; + m_A91 += m_A1 * f0_32; + RHS32 += f0_32 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_32 = -f1 * m_A86; + m_A91 += m_A3 * f1_32; + RHS32 += f1_32 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_27 = -f2 * m_A64; + m_A66 += m_A5 * f2_27; + RHS27 += f2_27 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_25 = -f3 * m_A58; + m_A60 += m_A7 * f3_25; + RHS25 += f3_25 * RHS3; + const double f3_34 = -f3 * m_A101; + m_A106 += m_A7 * f3_34; + RHS34 += f3_34 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_20 = -f4 * m_A42; + m_A44 += m_A9 * f4_20; + RHS20 += f4_20 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_21 = -f5 * m_A45; + m_A47 += m_A11 * f5_21; + RHS21 += f5_21 * RHS5; + const double f5_32 = -f5 * m_A87; + m_A88 += m_A11 * f5_32; + RHS32 += f5_32 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_21 = -f6 * m_A46; + m_A47 += m_A13 * f6_21; + m_A48 += m_A14 * f6_21; + RHS21 += f6_21 * RHS6; + const double f6_22 = -f6 * m_A49; + m_A50 += m_A13 * f6_22; + m_A51 += m_A14 * f6_22; + RHS22 += f6_22 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_23 = -f7 * m_A52; + m_A54 += m_A16 * f7_23; + RHS23 += f7_23 * RHS7; + const double f7_34 = -f7 * m_A102; + m_A103 += m_A16 * f7_34; + RHS34 += f7_34 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_23 = -f8 * m_A53; + m_A54 += m_A18 * f8_23; + RHS23 += f8_23 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_36 = -f9 * m_A113; + m_A116 += m_A20 * f9_36; + RHS36 += f9_36 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_28 = -f10 * m_A71; + m_A73 += m_A22 * f10_28; + RHS28 += f10_28 * RHS10; + const double f10_33 = -f10 * m_A94; + m_A99 += m_A22 * f10_33; + RHS33 += f10_33 * RHS10; + const double f13 = 1.0 / m_A27; + const double f13_26 = -f13 * m_A61; + m_A62 += m_A28 * f13_26; + RHS26 += f13_26 * RHS13; + const double f13_33 = -f13 * m_A95; + m_A97 += m_A28 * f13_33; + RHS33 += f13_33 * RHS13; + const double f14 = 1.0 / m_A29; + const double f14_33 = -f14 * m_A96; + m_A99 += m_A30 * f14_33; + RHS33 += f14_33 * RHS14; + const double f15 = 1.0 / m_A31; + const double f15_31 = -f15 * m_A82; + m_A84 += m_A32 * f15_31; + RHS31 += f15_31 * RHS15; + const double f16 = 1.0 / m_A33; + const double f16_27 = -f16 * m_A65; + m_A67 += m_A34 * f16_27; + m_A70 += m_A35 * f16_27; + RHS27 += f16_27 * RHS16; + const double f16_36 = -f16 * m_A114; + m_A115 += m_A34 * f16_36; + m_A122 += m_A35 * f16_36; + RHS36 += f16_36 * RHS16; + const double f17 = 1.0 / m_A36; + const double f17_29 = -f17 * m_A74; + m_A76 += m_A37 * f17_29; + RHS29 += f17_29 * RHS17; + const double f17_35 = -f17 * m_A108; + m_A109 += m_A37 * f17_35; + RHS35 += f17_35 * RHS17; + const double f18 = 1.0 / m_A38; + const double f18_29 = -f18 * m_A75; + m_A77 += m_A39 * f18_29; + RHS29 += f18_29 * RHS18; + const double f18_30 = -f18 * m_A79; + m_A81 += m_A39 * f18_30; + RHS30 += f18_30 * RHS18; + const double f19 = 1.0 / m_A40; + const double f19_30 = -f19 * m_A80; + m_A81 += m_A41 * f19_30; + RHS30 += f19_30 * RHS19; + const double f21 = 1.0 / m_A47; + const double f21_22 = -f21 * m_A50; + m_A51 += m_A48 * f21_22; + RHS22 += f21_22 * RHS21; + const double f21_32 = -f21 * m_A88; + m_A89 += m_A48 * f21_32; + RHS32 += f21_32 * RHS21; + const double f22 = 1.0 / m_A51; + const double f22_32 = -f22 * m_A89; + RHS32 += f22_32 * RHS22; + const double f23 = 1.0 / m_A54; + const double f23_34 = -f23 * m_A103; + RHS34 += f23_34 * RHS23; + const double f24 = 1.0 / m_A56; + const double f24_27 = -f24 * m_A66; + m_A68 += m_A57 * f24_27; + RHS27 += f24_27 * RHS24; + const double f26 = 1.0 / m_A62; + const double f26_31 = -f26 * m_A83; + m_A84 += m_A63 * f26_31; + RHS31 += f26_31 * RHS26; + const double f26_33 = -f26 * m_A97; + m_A98 += m_A63 * f26_33; + RHS33 += f26_33 * RHS26; + const double f27 = 1.0 / m_A67; + const double f27_32 = -f27 * m_A90; + m_A91 += m_A68 * f27_32; + m_A92 += m_A69 * f27_32; + m_A93 += m_A70 * f27_32; + RHS32 += f27_32 * RHS27; + const double f27_34 = -f27 * m_A104; + m_A105 += m_A68 * f27_34; + m_A106 += m_A69 * f27_34; + m_A107 += m_A70 * f27_34; + RHS34 += f27_34 * RHS27; + const double f27_36 = -f27 * m_A115; + m_A119 += m_A68 * f27_36; + m_A121 += m_A69 * f27_36; + m_A122 += m_A70 * f27_36; + RHS36 += f27_36 * RHS27; + const double f28 = 1.0 / m_A72; + const double f28_36 = -f28 * m_A116; + m_A120 += m_A73 * f28_36; + RHS36 += f28_36 * RHS28; + const double f29 = 1.0 / m_A76; + const double f29_35 = -f29 * m_A109; + m_A110 += m_A77 * f29_35; + m_A112 += m_A78 * f29_35; + RHS35 += f29_35 * RHS29; + const double f29_36 = -f29 * m_A117; + m_A118 += m_A77 * f29_36; + m_A122 += m_A78 * f29_36; + RHS36 += f29_36 * RHS29; + const double f30 = 1.0 / m_A81; + const double f30_35 = -f30 * m_A110; + RHS35 += f30_35 * RHS30; + const double f30_36 = -f30 * m_A118; + RHS36 += f30_36 * RHS30; + const double f31 = 1.0 / m_A84; + const double f31_33 = -f31 * m_A98; + RHS33 += f31_33 * RHS31; + const double f32 = 1.0 / m_A91; + const double f32_34 = -f32 * m_A105; + m_A106 += m_A92 * f32_34; + m_A107 += m_A93 * f32_34; + RHS34 += f32_34 * RHS32; + const double f32_36 = -f32 * m_A119; + m_A121 += m_A92 * f32_36; + m_A122 += m_A93 * f32_36; + RHS36 += f32_36 * RHS32; + const double f33 = 1.0 / m_A99; + const double f33_36 = -f33 * m_A120; + m_A122 += m_A100 * f33_36; + RHS36 += f33_36 * RHS33; + const double f34 = 1.0 / m_A106; + const double f34_36 = -f34 * m_A121; + m_A122 += m_A107 * f34_36; + RHS36 += f34_36 * RHS34; + V[36] = RHS36 / m_A122; + double tmp35 = 0.0; + tmp35 += m_A112 * V[36]; + V[35] = (RHS35 - tmp35) / m_A111; + double tmp34 = 0.0; + tmp34 += m_A107 * V[36]; + V[34] = (RHS34 - tmp34) / m_A106; + double tmp33 = 0.0; + tmp33 += m_A100 * V[36]; + V[33] = (RHS33 - tmp33) / m_A99; + double tmp32 = 0.0; + tmp32 += m_A92 * V[34]; + tmp32 += m_A93 * V[36]; + V[32] = (RHS32 - tmp32) / m_A91; + double tmp31 = 0.0; + V[31] = (RHS31 - tmp31) / m_A84; + double tmp30 = 0.0; + V[30] = (RHS30 - tmp30) / m_A81; + double tmp29 = 0.0; + tmp29 += m_A77 * V[30]; + tmp29 += m_A78 * V[36]; + V[29] = (RHS29 - tmp29) / m_A76; + double tmp28 = 0.0; + tmp28 += m_A73 * V[33]; + V[28] = (RHS28 - tmp28) / m_A72; + double tmp27 = 0.0; + tmp27 += m_A68 * V[32]; + tmp27 += m_A69 * V[34]; + tmp27 += m_A70 * V[36]; + V[27] = (RHS27 - tmp27) / m_A67; + double tmp26 = 0.0; + tmp26 += m_A63 * V[31]; + V[26] = (RHS26 - tmp26) / m_A62; + double tmp25 = 0.0; + tmp25 += m_A60 * V[34]; + V[25] = (RHS25 - tmp25) / m_A59; + double tmp24 = 0.0; + tmp24 += m_A57 * V[32]; + V[24] = (RHS24 - tmp24) / m_A56; + double tmp23 = 0.0; + V[23] = (RHS23 - tmp23) / m_A54; + double tmp22 = 0.0; + V[22] = (RHS22 - tmp22) / m_A51; + double tmp21 = 0.0; + tmp21 += m_A48 * V[22]; + V[21] = (RHS21 - tmp21) / m_A47; + double tmp20 = 0.0; + tmp20 += m_A44 * V[25]; + V[20] = (RHS20 - tmp20) / m_A43; + double tmp19 = 0.0; + tmp19 += m_A41 * V[30]; + V[19] = (RHS19 - tmp19) / m_A40; + double tmp18 = 0.0; + tmp18 += m_A39 * V[30]; + V[18] = (RHS18 - tmp18) / m_A38; + double tmp17 = 0.0; + tmp17 += m_A37 * V[29]; + V[17] = (RHS17 - tmp17) / m_A36; + double tmp16 = 0.0; + tmp16 += m_A34 * V[27]; + tmp16 += m_A35 * V[36]; + V[16] = (RHS16 - tmp16) / m_A33; + double tmp15 = 0.0; + tmp15 += m_A32 * V[31]; + V[15] = (RHS15 - tmp15) / m_A31; + double tmp14 = 0.0; + tmp14 += m_A30 * V[33]; + V[14] = (RHS14 - tmp14) / m_A29; + double tmp13 = 0.0; + tmp13 += m_A28 * V[26]; + V[13] = (RHS13 - tmp13) / m_A27; + double tmp12 = 0.0; + tmp12 += m_A26 * V[35]; + V[12] = (RHS12 - tmp12) / m_A25; + double tmp11 = 0.0; + tmp11 += m_A24 * V[12]; + V[11] = (RHS11 - tmp11) / m_A23; + double tmp10 = 0.0; + tmp10 += m_A22 * V[33]; + V[10] = (RHS10 - tmp10) / m_A21; + double tmp9 = 0.0; + tmp9 += m_A20 * V[28]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A18 * V[23]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A16 * V[23]; + V[7] = (RHS7 - tmp7) / m_A15; + double tmp6 = 0.0; + tmp6 += m_A13 * V[21]; + tmp6 += m_A14 * V[22]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[21]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[25]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[34]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[24]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[32]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[32]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// zac1b11142 +static void nl_gcr_87cb2c78a2628efd_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A5 += go[7]; + m_A5 += go[8]; + m_A4 += go[9]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starcas +static void nl_gcr_88a8ef5f6bd43d48_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A4 += go[2]; + m_A3 += go[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A7 += gt[5]; + m_A7 += gt[6]; + m_A7 += gt[7]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A11 += gt[8]; + m_A11 += gt[9]; + m_A11 += gt[10]; + m_A9 += go[8]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 -= go[9] * *cnV[9]; + RHS3 -= go[10] * *cnV[10]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A7 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A6; + m_A7 += m_A3 * f1_2; + m_A8 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A8 * V[3]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_8a1565d1413f42f7_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A3 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A5 += go[8]; + m_A6 += go[9]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A8 += go[11]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A10 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[15] * *cnV[15]; + RHS4 -= go[16] * *cnV[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A12 += gt[22]; + m_A12 += gt[23]; + m_A14 += go[17]; + m_A13 += go[18]; + m_A11 += go[19]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A16 += gt[28]; + m_A18 += go[24]; + m_A15 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + RHS6 -= go[28] * *cnV[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A19 += go[29]; + m_A20 += go[30]; + m_A21 += go[31]; + double RHS7 = Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A26 += go[32]; + m_A25 += go[33]; + m_A28 += go[34]; + m_A27 += go[35]; + double RHS8 = Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 -= go[36] * *cnV[36]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A11; + m_A12 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A19; + m_A23 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A15; + m_A16 += m_A5 * f2_6; + m_A17 += m_A6 * f2_6; + RHS6 += f2_6 * RHS2; + const double f2_7 = -f2 * m_A20; + m_A22 += m_A5 * f2_7; + m_A23 += m_A6 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_8 = -f3 * m_A25; + m_A30 += m_A8 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_8 = -f4 * m_A26; + m_A30 += m_A10 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_7 = -f5 * m_A21; + m_A23 += m_A13 * f5_7; + m_A24 += m_A14 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A27; + m_A29 += m_A13 * f5_8; + m_A30 += m_A14 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_7 = -f6 * m_A22; + m_A23 += m_A17 * f6_7; + m_A24 += m_A18 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A28; + m_A29 += m_A17 * f6_8; + m_A30 += m_A18 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_8 = -f7 * m_A29; + m_A30 += m_A24 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A30; + double tmp7 = 0.0; + tmp7 += m_A24 * V[8]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A17 * V[7]; + tmp6 += m_A18 * V[8]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A13 * V[7]; + tmp5 += m_A14 * V[8]; + V[5] = (RHS5 - tmp5) / m_A12; + double tmp4 = 0.0; + tmp4 += m_A10 * V[8]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A8 * V[8]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + tmp2 += m_A6 * V[7]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[7]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starhawk +static void nl_gcr_8b1ac1e181eec3fc_40_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A8 += go[8]; + m_A8 += go[9]; + m_A7 += go[10]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A9 += gt[17]; + m_A10 += go[11]; + double RHS4 = Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A12 += go[18]; + m_A12 += go[19]; + m_A13 += go[20]; + double RHS5 = Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 -= go[21] * *cnV[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A16 += go[22]; + m_A15 += go[23]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A18 += go[24]; + m_A17 += go[25]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 -= go[26] * *cnV[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A23 += go[27]; + m_A21 += go[28]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 -= go[29] * *cnV[29]; + m_A26 += gt[30]; + m_A26 += gt[31]; + m_A26 += gt[32]; + m_A25 += go[30]; + m_A24 += go[31]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 -= go[32] * *cnV[32]; + m_A32 += gt[33]; + m_A32 += gt[34]; + m_A32 += gt[35]; + m_A32 += gt[36]; + m_A32 += gt[37]; + m_A32 += gt[38]; + m_A28 += go[33]; + m_A30 += go[34]; + m_A29 += go[35]; + m_A29 += go[36]; + double RHS10 = Idr[33]; + RHS10 += Idr[34]; + RHS10 += Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 -= go[37] * *cnV[37]; + RHS10 -= go[38] * *cnV[38]; + m_A39 += gt[39]; + m_A39 += gt[40]; + m_A39 += gt[41]; + m_A39 += gt[42]; + m_A35 += go[39]; + m_A37 += go[40]; + m_A34 += go[41]; + m_A34 += go[42]; + double RHS11 = Idr[39]; + RHS11 += Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + const double f0 = 1.0 / m_A0; + const double f0_9 = -f0 * m_A24; + m_A26 += m_A1 * f0_9; + RHS9 += f0_9 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A17; + m_A19 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_8 = -f2 * m_A21; + m_A22 += m_A5 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_7 = -f3 * m_A18; + m_A19 += m_A7 * f3_7; + m_A20 += m_A8 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_11 = -f3 * m_A34; + m_A36 += m_A7 * f3_11; + m_A39 += m_A8 * f3_11; + RHS11 += f3_11 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_10 = -f4 * m_A28; + m_A29 += m_A10 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_10 = -f5 * m_A29; + m_A32 += m_A12 * f5_10; + m_A33 += m_A13 * f5_10; + RHS10 += f5_10 * RHS5; + const double f5_11 = -f5 * m_A35; + m_A38 += m_A12 * f5_11; + m_A39 += m_A13 * f5_11; + RHS11 += f5_11 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_9 = -f6 * m_A25; + m_A26 += m_A15 * f6_9; + m_A27 += m_A16 * f6_9; + RHS9 += f6_9 * RHS6; + const double f6_10 = -f6 * m_A30; + m_A31 += m_A15 * f6_10; + m_A32 += m_A16 * f6_10; + RHS10 += f6_10 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_11 = -f7 * m_A36; + m_A39 += m_A20 * f7_11; + RHS11 += f7_11 * RHS7; + const double f8 = 1.0 / m_A22; + const double f8_11 = -f8 * m_A37; + m_A39 += m_A23 * f8_11; + RHS11 += f8_11 * RHS8; + const double f9 = 1.0 / m_A26; + const double f9_10 = -f9 * m_A31; + m_A32 += m_A27 * f9_10; + RHS10 += f9_10 * RHS9; + const double f10 = 1.0 / m_A32; + const double f10_11 = -f10 * m_A38; + m_A39 += m_A33 * f10_11; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A39; + double tmp10 = 0.0; + tmp10 += m_A33 * V[11]; + V[10] = (RHS10 - tmp10) / m_A32; + double tmp9 = 0.0; + tmp9 += m_A27 * V[10]; + V[9] = (RHS9 - tmp9) / m_A26; + double tmp8 = 0.0; + tmp8 += m_A23 * V[11]; + V[8] = (RHS8 - tmp8) / m_A22; + double tmp7 = 0.0; + tmp7 += m_A20 * V[11]; + V[7] = (RHS7 - tmp7) / m_A19; + double tmp6 = 0.0; + tmp6 += m_A15 * V[9]; + tmp6 += m_A16 * V[10]; + V[6] = (RHS6 - tmp6) / m_A14; + double tmp5 = 0.0; + tmp5 += m_A12 * V[10]; + tmp5 += m_A13 * V[11]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A10 * V[5]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A7 * V[7]; + tmp3 += m_A8 * V[11]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[8]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[7]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[9]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// rebound +static void nl_gcr_8bec817b324dcc3_28_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[3]; + m_A4 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A6 += go[7]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A7 += gt[14]; + m_A7 += gt[15]; + m_A7 += gt[16]; + m_A8 += go[10]; + m_A8 += go[11]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A13 += go[17]; + m_A10 += go[18]; + m_A9 += go[19]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + m_A16 += gt[20]; + m_A16 += gt[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A18 += go[20]; + m_A14 += go[21]; + m_A14 += go[22]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A22 += gt[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A23 += go[27]; + m_A23 += go[28]; + m_A20 += go[29]; + m_A19 += go[30]; + m_A19 += go[31]; + double RHS6 = Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 += Idr[34]; + RHS6 += Idr[35]; + RHS6 += Idr[36]; + RHS6 -= go[32] * *cnV[32]; + RHS6 -= go[33] * *cnV[33]; + RHS6 -= go[34] * *cnV[34]; + RHS6 -= go[35] * *cnV[35]; + RHS6 -= go[36] * *cnV[36]; + m_A27 += gt[37]; + m_A27 += gt[38]; + m_A27 += gt[39]; + m_A27 += gt[40]; + m_A27 += gt[41]; + m_A26 += go[37]; + m_A26 += go[38]; + m_A25 += go[39]; + m_A24 += go[40]; + double RHS7 = Idr[37]; + RHS7 += Idr[38]; + RHS7 += Idr[39]; + RHS7 += Idr[40]; + RHS7 += Idr[41]; + RHS7 -= go[41] * *cnV[41]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A9; + m_A11 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A10; + m_A11 += m_A3 * f1_4; + m_A12 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A14; + m_A15 += m_A3 * f1_5; + m_A16 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_7 = -f2 * m_A24; + m_A27 += m_A6 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_6 = -f3 * m_A19; + m_A22 += m_A8 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_5 = -f4 * m_A15; + m_A16 += m_A12 * f4_5; + m_A17 += m_A13 * f4_5; + RHS5 += f4_5 * RHS4; + const double f4_6 = -f4 * m_A20; + m_A21 += m_A12 * f4_6; + m_A22 += m_A13 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A16; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A17 * f5_6; + m_A23 += m_A18 * f5_6; + RHS6 += f5_6 * RHS5; + const double f5_7 = -f5 * m_A25; + m_A26 += m_A17 * f5_7; + m_A27 += m_A18 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A22; + const double f6_7 = -f6 * m_A26; + m_A27 += m_A23 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A27; + double tmp6 = 0.0; + tmp6 += m_A23 * V[7]; + V[6] = (RHS6 - tmp6) / m_A22; + double tmp5 = 0.0; + tmp5 += m_A17 * V[6]; + tmp5 += m_A18 * V[7]; + V[5] = (RHS5 - tmp5) / m_A16; + double tmp4 = 0.0; + tmp4 += m_A12 * V[5]; + tmp4 += m_A13 * V[6]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A8 * V[6]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A6 * V[7]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[4]; + tmp1 += m_A4 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// cocoloco +static void nl_gcr_8c0f7f2284333de5_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 -= go[7] * *cnV[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A8 += go[8]; + m_A10 += go[9]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 += Idr[10]; + RHS4 -= go[10] * *cnV[10]; + m_A15 += gt[11]; + m_A15 += gt[12]; + m_A15 += gt[13]; + m_A15 += gt[14]; + m_A14 += go[11]; + m_A13 += go[12]; + m_A12 += go[13]; + m_A11 += go[14]; + double RHS5 = Idr[11]; + RHS5 += Idr[12]; + RHS5 += Idr[13]; + RHS5 += Idr[14]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A11; + m_A15 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A12; + m_A15 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A8; + m_A9 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_5 = -f3 * m_A13; + m_A15 += m_A7 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_5 = -f4 * m_A14; + m_A15 += m_A10 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A15; + double tmp4 = 0.0; + tmp4 += m_A10 * V[5]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A7 * V[5]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// spacfury +static void nl_gcr_8c1dd4afcf0f8ea2_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[4]; + m_A4 += go[5]; + m_A3 += go[6]; + m_A3 += go[7]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A6 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A9 += gt[17]; + m_A8 += go[12]; + m_A8 += go[13]; + m_A7 += go[14]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A12 += go[18]; + m_A11 += go[19]; + m_A11 += go[20]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A7; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A3 * f1_3; + m_A10 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A11; + m_A13 += m_A3 * f1_4; + m_A14 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A14; + double tmp3 = 0.0; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[4]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_8c512fd6a6dabc50_35_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[5] * *cnV[5]; + RHS2 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[8] * *cnV[8]; + RHS3 -= go[9] * *cnV[9]; + m_A8 += gt[10]; + m_A8 += gt[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A9 += go[10]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[11] * *cnV[11]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A12 += go[14]; + m_A12 += go[15]; + m_A11 += go[16]; + m_A11 += go[17]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 -= go[18] * *cnV[18]; + RHS5 -= go[19] * *cnV[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A14 += gt[24]; + m_A14 += gt[25]; + m_A13 += go[20]; + m_A16 += go[21]; + m_A15 += go[22]; + double RHS6 = Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 -= go[23] * *cnV[23]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A19 += gt[30]; + m_A18 += go[26]; + m_A17 += go[27]; + m_A20 += go[28]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 -= go[29] * *cnV[29]; + RHS7 -= go[30] * *cnV[30]; + m_A23 += gt[31]; + m_A23 += gt[32]; + m_A23 += gt[33]; + m_A23 += gt[34]; + m_A23 += gt[35]; + m_A23 += gt[36]; + m_A24 += go[31]; + m_A22 += go[32]; + m_A22 += go[33]; + m_A21 += go[34]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 -= go[35] * *cnV[35]; + RHS8 -= go[36] * *cnV[36]; + m_A30 += gt[37]; + m_A30 += gt[38]; + m_A30 += gt[39]; + m_A30 += gt[40]; + m_A25 += go[37]; + m_A26 += go[38]; + m_A27 += go[39]; + m_A28 += go[40]; + double RHS9 = Idr[37]; + RHS9 += Idr[38]; + RHS9 += Idr[39]; + RHS9 += Idr[40]; + m_A34 += gt[41]; + m_A34 += gt[42]; + m_A34 += gt[43]; + m_A34 += gt[44]; + m_A32 += go[41]; + m_A32 += go[42]; + m_A33 += go[43]; + double RHS10 = Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 += Idr[44]; + RHS10 -= go[44] * *cnV[44]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A13; + m_A15 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f0_7 = -f0 * m_A17; + m_A19 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A18; + m_A19 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f1_9 = -f1 * m_A25; + m_A28 += m_A3 * f1_9; + RHS9 += f1_9 * RHS1; + const double f3 = 1.0 / m_A6; + const double f3_9 = -f3 * m_A26; + m_A30 += m_A7 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_8 = -f4 * m_A21; + m_A23 += m_A9 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_8 = -f5 * m_A22; + m_A23 += m_A11 * f5_8; + m_A24 += m_A12 * f5_8; + RHS8 += f5_8 * RHS5; + const double f5_10 = -f5 * m_A32; + m_A33 += m_A11 * f5_10; + m_A34 += m_A12 * f5_10; + RHS10 += f5_10 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_9 = -f6 * m_A27; + m_A28 += m_A15 * f6_9; + m_A30 += m_A16 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_9 = -f7 * m_A28; + m_A29 += m_A20 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A23; + const double f8_9 = -f8 * m_A29; + m_A31 += m_A24 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_10 = -f8 * m_A33; + m_A34 += m_A24 * f8_10; + RHS10 += f8_10 * RHS8; + V[10] = RHS10 / m_A34; + double tmp9 = 0.0; + tmp9 += m_A31 * V[10]; + V[9] = (RHS9 - tmp9) / m_A30; + double tmp8 = 0.0; + tmp8 += m_A24 * V[10]; + V[8] = (RHS8 - tmp8) / m_A23; + double tmp7 = 0.0; + tmp7 += m_A20 * V[8]; + V[7] = (RHS7 - tmp7) / m_A19; + double tmp6 = 0.0; + tmp6 += m_A15 * V[7]; + tmp6 += m_A16 * V[9]; + V[6] = (RHS6 - tmp6) / m_A14; + double tmp5 = 0.0; + tmp5 += m_A11 * V[8]; + tmp5 += m_A12 * V[10]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[8]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[9]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[7]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// segausb +static void nl_gcr_8cc4eb213eaeef9b_30_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[5] * *cnV[5]; + RHS2 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[8] * *cnV[8]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A8 += gt[11]; + m_A10 += go[9]; + m_A9 += go[10]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + RHS4 += Idr[11]; + RHS4 -= go[11] * *cnV[11]; + m_A11 += gt[12]; + m_A11 += gt[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A13 += go[12]; + m_A12 += go[13]; + double RHS5 = Idr[12]; + RHS5 += Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[14] * *cnV[14]; + RHS5 -= go[15] * *cnV[15]; + m_A19 += gt[16]; + m_A19 += gt[17]; + m_A19 += gt[18]; + m_A19 += gt[19]; + m_A19 += gt[20]; + m_A19 += gt[21]; + m_A18 += go[16]; + m_A17 += go[17]; + m_A16 += go[18]; + m_A15 += go[19]; + m_A14 += go[20]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 -= go[21] * *cnV[21]; + m_A24 += gt[22]; + m_A24 += gt[23]; + m_A24 += gt[24]; + m_A22 += go[22]; + m_A21 += go[23]; + double RHS7 = Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[24] * *cnV[24]; + m_A29 += gt[25]; + m_A29 += gt[26]; + m_A29 += gt[27]; + m_A29 += gt[28]; + m_A29 += gt[29]; + m_A29 += gt[30]; + m_A29 += gt[31]; + m_A28 += go[25]; + m_A26 += go[26]; + double RHS8 = Idr[25]; + RHS8 += Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[27] * *cnV[27]; + RHS8 -= go[28] * *cnV[28]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A14; + m_A19 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A15; + m_A19 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A16; + m_A19 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A17; + m_A19 += m_A7 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_6 = -f4 * m_A18; + m_A19 += m_A9 * f4_6; + m_A20 += m_A10 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_7 = -f4 * m_A21; + m_A23 += m_A9 * f4_7; + m_A24 += m_A10 * f4_7; + RHS7 += f4_7 * RHS4; + const double f4_8 = -f4 * m_A26; + m_A27 += m_A9 * f4_8; + m_A28 += m_A10 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_7 = -f5 * m_A22; + m_A24 += m_A12 * f5_7; + m_A25 += m_A13 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_7 = -f6 * m_A23; + m_A24 += m_A20 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A27; + m_A28 += m_A20 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A24; + const double f7_8 = -f7 * m_A28; + m_A29 += m_A25 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A29; + double tmp7 = 0.0; + tmp7 += m_A25 * V[8]; + V[7] = (RHS7 - tmp7) / m_A24; + double tmp6 = 0.0; + tmp6 += m_A20 * V[7]; + V[6] = (RHS6 - tmp6) / m_A19; + double tmp5 = 0.0; + tmp5 += m_A12 * V[7]; + tmp5 += m_A13 * V[8]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A9 * V[6]; + tmp4 += m_A10 * V[7]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[6]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[6]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starcrus +static void nl_gcr_8d7bddf33d942482_129_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A4 += go[3]; + m_A3 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A7 += go[8]; + m_A6 += go[9]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + m_A8 += gt[10]; + m_A8 += gt[11]; + m_A9 += go[10]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[11] * *cnV[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A11 += go[12]; + m_A12 += go[13]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[14] * *cnV[14]; + m_A13 += gt[15]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A15 += go[15]; + m_A14 += go[16]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + m_A16 += gt[18]; + m_A16 += gt[19]; + m_A16 += gt[20]; + m_A16 += gt[21]; + m_A16 += gt[22]; + m_A17 += go[18]; + m_A18 += go[19]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 -= go[20] * *cnV[20]; + RHS6 -= go[21] * *cnV[21]; + RHS6 -= go[22] * *cnV[22]; + m_A19 += gt[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A21 += go[23]; + m_A20 += go[24]; + double RHS7 = Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 -= go[25] * *cnV[25]; + RHS7 -= go[26] * *cnV[26]; + RHS7 -= go[27] * *cnV[27]; + RHS7 -= go[28] * *cnV[28]; + RHS7 -= go[29] * *cnV[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A24 += go[30]; + m_A23 += go[31]; + double RHS8 = Idr[30]; + RHS8 += Idr[31]; + m_A25 += gt[32]; + m_A25 += gt[33]; + m_A25 += gt[34]; + m_A25 += gt[35]; + m_A25 += gt[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A27 += go[32]; + m_A27 += go[33]; + m_A26 += go[34]; + m_A28 += go[35]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 += Idr[38]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; + RHS9 -= go[38] * *cnV[38]; + m_A29 += gt[39]; + m_A29 += gt[40]; + m_A29 += gt[41]; + m_A29 += gt[42]; + m_A29 += gt[43]; + m_A29 += gt[44]; + m_A31 += go[39]; + m_A30 += go[40]; + m_A30 += go[41]; + double RHS10 = Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 += Idr[44]; + RHS10 -= go[42] * *cnV[42]; + RHS10 -= go[43] * *cnV[43]; + RHS10 -= go[44] * *cnV[44]; + m_A32 += gt[45]; + m_A32 += gt[46]; + m_A32 += gt[47]; + m_A32 += gt[48]; + m_A32 += gt[49]; + m_A33 += go[45]; + m_A33 += go[46]; + m_A34 += go[47]; + double RHS11 = Idr[45]; + RHS11 += Idr[46]; + RHS11 += Idr[47]; + RHS11 += Idr[48]; + RHS11 += Idr[49]; + RHS11 -= go[48] * *cnV[48]; + RHS11 -= go[49] * *cnV[49]; + m_A35 += gt[50]; + m_A35 += gt[51]; + m_A35 += gt[52]; + m_A35 += gt[53]; + m_A37 += go[50]; + m_A37 += go[51]; + m_A36 += go[52]; + double RHS12 = Idr[50]; + RHS12 += Idr[51]; + RHS12 += Idr[52]; + RHS12 += Idr[53]; + RHS12 -= go[53] * *cnV[53]; + m_A38 += gt[54]; + m_A38 += gt[55]; + m_A38 += gt[56]; + m_A38 += gt[57]; + m_A40 += go[54]; + m_A40 += go[55]; + m_A39 += go[56]; + double RHS13 = Idr[54]; + RHS13 += Idr[55]; + RHS13 += Idr[56]; + RHS13 += Idr[57]; + RHS13 -= go[57] * *cnV[57]; + m_A41 += gt[58]; + m_A41 += gt[59]; + m_A41 += gt[60]; + m_A41 += gt[61]; + m_A42 += go[58]; + double RHS14 = Idr[58]; + RHS14 += Idr[59]; + RHS14 += Idr[60]; + RHS14 += Idr[61]; + RHS14 -= go[59] * *cnV[59]; + RHS14 -= go[60] * *cnV[60]; + RHS14 -= go[61] * *cnV[61]; + m_A45 += gt[62]; + m_A45 += gt[63]; + m_A45 += gt[64]; + m_A45 += gt[65]; + m_A45 += gt[66]; + m_A44 += go[62]; + m_A44 += go[63]; + m_A43 += go[64]; + double RHS15 = Idr[62]; + RHS15 += Idr[63]; + RHS15 += Idr[64]; + RHS15 += Idr[65]; + RHS15 += Idr[66]; + RHS15 -= go[65] * *cnV[65]; + RHS15 -= go[66] * *cnV[66]; + m_A49 += gt[67]; + m_A49 += gt[68]; + m_A48 += go[67]; + m_A47 += go[68]; + double RHS16 = Idr[67]; + RHS16 += Idr[68]; + m_A56 += gt[69]; + m_A56 += gt[70]; + m_A56 += gt[71]; + m_A54 += go[69]; + m_A52 += go[70]; + m_A55 += go[71]; + double RHS17 = Idr[69]; + RHS17 += Idr[70]; + RHS17 += Idr[71]; + m_A63 += gt[72]; + m_A63 += gt[73]; + m_A63 += gt[74]; + m_A63 += gt[75]; + m_A61 += go[72]; + m_A61 += go[73]; + m_A60 += go[74]; + double RHS18 = Idr[72]; + RHS18 += Idr[73]; + RHS18 += Idr[74]; + RHS18 += Idr[75]; + RHS18 -= go[75] * *cnV[75]; + m_A71 += gt[76]; + m_A71 += gt[77]; + m_A71 += gt[78]; + m_A71 += gt[79]; + m_A71 += gt[80]; + m_A71 += gt[81]; + m_A71 += gt[82]; + m_A71 += gt[83]; + m_A68 += go[76]; + m_A68 += go[77]; + m_A67 += go[78]; + m_A67 += go[79]; + double RHS19 = Idr[76]; + RHS19 += Idr[77]; + RHS19 += Idr[78]; + RHS19 += Idr[79]; + RHS19 += Idr[80]; + RHS19 += Idr[81]; + RHS19 += Idr[82]; + RHS19 += Idr[83]; + RHS19 -= go[80] * *cnV[80]; + RHS19 -= go[81] * *cnV[81]; + RHS19 -= go[82] * *cnV[82]; + RHS19 -= go[83] * *cnV[83]; + m_A76 += gt[84]; + m_A76 += gt[85]; + m_A77 += go[84]; + m_A74 += go[85]; + double RHS20 = Idr[84]; + RHS20 += Idr[85]; + m_A83 += gt[86]; + m_A83 += gt[87]; + m_A83 += gt[88]; + m_A83 += gt[89]; + m_A80 += go[86]; + m_A79 += go[87]; + m_A78 += go[88]; + double RHS21 = Idr[86]; + RHS21 += Idr[87]; + RHS21 += Idr[88]; + RHS21 += Idr[89]; + RHS21 -= go[89] * *cnV[89]; + m_A89 += gt[90]; + m_A89 += gt[91]; + m_A89 += gt[92]; + m_A89 += gt[93]; + m_A89 += gt[94]; + m_A89 += gt[95]; + m_A87 += go[90]; + m_A86 += go[91]; + m_A86 += go[92]; + double RHS22 = Idr[90]; + RHS22 += Idr[91]; + RHS22 += Idr[92]; + RHS22 += Idr[93]; + RHS22 += Idr[94]; + RHS22 += Idr[95]; + RHS22 -= go[93] * *cnV[93]; + RHS22 -= go[94] * *cnV[94]; + RHS22 -= go[95] * *cnV[95]; + m_A95 += gt[96]; + m_A95 += gt[97]; + m_A95 += gt[98]; + m_A95 += gt[99]; + m_A95 += gt[100]; + m_A93 += go[96]; + m_A92 += go[97]; + m_A92 += go[98]; + double RHS23 = Idr[96]; + RHS23 += Idr[97]; + RHS23 += Idr[98]; + RHS23 += Idr[99]; + RHS23 += Idr[100]; + RHS23 -= go[99] * *cnV[99]; + RHS23 -= go[100] * *cnV[100]; + m_A98 += gt[101]; + m_A98 += gt[102]; + m_A98 += gt[103]; + m_A98 += gt[104]; + m_A98 += gt[105]; + m_A99 += go[101]; + m_A99 += go[102]; + m_A97 += go[103]; + double RHS24 = Idr[101]; + RHS24 += Idr[102]; + RHS24 += Idr[103]; + RHS24 += Idr[104]; + RHS24 += Idr[105]; + RHS24 -= go[104] * *cnV[104]; + RHS24 -= go[105] * *cnV[105]; + m_A109 += gt[106]; + m_A109 += gt[107]; + m_A109 += gt[108]; + m_A109 += gt[109]; + m_A109 += gt[110]; + m_A110 += go[106]; + m_A101 += go[107]; + m_A100 += go[108]; + double RHS25 = Idr[106]; + RHS25 += Idr[107]; + RHS25 += Idr[108]; + RHS25 += Idr[109]; + RHS25 += Idr[110]; + RHS25 -= go[109] * *cnV[109]; + RHS25 -= go[110] * *cnV[110]; + m_A115 += gt[111]; + m_A115 += gt[112]; + m_A115 += gt[113]; + m_A115 += gt[114]; + m_A115 += gt[115]; + m_A115 += gt[116]; + m_A115 += gt[117]; + m_A113 += go[111]; + m_A112 += go[112]; + double RHS26 = Idr[111]; + RHS26 += Idr[112]; + RHS26 += Idr[113]; + RHS26 += Idr[114]; + RHS26 += Idr[115]; + RHS26 += Idr[116]; + RHS26 += Idr[117]; + RHS26 -= go[113] * *cnV[113]; + RHS26 -= go[114] * *cnV[114]; + RHS26 -= go[115] * *cnV[115]; + RHS26 -= go[116] * *cnV[116]; + RHS26 -= go[117] * *cnV[117]; + m_A123 += gt[118]; + m_A123 += gt[119]; + m_A123 += gt[120]; + m_A123 += gt[121]; + m_A118 += go[118]; + m_A124 += go[119]; + m_A117 += go[120]; + m_A120 += go[121]; + double RHS27 = Idr[118]; + RHS27 += Idr[119]; + RHS27 += Idr[120]; + RHS27 += Idr[121]; + m_A128 += gt[122]; + m_A128 += gt[123]; + m_A128 += gt[124]; + m_A128 += gt[125]; + m_A128 += gt[126]; + m_A127 += go[122]; + m_A126 += go[123]; + m_A126 += go[124]; + m_A125 += go[125]; + double RHS28 = Idr[122]; + RHS28 += Idr[123]; + RHS28 += Idr[124]; + RHS28 += Idr[125]; + RHS28 += Idr[126]; + RHS28 -= go[126] * *cnV[126]; + const double f0 = 1.0 / m_A0; + const double f0_15 = -f0 * m_A43; + m_A45 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_15 = -f1 * m_A44; + m_A45 += m_A3 * f1_15; + m_A46 += m_A4 * f1_15; + RHS15 += f1_15 * RHS1; + const double f1_20 = -f1 * m_A74; + m_A75 += m_A3 * f1_20; + m_A76 += m_A4 * f1_20; + RHS20 += f1_20 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_24 = -f2 * m_A97; + m_A98 += m_A6 * f2_24; + m_A99 += m_A7 * f2_24; + RHS24 += f2_24 * RHS2; + const double f2_28 = -f2 * m_A125; + m_A126 += m_A6 * f2_28; + m_A128 += m_A7 * f2_28; + RHS28 += f2_28 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_27 = -f3 * m_A117; + m_A123 += m_A9 * f3_27; + RHS27 += f3_27 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_16 = -f4 * m_A47; + m_A49 += m_A11 * f4_16; + m_A51 += m_A12 * f4_16; + RHS16 += f4_16 * RHS4; + const double f4_26 = -f4 * m_A112; + m_A113 += m_A11 * f4_26; + m_A116 += m_A12 * f4_26; + RHS26 += f4_26 * RHS4; + const double f4_27 = -f4 * m_A118; + m_A119 += m_A11 * f4_27; + m_A123 += m_A12 * f4_27; + RHS27 += f4_27 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_16 = -f5 * m_A48; + m_A49 += m_A14 * f5_16; + m_A50 += m_A15 * f5_16; + RHS16 += f5_16 * RHS5; + const double f5_25 = -f5 * m_A100; + m_A102 += m_A14 * f5_25; + m_A109 += m_A15 * f5_25; + RHS25 += f5_25 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_17 = -f6 * m_A52; + m_A53 += m_A17 * f6_17; + m_A56 += m_A18 * f6_17; + RHS17 += f6_17 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_17 = -f7 * m_A53; + m_A55 += m_A20 * f7_17; + m_A56 += m_A21 * f7_17; + RHS17 += f7_17 * RHS7; + const double f8 = 1.0 / m_A22; + const double f8_17 = -f8 * m_A54; + m_A56 += m_A23 * f8_17; + m_A57 += m_A24 * f8_17; + RHS17 += f8_17 * RHS8; + const double f8_18 = -f8 * m_A60; + m_A62 += m_A23 * f8_18; + m_A63 += m_A24 * f8_18; + RHS18 += f8_18 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_17 = -f9 * m_A55; + m_A56 += m_A26 * f9_17; + m_A58 += m_A27 * f9_17; + m_A59 += m_A28 * f9_17; + RHS17 += f9_17 * RHS9; + const double f9_19 = -f9 * m_A67; + m_A69 += m_A26 * f9_19; + m_A71 += m_A27 * f9_19; + m_A73 += m_A28 * f9_19; + RHS19 += f9_19 * RHS9; + const double f9_25 = -f9 * m_A101; + m_A103 += m_A26 * f9_25; + m_A105 += m_A27 * f9_25; + m_A109 += m_A28 * f9_25; + RHS25 += f9_25 * RHS9; + const double f10 = 1.0 / m_A29; + const double f10_18 = -f10 * m_A61; + m_A63 += m_A30 * f10_18; + m_A65 += m_A31 * f10_18; + RHS18 += f10_18 * RHS10; + const double f10_21 = -f10 * m_A78; + m_A81 += m_A30 * f10_21; + m_A83 += m_A31 * f10_21; + RHS21 += f10_21 * RHS10; + const double f11 = 1.0 / m_A32; + const double f11_19 = -f11 * m_A68; + m_A71 += m_A33 * f11_19; + m_A72 += m_A34 * f11_19; + RHS19 += f11_19 * RHS11; + const double f11_21 = -f11 * m_A79; + m_A82 += m_A33 * f11_21; + m_A83 += m_A34 * f11_21; + RHS21 += f11_21 * RHS11; + const double f12 = 1.0 / m_A35; + const double f12_21 = -f12 * m_A80; + m_A83 += m_A36 * f12_21; + m_A84 += m_A37 * f12_21; + RHS21 += f12_21 * RHS12; + const double f12_22 = -f12 * m_A86; + m_A88 += m_A36 * f12_22; + m_A89 += m_A37 * f12_22; + RHS22 += f12_22 * RHS12; + const double f13 = 1.0 / m_A38; + const double f13_22 = -f13 * m_A87; + m_A89 += m_A39 * f13_22; + m_A90 += m_A40 * f13_22; + RHS22 += f13_22 * RHS13; + const double f13_23 = -f13 * m_A92; + m_A94 += m_A39 * f13_23; + m_A95 += m_A40 * f13_23; + RHS23 += f13_23 * RHS13; + const double f14 = 1.0 / m_A41; + const double f14_23 = -f14 * m_A93; + m_A95 += m_A42 * f14_23; + RHS23 += f14_23 * RHS14; + const double f15 = 1.0 / m_A45; + const double f15_20 = -f15 * m_A75; + m_A76 += m_A46 * f15_20; + RHS20 += f15_20 * RHS15; + const double f16 = 1.0 / m_A49; + const double f16_25 = -f16 * m_A102; + m_A109 += m_A50 * f16_25; + m_A111 += m_A51 * f16_25; + RHS25 += f16_25 * RHS16; + const double f16_26 = -f16 * m_A113; + m_A114 += m_A50 * f16_26; + m_A116 += m_A51 * f16_26; + RHS26 += f16_26 * RHS16; + const double f16_27 = -f16 * m_A119; + m_A121 += m_A50 * f16_27; + m_A123 += m_A51 * f16_27; + RHS27 += f16_27 * RHS16; + const double f17 = 1.0 / m_A56; + const double f17_18 = -f17 * m_A62; + m_A63 += m_A57 * f17_18; + m_A64 += m_A58 * f17_18; + m_A66 += m_A59 * f17_18; + RHS18 += f17_18 * RHS17; + const double f17_19 = -f17 * m_A69; + m_A70 += m_A57 * f17_19; + m_A71 += m_A58 * f17_19; + m_A73 += m_A59 * f17_19; + RHS19 += f17_19 * RHS17; + const double f17_25 = -f17 * m_A103; + m_A104 += m_A57 * f17_25; + m_A105 += m_A58 * f17_25; + m_A109 += m_A59 * f17_25; + RHS25 += f17_25 * RHS17; + const double f18 = 1.0 / m_A63; + const double f18_19 = -f18 * m_A70; + m_A71 += m_A64 * f18_19; + m_A72 += m_A65 * f18_19; + m_A73 += m_A66 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_21 = -f18 * m_A81; + m_A82 += m_A64 * f18_21; + m_A83 += m_A65 * f18_21; + m_A85 += m_A66 * f18_21; + RHS21 += f18_21 * RHS18; + const double f18_25 = -f18 * m_A104; + m_A105 += m_A64 * f18_25; + m_A106 += m_A65 * f18_25; + m_A109 += m_A66 * f18_25; + RHS25 += f18_25 * RHS18; + const double f19 = 1.0 / m_A71; + const double f19_21 = -f19 * m_A82; + m_A83 += m_A72 * f19_21; + m_A85 += m_A73 * f19_21; + RHS21 += f19_21 * RHS19; + const double f19_25 = -f19 * m_A105; + m_A106 += m_A72 * f19_25; + m_A109 += m_A73 * f19_25; + RHS25 += f19_25 * RHS19; + const double f20 = 1.0 / m_A76; + const double f20_27 = -f20 * m_A120; + m_A123 += m_A77 * f20_27; + RHS27 += f20_27 * RHS20; + const double f21 = 1.0 / m_A83; + const double f21_22 = -f21 * m_A88; + m_A89 += m_A84 * f21_22; + m_A91 += m_A85 * f21_22; + RHS22 += f21_22 * RHS21; + const double f21_25 = -f21 * m_A106; + m_A107 += m_A84 * f21_25; + m_A109 += m_A85 * f21_25; + RHS25 += f21_25 * RHS21; + const double f22 = 1.0 / m_A89; + const double f22_23 = -f22 * m_A94; + m_A95 += m_A90 * f22_23; + m_A96 += m_A91 * f22_23; + RHS23 += f22_23 * RHS22; + const double f22_25 = -f22 * m_A107; + m_A108 += m_A90 * f22_25; + m_A109 += m_A91 * f22_25; + RHS25 += f22_25 * RHS22; + const double f23 = 1.0 / m_A95; + const double f23_25 = -f23 * m_A108; + m_A109 += m_A96 * f23_25; + RHS25 += f23_25 * RHS23; + const double f24 = 1.0 / m_A98; + const double f24_28 = -f24 * m_A126; + m_A128 += m_A99 * f24_28; + RHS28 += f24_28 * RHS24; + const double f25 = 1.0 / m_A109; + const double f25_26 = -f25 * m_A114; + m_A115 += m_A110 * f25_26; + m_A116 += m_A111 * f25_26; + RHS26 += f25_26 * RHS25; + const double f25_27 = -f25 * m_A121; + m_A122 += m_A110 * f25_27; + m_A123 += m_A111 * f25_27; + RHS27 += f25_27 * RHS25; + const double f26 = 1.0 / m_A115; + const double f26_27 = -f26 * m_A122; + m_A123 += m_A116 * f26_27; + RHS27 += f26_27 * RHS26; + const double f27 = 1.0 / m_A123; + const double f27_28 = -f27 * m_A127; + m_A128 += m_A124 * f27_28; + RHS28 += f27_28 * RHS27; + V[28] = RHS28 / m_A128; + double tmp27 = 0.0; + tmp27 += m_A124 * V[28]; + V[27] = (RHS27 - tmp27) / m_A123; + double tmp26 = 0.0; + tmp26 += m_A116 * V[27]; + V[26] = (RHS26 - tmp26) / m_A115; + double tmp25 = 0.0; + tmp25 += m_A110 * V[26]; + tmp25 += m_A111 * V[27]; + V[25] = (RHS25 - tmp25) / m_A109; + double tmp24 = 0.0; + tmp24 += m_A99 * V[28]; + V[24] = (RHS24 - tmp24) / m_A98; + double tmp23 = 0.0; + tmp23 += m_A96 * V[25]; + V[23] = (RHS23 - tmp23) / m_A95; + double tmp22 = 0.0; + tmp22 += m_A90 * V[23]; + tmp22 += m_A91 * V[25]; + V[22] = (RHS22 - tmp22) / m_A89; + double tmp21 = 0.0; + tmp21 += m_A84 * V[22]; + tmp21 += m_A85 * V[25]; + V[21] = (RHS21 - tmp21) / m_A83; + double tmp20 = 0.0; + tmp20 += m_A77 * V[27]; + V[20] = (RHS20 - tmp20) / m_A76; + double tmp19 = 0.0; + tmp19 += m_A72 * V[21]; + tmp19 += m_A73 * V[25]; + V[19] = (RHS19 - tmp19) / m_A71; + double tmp18 = 0.0; + tmp18 += m_A64 * V[19]; + tmp18 += m_A65 * V[21]; + tmp18 += m_A66 * V[25]; + V[18] = (RHS18 - tmp18) / m_A63; + double tmp17 = 0.0; + tmp17 += m_A57 * V[18]; + tmp17 += m_A58 * V[19]; + tmp17 += m_A59 * V[25]; + V[17] = (RHS17 - tmp17) / m_A56; + double tmp16 = 0.0; + tmp16 += m_A50 * V[25]; + tmp16 += m_A51 * V[27]; + V[16] = (RHS16 - tmp16) / m_A49; + double tmp15 = 0.0; + tmp15 += m_A46 * V[20]; + V[15] = (RHS15 - tmp15) / m_A45; + double tmp14 = 0.0; + tmp14 += m_A42 * V[23]; + V[14] = (RHS14 - tmp14) / m_A41; + double tmp13 = 0.0; + tmp13 += m_A39 * V[22]; + tmp13 += m_A40 * V[23]; + V[13] = (RHS13 - tmp13) / m_A38; + double tmp12 = 0.0; + tmp12 += m_A36 * V[21]; + tmp12 += m_A37 * V[22]; + V[12] = (RHS12 - tmp12) / m_A35; + double tmp11 = 0.0; + tmp11 += m_A33 * V[19]; + tmp11 += m_A34 * V[21]; + V[11] = (RHS11 - tmp11) / m_A32; + double tmp10 = 0.0; + tmp10 += m_A30 * V[18]; + tmp10 += m_A31 * V[21]; + V[10] = (RHS10 - tmp10) / m_A29; + double tmp9 = 0.0; + tmp9 += m_A26 * V[17]; + tmp9 += m_A27 * V[19]; + tmp9 += m_A28 * V[25]; + V[9] = (RHS9 - tmp9) / m_A25; + double tmp8 = 0.0; + tmp8 += m_A23 * V[17]; + tmp8 += m_A24 * V[18]; + V[8] = (RHS8 - tmp8) / m_A22; + double tmp7 = 0.0; + tmp7 += m_A20 * V[9]; + tmp7 += m_A21 * V[17]; + V[7] = (RHS7 - tmp7) / m_A19; + double tmp6 = 0.0; + tmp6 += m_A17 * V[7]; + tmp6 += m_A18 * V[17]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A14 * V[16]; + tmp5 += m_A15 * V[25]; + V[5] = (RHS5 - tmp5) / m_A13; + double tmp4 = 0.0; + tmp4 += m_A11 * V[16]; + tmp4 += m_A12 * V[27]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A9 * V[27]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A6 * V[24]; + tmp2 += m_A7 * V[28]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[15]; + tmp1 += m_A4 * V[20]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[15]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// tank +static void nl_gcr_930b64361c2cdba8_328_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); + double m_A198(0.0); + double m_A199(0.0); + double m_A200(0.0); + double m_A201(0.0); + double m_A202(0.0); + double m_A203(0.0); + double m_A204(0.0); + double m_A205(0.0); + double m_A206(0.0); + double m_A207(0.0); + double m_A208(0.0); + double m_A209(0.0); + double m_A210(0.0); + double m_A211(0.0); + double m_A212(0.0); + double m_A213(0.0); + double m_A214(0.0); + double m_A215(0.0); + double m_A216(0.0); + double m_A217(0.0); + double m_A218(0.0); + double m_A219(0.0); + double m_A220(0.0); + double m_A221(0.0); + double m_A222(0.0); + double m_A223(0.0); + double m_A224(0.0); + double m_A225(0.0); + double m_A226(0.0); + double m_A227(0.0); + double m_A228(0.0); + double m_A229(0.0); + double m_A230(0.0); + double m_A231(0.0); + double m_A232(0.0); + double m_A233(0.0); + double m_A234(0.0); + double m_A235(0.0); + double m_A236(0.0); + double m_A237(0.0); + double m_A238(0.0); + double m_A239(0.0); + double m_A240(0.0); + double m_A241(0.0); + double m_A242(0.0); + double m_A243(0.0); + double m_A244(0.0); + double m_A245(0.0); + double m_A246(0.0); + double m_A247(0.0); + double m_A248(0.0); + double m_A249(0.0); + double m_A250(0.0); + double m_A251(0.0); + double m_A252(0.0); + double m_A253(0.0); + double m_A254(0.0); + double m_A255(0.0); + double m_A256(0.0); + double m_A257(0.0); + double m_A258(0.0); + double m_A259(0.0); + double m_A260(0.0); + double m_A261(0.0); + double m_A262(0.0); + double m_A263(0.0); + double m_A264(0.0); + double m_A265(0.0); + double m_A266(0.0); + double m_A267(0.0); + double m_A268(0.0); + double m_A269(0.0); + double m_A270(0.0); + double m_A271(0.0); + double m_A272(0.0); + double m_A273(0.0); + double m_A274(0.0); + double m_A275(0.0); + double m_A276(0.0); + double m_A277(0.0); + double m_A278(0.0); + double m_A279(0.0); + double m_A280(0.0); + double m_A281(0.0); + double m_A282(0.0); + double m_A283(0.0); + double m_A284(0.0); + double m_A285(0.0); + double m_A286(0.0); + double m_A287(0.0); + double m_A288(0.0); + double m_A289(0.0); + double m_A290(0.0); + double m_A291(0.0); + double m_A292(0.0); + double m_A293(0.0); + double m_A294(0.0); + double m_A295(0.0); + double m_A296(0.0); + double m_A297(0.0); + double m_A298(0.0); + double m_A299(0.0); + double m_A300(0.0); + double m_A301(0.0); + double m_A302(0.0); + double m_A303(0.0); + double m_A304(0.0); + double m_A305(0.0); + double m_A306(0.0); + double m_A307(0.0); + double m_A308(0.0); + double m_A309(0.0); + double m_A310(0.0); + double m_A311(0.0); + double m_A312(0.0); + double m_A313(0.0); + double m_A314(0.0); + double m_A315(0.0); + double m_A316(0.0); + double m_A317(0.0); + double m_A318(0.0); + double m_A319(0.0); + double m_A320(0.0); + double m_A321(0.0); + double m_A322(0.0); + double m_A323(0.0); + double m_A324(0.0); + double m_A325(0.0); + double m_A326(0.0); + double m_A327(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + m_A1 += go[1]; + m_A1 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A9 += go[8]; + m_A8 += go[9]; + m_A7 += go[10]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[11] * *cnV[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A11 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[13] * *cnV[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A14 += go[14]; + m_A15 += go[15]; + m_A13 += go[16]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + RHS5 += Idr[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A16 += gt[19]; + m_A17 += go[17]; + m_A18 += go[18]; + double RHS6 = Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 -= go[19] * *cnV[19]; + m_A19 += gt[20]; + m_A19 += gt[21]; + m_A19 += gt[22]; + m_A20 += go[20]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 -= go[21] * *cnV[21]; + RHS7 -= go[22] * *cnV[22]; + m_A21 += gt[23]; + m_A21 += gt[24]; + m_A21 += gt[25]; + m_A21 += gt[26]; + m_A21 += gt[27]; + m_A21 += gt[28]; + m_A21 += gt[29]; + m_A23 += go[23]; + m_A24 += go[24]; + m_A25 += go[25]; + m_A22 += go[26]; + double RHS8 = Idr[23]; + RHS8 += Idr[24]; + RHS8 += Idr[25]; + RHS8 += Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 -= go[27] * *cnV[27]; + RHS8 -= go[28] * *cnV[28]; + RHS8 -= go[29] * *cnV[29]; + m_A26 += gt[30]; + m_A26 += gt[31]; + m_A26 += gt[32]; + m_A26 += gt[33]; + m_A26 += gt[34]; + m_A27 += go[30]; + m_A27 += go[31]; + m_A29 += go[32]; + m_A28 += go[33]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 -= go[34] * *cnV[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A30 += gt[37]; + m_A30 += gt[38]; + m_A30 += gt[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A32 += go[35]; + m_A33 += go[36]; + m_A34 += go[37]; + m_A31 += go[38]; + double RHS10 = Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 -= go[39] * *cnV[39]; + RHS10 -= go[40] * *cnV[40]; + RHS10 -= go[41] * *cnV[41]; + m_A35 += gt[42]; + m_A35 += gt[43]; + m_A35 += gt[44]; + m_A36 += go[42]; + double RHS11 = Idr[42]; + RHS11 += Idr[43]; + RHS11 += Idr[44]; + RHS11 -= go[43] * *cnV[43]; + RHS11 -= go[44] * *cnV[44]; + m_A37 += gt[45]; + m_A37 += gt[46]; + m_A37 += gt[47]; + m_A37 += gt[48]; + m_A37 += gt[49]; + m_A40 += go[45]; + m_A39 += go[46]; + m_A38 += go[47]; + double RHS12 = Idr[45]; + RHS12 += Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 += Idr[49]; + RHS12 -= go[48] * *cnV[48]; + RHS12 -= go[49] * *cnV[49]; + m_A41 += gt[50]; + m_A41 += gt[51]; + m_A41 += gt[52]; + m_A41 += gt[53]; + m_A43 += go[50]; + m_A42 += go[51]; + double RHS13 = Idr[50]; + RHS13 += Idr[51]; + RHS13 += Idr[52]; + RHS13 += Idr[53]; + RHS13 -= go[52] * *cnV[52]; + RHS13 -= go[53] * *cnV[53]; + m_A44 += gt[54]; + m_A44 += gt[55]; + m_A44 += gt[56]; + m_A45 += go[54]; + m_A46 += go[55]; + double RHS14 = Idr[54]; + RHS14 += Idr[55]; + RHS14 += Idr[56]; + RHS14 -= go[56] * *cnV[56]; + m_A47 += gt[57]; + m_A47 += gt[58]; + m_A47 += gt[59]; + m_A47 += gt[60]; + m_A48 += go[57]; + m_A48 += go[58]; + m_A49 += go[59]; + double RHS15 = Idr[57]; + RHS15 += Idr[58]; + RHS15 += Idr[59]; + RHS15 += Idr[60]; + RHS15 -= go[60] * *cnV[60]; + m_A50 += gt[61]; + m_A50 += gt[62]; + m_A51 += go[61]; + m_A52 += go[62]; + double RHS16 = Idr[61]; + RHS16 += Idr[62]; + m_A53 += gt[63]; + m_A53 += gt[64]; + m_A53 += gt[65]; + m_A54 += go[63]; + m_A55 += go[64]; + m_A56 += go[65]; + double RHS17 = Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + m_A57 += gt[66]; + m_A57 += gt[67]; + m_A57 += gt[68]; + m_A57 += gt[69]; + m_A59 += go[66]; + m_A58 += go[67]; + m_A60 += go[68]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 -= go[69] * *cnV[69]; + m_A61 += gt[70]; + m_A61 += gt[71]; + m_A61 += gt[72]; + m_A61 += gt[73]; + m_A61 += gt[74]; + m_A61 += gt[75]; + m_A62 += go[70]; + m_A66 += go[71]; + m_A65 += go[72]; + m_A63 += go[73]; + m_A64 += go[74]; + double RHS19 = Idr[70]; + RHS19 += Idr[71]; + RHS19 += Idr[72]; + RHS19 += Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + RHS19 -= go[75] * *cnV[75]; + m_A67 += gt[76]; + m_A67 += gt[77]; + m_A67 += gt[78]; + m_A67 += gt[79]; + m_A68 += go[76]; + m_A70 += go[77]; + m_A69 += go[78]; + double RHS20 = Idr[76]; + RHS20 += Idr[77]; + RHS20 += Idr[78]; + RHS20 += Idr[79]; + RHS20 -= go[79] * *cnV[79]; + m_A71 += gt[80]; + m_A71 += gt[81]; + m_A71 += gt[82]; + m_A71 += gt[83]; + m_A73 += go[80]; + m_A72 += go[81]; + double RHS21 = Idr[80]; + RHS21 += Idr[81]; + RHS21 += Idr[82]; + RHS21 += Idr[83]; + RHS21 -= go[82] * *cnV[82]; + RHS21 -= go[83] * *cnV[83]; + m_A74 += gt[84]; + m_A74 += gt[85]; + m_A74 += gt[86]; + m_A74 += gt[87]; + m_A75 += go[84]; + m_A76 += go[85]; + double RHS22 = Idr[84]; + RHS22 += Idr[85]; + RHS22 += Idr[86]; + RHS22 += Idr[87]; + RHS22 -= go[86] * *cnV[86]; + RHS22 -= go[87] * *cnV[87]; + m_A78 += gt[88]; + m_A78 += gt[89]; + m_A78 += gt[90]; + m_A77 += go[88]; + m_A77 += go[89]; + m_A77 += go[90]; + double RHS23 = Idr[88]; + RHS23 += Idr[89]; + RHS23 += Idr[90]; + m_A81 += gt[91]; + m_A81 += gt[92]; + m_A81 += gt[93]; + m_A81 += gt[94]; + m_A80 += go[91]; + m_A79 += go[92]; + double RHS24 = Idr[91]; + RHS24 += Idr[92]; + RHS24 += Idr[93]; + RHS24 += Idr[94]; + RHS24 -= go[93] * *cnV[93]; + RHS24 -= go[94] * *cnV[94]; + m_A84 += gt[95]; + m_A84 += gt[96]; + m_A84 += gt[97]; + m_A84 += gt[98]; + m_A85 += go[95]; + m_A86 += go[96]; + double RHS25 = Idr[95]; + RHS25 += Idr[96]; + RHS25 += Idr[97]; + RHS25 += Idr[98]; + RHS25 -= go[97] * *cnV[97]; + RHS25 -= go[98] * *cnV[98]; + m_A89 += gt[99]; + m_A89 += gt[100]; + m_A89 += gt[101]; + m_A87 += go[99]; + m_A88 += go[100]; + double RHS26 = Idr[99]; + RHS26 += Idr[100]; + RHS26 += Idr[101]; + RHS26 -= go[101] * *cnV[101]; + m_A95 += gt[102]; + m_A95 += gt[103]; + m_A95 += gt[104]; + m_A95 += gt[105]; + m_A93 += go[102]; + m_A92 += go[103]; + double RHS27 = Idr[102]; + RHS27 += Idr[103]; + RHS27 += Idr[104]; + RHS27 += Idr[105]; + RHS27 -= go[104] * *cnV[104]; + RHS27 -= go[105] * *cnV[105]; + m_A102 += gt[106]; + m_A102 += gt[107]; + m_A102 += gt[108]; + m_A102 += gt[109]; + m_A102 += gt[110]; + m_A102 += gt[111]; + m_A102 += gt[112]; + m_A100 += go[106]; + m_A101 += go[107]; + m_A101 += go[108]; + double RHS28 = Idr[106]; + RHS28 += Idr[107]; + RHS28 += Idr[108]; + RHS28 += Idr[109]; + RHS28 += Idr[110]; + RHS28 += Idr[111]; + RHS28 += Idr[112]; + RHS28 -= go[109] * *cnV[109]; + RHS28 -= go[110] * *cnV[110]; + RHS28 -= go[111] * *cnV[111]; + RHS28 -= go[112] * *cnV[112]; + m_A107 += gt[113]; + m_A107 += gt[114]; + m_A107 += gt[115]; + m_A108 += go[113]; + m_A105 += go[114]; + double RHS29 = Idr[113]; + RHS29 += Idr[114]; + RHS29 += Idr[115]; + RHS29 -= go[115] * *cnV[115]; + m_A115 += gt[116]; + m_A115 += gt[117]; + m_A115 += gt[118]; + m_A115 += gt[119]; + m_A110 += go[116]; + m_A111 += go[117]; + m_A109 += go[118]; + double RHS30 = Idr[116]; + RHS30 += Idr[117]; + RHS30 += Idr[118]; + RHS30 += Idr[119]; + RHS30 -= go[119] * *cnV[119]; + m_A122 += gt[120]; + m_A122 += gt[121]; + m_A122 += gt[122]; + m_A122 += gt[123]; + m_A120 += go[120]; + m_A121 += go[121]; + m_A123 += go[122]; + double RHS31 = Idr[120]; + RHS31 += Idr[121]; + RHS31 += Idr[122]; + RHS31 += Idr[123]; + RHS31 -= go[123] * *cnV[123]; + m_A128 += gt[124]; + m_A128 += gt[125]; + m_A128 += gt[126]; + m_A128 += gt[127]; + m_A124 += go[124]; + m_A125 += go[125]; + double RHS32 = Idr[124]; + RHS32 += Idr[125]; + RHS32 += Idr[126]; + RHS32 += Idr[127]; + RHS32 -= go[126] * *cnV[126]; + RHS32 -= go[127] * *cnV[127]; + m_A136 += gt[128]; + m_A136 += gt[129]; + m_A136 += gt[130]; + m_A136 += gt[131]; + m_A141 += go[128]; + m_A134 += go[129]; + double RHS33 = Idr[128]; + RHS33 += Idr[129]; + RHS33 += Idr[130]; + RHS33 += Idr[131]; + RHS33 -= go[130] * *cnV[130]; + RHS33 -= go[131] * *cnV[131]; + m_A144 += gt[132]; + m_A144 += gt[133]; + m_A144 += gt[134]; + m_A144 += gt[135]; + m_A144 += gt[136]; + m_A144 += gt[137]; + m_A144 += gt[138]; + m_A143 += go[132]; + m_A143 += go[133]; + m_A142 += go[134]; + double RHS34 = Idr[132]; + RHS34 += Idr[133]; + RHS34 += Idr[134]; + RHS34 += Idr[135]; + RHS34 += Idr[136]; + RHS34 += Idr[137]; + RHS34 += Idr[138]; + RHS34 -= go[135] * *cnV[135]; + RHS34 -= go[136] * *cnV[136]; + RHS34 -= go[137] * *cnV[137]; + RHS34 -= go[138] * *cnV[138]; + m_A148 += gt[139]; + m_A148 += gt[140]; + m_A148 += gt[141]; + m_A148 += gt[142]; + m_A146 += go[139]; + m_A150 += go[140]; + m_A149 += go[141]; + double RHS35 = Idr[139]; + RHS35 += Idr[140]; + RHS35 += Idr[141]; + RHS35 += Idr[142]; + RHS35 -= go[142] * *cnV[142]; + m_A152 += gt[143]; + m_A152 += gt[144]; + m_A154 += go[143]; + m_A151 += go[144]; + double RHS36 = Idr[143]; + RHS36 += Idr[144]; + m_A157 += gt[145]; + m_A157 += gt[146]; + m_A157 += gt[147]; + m_A157 += gt[148]; + m_A157 += gt[149]; + m_A157 += gt[150]; + m_A157 += gt[151]; + m_A156 += go[145]; + m_A155 += go[146]; + double RHS37 = Idr[145]; + RHS37 += Idr[146]; + RHS37 += Idr[147]; + RHS37 += Idr[148]; + RHS37 += Idr[149]; + RHS37 += Idr[150]; + RHS37 += Idr[151]; + RHS37 -= go[147] * *cnV[147]; + RHS37 -= go[148] * *cnV[148]; + RHS37 -= go[149] * *cnV[149]; + RHS37 -= go[150] * *cnV[150]; + RHS37 -= go[151] * *cnV[151]; + m_A166 += gt[152]; + m_A166 += gt[153]; + m_A166 += gt[154]; + m_A166 += gt[155]; + m_A166 += gt[156]; + m_A166 += gt[157]; + m_A166 += gt[158]; + m_A166 += gt[159]; + m_A160 += go[152]; + m_A159 += go[153]; + m_A168 += go[154]; + m_A158 += go[155]; + m_A169 += go[156]; + double RHS38 = Idr[152]; + RHS38 += Idr[153]; + RHS38 += Idr[154]; + RHS38 += Idr[155]; + RHS38 += Idr[156]; + RHS38 += Idr[157]; + RHS38 += Idr[158]; + RHS38 += Idr[159]; + RHS38 -= go[157] * *cnV[157]; + RHS38 -= go[158] * *cnV[158]; + RHS38 -= go[159] * *cnV[159]; + m_A173 += gt[160]; + m_A173 += gt[161]; + m_A173 += gt[162]; + m_A173 += gt[163]; + m_A171 += go[160]; + m_A174 += go[161]; + m_A172 += go[162]; + double RHS39 = Idr[160]; + RHS39 += Idr[161]; + RHS39 += Idr[162]; + RHS39 += Idr[163]; + RHS39 -= go[163] * *cnV[163]; + m_A183 += gt[164]; + m_A183 += gt[165]; + m_A183 += gt[166]; + m_A181 += go[164]; + m_A180 += go[165]; + m_A179 += go[166]; + double RHS40 = Idr[164]; + RHS40 += Idr[165]; + RHS40 += Idr[166]; + m_A189 += gt[167]; + m_A189 += gt[168]; + m_A188 += go[167]; + m_A191 += go[168]; + double RHS41 = Idr[167]; + RHS41 += Idr[168]; + m_A196 += gt[169]; + m_A196 += gt[170]; + m_A196 += gt[171]; + m_A194 += go[169]; + m_A193 += go[170]; + m_A192 += go[171]; + double RHS42 = Idr[169]; + RHS42 += Idr[170]; + RHS42 += Idr[171]; + m_A203 += gt[172]; + m_A203 += gt[173]; + m_A203 += gt[174]; + m_A203 += gt[175]; + m_A203 += gt[176]; + m_A203 += gt[177]; + m_A208 += go[172]; + m_A206 += go[173]; + m_A205 += go[174]; + m_A202 += go[175]; + m_A204 += go[176]; + double RHS43 = Idr[172]; + RHS43 += Idr[173]; + RHS43 += Idr[174]; + RHS43 += Idr[175]; + RHS43 += Idr[176]; + RHS43 += Idr[177]; + RHS43 -= go[177] * *cnV[177]; + m_A213 += gt[178]; + m_A213 += gt[179]; + m_A213 += gt[180]; + m_A213 += gt[181]; + m_A211 += go[178]; + m_A210 += go[179]; + m_A209 += go[180]; + double RHS44 = Idr[178]; + RHS44 += Idr[179]; + RHS44 += Idr[180]; + RHS44 += Idr[181]; + RHS44 -= go[181] * *cnV[181]; + m_A229 += gt[182]; + m_A229 += gt[183]; + m_A229 += gt[184]; + m_A229 += gt[185]; + m_A229 += gt[186]; + m_A229 += gt[187]; + m_A222 += go[182]; + m_A226 += go[183]; + m_A219 += go[184]; + m_A217 += go[185]; + m_A218 += go[186]; + double RHS45 = Idr[182]; + RHS45 += Idr[183]; + RHS45 += Idr[184]; + RHS45 += Idr[185]; + RHS45 += Idr[186]; + RHS45 += Idr[187]; + RHS45 -= go[187] * *cnV[187]; + m_A248 += gt[188]; + m_A248 += gt[189]; + m_A248 += gt[190]; + m_A248 += gt[191]; + m_A248 += gt[192]; + m_A248 += gt[193]; + m_A244 += go[188]; + m_A236 += go[189]; + m_A235 += go[190]; + m_A239 += go[191]; + m_A234 += go[192]; + double RHS46 = Idr[188]; + RHS46 += Idr[189]; + RHS46 += Idr[190]; + RHS46 += Idr[191]; + RHS46 += Idr[192]; + RHS46 += Idr[193]; + RHS46 -= go[193] * *cnV[193]; + m_A254 += gt[194]; + m_A254 += gt[195]; + m_A254 += gt[196]; + m_A253 += go[194]; + m_A252 += go[195]; + m_A257 += go[196]; + double RHS47 = Idr[194]; + RHS47 += Idr[195]; + RHS47 += Idr[196]; + m_A270 += gt[197]; + m_A270 += gt[198]; + m_A270 += gt[199]; + m_A270 += gt[200]; + m_A261 += go[197]; + m_A260 += go[198]; + m_A267 += go[199]; + m_A259 += go[200]; + double RHS48 = Idr[197]; + RHS48 += Idr[198]; + RHS48 += Idr[199]; + RHS48 += Idr[200]; + m_A282 += gt[201]; + m_A282 += gt[202]; + m_A282 += gt[203]; + m_A282 += gt[204]; + m_A282 += gt[205]; + m_A282 += gt[206]; + m_A282 += gt[207]; + m_A285 += go[201]; + m_A276 += go[202]; + m_A278 += go[203]; + m_A275 += go[204]; + m_A284 += go[205]; + double RHS49 = Idr[201]; + RHS49 += Idr[202]; + RHS49 += Idr[203]; + RHS49 += Idr[204]; + RHS49 += Idr[205]; + RHS49 += Idr[206]; + RHS49 += Idr[207]; + RHS49 -= go[206] * *cnV[206]; + RHS49 -= go[207] * *cnV[207]; + m_A294 += gt[208]; + m_A294 += gt[209]; + m_A294 += gt[210]; + m_A294 += gt[211]; + m_A294 += gt[212]; + m_A294 += gt[213]; + m_A294 += gt[214]; + m_A296 += go[208]; + m_A286 += go[209]; + m_A289 += go[210]; + m_A287 += go[211]; + m_A295 += go[212]; + double RHS50 = Idr[208]; + RHS50 += Idr[209]; + RHS50 += Idr[210]; + RHS50 += Idr[211]; + RHS50 += Idr[212]; + RHS50 += Idr[213]; + RHS50 += Idr[214]; + RHS50 -= go[213] * *cnV[213]; + RHS50 -= go[214] * *cnV[214]; + m_A313 += gt[215]; + m_A313 += gt[216]; + m_A313 += gt[217]; + m_A313 += gt[218]; + m_A313 += gt[219]; + m_A313 += gt[220]; + m_A313 += gt[221]; + m_A313 += gt[222]; + m_A313 += gt[223]; + m_A297 += go[215]; + m_A300 += go[216]; + m_A312 += go[217]; + m_A309 += go[218]; + m_A311 += go[219]; + m_A298 += go[220]; + m_A303 += go[221]; + m_A299 += go[222]; + m_A301 += go[223]; + double RHS51 = Idr[215]; + RHS51 += Idr[216]; + RHS51 += Idr[217]; + RHS51 += Idr[218]; + RHS51 += Idr[219]; + RHS51 += Idr[220]; + RHS51 += Idr[221]; + RHS51 += Idr[222]; + RHS51 += Idr[223]; + m_A327 += gt[224]; + m_A327 += gt[225]; + m_A327 += gt[226]; + m_A327 += gt[227]; + m_A327 += gt[228]; + m_A327 += gt[229]; + m_A327 += gt[230]; + m_A327 += gt[231]; + m_A316 += go[224]; + m_A325 += go[225]; + m_A315 += go[226]; + m_A324 += go[227]; + m_A319 += go[228]; + double RHS52 = Idr[224]; + RHS52 += Idr[225]; + RHS52 += Idr[226]; + RHS52 += Idr[227]; + RHS52 += Idr[228]; + RHS52 += Idr[229]; + RHS52 += Idr[230]; + RHS52 += Idr[231]; + RHS52 -= go[229] * *cnV[229]; + RHS52 -= go[230] * *cnV[230]; + RHS52 -= go[231] * *cnV[231]; + const double f0 = 1.0 / m_A0; + const double f0_23 = -f0 * m_A77; + m_A78 += m_A1 * f0_23; + RHS23 += f0_23 * RHS0; + const double f0_37 = -f0 * m_A155; + m_A156 += m_A1 * f0_37; + RHS37 += f0_37 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_24 = -f1 * m_A79; + m_A81 += m_A3 * f1_24; + RHS24 += f1_24 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_26 = -f2 * m_A87; + m_A89 += m_A5 * f2_26; + RHS26 += f2_26 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_24 = -f3 * m_A80; + m_A81 += m_A7 * f3_24; + m_A82 += m_A8 * f3_24; + m_A83 += m_A9 * f3_24; + RHS24 += f3_24 * RHS3; + const double f3_27 = -f3 * m_A92; + m_A94 += m_A7 * f3_27; + m_A95 += m_A8 * f3_27; + m_A96 += m_A9 * f3_27; + RHS27 += f3_27 * RHS3; + const double f3_30 = -f3 * m_A109; + m_A112 += m_A7 * f3_30; + m_A113 += m_A8 * f3_30; + m_A115 += m_A9 * f3_30; RHS30 += f3_30 * RHS3; - const double f3_49 = -f3 * m_A262; - m_A264 += m_A12 * f3_49; - m_A273 += m_A13 * f3_49; - RHS49 += f3_49 * RHS3; - const double f4 = 1.0 / m_A14; - const double f4_45 = -f4 * m_A208; - m_A211 += m_A15 * f4_45; - m_A213 += m_A16 * f4_45; - RHS45 += f4_45 * RHS4; - const double f4_51 = -f4 * m_A290; - m_A296 += m_A15 * f4_51; - m_A302 += m_A16 * f4_51; - RHS51 += f4_51 * RHS4; - const double f5 = 1.0 / m_A17; - const double f5_34 = -f5 * m_A125; - m_A126 += m_A18 * f5_34; - m_A127 += m_A19 * f5_34; - m_A128 += m_A20 * f5_34; - RHS34 += f5_34 * RHS5; - const double f5_45 = -f5 * m_A209; - m_A210 += m_A18 * f5_45; - m_A211 += m_A19 * f5_45; - m_A212 += m_A20 * f5_45; - RHS45 += f5_45 * RHS5; - const double f5_50 = -f5 * m_A276; - m_A278 += m_A18 * f5_50; - m_A283 += m_A19 * f5_50; - m_A288 += m_A20 * f5_50; - RHS50 += f5_50 * RHS5; - const double f6 = 1.0 / m_A21; - const double f6_24 = -f6 * m_A72; - m_A74 += m_A22 * f6_24; - RHS24 += f6_24 * RHS6; - const double f7 = 1.0 / m_A23; - const double f7_35 = -f7 * m_A129; - m_A130 += m_A24 * f7_35; - m_A131 += m_A25 * f7_35; - m_A132 += m_A26 * f7_35; - RHS35 += f7_35 * RHS7; - const double f7_46 = -f7 * m_A214; - m_A217 += m_A24 * f7_46; - m_A222 += m_A25 * f7_46; - m_A227 += m_A26 * f7_46; - RHS46 += f7_46 * RHS7; - const double f7_51 = -f7 * m_A291; - m_A293 += m_A24 * f7_51; - m_A297 += m_A25 * f7_51; - m_A302 += m_A26 * f7_51; - RHS51 += f7_51 * RHS7; - const double f8 = 1.0 / m_A27; - const double f8_30 = -f8 * m_A97; - m_A99 += m_A28 * f8_30; - m_A101 += m_A29 * f8_30; - RHS30 += f8_30 * RHS8; - const double f8_39 = -f8 * m_A150; - m_A155 += m_A28 * f8_39; - m_A158 += m_A29 * f8_39; - RHS39 += f8_39 * RHS8; - const double f9 = 1.0 / m_A30; - const double f9_24 = -f9 * m_A73; - m_A74 += m_A31 * f9_24; - m_A75 += m_A32 * f9_24; - m_A76 += m_A33 * f9_24; - RHS24 += f9_24 * RHS9; - const double f9_26 = -f9 * m_A80; - m_A81 += m_A31 * f9_26; - m_A82 += m_A32 * f9_26; - m_A83 += m_A33 * f9_26; - RHS26 += f9_26 * RHS9; - const double f9_39 = -f9 * m_A151; - m_A153 += m_A31 * f9_39; - m_A154 += m_A32 * f9_39; - m_A158 += m_A33 * f9_39; - RHS39 += f9_39 * RHS9; - const double f10 = 1.0 / m_A34; - const double f10_36 = -f10 * m_A133; - m_A137 += m_A35 * f10_36; - m_A138 += m_A36 * f10_36; - RHS36 += f10_36 * RHS10; - const double f10_39 = -f10 * m_A152; - m_A157 += m_A35 * f10_39; - m_A158 += m_A36 * f10_39; - RHS39 += f10_39 * RHS10; - const double f11 = 1.0 / m_A37; - const double f11_36 = -f11 * m_A134; - m_A137 += m_A38 * f11_36; - m_A143 += m_A39 * f11_36; - RHS36 += f11_36 * RHS11; - const double f11_50 = -f11 * m_A277; - m_A279 += m_A38 * f11_50; - m_A288 += m_A39 * f11_50; - RHS50 += f11_50 * RHS11; - const double f12 = 1.0 / m_A40; - const double f12_30 = -f12 * m_A98; - m_A99 += m_A41 * f12_30; - m_A100 += m_A42 * f12_30; - m_A102 += m_A43 * f12_30; - RHS30 += f12_30 * RHS12; - const double f12_32 = -f12 * m_A108; - m_A110 += m_A41 * f12_32; - m_A111 += m_A42 * f12_32; - m_A114 += m_A43 * f12_32; - RHS32 += f12_32 * RHS12; - const double f12_43 = -f12 * m_A189; - m_A191 += m_A41 * f12_43; - m_A192 += m_A42 * f12_43; - m_A195 += m_A43 * f12_43; - RHS43 += f12_43 * RHS12; - const double f13 = 1.0 / m_A44; - const double f13_31 = -f13 * m_A104; - m_A105 += m_A45 * f13_31; - m_A107 += m_A46 * f13_31; - RHS31 += f13_31 * RHS13; - const double f14 = 1.0 / m_A47; - const double f14_37 = -f14 * m_A144; - m_A145 += m_A48 * f14_37; - RHS37 += f14_37 * RHS14; - const double f15 = 1.0 / m_A49; - const double f15_40 = -f15 * m_A166; - m_A172 += m_A50 * f15_40; - RHS40 += f15_40 * RHS15; - const double f16 = 1.0 / m_A51; - const double f16_32 = -f16 * m_A109; - m_A113 += m_A52 * f16_32; - RHS32 += f16_32 * RHS16; - const double f17 = 1.0 / m_A53; - const double f17_33 = -f17 * m_A116; - m_A119 += m_A54 * f17_33; - m_A124 += m_A55 * f17_33; - RHS33 += f17_33 * RHS17; - const double f18 = 1.0 / m_A56; - const double f18_29 = -f18 * m_A92; - m_A94 += m_A57 * f18_29; - RHS29 += f18_29 * RHS18; - const double f19 = 1.0 / m_A58; - const double f19_33 = -f19 * m_A117; - m_A119 += m_A59 * f19_33; - m_A120 += m_A60 * f19_33; - m_A122 += m_A61 * f19_33; - RHS33 += f19_33 * RHS19; - const double f19_36 = -f19 * m_A135; - m_A136 += m_A59 * f19_36; - m_A137 += m_A60 * f19_36; - m_A140 += m_A61 * f19_36; - RHS36 += f19_36 * RHS19; - const double f19_46 = -f19 * m_A215; - m_A216 += m_A59 * f19_46; - m_A218 += m_A60 * f19_46; - m_A222 += m_A61 * f19_46; - RHS46 += f19_46 * RHS19; - const double f20 = 1.0 / m_A62; - const double f20_33 = -f20 * m_A118; - m_A119 += m_A63 * f20_33; - m_A123 += m_A64 * f20_33; - RHS33 += f20_33 * RHS20; - const double f20_47 = -f20 * m_A228; - m_A232 += m_A63 * f20_47; - m_A241 += m_A64 * f20_47; - RHS47 += f20_47 * RHS20; - const double f21 = 1.0 / m_A65; - const double f21_41 = -f21 * m_A180; - m_A182 += m_A66 * f21_41; - RHS41 += f21_41 * RHS21; - const double f22 = 1.0 / m_A67; - const double f22_29 = -f22 * m_A93; - m_A94 += m_A68 * f22_29; - m_A95 += m_A69 * f22_29; - RHS29 += f22_29 * RHS22; - const double f22_47 = -f22 * m_A229; - m_A231 += m_A68 * f22_47; - m_A241 += m_A69 * f22_47; - RHS47 += f22_47 * RHS22; - const double f23 = 1.0 / m_A70; - const double f23_38 = -f23 * m_A147; - m_A149 += m_A71 * f23_38; - RHS38 += f23_38 * RHS23; - const double f23_42 = -f23 * m_A183; - m_A186 += m_A71 * f23_42; - RHS42 += f23_42 * RHS23; - const double f24 = 1.0 / m_A74; - const double f24_26 = -f24 * m_A81; - m_A82 += m_A75 * f24_26; - m_A83 += m_A76 * f24_26; - RHS26 += f24_26 * RHS24; - const double f24_39 = -f24 * m_A153; - m_A154 += m_A75 * f24_39; - m_A158 += m_A76 * f24_39; - RHS39 += f24_39 * RHS24; - const double f25 = 1.0 / m_A77; - const double f25_42 = -f25 * m_A184; - m_A186 += m_A78 * f25_42; - m_A187 += m_A79 * f25_42; - RHS42 += f25_42 * RHS25; - const double f25_47 = -f25 * m_A230; - m_A238 += m_A78 * f25_47; - m_A241 += m_A79 * f25_47; - RHS47 += f25_47 * RHS25; - const double f26 = 1.0 / m_A82; - const double f26_39 = -f26 * m_A154; - m_A158 += m_A83 * f26_39; - RHS39 += f26_39 * RHS26; - const double f27 = 1.0 / m_A85; - const double f27_44 = -f27 * m_A204; - m_A205 += m_A86 * f27_44; - m_A207 += m_A87 * f27_44; - RHS44 += f27_44 * RHS27; - const double f27_49 = -f27 * m_A263; - m_A269 += m_A86 * f27_49; - m_A273 += m_A87 * f27_49; - RHS49 += f27_49 * RHS27; - const double f28 = 1.0 / m_A89; - const double f28_43 = -f28 * m_A190; - m_A195 += m_A90 * f28_43; - m_A198 += m_A91 * f28_43; - RHS43 += f28_43 * RHS28; - const double f28_48 = -f28 * m_A248; - m_A253 += m_A90 * f28_48; - m_A257 += m_A91 * f28_48; - RHS48 += f28_48 * RHS28; - const double f29 = 1.0 / m_A94; - const double f29_47 = -f29 * m_A231; - m_A241 += m_A95 * f29_47; - RHS47 += f29_47 * RHS29; - const double f30 = 1.0 / m_A99; - const double f30_32 = -f30 * m_A110; - m_A111 += m_A100 * f30_32; - m_A112 += m_A101 * f30_32; - m_A114 += m_A102 * f30_32; - m_A115 += m_A103 * f30_32; - RHS32 += f30_32 * RHS30; - const double f30_39 = -f30 * m_A155; - m_A156 += m_A100 * f30_39; - m_A158 += m_A101 * f30_39; - m_A160 += m_A102 * f30_39; - m_A164 += m_A103 * f30_39; - RHS39 += f30_39 * RHS30; - const double f30_43 = -f30 * m_A191; - m_A192 += m_A100 * f30_43; - m_A193 += m_A101 * f30_43; - m_A195 += m_A102 * f30_43; - m_A199 += m_A103 * f30_43; - RHS43 += f30_43 * RHS30; - const double f30_49 = -f30 * m_A264; - m_A265 += m_A100 * f30_49; - m_A266 += m_A101 * f30_49; - m_A268 += m_A102 * f30_49; - m_A273 += m_A103 * f30_49; - RHS49 += f30_49 * RHS30; - const double f31 = 1.0 / m_A105; - const double f31_40 = -f31 * m_A167; - m_A172 += m_A106 * f31_40; - m_A179 += m_A107 * f31_40; - RHS40 += f31_40 * RHS31; - const double f31_51 = -f31 * m_A292; - m_A294 += m_A106 * f31_51; - m_A302 += m_A107 * f31_51; - RHS51 += f31_51 * RHS31; - const double f32 = 1.0 / m_A111; - const double f32_39 = -f32 * m_A156; - m_A158 += m_A112 * f32_39; - m_A159 += m_A113 * f32_39; - m_A160 += m_A114 * f32_39; - m_A164 += m_A115 * f32_39; - RHS39 += f32_39 * RHS32; - const double f32_40 = -f32 * m_A168; - m_A171 += m_A112 * f32_40; - m_A172 += m_A113 * f32_40; - m_A173 += m_A114 * f32_40; - m_A177 += m_A115 * f32_40; - RHS40 += f32_40 * RHS32; - const double f32_43 = -f32 * m_A192; - m_A193 += m_A112 * f32_43; - m_A194 += m_A113 * f32_43; - m_A195 += m_A114 * f32_43; - m_A199 += m_A115 * f32_43; - RHS43 += f32_43 * RHS32; - const double f32_49 = -f32 * m_A265; - m_A266 += m_A112 * f32_49; - m_A267 += m_A113 * f32_49; - m_A268 += m_A114 * f32_49; - m_A273 += m_A115 * f32_49; - RHS49 += f32_49 * RHS32; - const double f33 = 1.0 / m_A119; - const double f33_36 = -f33 * m_A136; - m_A137 += m_A120 * f33_36; - m_A139 += m_A121 * f33_36; - m_A140 += m_A122 * f33_36; - m_A141 += m_A123 * f33_36; - m_A142 += m_A124 * f33_36; - RHS36 += f33_36 * RHS33; - const double f33_40 = -f33 * m_A169; - m_A170 += m_A120 * f33_40; - m_A172 += m_A121 * f33_40; - m_A174 += m_A122 * f33_40; - m_A175 += m_A123 * f33_40; - m_A176 += m_A124 * f33_40; - RHS40 += f33_40 * RHS33; - const double f33_46 = -f33 * m_A216; - m_A218 += m_A120 * f33_46; - m_A220 += m_A121 * f33_46; - m_A222 += m_A122 * f33_46; - m_A223 += m_A123 * f33_46; - m_A224 += m_A124 * f33_46; - RHS46 += f33_46 * RHS33; - const double f33_47 = -f33 * m_A232; - m_A233 += m_A120 * f33_47; - m_A236 += m_A121 * f33_47; - m_A240 += m_A122 * f33_47; - m_A241 += m_A123 * f33_47; - m_A242 += m_A124 * f33_47; - RHS47 += f33_47 * RHS33; - const double f33_48 = -f33 * m_A249; - m_A250 += m_A120 * f33_48; - m_A252 += m_A121 * f33_48; - m_A255 += m_A122 * f33_48; - m_A256 += m_A123 * f33_48; - m_A257 += m_A124 * f33_48; - RHS48 += f33_48 * RHS33; - const double f34 = 1.0 / m_A126; - const double f34_45 = -f34 * m_A210; - m_A211 += m_A127 * f34_45; - m_A212 += m_A128 * f34_45; - RHS45 += f34_45 * RHS34; - const double f34_50 = -f34 * m_A278; - m_A283 += m_A127 * f34_50; - m_A288 += m_A128 * f34_50; - RHS50 += f34_50 * RHS34; - const double f35 = 1.0 / m_A130; - const double f35_46 = -f35 * m_A217; - m_A222 += m_A131 * f35_46; - m_A227 += m_A132 * f35_46; - RHS46 += f35_46 * RHS35; - const double f35_51 = -f35 * m_A293; - m_A297 += m_A131 * f35_51; - m_A302 += m_A132 * f35_51; - RHS51 += f35_51 * RHS35; - const double f36 = 1.0 / m_A137; - const double f36_39 = -f36 * m_A157; - m_A158 += m_A138 * f36_39; - m_A159 += m_A139 * f36_39; - m_A161 += m_A140 * f36_39; - m_A162 += m_A141 * f36_39; - m_A163 += m_A142 * f36_39; - m_A165 += m_A143 * f36_39; - RHS39 += f36_39 * RHS36; - const double f36_40 = -f36 * m_A170; - m_A171 += m_A138 * f36_40; - m_A172 += m_A139 * f36_40; - m_A174 += m_A140 * f36_40; - m_A175 += m_A141 * f36_40; - m_A176 += m_A142 * f36_40; - m_A178 += m_A143 * f36_40; - RHS40 += f36_40 * RHS36; - const double f36_46 = -f36 * m_A218; - m_A219 += m_A138 * f36_46; - m_A220 += m_A139 * f36_46; - m_A222 += m_A140 * f36_46; - m_A223 += m_A141 * f36_46; - m_A224 += m_A142 * f36_46; - m_A226 += m_A143 * f36_46; - RHS46 += f36_46 * RHS36; - const double f36_47 = -f36 * m_A233; - m_A235 += m_A138 * f36_47; - m_A236 += m_A139 * f36_47; - m_A240 += m_A140 * f36_47; - m_A241 += m_A141 * f36_47; - m_A242 += m_A142 * f36_47; - m_A244 += m_A143 * f36_47; - RHS47 += f36_47 * RHS36; - const double f36_48 = -f36 * m_A250; - m_A251 += m_A138 * f36_48; - m_A252 += m_A139 * f36_48; - m_A255 += m_A140 * f36_48; - m_A256 += m_A141 * f36_48; - m_A257 += m_A142 * f36_48; - m_A259 += m_A143 * f36_48; - RHS48 += f36_48 * RHS36; - const double f36_50 = -f36 * m_A279; - m_A280 += m_A138 * f36_50; - m_A281 += m_A139 * f36_50; - m_A284 += m_A140 * f36_50; - m_A285 += m_A141 * f36_50; - m_A286 += m_A142 * f36_50; - m_A288 += m_A143 * f36_50; - RHS50 += f36_50 * RHS36; - const double f37 = 1.0 / m_A145; - const double f37_47 = -f37 * m_A234; - m_A241 += m_A146 * f37_47; - RHS47 += f37_47 * RHS37; - const double f38 = 1.0 / m_A148; - const double f38_42 = -f38 * m_A185; - m_A186 += m_A149 * f38_42; - RHS42 += f38_42 * RHS38; - const double f39 = 1.0 / m_A158; - const double f39_40 = -f39 * m_A171; - m_A172 += m_A159 * f39_40; - m_A173 += m_A160 * f39_40; - m_A174 += m_A161 * f39_40; - m_A175 += m_A162 * f39_40; - m_A176 += m_A163 * f39_40; - m_A177 += m_A164 * f39_40; - m_A178 += m_A165 * f39_40; - RHS40 += f39_40 * RHS39; - const double f39_43 = -f39 * m_A193; - m_A194 += m_A159 * f39_43; - m_A195 += m_A160 * f39_43; - m_A196 += m_A161 * f39_43; - m_A197 += m_A162 * f39_43; - m_A198 += m_A163 * f39_43; - m_A199 += m_A164 * f39_43; - m_A200 += m_A165 * f39_43; - RHS43 += f39_43 * RHS39; - const double f39_46 = -f39 * m_A219; - m_A220 += m_A159 * f39_46; - m_A221 += m_A160 * f39_46; - m_A222 += m_A161 * f39_46; - m_A223 += m_A162 * f39_46; - m_A224 += m_A163 * f39_46; - m_A225 += m_A164 * f39_46; - m_A226 += m_A165 * f39_46; - RHS46 += f39_46 * RHS39; - const double f39_47 = -f39 * m_A235; - m_A236 += m_A159 * f39_47; - m_A239 += m_A160 * f39_47; - m_A240 += m_A161 * f39_47; - m_A241 += m_A162 * f39_47; - m_A242 += m_A163 * f39_47; - m_A243 += m_A164 * f39_47; - m_A244 += m_A165 * f39_47; + const double f4 = 1.0 / m_A10; + const double f4_31 = -f4 * m_A120; + m_A122 += m_A11 * f4_31; + RHS31 += f4_31 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_26 = -f5 * m_A88; + m_A89 += m_A13 * f5_26; + m_A90 += m_A14 * f5_26; + m_A91 += m_A15 * f5_26; + RHS26 += f5_26 * RHS5; + const double f5_29 = -f5 * m_A105; + m_A106 += m_A13 * f5_29; + m_A107 += m_A14 * f5_29; + m_A108 += m_A15 * f5_29; + RHS29 += f5_29 * RHS5; + const double f5_46 = -f5 * m_A234; + m_A237 += m_A13 * f5_46; + m_A239 += m_A14 * f5_46; + m_A248 += m_A15 * f5_46; + RHS46 += f5_46 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_31 = -f6 * m_A121; + m_A122 += m_A17 * f6_31; + m_A123 += m_A18 * f6_31; + RHS31 += f6_31 * RHS6; + const double f6_45 = -f6 * m_A217; + m_A222 += m_A17 * f6_45; + m_A229 += m_A18 * f6_45; + RHS45 += f6_45 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_28 = -f7 * m_A100; + m_A102 += m_A20 * f7_28; + RHS28 += f7_28 * RHS7; + const double f8 = 1.0 / m_A21; + const double f8_27 = -f8 * m_A93; + m_A95 += m_A22 * f8_27; + m_A97 += m_A23 * f8_27; + m_A98 += m_A24 * f8_27; + m_A99 += m_A25 * f8_27; + RHS27 += f8_27 * RHS8; + const double f8_38 = -f8 * m_A158; + m_A161 += m_A22 * f8_38; + m_A166 += m_A23 * f8_38; + m_A168 += m_A24 * f8_38; + m_A169 += m_A25 * f8_38; + RHS38 += f8_38 * RHS8; + const double f8_45 = -f8 * m_A218; + m_A220 += m_A22 * f8_45; + m_A226 += m_A23 * f8_45; + m_A229 += m_A24 * f8_45; + m_A230 += m_A25 * f8_45; + RHS45 += f8_45 * RHS8; + const double f8_46 = -f8 * m_A235; + m_A238 += m_A22 * f8_46; + m_A244 += m_A23 * f8_46; + m_A247 += m_A24 * f8_46; + m_A248 += m_A25 * f8_46; + RHS46 += f8_46 * RHS8; + const double f9 = 1.0 / m_A26; + const double f9_28 = -f9 * m_A101; + m_A102 += m_A27 * f9_28; + m_A103 += m_A28 * f9_28; + m_A104 += m_A29 * f9_28; + RHS28 += f9_28 * RHS9; + const double f9_30 = -f9 * m_A110; + m_A114 += m_A27 * f9_30; + m_A115 += m_A28 * f9_30; + m_A116 += m_A29 * f9_30; + RHS30 += f9_30 * RHS9; + const double f9_32 = -f9 * m_A124; + m_A126 += m_A27 * f9_32; + m_A127 += m_A28 * f9_32; + m_A128 += m_A29 * f9_32; + RHS32 += f9_32 * RHS9; + const double f10 = 1.0 / m_A30; + const double f10_30 = -f10 * m_A111; + m_A115 += m_A31 * f10_30; + m_A117 += m_A32 * f10_30; + m_A118 += m_A33 * f10_30; + m_A119 += m_A34 * f10_30; + RHS30 += f10_30 * RHS10; + const double f10_38 = -f10 * m_A159; + m_A162 += m_A31 * f10_38; + m_A166 += m_A32 * f10_38; + m_A168 += m_A33 * f10_38; + m_A169 += m_A34 * f10_38; + RHS38 += f10_38 * RHS10; + const double f10_45 = -f10 * m_A219; + m_A221 += m_A31 * f10_45; + m_A226 += m_A32 * f10_45; + m_A229 += m_A33 * f10_45; + m_A230 += m_A34 * f10_45; + RHS45 += f10_45 * RHS10; + const double f10_46 = -f10 * m_A236; + m_A240 += m_A31 * f10_46; + m_A244 += m_A32 * f10_46; + m_A247 += m_A33 * f10_46; + m_A248 += m_A34 * f10_46; + RHS46 += f10_46 * RHS10; + const double f11 = 1.0 / m_A35; + const double f11_34 = -f11 * m_A142; + m_A144 += m_A36 * f11_34; + RHS34 += f11_34 * RHS11; + const double f12 = 1.0 / m_A37; + const double f12_32 = -f12 * m_A125; + m_A128 += m_A38 * f12_32; + m_A129 += m_A39 * f12_32; + m_A130 += m_A40 * f12_32; + RHS32 += f12_32 * RHS12; + const double f12_33 = -f12 * m_A134; + m_A135 += m_A38 * f12_33; + m_A136 += m_A39 * f12_33; + m_A137 += m_A40 * f12_33; + RHS33 += f12_33 * RHS12; + const double f13 = 1.0 / m_A41; + const double f13_36 = -f13 * m_A151; + m_A152 += m_A42 * f13_36; + m_A153 += m_A43 * f13_36; + RHS36 += f13_36 * RHS13; + const double f13_44 = -f13 * m_A209; + m_A212 += m_A42 * f13_44; + m_A213 += m_A43 * f13_44; + RHS44 += f13_44 * RHS13; + const double f14 = 1.0 / m_A44; + const double f14_41 = -f14 * m_A188; + m_A189 += m_A45 * f14_41; + m_A190 += m_A46 * f14_41; + RHS41 += f14_41 * RHS14; + const double f14_48 = -f14 * m_A259; + m_A265 += m_A45 * f14_48; + m_A270 += m_A46 * f14_48; + RHS48 += f14_48 * RHS14; + const double f15 = 1.0 / m_A47; + const double f15_34 = -f15 * m_A143; + m_A144 += m_A48 * f15_34; + m_A145 += m_A49 * f15_34; + RHS34 += f15_34 * RHS15; + const double f15_35 = -f15 * m_A146; + m_A147 += m_A48 * f15_35; + m_A148 += m_A49 * f15_35; + RHS35 += f15_35 * RHS15; + const double f16 = 1.0 / m_A50; + const double f16_39 = -f16 * m_A171; + m_A173 += m_A51 * f16_39; + m_A177 += m_A52 * f16_39; + RHS39 += f16_39 * RHS16; + const double f16_51 = -f16 * m_A297; + m_A302 += m_A51 * f16_51; + m_A313 += m_A52 * f16_51; + RHS51 += f16_51 * RHS16; + const double f17 = 1.0 / m_A53; + const double f17_43 = -f17 * m_A202; + m_A203 += m_A54 * f17_43; + m_A204 += m_A55 * f17_43; + m_A207 += m_A56 * f17_43; + RHS43 += f17_43 * RHS17; + const double f17_48 = -f17 * m_A260; + m_A267 += m_A54 * f17_48; + m_A270 += m_A55 * f17_48; + m_A273 += m_A56 * f17_48; + RHS48 += f17_48 * RHS17; + const double f17_51 = -f17 * m_A298; + m_A305 += m_A54 * f17_51; + m_A310 += m_A55 * f17_51; + m_A313 += m_A56 * f17_51; + RHS51 += f17_51 * RHS17; + const double f18 = 1.0 / m_A57; + const double f18_44 = -f18 * m_A210; + m_A213 += m_A58 * f18_44; + m_A214 += m_A59 * f18_44; + m_A216 += m_A60 * f18_44; + RHS44 += f18_44 * RHS18; + const double f18_49 = -f18 * m_A275; + m_A279 += m_A58 * f18_49; + m_A282 += m_A59 * f18_49; + m_A284 += m_A60 * f18_49; + RHS49 += f18_49 * RHS18; + const double f18_51 = -f18 * m_A299; + m_A306 += m_A58 * f18_51; + m_A311 += m_A59 * f18_51; + m_A313 += m_A60 * f18_51; + RHS51 += f18_51 * RHS18; + const double f19 = 1.0 / m_A61; + const double f19_39 = -f19 * m_A172; + m_A173 += m_A62 * f19_39; + m_A174 += m_A63 * f19_39; + m_A175 += m_A64 * f19_39; + m_A176 += m_A65 * f19_39; + m_A178 += m_A66 * f19_39; + RHS39 += f19_39 * RHS19; + const double f19_47 = -f19 * m_A252; + m_A253 += m_A62 * f19_47; + m_A254 += m_A63 * f19_47; + m_A255 += m_A64 * f19_47; + m_A256 += m_A65 * f19_47; + m_A258 += m_A66 * f19_47; + RHS47 += f19_47 * RHS19; + const double f19_49 = -f19 * m_A276; + m_A277 += m_A62 * f19_49; + m_A280 += m_A63 * f19_49; + m_A282 += m_A64 * f19_49; + m_A283 += m_A65 * f19_49; + m_A285 += m_A66 * f19_49; + RHS49 += f19_49 * RHS19; + const double f19_50 = -f19 * m_A286; + m_A288 += m_A62 * f19_50; + m_A291 += m_A63 * f19_50; + m_A293 += m_A64 * f19_50; + m_A294 += m_A65 * f19_50; + m_A296 += m_A66 * f19_50; + RHS50 += f19_50 * RHS19; + const double f19_52 = -f19 * m_A315; + m_A317 += m_A62 * f19_52; + m_A322 += m_A63 * f19_52; + m_A324 += m_A64 * f19_52; + m_A325 += m_A65 * f19_52; + m_A327 += m_A66 * f19_52; + RHS52 += f19_52 * RHS19; + const double f20 = 1.0 / m_A67; + const double f20_42 = -f20 * m_A192; + m_A196 += m_A68 * f20_42; + m_A200 += m_A69 * f20_42; + m_A201 += m_A70 * f20_42; + RHS42 += f20_42 * RHS20; + const double f20_51 = -f20 * m_A300; + m_A304 += m_A68 * f20_51; + m_A313 += m_A69 * f20_51; + m_A314 += m_A70 * f20_51; + RHS51 += f20_51 * RHS20; + const double f20_52 = -f20 * m_A316; + m_A318 += m_A68 * f20_52; + m_A326 += m_A69 * f20_52; + m_A327 += m_A70 * f20_52; + RHS52 += f20_52 * RHS20; + const double f21 = 1.0 / m_A71; + const double f21_38 = -f21 * m_A160; + m_A166 += m_A72 * f21_38; + m_A167 += m_A73 * f21_38; + RHS38 += f21_38 * RHS21; + const double f21_40 = -f21 * m_A179; + m_A182 += m_A72 * f21_40; + m_A183 += m_A73 * f21_40; + RHS40 += f21_40 * RHS21; + const double f22 = 1.0 / m_A74; + const double f22_40 = -f22 * m_A180; + m_A183 += m_A75 * f22_40; + m_A184 += m_A76 * f22_40; + RHS40 += f22_40 * RHS22; + const double f22_42 = -f22 * m_A193; + m_A195 += m_A75 * f22_42; + m_A196 += m_A76 * f22_42; + RHS42 += f22_42 * RHS22; + const double f23 = 1.0 / m_A78; + const double f23_37 = -f23 * m_A156; + RHS37 += f23_37 * RHS23; + const double f24 = 1.0 / m_A81; + const double f24_27 = -f24 * m_A94; + m_A95 += m_A82 * f24_27; + m_A96 += m_A83 * f24_27; + RHS27 += f24_27 * RHS24; + const double f24_30 = -f24 * m_A112; + m_A113 += m_A82 * f24_30; + m_A115 += m_A83 * f24_30; + RHS30 += f24_30 * RHS24; + const double f25 = 1.0 / m_A84; + const double f25_40 = -f25 * m_A181; + m_A183 += m_A85 * f25_40; + m_A184 += m_A86 * f25_40; + RHS40 += f25_40 * RHS25; + const double f25_42 = -f25 * m_A194; + m_A195 += m_A85 * f25_42; + m_A196 += m_A86 * f25_42; + RHS42 += f25_42 * RHS25; + const double f26 = 1.0 / m_A89; + const double f26_29 = -f26 * m_A106; + m_A107 += m_A90 * f26_29; + m_A108 += m_A91 * f26_29; + RHS29 += f26_29 * RHS26; + const double f26_46 = -f26 * m_A237; + m_A239 += m_A90 * f26_46; + m_A248 += m_A91 * f26_46; + RHS46 += f26_46 * RHS26; + const double f27 = 1.0 / m_A95; + const double f27_30 = -f27 * m_A113; + m_A115 += m_A96 * f27_30; + m_A117 += m_A97 * f27_30; + m_A118 += m_A98 * f27_30; + m_A119 += m_A99 * f27_30; + RHS30 += f27_30 * RHS27; + const double f27_38 = -f27 * m_A161; + m_A162 += m_A96 * f27_38; + m_A166 += m_A97 * f27_38; + m_A168 += m_A98 * f27_38; + m_A169 += m_A99 * f27_38; + RHS38 += f27_38 * RHS27; + const double f27_45 = -f27 * m_A220; + m_A221 += m_A96 * f27_45; + m_A226 += m_A97 * f27_45; + m_A229 += m_A98 * f27_45; + m_A230 += m_A99 * f27_45; + RHS45 += f27_45 * RHS27; + const double f27_46 = -f27 * m_A238; + m_A240 += m_A96 * f27_46; + m_A244 += m_A97 * f27_46; + m_A247 += m_A98 * f27_46; + m_A248 += m_A99 * f27_46; + RHS46 += f27_46 * RHS27; + const double f28 = 1.0 / m_A102; + const double f28_30 = -f28 * m_A114; + m_A115 += m_A103 * f28_30; + m_A116 += m_A104 * f28_30; + RHS30 += f28_30 * RHS28; + const double f28_32 = -f28 * m_A126; + m_A127 += m_A103 * f28_32; + m_A128 += m_A104 * f28_32; + RHS32 += f28_32 * RHS28; + const double f29 = 1.0 / m_A107; + const double f29_46 = -f29 * m_A239; + m_A248 += m_A108 * f29_46; + RHS46 += f29_46 * RHS29; + const double f30 = 1.0 / m_A115; + const double f30_32 = -f30 * m_A127; + m_A128 += m_A116 * f30_32; + m_A131 += m_A117 * f30_32; + m_A132 += m_A118 * f30_32; + m_A133 += m_A119 * f30_32; + RHS32 += f30_32 * RHS30; + const double f30_38 = -f30 * m_A162; + m_A163 += m_A116 * f30_38; + m_A166 += m_A117 * f30_38; + m_A168 += m_A118 * f30_38; + m_A169 += m_A119 * f30_38; + RHS38 += f30_38 * RHS30; + const double f30_45 = -f30 * m_A221; + m_A223 += m_A116 * f30_45; + m_A226 += m_A117 * f30_45; + m_A229 += m_A118 * f30_45; + m_A230 += m_A119 * f30_45; + RHS45 += f30_45 * RHS30; + const double f30_46 = -f30 * m_A240; + m_A241 += m_A116 * f30_46; + m_A244 += m_A117 * f30_46; + m_A247 += m_A118 * f30_46; + m_A248 += m_A119 * f30_46; + RHS46 += f30_46 * RHS30; + const double f31 = 1.0 / m_A122; + const double f31_45 = -f31 * m_A222; + m_A229 += m_A123 * f31_45; + RHS45 += f31_45 * RHS31; + const double f32 = 1.0 / m_A128; + const double f32_33 = -f32 * m_A135; + m_A136 += m_A129 * f32_33; + m_A137 += m_A130 * f32_33; + m_A138 += m_A131 * f32_33; + m_A139 += m_A132 * f32_33; + m_A140 += m_A133 * f32_33; + RHS33 += f32_33 * RHS32; + const double f32_38 = -f32 * m_A163; + m_A164 += m_A129 * f32_38; + m_A165 += m_A130 * f32_38; + m_A166 += m_A131 * f32_38; + m_A168 += m_A132 * f32_38; + m_A169 += m_A133 * f32_38; + RHS38 += f32_38 * RHS32; + const double f32_45 = -f32 * m_A223; + m_A224 += m_A129 * f32_45; + m_A225 += m_A130 * f32_45; + m_A226 += m_A131 * f32_45; + m_A229 += m_A132 * f32_45; + m_A230 += m_A133 * f32_45; + RHS45 += f32_45 * RHS32; + const double f32_46 = -f32 * m_A241; + m_A242 += m_A129 * f32_46; + m_A243 += m_A130 * f32_46; + m_A244 += m_A131 * f32_46; + m_A247 += m_A132 * f32_46; + m_A248 += m_A133 * f32_46; + RHS46 += f32_46 * RHS32; + const double f33 = 1.0 / m_A136; + const double f33_38 = -f33 * m_A164; + m_A165 += m_A137 * f33_38; + m_A166 += m_A138 * f33_38; + m_A168 += m_A139 * f33_38; + m_A169 += m_A140 * f33_38; + m_A170 += m_A141 * f33_38; + RHS38 += f33_38 * RHS33; + const double f33_45 = -f33 * m_A224; + m_A225 += m_A137 * f33_45; + m_A226 += m_A138 * f33_45; + m_A229 += m_A139 * f33_45; + m_A230 += m_A140 * f33_45; + m_A231 += m_A141 * f33_45; + RHS45 += f33_45 * RHS33; + const double f33_46 = -f33 * m_A242; + m_A243 += m_A137 * f33_46; + m_A244 += m_A138 * f33_46; + m_A247 += m_A139 * f33_46; + m_A248 += m_A140 * f33_46; + m_A249 += m_A141 * f33_46; + RHS46 += f33_46 * RHS33; + const double f33_48 = -f33 * m_A261; + m_A262 += m_A137 * f33_48; + m_A263 += m_A138 * f33_48; + m_A268 += m_A139 * f33_48; + m_A269 += m_A140 * f33_48; + m_A270 += m_A141 * f33_48; + RHS48 += f33_48 * RHS33; + const double f34 = 1.0 / m_A144; + const double f34_35 = -f34 * m_A147; + m_A148 += m_A145 * f34_35; + RHS35 += f34_35 * RHS34; + const double f35 = 1.0 / m_A148; + const double f35_44 = -f35 * m_A211; + m_A213 += m_A149 * f35_44; + m_A215 += m_A150 * f35_44; + RHS44 += f35_44 * RHS35; + const double f35_50 = -f35 * m_A287; + m_A290 += m_A149 * f35_50; + m_A294 += m_A150 * f35_50; + RHS50 += f35_50 * RHS35; + const double f36 = 1.0 / m_A152; + const double f36_44 = -f36 * m_A212; + m_A213 += m_A153 * f36_44; + m_A216 += m_A154 * f36_44; + RHS44 += f36_44 * RHS36; + const double f36_51 = -f36 * m_A301; + m_A306 += m_A153 * f36_51; + m_A313 += m_A154 * f36_51; + RHS51 += f36_51 * RHS36; + const double f37 = 1.0 / m_A157; + const double f37_38 = -f37 * m_A165; + RHS38 += f37_38 * RHS37; + const double f37_45 = -f37 * m_A225; + RHS45 += f37_45 * RHS37; + const double f37_46 = -f37 * m_A243; + RHS46 += f37_46 * RHS37; + const double f37_48 = -f37 * m_A262; + RHS48 += f37_48 * RHS37; + const double f38 = 1.0 / m_A166; + const double f38_40 = -f38 * m_A182; + m_A183 += m_A167 * f38_40; + m_A185 += m_A168 * f38_40; + m_A186 += m_A169 * f38_40; + m_A187 += m_A170 * f38_40; + RHS40 += f38_40 * RHS38; + const double f38_45 = -f38 * m_A226; + m_A227 += m_A167 * f38_45; + m_A229 += m_A168 * f38_45; + m_A230 += m_A169 * f38_45; + m_A231 += m_A170 * f38_45; + RHS45 += f38_45 * RHS38; + const double f38_46 = -f38 * m_A244; + m_A245 += m_A167 * f38_46; + m_A247 += m_A168 * f38_46; + m_A248 += m_A169 * f38_46; + m_A249 += m_A170 * f38_46; + RHS46 += f38_46 * RHS38; + const double f38_48 = -f38 * m_A263; + m_A264 += m_A167 * f38_48; + m_A268 += m_A168 * f38_48; + m_A269 += m_A169 * f38_48; + m_A270 += m_A170 * f38_48; + RHS48 += f38_48 * RHS38; + const double f39 = 1.0 / m_A173; + const double f39_47 = -f39 * m_A253; + m_A254 += m_A174 * f39_47; + m_A255 += m_A175 * f39_47; + m_A256 += m_A176 * f39_47; + m_A257 += m_A177 * f39_47; + m_A258 += m_A178 * f39_47; RHS47 += f39_47 * RHS39; - const double f39_48 = -f39 * m_A251; - m_A252 += m_A159 * f39_48; - m_A253 += m_A160 * f39_48; - m_A255 += m_A161 * f39_48; - m_A256 += m_A162 * f39_48; - m_A257 += m_A163 * f39_48; - m_A258 += m_A164 * f39_48; - m_A259 += m_A165 * f39_48; - RHS48 += f39_48 * RHS39; - const double f39_49 = -f39 * m_A266; - m_A267 += m_A159 * f39_49; - m_A268 += m_A160 * f39_49; - m_A270 += m_A161 * f39_49; - m_A271 += m_A162 * f39_49; - m_A272 += m_A163 * f39_49; - m_A273 += m_A164 * f39_49; - m_A274 += m_A165 * f39_49; + const double f39_49 = -f39 * m_A277; + m_A280 += m_A174 * f39_49; + m_A282 += m_A175 * f39_49; + m_A283 += m_A176 * f39_49; + m_A284 += m_A177 * f39_49; + m_A285 += m_A178 * f39_49; RHS49 += f39_49 * RHS39; - const double f39_50 = -f39 * m_A280; - m_A281 += m_A159 * f39_50; - m_A282 += m_A160 * f39_50; - m_A284 += m_A161 * f39_50; - m_A285 += m_A162 * f39_50; - m_A286 += m_A163 * f39_50; - m_A287 += m_A164 * f39_50; - m_A288 += m_A165 * f39_50; + const double f39_50 = -f39 * m_A288; + m_A291 += m_A174 * f39_50; + m_A293 += m_A175 * f39_50; + m_A294 += m_A176 * f39_50; + m_A295 += m_A177 * f39_50; + m_A296 += m_A178 * f39_50; RHS50 += f39_50 * RHS39; - const double f40 = 1.0 / m_A172; - const double f40_43 = -f40 * m_A194; - m_A195 += m_A173 * f40_43; - m_A196 += m_A174 * f40_43; - m_A197 += m_A175 * f40_43; - m_A198 += m_A176 * f40_43; - m_A199 += m_A177 * f40_43; - m_A200 += m_A178 * f40_43; - m_A201 += m_A179 * f40_43; - RHS43 += f40_43 * RHS40; - const double f40_46 = -f40 * m_A220; - m_A221 += m_A173 * f40_46; - m_A222 += m_A174 * f40_46; - m_A223 += m_A175 * f40_46; - m_A224 += m_A176 * f40_46; - m_A225 += m_A177 * f40_46; - m_A226 += m_A178 * f40_46; - m_A227 += m_A179 * f40_46; + const double f39_51 = -f39 * m_A302; + m_A309 += m_A174 * f39_51; + m_A311 += m_A175 * f39_51; + m_A312 += m_A176 * f39_51; + m_A313 += m_A177 * f39_51; + m_A314 += m_A178 * f39_51; + RHS51 += f39_51 * RHS39; + const double f39_52 = -f39 * m_A317; + m_A322 += m_A174 * f39_52; + m_A324 += m_A175 * f39_52; + m_A325 += m_A176 * f39_52; + m_A326 += m_A177 * f39_52; + m_A327 += m_A178 * f39_52; + RHS52 += f39_52 * RHS39; + const double f40 = 1.0 / m_A183; + const double f40_42 = -f40 * m_A195; + m_A196 += m_A184 * f40_42; + m_A197 += m_A185 * f40_42; + m_A198 += m_A186 * f40_42; + m_A199 += m_A187 * f40_42; + RHS42 += f40_42 * RHS40; + const double f40_45 = -f40 * m_A227; + m_A228 += m_A184 * f40_45; + m_A229 += m_A185 * f40_45; + m_A230 += m_A186 * f40_45; + m_A231 += m_A187 * f40_45; + RHS45 += f40_45 * RHS40; + const double f40_46 = -f40 * m_A245; + m_A246 += m_A184 * f40_46; + m_A247 += m_A185 * f40_46; + m_A248 += m_A186 * f40_46; + m_A249 += m_A187 * f40_46; RHS46 += f40_46 * RHS40; - const double f40_47 = -f40 * m_A236; - m_A239 += m_A173 * f40_47; - m_A240 += m_A174 * f40_47; - m_A241 += m_A175 * f40_47; - m_A242 += m_A176 * f40_47; - m_A243 += m_A177 * f40_47; - m_A244 += m_A178 * f40_47; - m_A245 += m_A179 * f40_47; - RHS47 += f40_47 * RHS40; - const double f40_48 = -f40 * m_A252; - m_A253 += m_A173 * f40_48; - m_A255 += m_A174 * f40_48; - m_A256 += m_A175 * f40_48; - m_A257 += m_A176 * f40_48; - m_A258 += m_A177 * f40_48; - m_A259 += m_A178 * f40_48; - m_A260 += m_A179 * f40_48; + const double f40_48 = -f40 * m_A264; + m_A266 += m_A184 * f40_48; + m_A268 += m_A185 * f40_48; + m_A269 += m_A186 * f40_48; + m_A270 += m_A187 * f40_48; RHS48 += f40_48 * RHS40; - const double f40_49 = -f40 * m_A267; - m_A268 += m_A173 * f40_49; - m_A270 += m_A174 * f40_49; - m_A271 += m_A175 * f40_49; - m_A272 += m_A176 * f40_49; - m_A273 += m_A177 * f40_49; - m_A274 += m_A178 * f40_49; - m_A275 += m_A179 * f40_49; - RHS49 += f40_49 * RHS40; - const double f40_50 = -f40 * m_A281; - m_A282 += m_A173 * f40_50; - m_A284 += m_A174 * f40_50; - m_A285 += m_A175 * f40_50; - m_A286 += m_A176 * f40_50; - m_A287 += m_A177 * f40_50; - m_A288 += m_A178 * f40_50; - m_A289 += m_A179 * f40_50; - RHS50 += f40_50 * RHS40; - const double f40_51 = -f40 * m_A294; - m_A295 += m_A173 * f40_51; - m_A297 += m_A174 * f40_51; - m_A298 += m_A175 * f40_51; - m_A299 += m_A176 * f40_51; - m_A300 += m_A177 * f40_51; - m_A301 += m_A178 * f40_51; - m_A302 += m_A179 * f40_51; - RHS51 += f40_51 * RHS40; - const double f41 = 1.0 / m_A181; - const double f41_47 = -f41 * m_A237; - m_A241 += m_A182 * f41_47; - RHS47 += f41_47 * RHS41; - const double f42 = 1.0 / m_A186; - const double f42_47 = -f42 * m_A238; - m_A241 += m_A187 * f42_47; - RHS47 += f42_47 * RHS42; - const double f43 = 1.0 / m_A195; - const double f43_46 = -f43 * m_A221; - m_A222 += m_A196 * f43_46; - m_A223 += m_A197 * f43_46; - m_A224 += m_A198 * f43_46; - m_A225 += m_A199 * f43_46; - m_A226 += m_A200 * f43_46; - m_A227 += m_A201 * f43_46; - RHS46 += f43_46 * RHS43; - const double f43_47 = -f43 * m_A239; - m_A240 += m_A196 * f43_47; - m_A241 += m_A197 * f43_47; - m_A242 += m_A198 * f43_47; - m_A243 += m_A199 * f43_47; - m_A244 += m_A200 * f43_47; - m_A245 += m_A201 * f43_47; - RHS47 += f43_47 * RHS43; - const double f43_48 = -f43 * m_A253; - m_A255 += m_A196 * f43_48; - m_A256 += m_A197 * f43_48; - m_A257 += m_A198 * f43_48; - m_A258 += m_A199 * f43_48; - m_A259 += m_A200 * f43_48; - m_A260 += m_A201 * f43_48; + const double f41 = 1.0 / m_A189; + const double f41_48 = -f41 * m_A265; + m_A270 += m_A190 * f41_48; + m_A273 += m_A191 * f41_48; + RHS48 += f41_48 * RHS41; + const double f41_51 = -f41 * m_A303; + m_A310 += m_A190 * f41_51; + m_A313 += m_A191 * f41_51; + RHS51 += f41_51 * RHS41; + const double f42 = 1.0 / m_A196; + const double f42_45 = -f42 * m_A228; + m_A229 += m_A197 * f42_45; + m_A230 += m_A198 * f42_45; + m_A231 += m_A199 * f42_45; + m_A232 += m_A200 * f42_45; + m_A233 += m_A201 * f42_45; + RHS45 += f42_45 * RHS42; + const double f42_46 = -f42 * m_A246; + m_A247 += m_A197 * f42_46; + m_A248 += m_A198 * f42_46; + m_A249 += m_A199 * f42_46; + m_A250 += m_A200 * f42_46; + m_A251 += m_A201 * f42_46; + RHS46 += f42_46 * RHS42; + const double f42_48 = -f42 * m_A266; + m_A268 += m_A197 * f42_48; + m_A269 += m_A198 * f42_48; + m_A270 += m_A199 * f42_48; + m_A273 += m_A200 * f42_48; + m_A274 += m_A201 * f42_48; + RHS48 += f42_48 * RHS42; + const double f42_51 = -f42 * m_A304; + m_A307 += m_A197 * f42_51; + m_A308 += m_A198 * f42_51; + m_A310 += m_A199 * f42_51; + m_A313 += m_A200 * f42_51; + m_A314 += m_A201 * f42_51; + RHS51 += f42_51 * RHS42; + const double f42_52 = -f42 * m_A318; + m_A320 += m_A197 * f42_52; + m_A321 += m_A198 * f42_52; + m_A323 += m_A199 * f42_52; + m_A326 += m_A200 * f42_52; + m_A327 += m_A201 * f42_52; + RHS52 += f42_52 * RHS42; + const double f43 = 1.0 / m_A203; + const double f43_48 = -f43 * m_A267; + m_A270 += m_A204 * f43_48; + m_A271 += m_A205 * f43_48; + m_A272 += m_A206 * f43_48; + m_A273 += m_A207 * f43_48; + m_A274 += m_A208 * f43_48; RHS48 += f43_48 * RHS43; - const double f43_49 = -f43 * m_A268; - m_A270 += m_A196 * f43_49; - m_A271 += m_A197 * f43_49; - m_A272 += m_A198 * f43_49; - m_A273 += m_A199 * f43_49; - m_A274 += m_A200 * f43_49; - m_A275 += m_A201 * f43_49; + const double f43_49 = -f43 * m_A278; + m_A281 += m_A204 * f43_49; + m_A282 += m_A205 * f43_49; + m_A283 += m_A206 * f43_49; + m_A284 += m_A207 * f43_49; + m_A285 += m_A208 * f43_49; RHS49 += f43_49 * RHS43; - const double f43_50 = -f43 * m_A282; - m_A284 += m_A196 * f43_50; - m_A285 += m_A197 * f43_50; - m_A286 += m_A198 * f43_50; - m_A287 += m_A199 * f43_50; - m_A288 += m_A200 * f43_50; - m_A289 += m_A201 * f43_50; + const double f43_50 = -f43 * m_A289; + m_A292 += m_A204 * f43_50; + m_A293 += m_A205 * f43_50; + m_A294 += m_A206 * f43_50; + m_A295 += m_A207 * f43_50; + m_A296 += m_A208 * f43_50; RHS50 += f43_50 * RHS43; - const double f43_51 = -f43 * m_A295; - m_A297 += m_A196 * f43_51; - m_A298 += m_A197 * f43_51; - m_A299 += m_A198 * f43_51; - m_A300 += m_A199 * f43_51; - m_A301 += m_A200 * f43_51; - m_A302 += m_A201 * f43_51; + const double f43_51 = -f43 * m_A305; + m_A310 += m_A204 * f43_51; + m_A311 += m_A205 * f43_51; + m_A312 += m_A206 * f43_51; + m_A313 += m_A207 * f43_51; + m_A314 += m_A208 * f43_51; RHS51 += f43_51 * RHS43; - const double f44 = 1.0 / m_A205; - const double f44_48 = -f44 * m_A254; - m_A257 += m_A206 * f44_48; - m_A258 += m_A207 * f44_48; - RHS48 += f44_48 * RHS44; - const double f44_49 = -f44 * m_A269; - m_A272 += m_A206 * f44_49; - m_A273 += m_A207 * f44_49; + const double f43_52 = -f43 * m_A319; + m_A323 += m_A204 * f43_52; + m_A324 += m_A205 * f43_52; + m_A325 += m_A206 * f43_52; + m_A326 += m_A207 * f43_52; + m_A327 += m_A208 * f43_52; + RHS52 += f43_52 * RHS43; + const double f44 = 1.0 / m_A213; + const double f44_49 = -f44 * m_A279; + m_A282 += m_A214 * f44_49; + m_A283 += m_A215 * f44_49; + m_A284 += m_A216 * f44_49; RHS49 += f44_49 * RHS44; - const double f45 = 1.0 / m_A211; - const double f45_50 = -f45 * m_A283; - m_A288 += m_A212 * f45_50; - m_A289 += m_A213 * f45_50; - RHS50 += f45_50 * RHS45; - const double f45_51 = -f45 * m_A296; - m_A301 += m_A212 * f45_51; - m_A302 += m_A213 * f45_51; + const double f44_50 = -f44 * m_A290; + m_A293 += m_A214 * f44_50; + m_A294 += m_A215 * f44_50; + m_A295 += m_A216 * f44_50; + RHS50 += f44_50 * RHS44; + const double f44_51 = -f44 * m_A306; + m_A311 += m_A214 * f44_51; + m_A312 += m_A215 * f44_51; + m_A313 += m_A216 * f44_51; + RHS51 += f44_51 * RHS44; + const double f45 = 1.0 / m_A229; + const double f45_46 = -f45 * m_A247; + m_A248 += m_A230 * f45_46; + m_A249 += m_A231 * f45_46; + m_A250 += m_A232 * f45_46; + m_A251 += m_A233 * f45_46; + RHS46 += f45_46 * RHS45; + const double f45_48 = -f45 * m_A268; + m_A269 += m_A230 * f45_48; + m_A270 += m_A231 * f45_48; + m_A273 += m_A232 * f45_48; + m_A274 += m_A233 * f45_48; + RHS48 += f45_48 * RHS45; + const double f45_51 = -f45 * m_A307; + m_A308 += m_A230 * f45_51; + m_A310 += m_A231 * f45_51; + m_A313 += m_A232 * f45_51; + m_A314 += m_A233 * f45_51; RHS51 += f45_51 * RHS45; - const double f46 = 1.0 / m_A222; - const double f46_47 = -f46 * m_A240; - m_A241 += m_A223 * f46_47; - m_A242 += m_A224 * f46_47; - m_A243 += m_A225 * f46_47; - m_A244 += m_A226 * f46_47; - m_A245 += m_A227 * f46_47; - RHS47 += f46_47 * RHS46; - const double f46_48 = -f46 * m_A255; - m_A256 += m_A223 * f46_48; - m_A257 += m_A224 * f46_48; - m_A258 += m_A225 * f46_48; - m_A259 += m_A226 * f46_48; - m_A260 += m_A227 * f46_48; + const double f45_52 = -f45 * m_A320; + m_A321 += m_A230 * f45_52; + m_A323 += m_A231 * f45_52; + m_A326 += m_A232 * f45_52; + m_A327 += m_A233 * f45_52; + RHS52 += f45_52 * RHS45; + const double f46 = 1.0 / m_A248; + const double f46_48 = -f46 * m_A269; + m_A270 += m_A249 * f46_48; + m_A273 += m_A250 * f46_48; + m_A274 += m_A251 * f46_48; RHS48 += f46_48 * RHS46; - const double f46_49 = -f46 * m_A270; - m_A271 += m_A223 * f46_49; - m_A272 += m_A224 * f46_49; - m_A273 += m_A225 * f46_49; - m_A274 += m_A226 * f46_49; - m_A275 += m_A227 * f46_49; - RHS49 += f46_49 * RHS46; - const double f46_50 = -f46 * m_A284; - m_A285 += m_A223 * f46_50; - m_A286 += m_A224 * f46_50; - m_A287 += m_A225 * f46_50; - m_A288 += m_A226 * f46_50; - m_A289 += m_A227 * f46_50; - RHS50 += f46_50 * RHS46; - const double f46_51 = -f46 * m_A297; - m_A298 += m_A223 * f46_51; - m_A299 += m_A224 * f46_51; - m_A300 += m_A225 * f46_51; - m_A301 += m_A226 * f46_51; - m_A302 += m_A227 * f46_51; + const double f46_51 = -f46 * m_A308; + m_A310 += m_A249 * f46_51; + m_A313 += m_A250 * f46_51; + m_A314 += m_A251 * f46_51; RHS51 += f46_51 * RHS46; - const double f47 = 1.0 / m_A241; - const double f47_48 = -f47 * m_A256; - m_A257 += m_A242 * f47_48; - m_A258 += m_A243 * f47_48; - m_A259 += m_A244 * f47_48; - m_A260 += m_A245 * f47_48; - RHS48 += f47_48 * RHS47; - const double f47_49 = -f47 * m_A271; - m_A272 += m_A242 * f47_49; - m_A273 += m_A243 * f47_49; - m_A274 += m_A244 * f47_49; - m_A275 += m_A245 * f47_49; + const double f46_52 = -f46 * m_A321; + m_A323 += m_A249 * f46_52; + m_A326 += m_A250 * f46_52; + m_A327 += m_A251 * f46_52; + RHS52 += f46_52 * RHS46; + const double f47 = 1.0 / m_A254; + const double f47_49 = -f47 * m_A280; + m_A282 += m_A255 * f47_49; + m_A283 += m_A256 * f47_49; + m_A284 += m_A257 * f47_49; + m_A285 += m_A258 * f47_49; RHS49 += f47_49 * RHS47; - const double f47_50 = -f47 * m_A285; - m_A286 += m_A242 * f47_50; - m_A287 += m_A243 * f47_50; - m_A288 += m_A244 * f47_50; - m_A289 += m_A245 * f47_50; + const double f47_50 = -f47 * m_A291; + m_A293 += m_A255 * f47_50; + m_A294 += m_A256 * f47_50; + m_A295 += m_A257 * f47_50; + m_A296 += m_A258 * f47_50; RHS50 += f47_50 * RHS47; - const double f47_51 = -f47 * m_A298; - m_A299 += m_A242 * f47_51; - m_A300 += m_A243 * f47_51; - m_A301 += m_A244 * f47_51; - m_A302 += m_A245 * f47_51; + const double f47_51 = -f47 * m_A309; + m_A311 += m_A255 * f47_51; + m_A312 += m_A256 * f47_51; + m_A313 += m_A257 * f47_51; + m_A314 += m_A258 * f47_51; RHS51 += f47_51 * RHS47; - const double f48 = 1.0 / m_A257; - const double f48_49 = -f48 * m_A272; - m_A273 += m_A258 * f48_49; - m_A274 += m_A259 * f48_49; - m_A275 += m_A260 * f48_49; + const double f47_52 = -f47 * m_A322; + m_A324 += m_A255 * f47_52; + m_A325 += m_A256 * f47_52; + m_A326 += m_A257 * f47_52; + m_A327 += m_A258 * f47_52; + RHS52 += f47_52 * RHS47; + const double f48 = 1.0 / m_A270; + const double f48_49 = -f48 * m_A281; + m_A282 += m_A271 * f48_49; + m_A283 += m_A272 * f48_49; + m_A284 += m_A273 * f48_49; + m_A285 += m_A274 * f48_49; RHS49 += f48_49 * RHS48; - const double f48_50 = -f48 * m_A286; - m_A287 += m_A258 * f48_50; - m_A288 += m_A259 * f48_50; - m_A289 += m_A260 * f48_50; + const double f48_50 = -f48 * m_A292; + m_A293 += m_A271 * f48_50; + m_A294 += m_A272 * f48_50; + m_A295 += m_A273 * f48_50; + m_A296 += m_A274 * f48_50; RHS50 += f48_50 * RHS48; - const double f48_51 = -f48 * m_A299; - m_A300 += m_A258 * f48_51; - m_A301 += m_A259 * f48_51; - m_A302 += m_A260 * f48_51; + const double f48_51 = -f48 * m_A310; + m_A311 += m_A271 * f48_51; + m_A312 += m_A272 * f48_51; + m_A313 += m_A273 * f48_51; + m_A314 += m_A274 * f48_51; RHS51 += f48_51 * RHS48; - const double f49 = 1.0 / m_A273; - const double f49_50 = -f49 * m_A287; - m_A288 += m_A274 * f49_50; - m_A289 += m_A275 * f49_50; + const double f48_52 = -f48 * m_A323; + m_A324 += m_A271 * f48_52; + m_A325 += m_A272 * f48_52; + m_A326 += m_A273 * f48_52; + m_A327 += m_A274 * f48_52; + RHS52 += f48_52 * RHS48; + const double f49 = 1.0 / m_A282; + const double f49_50 = -f49 * m_A293; + m_A294 += m_A283 * f49_50; + m_A295 += m_A284 * f49_50; + m_A296 += m_A285 * f49_50; RHS50 += f49_50 * RHS49; - const double f49_51 = -f49 * m_A300; - m_A301 += m_A274 * f49_51; - m_A302 += m_A275 * f49_51; + const double f49_51 = -f49 * m_A311; + m_A312 += m_A283 * f49_51; + m_A313 += m_A284 * f49_51; + m_A314 += m_A285 * f49_51; RHS51 += f49_51 * RHS49; - const double f50 = 1.0 / m_A288; - const double f50_51 = -f50 * m_A301; - m_A302 += m_A289 * f50_51; + const double f49_52 = -f49 * m_A324; + m_A325 += m_A283 * f49_52; + m_A326 += m_A284 * f49_52; + m_A327 += m_A285 * f49_52; + RHS52 += f49_52 * RHS49; + const double f50 = 1.0 / m_A294; + const double f50_51 = -f50 * m_A312; + m_A313 += m_A295 * f50_51; + m_A314 += m_A296 * f50_51; RHS51 += f50_51 * RHS50; - V[51] = RHS51 / m_A302; + const double f50_52 = -f50 * m_A325; + m_A326 += m_A295 * f50_52; + m_A327 += m_A296 * f50_52; + RHS52 += f50_52 * RHS50; + const double f51 = 1.0 / m_A313; + const double f51_52 = -f51 * m_A326; + m_A327 += m_A314 * f51_52; + RHS52 += f51_52 * RHS51; + V[52] = RHS52 / m_A327; + double tmp51 = 0.0; + tmp51 += m_A314 * V[52]; + V[51] = (RHS51 - tmp51) / m_A313; double tmp50 = 0.0; - tmp50 += m_A289 * V[51]; - V[50] = (RHS50 - tmp50) / m_A288; + tmp50 += m_A295 * V[51]; + tmp50 += m_A296 * V[52]; + V[50] = (RHS50 - tmp50) / m_A294; double tmp49 = 0.0; - tmp49 += m_A274 * V[50]; - tmp49 += m_A275 * V[51]; - V[49] = (RHS49 - tmp49) / m_A273; + tmp49 += m_A283 * V[50]; + tmp49 += m_A284 * V[51]; + tmp49 += m_A285 * V[52]; + V[49] = (RHS49 - tmp49) / m_A282; double tmp48 = 0.0; - tmp48 += m_A258 * V[49]; - tmp48 += m_A259 * V[50]; - tmp48 += m_A260 * V[51]; - V[48] = (RHS48 - tmp48) / m_A257; + tmp48 += m_A271 * V[49]; + tmp48 += m_A272 * V[50]; + tmp48 += m_A273 * V[51]; + tmp48 += m_A274 * V[52]; + V[48] = (RHS48 - tmp48) / m_A270; double tmp47 = 0.0; - tmp47 += m_A242 * V[48]; - tmp47 += m_A243 * V[49]; - tmp47 += m_A244 * V[50]; - tmp47 += m_A245 * V[51]; - V[47] = (RHS47 - tmp47) / m_A241; + tmp47 += m_A255 * V[49]; + tmp47 += m_A256 * V[50]; + tmp47 += m_A257 * V[51]; + tmp47 += m_A258 * V[52]; + V[47] = (RHS47 - tmp47) / m_A254; double tmp46 = 0.0; - tmp46 += m_A223 * V[47]; - tmp46 += m_A224 * V[48]; - tmp46 += m_A225 * V[49]; - tmp46 += m_A226 * V[50]; - tmp46 += m_A227 * V[51]; - V[46] = (RHS46 - tmp46) / m_A222; + tmp46 += m_A249 * V[48]; + tmp46 += m_A250 * V[51]; + tmp46 += m_A251 * V[52]; + V[46] = (RHS46 - tmp46) / m_A248; double tmp45 = 0.0; - tmp45 += m_A212 * V[50]; - tmp45 += m_A213 * V[51]; - V[45] = (RHS45 - tmp45) / m_A211; + tmp45 += m_A230 * V[46]; + tmp45 += m_A231 * V[48]; + tmp45 += m_A232 * V[51]; + tmp45 += m_A233 * V[52]; + V[45] = (RHS45 - tmp45) / m_A229; double tmp44 = 0.0; - tmp44 += m_A206 * V[48]; - tmp44 += m_A207 * V[49]; - V[44] = (RHS44 - tmp44) / m_A205; + tmp44 += m_A214 * V[49]; + tmp44 += m_A215 * V[50]; + tmp44 += m_A216 * V[51]; + V[44] = (RHS44 - tmp44) / m_A213; double tmp43 = 0.0; - tmp43 += m_A196 * V[46]; - tmp43 += m_A197 * V[47]; - tmp43 += m_A198 * V[48]; - tmp43 += m_A199 * V[49]; - tmp43 += m_A200 * V[50]; - tmp43 += m_A201 * V[51]; - V[43] = (RHS43 - tmp43) / m_A195; + tmp43 += m_A204 * V[48]; + tmp43 += m_A205 * V[49]; + tmp43 += m_A206 * V[50]; + tmp43 += m_A207 * V[51]; + tmp43 += m_A208 * V[52]; + V[43] = (RHS43 - tmp43) / m_A203; double tmp42 = 0.0; - tmp42 += m_A187 * V[47]; - V[42] = (RHS42 - tmp42) / m_A186; + tmp42 += m_A197 * V[45]; + tmp42 += m_A198 * V[46]; + tmp42 += m_A199 * V[48]; + tmp42 += m_A200 * V[51]; + tmp42 += m_A201 * V[52]; + V[42] = (RHS42 - tmp42) / m_A196; double tmp41 = 0.0; - tmp41 += m_A182 * V[47]; - V[41] = (RHS41 - tmp41) / m_A181; + tmp41 += m_A190 * V[48]; + tmp41 += m_A191 * V[51]; + V[41] = (RHS41 - tmp41) / m_A189; double tmp40 = 0.0; - tmp40 += m_A173 * V[43]; - tmp40 += m_A174 * V[46]; - tmp40 += m_A175 * V[47]; - tmp40 += m_A176 * V[48]; - tmp40 += m_A177 * V[49]; - tmp40 += m_A178 * V[50]; - tmp40 += m_A179 * V[51]; - V[40] = (RHS40 - tmp40) / m_A172; + tmp40 += m_A184 * V[42]; + tmp40 += m_A185 * V[45]; + tmp40 += m_A186 * V[46]; + tmp40 += m_A187 * V[48]; + V[40] = (RHS40 - tmp40) / m_A183; double tmp39 = 0.0; - tmp39 += m_A159 * V[40]; - tmp39 += m_A160 * V[43]; - tmp39 += m_A161 * V[46]; - tmp39 += m_A162 * V[47]; - tmp39 += m_A163 * V[48]; - tmp39 += m_A164 * V[49]; - tmp39 += m_A165 * V[50]; - V[39] = (RHS39 - tmp39) / m_A158; + tmp39 += m_A174 * V[47]; + tmp39 += m_A175 * V[49]; + tmp39 += m_A176 * V[50]; + tmp39 += m_A177 * V[51]; + tmp39 += m_A178 * V[52]; + V[39] = (RHS39 - tmp39) / m_A173; double tmp38 = 0.0; - tmp38 += m_A149 * V[42]; - V[38] = (RHS38 - tmp38) / m_A148; + tmp38 += m_A167 * V[40]; + tmp38 += m_A168 * V[45]; + tmp38 += m_A169 * V[46]; + tmp38 += m_A170 * V[48]; + V[38] = (RHS38 - tmp38) / m_A166; double tmp37 = 0.0; - tmp37 += m_A146 * V[47]; - V[37] = (RHS37 - tmp37) / m_A145; + V[37] = (RHS37 - tmp37) / m_A157; double tmp36 = 0.0; - tmp36 += m_A138 * V[39]; - tmp36 += m_A139 * V[40]; - tmp36 += m_A140 * V[46]; - tmp36 += m_A141 * V[47]; - tmp36 += m_A142 * V[48]; - tmp36 += m_A143 * V[50]; - V[36] = (RHS36 - tmp36) / m_A137; + tmp36 += m_A153 * V[44]; + tmp36 += m_A154 * V[51]; + V[36] = (RHS36 - tmp36) / m_A152; double tmp35 = 0.0; - tmp35 += m_A131 * V[46]; - tmp35 += m_A132 * V[51]; - V[35] = (RHS35 - tmp35) / m_A130; + tmp35 += m_A149 * V[44]; + tmp35 += m_A150 * V[50]; + V[35] = (RHS35 - tmp35) / m_A148; double tmp34 = 0.0; - tmp34 += m_A127 * V[45]; - tmp34 += m_A128 * V[50]; - V[34] = (RHS34 - tmp34) / m_A126; + tmp34 += m_A145 * V[35]; + V[34] = (RHS34 - tmp34) / m_A144; double tmp33 = 0.0; - tmp33 += m_A120 * V[36]; - tmp33 += m_A121 * V[40]; - tmp33 += m_A122 * V[46]; - tmp33 += m_A123 * V[47]; - tmp33 += m_A124 * V[48]; - V[33] = (RHS33 - tmp33) / m_A119; + tmp33 += m_A137 * V[37]; + tmp33 += m_A138 * V[38]; + tmp33 += m_A139 * V[45]; + tmp33 += m_A140 * V[46]; + tmp33 += m_A141 * V[48]; + V[33] = (RHS33 - tmp33) / m_A136; double tmp32 = 0.0; - tmp32 += m_A112 * V[39]; - tmp32 += m_A113 * V[40]; - tmp32 += m_A114 * V[43]; - tmp32 += m_A115 * V[49]; - V[32] = (RHS32 - tmp32) / m_A111; + tmp32 += m_A129 * V[33]; + tmp32 += m_A130 * V[37]; + tmp32 += m_A131 * V[38]; + tmp32 += m_A132 * V[45]; + tmp32 += m_A133 * V[46]; + V[32] = (RHS32 - tmp32) / m_A128; double tmp31 = 0.0; - tmp31 += m_A106 * V[40]; - tmp31 += m_A107 * V[51]; - V[31] = (RHS31 - tmp31) / m_A105; + tmp31 += m_A123 * V[45]; + V[31] = (RHS31 - tmp31) / m_A122; double tmp30 = 0.0; - tmp30 += m_A100 * V[32]; - tmp30 += m_A101 * V[39]; - tmp30 += m_A102 * V[43]; - tmp30 += m_A103 * V[49]; - V[30] = (RHS30 - tmp30) / m_A99; + tmp30 += m_A116 * V[32]; + tmp30 += m_A117 * V[38]; + tmp30 += m_A118 * V[45]; + tmp30 += m_A119 * V[46]; + V[30] = (RHS30 - tmp30) / m_A115; double tmp29 = 0.0; - tmp29 += m_A95 * V[47]; - V[29] = (RHS29 - tmp29) / m_A94; + tmp29 += m_A108 * V[46]; + V[29] = (RHS29 - tmp29) / m_A107; double tmp28 = 0.0; - tmp28 += m_A90 * V[43]; - tmp28 += m_A91 * V[48]; - V[28] = (RHS28 - tmp28) / m_A89; + tmp28 += m_A103 * V[30]; + tmp28 += m_A104 * V[32]; + V[28] = (RHS28 - tmp28) / m_A102; double tmp27 = 0.0; - tmp27 += m_A86 * V[44]; - tmp27 += m_A87 * V[49]; - V[27] = (RHS27 - tmp27) / m_A85; + tmp27 += m_A96 * V[30]; + tmp27 += m_A97 * V[38]; + tmp27 += m_A98 * V[45]; + tmp27 += m_A99 * V[46]; + V[27] = (RHS27 - tmp27) / m_A95; double tmp26 = 0.0; - tmp26 += m_A83 * V[39]; - V[26] = (RHS26 - tmp26) / m_A82; + tmp26 += m_A90 * V[29]; + tmp26 += m_A91 * V[46]; + V[26] = (RHS26 - tmp26) / m_A89; double tmp25 = 0.0; - tmp25 += m_A78 * V[42]; - tmp25 += m_A79 * V[47]; - V[25] = (RHS25 - tmp25) / m_A77; + tmp25 += m_A85 * V[40]; + tmp25 += m_A86 * V[42]; + V[25] = (RHS25 - tmp25) / m_A84; double tmp24 = 0.0; - tmp24 += m_A75 * V[26]; - tmp24 += m_A76 * V[39]; - V[24] = (RHS24 - tmp24) / m_A74; + tmp24 += m_A82 * V[27]; + tmp24 += m_A83 * V[30]; + V[24] = (RHS24 - tmp24) / m_A81; double tmp23 = 0.0; - tmp23 += m_A71 * V[42]; - V[23] = (RHS23 - tmp23) / m_A70; + V[23] = (RHS23 - tmp23) / m_A78; double tmp22 = 0.0; - tmp22 += m_A68 * V[29]; - tmp22 += m_A69 * V[47]; - V[22] = (RHS22 - tmp22) / m_A67; + tmp22 += m_A75 * V[40]; + tmp22 += m_A76 * V[42]; + V[22] = (RHS22 - tmp22) / m_A74; double tmp21 = 0.0; - tmp21 += m_A66 * V[47]; - V[21] = (RHS21 - tmp21) / m_A65; + tmp21 += m_A72 * V[38]; + tmp21 += m_A73 * V[40]; + V[21] = (RHS21 - tmp21) / m_A71; double tmp20 = 0.0; - tmp20 += m_A63 * V[33]; - tmp20 += m_A64 * V[47]; - V[20] = (RHS20 - tmp20) / m_A62; + tmp20 += m_A68 * V[42]; + tmp20 += m_A69 * V[51]; + tmp20 += m_A70 * V[52]; + V[20] = (RHS20 - tmp20) / m_A67; double tmp19 = 0.0; - tmp19 += m_A59 * V[33]; - tmp19 += m_A60 * V[36]; - tmp19 += m_A61 * V[46]; - V[19] = (RHS19 - tmp19) / m_A58; + tmp19 += m_A62 * V[39]; + tmp19 += m_A63 * V[47]; + tmp19 += m_A64 * V[49]; + tmp19 += m_A65 * V[50]; + tmp19 += m_A66 * V[52]; + V[19] = (RHS19 - tmp19) / m_A61; double tmp18 = 0.0; - tmp18 += m_A57 * V[29]; - V[18] = (RHS18 - tmp18) / m_A56; + tmp18 += m_A58 * V[44]; + tmp18 += m_A59 * V[49]; + tmp18 += m_A60 * V[51]; + V[18] = (RHS18 - tmp18) / m_A57; + double tmp17 = 0.0; + tmp17 += m_A54 * V[43]; + tmp17 += m_A55 * V[48]; + tmp17 += m_A56 * V[51]; + V[17] = (RHS17 - tmp17) / m_A53; + double tmp16 = 0.0; + tmp16 += m_A51 * V[39]; + tmp16 += m_A52 * V[51]; + V[16] = (RHS16 - tmp16) / m_A50; + double tmp15 = 0.0; + tmp15 += m_A48 * V[34]; + tmp15 += m_A49 * V[35]; + V[15] = (RHS15 - tmp15) / m_A47; + double tmp14 = 0.0; + tmp14 += m_A45 * V[41]; + tmp14 += m_A46 * V[48]; + V[14] = (RHS14 - tmp14) / m_A44; + double tmp13 = 0.0; + tmp13 += m_A42 * V[36]; + tmp13 += m_A43 * V[44]; + V[13] = (RHS13 - tmp13) / m_A41; + double tmp12 = 0.0; + tmp12 += m_A38 * V[32]; + tmp12 += m_A39 * V[33]; + tmp12 += m_A40 * V[37]; + V[12] = (RHS12 - tmp12) / m_A37; + double tmp11 = 0.0; + tmp11 += m_A36 * V[34]; + V[11] = (RHS11 - tmp11) / m_A35; + double tmp10 = 0.0; + tmp10 += m_A31 * V[30]; + tmp10 += m_A32 * V[38]; + tmp10 += m_A33 * V[45]; + tmp10 += m_A34 * V[46]; + V[10] = (RHS10 - tmp10) / m_A30; + double tmp9 = 0.0; + tmp9 += m_A27 * V[28]; + tmp9 += m_A28 * V[30]; + tmp9 += m_A29 * V[32]; + V[9] = (RHS9 - tmp9) / m_A26; + double tmp8 = 0.0; + tmp8 += m_A22 * V[27]; + tmp8 += m_A23 * V[38]; + tmp8 += m_A24 * V[45]; + tmp8 += m_A25 * V[46]; + V[8] = (RHS8 - tmp8) / m_A21; + double tmp7 = 0.0; + tmp7 += m_A20 * V[28]; + V[7] = (RHS7 - tmp7) / m_A19; + double tmp6 = 0.0; + tmp6 += m_A17 * V[31]; + tmp6 += m_A18 * V[45]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A13 * V[26]; + tmp5 += m_A14 * V[29]; + tmp5 += m_A15 * V[46]; + V[5] = (RHS5 - tmp5) / m_A12; + double tmp4 = 0.0; + tmp4 += m_A11 * V[31]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A7 * V[24]; + tmp3 += m_A8 * V[27]; + tmp3 += m_A9 * V[30]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[26]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[24]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[23]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// gamemachine +static void nl_gcr_934712b55bb3b2b2_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A8 += go[8]; + m_A7 += go[9]; + m_A6 += go[10]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A5 * V[3]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_9a5874c8e2da79d2_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A2 += go[0]; + m_A2 += go[1]; + m_A1 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[3] * *cnV[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A5 += go[4]; + m_A4 += go[5]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[7]; + m_A7 += go[8]; + m_A8 += go[9]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A11 += go[14]; + m_A10 += go[15]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[16] * *cnV[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A13 += go[17]; + m_A12 += go[18]; + m_A12 += go[19]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A20 += go[22]; + m_A19 += go[23]; + m_A19 += go[24]; + m_A19 += go[25]; + m_A17 += go[26]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 -= go[27] * *cnV[27]; + RHS5 -= go[28] * *cnV[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A23 += gt[32]; + m_A21 += go[29]; + double RHS6 = Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; + RHS6 -= go[32] * *cnV[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A28 += gt[35]; + m_A28 += gt[36]; + m_A28 += gt[37]; + m_A28 += gt[38]; + m_A26 += go[33]; + m_A27 += go[34]; + m_A27 += go[35]; + m_A27 += go[36]; + m_A25 += go[37]; + m_A25 += go[38]; + double RHS7 = Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 += Idr[38]; + m_A36 += gt[39]; + m_A36 += gt[40]; + m_A36 += gt[41]; + m_A36 += gt[42]; + m_A30 += go[39]; + m_A33 += go[40]; + m_A31 += go[41]; + double RHS8 = Idr[39]; + RHS8 += Idr[40]; + RHS8 += Idr[41]; + RHS8 += Idr[42]; + RHS8 -= go[42] * *cnV[42]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A17; + m_A18 += m_A1 * f0_5; + m_A19 += m_A2 * f0_5; + RHS5 += f0_5 * RHS0; + const double f0_7 = -f0 * m_A25; + m_A27 += m_A1 * f0_7; + m_A28 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_7 = -f1 * m_A26; + m_A28 += m_A4 * f1_7; + m_A29 += m_A5 * f1_7; + RHS7 += f1_7 * RHS1; + const double f1_8 = -f1 * m_A30; + m_A35 += m_A4 * f1_8; + m_A36 += m_A5 * f1_8; + RHS8 += f1_8 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A7 * f2_4; + m_A16 += m_A8 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_8 = -f2 * m_A31; + m_A32 += m_A7 * f2_8; + m_A36 += m_A8 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + m_A15 += m_A11 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_6 = -f3 * m_A21; + m_A22 += m_A10 * f3_6; + m_A23 += m_A11 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_6 = -f4 * m_A22; + m_A23 += m_A15 * f4_6; + m_A24 += m_A16 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_8 = -f4 * m_A32; + m_A34 += m_A15 * f4_8; + m_A36 += m_A16 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A18; + const double f5_7 = -f5 * m_A27; + m_A28 += m_A19 * f5_7; + m_A29 += m_A20 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A33; + m_A35 += m_A19 * f5_8; + m_A36 += m_A20 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A23; + const double f6_8 = -f6 * m_A34; + m_A36 += m_A24 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A28; + const double f7_8 = -f7 * m_A35; + m_A36 += m_A29 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A36; + double tmp7 = 0.0; + tmp7 += m_A29 * V[8]; + V[7] = (RHS7 - tmp7) / m_A28; + double tmp6 = 0.0; + tmp6 += m_A24 * V[8]; + V[6] = (RHS6 - tmp6) / m_A23; + double tmp5 = 0.0; + tmp5 += m_A19 * V[7]; + tmp5 += m_A20 * V[8]; + V[5] = (RHS5 - tmp5) / m_A18; + double tmp4 = 0.0; + tmp4 += m_A15 * V[6]; + tmp4 += m_A16 * V[8]; + V[4] = (RHS4 - tmp4) / m_A14; + double tmp3 = 0.0; + tmp3 += m_A10 * V[4]; + tmp3 += m_A11 * V[6]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A7 * V[4]; + tmp2 += m_A8 * V[8]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A4 * V[7]; + tmp1 += m_A5 * V[8]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + tmp0 += m_A2 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_9aa159329f86ca8b_70_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[5] * *cnV[5]; + RHS2 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[8] * *cnV[8]; + RHS3 -= go[9] * *cnV[9]; + m_A8 += gt[10]; + m_A8 += gt[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A9 += go[10]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[11] * *cnV[11]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + RHS4 -= go[16] * *cnV[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A11 += go[17]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 -= go[18] * *cnV[18]; + RHS5 -= go[19] * *cnV[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A12 += gt[22]; + m_A13 += go[20]; + double RHS6 = Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 -= go[21] * *cnV[21]; + RHS6 -= go[22] * *cnV[22]; + m_A14 += gt[23]; + m_A14 += gt[24]; + m_A14 += gt[25]; + m_A15 += go[23]; + double RHS7 = Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 -= go[24] * *cnV[24]; + RHS7 -= go[25] * *cnV[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A17 += go[26]; + double RHS8 = Idr[26]; + RHS8 += Idr[27]; + RHS8 -= go[27] * *cnV[27]; + m_A18 += gt[28]; + m_A18 += gt[29]; + m_A18 += gt[30]; + m_A18 += gt[31]; + m_A18 += gt[32]; + m_A18 += gt[33]; + m_A18 += gt[34]; + m_A20 += go[28]; + m_A19 += go[29]; + double RHS9 = Idr[28]; + RHS9 += Idr[29]; + RHS9 += Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 -= go[30] * *cnV[30]; + RHS9 -= go[31] * *cnV[31]; + RHS9 -= go[32] * *cnV[32]; + RHS9 -= go[33] * *cnV[33]; + RHS9 -= go[34] * *cnV[34]; + m_A21 += gt[35]; + m_A21 += gt[36]; + m_A21 += gt[37]; + m_A21 += gt[38]; + m_A21 += gt[39]; + m_A21 += gt[40]; + m_A23 += go[35]; + m_A22 += go[36]; + m_A22 += go[37]; + double RHS10 = Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 -= go[38] * *cnV[38]; + RHS10 -= go[39] * *cnV[39]; + RHS10 -= go[40] * *cnV[40]; + m_A25 += gt[41]; + m_A25 += gt[42]; + m_A25 += gt[43]; + m_A24 += go[41]; + m_A26 += go[42]; + double RHS11 = Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[43] * *cnV[43]; + m_A34 += gt[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A34 += gt[49]; + m_A34 += gt[50]; + m_A34 += gt[51]; + m_A34 += gt[52]; + m_A34 += gt[53]; + m_A33 += go[44]; + m_A33 += go[45]; + m_A36 += go[46]; + m_A32 += go[47]; + m_A31 += go[48]; + m_A30 += go[49]; + m_A29 += go[50]; + m_A28 += go[51]; + m_A27 += go[52]; + double RHS12 = Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 += Idr[49]; + RHS12 += Idr[50]; + RHS12 += Idr[51]; + RHS12 += Idr[52]; + RHS12 += Idr[53]; + RHS12 -= go[53] * *cnV[53]; + m_A37 += gt[54]; + m_A37 += gt[55]; + m_A37 += gt[56]; + m_A39 += go[54]; + m_A38 += go[55]; + double RHS13 = Idr[54]; + RHS13 += Idr[55]; + RHS13 += Idr[56]; + RHS13 -= go[56] * *cnV[56]; + m_A40 += gt[57]; + m_A40 += gt[58]; + m_A40 += gt[59]; + m_A40 += gt[60]; + m_A41 += go[57]; + m_A42 += go[58]; + double RHS14 = Idr[57]; + RHS14 += Idr[58]; + RHS14 += Idr[59]; + RHS14 += Idr[60]; + RHS14 -= go[59] * *cnV[59]; + RHS14 -= go[60] * *cnV[60]; + m_A47 += gt[61]; + m_A47 += gt[62]; + m_A47 += gt[63]; + m_A47 += gt[64]; + m_A47 += gt[65]; + m_A43 += go[61]; + m_A44 += go[62]; + m_A48 += go[63]; + double RHS15 = Idr[61]; + RHS15 += Idr[62]; + RHS15 += Idr[63]; + RHS15 += Idr[64]; + RHS15 += Idr[65]; + RHS15 -= go[64] * *cnV[64]; + RHS15 -= go[65] * *cnV[65]; + m_A54 += gt[66]; + m_A54 += gt[67]; + m_A54 += gt[68]; + m_A53 += go[66]; + m_A51 += go[67]; + m_A52 += go[68]; + double RHS16 = Idr[66]; + RHS16 += Idr[67]; + RHS16 += Idr[68]; + m_A62 += gt[69]; + m_A62 += gt[70]; + m_A62 += gt[71]; + m_A62 += gt[72]; + m_A62 += gt[73]; + m_A63 += go[69]; + m_A59 += go[70]; + m_A57 += go[71]; + m_A58 += go[72]; + double RHS17 = Idr[69]; + RHS17 += Idr[70]; + RHS17 += Idr[71]; + RHS17 += Idr[72]; + RHS17 += Idr[73]; + RHS17 -= go[73] * *cnV[73]; + m_A69 += gt[74]; + m_A69 += gt[75]; + m_A69 += gt[76]; + m_A69 += gt[77]; + m_A69 += gt[78]; + m_A69 += gt[79]; + m_A69 += gt[80]; + m_A69 += gt[81]; + m_A64 += go[74]; + m_A66 += go[75]; + m_A65 += go[76]; + m_A68 += go[77]; + double RHS18 = Idr[74]; + RHS18 += Idr[75]; + RHS18 += Idr[76]; + RHS18 += Idr[77]; + RHS18 += Idr[78]; + RHS18 += Idr[79]; + RHS18 += Idr[80]; + RHS18 += Idr[81]; + RHS18 -= go[78] * *cnV[78]; + RHS18 -= go[79] * *cnV[79]; + RHS18 -= go[80] * *cnV[80]; + RHS18 -= go[81] * *cnV[81]; + const double f0 = 1.0 / m_A0; + const double f0_12 = -f0 * m_A27; + m_A34 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_11 = -f1 * m_A24; + m_A25 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_12 = -f2 * m_A28; + m_A34 += m_A5 * f2_12; + RHS12 += f2_12 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_12 = -f3 * m_A29; + m_A34 += m_A7 * f3_12; + RHS12 += f3_12 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_18 = -f4 * m_A64; + m_A65 += m_A9 * f4_18; + RHS18 += f4_18 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_12 = -f5 * m_A30; + m_A34 += m_A11 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_12 = -f6 * m_A31; + m_A34 += m_A13 * f6_12; + RHS12 += f6_12 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_12 = -f7 * m_A32; + m_A34 += m_A15 * f7_12; + RHS12 += f7_12 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_16 = -f8 * m_A51; + m_A54 += m_A17 * f8_16; + RHS16 += f8_16 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_15 = -f9 * m_A43; + m_A46 += m_A19 * f9_15; + m_A48 += m_A20 * f9_15; + RHS15 += f9_15 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_12 = -f10 * m_A33; + m_A34 += m_A22 * f10_12; + m_A35 += m_A23 * f10_12; + RHS12 += f10_12 * RHS10; + const double f10_15 = -f10 * m_A44; + m_A45 += m_A22 * f10_15; + m_A47 += m_A23 * f10_15; + RHS15 += f10_15 * RHS10; + const double f11 = 1.0 / m_A25; + const double f11_17 = -f11 * m_A57; + m_A62 += m_A26 * f11_17; + RHS17 += f11_17 * RHS11; + const double f12 = 1.0 / m_A34; + const double f12_15 = -f12 * m_A45; + m_A47 += m_A35 * f12_15; + m_A49 += m_A36 * f12_15; + RHS15 += f12_15 * RHS12; + const double f12_17 = -f12 * m_A58; + m_A60 += m_A35 * f12_17; + m_A62 += m_A36 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A37; + const double f13_17 = -f13 * m_A59; + m_A62 += m_A38 * f13_17; + m_A63 += m_A39 * f13_17; + RHS17 += f13_17 * RHS13; + const double f13_18 = -f13 * m_A65; + m_A68 += m_A38 * f13_18; + m_A69 += m_A39 * f13_18; + RHS18 += f13_18 * RHS13; + const double f14 = 1.0 / m_A40; + const double f14_15 = -f14 * m_A46; + m_A48 += m_A41 * f14_15; + m_A50 += m_A42 * f14_15; + RHS15 += f14_15 * RHS14; + const double f14_16 = -f14 * m_A52; + m_A54 += m_A41 * f14_16; + m_A56 += m_A42 * f14_16; + RHS16 += f14_16 * RHS14; + const double f14_18 = -f14 * m_A66; + m_A67 += m_A41 * f14_18; + m_A69 += m_A42 * f14_18; + RHS18 += f14_18 * RHS14; + const double f15 = 1.0 / m_A47; + const double f15_16 = -f15 * m_A53; + m_A54 += m_A48 * f15_16; + m_A55 += m_A49 * f15_16; + m_A56 += m_A50 * f15_16; + RHS16 += f15_16 * RHS15; + const double f15_17 = -f15 * m_A60; + m_A61 += m_A48 * f15_17; + m_A62 += m_A49 * f15_17; + m_A63 += m_A50 * f15_17; + RHS17 += f15_17 * RHS15; + const double f16 = 1.0 / m_A54; + const double f16_17 = -f16 * m_A61; + m_A62 += m_A55 * f16_17; + m_A63 += m_A56 * f16_17; + RHS17 += f16_17 * RHS16; + const double f16_18 = -f16 * m_A67; + m_A68 += m_A55 * f16_18; + m_A69 += m_A56 * f16_18; + RHS18 += f16_18 * RHS16; + const double f17 = 1.0 / m_A62; + const double f17_18 = -f17 * m_A68; + m_A69 += m_A63 * f17_18; + RHS18 += f17_18 * RHS17; + V[18] = RHS18 / m_A69; double tmp17 = 0.0; - tmp17 += m_A54 * V[33]; - tmp17 += m_A55 * V[48]; - V[17] = (RHS17 - tmp17) / m_A53; + tmp17 += m_A63 * V[18]; + V[17] = (RHS17 - tmp17) / m_A62; double tmp16 = 0.0; - tmp16 += m_A52 * V[40]; - V[16] = (RHS16 - tmp16) / m_A51; + tmp16 += m_A55 * V[17]; + tmp16 += m_A56 * V[18]; + V[16] = (RHS16 - tmp16) / m_A54; double tmp15 = 0.0; - tmp15 += m_A50 * V[40]; - V[15] = (RHS15 - tmp15) / m_A49; + tmp15 += m_A48 * V[16]; + tmp15 += m_A49 * V[17]; + tmp15 += m_A50 * V[18]; + V[15] = (RHS15 - tmp15) / m_A47; double tmp14 = 0.0; - tmp14 += m_A48 * V[37]; - V[14] = (RHS14 - tmp14) / m_A47; + tmp14 += m_A41 * V[16]; + tmp14 += m_A42 * V[18]; + V[14] = (RHS14 - tmp14) / m_A40; double tmp13 = 0.0; - tmp13 += m_A45 * V[31]; - tmp13 += m_A46 * V[51]; - V[13] = (RHS13 - tmp13) / m_A44; + tmp13 += m_A38 * V[17]; + tmp13 += m_A39 * V[18]; + V[13] = (RHS13 - tmp13) / m_A37; double tmp12 = 0.0; - tmp12 += m_A41 * V[30]; - tmp12 += m_A42 * V[32]; - tmp12 += m_A43 * V[43]; - V[12] = (RHS12 - tmp12) / m_A40; + tmp12 += m_A35 * V[15]; + tmp12 += m_A36 * V[17]; + V[12] = (RHS12 - tmp12) / m_A34; double tmp11 = 0.0; - tmp11 += m_A38 * V[36]; - tmp11 += m_A39 * V[50]; - V[11] = (RHS11 - tmp11) / m_A37; + tmp11 += m_A26 * V[17]; + V[11] = (RHS11 - tmp11) / m_A25; double tmp10 = 0.0; - tmp10 += m_A35 * V[36]; - tmp10 += m_A36 * V[39]; - V[10] = (RHS10 - tmp10) / m_A34; + tmp10 += m_A22 * V[12]; + tmp10 += m_A23 * V[15]; + V[10] = (RHS10 - tmp10) / m_A21; double tmp9 = 0.0; - tmp9 += m_A31 * V[24]; - tmp9 += m_A32 * V[26]; - tmp9 += m_A33 * V[39]; - V[9] = (RHS9 - tmp9) / m_A30; + tmp9 += m_A19 * V[14]; + tmp9 += m_A20 * V[16]; + V[9] = (RHS9 - tmp9) / m_A18; double tmp8 = 0.0; - tmp8 += m_A28 * V[30]; - tmp8 += m_A29 * V[39]; - V[8] = (RHS8 - tmp8) / m_A27; + tmp8 += m_A17 * V[16]; + V[8] = (RHS8 - tmp8) / m_A16; double tmp7 = 0.0; - tmp7 += m_A24 * V[35]; - tmp7 += m_A25 * V[46]; - tmp7 += m_A26 * V[51]; - V[7] = (RHS7 - tmp7) / m_A23; + tmp7 += m_A15 * V[12]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A22 * V[24]; - V[6] = (RHS6 - tmp6) / m_A21; + tmp6 += m_A13 * V[12]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A18 * V[34]; - tmp5 += m_A19 * V[45]; - tmp5 += m_A20 * V[50]; - V[5] = (RHS5 - tmp5) / m_A17; + tmp5 += m_A11 * V[12]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A15 * V[45]; - tmp4 += m_A16 * V[51]; - V[4] = (RHS4 - tmp4) / m_A14; + tmp4 += m_A9 * V[13]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A12 * V[30]; - tmp3 += m_A13 * V[49]; - V[3] = (RHS3 - tmp3) / m_A11; + tmp3 += m_A7 * V[12]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A8 * V[28]; - tmp2 += m_A9 * V[43]; - tmp2 += m_A10 * V[48]; - V[2] = (RHS2 - tmp2) / m_A7; + tmp2 += m_A5 * V[12]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A5 * V[44]; - tmp1 += m_A6 * V[48]; - V[1] = (RHS1 - tmp1) / m_A4; + tmp1 += m_A3 * V[11]; + V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[27]; - tmp0 += m_A2 * V[44]; - tmp0 += m_A3 * V[49]; + tmp0 += m_A1 * V[12]; V[0] = (RHS0 - tmp0) / m_A0; } -// konami1x -static void nl_gcr_62b99b9904a8c804_49_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// warrior +static void nl_gcr_9c975530a1a529d6_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + m_A6 += gt[3]; + m_A6 += gt[4]; + m_A5 += go[3]; + m_A4 += go[4]; + double RHS2 = Idr[3]; + RHS2 += Idr[4]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_9f141889c2091efc_24_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -13302,304 +37696,144 @@ double m_A21(0.0); double m_A22(0.0); double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A7 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - RHS3 -= go[7] * *cnV[7]; - m_A8 += gt[8]; - m_A8 += gt[9]; - m_A9 += go[8]; - double RHS4 = Idr[8]; - RHS4 += Idr[9]; - RHS4 -= go[9] * *cnV[9]; - m_A10 += gt[10]; - m_A10 += gt[11]; - m_A11 += go[10]; - double RHS5 = Idr[10]; - RHS5 += Idr[11]; - RHS5 -= go[11] * *cnV[11]; - m_A12 += gt[12]; - m_A12 += gt[13]; - m_A13 += go[12]; - double RHS6 = Idr[12]; - RHS6 += Idr[13]; - RHS6 -= go[13] * *cnV[13]; - m_A14 += gt[14]; - m_A14 += gt[15]; - m_A15 += go[14]; - double RHS7 = Idr[14]; - RHS7 += Idr[15]; - RHS7 -= go[15] * *cnV[15]; - m_A16 += gt[16]; - m_A16 += gt[17]; - m_A16 += gt[18]; - m_A16 += gt[19]; - m_A16 += gt[20]; - m_A16 += gt[21]; - m_A16 += gt[22]; - m_A17 += go[16]; - double RHS8 = Idr[16]; - RHS8 += Idr[17]; - RHS8 += Idr[18]; - RHS8 += Idr[19]; - RHS8 += Idr[20]; - RHS8 += Idr[21]; - RHS8 += Idr[22]; - RHS8 -= go[17] * *cnV[17]; - RHS8 -= go[18] * *cnV[18]; - RHS8 -= go[19] * *cnV[19]; - RHS8 -= go[20] * *cnV[20]; - RHS8 -= go[21] * *cnV[21]; - RHS8 -= go[22] * *cnV[22]; - m_A18 += gt[23]; - m_A18 += gt[24]; - m_A19 += go[23]; - double RHS9 = Idr[23]; - RHS9 += Idr[24]; - RHS9 -= go[24] * *cnV[24]; - m_A20 += gt[25]; - m_A20 += gt[26]; - m_A21 += go[25]; - double RHS10 = Idr[25]; - RHS10 += Idr[26]; - RHS10 -= go[26] * *cnV[26]; - m_A25 += gt[27]; - m_A25 += gt[28]; - m_A25 += gt[29]; - m_A25 += gt[30]; - m_A26 += go[27]; - m_A24 += go[28]; - m_A23 += go[29]; - m_A22 += go[30]; - double RHS11 = Idr[27]; - RHS11 += Idr[28]; - RHS11 += Idr[29]; - RHS11 += Idr[30]; - m_A30 += gt[31]; - m_A30 += gt[32]; - m_A30 += gt[33]; - m_A30 += gt[34]; - m_A31 += go[31]; - m_A29 += go[32]; - m_A28 += go[33]; - m_A27 += go[34]; - double RHS12 = Idr[31]; - RHS12 += Idr[32]; - RHS12 += Idr[33]; - RHS12 += Idr[34]; - m_A35 += gt[35]; - m_A35 += gt[36]; - m_A35 += gt[37]; - m_A35 += gt[38]; - m_A36 += go[35]; - m_A34 += go[36]; - m_A33 += go[37]; - m_A32 += go[38]; - double RHS13 = Idr[35]; - RHS13 += Idr[36]; - RHS13 += Idr[37]; - RHS13 += Idr[38]; - m_A38 += gt[39]; - m_A38 += gt[40]; - m_A38 += gt[41]; - m_A37 += go[39]; - m_A39 += go[40]; - double RHS14 = Idr[39]; - RHS14 += Idr[40]; - RHS14 += Idr[41]; - RHS14 -= go[41] * *cnV[41]; - m_A43 += gt[42]; - m_A43 += gt[43]; - m_A43 += gt[44]; - m_A43 += gt[45]; - m_A43 += gt[46]; - m_A44 += go[42]; - m_A42 += go[43]; - m_A41 += go[44]; - m_A40 += go[45]; - double RHS15 = Idr[42]; - RHS15 += Idr[43]; - RHS15 += Idr[44]; - RHS15 += Idr[45]; - RHS15 += Idr[46]; - RHS15 -= go[46] * *cnV[46]; - m_A48 += gt[47]; - m_A48 += gt[48]; - m_A48 += gt[49]; - m_A48 += gt[50]; - m_A48 += gt[51]; - m_A45 += go[47]; - m_A46 += go[48]; - m_A47 += go[49]; - double RHS16 = Idr[47]; - RHS16 += Idr[48]; - RHS16 += Idr[49]; - RHS16 += Idr[50]; - RHS16 += Idr[51]; - RHS16 -= go[50] * *cnV[50]; - RHS16 -= go[51] * *cnV[51]; - const double f0 = 1.0 / m_A0; - const double f0_11 = -f0 * m_A22; - m_A25 += m_A1 * f0_11; - RHS11 += f0_11 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_11 = -f1 * m_A23; - m_A25 += m_A3 * f1_11; - RHS11 += f1_11 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_11 = -f2 * m_A24; - m_A25 += m_A5 * f2_11; - RHS11 += f2_11 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_12 = -f3 * m_A27; - m_A30 += m_A7 * f3_12; - RHS12 += f3_12 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_12 = -f4 * m_A28; - m_A30 += m_A9 * f4_12; - RHS12 += f4_12 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_12 = -f5 * m_A29; - m_A30 += m_A11 * f5_12; - RHS12 += f5_12 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_13 = -f6 * m_A32; - m_A35 += m_A13 * f6_13; - RHS13 += f6_13 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_13 = -f7 * m_A33; - m_A35 += m_A15 * f7_13; - RHS13 += f7_13 * RHS7; - const double f8 = 1.0 / m_A16; - const double f8_16 = -f8 * m_A45; - m_A47 += m_A17 * f8_16; - RHS16 += f8_16 * RHS8; - const double f9 = 1.0 / m_A18; - const double f9_13 = -f9 * m_A34; - m_A35 += m_A19 * f9_13; - RHS13 += f9_13 * RHS9; - const double f10 = 1.0 / m_A20; - const double f10_14 = -f10 * m_A37; - m_A38 += m_A21 * f10_14; - RHS14 += f10_14 * RHS10; - const double f11 = 1.0 / m_A25; - const double f11_15 = -f11 * m_A40; - m_A43 += m_A26 * f11_15; - RHS15 += f11_15 * RHS11; - const double f12 = 1.0 / m_A30; - const double f12_15 = -f12 * m_A41; - m_A43 += m_A31 * f12_15; - RHS15 += f12_15 * RHS12; - const double f13 = 1.0 / m_A35; - const double f13_15 = -f13 * m_A42; - m_A43 += m_A36 * f13_15; - RHS15 += f13_15 * RHS13; - const double f14 = 1.0 / m_A38; - const double f14_16 = -f14 * m_A46; - m_A48 += m_A39 * f14_16; - RHS16 += f14_16 * RHS14; - const double f15 = 1.0 / m_A43; - const double f15_16 = -f15 * m_A47; - m_A48 += m_A44 * f15_16; - RHS16 += f15_16 * RHS15; - V[16] = RHS16 / m_A48; - double tmp15 = 0.0; - tmp15 += m_A44 * V[16]; - V[15] = (RHS15 - tmp15) / m_A43; - double tmp14 = 0.0; - tmp14 += m_A39 * V[16]; - V[14] = (RHS14 - tmp14) / m_A38; - double tmp13 = 0.0; - tmp13 += m_A36 * V[15]; - V[13] = (RHS13 - tmp13) / m_A35; - double tmp12 = 0.0; - tmp12 += m_A31 * V[15]; - V[12] = (RHS12 - tmp12) / m_A30; - double tmp11 = 0.0; - tmp11 += m_A26 * V[15]; - V[11] = (RHS11 - tmp11) / m_A25; - double tmp10 = 0.0; - tmp10 += m_A21 * V[14]; - V[10] = (RHS10 - tmp10) / m_A20; - double tmp9 = 0.0; - tmp9 += m_A19 * V[13]; - V[9] = (RHS9 - tmp9) / m_A18; - double tmp8 = 0.0; - tmp8 += m_A17 * V[15]; - V[8] = (RHS8 - tmp8) / m_A16; - double tmp7 = 0.0; - tmp7 += m_A15 * V[13]; - V[7] = (RHS7 - tmp7) / m_A14; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[8] * *cnV[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A5 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A7 += go[11]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[12] * *cnV[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A10 += go[13]; + m_A9 += go[14]; + double RHS4 = Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[15] * *cnV[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A12 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 -= go[17] * *cnV[17]; + RHS5 -= go[18] * *cnV[18]; + m_A18 += gt[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A16 += go[19]; + m_A15 += go[20]; + m_A14 += go[21]; + m_A17 += go[22]; + m_A13 += go[23]; + double RHS6 = Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + m_A23 += gt[24]; + m_A23 += gt[25]; + m_A21 += go[24]; + m_A20 += go[25]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A13; + m_A18 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A14; + m_A18 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A15; + m_A18 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A16; + m_A18 += m_A7 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_6 = -f4 * m_A17; + m_A18 += m_A9 * f4_6; + m_A19 += m_A10 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_7 = -f4 * m_A20; + m_A22 += m_A9 * f4_7; + m_A23 += m_A10 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_7 = -f5 * m_A21; + m_A23 += m_A12 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A18; + const double f6_7 = -f6 * m_A22; + m_A23 += m_A19 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A23; double tmp6 = 0.0; - tmp6 += m_A13 * V[13]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A19 * V[7]; + V[6] = (RHS6 - tmp6) / m_A18; double tmp5 = 0.0; - tmp5 += m_A11 * V[12]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A12 * V[7]; + V[5] = (RHS5 - tmp5) / m_A11; double tmp4 = 0.0; - tmp4 += m_A9 * V[12]; + tmp4 += m_A9 * V[6]; + tmp4 += m_A10 * V[7]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[12]; + tmp3 += m_A7 * V[6]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[11]; + tmp2 += m_A5 * V[6]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[11]; + tmp1 += m_A3 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[11]; + tmp0 += m_A1 * V[6]; V[0] = (RHS0 - tmp0) / m_A0; } -// armora -static void nl_gcr_64e460d8f716cd89_58_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// segas16b_audio +static void nl_gcr_9f7104c5e25c87dd_111_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -13662,401 +37896,686 @@ double m_A55(0.0); double m_A56(0.0); double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A4 += go[4]; - m_A3 += go[5]; - m_A3 += go[6]; - double RHS1 = Idr[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A5 += gt[12]; - m_A5 += gt[13]; - m_A6 += go[10]; - m_A6 += go[11]; - m_A7 += go[12]; - double RHS2 = Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[13] * *cnV[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A9 += go[14]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; - RHS3 -= go[17] * *cnV[17]; - m_A10 += gt[18]; - m_A10 += gt[19]; - m_A10 += gt[20]; - m_A10 += gt[21]; - m_A10 += gt[22]; - m_A10 += gt[23]; - m_A12 += go[18]; - m_A11 += go[19]; - m_A11 += go[20]; - double RHS4 = Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 -= go[21] * *cnV[21]; - RHS4 -= go[22] * *cnV[22]; - RHS4 -= go[23] * *cnV[23]; - m_A13 += gt[24]; - m_A13 += gt[25]; - m_A13 += gt[26]; - m_A13 += gt[27]; - m_A14 += go[24]; - m_A14 += go[25]; - m_A15 += go[26]; - double RHS5 = Idr[24]; - RHS5 += Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 -= go[27] * *cnV[27]; - m_A16 += gt[28]; - m_A16 += gt[29]; - m_A16 += gt[30]; - m_A16 += gt[31]; - m_A16 += gt[32]; - m_A16 += gt[33]; - m_A17 += go[28]; - double RHS6 = Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 += Idr[33]; - RHS6 -= go[29] * *cnV[29]; - RHS6 -= go[30] * *cnV[30]; - RHS6 -= go[31] * *cnV[31]; - RHS6 -= go[32] * *cnV[32]; - RHS6 -= go[33] * *cnV[33]; - m_A18 += gt[34]; - m_A18 += gt[35]; - m_A18 += gt[36]; - m_A18 += gt[37]; - m_A18 += gt[38]; - m_A18 += gt[39]; - m_A20 += go[34]; - m_A19 += go[35]; - m_A19 += go[36]; - double RHS7 = Idr[34]; - RHS7 += Idr[35]; - RHS7 += Idr[36]; - RHS7 += Idr[37]; - RHS7 += Idr[38]; - RHS7 += Idr[39]; - RHS7 -= go[37] * *cnV[37]; - RHS7 -= go[38] * *cnV[38]; - RHS7 -= go[39] * *cnV[39]; - m_A21 += gt[40]; - m_A21 += gt[41]; - m_A21 += gt[42]; - m_A21 += gt[43]; - m_A23 += go[40]; - m_A23 += go[41]; - m_A22 += go[42]; - double RHS8 = Idr[40]; - RHS8 += Idr[41]; - RHS8 += Idr[42]; - RHS8 += Idr[43]; - RHS8 -= go[43] * *cnV[43]; - m_A26 += gt[44]; - m_A26 += gt[45]; - m_A26 += gt[46]; - m_A26 += gt[47]; - m_A26 += gt[48]; - m_A26 += gt[49]; - m_A25 += go[44]; - m_A25 += go[45]; - m_A24 += go[46]; - double RHS9 = Idr[44]; - RHS9 += Idr[45]; - RHS9 += Idr[46]; - RHS9 += Idr[47]; - RHS9 += Idr[48]; - RHS9 += Idr[49]; - RHS9 -= go[47] * *cnV[47]; - RHS9 -= go[48] * *cnV[48]; - RHS9 -= go[49] * *cnV[49]; - m_A31 += gt[50]; - m_A31 += gt[51]; - m_A31 += gt[52]; - m_A31 += gt[53]; - m_A31 += gt[54]; - m_A29 += go[50]; - m_A29 += go[51]; - m_A28 += go[52]; - double RHS10 = Idr[50]; - RHS10 += Idr[51]; - RHS10 += Idr[52]; - RHS10 += Idr[53]; - RHS10 += Idr[54]; - RHS10 -= go[53] * *cnV[53]; - RHS10 -= go[54] * *cnV[54]; - m_A35 += gt[55]; - m_A35 += gt[56]; - m_A35 += gt[57]; - m_A35 += gt[58]; - m_A35 += gt[59]; - m_A35 += gt[60]; - m_A34 += go[55]; - m_A34 += go[56]; - m_A33 += go[57]; - double RHS11 = Idr[55]; - RHS11 += Idr[56]; - RHS11 += Idr[57]; - RHS11 += Idr[58]; - RHS11 += Idr[59]; - RHS11 += Idr[60]; - RHS11 -= go[58] * *cnV[58]; - RHS11 -= go[59] * *cnV[59]; - RHS11 -= go[60] * *cnV[60]; - m_A40 += gt[61]; - m_A40 += gt[62]; - m_A40 += gt[63]; - m_A40 += gt[64]; - m_A40 += gt[65]; - m_A38 += go[61]; - m_A38 += go[62]; - m_A37 += go[63]; - double RHS12 = Idr[61]; - RHS12 += Idr[62]; - RHS12 += Idr[63]; - RHS12 += Idr[64]; - RHS12 += Idr[65]; - RHS12 -= go[64] * *cnV[64]; - RHS12 -= go[65] * *cnV[65]; - m_A44 += gt[66]; - m_A44 += gt[67]; - m_A44 += gt[68]; - m_A44 += gt[69]; - m_A44 += gt[70]; - m_A44 += gt[71]; - m_A43 += go[66]; - m_A43 += go[67]; - m_A42 += go[68]; - double RHS13 = Idr[66]; - RHS13 += Idr[67]; - RHS13 += Idr[68]; - RHS13 += Idr[69]; - RHS13 += Idr[70]; - RHS13 += Idr[71]; - RHS13 -= go[69] * *cnV[69]; - RHS13 -= go[70] * *cnV[70]; - RHS13 -= go[71] * *cnV[71]; - m_A51 += gt[72]; - m_A51 += gt[73]; - m_A51 += gt[74]; - m_A51 += gt[75]; - m_A51 += gt[76]; - m_A51 += gt[77]; - m_A48 += go[72]; - m_A47 += go[73]; - m_A46 += go[74]; - double RHS14 = Idr[72]; - RHS14 += Idr[73]; - RHS14 += Idr[74]; - RHS14 += Idr[75]; - RHS14 += Idr[76]; - RHS14 += Idr[77]; - RHS14 -= go[75] * *cnV[75]; - RHS14 -= go[76] * *cnV[76]; - RHS14 -= go[77] * *cnV[77]; - m_A57 += gt[78]; - m_A57 += gt[79]; - m_A57 += gt[80]; - m_A57 += gt[81]; - m_A57 += gt[82]; - m_A54 += go[78]; - m_A54 += go[79]; - m_A53 += go[80]; - double RHS15 = Idr[78]; - RHS15 += Idr[79]; - RHS15 += Idr[80]; - RHS15 += Idr[81]; - RHS15 += Idr[82]; - RHS15 -= go[81] * *cnV[81]; - RHS15 -= go[82] * *cnV[82]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A8 += go[9]; + m_A7 += go[10]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[11] * *cnV[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A12 += go[12]; + m_A10 += go[13]; + m_A11 += go[14]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + m_A13 += gt[15]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A15 += go[15]; + m_A14 += go[16]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 -= go[17] * *cnV[17]; + RHS5 -= go[18] * *cnV[18]; + RHS5 -= go[19] * *cnV[19]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A17 += go[22]; + m_A18 += go[23]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A20 += go[24]; + m_A21 += go[25]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A23 += go[26]; + m_A24 += go[27]; + double RHS8 = Idr[26]; + RHS8 += Idr[27]; + m_A25 += gt[28]; + m_A25 += gt[29]; + m_A26 += go[28]; + m_A27 += go[29]; + double RHS9 = Idr[28]; + RHS9 += Idr[29]; + m_A28 += gt[30]; + m_A28 += gt[31]; + m_A29 += go[30]; + double RHS10 = Idr[30]; + RHS10 += Idr[31]; + RHS10 -= go[31] * *cnV[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A31 += go[32]; + double RHS11 = Idr[32]; + RHS11 += Idr[33]; + RHS11 += Idr[34]; + RHS11 += Idr[35]; + RHS11 -= go[33] * *cnV[33]; + RHS11 -= go[34] * *cnV[34]; + RHS11 -= go[35] * *cnV[35]; + m_A34 += gt[36]; + m_A34 += gt[37]; + m_A34 += gt[38]; + m_A33 += go[36]; + m_A32 += go[37]; + double RHS12 = Idr[36]; + RHS12 += Idr[37]; + RHS12 += Idr[38]; + RHS12 -= go[38] * *cnV[38]; + m_A37 += gt[39]; + m_A37 += gt[40]; + m_A37 += gt[41]; + m_A37 += gt[42]; + m_A37 += gt[43]; + m_A37 += gt[44]; + m_A37 += gt[45]; + m_A38 += go[39]; + m_A36 += go[40]; + double RHS13 = Idr[39]; + RHS13 += Idr[40]; + RHS13 += Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 += Idr[44]; + RHS13 += Idr[45]; + RHS13 -= go[41] * *cnV[41]; + RHS13 -= go[42] * *cnV[42]; + RHS13 -= go[43] * *cnV[43]; + RHS13 -= go[44] * *cnV[44]; + RHS13 -= go[45] * *cnV[45]; + m_A40 += gt[46]; + m_A40 += gt[47]; + m_A40 += gt[48]; + m_A40 += gt[49]; + m_A40 += gt[50]; + m_A40 += gt[51]; + m_A40 += gt[52]; + m_A41 += go[46]; + m_A39 += go[47]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 -= go[48] * *cnV[48]; + RHS14 -= go[49] * *cnV[49]; + RHS14 -= go[50] * *cnV[50]; + RHS14 -= go[51] * *cnV[51]; + RHS14 -= go[52] * *cnV[52]; + m_A44 += gt[53]; + m_A44 += gt[54]; + m_A44 += gt[55]; + m_A44 += gt[56]; + m_A45 += go[53]; + m_A43 += go[54]; + m_A42 += go[55]; + double RHS15 = Idr[53]; + RHS15 += Idr[54]; + RHS15 += Idr[55]; + RHS15 += Idr[56]; + RHS15 -= go[56] * *cnV[56]; + m_A48 += gt[57]; + m_A48 += gt[58]; + m_A48 += gt[59]; + m_A48 += gt[60]; + m_A48 += gt[61]; + m_A48 += gt[62]; + m_A48 += gt[63]; + m_A49 += go[57]; + m_A46 += go[58]; + double RHS16 = Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[59] * *cnV[59]; + RHS16 -= go[60] * *cnV[60]; + RHS16 -= go[61] * *cnV[61]; + RHS16 -= go[62] * *cnV[62]; + RHS16 -= go[63] * *cnV[63]; + m_A51 += gt[64]; + m_A51 += gt[65]; + m_A51 += gt[66]; + m_A53 += go[64]; + m_A50 += go[65]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + RHS17 += Idr[66]; + RHS17 -= go[66] * *cnV[66]; + m_A58 += gt[67]; + m_A58 += gt[68]; + m_A58 += gt[69]; + m_A58 += gt[70]; + m_A58 += gt[71]; + m_A58 += gt[72]; + m_A57 += go[67]; + m_A62 += go[68]; + m_A62 += go[69]; + m_A56 += go[70]; + m_A55 += go[71]; + m_A54 += go[72]; + double RHS18 = Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 += Idr[72]; + m_A67 += gt[73]; + m_A67 += gt[74]; + m_A67 += gt[75]; + m_A67 += gt[76]; + m_A67 += gt[77]; + m_A65 += go[73]; + m_A64 += go[74]; + m_A63 += go[75]; + double RHS19 = Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + RHS19 += Idr[76]; + RHS19 += Idr[77]; + RHS19 -= go[76] * *cnV[76]; + RHS19 -= go[77] * *cnV[77]; + m_A76 += gt[78]; + m_A76 += gt[79]; + m_A76 += gt[80]; + m_A76 += gt[81]; + m_A76 += gt[82]; + m_A73 += go[78]; + m_A72 += go[79]; + m_A71 += go[80]; + double RHS20 = Idr[78]; + RHS20 += Idr[79]; + RHS20 += Idr[80]; + RHS20 += Idr[81]; + RHS20 += Idr[82]; + RHS20 -= go[81] * *cnV[81]; + RHS20 -= go[82] * *cnV[82]; + m_A84 += gt[83]; + m_A84 += gt[84]; + m_A84 += gt[85]; + m_A84 += gt[86]; + m_A84 += gt[87]; + m_A84 += gt[88]; + m_A82 += go[83]; + m_A80 += go[84]; + m_A79 += go[85]; + m_A81 += go[86]; + double RHS21 = Idr[83]; + RHS21 += Idr[84]; + RHS21 += Idr[85]; + RHS21 += Idr[86]; + RHS21 += Idr[87]; + RHS21 += Idr[88]; + RHS21 -= go[87] * *cnV[87]; + RHS21 -= go[88] * *cnV[88]; + m_A94 += gt[89]; + m_A94 += gt[90]; + m_A94 += gt[91]; + m_A94 += gt[92]; + m_A94 += gt[93]; + m_A94 += gt[94]; + m_A87 += go[89]; + m_A88 += go[90]; + m_A89 += go[91]; + m_A86 += go[92]; + double RHS22 = Idr[89]; + RHS22 += Idr[90]; + RHS22 += Idr[91]; + RHS22 += Idr[92]; + RHS22 += Idr[93]; + RHS22 += Idr[94]; + RHS22 -= go[93] * *cnV[93]; + RHS22 -= go[94] * *cnV[94]; + m_A101 += gt[95]; + m_A101 += gt[96]; + m_A101 += gt[97]; + m_A101 += gt[98]; + m_A101 += gt[99]; + m_A101 += gt[100]; + m_A101 += gt[101]; + m_A96 += go[95]; + m_A97 += go[96]; + double RHS23 = Idr[95]; + RHS23 += Idr[96]; + RHS23 += Idr[97]; + RHS23 += Idr[98]; + RHS23 += Idr[99]; + RHS23 += Idr[100]; + RHS23 += Idr[101]; + RHS23 -= go[97] * *cnV[97]; + RHS23 -= go[98] * *cnV[98]; + RHS23 -= go[99] * *cnV[99]; + RHS23 -= go[100] * *cnV[100]; + RHS23 -= go[101] * *cnV[101]; + m_A110 += gt[102]; + m_A110 += gt[103]; + m_A110 += gt[104]; + m_A110 += gt[105]; + m_A110 += gt[106]; + m_A110 += gt[107]; + m_A109 += go[102]; + m_A103 += go[103]; + m_A105 += go[104]; + m_A105 += go[105]; + double RHS24 = Idr[102]; + RHS24 += Idr[103]; + RHS24 += Idr[104]; + RHS24 += Idr[105]; + RHS24 += Idr[106]; + RHS24 += Idr[107]; + RHS24 -= go[106] * *cnV[106]; + RHS24 -= go[107] * *cnV[107]; const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A24; - m_A26 += m_A1 * f0_9; - RHS9 += f0_9 * RHS0; + const double f0_13 = -f0 * m_A36; + m_A38 += m_A1 * f0_13; + RHS13 += f0_13 * RHS0; + const double f0_19 = -f0 * m_A63; + m_A67 += m_A1 * f0_19; + RHS19 += f0_19 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_9 = -f1 * m_A25; - m_A26 += m_A3 * f1_9; - m_A27 += m_A4 * f1_9; - RHS9 += f1_9 * RHS1; - const double f1_10 = -f1 * m_A28; - m_A30 += m_A3 * f1_10; - m_A31 += m_A4 * f1_10; - RHS10 += f1_10 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_10 = -f2 * m_A29; - m_A31 += m_A6 * f2_10; - m_A32 += m_A7 * f2_10; - RHS10 += f2_10 * RHS2; - const double f2_14 = -f2 * m_A46; - m_A49 += m_A6 * f2_14; - m_A51 += m_A7 * f2_14; - RHS14 += f2_14 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_11 = -f3 * m_A33; - m_A35 += m_A9 * f3_11; - RHS11 += f3_11 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_11 = -f4 * m_A34; - m_A35 += m_A11 * f4_11; - m_A36 += m_A12 * f4_11; - RHS11 += f4_11 * RHS4; - const double f4_12 = -f4 * m_A37; - m_A39 += m_A11 * f4_12; - m_A40 += m_A12 * f4_12; - RHS12 += f4_12 * RHS4; + const double f1_14 = -f1 * m_A39; + m_A41 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; + const double f1_20 = -f1 * m_A71; + m_A76 += m_A3 * f1_20; + RHS20 += f1_20 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_15 = -f2 * m_A42; + m_A44 += m_A5 * f2_15; + RHS15 += f2_15 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_15 = -f3 * m_A43; + m_A44 += m_A7 * f3_15; + m_A45 += m_A8 * f3_15; + RHS15 += f3_15 * RHS3; + const double f3_16 = -f3 * m_A46; + m_A47 += m_A7 * f3_16; + m_A49 += m_A8 * f3_16; + RHS16 += f3_16 * RHS3; + const double f3_21 = -f3 * m_A79; + m_A81 += m_A7 * f3_21; + m_A84 += m_A8 * f3_21; + RHS21 += f3_21 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_17 = -f4 * m_A50; + m_A51 += m_A10 * f4_17; + m_A52 += m_A11 * f4_17; + m_A53 += m_A12 * f4_17; + RHS17 += f4_17 * RHS4; + const double f4_21 = -f4 * m_A80; + m_A83 += m_A10 * f4_21; + m_A84 += m_A11 * f4_21; + m_A85 += m_A12 * f4_21; + RHS21 += f4_21 * RHS4; + const double f4_22 = -f4 * m_A86; + m_A89 += m_A10 * f4_22; + m_A93 += m_A11 * f4_22; + m_A94 += m_A12 * f4_22; + RHS22 += f4_22 * RHS4; const double f5 = 1.0 / m_A13; - const double f5_12 = -f5 * m_A38; - m_A40 += m_A14 * f5_12; - m_A41 += m_A15 * f5_12; - RHS12 += f5_12 * RHS5; - const double f5_14 = -f5 * m_A47; - m_A50 += m_A14 * f5_14; - m_A51 += m_A15 * f5_14; - RHS14 += f5_14 * RHS5; + const double f5_22 = -f5 * m_A87; + m_A89 += m_A14 * f5_22; + m_A94 += m_A15 * f5_22; + RHS22 += f5_22 * RHS5; const double f6 = 1.0 / m_A16; - const double f6_13 = -f6 * m_A42; - m_A44 += m_A17 * f6_13; - RHS13 += f6_13 * RHS6; - const double f7 = 1.0 / m_A18; - const double f7_13 = -f7 * m_A43; - m_A44 += m_A19 * f7_13; - m_A45 += m_A20 * f7_13; - RHS13 += f7_13 * RHS7; - const double f7_15 = -f7 * m_A53; - m_A55 += m_A19 * f7_15; - m_A57 += m_A20 * f7_15; - RHS15 += f7_15 * RHS7; - const double f8 = 1.0 / m_A21; - const double f8_14 = -f8 * m_A48; - m_A51 += m_A22 * f8_14; - m_A52 += m_A23 * f8_14; - RHS14 += f8_14 * RHS8; - const double f8_15 = -f8 * m_A54; - m_A56 += m_A22 * f8_15; - m_A57 += m_A23 * f8_15; - RHS15 += f8_15 * RHS8; - const double f9 = 1.0 / m_A26; - const double f9_10 = -f9 * m_A30; - m_A31 += m_A27 * f9_10; - RHS10 += f9_10 * RHS9; - const double f10 = 1.0 / m_A31; - const double f10_14 = -f10 * m_A49; - m_A51 += m_A32 * f10_14; - RHS14 += f10_14 * RHS10; - const double f11 = 1.0 / m_A35; - const double f11_12 = -f11 * m_A39; - m_A40 += m_A36 * f11_12; - RHS12 += f11_12 * RHS11; - const double f12 = 1.0 / m_A40; - const double f12_14 = -f12 * m_A50; - m_A51 += m_A41 * f12_14; - RHS14 += f12_14 * RHS12; - const double f13 = 1.0 / m_A44; - const double f13_15 = -f13 * m_A55; - m_A57 += m_A45 * f13_15; - RHS15 += f13_15 * RHS13; - const double f14 = 1.0 / m_A51; - const double f14_15 = -f14 * m_A56; - m_A57 += m_A52 * f14_15; - RHS15 += f14_15 * RHS14; - V[15] = RHS15 / m_A57; + const double f6_18 = -f6 * m_A54; + m_A58 += m_A17 * f6_18; + m_A61 += m_A18 * f6_18; + RHS18 += f6_18 * RHS6; + const double f6_22 = -f6 * m_A88; + m_A90 += m_A17 * f6_22; + m_A94 += m_A18 * f6_22; + RHS22 += f6_22 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_18 = -f7 * m_A55; + m_A58 += m_A20 * f7_18; + m_A59 += m_A21 * f7_18; + RHS18 += f7_18 * RHS7; + const double f7_19 = -f7 * m_A64; + m_A66 += m_A20 * f7_19; + m_A67 += m_A21 * f7_19; + RHS19 += f7_19 * RHS7; + const double f8 = 1.0 / m_A22; + const double f8_18 = -f8 * m_A56; + m_A58 += m_A23 * f8_18; + m_A60 += m_A24 * f8_18; + RHS18 += f8_18 * RHS8; + const double f8_20 = -f8 * m_A72; + m_A74 += m_A23 * f8_20; + m_A76 += m_A24 * f8_20; + RHS20 += f8_20 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_12 = -f9 * m_A32; + m_A34 += m_A26 * f9_12; + m_A35 += m_A27 * f9_12; + RHS12 += f9_12 * RHS9; + const double f9_24 = -f9 * m_A103; + m_A104 += m_A26 * f9_24; + m_A110 += m_A27 * f9_24; + RHS24 += f9_24 * RHS9; + const double f10 = 1.0 / m_A28; + const double f10_12 = -f10 * m_A33; + m_A34 += m_A29 * f10_12; + RHS12 += f10_12 * RHS10; + const double f11 = 1.0 / m_A30; + const double f11_18 = -f11 * m_A57; + m_A58 += m_A31 * f11_18; + RHS18 += f11_18 * RHS11; + const double f11_23 = -f11 * m_A96; + m_A97 += m_A31 * f11_23; + RHS23 += f11_23 * RHS11; + const double f12 = 1.0 / m_A34; + const double f12_24 = -f12 * m_A104; + m_A110 += m_A35 * f12_24; + RHS24 += f12_24 * RHS12; + const double f13 = 1.0 / m_A37; + const double f13_19 = -f13 * m_A65; + m_A67 += m_A38 * f13_19; + RHS19 += f13_19 * RHS13; + const double f14 = 1.0 / m_A40; + const double f14_20 = -f14 * m_A73; + m_A76 += m_A41 * f14_20; + RHS20 += f14_20 * RHS14; + const double f15 = 1.0 / m_A44; + const double f15_16 = -f15 * m_A47; + m_A49 += m_A45 * f15_16; + RHS16 += f15_16 * RHS15; + const double f15_21 = -f15 * m_A81; + m_A84 += m_A45 * f15_21; + RHS21 += f15_21 * RHS15; + const double f16 = 1.0 / m_A48; + const double f16_21 = -f16 * m_A82; + m_A84 += m_A49 * f16_21; + RHS21 += f16_21 * RHS16; + const double f17 = 1.0 / m_A51; + const double f17_21 = -f17 * m_A83; + m_A84 += m_A52 * f17_21; + m_A85 += m_A53 * f17_21; + RHS21 += f17_21 * RHS17; + const double f17_22 = -f17 * m_A89; + m_A93 += m_A52 * f17_22; + m_A94 += m_A53 * f17_22; + RHS22 += f17_22 * RHS17; + const double f18 = 1.0 / m_A58; + const double f18_19 = -f18 * m_A66; + m_A67 += m_A59 * f18_19; + m_A68 += m_A60 * f18_19; + m_A69 += m_A61 * f18_19; + m_A70 += m_A62 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_20 = -f18 * m_A74; + m_A75 += m_A59 * f18_20; + m_A76 += m_A60 * f18_20; + m_A77 += m_A61 * f18_20; + m_A78 += m_A62 * f18_20; + RHS20 += f18_20 * RHS18; + const double f18_22 = -f18 * m_A90; + m_A91 += m_A59 * f18_22; + m_A92 += m_A60 * f18_22; + m_A94 += m_A61 * f18_22; + m_A95 += m_A62 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_23 = -f18 * m_A97; + m_A98 += m_A59 * f18_23; + m_A99 += m_A60 * f18_23; + m_A100 += m_A61 * f18_23; + m_A102 += m_A62 * f18_23; + RHS23 += f18_23 * RHS18; + const double f18_24 = -f18 * m_A105; + m_A106 += m_A59 * f18_24; + m_A107 += m_A60 * f18_24; + m_A108 += m_A61 * f18_24; + m_A110 += m_A62 * f18_24; + RHS24 += f18_24 * RHS18; + const double f19 = 1.0 / m_A67; + const double f19_20 = -f19 * m_A75; + m_A76 += m_A68 * f19_20; + m_A77 += m_A69 * f19_20; + m_A78 += m_A70 * f19_20; + RHS20 += f19_20 * RHS19; + const double f19_22 = -f19 * m_A91; + m_A92 += m_A68 * f19_22; + m_A94 += m_A69 * f19_22; + m_A95 += m_A70 * f19_22; + RHS22 += f19_22 * RHS19; + const double f19_23 = -f19 * m_A98; + m_A99 += m_A68 * f19_23; + m_A100 += m_A69 * f19_23; + m_A102 += m_A70 * f19_23; + RHS23 += f19_23 * RHS19; + const double f19_24 = -f19 * m_A106; + m_A107 += m_A68 * f19_24; + m_A108 += m_A69 * f19_24; + m_A110 += m_A70 * f19_24; + RHS24 += f19_24 * RHS19; + const double f20 = 1.0 / m_A76; + const double f20_22 = -f20 * m_A92; + m_A94 += m_A77 * f20_22; + m_A95 += m_A78 * f20_22; + RHS22 += f20_22 * RHS20; + const double f20_23 = -f20 * m_A99; + m_A100 += m_A77 * f20_23; + m_A102 += m_A78 * f20_23; + RHS23 += f20_23 * RHS20; + const double f20_24 = -f20 * m_A107; + m_A108 += m_A77 * f20_24; + m_A110 += m_A78 * f20_24; + RHS24 += f20_24 * RHS20; + const double f21 = 1.0 / m_A84; + const double f21_22 = -f21 * m_A93; + m_A94 += m_A85 * f21_22; + RHS22 += f21_22 * RHS21; + const double f22 = 1.0 / m_A94; + const double f22_23 = -f22 * m_A100; + m_A102 += m_A95 * f22_23; + RHS23 += f22_23 * RHS22; + const double f22_24 = -f22 * m_A108; + m_A110 += m_A95 * f22_24; + RHS24 += f22_24 * RHS22; + const double f23 = 1.0 / m_A101; + const double f23_24 = -f23 * m_A109; + m_A110 += m_A102 * f23_24; + RHS24 += f23_24 * RHS23; + V[24] = RHS24 / m_A110; + double tmp23 = 0.0; + tmp23 += m_A102 * V[24]; + V[23] = (RHS23 - tmp23) / m_A101; + double tmp22 = 0.0; + tmp22 += m_A95 * V[24]; + V[22] = (RHS22 - tmp22) / m_A94; + double tmp21 = 0.0; + tmp21 += m_A85 * V[22]; + V[21] = (RHS21 - tmp21) / m_A84; + double tmp20 = 0.0; + tmp20 += m_A77 * V[22]; + tmp20 += m_A78 * V[24]; + V[20] = (RHS20 - tmp20) / m_A76; + double tmp19 = 0.0; + tmp19 += m_A68 * V[20]; + tmp19 += m_A69 * V[22]; + tmp19 += m_A70 * V[24]; + V[19] = (RHS19 - tmp19) / m_A67; + double tmp18 = 0.0; + tmp18 += m_A59 * V[19]; + tmp18 += m_A60 * V[20]; + tmp18 += m_A61 * V[22]; + tmp18 += m_A62 * V[24]; + V[18] = (RHS18 - tmp18) / m_A58; + double tmp17 = 0.0; + tmp17 += m_A52 * V[21]; + tmp17 += m_A53 * V[22]; + V[17] = (RHS17 - tmp17) / m_A51; + double tmp16 = 0.0; + tmp16 += m_A49 * V[21]; + V[16] = (RHS16 - tmp16) / m_A48; + double tmp15 = 0.0; + tmp15 += m_A45 * V[21]; + V[15] = (RHS15 - tmp15) / m_A44; double tmp14 = 0.0; - tmp14 += m_A52 * V[15]; - V[14] = (RHS14 - tmp14) / m_A51; + tmp14 += m_A41 * V[20]; + V[14] = (RHS14 - tmp14) / m_A40; double tmp13 = 0.0; - tmp13 += m_A45 * V[15]; - V[13] = (RHS13 - tmp13) / m_A44; + tmp13 += m_A38 * V[19]; + V[13] = (RHS13 - tmp13) / m_A37; double tmp12 = 0.0; - tmp12 += m_A41 * V[14]; - V[12] = (RHS12 - tmp12) / m_A40; + tmp12 += m_A35 * V[24]; + V[12] = (RHS12 - tmp12) / m_A34; double tmp11 = 0.0; - tmp11 += m_A36 * V[12]; - V[11] = (RHS11 - tmp11) / m_A35; + tmp11 += m_A31 * V[18]; + V[11] = (RHS11 - tmp11) / m_A30; double tmp10 = 0.0; - tmp10 += m_A32 * V[14]; - V[10] = (RHS10 - tmp10) / m_A31; + tmp10 += m_A29 * V[12]; + V[10] = (RHS10 - tmp10) / m_A28; double tmp9 = 0.0; - tmp9 += m_A27 * V[10]; - V[9] = (RHS9 - tmp9) / m_A26; + tmp9 += m_A26 * V[12]; + tmp9 += m_A27 * V[24]; + V[9] = (RHS9 - tmp9) / m_A25; double tmp8 = 0.0; - tmp8 += m_A22 * V[14]; - tmp8 += m_A23 * V[15]; - V[8] = (RHS8 - tmp8) / m_A21; + tmp8 += m_A23 * V[18]; + tmp8 += m_A24 * V[20]; + V[8] = (RHS8 - tmp8) / m_A22; double tmp7 = 0.0; - tmp7 += m_A19 * V[13]; - tmp7 += m_A20 * V[15]; - V[7] = (RHS7 - tmp7) / m_A18; + tmp7 += m_A20 * V[18]; + tmp7 += m_A21 * V[19]; + V[7] = (RHS7 - tmp7) / m_A19; double tmp6 = 0.0; - tmp6 += m_A17 * V[13]; + tmp6 += m_A17 * V[18]; + tmp6 += m_A18 * V[22]; V[6] = (RHS6 - tmp6) / m_A16; double tmp5 = 0.0; - tmp5 += m_A14 * V[12]; - tmp5 += m_A15 * V[14]; + tmp5 += m_A14 * V[17]; + tmp5 += m_A15 * V[22]; V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A11 * V[11]; - tmp4 += m_A12 * V[12]; - V[4] = (RHS4 - tmp4) / m_A10; + tmp4 += m_A10 * V[17]; + tmp4 += m_A11 * V[21]; + tmp4 += m_A12 * V[22]; + V[4] = (RHS4 - tmp4) / m_A9; double tmp3 = 0.0; - tmp3 += m_A9 * V[11]; - V[3] = (RHS3 - tmp3) / m_A8; + tmp3 += m_A7 * V[15]; + tmp3 += m_A8 * V[21]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A6 * V[10]; - tmp2 += m_A7 * V[14]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[15]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[9]; - tmp1 += m_A4 * V[10]; + tmp1 += m_A3 * V[20]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; + tmp0 += m_A1 * V[19]; V[0] = (RHS0 - tmp0) / m_A0; } -// solarq -static void nl_gcr_66496d6073aca98e_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// boxingb +static void nl_gcr_a0bf548977306172_25_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -14081,164 +38600,11 @@ double m_A17(0.0); double m_A18(0.0); double m_A19(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A4 += go[4]; - m_A3 += go[5]; - m_A3 += go[6]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A5 += gt[12]; - m_A5 += gt[13]; - m_A7 += go[10]; - m_A6 += go[11]; - m_A6 += go[12]; - double RHS2 = Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[13] * *cnV[13]; - m_A10 += gt[14]; - m_A10 += gt[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A10 += gt[19]; - m_A9 += go[14]; - m_A9 += go[15]; - m_A8 += go[16]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A15 += gt[20]; - m_A15 += gt[21]; - m_A15 += gt[22]; - m_A15 += gt[23]; - m_A15 += gt[24]; - m_A13 += go[20]; - m_A13 += go[21]; - m_A12 += go[22]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 -= go[23] * *cnV[23]; - RHS4 -= go[24] * *cnV[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A19 += gt[27]; - m_A19 += gt[28]; - m_A19 += gt[29]; - m_A17 += go[25]; - double RHS5 = Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 -= go[26] * *cnV[26]; - RHS5 -= go[27] * *cnV[27]; - RHS5 -= go[28] * *cnV[28]; - RHS5 -= go[29] * *cnV[29]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_4 = -f1 * m_A12; - m_A14 += m_A3 * f1_4; - m_A15 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A13; - m_A15 += m_A6 * f2_4; - m_A16 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A17; - m_A18 += m_A6 * f2_5; - m_A19 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_4 = -f3 * m_A14; - m_A15 += m_A11 * f3_4; - RHS4 += f3_4 * RHS3; - const double f4 = 1.0 / m_A15; - const double f4_5 = -f4 * m_A18; - m_A19 += m_A16 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A19; - double tmp4 = 0.0; - tmp4 += m_A16 * V[5]; - V[4] = (RHS4 - tmp4) / m_A15; - double tmp3 = 0.0; - tmp3 += m_A11 * V[4]; - V[3] = (RHS3 - tmp3) / m_A10; - double tmp2 = 0.0; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[5]; - V[2] = (RHS2 - tmp2) / m_A5; - double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; - tmp1 += m_A4 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// starhawk -static void nl_gcr_67838e11f714c455_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -14247,81 +38613,144 @@ RHS0 -= go[1] * *cnV[1]; m_A2 += gt[2]; m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A4 += go[2]; - m_A3 += go[3]; - m_A3 += go[4]; + m_A3 += go[2]; double RHS1 = Idr[2]; RHS1 += Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A7 += go[6]; - m_A7 += go[7]; - m_A5 += go[8]; - m_A5 += go[9]; - double RHS2 = Idr[6]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A6 += go[4]; + m_A5 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; RHS2 += Idr[7]; RHS2 += Idr[8]; RHS2 += Idr[9]; RHS2 += Idr[10]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; RHS2 -= go[10] * *cnV[10]; - m_A11 += gt[11]; - m_A11 += gt[12]; - m_A11 += gt[13]; - m_A11 += gt[14]; - m_A11 += gt[15]; - m_A11 += gt[16]; - m_A10 += go[11]; - m_A10 += go[12]; - m_A9 += go[13]; - m_A8 += go[14]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A8 += go[11]; + m_A9 += go[12]; double RHS3 = Idr[11]; RHS3 += Idr[12]; RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[13] * *cnV[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A12 += go[14]; + m_A10 += go[15]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[16] * *cnV[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A15 += go[17]; + m_A13 += go[18]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 -= go[19] * *cnV[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A16 += go[20]; + m_A17 += go[21]; + double RHS6 = Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 -= go[22] * *cnV[22]; + m_A24 += gt[23]; + m_A24 += gt[24]; + m_A24 += gt[25]; + m_A24 += gt[26]; + m_A24 += gt[27]; + m_A20 += go[23]; + m_A21 += go[24]; + m_A22 += go[25]; + double RHS7 = Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[26] * *cnV[26]; + RHS7 -= go[27] * *cnV[27]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A11 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; + const double f0_4 = -f0 * m_A10; + m_A11 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - m_A7 += m_A4 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; + const double f1_5 = -f1 * m_A13; + m_A14 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_7 = -f2 * m_A20; + m_A22 += m_A5 * f2_7; + m_A24 += m_A6 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_6 = -f3 * m_A16; + m_A18 += m_A8 * f3_6; + m_A19 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_7 = -f3 * m_A21; + m_A23 += m_A8 * f3_7; + m_A24 += m_A9 * f3_7; + RHS7 += f3_7 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_6 = -f4 * m_A17; + m_A18 += m_A12 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_7 = -f5 * m_A22; + m_A24 += m_A15 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A18; + const double f6_7 = -f6 * m_A23; + m_A24 += m_A19 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A24; + double tmp6 = 0.0; + tmp6 += m_A19 * V[7]; + V[6] = (RHS6 - tmp6) / m_A18; + double tmp5 = 0.0; + tmp5 += m_A15 * V[7]; + V[5] = (RHS5 - tmp5) / m_A14; + double tmp4 = 0.0; + tmp4 += m_A12 * V[6]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A8 * V[6]; + tmp3 += m_A9 * V[7]; + V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A5 * V[5]; + tmp2 += m_A6 * V[7]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[3]; + tmp1 += m_A3 * V[5]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// ripoff -static void nl_gcr_698d5dd47fb16d5_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// boxingb +static void nl_gcr_a1132c8737d5d463_96_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -14342,88 +38771,632 @@ double m_A13(0.0); double m_A14(0.0); double m_A15(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 -= go[5] * *cnV[5]; - m_A7 += gt[6]; - m_A7 += gt[7]; - m_A6 += go[6]; - m_A8 += go[7]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - m_A10 += gt[8]; - m_A10 += gt[9]; - m_A9 += go[8]; - m_A11 += go[9]; - double RHS4 = Idr[8]; - RHS4 += Idr[9]; - m_A15 += gt[10]; - m_A15 += gt[11]; - m_A15 += gt[12]; - m_A15 += gt[13]; - m_A14 += go[10]; - m_A13 += go[11]; - m_A12 += go[12]; - double RHS5 = Idr[10]; - RHS5 += Idr[11]; - RHS5 += Idr[12]; - RHS5 += Idr[13]; - RHS5 -= go[13] * *cnV[13]; + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A5 += go[7]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A7 += go[10]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A9 += go[13]; + double RHS4 = Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A11 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 -= go[17] * *cnV[17]; + RHS5 -= go[18] * *cnV[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A13 += go[19]; + double RHS6 = Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 -= go[20] * *cnV[20]; + RHS6 -= go[21] * *cnV[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A14 += gt[24]; + m_A15 += go[22]; + double RHS7 = Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A17 += go[25]; + double RHS8 = Idr[25]; + RHS8 += Idr[26]; + RHS8 += Idr[27]; + RHS8 -= go[26] * *cnV[26]; + RHS8 -= go[27] * *cnV[27]; + m_A18 += gt[28]; + m_A18 += gt[29]; + m_A18 += gt[30]; + m_A19 += go[28]; + double RHS9 = Idr[28]; + RHS9 += Idr[29]; + RHS9 += Idr[30]; + RHS9 -= go[29] * *cnV[29]; + RHS9 -= go[30] * *cnV[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A21 += go[31]; + double RHS10 = Idr[31]; + RHS10 += Idr[32]; + RHS10 += Idr[33]; + RHS10 -= go[32] * *cnV[32]; + RHS10 -= go[33] * *cnV[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A24 += go[34]; + m_A23 += go[35]; + double RHS11 = Idr[34]; + RHS11 += Idr[35]; + m_A25 += gt[36]; + m_A25 += gt[37]; + m_A27 += go[36]; + m_A26 += go[37]; + double RHS12 = Idr[36]; + RHS12 += Idr[37]; + m_A28 += gt[38]; + m_A28 += gt[39]; + m_A30 += go[38]; + m_A29 += go[39]; + double RHS13 = Idr[38]; + RHS13 += Idr[39]; + m_A31 += gt[40]; + m_A31 += gt[41]; + m_A32 += go[40]; + double RHS14 = Idr[40]; + RHS14 += Idr[41]; + RHS14 -= go[41] * *cnV[41]; + m_A33 += gt[42]; + m_A33 += gt[43]; + m_A35 += go[42]; + m_A34 += go[43]; + double RHS15 = Idr[42]; + RHS15 += Idr[43]; + m_A36 += gt[44]; + m_A36 += gt[45]; + m_A36 += gt[46]; + m_A36 += gt[47]; + m_A36 += gt[48]; + m_A36 += gt[49]; + m_A36 += gt[50]; + m_A37 += go[44]; + double RHS16 = Idr[44]; + RHS16 += Idr[45]; + RHS16 += Idr[46]; + RHS16 += Idr[47]; + RHS16 += Idr[48]; + RHS16 += Idr[49]; + RHS16 += Idr[50]; + RHS16 -= go[45] * *cnV[45]; + RHS16 -= go[46] * *cnV[46]; + RHS16 -= go[47] * *cnV[47]; + RHS16 -= go[48] * *cnV[48]; + RHS16 -= go[49] * *cnV[49]; + RHS16 -= go[50] * *cnV[50]; + m_A42 += gt[51]; + m_A42 += gt[52]; + m_A42 += gt[53]; + m_A42 += gt[54]; + m_A42 += gt[55]; + m_A41 += go[51]; + m_A40 += go[52]; + m_A39 += go[53]; + m_A38 += go[54]; + double RHS17 = Idr[51]; + RHS17 += Idr[52]; + RHS17 += Idr[53]; + RHS17 += Idr[54]; + RHS17 += Idr[55]; + RHS17 -= go[55] * *cnV[55]; + m_A48 += gt[56]; + m_A48 += gt[57]; + m_A48 += gt[58]; + m_A48 += gt[59]; + m_A48 += gt[60]; + m_A47 += go[56]; + m_A46 += go[57]; + m_A45 += go[58]; + m_A44 += go[59]; + double RHS18 = Idr[56]; + RHS18 += Idr[57]; + RHS18 += Idr[58]; + RHS18 += Idr[59]; + RHS18 += Idr[60]; + RHS18 -= go[60] * *cnV[60]; + m_A50 += gt[61]; + m_A50 += gt[62]; + m_A51 += go[61]; + m_A52 += go[62]; + double RHS19 = Idr[61]; + RHS19 += Idr[62]; + m_A55 += gt[63]; + m_A55 += gt[64]; + m_A55 += gt[65]; + m_A54 += go[63]; + m_A53 += go[64]; + double RHS20 = Idr[63]; + RHS20 += Idr[64]; + RHS20 += Idr[65]; + RHS20 -= go[65] * *cnV[65]; + m_A58 += gt[66]; + m_A58 += gt[67]; + m_A58 += gt[68]; + m_A59 += go[66]; + m_A57 += go[67]; + double RHS21 = Idr[66]; + RHS21 += Idr[67]; + RHS21 += Idr[68]; + RHS21 -= go[68] * *cnV[68]; + m_A62 += gt[69]; + m_A62 += gt[70]; + m_A62 += gt[71]; + m_A61 += go[69]; + m_A60 += go[70]; + double RHS22 = Idr[69]; + RHS22 += Idr[70]; + RHS22 += Idr[71]; + RHS22 -= go[71] * *cnV[71]; + m_A65 += gt[72]; + m_A65 += gt[73]; + m_A65 += gt[74]; + m_A65 += gt[75]; + m_A65 += gt[76]; + m_A65 += gt[77]; + m_A65 += gt[78]; + m_A64 += go[72]; + m_A66 += go[73]; + double RHS23 = Idr[72]; + RHS23 += Idr[73]; + RHS23 += Idr[74]; + RHS23 += Idr[75]; + RHS23 += Idr[76]; + RHS23 += Idr[77]; + RHS23 += Idr[78]; + RHS23 -= go[74] * *cnV[74]; + RHS23 -= go[75] * *cnV[75]; + RHS23 -= go[76] * *cnV[76]; + RHS23 -= go[77] * *cnV[77]; + RHS23 -= go[78] * *cnV[78]; + m_A68 += gt[79]; + m_A68 += gt[80]; + m_A69 += go[79]; + m_A67 += go[80]; + double RHS24 = Idr[79]; + RHS24 += Idr[80]; + m_A73 += gt[81]; + m_A73 += gt[82]; + m_A73 += gt[83]; + m_A73 += gt[84]; + m_A73 += gt[85]; + m_A72 += go[81]; + m_A70 += go[82]; + m_A71 += go[83]; + double RHS25 = Idr[81]; + RHS25 += Idr[82]; + RHS25 += Idr[83]; + RHS25 += Idr[84]; + RHS25 += Idr[85]; + RHS25 -= go[84] * *cnV[84]; + RHS25 -= go[85] * *cnV[85]; + m_A76 += gt[86]; + m_A76 += gt[87]; + m_A77 += go[86]; + m_A75 += go[87]; + double RHS26 = Idr[86]; + RHS26 += Idr[87]; + m_A79 += gt[88]; + m_A79 += gt[89]; + m_A79 += gt[90]; + m_A79 += gt[91]; + m_A79 += gt[92]; + m_A78 += go[88]; + m_A80 += go[89]; + m_A80 += go[90]; + double RHS27 = Idr[88]; + RHS27 += Idr[89]; + RHS27 += Idr[90]; + RHS27 += Idr[91]; + RHS27 += Idr[92]; + RHS27 -= go[91] * *cnV[91]; + RHS27 -= go[92] * *cnV[92]; + m_A95 += gt[93]; + m_A95 += gt[94]; + m_A95 += gt[95]; + m_A95 += gt[96]; + m_A95 += gt[97]; + m_A95 += gt[98]; + m_A95 += gt[99]; + m_A95 += gt[100]; + m_A95 += gt[101]; + m_A95 += gt[102]; + m_A95 += gt[103]; + m_A87 += go[93]; + m_A94 += go[94]; + m_A94 += go[95]; + m_A93 += go[96]; + m_A91 += go[97]; + m_A84 += go[98]; + m_A83 += go[99]; + m_A82 += go[100]; + m_A81 += go[101]; + m_A89 += go[102]; + double RHS28 = Idr[93]; + RHS28 += Idr[94]; + RHS28 += Idr[95]; + RHS28 += Idr[96]; + RHS28 += Idr[97]; + RHS28 += Idr[98]; + RHS28 += Idr[99]; + RHS28 += Idr[100]; + RHS28 += Idr[101]; + RHS28 += Idr[102]; + RHS28 += Idr[103]; + RHS28 -= go[103] * *cnV[103]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A12; - m_A15 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; + const double f0_21 = -f0 * m_A57; + m_A58 += m_A1 * f0_21; + RHS21 += f0_21 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A6; - m_A7 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; + const double f1_17 = -f1 * m_A38; + m_A42 += m_A3 * f1_17; + RHS17 += f1_17 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A9; - m_A10 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_5 = -f3 * m_A13; - m_A15 += m_A8 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_5 = -f4 * m_A14; - m_A15 += m_A11 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A15; + const double f2_17 = -f2 * m_A39; + m_A42 += m_A5 * f2_17; + RHS17 += f2_17 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_17 = -f3 * m_A40; + m_A42 += m_A7 * f3_17; + RHS17 += f3_17 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_18 = -f4 * m_A44; + m_A48 += m_A9 * f4_18; + RHS18 += f4_18 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_20 = -f5 * m_A53; + m_A55 += m_A11 * f5_20; + RHS20 += f5_20 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_22 = -f6 * m_A60; + m_A62 += m_A13 * f6_22; + RHS22 += f6_22 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_18 = -f7 * m_A45; + m_A48 += m_A15 * f7_18; + RHS18 += f7_18 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_18 = -f8 * m_A46; + m_A48 += m_A17 * f8_18; + RHS18 += f8_18 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_24 = -f9 * m_A67; + m_A68 += m_A19 * f9_24; + RHS24 += f9_24 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_26 = -f10 * m_A75; + m_A76 += m_A21 * f10_26; + RHS26 += f10_26 * RHS10; + const double f11 = 1.0 / m_A22; + const double f11_17 = -f11 * m_A41; + m_A42 += m_A23 * f11_17; + m_A43 += m_A24 * f11_17; + RHS17 += f11_17 * RHS11; + const double f11_28 = -f11 * m_A81; + m_A85 += m_A23 * f11_28; + m_A95 += m_A24 * f11_28; + RHS28 += f11_28 * RHS11; + const double f12 = 1.0 / m_A25; + const double f12_18 = -f12 * m_A47; + m_A48 += m_A26 * f12_18; + m_A49 += m_A27 * f12_18; + RHS18 += f12_18 * RHS12; + const double f12_28 = -f12 * m_A82; + m_A86 += m_A26 * f12_28; + m_A95 += m_A27 * f12_28; + RHS28 += f12_28 * RHS12; + const double f13 = 1.0 / m_A28; + const double f13_20 = -f13 * m_A54; + m_A55 += m_A29 * f13_20; + m_A56 += m_A30 * f13_20; + RHS20 += f13_20 * RHS13; + const double f13_28 = -f13 * m_A83; + m_A88 += m_A29 * f13_28; + m_A95 += m_A30 * f13_28; + RHS28 += f13_28 * RHS13; + const double f14 = 1.0 / m_A31; + const double f14_23 = -f14 * m_A64; + m_A66 += m_A32 * f14_23; + RHS23 += f14_23 * RHS14; + const double f14_25 = -f14 * m_A70; + m_A73 += m_A32 * f14_25; + RHS25 += f14_25 * RHS14; + const double f15 = 1.0 / m_A33; + const double f15_22 = -f15 * m_A61; + m_A62 += m_A34 * f15_22; + m_A63 += m_A35 * f15_22; + RHS22 += f15_22 * RHS15; + const double f15_28 = -f15 * m_A84; + m_A90 += m_A34 * f15_28; + m_A95 += m_A35 * f15_28; + RHS28 += f15_28 * RHS15; + const double f16 = 1.0 / m_A36; + const double f16_27 = -f16 * m_A78; + m_A80 += m_A37 * f16_27; + RHS27 += f16_27 * RHS16; + const double f17 = 1.0 / m_A42; + const double f17_28 = -f17 * m_A85; + m_A95 += m_A43 * f17_28; + RHS28 += f17_28 * RHS17; + const double f18 = 1.0 / m_A48; + const double f18_28 = -f18 * m_A86; + m_A95 += m_A49 * f18_28; + RHS28 += f18_28 * RHS18; + const double f19 = 1.0 / m_A50; + const double f19_25 = -f19 * m_A71; + m_A73 += m_A51 * f19_25; + m_A74 += m_A52 * f19_25; + RHS25 += f19_25 * RHS19; + const double f19_28 = -f19 * m_A87; + m_A92 += m_A51 * f19_28; + m_A95 += m_A52 * f19_28; + RHS28 += f19_28 * RHS19; + const double f20 = 1.0 / m_A55; + const double f20_28 = -f20 * m_A88; + m_A95 += m_A56 * f20_28; + RHS28 += f20_28 * RHS20; + const double f21 = 1.0 / m_A58; + const double f21_28 = -f21 * m_A89; + m_A95 += m_A59 * f21_28; + RHS28 += f21_28 * RHS21; + const double f22 = 1.0 / m_A62; + const double f22_28 = -f22 * m_A90; + m_A95 += m_A63 * f22_28; + RHS28 += f22_28 * RHS22; + const double f23 = 1.0 / m_A65; + const double f23_25 = -f23 * m_A72; + m_A73 += m_A66 * f23_25; + RHS25 += f23_25 * RHS23; + const double f24 = 1.0 / m_A68; + const double f24_28 = -f24 * m_A91; + m_A95 += m_A69 * f24_28; + RHS28 += f24_28 * RHS24; + const double f25 = 1.0 / m_A73; + const double f25_28 = -f25 * m_A92; + m_A95 += m_A74 * f25_28; + RHS28 += f25_28 * RHS25; + const double f26 = 1.0 / m_A76; + const double f26_28 = -f26 * m_A93; + m_A95 += m_A77 * f26_28; + RHS28 += f26_28 * RHS26; + const double f27 = 1.0 / m_A79; + const double f27_28 = -f27 * m_A94; + m_A95 += m_A80 * f27_28; + RHS28 += f27_28 * RHS27; + V[28] = RHS28 / m_A95; + double tmp27 = 0.0; + tmp27 += m_A80 * V[28]; + V[27] = (RHS27 - tmp27) / m_A79; + double tmp26 = 0.0; + tmp26 += m_A77 * V[28]; + V[26] = (RHS26 - tmp26) / m_A76; + double tmp25 = 0.0; + tmp25 += m_A74 * V[28]; + V[25] = (RHS25 - tmp25) / m_A73; + double tmp24 = 0.0; + tmp24 += m_A69 * V[28]; + V[24] = (RHS24 - tmp24) / m_A68; + double tmp23 = 0.0; + tmp23 += m_A66 * V[25]; + V[23] = (RHS23 - tmp23) / m_A65; + double tmp22 = 0.0; + tmp22 += m_A63 * V[28]; + V[22] = (RHS22 - tmp22) / m_A62; + double tmp21 = 0.0; + tmp21 += m_A59 * V[28]; + V[21] = (RHS21 - tmp21) / m_A58; + double tmp20 = 0.0; + tmp20 += m_A56 * V[28]; + V[20] = (RHS20 - tmp20) / m_A55; + double tmp19 = 0.0; + tmp19 += m_A51 * V[25]; + tmp19 += m_A52 * V[28]; + V[19] = (RHS19 - tmp19) / m_A50; + double tmp18 = 0.0; + tmp18 += m_A49 * V[28]; + V[18] = (RHS18 - tmp18) / m_A48; + double tmp17 = 0.0; + tmp17 += m_A43 * V[28]; + V[17] = (RHS17 - tmp17) / m_A42; + double tmp16 = 0.0; + tmp16 += m_A37 * V[28]; + V[16] = (RHS16 - tmp16) / m_A36; + double tmp15 = 0.0; + tmp15 += m_A34 * V[22]; + tmp15 += m_A35 * V[28]; + V[15] = (RHS15 - tmp15) / m_A33; + double tmp14 = 0.0; + tmp14 += m_A32 * V[25]; + V[14] = (RHS14 - tmp14) / m_A31; + double tmp13 = 0.0; + tmp13 += m_A29 * V[20]; + tmp13 += m_A30 * V[28]; + V[13] = (RHS13 - tmp13) / m_A28; + double tmp12 = 0.0; + tmp12 += m_A26 * V[18]; + tmp12 += m_A27 * V[28]; + V[12] = (RHS12 - tmp12) / m_A25; + double tmp11 = 0.0; + tmp11 += m_A23 * V[17]; + tmp11 += m_A24 * V[28]; + V[11] = (RHS11 - tmp11) / m_A22; + double tmp10 = 0.0; + tmp10 += m_A21 * V[26]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[24]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[18]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[18]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[22]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[20]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A11 * V[5]; - V[4] = (RHS4 - tmp4) / m_A10; + tmp4 += m_A9 * V[18]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A8 * V[5]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A7 * V[17]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; + tmp2 += m_A5 * V[17]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[17]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[21]; V[0] = (RHS0 - tmp0) / m_A0; } -// barrier -static void nl_gcr_6ef39a62161d596c_47_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// astrob +static void nl_gcr_a41a44bd5c424f88_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -14441,335 +39414,90 @@ double m_A10(0.0); double m_A11(0.0); double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; + m_A3 += go[3]; + double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 -= go[3] * *cnV[3]; RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A5 += go[9]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[10] * *cnV[10]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; m_A6 += gt[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A6 += gt[16]; - m_A7 += go[11]; - m_A7 += go[12]; - m_A7 += go[13]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A11 += go[12]; + m_A10 += go[13]; m_A9 += go[14]; m_A8 += go[15]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 -= go[16] * *cnV[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A11 += go[17]; - m_A12 += go[18]; - double RHS4 = Idr[17]; - RHS4 += Idr[18]; - m_A13 += gt[19]; - m_A13 += gt[20]; - m_A13 += gt[21]; - m_A13 += gt[22]; - m_A13 += gt[23]; - m_A13 += gt[24]; - m_A13 += gt[25]; - m_A14 += go[19]; - double RHS5 = Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; - RHS5 -= go[20] * *cnV[20]; - RHS5 -= go[21] * *cnV[21]; - RHS5 -= go[22] * *cnV[22]; - RHS5 -= go[23] * *cnV[23]; - RHS5 -= go[24] * *cnV[24]; - RHS5 -= go[25] * *cnV[25]; - m_A16 += gt[26]; - m_A16 += gt[27]; - m_A16 += gt[28]; - m_A16 += gt[29]; - m_A16 += gt[30]; - m_A15 += go[26]; - m_A15 += go[27]; - m_A15 += go[28]; - double RHS6 = Idr[26]; - RHS6 += Idr[27]; - RHS6 += Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 -= go[29] * *cnV[29]; - RHS6 -= go[30] * *cnV[30]; - m_A20 += gt[31]; - m_A20 += gt[32]; - m_A20 += gt[33]; - m_A20 += gt[34]; - m_A19 += go[31]; - m_A21 += go[32]; - m_A21 += go[33]; - double RHS7 = Idr[31]; - RHS7 += Idr[32]; - RHS7 += Idr[33]; - RHS7 += Idr[34]; - RHS7 -= go[34] * *cnV[34]; - m_A23 += gt[35]; - m_A23 += gt[36]; - m_A22 += go[35]; - m_A24 += go[36]; - double RHS8 = Idr[35]; - RHS8 += Idr[36]; - m_A26 += gt[37]; - m_A26 += gt[38]; - m_A26 += gt[39]; - m_A28 += go[37]; - m_A25 += go[38]; - double RHS9 = Idr[37]; - RHS9 += Idr[38]; - RHS9 += Idr[39]; - RHS9 -= go[39] * *cnV[39]; - m_A33 += gt[40]; - m_A33 += gt[41]; - m_A33 += gt[42]; - m_A33 += gt[43]; - m_A33 += gt[44]; - m_A33 += gt[45]; - m_A33 += gt[46]; - m_A29 += go[40]; - m_A30 += go[41]; - m_A32 += go[42]; - m_A32 += go[43]; - double RHS10 = Idr[40]; - RHS10 += Idr[41]; - RHS10 += Idr[42]; - RHS10 += Idr[43]; - RHS10 += Idr[44]; - RHS10 += Idr[45]; - RHS10 += Idr[46]; - RHS10 -= go[44] * *cnV[44]; - RHS10 -= go[45] * *cnV[45]; - RHS10 -= go[46] * *cnV[46]; - m_A41 += gt[47]; - m_A41 += gt[48]; - m_A41 += gt[49]; - m_A41 += gt[50]; - m_A41 += gt[51]; - m_A41 += gt[52]; - m_A36 += go[47]; - m_A35 += go[48]; - m_A38 += go[49]; - double RHS11 = Idr[47]; - RHS11 += Idr[48]; - RHS11 += Idr[49]; - RHS11 += Idr[50]; - RHS11 += Idr[51]; - RHS11 += Idr[52]; - RHS11 -= go[50] * *cnV[50]; - RHS11 -= go[51] * *cnV[51]; - RHS11 -= go[52] * *cnV[52]; - m_A46 += gt[53]; - m_A46 += gt[54]; - m_A46 += gt[55]; - m_A46 += gt[56]; - m_A46 += gt[57]; - m_A43 += go[53]; - m_A44 += go[54]; - double RHS12 = Idr[53]; - RHS12 += Idr[54]; - RHS12 += Idr[55]; - RHS12 += Idr[56]; - RHS12 += Idr[57]; - RHS12 -= go[55] * *cnV[55]; - RHS12 -= go[56] * *cnV[56]; - RHS12 -= go[57] * *cnV[57]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[16] * *cnV[16]; const double f0 = 1.0 / m_A0; - const double f0_7 = -f0 * m_A19; - m_A20 += m_A1 * f0_7; - RHS7 += f0_7 * RHS0; + const double f0_4 = -f0 * m_A8; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_10 = -f1 * m_A29; - m_A32 += m_A3 * f1_10; - RHS10 += f1_10 * RHS1; + const double f1_4 = -f1 * m_A9; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_8 = -f2 * m_A22; - m_A23 += m_A5 * f2_8; - RHS8 += f2_8 * RHS2; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A15; - m_A16 += m_A7 * f3_6; - m_A17 += m_A8 * f3_6; - m_A18 += m_A9 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_10 = -f3 * m_A30; - m_A31 += m_A7 * f3_10; - m_A33 += m_A8 * f3_10; - m_A34 += m_A9 * f3_10; - RHS10 += f3_10 * RHS3; - const double f3_11 = -f3 * m_A35; - m_A37 += m_A7 * f3_11; - m_A40 += m_A8 * f3_11; - m_A41 += m_A9 * f3_11; - RHS11 += f3_11 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_9 = -f4 * m_A25; - m_A26 += m_A11 * f4_9; - m_A27 += m_A12 * f4_9; - RHS9 += f4_9 * RHS4; - const double f4_11 = -f4 * m_A36; - m_A39 += m_A11 * f4_11; - m_A41 += m_A12 * f4_11; - RHS11 += f4_11 * RHS4; - const double f5 = 1.0 / m_A13; - const double f5_12 = -f5 * m_A43; - m_A44 += m_A14 * f5_12; - RHS12 += f5_12 * RHS5; - const double f6 = 1.0 / m_A16; - const double f6_10 = -f6 * m_A31; - m_A33 += m_A17 * f6_10; - m_A34 += m_A18 * f6_10; - RHS10 += f6_10 * RHS6; - const double f6_11 = -f6 * m_A37; - m_A40 += m_A17 * f6_11; - m_A41 += m_A18 * f6_11; - RHS11 += f6_11 * RHS6; - const double f7 = 1.0 / m_A20; - const double f7_10 = -f7 * m_A32; - m_A33 += m_A21 * f7_10; - RHS10 += f7_10 * RHS7; - const double f8 = 1.0 / m_A23; - const double f8_11 = -f8 * m_A38; - m_A41 += m_A24 * f8_11; - RHS11 += f8_11 * RHS8; - const double f9 = 1.0 / m_A26; - const double f9_11 = -f9 * m_A39; - m_A41 += m_A27 * f9_11; - m_A42 += m_A28 * f9_11; - RHS11 += f9_11 * RHS9; - const double f9_12 = -f9 * m_A44; - m_A45 += m_A27 * f9_12; - m_A46 += m_A28 * f9_12; - RHS12 += f9_12 * RHS9; - const double f10 = 1.0 / m_A33; - const double f10_11 = -f10 * m_A40; - m_A41 += m_A34 * f10_11; - RHS11 += f10_11 * RHS10; - const double f11 = 1.0 / m_A41; - const double f11_12 = -f11 * m_A45; - m_A46 += m_A42 * f11_12; - RHS12 += f11_12 * RHS11; - V[12] = RHS12 / m_A46; - double tmp11 = 0.0; - tmp11 += m_A42 * V[12]; - V[11] = (RHS11 - tmp11) / m_A41; - double tmp10 = 0.0; - tmp10 += m_A34 * V[11]; - V[10] = (RHS10 - tmp10) / m_A33; - double tmp9 = 0.0; - tmp9 += m_A27 * V[11]; - tmp9 += m_A28 * V[12]; - V[9] = (RHS9 - tmp9) / m_A26; - double tmp8 = 0.0; - tmp8 += m_A24 * V[11]; - V[8] = (RHS8 - tmp8) / m_A23; - double tmp7 = 0.0; - tmp7 += m_A21 * V[10]; - V[7] = (RHS7 - tmp7) / m_A20; - double tmp6 = 0.0; - tmp6 += m_A17 * V[10]; - tmp6 += m_A18 * V[11]; - V[6] = (RHS6 - tmp6) / m_A16; - double tmp5 = 0.0; - tmp5 += m_A14 * V[9]; - V[5] = (RHS5 - tmp5) / m_A13; - double tmp4 = 0.0; - tmp4 += m_A11 * V[9]; - tmp4 += m_A12 * V[11]; - V[4] = (RHS4 - tmp4) / m_A10; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A7 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - tmp3 += m_A8 * V[10]; - tmp3 += m_A9 * V[11]; + tmp3 += m_A7 * V[4]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[8]; + tmp2 += m_A5 * V[4]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; + tmp1 += m_A3 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[7]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// starhawk -static void nl_gcr_723fa454468a93d_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// tp1985 +static void nl_gcr_a4540ffea06b4346_26_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -14781,55 +39509,166 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; + m_A2 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A3 += go[3]; - double RHS1 = Idr[3]; + m_A3 += gt[2]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A4 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; RHS1 += Idr[4]; + RHS1 -= go[3] * *cnV[3]; RHS1 -= go[4] * *cnV[4]; - m_A6 += gt[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A5 += go[5]; - m_A4 += go[6]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A6 += go[5]; double RHS2 = Idr[5]; RHS2 += Idr[6]; RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; + RHS2 -= go[6] * *cnV[6]; RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; + m_A7 += gt[8]; + m_A7 += gt[9]; + m_A8 += go[8]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A11 += go[10]; + m_A9 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A13 += go[14]; + m_A15 += go[15]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + m_A19 += gt[16]; + m_A19 += gt[17]; + m_A19 += gt[18]; + m_A19 += gt[19]; + m_A17 += go[16]; + m_A16 += go[17]; + m_A18 += go[18]; + m_A20 += go[19]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + m_A25 += gt[20]; + m_A25 += gt[21]; + m_A25 += gt[22]; + m_A25 += gt[23]; + m_A25 += gt[24]; + m_A23 += go[20]; + m_A24 += go[21]; + m_A21 += go[22]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + const double f0_4 = -f0 * m_A9; + m_A10 += m_A1 * f0_4; + m_A12 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f0_7 = -f0 * m_A21; + m_A22 += m_A1 * f0_7; + m_A25 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_6 = -f1 * m_A16; + m_A19 += m_A4 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_6 = -f2 * m_A17; + m_A19 += m_A6 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_5 = -f3 * m_A13; + m_A14 += m_A8 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_6 = -f4 * m_A18; + m_A19 += m_A11 * f4_6; + m_A20 += m_A12 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_7 = -f4 * m_A22; + m_A24 += m_A11 * f4_7; + m_A25 += m_A12 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_7 = -f5 * m_A23; + m_A25 += m_A15 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_7 = -f6 * m_A24; + m_A25 += m_A20 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A25; + double tmp6 = 0.0; + tmp6 += m_A20 * V[7]; + V[6] = (RHS6 - tmp6) / m_A19; + double tmp5 = 0.0; + tmp5 += m_A15 * V[7]; + V[5] = (RHS5 - tmp5) / m_A14; + double tmp4 = 0.0; + tmp4 += m_A11 * V[6]; + tmp4 += m_A12 * V[7]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A8 * V[5]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A6 * V[6]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[6]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[4]; + tmp0 += m_A2 * V[7]; V[0] = (RHS0 - tmp0) / m_A0; } -// cheekyms -static void nl_gcr_733c72a820fdbd1f_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// tailg +static void nl_gcr_a46301cd3479b8db_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -14841,58 +39680,110 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; - m_A1 += go[0]; + m_A0 += gt[4]; + m_A2 += go[0]; m_A1 += go[1]; + m_A1 += go[2]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; - RHS0 -= go[2] * *cnV[2]; + RHS0 += Idr[4]; RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[4]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[5] * *cnV[5]; - m_A6 += gt[6]; + RHS0 -= go[4] * *cnV[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A4 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; m_A6 += gt[7]; m_A6 += gt[8]; m_A6 += gt[9]; m_A6 += gt[10]; - m_A5 += go[6]; - m_A4 += go[7]; - m_A4 += go[8]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; + m_A6 += gt[11]; + m_A7 += go[7]; + m_A7 += go[8]; + m_A5 += go[9]; + m_A5 += go[10]; + double RHS2 = Idr[7]; RHS2 += Idr[8]; RHS2 += Idr[9]; RHS2 += Idr[10]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A10 += go[12]; + m_A8 += go[13]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A13 += go[15]; + m_A12 += go[16]; + m_A12 += go[17]; + m_A11 += go[18]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; + const double f0_2 = -f0 * m_A5; m_A6 += m_A1 * f0_2; + m_A7 += m_A2 * f0_2; RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + const double f0_4 = -f0 * m_A11; + m_A12 += m_A1 * f0_4; + m_A14 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A14; + double tmp3 = 0.0; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A7 * V[4]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; tmp0 += m_A1 * V[2]; + tmp0 += m_A2 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// tailg -static void nl_gcr_7388106355fb27c3_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// barrier +static void nl_gcr_a50a4b733e95414a_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -14907,88 +39798,80 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A2 += gt[6]; - m_A4 += go[2]; m_A3 += go[3]; - m_A3 += go[4]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; + double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 += Idr[6]; + RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[7]; - m_A7 += go[8]; - m_A5 += go[9]; - m_A5 += go[10]; - double RHS2 = Idr[7]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A4 += go[6]; + m_A6 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; RHS2 += Idr[8]; RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[11] * *cnV[11]; - m_A11 += gt[12]; - m_A11 += gt[13]; - m_A11 += gt[14]; - m_A11 += gt[15]; - m_A10 += go[12]; - m_A10 += go[13]; - m_A9 += go[14]; - m_A8 += go[15]; - double RHS3 = Idr[12]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A7 += go[10]; + m_A8 += go[11]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; RHS3 += Idr[15]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A11 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - m_A7 += m_A4 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A7 * f2_3; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; + V[3] = RHS3 / m_A9; double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[3]; + tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// tp1985 -static void nl_gcr_73f2ba8ad4a45b26_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starcas +static void nl_gcr_a582a424cb61c678_62_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -15003,6 +39886,58 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -15021,44 +39956,347 @@ RHS1 += Idr[5]; RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; - m_A5 += gt[6]; - m_A5 += gt[7]; - m_A6 += go[6]; - m_A4 += go[7]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; double RHS2 = Idr[6]; RHS2 += Idr[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; - m_A7 += go[8]; - m_A8 += go[9]; - double RHS3 = Idr[8]; - RHS3 += Idr[9]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[15]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[16] * *cnV[16]; + RHS5 -= go[17] * *cnV[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A13 += go[18]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 -= go[19] * *cnV[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A16 += go[20]; + m_A15 += go[21]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A19 += go[22]; + m_A18 += go[23]; + double RHS8 = Idr[22]; + RHS8 += Idr[23]; + m_A20 += gt[24]; + m_A20 += gt[25]; + m_A21 += go[24]; + double RHS9 = Idr[24]; + RHS9 += Idr[25]; + RHS9 -= go[25] * *cnV[25]; + m_A23 += gt[26]; + m_A23 += gt[27]; + m_A23 += gt[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A23 += gt[32]; + m_A22 += go[26]; + m_A24 += go[27]; + double RHS10 = Idr[26]; + RHS10 += Idr[27]; + RHS10 += Idr[28]; + RHS10 += Idr[29]; + RHS10 += Idr[30]; + RHS10 += Idr[31]; + RHS10 += Idr[32]; + RHS10 -= go[28] * *cnV[28]; + RHS10 -= go[29] * *cnV[29]; + RHS10 -= go[30] * *cnV[30]; + RHS10 -= go[31] * *cnV[31]; + RHS10 -= go[32] * *cnV[32]; + m_A25 += gt[33]; + m_A25 += gt[34]; + m_A25 += gt[35]; + m_A25 += gt[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A25 += gt[39]; + m_A26 += go[33]; + double RHS11 = Idr[33]; + RHS11 += Idr[34]; + RHS11 += Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 -= go[34] * *cnV[34]; + RHS11 -= go[35] * *cnV[35]; + RHS11 -= go[36] * *cnV[36]; + RHS11 -= go[37] * *cnV[37]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A30 += gt[43]; + m_A29 += go[40]; + m_A28 += go[41]; + m_A27 += go[42]; + double RHS12 = Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 -= go[43] * *cnV[43]; + m_A32 += gt[44]; + m_A32 += gt[45]; + m_A33 += go[44]; + m_A34 += go[45]; + double RHS13 = Idr[44]; + RHS13 += Idr[45]; + m_A36 += gt[46]; + m_A36 += gt[47]; + m_A35 += go[46]; + m_A37 += go[47]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + m_A42 += gt[48]; + m_A42 += gt[49]; + m_A42 += gt[50]; + m_A42 += gt[51]; + m_A42 += gt[52]; + m_A41 += go[48]; + m_A40 += go[49]; + m_A39 += go[50]; + m_A38 += go[51]; + double RHS15 = Idr[48]; + RHS15 += Idr[49]; + RHS15 += Idr[50]; + RHS15 += Idr[51]; + RHS15 += Idr[52]; + RHS15 -= go[52] * *cnV[52]; + m_A46 += gt[53]; + m_A46 += gt[54]; + m_A46 += gt[55]; + m_A46 += gt[56]; + m_A46 += gt[57]; + m_A45 += go[53]; + m_A44 += go[54]; + m_A47 += go[55]; + double RHS16 = Idr[53]; + RHS16 += Idr[54]; + RHS16 += Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; + RHS16 -= go[56] * *cnV[56]; + RHS16 -= go[57] * *cnV[57]; + m_A51 += gt[58]; + m_A51 += gt[59]; + m_A51 += gt[60]; + m_A51 += gt[61]; + m_A51 += gt[62]; + m_A49 += go[58]; + m_A48 += go[59]; + m_A50 += go[60]; + double RHS17 = Idr[58]; + RHS17 += Idr[59]; + RHS17 += Idr[60]; + RHS17 += Idr[61]; + RHS17 += Idr[62]; + RHS17 -= go[61] * *cnV[61]; + RHS17 -= go[62] * *cnV[62]; + m_A61 += gt[63]; + m_A61 += gt[64]; + m_A61 += gt[65]; + m_A61 += gt[66]; + m_A61 += gt[67]; + m_A61 += gt[68]; + m_A59 += go[63]; + m_A56 += go[64]; + m_A57 += go[65]; + m_A54 += go[66]; + m_A53 += go[67]; + double RHS18 = Idr[63]; + RHS18 += Idr[64]; + RHS18 += Idr[65]; + RHS18 += Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 -= go[68] * *cnV[68]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A5 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_12 = -f0 * m_A27; + m_A30 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A6 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f1_12 = -f1 * m_A28; + m_A30 += m_A3 * f1_12; + RHS12 += f1_12 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_15 = -f2 * m_A38; + m_A42 += m_A5 * f2_15; + RHS15 += f2_15 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_15 = -f3 * m_A39; + m_A42 += m_A7 * f3_15; + RHS15 += f3_15 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_15 = -f4 * m_A40; + m_A42 += m_A9 * f4_15; + RHS15 += f4_15 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_14 = -f5 * m_A35; + m_A36 += m_A11 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_10 = -f6 * m_A22; + m_A24 += m_A13 * f6_10; + RHS10 += f6_10 * RHS6; + const double f6_17 = -f6 * m_A48; + m_A51 += m_A13 * f6_17; + RHS17 += f6_17 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_12 = -f7 * m_A29; + m_A30 += m_A15 * f7_12; + m_A31 += m_A16 * f7_12; + RHS12 += f7_12 * RHS7; + const double f7_18 = -f7 * m_A53; + m_A55 += m_A15 * f7_18; + m_A61 += m_A16 * f7_18; + RHS18 += f7_18 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_15 = -f8 * m_A41; + m_A42 += m_A18 * f8_15; + m_A43 += m_A19 * f8_15; + RHS15 += f8_15 * RHS8; + const double f8_18 = -f8 * m_A54; + m_A58 += m_A18 * f8_18; + m_A61 += m_A19 * f8_18; + RHS18 += f8_18 * RHS8; + const double f9 = 1.0 / m_A20; + const double f9_16 = -f9 * m_A44; + m_A46 += m_A21 * f9_16; + RHS16 += f9_16 * RHS9; + const double f10 = 1.0 / m_A23; + const double f10_17 = -f10 * m_A49; + m_A51 += m_A24 * f10_17; + RHS17 += f10_17 * RHS10; + const double f11 = 1.0 / m_A25; + const double f11_16 = -f11 * m_A45; + m_A47 += m_A26 * f11_16; + RHS16 += f11_16 * RHS11; + const double f12 = 1.0 / m_A30; + const double f12_18 = -f12 * m_A55; + m_A61 += m_A31 * f12_18; + RHS18 += f12_18 * RHS12; + const double f13 = 1.0 / m_A32; + const double f13_17 = -f13 * m_A50; + m_A51 += m_A33 * f13_17; + m_A52 += m_A34 * f13_17; + RHS17 += f13_17 * RHS13; + const double f13_18 = -f13 * m_A56; + m_A60 += m_A33 * f13_18; + m_A61 += m_A34 * f13_18; + RHS18 += f13_18 * RHS13; + const double f14 = 1.0 / m_A36; + const double f14_18 = -f14 * m_A57; + m_A61 += m_A37 * f14_18; + RHS18 += f14_18 * RHS14; + const double f15 = 1.0 / m_A42; + const double f15_18 = -f15 * m_A58; + m_A61 += m_A43 * f15_18; + RHS18 += f15_18 * RHS15; + const double f16 = 1.0 / m_A46; + const double f16_18 = -f16 * m_A59; + m_A61 += m_A47 * f16_18; + RHS18 += f16_18 * RHS16; + const double f17 = 1.0 / m_A51; + const double f17_18 = -f17 * m_A60; + m_A61 += m_A52 * f17_18; + RHS18 += f17_18 * RHS17; + V[18] = RHS18 / m_A61; + double tmp17 = 0.0; + tmp17 += m_A52 * V[18]; + V[17] = (RHS17 - tmp17) / m_A51; + double tmp16 = 0.0; + tmp16 += m_A47 * V[18]; + V[16] = (RHS16 - tmp16) / m_A46; + double tmp15 = 0.0; + tmp15 += m_A43 * V[18]; + V[15] = (RHS15 - tmp15) / m_A42; + double tmp14 = 0.0; + tmp14 += m_A37 * V[18]; + V[14] = (RHS14 - tmp14) / m_A36; + double tmp13 = 0.0; + tmp13 += m_A33 * V[17]; + tmp13 += m_A34 * V[18]; + V[13] = (RHS13 - tmp13) / m_A32; + double tmp12 = 0.0; + tmp12 += m_A31 * V[18]; + V[12] = (RHS12 - tmp12) / m_A30; + double tmp11 = 0.0; + tmp11 += m_A26 * V[18]; + V[11] = (RHS11 - tmp11) / m_A25; + double tmp10 = 0.0; + tmp10 += m_A24 * V[17]; + V[10] = (RHS10 - tmp10) / m_A23; + double tmp9 = 0.0; + tmp9 += m_A21 * V[16]; + V[9] = (RHS9 - tmp9) / m_A20; + double tmp8 = 0.0; + tmp8 += m_A18 * V[15]; + tmp8 += m_A19 * V[18]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A15 * V[12]; + tmp7 += m_A16 * V[18]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[17]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[14]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[15]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[15]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[15]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[12]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[12]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_7425594cec8024ad_30_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// tank +static void nl_gcr_a63d1344e34bef4b_36_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -15093,251 +40331,238 @@ double m_A27(0.0); double m_A28(0.0); double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; m_A1 += go[0]; + m_A1 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; - RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A3 += go[7]; - double RHS1 = Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A5 += go[10]; - double RHS2 = Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A7 += go[12]; - double RHS3 = Idr[12]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A6 += go[5]; + m_A6 += go[6]; + m_A7 += go[7]; + m_A7 += go[8]; + m_A5 += go[9]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + m_A8 += gt[10]; + m_A8 += gt[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[10]; + m_A9 += go[11]; + m_A10 += go[12]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; RHS3 -= go[13] * *cnV[13]; RHS3 -= go[14] * *cnV[14]; - m_A8 += gt[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A9 += go[15]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A12 += go[15]; + m_A12 += go[16]; double RHS4 = Idr[15]; RHS4 += Idr[16]; RHS4 += Idr[17]; - RHS4 -= go[16] * *cnV[16]; + RHS4 += Idr[18]; RHS4 -= go[17] * *cnV[17]; - m_A11 += gt[18]; - m_A11 += gt[19]; - m_A11 += gt[20]; - m_A11 += gt[21]; - m_A11 += gt[22]; - m_A11 += gt[23]; - m_A10 += go[18]; - m_A12 += go[19]; - m_A12 += go[20]; - double RHS5 = Idr[18]; - RHS5 += Idr[19]; + RHS4 -= go[18] * *cnV[18]; + m_A15 += gt[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A15 += gt[23]; + m_A14 += go[19]; + m_A13 += go[20]; + m_A13 += go[21]; + double RHS5 = Idr[19]; RHS5 += Idr[20]; RHS5 += Idr[21]; RHS5 += Idr[22]; RHS5 += Idr[23]; - RHS5 -= go[21] * *cnV[21]; RHS5 -= go[22] * *cnV[22]; RHS5 -= go[23] * *cnV[23]; - m_A16 += gt[24]; - m_A16 += gt[25]; - m_A15 += go[24]; - m_A14 += go[25]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A18 += go[24]; + m_A20 += go[25]; double RHS6 = Idr[24]; RHS6 += Idr[25]; - m_A18 += gt[26]; - m_A18 += gt[27]; - m_A19 += go[26]; - m_A17 += go[27]; - double RHS7 = Idr[26]; - RHS7 += Idr[27]; - m_A25 += gt[28]; - m_A25 += gt[29]; - m_A25 += gt[30]; - m_A25 += gt[31]; - m_A25 += gt[32]; - m_A25 += gt[33]; - m_A23 += go[28]; - m_A22 += go[29]; - m_A22 += go[30]; - m_A24 += go[31]; - m_A21 += go[32]; - m_A20 += go[33]; - double RHS8 = Idr[28]; - RHS8 += Idr[29]; - RHS8 += Idr[30]; - RHS8 += Idr[31]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + m_A23 += gt[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A24 += go[28]; + m_A21 += go[29]; + m_A21 += go[30]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + m_A27 += gt[31]; + m_A27 += gt[32]; + m_A27 += gt[33]; + m_A27 += gt[34]; + m_A27 += gt[35]; + m_A27 += gt[36]; + m_A27 += gt[37]; + m_A27 += gt[38]; + m_A26 += go[31]; + m_A26 += go[32]; + m_A25 += go[33]; + m_A25 += go[34]; + double RHS8 = Idr[31]; RHS8 += Idr[32]; RHS8 += Idr[33]; - m_A29 += gt[34]; - m_A29 += gt[35]; - m_A29 += gt[36]; - m_A29 += gt[37]; - m_A28 += go[34]; - m_A27 += go[35]; - double RHS9 = Idr[34]; - RHS9 += Idr[35]; - RHS9 += Idr[36]; - RHS9 += Idr[37]; - RHS9 -= go[36] * *cnV[36]; - RHS9 -= go[37] * *cnV[37]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 += Idr[38]; + RHS8 -= go[35] * *cnV[35]; + RHS8 -= go[36] * *cnV[36]; + RHS8 -= go[37] * *cnV[37]; + RHS8 -= go[38] * *cnV[38]; + m_A35 += gt[39]; + m_A35 += gt[40]; + m_A35 += gt[41]; + m_A35 += gt[42]; + m_A35 += gt[43]; + m_A33 += go[39]; + m_A30 += go[40]; + m_A32 += go[41]; + m_A29 += go[42]; + m_A29 += go[43]; + double RHS9 = Idr[39]; + RHS9 += Idr[40]; + RHS9 += Idr[41]; + RHS9 += Idr[42]; + RHS9 += Idr[43]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A10; - m_A13 += m_A1 * f0_5; + const double f0_5 = -f0 * m_A13; + m_A15 += m_A1 * f0_5; RHS5 += f0_5 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A17; - m_A18 += m_A3 * f1_7; - RHS7 += f1_7 * RHS1; + const double f1_6 = -f1 * m_A18; + m_A19 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A14; - m_A16 += m_A5 * f2_6; - RHS6 += f2_6 * RHS2; - const double f2_8 = -f2 * m_A20; - m_A23 += m_A5 * f2_8; - RHS8 += f2_8 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A15; - m_A16 += m_A7 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_8 = -f4 * m_A21; - m_A25 += m_A9 * f4_8; + const double f2_5 = -f2 * m_A14; + m_A15 += m_A5 * f2_5; + m_A16 += m_A6 * f2_5; + m_A17 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_7 = -f2 * m_A21; + m_A22 += m_A5 * f2_7; + m_A23 += m_A6 * f2_7; + m_A24 += m_A7 * f2_7; + RHS7 += f2_7 * RHS2; + const double f2_9 = -f2 * m_A29; + m_A31 += m_A5 * f2_9; + m_A33 += m_A6 * f2_9; + m_A35 += m_A7 * f2_9; + RHS9 += f2_9 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_8 = -f3 * m_A25; + m_A27 += m_A9 * f3_8; + m_A28 += m_A10 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_9 = -f3 * m_A30; + m_A34 += m_A9 * f3_9; + m_A35 += m_A10 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_8 = -f4 * m_A26; + m_A27 += m_A12 * f4_8; RHS8 += f4_8 * RHS4; - const double f4_9 = -f4 * m_A27; - m_A28 += m_A9 * f4_9; - RHS9 += f4_9 * RHS4; - const double f5 = 1.0 / m_A11; - const double f5_8 = -f5 * m_A22; - m_A25 += m_A12 * f5_8; - m_A26 += m_A13 * f5_8; - RHS8 += f5_8 * RHS5; - const double f6 = 1.0 / m_A16; - const double f6_8 = -f6 * m_A23; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A18; - const double f7_8 = -f7 * m_A24; - m_A25 += m_A19 * f7_8; - RHS8 += f7_8 * RHS7; - const double f8 = 1.0 / m_A25; - const double f8_9 = -f8 * m_A28; - m_A29 += m_A26 * f8_9; + const double f5 = 1.0 / m_A15; + const double f5_7 = -f5 * m_A22; + m_A23 += m_A16 * f5_7; + m_A24 += m_A17 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_9 = -f5 * m_A31; + m_A33 += m_A16 * f5_9; + m_A35 += m_A17 * f5_9; + RHS9 += f5_9 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_9 = -f6 * m_A32; + m_A35 += m_A20 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_9 = -f7 * m_A33; + m_A35 += m_A24 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A27; + const double f8_9 = -f8 * m_A34; + m_A35 += m_A28 * f8_9; RHS9 += f8_9 * RHS8; - V[9] = RHS9 / m_A29; + V[9] = RHS9 / m_A35; double tmp8 = 0.0; - tmp8 += m_A26 * V[9]; - V[8] = (RHS8 - tmp8) / m_A25; - double tmp7 = 0.0; - tmp7 += m_A19 * V[8]; - V[7] = (RHS7 - tmp7) / m_A18; - double tmp6 = 0.0; - V[6] = (RHS6 - tmp6) / m_A16; - double tmp5 = 0.0; - tmp5 += m_A12 * V[8]; - tmp5 += m_A13 * V[9]; - V[5] = (RHS5 - tmp5) / m_A11; - double tmp4 = 0.0; - tmp4 += m_A9 * V[8]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// tp1985 -static void nl_gcr_74349e9889a2630b_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A5 += go[6]; - m_A4 += go[7]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[8] * *cnV[8]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + tmp8 += m_A28 * V[9]; + V[8] = (RHS8 - tmp8) / m_A27; + double tmp7 = 0.0; + tmp7 += m_A24 * V[9]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A20 * V[9]; + V[6] = (RHS6 - tmp6) / m_A19; + double tmp5 = 0.0; + tmp5 += m_A16 * V[7]; + tmp5 += m_A17 * V[9]; + V[5] = (RHS5 - tmp5) / m_A15; + double tmp4 = 0.0; + tmp4 += m_A12 * V[8]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A9 * V[8]; + tmp3 += m_A10 * V[9]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A5 * V[5]; + tmp2 += m_A6 * V[7]; + tmp2 += m_A7 * V[9]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// gunfight -static void nl_gcr_743595e64cee0a5e_112_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// boxingb +static void nl_gcr_a6b734322b3ea924_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -15364,686 +40589,543 @@ double m_A19(0.0); double m_A20(0.0); double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); - double m_A76(0.0); - double m_A77(0.0); - double m_A78(0.0); - double m_A79(0.0); - double m_A80(0.0); - double m_A81(0.0); - double m_A82(0.0); - double m_A83(0.0); - double m_A84(0.0); - double m_A85(0.0); - double m_A86(0.0); - double m_A87(0.0); - double m_A88(0.0); - double m_A89(0.0); - double m_A90(0.0); - double m_A91(0.0); - double m_A92(0.0); - double m_A93(0.0); - double m_A94(0.0); - double m_A95(0.0); - double m_A96(0.0); - double m_A97(0.0); - double m_A98(0.0); - double m_A99(0.0); - double m_A100(0.0); - double m_A101(0.0); - double m_A102(0.0); - double m_A103(0.0); - double m_A104(0.0); - double m_A105(0.0); - double m_A106(0.0); - double m_A107(0.0); - double m_A108(0.0); - double m_A109(0.0); - double m_A110(0.0); - double m_A111(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A7 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - RHS3 -= go[7] * *cnV[7]; - m_A8 += gt[8]; - m_A8 += gt[9]; - m_A9 += go[8]; - double RHS4 = Idr[8]; - RHS4 += Idr[9]; - RHS4 -= go[9] * *cnV[9]; - m_A10 += gt[10]; - m_A10 += gt[11]; - m_A12 += go[10]; - m_A11 += go[11]; - double RHS5 = Idr[10]; - RHS5 += Idr[11]; - m_A13 += gt[12]; - m_A13 += gt[13]; - m_A15 += go[12]; - m_A14 += go[13]; - double RHS6 = Idr[12]; - RHS6 += Idr[13]; - m_A17 += gt[14]; - m_A17 += gt[15]; - m_A17 += gt[16]; - m_A16 += go[14]; - m_A18 += go[15]; - double RHS7 = Idr[14]; - RHS7 += Idr[15]; - RHS7 += Idr[16]; - RHS7 -= go[16] * *cnV[16]; - m_A21 += gt[17]; - m_A21 += gt[18]; - m_A21 += gt[19]; - m_A20 += go[17]; - m_A22 += go[18]; - double RHS8 = Idr[17]; - RHS8 += Idr[18]; - RHS8 += Idr[19]; - RHS8 -= go[19] * *cnV[19]; - m_A25 += gt[20]; - m_A25 += gt[21]; - m_A25 += gt[22]; - m_A24 += go[20]; - m_A26 += go[21]; - double RHS9 = Idr[20]; - RHS9 += Idr[21]; - RHS9 += Idr[22]; - RHS9 -= go[22] * *cnV[22]; - m_A29 += gt[23]; - m_A29 += gt[24]; - m_A29 += gt[25]; - m_A28 += go[23]; - m_A30 += go[24]; - double RHS10 = Idr[23]; - RHS10 += Idr[24]; - RHS10 += Idr[25]; - RHS10 -= go[25] * *cnV[25]; - m_A32 += gt[26]; - m_A32 += gt[27]; - m_A32 += gt[28]; - m_A34 += go[26]; - m_A33 += go[27]; - double RHS11 = Idr[26]; - RHS11 += Idr[27]; - RHS11 += Idr[28]; - RHS11 -= go[28] * *cnV[28]; - m_A35 += gt[29]; - m_A35 += gt[30]; - m_A35 += gt[31]; - m_A37 += go[29]; - m_A36 += go[30]; - double RHS12 = Idr[29]; - RHS12 += Idr[30]; - RHS12 += Idr[31]; - RHS12 -= go[31] * *cnV[31]; - m_A40 += gt[32]; - m_A40 += gt[33]; - m_A38 += go[32]; - m_A39 += go[33]; - double RHS13 = Idr[32]; - RHS13 += Idr[33]; - m_A44 += gt[34]; - m_A44 += gt[35]; - m_A42 += go[34]; - m_A43 += go[35]; - double RHS14 = Idr[34]; - RHS14 += Idr[35]; - m_A47 += gt[36]; - m_A47 += gt[37]; - m_A47 += gt[38]; - m_A46 += go[36]; - m_A48 += go[37]; - double RHS15 = Idr[36]; - RHS15 += Idr[37]; - RHS15 += Idr[38]; - RHS15 -= go[38] * *cnV[38]; - m_A50 += gt[39]; - m_A50 += gt[40]; - m_A49 += go[39]; - m_A51 += go[40]; - double RHS16 = Idr[39]; - RHS16 += Idr[40]; - m_A52 += gt[41]; - m_A52 += gt[42]; - m_A52 += gt[43]; - m_A52 += gt[44]; - m_A52 += gt[45]; - m_A53 += go[41]; - m_A54 += go[42]; - m_A54 += go[43]; - double RHS17 = Idr[41]; - RHS17 += Idr[42]; - RHS17 += Idr[43]; - RHS17 += Idr[44]; - RHS17 += Idr[45]; - RHS17 -= go[44] * *cnV[44]; - RHS17 -= go[45] * *cnV[45]; - m_A56 += gt[46]; - m_A56 += gt[47]; - m_A56 += gt[48]; - m_A56 += gt[49]; - m_A57 += go[46]; - m_A58 += go[47]; - m_A55 += go[48]; - double RHS18 = Idr[46]; - RHS18 += Idr[47]; - RHS18 += Idr[48]; - RHS18 += Idr[49]; - RHS18 -= go[49] * *cnV[49]; - m_A60 += gt[50]; - m_A60 += gt[51]; - m_A60 += gt[52]; - m_A60 += gt[53]; - m_A61 += go[50]; - m_A62 += go[51]; - m_A59 += go[52]; - double RHS19 = Idr[50]; - RHS19 += Idr[51]; - RHS19 += Idr[52]; - RHS19 += Idr[53]; - RHS19 -= go[53] * *cnV[53]; - m_A63 += gt[54]; - m_A63 += gt[55]; - m_A63 += gt[56]; - m_A63 += gt[57]; - m_A63 += gt[58]; - m_A64 += go[54]; - m_A65 += go[55]; - m_A65 += go[56]; - double RHS20 = Idr[54]; - RHS20 += Idr[55]; - RHS20 += Idr[56]; - RHS20 += Idr[57]; - RHS20 += Idr[58]; - RHS20 -= go[57] * *cnV[57]; - RHS20 -= go[58] * *cnV[58]; - m_A66 += gt[59]; - m_A66 += gt[60]; - m_A66 += gt[61]; - m_A66 += gt[62]; - m_A67 += go[59]; - m_A68 += go[60]; - m_A68 += go[61]; - double RHS21 = Idr[59]; - RHS21 += Idr[60]; - RHS21 += Idr[61]; - RHS21 += Idr[62]; - RHS21 -= go[62] * *cnV[62]; - m_A71 += gt[63]; - m_A71 += gt[64]; - m_A71 += gt[65]; - m_A71 += gt[66]; - m_A71 += gt[67]; - m_A69 += go[63]; - m_A70 += go[64]; - m_A72 += go[65]; - m_A72 += go[66]; - double RHS22 = Idr[63]; - RHS22 += Idr[64]; - RHS22 += Idr[65]; - RHS22 += Idr[66]; - RHS22 += Idr[67]; - RHS22 -= go[67] * *cnV[67]; - m_A76 += gt[68]; - m_A76 += gt[69]; - m_A76 += gt[70]; - m_A76 += gt[71]; - m_A76 += gt[72]; - m_A73 += go[68]; - m_A75 += go[69]; - m_A78 += go[70]; - m_A78 += go[71]; - m_A74 += go[72]; - double RHS23 = Idr[68]; - RHS23 += Idr[69]; - RHS23 += Idr[70]; - RHS23 += Idr[71]; - RHS23 += Idr[72]; - m_A82 += gt[73]; - m_A82 += gt[74]; - m_A82 += gt[75]; - m_A82 += gt[76]; - m_A82 += gt[77]; - m_A79 += go[73]; - m_A81 += go[74]; - m_A83 += go[75]; - m_A83 += go[76]; - m_A80 += go[77]; - double RHS24 = Idr[73]; - RHS24 += Idr[74]; - RHS24 += Idr[75]; - RHS24 += Idr[76]; - RHS24 += Idr[77]; - m_A90 += gt[78]; - m_A90 += gt[79]; - m_A90 += gt[80]; - m_A90 += gt[81]; - m_A90 += gt[82]; - m_A90 += gt[83]; - m_A90 += gt[84]; - m_A90 += gt[85]; - m_A89 += go[78]; - m_A89 += go[79]; - m_A88 += go[80]; - m_A88 += go[81]; - m_A85 += go[82]; - m_A87 += go[83]; - double RHS25 = Idr[78]; - RHS25 += Idr[79]; - RHS25 += Idr[80]; - RHS25 += Idr[81]; - RHS25 += Idr[82]; - RHS25 += Idr[83]; - RHS25 += Idr[84]; - RHS25 += Idr[85]; - RHS25 -= go[84] * *cnV[84]; - RHS25 -= go[85] * *cnV[85]; - m_A103 += gt[86]; - m_A103 += gt[87]; - m_A103 += gt[88]; - m_A103 += gt[89]; - m_A103 += gt[90]; - m_A103 += gt[91]; - m_A103 += gt[92]; - m_A103 += gt[93]; - m_A99 += go[86]; - m_A99 += go[87]; - m_A98 += go[88]; - m_A98 += go[89]; - m_A92 += go[90]; - m_A93 += go[91]; - double RHS26 = Idr[86]; - RHS26 += Idr[87]; - RHS26 += Idr[88]; - RHS26 += Idr[89]; - RHS26 += Idr[90]; - RHS26 += Idr[91]; - RHS26 += Idr[92]; - RHS26 += Idr[93]; - RHS26 -= go[92] * *cnV[92]; - RHS26 -= go[93] * *cnV[93]; - m_A111 += gt[94]; - m_A111 += gt[95]; - m_A111 += gt[96]; - m_A111 += gt[97]; - m_A111 += gt[98]; - m_A111 += gt[99]; - m_A111 += gt[100]; - m_A111 += gt[101]; - m_A109 += go[94]; - m_A109 += go[95]; - m_A108 += go[96]; - m_A108 += go[97]; - m_A105 += go[98]; - m_A107 += go[99]; - double RHS27 = Idr[94]; - RHS27 += Idr[95]; - RHS27 += Idr[96]; - RHS27 += Idr[97]; - RHS27 += Idr[98]; - RHS27 += Idr[99]; - RHS27 += Idr[100]; - RHS27 += Idr[101]; - RHS27 -= go[100] * *cnV[100]; - RHS27 -= go[101] * *cnV[101]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A4 += gt[14]; + m_A7 += go[7]; + m_A6 += go[8]; + m_A6 += go[9]; + m_A5 += go[10]; + m_A5 += go[11]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A8 += go[15]; + m_A9 += go[16]; + m_A9 += go[17]; + double RHS3 = Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A15 += gt[23]; + m_A15 += gt[24]; + m_A16 += go[20]; + m_A16 += go[21]; + m_A13 += go[22]; + m_A13 += go[23]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 -= go[24] * *cnV[24]; + m_A21 += gt[25]; + m_A21 += gt[26]; + m_A21 += gt[27]; + m_A21 += gt[28]; + m_A21 += gt[29]; + m_A20 += go[25]; + m_A20 += go[26]; + m_A18 += go[27]; + m_A17 += go[28]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 -= go[29] * *cnV[29]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A17; + m_A21 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A5 * f2_3; + m_A11 += m_A6 * f2_3; + m_A12 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + const double f2_4 = -f2 * m_A13; + m_A14 += m_A5 * f2_4; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A18; + m_A19 += m_A5 * f2_5; + m_A20 += m_A6 * f2_5; + m_A21 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + m_A16 += m_A12 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A19; + m_A20 += m_A11 * f3_5; + m_A21 += m_A12 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_5 = -f4 * m_A20; + m_A21 += m_A16 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A21; + double tmp4 = 0.0; + tmp4 += m_A16 * V[5]; + V[4] = (RHS4 - tmp4) / m_A15; + double tmp3 = 0.0; + tmp3 += m_A11 * V[4]; + tmp3 += m_A12 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; + double tmp2 = 0.0; + tmp2 += m_A5 * V[3]; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// armora +static void nl_gcr_a6cfda6668b153c2_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A7 += go[6]; + m_A6 += go[7]; + m_A6 += go[8]; + m_A5 += go[9]; + m_A5 += go[10]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A9 += go[14]; + m_A9 += go[15]; + m_A8 += go[16]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A15 += gt[23]; + m_A15 += gt[24]; + m_A16 += go[20]; + m_A16 += go[21]; + m_A13 += go[22]; + m_A13 += go[23]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 -= go[24] * *cnV[24]; + m_A21 += gt[25]; + m_A21 += gt[26]; + m_A21 += gt[27]; + m_A21 += gt[28]; + m_A20 += go[25]; + m_A20 += go[26]; + m_A18 += go[27]; + m_A17 += go[28]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; const double f0 = 1.0 / m_A0; - const double f0_15 = -f0 * m_A46; - m_A47 += m_A1 * f0_15; - RHS15 += f0_15 * RHS0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_13 = -f1 * m_A38; - m_A40 += m_A3 * f1_13; - RHS13 += f1_13 * RHS1; + const double f1_5 = -f1 * m_A17; + m_A21 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_14 = -f2 * m_A42; - m_A44 += m_A5 * f2_14; - RHS14 += f2_14 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_18 = -f3 * m_A55; - m_A56 += m_A7 * f3_18; - RHS18 += f3_18 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_19 = -f4 * m_A59; - m_A60 += m_A9 * f4_19; - RHS19 += f4_19 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_7 = -f5 * m_A16; - m_A17 += m_A11 * f5_7; - m_A19 += m_A12 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_26 = -f5 * m_A92; - m_A94 += m_A11 * f5_26; - m_A103 += m_A12 * f5_26; - RHS26 += f5_26 * RHS5; - const double f6 = 1.0 / m_A13; - const double f6_8 = -f6 * m_A20; - m_A21 += m_A14 * f6_8; - m_A23 += m_A15 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_26 = -f6 * m_A93; - m_A95 += m_A14 * f6_26; - m_A103 += m_A15 * f6_26; - RHS26 += f6_26 * RHS6; - const double f7 = 1.0 / m_A17; - const double f7_9 = -f7 * m_A24; - m_A25 += m_A18 * f7_9; - m_A27 += m_A19 * f7_9; - RHS9 += f7_9 * RHS7; - const double f7_26 = -f7 * m_A94; - m_A96 += m_A18 * f7_26; - m_A103 += m_A19 * f7_26; - RHS26 += f7_26 * RHS7; - const double f8 = 1.0 / m_A21; - const double f8_10 = -f8 * m_A28; - m_A29 += m_A22 * f8_10; - m_A31 += m_A23 * f8_10; - RHS10 += f8_10 * RHS8; - const double f8_26 = -f8 * m_A95; - m_A97 += m_A22 * f8_26; - m_A103 += m_A23 * f8_26; - RHS26 += f8_26 * RHS8; - const double f9 = 1.0 / m_A25; - const double f9_23 = -f9 * m_A73; - m_A76 += m_A26 * f9_23; - m_A77 += m_A27 * f9_23; - RHS23 += f9_23 * RHS9; - const double f9_26 = -f9 * m_A96; - m_A100 += m_A26 * f9_26; - m_A103 += m_A27 * f9_26; - RHS26 += f9_26 * RHS9; - const double f10 = 1.0 / m_A29; - const double f10_24 = -f10 * m_A79; - m_A82 += m_A30 * f10_24; - m_A84 += m_A31 * f10_24; - RHS24 += f10_24 * RHS10; - const double f10_26 = -f10 * m_A97; - m_A101 += m_A30 * f10_26; - m_A103 += m_A31 * f10_26; - RHS26 += f10_26 * RHS10; - const double f11 = 1.0 / m_A32; - const double f11_13 = -f11 * m_A39; - m_A40 += m_A33 * f11_13; - m_A41 += m_A34 * f11_13; - RHS13 += f11_13 * RHS11; - const double f11_27 = -f11 * m_A105; - m_A106 += m_A33 * f11_27; - m_A111 += m_A34 * f11_27; - RHS27 += f11_27 * RHS11; - const double f12 = 1.0 / m_A35; - const double f12_14 = -f12 * m_A43; - m_A44 += m_A36 * f12_14; - m_A45 += m_A37 * f12_14; - RHS14 += f12_14 * RHS12; - const double f12_25 = -f12 * m_A85; - m_A86 += m_A36 * f12_25; - m_A90 += m_A37 * f12_25; - RHS25 += f12_25 * RHS12; - const double f13 = 1.0 / m_A40; - const double f13_27 = -f13 * m_A106; - m_A111 += m_A41 * f13_27; - RHS27 += f13_27 * RHS13; - const double f14 = 1.0 / m_A44; - const double f14_25 = -f14 * m_A86; - m_A90 += m_A45 * f14_25; - RHS25 += f14_25 * RHS14; - const double f15 = 1.0 / m_A47; - const double f15_16 = -f15 * m_A49; - m_A50 += m_A48 * f15_16; - RHS16 += f15_16 * RHS15; - const double f16 = 1.0 / m_A50; - const double f16_22 = -f16 * m_A69; - m_A71 += m_A51 * f16_22; - RHS22 += f16_22 * RHS16; - const double f17 = 1.0 / m_A52; - const double f17_22 = -f17 * m_A70; - m_A71 += m_A53 * f17_22; - m_A72 += m_A54 * f17_22; - RHS22 += f17_22 * RHS17; - const double f17_26 = -f17 * m_A98; - m_A99 += m_A53 * f17_26; - m_A103 += m_A54 * f17_26; - RHS26 += f17_26 * RHS17; - const double f18 = 1.0 / m_A56; - const double f18_23 = -f18 * m_A74; - m_A76 += m_A57 * f18_23; - m_A78 += m_A58 * f18_23; - RHS23 += f18_23 * RHS18; - const double f18_27 = -f18 * m_A107; - m_A109 += m_A57 * f18_27; - m_A111 += m_A58 * f18_27; - RHS27 += f18_27 * RHS18; - const double f19 = 1.0 / m_A60; - const double f19_24 = -f19 * m_A80; - m_A82 += m_A61 * f19_24; - m_A83 += m_A62 * f19_24; - RHS24 += f19_24 * RHS19; - const double f19_25 = -f19 * m_A87; - m_A89 += m_A61 * f19_25; - m_A90 += m_A62 * f19_25; - RHS25 += f19_25 * RHS19; - const double f20 = 1.0 / m_A63; - const double f20_23 = -f20 * m_A75; - m_A76 += m_A64 * f20_23; - m_A78 += m_A65 * f20_23; - RHS23 += f20_23 * RHS20; - const double f20_27 = -f20 * m_A108; - m_A109 += m_A64 * f20_27; - m_A111 += m_A65 * f20_27; - RHS27 += f20_27 * RHS20; - const double f21 = 1.0 / m_A66; - const double f21_24 = -f21 * m_A81; - m_A82 += m_A67 * f21_24; - m_A83 += m_A68 * f21_24; - RHS24 += f21_24 * RHS21; - const double f21_25 = -f21 * m_A88; - m_A89 += m_A67 * f21_25; - m_A90 += m_A68 * f21_25; - RHS25 += f21_25 * RHS21; - const double f22 = 1.0 / m_A71; - const double f22_26 = -f22 * m_A99; - m_A103 += m_A72 * f22_26; - RHS26 += f22_26 * RHS22; - const double f23 = 1.0 / m_A76; - const double f23_26 = -f23 * m_A100; - m_A103 += m_A77 * f23_26; - m_A104 += m_A78 * f23_26; - RHS26 += f23_26 * RHS23; - const double f23_27 = -f23 * m_A109; - m_A110 += m_A77 * f23_27; - m_A111 += m_A78 * f23_27; - RHS27 += f23_27 * RHS23; - const double f24 = 1.0 / m_A82; - const double f24_25 = -f24 * m_A89; - m_A90 += m_A83 * f24_25; - m_A91 += m_A84 * f24_25; - RHS25 += f24_25 * RHS24; - const double f24_26 = -f24 * m_A101; - m_A102 += m_A83 * f24_26; - m_A103 += m_A84 * f24_26; - RHS26 += f24_26 * RHS24; - const double f25 = 1.0 / m_A90; - const double f25_26 = -f25 * m_A102; - m_A103 += m_A91 * f25_26; - RHS26 += f25_26 * RHS25; - const double f26 = 1.0 / m_A103; - const double f26_27 = -f26 * m_A110; - m_A111 += m_A104 * f26_27; - RHS27 += f26_27 * RHS26; - V[27] = RHS27 / m_A111; - double tmp26 = 0.0; - tmp26 += m_A104 * V[27]; - V[26] = (RHS26 - tmp26) / m_A103; - double tmp25 = 0.0; - tmp25 += m_A91 * V[26]; - V[25] = (RHS25 - tmp25) / m_A90; - double tmp24 = 0.0; - tmp24 += m_A83 * V[25]; - tmp24 += m_A84 * V[26]; - V[24] = (RHS24 - tmp24) / m_A82; - double tmp23 = 0.0; - tmp23 += m_A77 * V[26]; - tmp23 += m_A78 * V[27]; - V[23] = (RHS23 - tmp23) / m_A76; - double tmp22 = 0.0; - tmp22 += m_A72 * V[26]; - V[22] = (RHS22 - tmp22) / m_A71; - double tmp21 = 0.0; - tmp21 += m_A67 * V[24]; - tmp21 += m_A68 * V[25]; - V[21] = (RHS21 - tmp21) / m_A66; - double tmp20 = 0.0; - tmp20 += m_A64 * V[23]; - tmp20 += m_A65 * V[27]; - V[20] = (RHS20 - tmp20) / m_A63; - double tmp19 = 0.0; - tmp19 += m_A61 * V[24]; - tmp19 += m_A62 * V[25]; - V[19] = (RHS19 - tmp19) / m_A60; - double tmp18 = 0.0; - tmp18 += m_A57 * V[23]; - tmp18 += m_A58 * V[27]; - V[18] = (RHS18 - tmp18) / m_A56; - double tmp17 = 0.0; - tmp17 += m_A53 * V[22]; - tmp17 += m_A54 * V[26]; - V[17] = (RHS17 - tmp17) / m_A52; - double tmp16 = 0.0; - tmp16 += m_A51 * V[22]; - V[16] = (RHS16 - tmp16) / m_A50; - double tmp15 = 0.0; - tmp15 += m_A48 * V[16]; - V[15] = (RHS15 - tmp15) / m_A47; - double tmp14 = 0.0; - tmp14 += m_A45 * V[25]; - V[14] = (RHS14 - tmp14) / m_A44; - double tmp13 = 0.0; - tmp13 += m_A41 * V[27]; - V[13] = (RHS13 - tmp13) / m_A40; - double tmp12 = 0.0; - tmp12 += m_A36 * V[14]; - tmp12 += m_A37 * V[25]; - V[12] = (RHS12 - tmp12) / m_A35; - double tmp11 = 0.0; - tmp11 += m_A33 * V[13]; - tmp11 += m_A34 * V[27]; - V[11] = (RHS11 - tmp11) / m_A32; - double tmp10 = 0.0; - tmp10 += m_A30 * V[24]; - tmp10 += m_A31 * V[26]; - V[10] = (RHS10 - tmp10) / m_A29; - double tmp9 = 0.0; - tmp9 += m_A26 * V[23]; - tmp9 += m_A27 * V[26]; - V[9] = (RHS9 - tmp9) / m_A25; - double tmp8 = 0.0; - tmp8 += m_A22 * V[10]; - tmp8 += m_A23 * V[26]; - V[8] = (RHS8 - tmp8) / m_A21; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A5 * f2_3; + m_A11 += m_A6 * f2_3; + m_A12 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + const double f2_4 = -f2 * m_A13; + m_A14 += m_A5 * f2_4; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A18; + m_A19 += m_A5 * f2_5; + m_A20 += m_A6 * f2_5; + m_A21 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + m_A16 += m_A12 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A19; + m_A20 += m_A11 * f3_5; + m_A21 += m_A12 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_5 = -f4 * m_A20; + m_A21 += m_A16 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A21; + double tmp4 = 0.0; + tmp4 += m_A16 * V[5]; + V[4] = (RHS4 - tmp4) / m_A15; + double tmp3 = 0.0; + tmp3 += m_A11 * V[4]; + tmp3 += m_A12 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; + double tmp2 = 0.0; + tmp2 += m_A5 * V[3]; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// boxingb +static void nl_gcr_a6f74be7f61e6db2_29_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A4 += go[3]; + m_A3 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A7 += go[9]; + m_A6 += go[10]; + m_A6 += go[11]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[12] * *cnV[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A11 += go[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[16] * *cnV[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A13 += go[17]; + m_A13 += go[18]; + m_A12 += go[19]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + m_A19 += gt[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A17 += go[23]; + m_A17 += go[24]; + m_A16 += go[25]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + m_A24 += gt[28]; + m_A24 += gt[29]; + m_A24 += gt[30]; + m_A24 += gt[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A22 += go[28]; + m_A25 += go[29]; + m_A21 += go[30]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 -= go[31] * *cnV[31]; + RHS7 -= go[32] * *cnV[32]; + RHS7 -= go[33] * *cnV[33]; + m_A28 += gt[34]; + m_A28 += gt[35]; + m_A26 += go[34]; + m_A27 += go[35]; + double RHS8 = Idr[34]; + RHS8 += Idr[35]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A12; + m_A14 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A13; + m_A14 += m_A3 * f1_5; + m_A15 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f1_6 = -f1 * m_A16; + m_A18 += m_A3 * f1_6; + m_A19 += m_A4 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_6 = -f2 * m_A17; + m_A19 += m_A6 * f2_6; + m_A20 += m_A7 * f2_6; + RHS6 += f2_6 * RHS2; + const double f2_7 = -f2 * m_A21; + m_A23 += m_A6 * f2_7; + m_A24 += m_A7 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_7 = -f3 * m_A22; + m_A24 += m_A9 * f3_7; + RHS7 += f3_7 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_8 = -f4 * m_A26; + m_A28 += m_A11 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_6 = -f5 * m_A18; + m_A19 += m_A15 * f5_6; + RHS6 += f5_6 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_7 = -f6 * m_A23; + m_A24 += m_A20 * f6_7; + RHS7 += f6_7 * RHS6; + const double f7 = 1.0 / m_A24; + const double f7_8 = -f7 * m_A27; + m_A28 += m_A25 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A28; double tmp7 = 0.0; - tmp7 += m_A18 * V[9]; - tmp7 += m_A19 * V[26]; - V[7] = (RHS7 - tmp7) / m_A17; + tmp7 += m_A25 * V[8]; + V[7] = (RHS7 - tmp7) / m_A24; double tmp6 = 0.0; - tmp6 += m_A14 * V[8]; - tmp6 += m_A15 * V[26]; - V[6] = (RHS6 - tmp6) / m_A13; + tmp6 += m_A20 * V[7]; + V[6] = (RHS6 - tmp6) / m_A19; double tmp5 = 0.0; - tmp5 += m_A11 * V[7]; - tmp5 += m_A12 * V[26]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A15 * V[6]; + V[5] = (RHS5 - tmp5) / m_A14; double tmp4 = 0.0; - tmp4 += m_A9 * V[19]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A11 * V[8]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A7 * V[18]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A9 * V[7]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[14]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[6]; + tmp2 += m_A7 * V[7]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[13]; + tmp1 += m_A3 * V[5]; + tmp1 += m_A4 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[15]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// ripoff -static void nl_gcr_76c9e236353caed1_35_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// carpolo +static void nl_gcr_a8f1d076330f06b7_34_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -16082,217 +41164,206 @@ double m_A31(0.0); double m_A32(0.0); double m_A33(0.0); - double m_A34(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; - m_A0 += gt[4]; - m_A3 += go[0]; - m_A2 += go[1]; - m_A1 += go[2]; + m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; - RHS0 += Idr[4]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - m_A4 += gt[5]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; m_A4 += gt[6]; m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A5 += go[5]; - double RHS1 = Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 += Idr[11]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - RHS1 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A6 += gt[16]; - m_A10 += go[12]; - m_A9 += go[13]; - m_A8 += go[14]; - m_A7 += go[15]; - double RHS2 = Idr[12]; - RHS2 += Idr[13]; - RHS2 += Idr[14]; - RHS2 += Idr[15]; - RHS2 += Idr[16]; - RHS2 -= go[16] * *cnV[16]; - m_A13 += gt[17]; - m_A13 += gt[18]; - m_A13 += gt[19]; - m_A13 += gt[20]; - m_A12 += go[17]; - m_A11 += go[18]; - double RHS3 = Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 += Idr[20]; - RHS3 -= go[19] * *cnV[19]; - RHS3 -= go[20] * *cnV[20]; - m_A20 += gt[21]; - m_A20 += gt[22]; - m_A20 += gt[23]; - m_A20 += gt[24]; - m_A18 += go[21]; - m_A17 += go[22]; - double RHS4 = Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 -= go[23] * *cnV[23]; - RHS4 -= go[24] * *cnV[24]; - m_A27 += gt[25]; - m_A27 += gt[26]; - m_A27 += gt[27]; - m_A27 += gt[28]; - m_A24 += go[25]; - m_A23 += go[26]; - double RHS5 = Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - RHS5 -= go[27] * *cnV[27]; - RHS5 -= go[28] * *cnV[28]; - m_A34 += gt[29]; - m_A34 += gt[30]; - m_A34 += gt[31]; - m_A34 += gt[32]; - m_A34 += gt[33]; - m_A34 += gt[34]; - m_A29 += go[29]; - m_A30 += go[30]; - double RHS6 = Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 += Idr[33]; - RHS6 += Idr[34]; - RHS6 -= go[31] * *cnV[31]; - RHS6 -= go[32] * *cnV[32]; - RHS6 -= go[33] * *cnV[33]; - RHS6 -= go[34] * *cnV[34]; + m_A5 += go[6]; + m_A6 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + m_A7 += gt[8]; + m_A7 += gt[9]; + m_A7 += gt[10]; + m_A9 += go[8]; + m_A8 += go[9]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 -= go[10] * *cnV[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A11 += go[11]; + double RHS4 = Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A13 += go[14]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + RHS5 += Idr[16]; + RHS5 -= go[15] * *cnV[15]; + RHS5 -= go[16] * *cnV[16]; + m_A15 += gt[17]; + m_A15 += gt[18]; + m_A15 += gt[19]; + m_A15 += gt[20]; + m_A16 += go[17]; + m_A14 += go[18]; + double RHS6 = Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + m_A19 += gt[21]; + m_A19 += gt[22]; + m_A19 += gt[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A21 += go[21]; + m_A21 += go[22]; + m_A18 += go[23]; + m_A17 += go[24]; + m_A20 += go[25]; + double RHS7 = Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[26] * *cnV[26]; + RHS7 -= go[27] * *cnV[27]; + m_A26 += gt[28]; + m_A26 += gt[29]; + m_A26 += gt[30]; + m_A26 += gt[31]; + m_A22 += go[28]; + m_A25 += go[29]; + m_A23 += go[30]; + m_A24 += go[31]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + m_A33 += gt[32]; + m_A33 += gt[33]; + m_A33 += gt[34]; + m_A33 += gt[35]; + m_A33 += gt[36]; + m_A33 += gt[37]; + m_A30 += go[32]; + m_A29 += go[33]; + m_A28 += go[34]; + m_A31 += go[35]; + m_A31 += go[36]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[37] * *cnV[37]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A11; - m_A13 += m_A1 * f0_3; - m_A14 += m_A2 * f0_3; - m_A15 += m_A3 * f0_3; - RHS3 += f0_3 * RHS0; - const double f0_4 = -f0 * m_A17; - m_A19 += m_A1 * f0_4; - m_A20 += m_A2 * f0_4; - m_A21 += m_A3 * f0_4; - RHS4 += f0_4 * RHS0; - const double f0_5 = -f0 * m_A23; - m_A25 += m_A1 * f0_5; - m_A26 += m_A2 * f0_5; - m_A27 += m_A3 * f0_5; - RHS5 += f0_5 * RHS0; - const double f1 = 1.0 / m_A4; - const double f1_6 = -f1 * m_A29; - m_A30 += m_A5 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A12; - m_A13 += m_A7 * f2_3; - m_A14 += m_A8 * f2_3; - m_A15 += m_A9 * f2_3; - m_A16 += m_A10 * f2_3; - RHS3 += f2_3 * RHS2; - const double f2_4 = -f2 * m_A18; - m_A19 += m_A7 * f2_4; - m_A20 += m_A8 * f2_4; - m_A21 += m_A9 * f2_4; - m_A22 += m_A10 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A24; - m_A25 += m_A7 * f2_5; - m_A26 += m_A8 * f2_5; - m_A27 += m_A9 * f2_5; - m_A28 += m_A10 * f2_5; - RHS5 += f2_5 * RHS2; - const double f2_6 = -f2 * m_A30; - m_A31 += m_A7 * f2_6; - m_A32 += m_A8 * f2_6; - m_A33 += m_A9 * f2_6; - m_A34 += m_A10 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A13; - const double f3_4 = -f3 * m_A19; - m_A20 += m_A14 * f3_4; - m_A21 += m_A15 * f3_4; - m_A22 += m_A16 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A25; - m_A26 += m_A14 * f3_5; - m_A27 += m_A15 * f3_5; - m_A28 += m_A16 * f3_5; - RHS5 += f3_5 * RHS3; - const double f3_6 = -f3 * m_A31; - m_A32 += m_A14 * f3_6; - m_A33 += m_A15 * f3_6; - m_A34 += m_A16 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A20; - const double f4_5 = -f4 * m_A26; - m_A27 += m_A21 * f4_5; - m_A28 += m_A22 * f4_5; - RHS5 += f4_5 * RHS4; - const double f4_6 = -f4 * m_A32; - m_A33 += m_A21 * f4_6; - m_A34 += m_A22 * f4_6; - RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A27; - const double f5_6 = -f5 * m_A33; - m_A34 += m_A28 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A34; + const double f0_6 = -f0 * m_A14; + m_A15 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_8 = -f1 * m_A22; + m_A26 += m_A3 * f1_8; + RHS8 += f1_8 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_7 = -f2 * m_A17; + m_A19 += m_A5 * f2_7; + m_A20 += m_A6 * f2_7; + RHS7 += f2_7 * RHS2; + const double f2_8 = -f2 * m_A23; + m_A25 += m_A5 * f2_8; + m_A26 += m_A6 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_7 = -f3 * m_A18; + m_A19 += m_A8 * f3_7; + m_A21 += m_A9 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_9 = -f3 * m_A28; + m_A31 += m_A8 * f3_9; + m_A33 += m_A9 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_9 = -f4 * m_A29; + m_A33 += m_A11 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_9 = -f5 * m_A30; + m_A33 += m_A13 * f5_9; + RHS9 += f5_9 * RHS5; + const double f6 = 1.0 / m_A15; + const double f6_8 = -f6 * m_A24; + m_A26 += m_A16 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_8 = -f7 * m_A25; + m_A26 += m_A20 * f7_8; + m_A27 += m_A21 * f7_8; + RHS8 += f7_8 * RHS7; + const double f7_9 = -f7 * m_A31; + m_A32 += m_A20 * f7_9; + m_A33 += m_A21 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A26; + const double f8_9 = -f8 * m_A32; + m_A33 += m_A27 * f8_9; + RHS9 += f8_9 * RHS8; + V[9] = RHS9 / m_A33; + double tmp8 = 0.0; + tmp8 += m_A27 * V[9]; + V[8] = (RHS8 - tmp8) / m_A26; + double tmp7 = 0.0; + tmp7 += m_A20 * V[8]; + tmp7 += m_A21 * V[9]; + V[7] = (RHS7 - tmp7) / m_A19; + double tmp6 = 0.0; + tmp6 += m_A16 * V[8]; + V[6] = (RHS6 - tmp6) / m_A15; double tmp5 = 0.0; - tmp5 += m_A28 * V[6]; - V[5] = (RHS5 - tmp5) / m_A27; + tmp5 += m_A13 * V[9]; + V[5] = (RHS5 - tmp5) / m_A12; double tmp4 = 0.0; - tmp4 += m_A21 * V[5]; - tmp4 += m_A22 * V[6]; - V[4] = (RHS4 - tmp4) / m_A20; + tmp4 += m_A11 * V[9]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A14 * V[4]; - tmp3 += m_A15 * V[5]; - tmp3 += m_A16 * V[6]; - V[3] = (RHS3 - tmp3) / m_A13; + tmp3 += m_A8 * V[7]; + tmp3 += m_A9 * V[9]; + V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - tmp2 += m_A8 * V[4]; - tmp2 += m_A9 * V[5]; - tmp2 += m_A10 * V[6]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A5 * V[7]; + tmp2 += m_A6 * V[8]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A5 * V[2]; - V[1] = (RHS1 - tmp1) / m_A4; - double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; - tmp0 += m_A2 * V[4]; - tmp0 += m_A3 * V[5]; + tmp1 += m_A3 * V[8]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[6]; V[0] = (RHS0 - tmp0) / m_A0; } -// gamemachine -static void nl_gcr_782d79b5cbe953b1_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// breakout +static void nl_gcr_a971eeb2ef76f75f_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -16304,64 +41375,93 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A1 += go[0]; - m_A1 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A2 += gt[6]; m_A3 += go[3]; - m_A3 += go[4]; double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 += Idr[6]; + RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; m_A6 += gt[9]; m_A6 += gt[10]; m_A6 += gt[11]; - m_A6 += gt[12]; - m_A5 += go[7]; - m_A5 += go[8]; - m_A4 += go[9]; - m_A4 += go[10]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A11 += go[12]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_4 = -f0 * m_A8; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + const double f1_4 = -f1 * m_A9; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A7 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; + double tmp3 = 0.0; + tmp3 += m_A7 * V[4]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// barrier -static void nl_gcr_79e756c5892cf87d_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// ripoff +static void nl_gcr_aa07266ef5d420d1_11_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -16377,26 +41477,6 @@ double m_A8(0.0); double m_A9(0.0); double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -16409,209 +41489,42 @@ double RHS1 = Idr[2]; RHS1 += Idr[3]; RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A5 += go[4]; + m_A6 += gt[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A7 += go[4]; + m_A5 += go[5]; + m_A4 += go[6]; double RHS2 = Idr[4]; RHS2 += Idr[5]; RHS2 += Idr[6]; RHS2 += Idr[7]; RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[5] * *cnV[5]; - RHS2 -= go[6] * *cnV[6]; RHS2 -= go[7] * *cnV[7]; RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A8 += go[11]; - m_A9 += go[12]; - m_A7 += go[13]; - double RHS3 = Idr[11]; + m_A10 += gt[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A8 += go[9]; + m_A9 += go[10]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; RHS3 += Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; RHS3 += Idr[15]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; RHS3 -= go[14] * *cnV[14]; RHS3 -= go[15] * *cnV[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A11 += go[16]; - double RHS4 = Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 -= go[17] * *cnV[17]; - RHS4 -= go[18] * *cnV[18]; - m_A14 += gt[19]; - m_A14 += gt[20]; - m_A12 += go[19]; - m_A13 += go[20]; - double RHS5 = Idr[19]; - RHS5 += Idr[20]; - m_A18 += gt[21]; - m_A18 += gt[22]; - m_A18 += gt[23]; - m_A17 += go[21]; - m_A19 += go[22]; - double RHS6 = Idr[21]; - RHS6 += Idr[22]; - RHS6 += Idr[23]; - RHS6 -= go[23] * *cnV[23]; - m_A23 += gt[24]; - m_A23 += gt[25]; - m_A21 += go[24]; - m_A20 += go[25]; - double RHS7 = Idr[24]; - RHS7 += Idr[25]; - m_A30 += gt[26]; - m_A30 += gt[27]; - m_A30 += gt[28]; - m_A30 += gt[29]; - m_A30 += gt[30]; - m_A25 += go[26]; - m_A26 += go[27]; - m_A28 += go[28]; - double RHS8 = Idr[26]; - RHS8 += Idr[27]; - RHS8 += Idr[28]; - RHS8 += Idr[29]; - RHS8 += Idr[30]; - RHS8 -= go[29] * *cnV[29]; - RHS8 -= go[30] * *cnV[30]; - const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A12; - m_A14 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A17; - m_A18 += m_A3 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_8 = -f2 * m_A25; - m_A28 += m_A5 * f2_8; - RHS8 += f2_8 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_5 = -f3 * m_A13; - m_A14 += m_A7 * f3_5; - m_A15 += m_A8 * f3_5; - m_A16 += m_A9 * f3_5; - RHS5 += f3_5 * RHS3; - const double f3_7 = -f3 * m_A20; - m_A22 += m_A7 * f3_7; - m_A23 += m_A8 * f3_7; - m_A24 += m_A9 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_8 = -f3 * m_A26; - m_A27 += m_A7 * f3_8; - m_A29 += m_A8 * f3_8; - m_A30 += m_A9 * f3_8; - RHS8 += f3_8 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_7 = -f4 * m_A21; - m_A23 += m_A11 * f4_7; - RHS7 += f4_7 * RHS4; - const double f5 = 1.0 / m_A14; - const double f5_7 = -f5 * m_A22; - m_A23 += m_A15 * f5_7; - m_A24 += m_A16 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A27; - m_A29 += m_A15 * f5_8; - m_A30 += m_A16 * f5_8; - RHS8 += f5_8 * RHS5; - const double f6 = 1.0 / m_A18; - const double f6_8 = -f6 * m_A28; - m_A30 += m_A19 * f6_8; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A23; - const double f7_8 = -f7 * m_A29; - m_A30 += m_A24 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A30; - double tmp7 = 0.0; - tmp7 += m_A24 * V[8]; - V[7] = (RHS7 - tmp7) / m_A23; - double tmp6 = 0.0; - tmp6 += m_A19 * V[8]; - V[6] = (RHS6 - tmp6) / m_A18; - double tmp5 = 0.0; - tmp5 += m_A15 * V[7]; - tmp5 += m_A16 * V[8]; - V[5] = (RHS5 - tmp5) / m_A14; - double tmp4 = 0.0; - tmp4 += m_A11 * V[7]; - V[4] = (RHS4 - tmp4) / m_A10; - double tmp3 = 0.0; - tmp3 += m_A7 * V[5]; - tmp3 += m_A8 * V[7]; - tmp3 += m_A9 * V[8]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// breakout -static void nl_gcr_7a42b97d838ca073_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A5 += go[7]; - m_A4 += go[8]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 -= go[9] * *cnV[9]; const double f0 = 1.0 / m_A0; const double f0_2 = -f0 * m_A4; m_A6 += m_A1 * f0_2; @@ -16620,7 +41533,17 @@ const double f1_2 = -f1 * m_A5; m_A6 += m_A3 * f1_2; RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A10; + double tmp2 = 0.0; + tmp2 += m_A7 * V[3]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; @@ -16630,7 +41553,7 @@ } // 280zzzap -static void nl_gcr_7afaac594132b463_104_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +static void nl_gcr_ab9144d965a37e4_113_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -16739,6 +41662,15 @@ double m_A101(0.0); double m_A102(0.0); double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -16759,177 +41691,177 @@ RHS1 -= go[5] * *cnV[5]; m_A6 += gt[6]; m_A6 += gt[7]; - m_A6 += gt[8]; m_A7 += go[6]; double RHS2 = Idr[6]; RHS2 += Idr[7]; - RHS2 += Idr[8]; RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; + m_A8 += gt[8]; m_A8 += gt[9]; - m_A8 += gt[10]; - m_A9 += go[9]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 -= go[10] * *cnV[10]; + m_A9 += go[8]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A10 += gt[10]; m_A10 += gt[11]; m_A10 += gt[12]; - m_A10 += gt[13]; + m_A11 += go[10]; m_A12 += go[11]; - m_A11 += go[12]; - double RHS4 = Idr[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; RHS4 += Idr[12]; - RHS4 += Idr[13]; - RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[12] * *cnV[12]; + m_A13 += gt[13]; m_A13 += gt[14]; - m_A13 += gt[15]; - m_A14 += go[14]; - double RHS5 = Idr[14]; - RHS5 += Idr[15]; - RHS5 -= go[15] * *cnV[15]; + m_A14 += go[13]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 -= go[14] * *cnV[14]; + m_A15 += gt[15]; m_A15 += gt[16]; m_A15 += gt[17]; m_A15 += gt[18]; m_A15 += gt[19]; m_A15 += gt[20]; m_A15 += gt[21]; - m_A15 += gt[22]; + m_A18 += go[15]; m_A19 += go[16]; - m_A18 += go[17]; - m_A17 += go[18]; - m_A16 += go[19]; - double RHS6 = Idr[16]; + m_A17 += go[17]; + m_A16 += go[18]; + double RHS6 = Idr[15]; + RHS6 += Idr[16]; RHS6 += Idr[17]; RHS6 += Idr[18]; RHS6 += Idr[19]; RHS6 += Idr[20]; RHS6 += Idr[21]; - RHS6 += Idr[22]; + RHS6 -= go[19] * *cnV[19]; RHS6 -= go[20] * *cnV[20]; RHS6 -= go[21] * *cnV[21]; - RHS6 -= go[22] * *cnV[22]; + m_A20 += gt[22]; m_A20 += gt[23]; m_A20 += gt[24]; m_A20 += gt[25]; m_A20 += gt[26]; m_A20 += gt[27]; m_A20 += gt[28]; - m_A20 += gt[29]; + m_A23 += go[22]; m_A24 += go[23]; - m_A23 += go[24]; - m_A22 += go[25]; - m_A21 += go[26]; - double RHS7 = Idr[23]; + m_A22 += go[24]; + m_A21 += go[25]; + double RHS7 = Idr[22]; + RHS7 += Idr[23]; RHS7 += Idr[24]; RHS7 += Idr[25]; RHS7 += Idr[26]; RHS7 += Idr[27]; RHS7 += Idr[28]; - RHS7 += Idr[29]; + RHS7 -= go[26] * *cnV[26]; RHS7 -= go[27] * *cnV[27]; RHS7 -= go[28] * *cnV[28]; - RHS7 -= go[29] * *cnV[29]; + m_A25 += gt[29]; m_A25 += gt[30]; m_A25 += gt[31]; - m_A25 += gt[32]; - m_A26 += go[30]; - m_A27 += go[31]; - double RHS8 = Idr[30]; + m_A26 += go[29]; + m_A27 += go[30]; + double RHS8 = Idr[29]; + RHS8 += Idr[30]; RHS8 += Idr[31]; - RHS8 += Idr[32]; - RHS8 -= go[32] * *cnV[32]; + RHS8 -= go[31] * *cnV[31]; + m_A28 += gt[32]; m_A28 += gt[33]; - m_A28 += gt[34]; - m_A29 += go[33]; - double RHS9 = Idr[33]; - RHS9 += Idr[34]; - RHS9 -= go[34] * *cnV[34]; + m_A29 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[33] * *cnV[33]; + m_A30 += gt[34]; m_A30 += gt[35]; m_A30 += gt[36]; m_A30 += gt[37]; - m_A30 += gt[38]; - m_A31 += go[35]; - double RHS10 = Idr[35]; + m_A31 += go[34]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; RHS10 += Idr[36]; RHS10 += Idr[37]; - RHS10 += Idr[38]; + RHS10 -= go[35] * *cnV[35]; RHS10 -= go[36] * *cnV[36]; RHS10 -= go[37] * *cnV[37]; - RHS10 -= go[38] * *cnV[38]; + m_A32 += gt[38]; m_A32 += gt[39]; - m_A32 += gt[40]; - m_A33 += go[39]; - double RHS11 = Idr[39]; - RHS11 += Idr[40]; - RHS11 -= go[40] * *cnV[40]; + m_A33 += go[38]; + double RHS11 = Idr[38]; + RHS11 += Idr[39]; + RHS11 -= go[39] * *cnV[39]; + m_A36 += gt[40]; m_A36 += gt[41]; m_A36 += gt[42]; m_A36 += gt[43]; - m_A36 += gt[44]; - m_A35 += go[41]; - m_A34 += go[42]; - double RHS12 = Idr[41]; + m_A35 += go[40]; + m_A34 += go[41]; + double RHS12 = Idr[40]; + RHS12 += Idr[41]; RHS12 += Idr[42]; RHS12 += Idr[43]; - RHS12 += Idr[44]; + RHS12 -= go[42] * *cnV[42]; RHS12 -= go[43] * *cnV[43]; - RHS12 -= go[44] * *cnV[44]; + m_A42 += gt[44]; m_A42 += gt[45]; m_A42 += gt[46]; m_A42 += gt[47]; - m_A42 += gt[48]; - m_A40 += go[45]; - m_A41 += go[46]; - m_A43 += go[47]; - m_A39 += go[48]; - double RHS13 = Idr[45]; + m_A40 += go[44]; + m_A39 += go[45]; + double RHS13 = Idr[44]; + RHS13 += Idr[45]; RHS13 += Idr[46]; RHS13 += Idr[47]; - RHS13 += Idr[48]; - m_A45 += gt[49]; - m_A45 += gt[50]; - m_A45 += gt[51]; - m_A45 += gt[52]; - m_A44 += go[49]; - m_A46 += go[50]; - double RHS14 = Idr[49]; + RHS13 -= go[46] * *cnV[46]; + RHS13 -= go[47] * *cnV[47]; + m_A51 += gt[48]; + m_A51 += gt[49]; + m_A51 += gt[50]; + m_A51 += gt[51]; + m_A53 += go[48]; + m_A48 += go[49]; + m_A47 += go[50]; + double RHS14 = Idr[48]; + RHS14 += Idr[49]; RHS14 += Idr[50]; RHS14 += Idr[51]; - RHS14 += Idr[52]; RHS14 -= go[51] * *cnV[51]; - RHS14 -= go[52] * *cnV[52]; - m_A50 += gt[53]; - m_A50 += gt[54]; - m_A50 += gt[55]; - m_A50 += gt[56]; - m_A48 += go[53]; - m_A47 += go[54]; - double RHS15 = Idr[53]; + m_A57 += gt[52]; + m_A57 += gt[53]; + m_A57 += gt[54]; + m_A56 += go[52]; + m_A58 += go[53]; + double RHS15 = Idr[52]; + RHS15 += Idr[53]; RHS15 += Idr[54]; - RHS15 += Idr[55]; - RHS15 += Idr[56]; - RHS15 -= go[55] * *cnV[55]; - RHS15 -= go[56] * *cnV[56]; - m_A57 += gt[57]; - m_A57 += gt[58]; - m_A57 += gt[59]; - m_A57 += gt[60]; - m_A56 += go[57]; - m_A55 += go[58]; - m_A58 += go[59]; - double RHS16 = Idr[57]; + RHS15 -= go[54] * *cnV[54]; + m_A60 += gt[55]; + m_A60 += gt[56]; + m_A60 += gt[57]; + m_A60 += gt[58]; + m_A59 += go[55]; + m_A61 += go[56]; + double RHS16 = Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; RHS16 += Idr[58]; - RHS16 += Idr[59]; - RHS16 += Idr[60]; - RHS16 -= go[60] * *cnV[60]; - m_A63 += gt[61]; - m_A63 += gt[62]; - m_A63 += gt[63]; - m_A63 += gt[64]; - m_A66 += go[61]; - m_A60 += go[62]; - m_A59 += go[63]; - double RHS17 = Idr[61]; + RHS16 -= go[57] * *cnV[57]; + RHS16 -= go[58] * *cnV[58]; + m_A67 += gt[59]; + m_A67 += gt[60]; + m_A67 += gt[61]; + m_A67 += gt[62]; + m_A67 += gt[63]; + m_A67 += gt[64]; + m_A70 += go[59]; + m_A64 += go[60]; + m_A63 += go[61]; + m_A62 += go[62]; + m_A69 += go[63]; + double RHS17 = Idr[59]; + RHS17 += Idr[60]; + RHS17 += Idr[61]; RHS17 += Idr[62]; RHS17 += Idr[63]; RHS17 += Idr[64]; @@ -16938,74 +41870,80 @@ m_A74 += gt[66]; m_A74 += gt[67]; m_A74 += gt[68]; - m_A74 += gt[69]; - m_A74 += gt[70]; - m_A77 += go[65]; - m_A70 += go[66]; - m_A69 += go[67]; - m_A68 += go[68]; - m_A71 += go[69]; + m_A73 += go[65]; + m_A72 += go[66]; + m_A75 += go[67]; double RHS18 = Idr[65]; RHS18 += Idr[66]; RHS18 += Idr[67]; RHS18 += Idr[68]; - RHS18 += Idr[69]; - RHS18 += Idr[70]; - RHS18 -= go[70] * *cnV[70]; - m_A85 += gt[71]; - m_A85 += gt[72]; - m_A85 += gt[73]; - m_A85 += gt[74]; - m_A85 += gt[75]; - m_A85 += gt[76]; - m_A82 += go[71]; - m_A87 += go[72]; - m_A79 += go[73]; - m_A80 += go[74]; - m_A78 += go[75]; - double RHS19 = Idr[71]; + RHS18 -= go[68] * *cnV[68]; + m_A80 += gt[69]; + m_A80 += gt[70]; + m_A80 += gt[71]; + m_A80 += gt[72]; + m_A80 += gt[73]; + m_A77 += go[69]; + m_A78 += go[70]; + m_A76 += go[71]; + double RHS19 = Idr[69]; + RHS19 += Idr[70]; + RHS19 += Idr[71]; RHS19 += Idr[72]; RHS19 += Idr[73]; - RHS19 += Idr[74]; - RHS19 += Idr[75]; - RHS19 += Idr[76]; - RHS19 -= go[76] * *cnV[76]; - m_A93 += gt[77]; - m_A93 += gt[78]; - m_A93 += gt[79]; - m_A93 += gt[80]; - m_A93 += gt[81]; - m_A89 += go[77]; - m_A88 += go[78]; - m_A90 += go[79]; - double RHS20 = Idr[77]; - RHS20 += Idr[78]; - RHS20 += Idr[79]; - RHS20 += Idr[80]; - RHS20 += Idr[81]; - RHS20 -= go[80] * *cnV[80]; - RHS20 -= go[81] * *cnV[81]; - m_A103 += gt[82]; - m_A103 += gt[83]; - m_A103 += gt[84]; - m_A103 += gt[85]; - m_A103 += gt[86]; - m_A103 += gt[87]; - m_A103 += gt[88]; + RHS19 -= go[72] * *cnV[72]; + RHS19 -= go[73] * *cnV[73]; + m_A89 += gt[74]; + m_A89 += gt[75]; + m_A89 += gt[76]; + m_A89 += gt[77]; + m_A84 += go[74]; + m_A85 += go[75]; + m_A87 += go[76]; + m_A86 += go[77]; + double RHS20 = Idr[74]; + RHS20 += Idr[75]; + RHS20 += Idr[76]; + RHS20 += Idr[77]; + m_A100 += gt[78]; + m_A100 += gt[79]; + m_A100 += gt[80]; + m_A100 += gt[81]; + m_A100 += gt[82]; + m_A100 += gt[83]; + m_A100 += gt[84]; + m_A96 += go[78]; + m_A93 += go[79]; + m_A101 += go[80]; + m_A92 += go[81]; m_A97 += go[82]; - m_A96 += go[83]; - m_A101 += go[84]; - m_A95 += go[85]; - m_A100 += go[86]; - double RHS21 = Idr[82]; + double RHS21 = Idr[78]; + RHS21 += Idr[79]; + RHS21 += Idr[80]; + RHS21 += Idr[81]; + RHS21 += Idr[82]; RHS21 += Idr[83]; RHS21 += Idr[84]; - RHS21 += Idr[85]; - RHS21 += Idr[86]; - RHS21 += Idr[87]; - RHS21 += Idr[88]; - RHS21 -= go[87] * *cnV[87]; - RHS21 -= go[88] * *cnV[88]; + RHS21 -= go[83] * *cnV[83]; + RHS21 -= go[84] * *cnV[84]; + m_A112 += gt[85]; + m_A112 += gt[86]; + m_A112 += gt[87]; + m_A112 += gt[88]; + m_A112 += gt[89]; + m_A112 += gt[90]; + m_A108 += go[85]; + m_A111 += go[86]; + m_A103 += go[87]; + m_A104 += go[88]; + m_A102 += go[89]; + double RHS22 = Idr[85]; + RHS22 += Idr[86]; + RHS22 += Idr[87]; + RHS22 += Idr[88]; + RHS22 += Idr[89]; + RHS22 += Idr[90]; + RHS22 -= go[90] * *cnV[90]; const double f0 = 1.0 / m_A0; const double f0_12 = -f0 * m_A34; m_A36 += m_A1 * f0_12; @@ -17016,296 +41954,327 @@ m_A37 += m_A4 * f1_12; m_A38 += m_A5 * f1_12; RHS12 += f1_12 * RHS1; - const double f1_15 = -f1 * m_A47; - m_A49 += m_A3 * f1_15; - m_A50 += m_A4 * f1_15; - m_A51 += m_A5 * f1_15; - RHS15 += f1_15 * RHS1; - const double f1_17 = -f1 * m_A59; - m_A61 += m_A3 * f1_17; - m_A62 += m_A4 * f1_17; - m_A63 += m_A5 * f1_17; - RHS17 += f1_17 * RHS1; + const double f1_13 = -f1 * m_A39; + m_A41 += m_A3 * f1_13; + m_A42 += m_A4 * f1_13; + m_A43 += m_A5 * f1_13; + RHS13 += f1_13 * RHS1; + const double f1_14 = -f1 * m_A47; + m_A49 += m_A3 * f1_14; + m_A50 += m_A4 * f1_14; + m_A51 += m_A5 * f1_14; + RHS14 += f1_14 * RHS1; const double f2 = 1.0 / m_A6; - const double f2_13 = -f2 * m_A39; - m_A42 += m_A7 * f2_13; - RHS13 += f2_13 * RHS2; + const double f2_15 = -f2 * m_A56; + m_A57 += m_A7 * f2_15; + RHS15 += f2_15 * RHS2; const double f3 = 1.0 / m_A8; - const double f3_13 = -f3 * m_A40; - m_A42 += m_A9 * f3_13; - RHS13 += f3_13 * RHS3; + const double f3_20 = -f3 * m_A84; + m_A89 += m_A9 * f3_20; + RHS20 += f3_20 * RHS3; const double f4 = 1.0 / m_A10; - const double f4_13 = -f4 * m_A41; - m_A42 += m_A11 * f4_13; - m_A43 += m_A12 * f4_13; - RHS13 += f4_13 * RHS4; - const double f4_18 = -f4 * m_A68; - m_A71 += m_A11 * f4_18; - m_A74 += m_A12 * f4_18; - RHS18 += f4_18 * RHS4; + const double f4_17 = -f4 * m_A62; + m_A67 += m_A11 * f4_17; + m_A69 += m_A12 * f4_17; + RHS17 += f4_17 * RHS4; + const double f4_20 = -f4 * m_A85; + m_A87 += m_A11 * f4_20; + m_A89 += m_A12 * f4_20; + RHS20 += f4_20 * RHS4; const double f5 = 1.0 / m_A13; - const double f5_14 = -f5 * m_A44; - m_A45 += m_A14 * f5_14; - RHS14 += f5_14 * RHS5; + const double f5_16 = -f5 * m_A59; + m_A60 += m_A14 * f5_16; + RHS16 += f5_16 * RHS5; const double f6 = 1.0 / m_A15; - const double f6_15 = -f6 * m_A48; - m_A50 += m_A16 * f6_15; - m_A52 += m_A17 * f6_15; - m_A53 += m_A18 * f6_15; - m_A54 += m_A19 * f6_15; - RHS15 += f6_15 * RHS6; - const double f6_18 = -f6 * m_A69; - m_A72 += m_A16 * f6_18; - m_A74 += m_A17 * f6_18; - m_A75 += m_A18 * f6_18; - m_A77 += m_A19 * f6_18; - RHS18 += f6_18 * RHS6; - const double f6_19 = -f6 * m_A78; - m_A81 += m_A16 * f6_19; - m_A84 += m_A17 * f6_19; - m_A85 += m_A18 * f6_19; - m_A87 += m_A19 * f6_19; - RHS19 += f6_19 * RHS6; - const double f6_21 = -f6 * m_A95; - m_A98 += m_A16 * f6_21; - m_A100 += m_A17 * f6_21; - m_A101 += m_A18 * f6_21; - m_A103 += m_A19 * f6_21; + const double f6_13 = -f6 * m_A40; + m_A42 += m_A16 * f6_13; + m_A44 += m_A17 * f6_13; + m_A45 += m_A18 * f6_13; + m_A46 += m_A19 * f6_13; + RHS13 += f6_13 * RHS6; + const double f6_17 = -f6 * m_A63; + m_A65 += m_A16 * f6_17; + m_A67 += m_A17 * f6_17; + m_A70 += m_A18 * f6_17; + m_A71 += m_A19 * f6_17; + RHS17 += f6_17 * RHS6; + const double f6_21 = -f6 * m_A92; + m_A94 += m_A16 * f6_21; + m_A97 += m_A17 * f6_21; + m_A100 += m_A18 * f6_21; + m_A101 += m_A19 * f6_21; RHS21 += f6_21 * RHS6; + const double f6_22 = -f6 * m_A102; + m_A105 += m_A16 * f6_22; + m_A107 += m_A17 * f6_22; + m_A111 += m_A18 * f6_22; + m_A112 += m_A19 * f6_22; + RHS22 += f6_22 * RHS6; const double f7 = 1.0 / m_A20; - const double f7_17 = -f7 * m_A60; - m_A63 += m_A21 * f7_17; - m_A64 += m_A22 * f7_17; - m_A65 += m_A23 * f7_17; - m_A67 += m_A24 * f7_17; + const double f7_14 = -f7 * m_A48; + m_A51 += m_A21 * f7_14; + m_A52 += m_A22 * f7_14; + m_A54 += m_A23 * f7_14; + m_A55 += m_A24 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_17 = -f7 * m_A64; + m_A66 += m_A21 * f7_17; + m_A67 += m_A22 * f7_17; + m_A70 += m_A23 * f7_17; + m_A71 += m_A24 * f7_17; RHS17 += f7_17 * RHS7; - const double f7_18 = -f7 * m_A70; - m_A73 += m_A21 * f7_18; - m_A74 += m_A22 * f7_18; - m_A75 += m_A23 * f7_18; - m_A77 += m_A24 * f7_18; - RHS18 += f7_18 * RHS7; - const double f7_19 = -f7 * m_A79; - m_A83 += m_A21 * f7_19; - m_A84 += m_A22 * f7_19; - m_A85 += m_A23 * f7_19; - m_A87 += m_A24 * f7_19; - RHS19 += f7_19 * RHS7; - const double f7_21 = -f7 * m_A96; - m_A99 += m_A21 * f7_21; - m_A100 += m_A22 * f7_21; - m_A101 += m_A23 * f7_21; - m_A103 += m_A24 * f7_21; + const double f7_21 = -f7 * m_A93; + m_A95 += m_A21 * f7_21; + m_A97 += m_A22 * f7_21; + m_A100 += m_A23 * f7_21; + m_A101 += m_A24 * f7_21; RHS21 += f7_21 * RHS7; + const double f7_22 = -f7 * m_A103; + m_A106 += m_A21 * f7_22; + m_A107 += m_A22 * f7_22; + m_A111 += m_A23 * f7_22; + m_A112 += m_A24 * f7_22; + RHS22 += f7_22 * RHS7; const double f8 = 1.0 / m_A25; - const double f8_16 = -f8 * m_A55; - m_A57 += m_A26 * f8_16; - m_A58 += m_A27 * f8_16; - RHS16 += f8_16 * RHS8; - const double f8_19 = -f8 * m_A80; - m_A82 += m_A26 * f8_19; - m_A85 += m_A27 * f8_19; - RHS19 += f8_19 * RHS8; + const double f8_18 = -f8 * m_A72; + m_A74 += m_A26 * f8_18; + m_A75 += m_A27 * f8_18; + RHS18 += f8_18 * RHS8; + const double f8_22 = -f8 * m_A104; + m_A108 += m_A26 * f8_22; + m_A112 += m_A27 * f8_22; + RHS22 += f8_22 * RHS8; const double f9 = 1.0 / m_A28; - const double f9_16 = -f9 * m_A56; - m_A57 += m_A29 * f9_16; - RHS16 += f9_16 * RHS9; + const double f9_18 = -f9 * m_A73; + m_A74 += m_A29 * f9_18; + RHS18 += f9_18 * RHS9; const double f10 = 1.0 / m_A30; - const double f10_20 = -f10 * m_A88; - m_A93 += m_A31 * f10_20; - RHS20 += f10_20 * RHS10; + const double f10_19 = -f10 * m_A76; + m_A80 += m_A31 * f10_19; + RHS19 += f10_19 * RHS10; const double f11 = 1.0 / m_A32; - const double f11_20 = -f11 * m_A89; - m_A93 += m_A33 * f11_20; - RHS20 += f11_20 * RHS11; + const double f11_19 = -f11 * m_A77; + m_A80 += m_A33 * f11_19; + RHS19 += f11_19 * RHS11; const double f12 = 1.0 / m_A36; - const double f12_15 = -f12 * m_A49; - m_A50 += m_A37 * f12_15; - m_A51 += m_A38 * f12_15; - RHS15 += f12_15 * RHS12; - const double f12_17 = -f12 * m_A61; - m_A62 += m_A37 * f12_17; - m_A63 += m_A38 * f12_17; - RHS17 += f12_17 * RHS12; + const double f12_13 = -f12 * m_A41; + m_A42 += m_A37 * f12_13; + m_A43 += m_A38 * f12_13; + RHS13 += f12_13 * RHS12; + const double f12_14 = -f12 * m_A49; + m_A50 += m_A37 * f12_14; + m_A51 += m_A38 * f12_14; + RHS14 += f12_14 * RHS12; const double f13 = 1.0 / m_A42; - const double f13_18 = -f13 * m_A71; - m_A74 += m_A43 * f13_18; - RHS18 += f13_18 * RHS13; - const double f14 = 1.0 / m_A45; - const double f14_21 = -f14 * m_A97; - m_A103 += m_A46 * f14_21; + const double f13_14 = -f13 * m_A50; + m_A51 += m_A43 * f13_14; + m_A52 += m_A44 * f13_14; + m_A54 += m_A45 * f13_14; + m_A55 += m_A46 * f13_14; + RHS14 += f13_14 * RHS13; + const double f13_17 = -f13 * m_A65; + m_A66 += m_A43 * f13_17; + m_A67 += m_A44 * f13_17; + m_A70 += m_A45 * f13_17; + m_A71 += m_A46 * f13_17; + RHS17 += f13_17 * RHS13; + const double f13_21 = -f13 * m_A94; + m_A95 += m_A43 * f13_21; + m_A97 += m_A44 * f13_21; + m_A100 += m_A45 * f13_21; + m_A101 += m_A46 * f13_21; + RHS21 += f13_21 * RHS13; + const double f13_22 = -f13 * m_A105; + m_A106 += m_A43 * f13_22; + m_A107 += m_A44 * f13_22; + m_A111 += m_A45 * f13_22; + m_A112 += m_A46 * f13_22; + RHS22 += f13_22 * RHS13; + const double f14 = 1.0 / m_A51; + const double f14_17 = -f14 * m_A66; + m_A67 += m_A52 * f14_17; + m_A68 += m_A53 * f14_17; + m_A70 += m_A54 * f14_17; + m_A71 += m_A55 * f14_17; + RHS17 += f14_17 * RHS14; + const double f14_19 = -f14 * m_A78; + m_A79 += m_A52 * f14_19; + m_A80 += m_A53 * f14_19; + m_A82 += m_A54 * f14_19; + m_A83 += m_A55 * f14_19; + RHS19 += f14_19 * RHS14; + const double f14_21 = -f14 * m_A95; + m_A97 += m_A52 * f14_21; + m_A98 += m_A53 * f14_21; + m_A100 += m_A54 * f14_21; + m_A101 += m_A55 * f14_21; RHS21 += f14_21 * RHS14; - const double f15 = 1.0 / m_A50; - const double f15_17 = -f15 * m_A62; - m_A63 += m_A51 * f15_17; - m_A64 += m_A52 * f15_17; - m_A65 += m_A53 * f15_17; - m_A67 += m_A54 * f15_17; - RHS17 += f15_17 * RHS15; - const double f15_18 = -f15 * m_A72; - m_A73 += m_A51 * f15_18; - m_A74 += m_A52 * f15_18; - m_A75 += m_A53 * f15_18; - m_A77 += m_A54 * f15_18; - RHS18 += f15_18 * RHS15; - const double f15_19 = -f15 * m_A81; - m_A83 += m_A51 * f15_19; - m_A84 += m_A52 * f15_19; - m_A85 += m_A53 * f15_19; - m_A87 += m_A54 * f15_19; - RHS19 += f15_19 * RHS15; - const double f15_21 = -f15 * m_A98; - m_A99 += m_A51 * f15_21; - m_A100 += m_A52 * f15_21; - m_A101 += m_A53 * f15_21; - m_A103 += m_A54 * f15_21; - RHS21 += f15_21 * RHS15; - const double f16 = 1.0 / m_A57; - const double f16_19 = -f16 * m_A82; - m_A85 += m_A58 * f16_19; - RHS19 += f16_19 * RHS16; - const double f17 = 1.0 / m_A63; - const double f17_18 = -f17 * m_A73; - m_A74 += m_A64 * f17_18; - m_A75 += m_A65 * f17_18; - m_A76 += m_A66 * f17_18; - m_A77 += m_A67 * f17_18; - RHS18 += f17_18 * RHS17; - const double f17_19 = -f17 * m_A83; - m_A84 += m_A64 * f17_19; - m_A85 += m_A65 * f17_19; - m_A86 += m_A66 * f17_19; - m_A87 += m_A67 * f17_19; + const double f14_22 = -f14 * m_A106; + m_A107 += m_A52 * f14_22; + m_A109 += m_A53 * f14_22; + m_A111 += m_A54 * f14_22; + m_A112 += m_A55 * f14_22; + RHS22 += f14_22 * RHS14; + const double f15 = 1.0 / m_A57; + const double f15_20 = -f15 * m_A86; + m_A89 += m_A58 * f15_20; + RHS20 += f15_20 * RHS15; + const double f16 = 1.0 / m_A60; + const double f16_21 = -f16 * m_A96; + m_A100 += m_A61 * f16_21; + RHS21 += f16_21 * RHS16; + const double f17 = 1.0 / m_A67; + const double f17_19 = -f17 * m_A79; + m_A80 += m_A68 * f17_19; + m_A81 += m_A69 * f17_19; + m_A82 += m_A70 * f17_19; + m_A83 += m_A71 * f17_19; RHS19 += f17_19 * RHS17; - const double f17_20 = -f17 * m_A90; - m_A91 += m_A64 * f17_20; - m_A92 += m_A65 * f17_20; - m_A93 += m_A66 * f17_20; - m_A94 += m_A67 * f17_20; + const double f17_20 = -f17 * m_A87; + m_A88 += m_A68 * f17_20; + m_A89 += m_A69 * f17_20; + m_A90 += m_A70 * f17_20; + m_A91 += m_A71 * f17_20; RHS20 += f17_20 * RHS17; - const double f17_21 = -f17 * m_A99; - m_A100 += m_A64 * f17_21; - m_A101 += m_A65 * f17_21; - m_A102 += m_A66 * f17_21; - m_A103 += m_A67 * f17_21; + const double f17_21 = -f17 * m_A97; + m_A98 += m_A68 * f17_21; + m_A99 += m_A69 * f17_21; + m_A100 += m_A70 * f17_21; + m_A101 += m_A71 * f17_21; RHS21 += f17_21 * RHS17; + const double f17_22 = -f17 * m_A107; + m_A109 += m_A68 * f17_22; + m_A110 += m_A69 * f17_22; + m_A111 += m_A70 * f17_22; + m_A112 += m_A71 * f17_22; + RHS22 += f17_22 * RHS17; const double f18 = 1.0 / m_A74; - const double f18_19 = -f18 * m_A84; - m_A85 += m_A75 * f18_19; - m_A86 += m_A76 * f18_19; - m_A87 += m_A77 * f18_19; - RHS19 += f18_19 * RHS18; - const double f18_20 = -f18 * m_A91; - m_A92 += m_A75 * f18_20; - m_A93 += m_A76 * f18_20; - m_A94 += m_A77 * f18_20; - RHS20 += f18_20 * RHS18; - const double f18_21 = -f18 * m_A100; - m_A101 += m_A75 * f18_21; - m_A102 += m_A76 * f18_21; - m_A103 += m_A77 * f18_21; - RHS21 += f18_21 * RHS18; - const double f19 = 1.0 / m_A85; - const double f19_20 = -f19 * m_A92; - m_A93 += m_A86 * f19_20; - m_A94 += m_A87 * f19_20; + const double f18_22 = -f18 * m_A108; + m_A112 += m_A75 * f18_22; + RHS22 += f18_22 * RHS18; + const double f19 = 1.0 / m_A80; + const double f19_20 = -f19 * m_A88; + m_A89 += m_A81 * f19_20; + m_A90 += m_A82 * f19_20; + m_A91 += m_A83 * f19_20; RHS20 += f19_20 * RHS19; - const double f19_21 = -f19 * m_A101; - m_A102 += m_A86 * f19_21; - m_A103 += m_A87 * f19_21; + const double f19_21 = -f19 * m_A98; + m_A99 += m_A81 * f19_21; + m_A100 += m_A82 * f19_21; + m_A101 += m_A83 * f19_21; RHS21 += f19_21 * RHS19; - const double f20 = 1.0 / m_A93; - const double f20_21 = -f20 * m_A102; - m_A103 += m_A94 * f20_21; + const double f19_22 = -f19 * m_A109; + m_A110 += m_A81 * f19_22; + m_A111 += m_A82 * f19_22; + m_A112 += m_A83 * f19_22; + RHS22 += f19_22 * RHS19; + const double f20 = 1.0 / m_A89; + const double f20_21 = -f20 * m_A99; + m_A100 += m_A90 * f20_21; + m_A101 += m_A91 * f20_21; RHS21 += f20_21 * RHS20; - V[21] = RHS21 / m_A103; + const double f20_22 = -f20 * m_A110; + m_A111 += m_A90 * f20_22; + m_A112 += m_A91 * f20_22; + RHS22 += f20_22 * RHS20; + const double f21 = 1.0 / m_A100; + const double f21_22 = -f21 * m_A111; + m_A112 += m_A101 * f21_22; + RHS22 += f21_22 * RHS21; + V[22] = RHS22 / m_A112; + double tmp21 = 0.0; + tmp21 += m_A101 * V[22]; + V[21] = (RHS21 - tmp21) / m_A100; double tmp20 = 0.0; - tmp20 += m_A94 * V[21]; - V[20] = (RHS20 - tmp20) / m_A93; + tmp20 += m_A90 * V[21]; + tmp20 += m_A91 * V[22]; + V[20] = (RHS20 - tmp20) / m_A89; double tmp19 = 0.0; - tmp19 += m_A86 * V[20]; - tmp19 += m_A87 * V[21]; - V[19] = (RHS19 - tmp19) / m_A85; + tmp19 += m_A81 * V[20]; + tmp19 += m_A82 * V[21]; + tmp19 += m_A83 * V[22]; + V[19] = (RHS19 - tmp19) / m_A80; double tmp18 = 0.0; - tmp18 += m_A75 * V[19]; - tmp18 += m_A76 * V[20]; - tmp18 += m_A77 * V[21]; + tmp18 += m_A75 * V[22]; V[18] = (RHS18 - tmp18) / m_A74; double tmp17 = 0.0; - tmp17 += m_A64 * V[18]; - tmp17 += m_A65 * V[19]; - tmp17 += m_A66 * V[20]; - tmp17 += m_A67 * V[21]; - V[17] = (RHS17 - tmp17) / m_A63; + tmp17 += m_A68 * V[19]; + tmp17 += m_A69 * V[20]; + tmp17 += m_A70 * V[21]; + tmp17 += m_A71 * V[22]; + V[17] = (RHS17 - tmp17) / m_A67; double tmp16 = 0.0; - tmp16 += m_A58 * V[19]; - V[16] = (RHS16 - tmp16) / m_A57; + tmp16 += m_A61 * V[21]; + V[16] = (RHS16 - tmp16) / m_A60; double tmp15 = 0.0; - tmp15 += m_A51 * V[17]; - tmp15 += m_A52 * V[18]; - tmp15 += m_A53 * V[19]; - tmp15 += m_A54 * V[21]; - V[15] = (RHS15 - tmp15) / m_A50; + tmp15 += m_A58 * V[20]; + V[15] = (RHS15 - tmp15) / m_A57; double tmp14 = 0.0; - tmp14 += m_A46 * V[21]; - V[14] = (RHS14 - tmp14) / m_A45; + tmp14 += m_A52 * V[17]; + tmp14 += m_A53 * V[19]; + tmp14 += m_A54 * V[21]; + tmp14 += m_A55 * V[22]; + V[14] = (RHS14 - tmp14) / m_A51; double tmp13 = 0.0; - tmp13 += m_A43 * V[18]; + tmp13 += m_A43 * V[14]; + tmp13 += m_A44 * V[17]; + tmp13 += m_A45 * V[21]; + tmp13 += m_A46 * V[22]; V[13] = (RHS13 - tmp13) / m_A42; double tmp12 = 0.0; - tmp12 += m_A37 * V[15]; - tmp12 += m_A38 * V[17]; + tmp12 += m_A37 * V[13]; + tmp12 += m_A38 * V[14]; V[12] = (RHS12 - tmp12) / m_A36; double tmp11 = 0.0; - tmp11 += m_A33 * V[20]; + tmp11 += m_A33 * V[19]; V[11] = (RHS11 - tmp11) / m_A32; double tmp10 = 0.0; - tmp10 += m_A31 * V[20]; + tmp10 += m_A31 * V[19]; V[10] = (RHS10 - tmp10) / m_A30; double tmp9 = 0.0; - tmp9 += m_A29 * V[16]; + tmp9 += m_A29 * V[18]; V[9] = (RHS9 - tmp9) / m_A28; double tmp8 = 0.0; - tmp8 += m_A26 * V[16]; - tmp8 += m_A27 * V[19]; + tmp8 += m_A26 * V[18]; + tmp8 += m_A27 * V[22]; V[8] = (RHS8 - tmp8) / m_A25; double tmp7 = 0.0; - tmp7 += m_A21 * V[17]; - tmp7 += m_A22 * V[18]; - tmp7 += m_A23 * V[19]; - tmp7 += m_A24 * V[21]; + tmp7 += m_A21 * V[14]; + tmp7 += m_A22 * V[17]; + tmp7 += m_A23 * V[21]; + tmp7 += m_A24 * V[22]; V[7] = (RHS7 - tmp7) / m_A20; double tmp6 = 0.0; - tmp6 += m_A16 * V[15]; - tmp6 += m_A17 * V[18]; - tmp6 += m_A18 * V[19]; - tmp6 += m_A19 * V[21]; + tmp6 += m_A16 * V[13]; + tmp6 += m_A17 * V[17]; + tmp6 += m_A18 * V[21]; + tmp6 += m_A19 * V[22]; V[6] = (RHS6 - tmp6) / m_A15; double tmp5 = 0.0; - tmp5 += m_A14 * V[14]; + tmp5 += m_A14 * V[16]; V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A11 * V[13]; - tmp4 += m_A12 * V[18]; + tmp4 += m_A11 * V[17]; + tmp4 += m_A12 * V[20]; V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A9 * V[13]; + tmp3 += m_A9 * V[20]; V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A7 * V[13]; + tmp2 += m_A7 * V[15]; V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; tmp1 += m_A3 * V[12]; - tmp1 += m_A4 * V[15]; - tmp1 += m_A5 * V[17]; + tmp1 += m_A4 * V[13]; + tmp1 += m_A5 * V[14]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; tmp0 += m_A1 * V[12]; V[0] = (RHS0 - tmp0) / m_A0; } -// cheekyms -static void nl_gcr_7c86a9bc1c6aef4c_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// sspeedr +static void nl_gcr_ac1e401ddf971e15_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -17317,6 +42286,9 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -17328,41 +42300,51 @@ RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; + m_A2 += gt[5]; m_A3 += go[3]; double RHS1 = Idr[3]; RHS1 += Idr[4]; + RHS1 += Idr[5]; RHS1 -= go[4] * *cnV[4]; - m_A6 += gt[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A5 += go[5]; - m_A4 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + m_A9 += gt[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A8 += go[7]; + m_A7 += go[8]; + m_A6 += go[9]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A5 * V[3]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// solarq -static void nl_gcr_7caaa135bff3d9f3_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starfire +static void nl_gcr_aceb6035dfb557c9_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -17379,9 +42361,6 @@ double m_A9(0.0); double m_A10(0.0); double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -17397,69 +42376,59 @@ RHS1 += Idr[3]; RHS1 += Idr[4]; RHS1 -= go[4] * *cnV[4]; - m_A5 += gt[5]; - m_A5 += gt[6]; + m_A7 += gt[5]; + m_A7 += gt[6]; + m_A7 += gt[7]; + m_A7 += gt[8]; + m_A7 += gt[9]; m_A6 += go[5]; + m_A5 += go[6]; double RHS2 = Idr[5]; RHS2 += Idr[6]; - RHS2 -= go[6] * *cnV[6]; - m_A9 += gt[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; - m_A8 += go[7]; - m_A7 += go[8]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - RHS3 += Idr[9]; - RHS3 -= go[9] * *cnV[9]; - m_A14 += gt[10]; - m_A14 += gt[11]; - m_A14 += gt[12]; - m_A12 += go[10]; - m_A11 += go[11]; - double RHS4 = Idr[10]; - RHS4 += Idr[11]; - RHS4 += Idr[12]; - RHS4 -= go[12] * *cnV[12]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A11 += gt[10]; + m_A11 += gt[11]; + m_A9 += go[10]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[11] * *cnV[11]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A7; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; + const double f0_2 = -f0 * m_A5; + m_A7 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A8; - m_A9 += m_A3 * f1_3; - m_A10 += m_A4 * f1_3; + const double f1_2 = -f1 * m_A6; + m_A7 += m_A3 * f1_2; + m_A8 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; RHS3 += f1_3 * RHS1; - const double f1_4 = -f1 * m_A11; - m_A13 += m_A3 * f1_4; - m_A14 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A6 * f2_4; - RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A10 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A14; - double tmp3 = 0.0; - tmp3 += m_A10 * V[4]; - V[3] = (RHS3 - tmp3) / m_A9; + const double f2 = 1.0 / m_A7; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; double tmp2 = 0.0; - tmp2 += m_A6 * V[4]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A8 * V[3]; + V[2] = (RHS2 - tmp2) / m_A7; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; - tmp1 += m_A4 * V[4]; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// warrior -static void nl_gcr_8003d4625273fa4d_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// sundance +static void nl_gcr_ad6dba01ff2425c3_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -17474,6 +42443,8 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -17483,53 +42454,80 @@ m_A2 += gt[2]; m_A2 += gt[3]; m_A2 += gt[4]; - m_A3 += go[2]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[2]; + m_A3 += go[3]; + m_A3 += go[4]; double RHS1 = Idr[2]; RHS1 += Idr[3]; RHS1 += Idr[4]; - RHS1 -= go[3] * *cnV[3]; - RHS1 -= go[4] * *cnV[4]; - m_A5 += gt[5]; - m_A5 += gt[6]; - m_A5 += gt[7]; - m_A6 += go[5]; - m_A4 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 -= go[7] * *cnV[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[7]; m_A7 += go[8]; - m_A8 += go[9]; - double RHS3 = Idr[8]; - RHS3 += Idr[9]; + m_A5 += go[9]; + m_A5 += go[10]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A11 += gt[12]; + m_A11 += gt[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A10 += go[12]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[16] * *cnV[16]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A5 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_3 = -f0 * m_A8; + m_A11 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + m_A7 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A6 * f2_3; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A7 * f2_3; RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + V[3] = RHS3 / m_A11; double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A7 * V[3]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_8046625a0fe0959_21_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// rebound +static void nl_gcr_ae15f7f8a55fc96_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -17541,146 +42539,55 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; m_A1 += go[0]; - m_A2 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - m_A3 += gt[7]; - m_A3 += gt[8]; - m_A3 += gt[9]; - m_A5 += go[7]; - m_A4 += go[8]; - double RHS1 = Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 -= go[9] * *cnV[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[10]; - m_A8 += go[11]; - double RHS2 = Idr[10]; - RHS2 += Idr[11]; - m_A10 += gt[12]; - m_A10 += gt[13]; - m_A10 += gt[14]; - m_A9 += go[12]; - double RHS3 = Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 -= go[13] * *cnV[13]; - RHS3 -= go[14] * *cnV[14]; - m_A14 += gt[15]; - m_A14 += gt[16]; - m_A14 += gt[17]; - m_A14 += gt[18]; - m_A14 += gt[19]; - m_A14 += gt[20]; - m_A12 += go[15]; - m_A15 += go[16]; - m_A13 += go[17]; - double RHS4 = Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 -= go[18] * *cnV[18]; - RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; - m_A20 += gt[21]; - m_A20 += gt[22]; - m_A20 += gt[23]; - m_A17 += go[21]; - m_A16 += go[22]; - m_A19 += go[23]; - double RHS5 = Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A12; - m_A13 += m_A1 * f0_4; - m_A14 += m_A2 * f0_4; - RHS4 += f0_4 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_4 = -f1 * m_A13; - m_A14 += m_A4 * f1_4; - m_A15 += m_A5 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A16; - m_A19 += m_A4 * f1_5; - m_A20 += m_A5 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A9; - m_A10 += m_A7 * f2_3; - m_A11 += m_A8 * f2_3; - RHS3 += f2_3 * RHS2; - const double f2_5 = -f2 * m_A17; - m_A18 += m_A7 * f2_5; - m_A20 += m_A8 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_5 = -f3 * m_A18; - m_A20 += m_A11 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A14; - const double f4_5 = -f4 * m_A19; - m_A20 += m_A15 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A20; - double tmp4 = 0.0; - tmp4 += m_A15 * V[5]; - V[4] = (RHS4 - tmp4) / m_A14; - double tmp3 = 0.0; - tmp3 += m_A11 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; - double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - tmp2 += m_A8 * V[5]; - V[2] = (RHS2 - tmp2) / m_A6; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A5 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; double tmp1 = 0.0; - tmp1 += m_A4 * V[4]; - tmp1 += m_A5 * V[5]; - V[1] = (RHS1 - tmp1) / m_A3; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[1]; - tmp0 += m_A2 * V[4]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// mario -static void nl_gcr_80b4b1e5cc58d303_29_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// armora +static void nl_gcr_afcde432efdafb81_56_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -17714,6 +42621,33 @@ double m_A26(0.0); double m_A27(0.0); double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -17744,160 +42678,321 @@ m_A6 += gt[9]; m_A6 += gt[10]; m_A6 += gt[11]; - m_A6 += gt[12]; - m_A8 += go[9]; - m_A7 += go[10]; - m_A7 += go[11]; + m_A7 += go[9]; double RHS3 = Idr[9]; RHS3 += Idr[10]; RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 -= go[12] * *cnV[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A9 += gt[15]; - m_A10 += go[13]; - double RHS4 = Idr[13]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; RHS4 += Idr[14]; RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[13] * *cnV[13]; RHS4 -= go[14] * *cnV[14]; RHS4 -= go[15] * *cnV[15]; - m_A11 += gt[16]; - m_A11 += gt[17]; - m_A12 += go[16]; - double RHS5 = Idr[16]; - RHS5 += Idr[17]; - RHS5 -= go[17] * *cnV[17]; - m_A14 += gt[18]; - m_A14 += gt[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A14 += gt[22]; - m_A14 += gt[23]; - m_A14 += gt[24]; - m_A16 += go[18]; - m_A16 += go[19]; - m_A13 += go[20]; - m_A13 += go[21]; - m_A15 += go[22]; - double RHS6 = Idr[18]; - RHS6 += Idr[19]; - RHS6 += Idr[20]; - RHS6 += Idr[21]; - RHS6 += Idr[22]; - RHS6 += Idr[23]; - RHS6 += Idr[24]; - RHS6 -= go[23] * *cnV[23]; - RHS6 -= go[24] * *cnV[24]; - m_A22 += gt[25]; - m_A22 += gt[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A22 += gt[30]; - m_A20 += go[25]; - m_A21 += go[26]; - m_A19 += go[27]; - m_A18 += go[28]; - m_A17 += go[29]; - double RHS7 = Idr[25]; - RHS7 += Idr[26]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A14 += go[24]; + m_A13 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A17 += go[26]; + m_A16 += go[27]; + double RHS7 = Idr[26]; RHS7 += Idr[27]; - RHS7 += Idr[28]; - RHS7 += Idr[29]; - RHS7 += Idr[30]; - RHS7 -= go[30] * *cnV[30]; - m_A28 += gt[31]; - m_A28 += gt[32]; - m_A28 += gt[33]; - m_A28 += gt[34]; - m_A28 += gt[35]; - m_A28 += gt[36]; - m_A25 += go[31]; - m_A24 += go[32]; - m_A26 += go[33]; - m_A26 += go[34]; - double RHS8 = Idr[31]; - RHS8 += Idr[32]; - RHS8 += Idr[33]; - RHS8 += Idr[34]; - RHS8 += Idr[35]; - RHS8 += Idr[36]; - RHS8 -= go[35] * *cnV[35]; - RHS8 -= go[36] * *cnV[36]; + m_A18 += gt[28]; + m_A18 += gt[29]; + m_A20 += go[28]; + m_A19 += go[29]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + m_A21 += gt[30]; + m_A21 += gt[31]; + m_A21 += gt[32]; + m_A21 += gt[33]; + m_A21 += gt[34]; + m_A21 += gt[35]; + m_A21 += gt[36]; + m_A22 += go[30]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 -= go[31] * *cnV[31]; + RHS9 -= go[32] * *cnV[32]; + RHS9 -= go[33] * *cnV[33]; + RHS9 -= go[34] * *cnV[34]; + RHS9 -= go[35] * *cnV[35]; + RHS9 -= go[36] * *cnV[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A25 += gt[39]; + m_A24 += go[37]; + m_A23 += go[38]; + double RHS10 = Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 -= go[39] * *cnV[39]; + m_A28 += gt[40]; + m_A28 += gt[41]; + m_A28 += gt[42]; + m_A28 += gt[43]; + m_A28 += gt[44]; + m_A28 += gt[45]; + m_A28 += gt[46]; + m_A29 += go[40]; + m_A27 += go[41]; + double RHS11 = Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 += Idr[46]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + RHS11 -= go[44] * *cnV[44]; + RHS11 -= go[45] * *cnV[45]; + RHS11 -= go[46] * *cnV[46]; + m_A31 += gt[47]; + m_A31 += gt[48]; + m_A32 += go[47]; + m_A30 += go[48]; + double RHS12 = Idr[47]; + RHS12 += Idr[48]; + m_A37 += gt[49]; + m_A37 += gt[50]; + m_A37 += gt[51]; + m_A37 += gt[52]; + m_A37 += gt[53]; + m_A36 += go[49]; + m_A35 += go[50]; + m_A34 += go[51]; + m_A33 += go[52]; + double RHS13 = Idr[49]; + RHS13 += Idr[50]; + RHS13 += Idr[51]; + RHS13 += Idr[52]; + RHS13 += Idr[53]; + RHS13 -= go[53] * *cnV[53]; + m_A42 += gt[54]; + m_A42 += gt[55]; + m_A42 += gt[56]; + m_A42 += gt[57]; + m_A42 += gt[58]; + m_A41 += go[54]; + m_A40 += go[55]; + m_A39 += go[56]; + double RHS14 = Idr[54]; + RHS14 += Idr[55]; + RHS14 += Idr[56]; + RHS14 += Idr[57]; + RHS14 += Idr[58]; + RHS14 -= go[57] * *cnV[57]; + RHS14 -= go[58] * *cnV[58]; + m_A45 += gt[59]; + m_A45 += gt[60]; + m_A45 += gt[61]; + m_A45 += gt[62]; + m_A44 += go[59]; + m_A46 += go[60]; + double RHS15 = Idr[59]; + RHS15 += Idr[60]; + RHS15 += Idr[61]; + RHS15 += Idr[62]; + RHS15 -= go[61] * *cnV[61]; + RHS15 -= go[62] * *cnV[62]; + m_A55 += gt[63]; + m_A55 += gt[64]; + m_A55 += gt[65]; + m_A55 += gt[66]; + m_A55 += gt[67]; + m_A55 += gt[68]; + m_A54 += go[63]; + m_A49 += go[64]; + m_A51 += go[65]; + m_A48 += go[66]; + m_A47 += go[67]; + double RHS16 = Idr[63]; + RHS16 += Idr[64]; + RHS16 += Idr[65]; + RHS16 += Idr[66]; + RHS16 += Idr[67]; + RHS16 += Idr[68]; + RHS16 -= go[68] * *cnV[68]; const double f0 = 1.0 / m_A0; - const double f0_7 = -f0 * m_A17; - m_A22 += m_A1 * f0_7; - RHS7 += f0_7 * RHS0; + const double f0_10 = -f0 * m_A23; + m_A25 += m_A1 * f0_10; + RHS10 += f0_10 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A18; - m_A22 += m_A3 * f1_7; - RHS7 += f1_7 * RHS1; + const double f1_13 = -f1 * m_A33; + m_A37 += m_A3 * f1_13; + RHS13 += f1_13 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_7 = -f2 * m_A19; - m_A22 += m_A5 * f2_7; - RHS7 += f2_7 * RHS2; + const double f2_13 = -f2 * m_A34; + m_A37 += m_A5 * f2_13; + RHS13 += f2_13 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A13; - m_A14 += m_A7 * f3_6; - m_A16 += m_A8 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_8 = -f3 * m_A24; - m_A26 += m_A7 * f3_8; - m_A28 += m_A8 * f3_8; - RHS8 += f3_8 * RHS3; - const double f4 = 1.0 / m_A9; - const double f4_8 = -f4 * m_A25; - m_A28 += m_A10 * f4_8; - RHS8 += f4_8 * RHS4; - const double f5 = 1.0 / m_A11; - const double f5_7 = -f5 * m_A20; - m_A22 += m_A12 * f5_7; - RHS7 += f5_7 * RHS5; - const double f6 = 1.0 / m_A14; - const double f6_7 = -f6 * m_A21; - m_A22 += m_A15 * f6_7; - m_A23 += m_A16 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A26; - m_A27 += m_A15 * f6_8; - m_A28 += m_A16 * f6_8; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A22; - const double f7_8 = -f7 * m_A27; - m_A28 += m_A23 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A28; + const double f3_13 = -f3 * m_A35; + m_A37 += m_A7 * f3_13; + RHS13 += f3_13 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_11 = -f4 * m_A27; + m_A29 += m_A9 * f4_11; + RHS11 += f4_11 * RHS4; + const double f4_14 = -f4 * m_A39; + m_A42 += m_A9 * f4_14; + RHS14 += f4_14 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_12 = -f5 * m_A30; + m_A31 += m_A11 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_10 = -f6 * m_A24; + m_A25 += m_A13 * f6_10; + m_A26 += m_A14 * f6_10; + RHS10 += f6_10 * RHS6; + const double f6_16 = -f6 * m_A47; + m_A50 += m_A13 * f6_16; + m_A55 += m_A14 * f6_16; + RHS16 += f6_16 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_13 = -f7 * m_A36; + m_A37 += m_A16 * f7_13; + m_A38 += m_A17 * f7_13; + RHS13 += f7_13 * RHS7; + const double f7_16 = -f7 * m_A48; + m_A52 += m_A16 * f7_16; + m_A55 += m_A17 * f7_16; + RHS16 += f7_16 * RHS7; + const double f8 = 1.0 / m_A18; + const double f8_14 = -f8 * m_A40; + m_A42 += m_A19 * f8_14; + m_A43 += m_A20 * f8_14; + RHS14 += f8_14 * RHS8; + const double f8_16 = -f8 * m_A49; + m_A53 += m_A19 * f8_16; + m_A55 += m_A20 * f8_16; + RHS16 += f8_16 * RHS8; + const double f9 = 1.0 / m_A21; + const double f9_15 = -f9 * m_A44; + m_A46 += m_A22 * f9_15; + RHS15 += f9_15 * RHS9; + const double f10 = 1.0 / m_A25; + const double f10_16 = -f10 * m_A50; + m_A55 += m_A26 * f10_16; + RHS16 += f10_16 * RHS10; + const double f11 = 1.0 / m_A28; + const double f11_14 = -f11 * m_A41; + m_A42 += m_A29 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A31; + const double f12_16 = -f12 * m_A51; + m_A55 += m_A32 * f12_16; + RHS16 += f12_16 * RHS12; + const double f13 = 1.0 / m_A37; + const double f13_16 = -f13 * m_A52; + m_A55 += m_A38 * f13_16; + RHS16 += f13_16 * RHS13; + const double f14 = 1.0 / m_A42; + const double f14_16 = -f14 * m_A53; + m_A55 += m_A43 * f14_16; + RHS16 += f14_16 * RHS14; + const double f15 = 1.0 / m_A45; + const double f15_16 = -f15 * m_A54; + m_A55 += m_A46 * f15_16; + RHS16 += f15_16 * RHS15; + V[16] = RHS16 / m_A55; + double tmp15 = 0.0; + tmp15 += m_A46 * V[16]; + V[15] = (RHS15 - tmp15) / m_A45; + double tmp14 = 0.0; + tmp14 += m_A43 * V[16]; + V[14] = (RHS14 - tmp14) / m_A42; + double tmp13 = 0.0; + tmp13 += m_A38 * V[16]; + V[13] = (RHS13 - tmp13) / m_A37; + double tmp12 = 0.0; + tmp12 += m_A32 * V[16]; + V[12] = (RHS12 - tmp12) / m_A31; + double tmp11 = 0.0; + tmp11 += m_A29 * V[14]; + V[11] = (RHS11 - tmp11) / m_A28; + double tmp10 = 0.0; + tmp10 += m_A26 * V[16]; + V[10] = (RHS10 - tmp10) / m_A25; + double tmp9 = 0.0; + tmp9 += m_A22 * V[16]; + V[9] = (RHS9 - tmp9) / m_A21; + double tmp8 = 0.0; + tmp8 += m_A19 * V[14]; + tmp8 += m_A20 * V[16]; + V[8] = (RHS8 - tmp8) / m_A18; double tmp7 = 0.0; - tmp7 += m_A23 * V[8]; - V[7] = (RHS7 - tmp7) / m_A22; + tmp7 += m_A16 * V[13]; + tmp7 += m_A17 * V[16]; + V[7] = (RHS7 - tmp7) / m_A15; double tmp6 = 0.0; - tmp6 += m_A15 * V[7]; - tmp6 += m_A16 * V[8]; - V[6] = (RHS6 - tmp6) / m_A14; + tmp6 += m_A13 * V[10]; + tmp6 += m_A14 * V[16]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A12 * V[7]; - V[5] = (RHS5 - tmp5) / m_A11; + tmp5 += m_A11 * V[12]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A10 * V[8]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A9 * V[14]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - tmp3 += m_A8 * V[8]; + tmp3 += m_A7 * V[13]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[7]; + tmp2 += m_A5 * V[13]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; + tmp1 += m_A3 * V[13]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[7]; + tmp0 += m_A1 * V[10]; V[0] = (RHS0 - tmp0) / m_A0; } -// sundance -static void nl_gcr_8446e63d7842f6a6_70_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// mario +static void nl_gcr_afce66fb47d3c5f3_62_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -17964,14 +43059,6 @@ double m_A59(0.0); double m_A60(0.0); double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -17980,428 +43067,361 @@ RHS0 -= go[1] * *cnV[1]; m_A2 += gt[2]; m_A2 += gt[3]; + m_A2 += gt[4]; m_A3 += go[2]; double RHS1 = Idr[2]; RHS1 += Idr[3]; + RHS1 += Idr[4]; RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; + RHS1 -= go[4] * *cnV[4]; m_A4 += gt[5]; - m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 -= go[5] * *cnV[5]; - m_A6 += gt[6]; + m_A4 += gt[6]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; m_A6 += gt[7]; m_A6 += gt[8]; - m_A7 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[7]; + double RHS3 = Idr[7]; RHS3 += Idr[8]; - RHS3 -= go[7] * *cnV[7]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; RHS3 -= go[8] * *cnV[8]; - m_A8 += gt[9]; - m_A8 += gt[10]; - m_A10 += go[9]; - m_A9 += go[10]; - double RHS4 = Idr[9]; - RHS4 += Idr[10]; - m_A11 += gt[11]; - m_A11 += gt[12]; - m_A11 += gt[13]; - m_A12 += go[11]; - m_A13 += go[12]; - double RHS5 = Idr[11]; - RHS5 += Idr[12]; - RHS5 += Idr[13]; - RHS5 -= go[13] * *cnV[13]; - m_A14 += gt[14]; - m_A14 += gt[15]; - m_A14 += gt[16]; - m_A14 += gt[17]; - m_A14 += gt[18]; - m_A14 += gt[19]; - m_A14 += gt[20]; - m_A15 += go[14]; - double RHS6 = Idr[14]; - RHS6 += Idr[15]; - RHS6 += Idr[16]; - RHS6 += Idr[17]; - RHS6 += Idr[18]; - RHS6 += Idr[19]; - RHS6 += Idr[20]; - RHS6 -= go[15] * *cnV[15]; - RHS6 -= go[16] * *cnV[16]; - RHS6 -= go[17] * *cnV[17]; - RHS6 -= go[18] * *cnV[18]; - RHS6 -= go[19] * *cnV[19]; - RHS6 -= go[20] * *cnV[20]; - m_A16 += gt[21]; - m_A16 += gt[22]; - m_A16 += gt[23]; - m_A16 += gt[24]; - m_A18 += go[21]; - m_A18 += go[22]; - m_A17 += go[23]; - double RHS7 = Idr[21]; - RHS7 += Idr[22]; - RHS7 += Idr[23]; - RHS7 += Idr[24]; - RHS7 -= go[24] * *cnV[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A21 += go[25]; - m_A20 += go[26]; - double RHS8 = Idr[25]; - RHS8 += Idr[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A24 += go[27]; - m_A23 += go[28]; - double RHS9 = Idr[27]; - RHS9 += Idr[28]; - RHS9 += Idr[29]; - RHS9 -= go[29] * *cnV[29]; - m_A27 += gt[30]; - m_A27 += gt[31]; - m_A26 += go[30]; - m_A25 += go[31]; - double RHS10 = Idr[30]; - RHS10 += Idr[31]; - m_A31 += gt[32]; - m_A31 += gt[33]; - m_A31 += gt[34]; - m_A32 += go[32]; - m_A30 += go[33]; - double RHS11 = Idr[32]; - RHS11 += Idr[33]; - RHS11 += Idr[34]; - RHS11 -= go[34] * *cnV[34]; - m_A35 += gt[35]; - m_A35 += gt[36]; - m_A35 += gt[37]; - m_A34 += go[35]; - m_A33 += go[36]; - double RHS12 = Idr[35]; - RHS12 += Idr[36]; - RHS12 += Idr[37]; - RHS12 -= go[37] * *cnV[37]; - m_A40 += gt[38]; - m_A40 += gt[39]; - m_A40 += gt[40]; - m_A40 += gt[41]; - m_A43 += go[38]; - m_A38 += go[39]; - m_A37 += go[40]; - double RHS13 = Idr[38]; - RHS13 += Idr[39]; - RHS13 += Idr[40]; - RHS13 += Idr[41]; - RHS13 -= go[41] * *cnV[41]; - m_A50 += gt[42]; - m_A50 += gt[43]; - m_A50 += gt[44]; - m_A50 += gt[45]; - m_A50 += gt[46]; - m_A50 += gt[47]; - m_A44 += go[42]; - m_A46 += go[43]; - m_A45 += go[44]; - m_A45 += go[45]; - double RHS14 = Idr[42]; - RHS14 += Idr[43]; - RHS14 += Idr[44]; - RHS14 += Idr[45]; - RHS14 += Idr[46]; - RHS14 += Idr[47]; - RHS14 -= go[46] * *cnV[46]; - RHS14 -= go[47] * *cnV[47]; - m_A55 += gt[48]; - m_A55 += gt[49]; - m_A55 += gt[50]; - m_A54 += go[48]; - m_A53 += go[49]; - double RHS15 = Idr[48]; - RHS15 += Idr[49]; - RHS15 += Idr[50]; - RHS15 -= go[50] * *cnV[50]; - m_A62 += gt[51]; - m_A62 += gt[52]; - m_A62 += gt[53]; - m_A62 += gt[54]; - m_A57 += go[51]; - m_A58 += go[52]; - m_A59 += go[53]; - double RHS16 = Idr[51]; - RHS16 += Idr[52]; - RHS16 += Idr[53]; - RHS16 += Idr[54]; - RHS16 -= go[54] * *cnV[54]; - m_A69 += gt[55]; - m_A69 += gt[56]; - m_A64 += go[55]; - m_A65 += go[56]; - double RHS17 = Idr[55]; - RHS17 += Idr[56]; + RHS3 -= go[9] * *cnV[9]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A9 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[15] * *cnV[15]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A12 += go[21]; + m_A11 += go[22]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A13 += gt[25]; + m_A14 += go[23]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[26]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A17 += gt[30]; + m_A17 += gt[31]; + m_A18 += go[28]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A19 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[33] * *cnV[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A22 += gt[37]; + m_A21 += go[34]; + m_A23 += go[35]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 -= go[36] * *cnV[36]; + RHS10 -= go[37] * *cnV[37]; + m_A27 += gt[38]; + m_A27 += gt[39]; + m_A27 += gt[40]; + m_A27 += gt[41]; + m_A27 += gt[42]; + m_A24 += go[38]; + m_A25 += go[39]; + m_A28 += go[40]; + double RHS11 = Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + m_A32 += gt[43]; + m_A32 += gt[44]; + m_A31 += go[43]; + m_A30 += go[44]; + double RHS12 = Idr[43]; + RHS12 += Idr[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A34 += gt[49]; + m_A34 += gt[50]; + m_A33 += go[45]; + m_A37 += go[46]; + m_A36 += go[47]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 += Idr[48]; + RHS13 += Idr[49]; + RHS13 += Idr[50]; + RHS13 -= go[48] * *cnV[48]; + RHS13 -= go[49] * *cnV[49]; + RHS13 -= go[50] * *cnV[50]; + m_A39 += gt[51]; + m_A39 += gt[52]; + m_A39 += gt[53]; + m_A39 += gt[54]; + m_A40 += go[51]; + m_A38 += go[52]; + double RHS14 = Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 -= go[53] * *cnV[53]; + RHS14 -= go[54] * *cnV[54]; + m_A46 += gt[55]; + m_A46 += gt[56]; + m_A46 += gt[57]; + m_A46 += gt[58]; + m_A46 += gt[59]; + m_A44 += go[55]; + m_A45 += go[56]; + m_A43 += go[57]; + m_A42 += go[58]; + m_A41 += go[59]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 += Idr[59]; + m_A53 += gt[60]; + m_A53 += gt[61]; + m_A53 += gt[62]; + m_A53 += gt[63]; + m_A50 += go[60]; + m_A54 += go[61]; + m_A48 += go[62]; + double RHS16 = Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[63] * *cnV[63]; + m_A61 += gt[64]; + m_A61 += gt[65]; + m_A61 += gt[66]; + m_A61 += gt[67]; + m_A61 += gt[68]; + m_A57 += go[64]; + m_A58 += go[65]; + m_A60 += go[66]; + m_A55 += go[67]; + m_A56 += go[68]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + RHS17 += Idr[66]; + RHS17 += Idr[67]; + RHS17 += Idr[68]; const double f0 = 1.0 / m_A0; - const double f0_15 = -f0 * m_A53; - m_A55 += m_A1 * f0_15; + const double f0_9 = -f0 * m_A19; + m_A20 += m_A1 * f0_9; + RHS9 += f0_9 * RHS0; + const double f0_15 = -f0 * m_A41; + m_A44 += m_A1 * f0_15; RHS15 += f0_15 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_12 = -f1 * m_A33; - m_A35 += m_A3 * f1_12; - RHS12 += f1_12 * RHS1; + const double f1_10 = -f1 * m_A21; + m_A23 += m_A3 * f1_10; + RHS10 += f1_10 * RHS1; + const double f1_15 = -f1 * m_A42; + m_A46 += m_A3 * f1_15; + RHS15 += f1_15 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_11 = -f2 * m_A30; - m_A31 += m_A5 * f2_11; - RHS11 += f2_11 * RHS2; + const double f2_15 = -f2 * m_A43; + m_A46 += m_A5 * f2_15; + RHS15 += f2_15 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_16 = -f3 * m_A57; - m_A62 += m_A7 * f3_16; - RHS16 += f3_16 * RHS3; + const double f3_11 = -f3 * m_A24; + m_A26 += m_A7 * f3_11; + RHS11 += f3_11 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_13 = -f4 * m_A37; - m_A40 += m_A9 * f4_13; - m_A42 += m_A10 * f4_13; + const double f4_13 = -f4 * m_A33; + m_A35 += m_A9 * f4_13; RHS13 += f4_13 * RHS4; - const double f4_16 = -f4 * m_A58; - m_A60 += m_A9 * f4_16; - m_A62 += m_A10 * f4_16; - RHS16 += f4_16 * RHS4; - const double f5 = 1.0 / m_A11; - const double f5_10 = -f5 * m_A25; - m_A27 += m_A12 * f5_10; - m_A28 += m_A13 * f5_10; - RHS10 += f5_10 * RHS5; - const double f5_13 = -f5 * m_A38; - m_A39 += m_A12 * f5_13; - m_A40 += m_A13 * f5_13; - RHS13 += f5_13 * RHS5; - const double f6 = 1.0 / m_A14; - const double f6_14 = -f6 * m_A44; - m_A45 += m_A15 * f6_14; + const double f5 = 1.0 / m_A10; + const double f5_11 = -f5 * m_A25; + m_A27 += m_A11 * f5_11; + m_A29 += m_A12 * f5_11; + RHS11 += f5_11 * RHS5; + const double f5_16 = -f5 * m_A48; + m_A49 += m_A11 * f5_16; + m_A53 += m_A12 * f5_16; + RHS16 += f5_16 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_14 = -f6 * m_A38; + m_A40 += m_A14 * f6_14; RHS14 += f6_14 * RHS6; - const double f7 = 1.0 / m_A16; - const double f7_10 = -f7 * m_A26; - m_A27 += m_A17 * f7_10; - m_A29 += m_A18 * f7_10; - RHS10 += f7_10 * RHS7; - const double f7_14 = -f7 * m_A45; - m_A47 += m_A17 * f7_14; - m_A50 += m_A18 * f7_14; - RHS14 += f7_14 * RHS7; - const double f8 = 1.0 / m_A19; - const double f8_12 = -f8 * m_A34; - m_A35 += m_A20 * f8_12; - m_A36 += m_A21 * f8_12; + const double f6_17 = -f6 * m_A55; + m_A61 += m_A14 * f6_17; + RHS17 += f6_17 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_12 = -f7 * m_A30; + m_A32 += m_A16 * f7_12; + RHS12 += f7_12 * RHS7; + const double f7_17 = -f7 * m_A56; + m_A57 += m_A16 * f7_17; + RHS17 += f7_17 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_12 = -f8 * m_A31; + m_A32 += m_A18 * f8_12; RHS12 += f8_12 * RHS8; - const double f8_14 = -f8 * m_A46; - m_A48 += m_A20 * f8_14; - m_A50 += m_A21 * f8_14; - RHS14 += f8_14 * RHS8; - const double f9 = 1.0 / m_A22; - const double f9_15 = -f9 * m_A54; - m_A55 += m_A23 * f9_15; - m_A56 += m_A24 * f9_15; + const double f9 = 1.0 / m_A20; + const double f9_15 = -f9 * m_A44; RHS15 += f9_15 * RHS9; - const double f9_17 = -f9 * m_A64; - m_A67 += m_A23 * f9_17; - m_A69 += m_A24 * f9_17; - RHS17 += f9_17 * RHS9; - const double f10 = 1.0 / m_A27; - const double f10_13 = -f10 * m_A39; - m_A40 += m_A28 * f10_13; - m_A41 += m_A29 * f10_13; - RHS13 += f10_13 * RHS10; - const double f10_14 = -f10 * m_A47; - m_A49 += m_A28 * f10_14; - m_A50 += m_A29 * f10_14; - RHS14 += f10_14 * RHS10; - const double f11 = 1.0 / m_A31; - const double f11_16 = -f11 * m_A59; - m_A62 += m_A32 * f11_16; + const double f10 = 1.0 / m_A22; + const double f10_11 = -f10 * m_A26; + m_A28 += m_A23 * f10_11; + RHS11 += f10_11 * RHS10; + const double f11 = 1.0 / m_A27; + const double f11_15 = -f11 * m_A45; + m_A46 += m_A28 * f11_15; + m_A47 += m_A29 * f11_15; + RHS15 += f11_15 * RHS11; + const double f11_16 = -f11 * m_A49; + m_A52 += m_A28 * f11_16; + m_A53 += m_A29 * f11_16; RHS16 += f11_16 * RHS11; - const double f12 = 1.0 / m_A35; - const double f12_14 = -f12 * m_A48; - m_A50 += m_A36 * f12_14; - RHS14 += f12_14 * RHS12; - const double f13 = 1.0 / m_A40; - const double f13_14 = -f13 * m_A49; - m_A50 += m_A41 * f13_14; - m_A51 += m_A42 * f13_14; - m_A52 += m_A43 * f13_14; - RHS14 += f13_14 * RHS13; - const double f13_16 = -f13 * m_A60; - m_A61 += m_A41 * f13_16; - m_A62 += m_A42 * f13_16; - m_A63 += m_A43 * f13_16; + const double f12 = 1.0 / m_A32; + const double f12_17 = -f12 * m_A57; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A34; + const double f13_16 = -f13 * m_A50; + m_A51 += m_A35 * f13_16; + m_A53 += m_A36 * f13_16; + m_A54 += m_A37 * f13_16; RHS16 += f13_16 * RHS13; - const double f13_17 = -f13 * m_A65; - m_A66 += m_A41 * f13_17; - m_A68 += m_A42 * f13_17; - m_A69 += m_A43 * f13_17; + const double f13_17 = -f13 * m_A58; + m_A59 += m_A35 * f13_17; + m_A60 += m_A36 * f13_17; + m_A61 += m_A37 * f13_17; RHS17 += f13_17 * RHS13; - const double f14 = 1.0 / m_A50; - const double f14_16 = -f14 * m_A61; - m_A62 += m_A51 * f14_16; - m_A63 += m_A52 * f14_16; + const double f14 = 1.0 / m_A39; + const double f14_16 = -f14 * m_A51; + m_A54 += m_A40 * f14_16; RHS16 += f14_16 * RHS14; - const double f14_17 = -f14 * m_A66; - m_A68 += m_A51 * f14_17; - m_A69 += m_A52 * f14_17; + const double f14_17 = -f14 * m_A59; + m_A61 += m_A40 * f14_17; RHS17 += f14_17 * RHS14; - const double f15 = 1.0 / m_A55; - const double f15_17 = -f15 * m_A67; - m_A69 += m_A56 * f15_17; - RHS17 += f15_17 * RHS15; - const double f16 = 1.0 / m_A62; - const double f16_17 = -f16 * m_A68; - m_A69 += m_A63 * f16_17; + const double f15 = 1.0 / m_A46; + const double f15_16 = -f15 * m_A52; + m_A53 += m_A47 * f15_16; + RHS16 += f15_16 * RHS15; + const double f16 = 1.0 / m_A53; + const double f16_17 = -f16 * m_A60; + m_A61 += m_A54 * f16_17; RHS17 += f16_17 * RHS16; - V[17] = RHS17 / m_A69; + V[17] = RHS17 / m_A61; double tmp16 = 0.0; - tmp16 += m_A63 * V[17]; - V[16] = (RHS16 - tmp16) / m_A62; + tmp16 += m_A54 * V[17]; + V[16] = (RHS16 - tmp16) / m_A53; double tmp15 = 0.0; - tmp15 += m_A56 * V[17]; - V[15] = (RHS15 - tmp15) / m_A55; - double tmp14 = 0.0; - tmp14 += m_A51 * V[16]; - tmp14 += m_A52 * V[17]; - V[14] = (RHS14 - tmp14) / m_A50; + tmp15 += m_A47 * V[16]; + V[15] = (RHS15 - tmp15) / m_A46; + double tmp14 = 0.0; + tmp14 += m_A40 * V[17]; + V[14] = (RHS14 - tmp14) / m_A39; double tmp13 = 0.0; - tmp13 += m_A41 * V[14]; - tmp13 += m_A42 * V[16]; - tmp13 += m_A43 * V[17]; - V[13] = (RHS13 - tmp13) / m_A40; + tmp13 += m_A35 * V[14]; + tmp13 += m_A36 * V[16]; + tmp13 += m_A37 * V[17]; + V[13] = (RHS13 - tmp13) / m_A34; double tmp12 = 0.0; - tmp12 += m_A36 * V[14]; - V[12] = (RHS12 - tmp12) / m_A35; + V[12] = (RHS12 - tmp12) / m_A32; double tmp11 = 0.0; - tmp11 += m_A32 * V[16]; - V[11] = (RHS11 - tmp11) / m_A31; + tmp11 += m_A28 * V[15]; + tmp11 += m_A29 * V[16]; + V[11] = (RHS11 - tmp11) / m_A27; double tmp10 = 0.0; - tmp10 += m_A28 * V[13]; - tmp10 += m_A29 * V[14]; - V[10] = (RHS10 - tmp10) / m_A27; + tmp10 += m_A23 * V[15]; + V[10] = (RHS10 - tmp10) / m_A22; double tmp9 = 0.0; - tmp9 += m_A23 * V[15]; - tmp9 += m_A24 * V[17]; - V[9] = (RHS9 - tmp9) / m_A22; + V[9] = (RHS9 - tmp9) / m_A20; double tmp8 = 0.0; - tmp8 += m_A20 * V[12]; - tmp8 += m_A21 * V[14]; - V[8] = (RHS8 - tmp8) / m_A19; + tmp8 += m_A18 * V[12]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A17 * V[10]; - tmp7 += m_A18 * V[14]; - V[7] = (RHS7 - tmp7) / m_A16; + tmp7 += m_A16 * V[12]; + V[7] = (RHS7 - tmp7) / m_A15; double tmp6 = 0.0; - tmp6 += m_A15 * V[7]; - V[6] = (RHS6 - tmp6) / m_A14; + tmp6 += m_A14 * V[17]; + V[6] = (RHS6 - tmp6) / m_A13; double tmp5 = 0.0; - tmp5 += m_A12 * V[10]; - tmp5 += m_A13 * V[13]; - V[5] = (RHS5 - tmp5) / m_A11; + tmp5 += m_A11 * V[11]; + tmp5 += m_A12 * V[16]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[13]; - tmp4 += m_A10 * V[16]; + tmp4 += m_A9 * V[14]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[16]; + tmp3 += m_A7 * V[10]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[11]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[12]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[15]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// dpatrol -static void nl_gcr_85652d3e3ada285a_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A9 += gt[9]; - m_A9 += gt[10]; - m_A9 += gt[11]; - m_A9 += gt[12]; - m_A8 += go[9]; - m_A7 += go[10]; - m_A6 += go[11]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 -= go[12] * *cnV[12]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A6; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A5 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; - double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; + tmp2 += m_A5 * V[15]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[15]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[9]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_861d39f81d29d51_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// spacewar +static void nl_gcr_b09deef9a25aecaf_24_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -18418,65 +43438,144 @@ double m_A9(0.0); double m_A10(0.0); double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[2]; m_A2 += gt[3]; - m_A2 += gt[4]; - m_A4 += go[3]; - m_A3 += go[4]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - m_A7 += gt[5]; - m_A7 += gt[6]; - m_A6 += go[5]; - m_A5 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - m_A11 += gt[7]; - m_A11 += gt[8]; - m_A9 += go[7]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - RHS3 -= go[8] * *cnV[8]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A12 += go[10]; + m_A11 += go[11]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 += Idr[12]; + RHS5 -= go[12] * *cnV[12]; + m_A19 += gt[13]; + m_A19 += gt[14]; + m_A19 += gt[15]; + m_A19 += gt[16]; + m_A19 += gt[17]; + m_A19 += gt[18]; + m_A17 += go[13]; + m_A16 += go[14]; + m_A15 += go[15]; + m_A14 += go[16]; + m_A13 += go[17]; + m_A18 += go[18]; + double RHS6 = Idr[13]; + RHS6 += Idr[14]; + RHS6 += Idr[15]; + RHS6 += Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + m_A23 += gt[19]; + m_A23 += gt[20]; + m_A23 += gt[21]; + m_A21 += go[19]; + double RHS7 = Idr[19]; + RHS7 += Idr[20]; + RHS7 += Idr[21]; + RHS7 -= go[20] * *cnV[20]; + RHS7 -= go[21] * *cnV[21]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A7 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_6 = -f0 * m_A13; + m_A19 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A6; - m_A7 += m_A3 * f1_2; - m_A8 += m_A4 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A7; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A8 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; + const double f1_6 = -f1 * m_A14; + m_A19 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A15; + m_A19 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A16; + m_A19 += m_A7 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_6 = -f4 * m_A17; + m_A19 += m_A9 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_6 = -f5 * m_A18; + m_A19 += m_A11 * f5_6; + m_A20 += m_A12 * f5_6; + RHS6 += f5_6 * RHS5; + const double f5_7 = -f5 * m_A21; + m_A22 += m_A11 * f5_7; + m_A23 += m_A12 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_7 = -f6 * m_A22; + m_A23 += m_A20 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A23; + double tmp6 = 0.0; + tmp6 += m_A20 * V[7]; + V[6] = (RHS6 - tmp6) / m_A19; + double tmp5 = 0.0; + tmp5 += m_A11 * V[6]; + tmp5 += m_A12 * V[7]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[6]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A8 * V[3]; - V[2] = (RHS2 - tmp2) / m_A7; + tmp2 += m_A5 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[3]; + tmp1 += m_A3 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[6]; V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_864a61c57bac9c38_123_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// spacfury +static void nl_gcr_b1db23287df1da54_175_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -18604,6 +43703,58 @@ double m_A120(0.0); double m_A121(0.0); double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -18615,18 +43766,18 @@ RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; - m_A3 += go[3]; + m_A4 += go[3]; + m_A3 += go[4]; double RHS1 = Idr[3]; RHS1 += Idr[4]; - RHS1 -= go[4] * *cnV[4]; - m_A4 += gt[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A5 += go[5]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A6 += go[5]; double RHS2 = Idr[5]; RHS2 += Idr[6]; RHS2 += Idr[7]; @@ -18640,665 +43791,1681 @@ RHS2 -= go[9] * *cnV[9]; RHS2 -= go[10] * *cnV[10]; RHS2 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A7 += go[12]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A7 += gt[14]; + m_A7 += gt[15]; + m_A9 += go[12]; + m_A8 += go[13]; + m_A8 += go[14]; double RHS3 = Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; - RHS3 -= go[13] * *cnV[13]; - RHS3 -= go[14] * *cnV[14]; - m_A8 += gt[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A8 += gt[19]; - m_A8 += gt[20]; - m_A8 += gt[21]; - m_A9 += go[15]; - double RHS4 = Idr[15]; - RHS4 += Idr[16]; + RHS3 += Idr[15]; + RHS3 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A15 += go[16]; + m_A11 += go[17]; + m_A14 += go[18]; + m_A13 += go[19]; + m_A12 += go[20]; + double RHS4 = Idr[16]; RHS4 += Idr[17]; RHS4 += Idr[18]; RHS4 += Idr[19]; RHS4 += Idr[20]; RHS4 += Idr[21]; - RHS4 -= go[16] * *cnV[16]; - RHS4 -= go[17] * *cnV[17]; - RHS4 -= go[18] * *cnV[18]; - RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; RHS4 -= go[21] * *cnV[21]; - m_A10 += gt[22]; - m_A10 += gt[23]; - m_A11 += go[22]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A17 += go[22]; + m_A17 += go[23]; + m_A18 += go[24]; + m_A19 += go[25]; + m_A19 += go[26]; double RHS5 = Idr[22]; RHS5 += Idr[23]; - RHS5 -= go[23] * *cnV[23]; - m_A12 += gt[24]; - m_A12 += gt[25]; - m_A14 += go[24]; - m_A13 += go[25]; - double RHS6 = Idr[24]; - RHS6 += Idr[25]; - m_A15 += gt[26]; - m_A15 += gt[27]; - m_A16 += go[26]; - double RHS7 = Idr[26]; - RHS7 += Idr[27]; - RHS7 -= go[27] * *cnV[27]; - m_A17 += gt[28]; - m_A17 += gt[29]; - m_A18 += go[28]; - double RHS8 = Idr[28]; - RHS8 += Idr[29]; - RHS8 -= go[29] * *cnV[29]; - m_A19 += gt[30]; - m_A19 += gt[31]; - m_A19 += gt[32]; - m_A19 += gt[33]; - m_A19 += gt[34]; - m_A19 += gt[35]; - m_A19 += gt[36]; - m_A20 += go[30]; - double RHS9 = Idr[30]; - RHS9 += Idr[31]; - RHS9 += Idr[32]; - RHS9 += Idr[33]; - RHS9 += Idr[34]; - RHS9 += Idr[35]; - RHS9 += Idr[36]; - RHS9 -= go[31] * *cnV[31]; - RHS9 -= go[32] * *cnV[32]; - RHS9 -= go[33] * *cnV[33]; - RHS9 -= go[34] * *cnV[34]; - RHS9 -= go[35] * *cnV[35]; - RHS9 -= go[36] * *cnV[36]; - m_A21 += gt[37]; - m_A21 += gt[38]; - m_A21 += gt[39]; - m_A22 += go[37]; - double RHS10 = Idr[37]; - RHS10 += Idr[38]; - RHS10 += Idr[39]; - RHS10 -= go[38] * *cnV[38]; - RHS10 -= go[39] * *cnV[39]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[27] * *cnV[27]; + m_A20 += gt[28]; + m_A20 += gt[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A20 += gt[34]; + m_A21 += go[28]; + m_A22 += go[29]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 += Idr[34]; + RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; + RHS6 -= go[32] * *cnV[32]; + RHS6 -= go[33] * *cnV[33]; + RHS6 -= go[34] * *cnV[34]; + m_A23 += gt[35]; + m_A23 += gt[36]; + m_A23 += gt[37]; + m_A23 += gt[38]; + m_A23 += gt[39]; m_A23 += gt[40]; - m_A23 += gt[41]; - m_A23 += gt[42]; - m_A23 += gt[43]; - m_A24 += go[40]; - double RHS11 = Idr[40]; - RHS11 += Idr[41]; - RHS11 += Idr[42]; - RHS11 += Idr[43]; - RHS11 -= go[41] * *cnV[41]; - RHS11 -= go[42] * *cnV[42]; - RHS11 -= go[43] * *cnV[43]; - m_A25 += gt[44]; - m_A25 += gt[45]; - m_A25 += gt[46]; - m_A25 += gt[47]; - m_A25 += gt[48]; - m_A25 += gt[49]; - m_A25 += gt[50]; - m_A26 += go[44]; - double RHS12 = Idr[44]; - RHS12 += Idr[45]; - RHS12 += Idr[46]; - RHS12 += Idr[47]; - RHS12 += Idr[48]; - RHS12 += Idr[49]; - RHS12 += Idr[50]; - RHS12 -= go[45] * *cnV[45]; - RHS12 -= go[46] * *cnV[46]; - RHS12 -= go[47] * *cnV[47]; - RHS12 -= go[48] * *cnV[48]; - RHS12 -= go[49] * *cnV[49]; - RHS12 -= go[50] * *cnV[50]; - m_A27 += gt[51]; - m_A27 += gt[52]; - m_A28 += go[51]; - double RHS13 = Idr[51]; - RHS13 += Idr[52]; - RHS13 -= go[52] * *cnV[52]; + m_A24 += go[35]; + m_A25 += go[36]; + m_A26 += go[37]; + double RHS7 = Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 += Idr[38]; + RHS7 += Idr[39]; + RHS7 += Idr[40]; + RHS7 -= go[38] * *cnV[38]; + RHS7 -= go[39] * *cnV[39]; + RHS7 -= go[40] * *cnV[40]; + m_A27 += gt[41]; + m_A27 += gt[42]; + m_A27 += gt[43]; + m_A27 += gt[44]; + m_A27 += gt[45]; + m_A27 += gt[46]; + m_A27 += gt[47]; + m_A28 += go[41]; + double RHS8 = Idr[41]; + RHS8 += Idr[42]; + RHS8 += Idr[43]; + RHS8 += Idr[44]; + RHS8 += Idr[45]; + RHS8 += Idr[46]; + RHS8 += Idr[47]; + RHS8 -= go[42] * *cnV[42]; + RHS8 -= go[43] * *cnV[43]; + RHS8 -= go[44] * *cnV[44]; + RHS8 -= go[45] * *cnV[45]; + RHS8 -= go[46] * *cnV[46]; + RHS8 -= go[47] * *cnV[47]; + m_A29 += gt[48]; + m_A29 += gt[49]; + m_A29 += gt[50]; + m_A29 += gt[51]; + m_A29 += gt[52]; m_A29 += gt[53]; - m_A29 += gt[54]; - m_A30 += go[53]; - double RHS14 = Idr[53]; - RHS14 += Idr[54]; - RHS14 -= go[54] * *cnV[54]; - m_A31 += gt[55]; - m_A31 += gt[56]; - m_A32 += go[55]; - double RHS15 = Idr[55]; - RHS15 += Idr[56]; - RHS15 -= go[56] * *cnV[56]; - m_A33 += gt[57]; - m_A33 += gt[58]; - m_A33 += gt[59]; - m_A33 += gt[60]; - m_A35 += go[57]; - m_A34 += go[58]; - double RHS16 = Idr[57]; - RHS16 += Idr[58]; - RHS16 += Idr[59]; - RHS16 += Idr[60]; - RHS16 -= go[59] * *cnV[59]; - RHS16 -= go[60] * *cnV[60]; - m_A36 += gt[61]; - m_A36 += gt[62]; - m_A36 += gt[63]; - m_A37 += go[61]; - double RHS17 = Idr[61]; - RHS17 += Idr[62]; - RHS17 += Idr[63]; - RHS17 -= go[62] * *cnV[62]; - RHS17 -= go[63] * *cnV[63]; - m_A38 += gt[64]; - m_A38 += gt[65]; - m_A39 += go[64]; - double RHS18 = Idr[64]; - RHS18 += Idr[65]; - RHS18 -= go[65] * *cnV[65]; + m_A34 += go[48]; + m_A33 += go[49]; + m_A32 += go[50]; + m_A31 += go[51]; + m_A30 += go[52]; + double RHS9 = Idr[48]; + RHS9 += Idr[49]; + RHS9 += Idr[50]; + RHS9 += Idr[51]; + RHS9 += Idr[52]; + RHS9 += Idr[53]; + RHS9 -= go[53] * *cnV[53]; + m_A35 += gt[54]; + m_A35 += gt[55]; + m_A35 += gt[56]; + m_A36 += go[54]; + double RHS10 = Idr[54]; + RHS10 += Idr[55]; + RHS10 += Idr[56]; + RHS10 -= go[55] * *cnV[55]; + RHS10 -= go[56] * *cnV[56]; + m_A37 += gt[57]; + m_A37 += gt[58]; + m_A37 += gt[59]; + m_A37 += gt[60]; + m_A37 += gt[61]; + m_A37 += gt[62]; + m_A37 += gt[63]; + m_A38 += go[57]; + m_A39 += go[58]; + double RHS11 = Idr[57]; + RHS11 += Idr[58]; + RHS11 += Idr[59]; + RHS11 += Idr[60]; + RHS11 += Idr[61]; + RHS11 += Idr[62]; + RHS11 += Idr[63]; + RHS11 -= go[59] * *cnV[59]; + RHS11 -= go[60] * *cnV[60]; + RHS11 -= go[61] * *cnV[61]; + RHS11 -= go[62] * *cnV[62]; + RHS11 -= go[63] * *cnV[63]; + m_A40 += gt[64]; + m_A40 += gt[65]; m_A40 += gt[66]; m_A40 += gt[67]; + m_A40 += gt[68]; + m_A40 += gt[69]; + m_A43 += go[64]; + m_A43 += go[65]; m_A41 += go[66]; - double RHS19 = Idr[66]; - RHS19 += Idr[67]; - RHS19 -= go[67] * *cnV[67]; - m_A43 += gt[68]; - m_A43 += gt[69]; - m_A43 += gt[70]; - m_A43 += gt[71]; + m_A41 += go[67]; m_A42 += go[68]; - double RHS20 = Idr[68]; - RHS20 += Idr[69]; - RHS20 += Idr[70]; - RHS20 += Idr[71]; - RHS20 -= go[69] * *cnV[69]; - RHS20 -= go[70] * *cnV[70]; - RHS20 -= go[71] * *cnV[71]; + double RHS12 = Idr[64]; + RHS12 += Idr[65]; + RHS12 += Idr[66]; + RHS12 += Idr[67]; + RHS12 += Idr[68]; + RHS12 += Idr[69]; + RHS12 -= go[69] * *cnV[69]; + m_A44 += gt[70]; + m_A44 += gt[71]; + m_A46 += go[70]; + m_A45 += go[71]; + double RHS13 = Idr[70]; + RHS13 += Idr[71]; m_A47 += gt[72]; m_A47 += gt[73]; - m_A46 += go[72]; - m_A45 += go[73]; - double RHS21 = Idr[72]; - RHS21 += Idr[73]; - m_A51 += gt[74]; - m_A51 += gt[75]; + m_A47 += gt[74]; + m_A47 += gt[75]; + m_A47 += gt[76]; + m_A47 += gt[77]; + m_A48 += go[72]; + m_A50 += go[73]; m_A49 += go[74]; - double RHS22 = Idr[74]; - RHS22 += Idr[75]; - RHS22 -= go[75] * *cnV[75]; - m_A54 += gt[76]; - m_A54 += gt[77]; - m_A54 += gt[78]; - m_A53 += go[76]; - m_A52 += go[77]; - double RHS23 = Idr[76]; - RHS23 += Idr[77]; - RHS23 += Idr[78]; - RHS23 -= go[78] * *cnV[78]; - m_A56 += gt[79]; - m_A56 += gt[80]; - m_A56 += gt[81]; + double RHS14 = Idr[72]; + RHS14 += Idr[73]; + RHS14 += Idr[74]; + RHS14 += Idr[75]; + RHS14 += Idr[76]; + RHS14 += Idr[77]; + RHS14 -= go[75] * *cnV[75]; + RHS14 -= go[76] * *cnV[76]; + RHS14 -= go[77] * *cnV[77]; + m_A51 += gt[78]; + m_A51 += gt[79]; + m_A51 += gt[80]; + m_A51 += gt[81]; + m_A52 += go[78]; + m_A52 += go[79]; + m_A53 += go[80]; + double RHS15 = Idr[78]; + RHS15 += Idr[79]; + RHS15 += Idr[80]; + RHS15 += Idr[81]; + RHS15 -= go[81] * *cnV[81]; m_A56 += gt[82]; - m_A55 += go[79]; - m_A57 += go[80]; - double RHS24 = Idr[79]; - RHS24 += Idr[80]; - RHS24 += Idr[81]; - RHS24 += Idr[82]; - RHS24 -= go[81] * *cnV[81]; - RHS24 -= go[82] * *cnV[82]; - m_A59 += gt[83]; - m_A59 += gt[84]; - m_A59 += gt[85]; + m_A56 += gt[83]; + m_A56 += gt[84]; + m_A56 += gt[85]; + m_A55 += go[82]; + m_A54 += go[83]; + double RHS16 = Idr[82]; + RHS16 += Idr[83]; + RHS16 += Idr[84]; + RHS16 += Idr[85]; + RHS16 -= go[84] * *cnV[84]; + RHS16 -= go[85] * *cnV[85]; m_A59 += gt[86]; - m_A58 += go[83]; - m_A60 += go[84]; - double RHS25 = Idr[83]; - RHS25 += Idr[84]; - RHS25 += Idr[85]; - RHS25 += Idr[86]; - RHS25 -= go[85] * *cnV[85]; - RHS25 -= go[86] * *cnV[86]; - m_A62 += gt[87]; - m_A62 += gt[88]; - m_A63 += go[87]; - m_A61 += go[88]; - double RHS26 = Idr[87]; - RHS26 += Idr[88]; - m_A67 += gt[89]; - m_A67 += gt[90]; - m_A67 += gt[91]; - m_A67 += gt[92]; - m_A67 += gt[93]; - m_A67 += gt[94]; + m_A59 += gt[87]; + m_A59 += gt[88]; + m_A63 += go[86]; + m_A58 += go[87]; + double RHS17 = Idr[86]; + RHS17 += Idr[87]; + RHS17 += Idr[88]; + RHS17 -= go[88] * *cnV[88]; + m_A66 += gt[89]; + m_A66 += gt[90]; + m_A66 += gt[91]; + m_A66 += gt[92]; + m_A66 += gt[93]; m_A64 += go[89]; m_A65 += go[90]; - m_A69 += go[91]; - m_A68 += go[92]; - double RHS27 = Idr[89]; - RHS27 += Idr[90]; - RHS27 += Idr[91]; - RHS27 += Idr[92]; - RHS27 += Idr[93]; - RHS27 += Idr[94]; - RHS27 -= go[93] * *cnV[93]; - RHS27 -= go[94] * *cnV[94]; + double RHS18 = Idr[89]; + RHS18 += Idr[90]; + RHS18 += Idr[91]; + RHS18 += Idr[92]; + RHS18 += Idr[93]; + RHS18 -= go[91] * *cnV[91]; + RHS18 -= go[92] * *cnV[92]; + RHS18 -= go[93] * *cnV[93]; + m_A72 += gt[94]; m_A72 += gt[95]; m_A72 += gt[96]; m_A72 += gt[97]; - m_A72 += gt[98]; - m_A71 += go[95]; - m_A73 += go[96]; - double RHS28 = Idr[95]; - RHS28 += Idr[96]; - RHS28 += Idr[97]; - RHS28 += Idr[98]; - RHS28 -= go[97] * *cnV[97]; - RHS28 -= go[98] * *cnV[98]; - m_A76 += gt[99]; - m_A76 += gt[100]; - m_A76 += gt[101]; - m_A76 += gt[102]; - m_A77 += go[99]; - m_A78 += go[100]; - m_A74 += go[101]; - m_A75 += go[102]; - double RHS29 = Idr[99]; - RHS29 += Idr[100]; - RHS29 += Idr[101]; - RHS29 += Idr[102]; - m_A81 += gt[103]; - m_A81 += gt[104]; - m_A81 += gt[105]; - m_A80 += go[103]; - m_A79 += go[104]; - double RHS30 = Idr[103]; - RHS30 += Idr[104]; - RHS30 += Idr[105]; - RHS30 -= go[105] * *cnV[105]; - m_A84 += gt[106]; - m_A84 += gt[107]; - m_A82 += go[106]; - m_A83 += go[107]; - double RHS31 = Idr[106]; - RHS31 += Idr[107]; - m_A91 += gt[108]; - m_A91 += gt[109]; - m_A91 += gt[110]; - m_A91 += gt[111]; - m_A91 += gt[112]; - m_A86 += go[108]; - m_A90 += go[109]; - m_A88 += go[110]; - m_A85 += go[111]; - m_A87 += go[112]; - double RHS32 = Idr[108]; - RHS32 += Idr[109]; - RHS32 += Idr[110]; - RHS32 += Idr[111]; - RHS32 += Idr[112]; - m_A99 += gt[113]; - m_A99 += gt[114]; - m_A99 += gt[115]; - m_A99 += gt[116]; - m_A99 += gt[117]; - m_A96 += go[113]; + m_A70 += go[94]; + m_A69 += go[95]; + double RHS19 = Idr[94]; + RHS19 += Idr[95]; + RHS19 += Idr[96]; + RHS19 += Idr[97]; + RHS19 -= go[96] * *cnV[96]; + RHS19 -= go[97] * *cnV[97]; + m_A82 += gt[98]; + m_A82 += gt[99]; + m_A82 += gt[100]; + m_A82 += gt[101]; + m_A79 += go[98]; + m_A78 += go[99]; + double RHS20 = Idr[98]; + RHS20 += Idr[99]; + RHS20 += Idr[100]; + RHS20 += Idr[101]; + RHS20 -= go[100] * *cnV[100]; + RHS20 -= go[101] * *cnV[101]; + m_A92 += gt[102]; + m_A92 += gt[103]; + m_A92 += gt[104]; + m_A92 += gt[105]; + m_A88 += go[102]; + m_A87 += go[103]; + double RHS21 = Idr[102]; + RHS21 += Idr[103]; + RHS21 += Idr[104]; + RHS21 += Idr[105]; + RHS21 -= go[104] * *cnV[104]; + RHS21 -= go[105] * *cnV[105]; + m_A98 += gt[106]; + m_A98 += gt[107]; + m_A98 += gt[108]; + m_A98 += gt[109]; + m_A97 += go[106]; + m_A96 += go[107]; + double RHS22 = Idr[106]; + RHS22 += Idr[107]; + RHS22 += Idr[108]; + RHS22 += Idr[109]; + RHS22 -= go[108] * *cnV[108]; + RHS22 -= go[109] * *cnV[109]; + m_A103 += gt[110]; + m_A103 += gt[111]; + m_A103 += gt[112]; + m_A103 += gt[113]; + m_A103 += gt[114]; + m_A103 += gt[115]; + m_A103 += gt[116]; + m_A104 += go[110]; + m_A104 += go[111]; + m_A101 += go[112]; + m_A101 += go[113]; m_A100 += go[114]; - m_A97 += go[115]; - m_A94 += go[116]; - m_A95 += go[117]; - double RHS33 = Idr[113]; - RHS33 += Idr[114]; - RHS33 += Idr[115]; - RHS33 += Idr[116]; - RHS33 += Idr[117]; - m_A106 += gt[118]; - m_A106 += gt[119]; - m_A106 += gt[120]; - m_A106 += gt[121]; - m_A103 += go[118]; - m_A104 += go[119]; - m_A101 += go[120]; - m_A102 += go[121]; - double RHS34 = Idr[118]; - RHS34 += Idr[119]; - RHS34 += Idr[120]; - RHS34 += Idr[121]; - m_A111 += gt[122]; - m_A111 += gt[123]; - m_A111 += gt[124]; - m_A111 += gt[125]; - m_A108 += go[122]; - m_A109 += go[123]; - double RHS35 = Idr[122]; - RHS35 += Idr[123]; - RHS35 += Idr[124]; - RHS35 += Idr[125]; - RHS35 -= go[124] * *cnV[124]; - RHS35 -= go[125] * *cnV[125]; - m_A122 += gt[126]; - m_A122 += gt[127]; - m_A122 += gt[128]; - m_A122 += gt[129]; - m_A122 += gt[130]; - m_A122 += gt[131]; - m_A113 += go[126]; - m_A117 += go[127]; - m_A120 += go[128]; - m_A114 += go[129]; - double RHS36 = Idr[126]; - RHS36 += Idr[127]; - RHS36 += Idr[128]; - RHS36 += Idr[129]; - RHS36 += Idr[130]; - RHS36 += Idr[131]; - RHS36 -= go[130] * *cnV[130]; - RHS36 -= go[131] * *cnV[131]; + double RHS23 = Idr[110]; + RHS23 += Idr[111]; + RHS23 += Idr[112]; + RHS23 += Idr[113]; + RHS23 += Idr[114]; + RHS23 += Idr[115]; + RHS23 += Idr[116]; + RHS23 -= go[115] * *cnV[115]; + RHS23 -= go[116] * *cnV[116]; + m_A108 += gt[117]; + m_A108 += gt[118]; + m_A108 += gt[119]; + m_A108 += gt[120]; + m_A108 += gt[121]; + m_A108 += gt[122]; + m_A106 += go[117]; + m_A105 += go[118]; + m_A105 += go[119]; + m_A110 += go[120]; + double RHS24 = Idr[117]; + RHS24 += Idr[118]; + RHS24 += Idr[119]; + RHS24 += Idr[120]; + RHS24 += Idr[121]; + RHS24 += Idr[122]; + RHS24 -= go[121] * *cnV[121]; + RHS24 -= go[122] * *cnV[122]; + m_A115 += gt[123]; + m_A115 += gt[124]; + m_A115 += gt[125]; + m_A117 += go[123]; + m_A111 += go[124]; + double RHS25 = Idr[123]; + RHS25 += Idr[124]; + RHS25 += Idr[125]; + RHS25 -= go[125] * *cnV[125]; + m_A120 += gt[126]; + m_A120 += gt[127]; + m_A120 += gt[128]; + m_A120 += gt[129]; + m_A120 += gt[130]; + m_A118 += go[126]; + m_A119 += go[127]; + double RHS26 = Idr[126]; + RHS26 += Idr[127]; + RHS26 += Idr[128]; + RHS26 += Idr[129]; + RHS26 += Idr[130]; + RHS26 -= go[128] * *cnV[128]; + RHS26 -= go[129] * *cnV[129]; + RHS26 -= go[130] * *cnV[130]; + m_A126 += gt[131]; + m_A126 += gt[132]; + m_A126 += gt[133]; + m_A126 += gt[134]; + m_A126 += gt[135]; + m_A126 += gt[136]; + m_A124 += go[131]; + m_A128 += go[132]; + m_A123 += go[133]; + m_A123 += go[134]; + double RHS27 = Idr[131]; + RHS27 += Idr[132]; + RHS27 += Idr[133]; + RHS27 += Idr[134]; + RHS27 += Idr[135]; + RHS27 += Idr[136]; + RHS27 -= go[135] * *cnV[135]; + RHS27 -= go[136] * *cnV[136]; + m_A138 += gt[137]; + m_A138 += gt[138]; + m_A138 += gt[139]; + m_A138 += gt[140]; + m_A138 += gt[141]; + m_A138 += gt[142]; + m_A129 += go[137]; + m_A131 += go[138]; + m_A132 += go[139]; + m_A130 += go[140]; + double RHS28 = Idr[137]; + RHS28 += Idr[138]; + RHS28 += Idr[139]; + RHS28 += Idr[140]; + RHS28 += Idr[141]; + RHS28 += Idr[142]; + RHS28 -= go[141] * *cnV[141]; + RHS28 -= go[142] * *cnV[142]; + m_A148 += gt[143]; + m_A148 += gt[144]; + m_A148 += gt[145]; + m_A148 += gt[146]; + m_A148 += gt[147]; + m_A148 += gt[148]; + m_A148 += gt[149]; + m_A148 += gt[150]; + m_A148 += gt[151]; + m_A143 += go[143]; + m_A146 += go[144]; + m_A142 += go[145]; + m_A142 += go[146]; + m_A141 += go[147]; + m_A145 += go[148]; + m_A145 += go[149]; + double RHS29 = Idr[143]; + RHS29 += Idr[144]; + RHS29 += Idr[145]; + RHS29 += Idr[146]; + RHS29 += Idr[147]; + RHS29 += Idr[148]; + RHS29 += Idr[149]; + RHS29 += Idr[150]; + RHS29 += Idr[151]; + RHS29 -= go[150] * *cnV[150]; + RHS29 -= go[151] * *cnV[151]; + m_A160 += gt[152]; + m_A160 += gt[153]; + m_A160 += gt[154]; + m_A160 += gt[155]; + m_A160 += gt[156]; + m_A160 += gt[157]; + m_A150 += go[152]; + m_A152 += go[153]; + m_A156 += go[154]; + m_A151 += go[155]; + double RHS30 = Idr[152]; + RHS30 += Idr[153]; + RHS30 += Idr[154]; + RHS30 += Idr[155]; + RHS30 += Idr[156]; + RHS30 += Idr[157]; + RHS30 -= go[156] * *cnV[156]; + RHS30 -= go[157] * *cnV[157]; + m_A165 += gt[158]; + m_A165 += gt[159]; + m_A165 += gt[160]; + m_A165 += gt[161]; + m_A165 += gt[162]; + m_A165 += gt[163]; + m_A165 += gt[164]; + m_A163 += go[158]; + m_A163 += go[159]; + m_A162 += go[160]; + m_A166 += go[161]; + m_A166 += go[162]; + double RHS31 = Idr[158]; + RHS31 += Idr[159]; + RHS31 += Idr[160]; + RHS31 += Idr[161]; + RHS31 += Idr[162]; + RHS31 += Idr[163]; + RHS31 += Idr[164]; + RHS31 -= go[163] * *cnV[163]; + RHS31 -= go[164] * *cnV[164]; + m_A174 += gt[165]; + m_A174 += gt[166]; + m_A174 += gt[167]; + m_A174 += gt[168]; + m_A174 += gt[169]; + m_A174 += gt[170]; + m_A174 += gt[171]; + m_A174 += gt[172]; + m_A174 += gt[173]; + m_A169 += go[165]; + m_A173 += go[166]; + m_A173 += go[167]; + m_A168 += go[168]; + m_A171 += go[169]; + m_A167 += go[170]; + m_A167 += go[171]; + double RHS32 = Idr[165]; + RHS32 += Idr[166]; + RHS32 += Idr[167]; + RHS32 += Idr[168]; + RHS32 += Idr[169]; + RHS32 += Idr[170]; + RHS32 += Idr[171]; + RHS32 += Idr[172]; + RHS32 += Idr[173]; + RHS32 -= go[172] * *cnV[172]; + RHS32 -= go[173] * *cnV[173]; const double f0 = 1.0 / m_A0; - const double f0_24 = -f0 * m_A55; - m_A57 += m_A1 * f0_24; - RHS24 += f0_24 * RHS0; - const double f0_32 = -f0 * m_A85; - m_A91 += m_A1 * f0_32; - RHS32 += f0_32 * RHS0; + const double f0_16 = -f0 * m_A54; + m_A56 += m_A1 * f0_16; + RHS16 += f0_16 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_32 = -f1 * m_A86; - m_A91 += m_A3 * f1_32; - RHS32 += f1_32 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_27 = -f2 * m_A64; - m_A66 += m_A5 * f2_27; - RHS27 += f2_27 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_25 = -f3 * m_A58; - m_A60 += m_A7 * f3_25; - RHS25 += f3_25 * RHS3; - const double f3_34 = -f3 * m_A101; - m_A106 += m_A7 * f3_34; - RHS34 += f3_34 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_20 = -f4 * m_A42; - m_A44 += m_A9 * f4_20; + const double f1_16 = -f1 * m_A55; + m_A56 += m_A3 * f1_16; + m_A57 += m_A4 * f1_16; + RHS16 += f1_16 * RHS1; + const double f1_23 = -f1 * m_A100; + m_A102 += m_A3 * f1_23; + m_A103 += m_A4 * f1_23; + RHS23 += f1_23 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_28 = -f2 * m_A129; + m_A132 += m_A6 * f2_28; + RHS28 += f2_28 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_23 = -f3 * m_A101; + m_A103 += m_A8 * f3_23; + m_A104 += m_A9 * f3_23; + RHS23 += f3_23 * RHS3; + const double f3_29 = -f3 * m_A141; + m_A145 += m_A8 * f3_29; + m_A148 += m_A9 * f3_29; + RHS29 += f3_29 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_17 = -f4 * m_A58; + m_A59 += m_A11 * f4_17; + m_A60 += m_A12 * f4_17; + m_A61 += m_A13 * f4_17; + m_A62 += m_A14 * f4_17; + m_A63 += m_A15 * f4_17; + RHS17 += f4_17 * RHS4; + const double f4_19 = -f4 * m_A69; + m_A71 += m_A11 * f4_19; + m_A72 += m_A12 * f4_19; + m_A73 += m_A13 * f4_19; + m_A74 += m_A14 * f4_19; + m_A76 += m_A15 * f4_19; + RHS19 += f4_19 * RHS4; + const double f4_20 = -f4 * m_A78; + m_A80 += m_A11 * f4_20; + m_A81 += m_A12 * f4_20; + m_A82 += m_A13 * f4_20; + m_A83 += m_A14 * f4_20; + m_A85 += m_A15 * f4_20; RHS20 += f4_20 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_21 = -f5 * m_A45; - m_A47 += m_A11 * f5_21; - RHS21 += f5_21 * RHS5; - const double f5_32 = -f5 * m_A87; - m_A88 += m_A11 * f5_32; - RHS32 += f5_32 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_21 = -f6 * m_A46; - m_A47 += m_A13 * f6_21; - m_A48 += m_A14 * f6_21; - RHS21 += f6_21 * RHS6; - const double f6_22 = -f6 * m_A49; - m_A50 += m_A13 * f6_22; - m_A51 += m_A14 * f6_22; - RHS22 += f6_22 * RHS6; - const double f7 = 1.0 / m_A15; - const double f7_23 = -f7 * m_A52; - m_A54 += m_A16 * f7_23; - RHS23 += f7_23 * RHS7; - const double f7_34 = -f7 * m_A102; - m_A103 += m_A16 * f7_34; - RHS34 += f7_34 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_23 = -f8 * m_A53; - m_A54 += m_A18 * f8_23; - RHS23 += f8_23 * RHS8; - const double f9 = 1.0 / m_A19; - const double f9_36 = -f9 * m_A113; - m_A116 += m_A20 * f9_36; - RHS36 += f9_36 * RHS9; - const double f10 = 1.0 / m_A21; - const double f10_28 = -f10 * m_A71; - m_A73 += m_A22 * f10_28; - RHS28 += f10_28 * RHS10; - const double f10_33 = -f10 * m_A94; - m_A99 += m_A22 * f10_33; - RHS33 += f10_33 * RHS10; - const double f13 = 1.0 / m_A27; - const double f13_26 = -f13 * m_A61; - m_A62 += m_A28 * f13_26; - RHS26 += f13_26 * RHS13; - const double f13_33 = -f13 * m_A95; - m_A97 += m_A28 * f13_33; - RHS33 += f13_33 * RHS13; - const double f14 = 1.0 / m_A29; - const double f14_33 = -f14 * m_A96; - m_A99 += m_A30 * f14_33; - RHS33 += f14_33 * RHS14; - const double f15 = 1.0 / m_A31; - const double f15_31 = -f15 * m_A82; - m_A84 += m_A32 * f15_31; + const double f4_21 = -f4 * m_A87; + m_A89 += m_A11 * f4_21; + m_A90 += m_A12 * f4_21; + m_A91 += m_A13 * f4_21; + m_A92 += m_A14 * f4_21; + m_A94 += m_A15 * f4_21; + RHS21 += f4_21 * RHS4; + const double f4_28 = -f4 * m_A130; + m_A132 += m_A11 * f4_28; + m_A133 += m_A12 * f4_28; + m_A134 += m_A13 * f4_28; + m_A135 += m_A14 * f4_28; + m_A138 += m_A15 * f4_28; + RHS28 += f4_28 * RHS4; + const double f5 = 1.0 / m_A16; + const double f5_24 = -f5 * m_A105; + m_A108 += m_A17 * f5_24; + m_A109 += m_A18 * f5_24; + m_A110 += m_A19 * f5_24; + RHS24 += f5_24 * RHS5; + const double f5_28 = -f5 * m_A131; + m_A136 += m_A17 * f5_28; + m_A138 += m_A18 * f5_28; + m_A139 += m_A19 * f5_28; + RHS28 += f5_28 * RHS5; + const double f5_29 = -f5 * m_A142; + m_A146 += m_A17 * f5_29; + m_A147 += m_A18 * f5_29; + m_A148 += m_A19 * f5_29; + RHS29 += f5_29 * RHS5; + const double f6 = 1.0 / m_A20; + const double f6_18 = -f6 * m_A64; + m_A65 += m_A21 * f6_18; + m_A67 += m_A22 * f6_18; + RHS18 += f6_18 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_18 = -f7 * m_A65; + m_A66 += m_A24 * f7_18; + m_A67 += m_A25 * f7_18; + m_A68 += m_A26 * f7_18; + RHS18 += f7_18 * RHS7; + const double f7_24 = -f7 * m_A106; + m_A107 += m_A24 * f7_24; + m_A108 += m_A25 * f7_24; + m_A110 += m_A26 * f7_24; + RHS24 += f7_24 * RHS7; + const double f7_29 = -f7 * m_A143; + m_A144 += m_A24 * f7_29; + m_A146 += m_A25 * f7_29; + m_A148 += m_A26 * f7_29; + RHS29 += f7_29 * RHS7; + const double f8 = 1.0 / m_A27; + const double f8_30 = -f8 * m_A150; + m_A156 += m_A28 * f8_30; + RHS30 += f8_30 * RHS8; + const double f9 = 1.0 / m_A29; + const double f9_19 = -f9 * m_A70; + m_A72 += m_A30 * f9_19; + m_A73 += m_A31 * f9_19; + m_A74 += m_A32 * f9_19; + m_A75 += m_A33 * f9_19; + m_A77 += m_A34 * f9_19; + RHS19 += f9_19 * RHS9; + const double f9_20 = -f9 * m_A79; + m_A81 += m_A30 * f9_20; + m_A82 += m_A31 * f9_20; + m_A83 += m_A32 * f9_20; + m_A84 += m_A33 * f9_20; + m_A86 += m_A34 * f9_20; + RHS20 += f9_20 * RHS9; + const double f9_21 = -f9 * m_A88; + m_A90 += m_A30 * f9_21; + m_A91 += m_A31 * f9_21; + m_A92 += m_A32 * f9_21; + m_A93 += m_A33 * f9_21; + m_A95 += m_A34 * f9_21; + RHS21 += f9_21 * RHS9; + const double f9_25 = -f9 * m_A111; + m_A112 += m_A30 * f9_25; + m_A113 += m_A31 * f9_25; + m_A114 += m_A32 * f9_25; + m_A115 += m_A33 * f9_25; + m_A117 += m_A34 * f9_25; + RHS25 += f9_25 * RHS9; + const double f9_30 = -f9 * m_A151; + m_A153 += m_A30 * f9_30; + m_A154 += m_A31 * f9_30; + m_A155 += m_A32 * f9_30; + m_A156 += m_A33 * f9_30; + m_A160 += m_A34 * f9_30; + RHS30 += f9_30 * RHS9; + const double f10 = 1.0 / m_A35; + const double f10_22 = -f10 * m_A96; + m_A98 += m_A36 * f10_22; + RHS22 += f10_22 * RHS10; + const double f11 = 1.0 / m_A37; + const double f11_26 = -f11 * m_A118; + m_A119 += m_A38 * f11_26; + m_A121 += m_A39 * f11_26; + RHS26 += f11_26 * RHS11; + const double f12 = 1.0 / m_A40; + const double f12_27 = -f12 * m_A123; + m_A126 += m_A41 * f12_27; + m_A127 += m_A42 * f12_27; + m_A128 += m_A43 * f12_27; + RHS27 += f12_27 * RHS12; + const double f12_30 = -f12 * m_A152; + m_A157 += m_A41 * f12_30; + m_A160 += m_A42 * f12_30; + m_A161 += m_A43 * f12_30; + RHS30 += f12_30 * RHS12; + const double f12_32 = -f12 * m_A167; + m_A171 += m_A41 * f12_32; + m_A172 += m_A42 * f12_32; + m_A174 += m_A43 * f12_32; + RHS32 += f12_32 * RHS12; + const double f13 = 1.0 / m_A44; + const double f13_22 = -f13 * m_A97; + m_A98 += m_A45 * f13_22; + m_A99 += m_A46 * f13_22; + RHS22 += f13_22 * RHS13; + const double f13_31 = -f13 * m_A162; + m_A164 += m_A45 * f13_31; + m_A165 += m_A46 * f13_31; + RHS31 += f13_31 * RHS13; + const double f14 = 1.0 / m_A47; + const double f14_26 = -f14 * m_A119; + m_A120 += m_A48 * f14_26; + m_A121 += m_A49 * f14_26; + m_A122 += m_A50 * f14_26; + RHS26 += f14_26 * RHS14; + const double f14_27 = -f14 * m_A124; + m_A125 += m_A48 * f14_27; + m_A126 += m_A49 * f14_27; + m_A128 += m_A50 * f14_27; + RHS27 += f14_27 * RHS14; + const double f14_32 = -f14 * m_A168; + m_A170 += m_A48 * f14_32; + m_A171 += m_A49 * f14_32; + m_A174 += m_A50 * f14_32; + RHS32 += f14_32 * RHS14; + const double f15 = 1.0 / m_A51; + const double f15_31 = -f15 * m_A163; + m_A165 += m_A52 * f15_31; + m_A166 += m_A53 * f15_31; RHS31 += f15_31 * RHS15; - const double f16 = 1.0 / m_A33; - const double f16_27 = -f16 * m_A65; - m_A67 += m_A34 * f16_27; - m_A70 += m_A35 * f16_27; - RHS27 += f16_27 * RHS16; - const double f16_36 = -f16 * m_A114; - m_A115 += m_A34 * f16_36; - m_A122 += m_A35 * f16_36; - RHS36 += f16_36 * RHS16; - const double f17 = 1.0 / m_A36; - const double f17_29 = -f17 * m_A74; - m_A76 += m_A37 * f17_29; - RHS29 += f17_29 * RHS17; - const double f17_35 = -f17 * m_A108; - m_A109 += m_A37 * f17_35; - RHS35 += f17_35 * RHS17; - const double f18 = 1.0 / m_A38; - const double f18_29 = -f18 * m_A75; - m_A77 += m_A39 * f18_29; - RHS29 += f18_29 * RHS18; - const double f18_30 = -f18 * m_A79; - m_A81 += m_A39 * f18_30; - RHS30 += f18_30 * RHS18; - const double f19 = 1.0 / m_A40; - const double f19_30 = -f19 * m_A80; - m_A81 += m_A41 * f19_30; + const double f15_32 = -f15 * m_A169; + m_A173 += m_A52 * f15_32; + m_A174 += m_A53 * f15_32; + RHS32 += f15_32 * RHS15; + const double f16 = 1.0 / m_A56; + const double f16_23 = -f16 * m_A102; + m_A103 += m_A57 * f16_23; + RHS23 += f16_23 * RHS16; + const double f17 = 1.0 / m_A59; + const double f17_19 = -f17 * m_A71; + m_A72 += m_A60 * f17_19; + m_A73 += m_A61 * f17_19; + m_A74 += m_A62 * f17_19; + m_A76 += m_A63 * f17_19; + RHS19 += f17_19 * RHS17; + const double f17_20 = -f17 * m_A80; + m_A81 += m_A60 * f17_20; + m_A82 += m_A61 * f17_20; + m_A83 += m_A62 * f17_20; + m_A85 += m_A63 * f17_20; + RHS20 += f17_20 * RHS17; + const double f17_21 = -f17 * m_A89; + m_A90 += m_A60 * f17_21; + m_A91 += m_A61 * f17_21; + m_A92 += m_A62 * f17_21; + m_A94 += m_A63 * f17_21; + RHS21 += f17_21 * RHS17; + const double f17_28 = -f17 * m_A132; + m_A133 += m_A60 * f17_28; + m_A134 += m_A61 * f17_28; + m_A135 += m_A62 * f17_28; + m_A138 += m_A63 * f17_28; + RHS28 += f17_28 * RHS17; + const double f18 = 1.0 / m_A66; + const double f18_24 = -f18 * m_A107; + m_A108 += m_A67 * f18_24; + m_A110 += m_A68 * f18_24; + RHS24 += f18_24 * RHS18; + const double f18_29 = -f18 * m_A144; + m_A146 += m_A67 * f18_29; + m_A148 += m_A68 * f18_29; + RHS29 += f18_29 * RHS18; + const double f19 = 1.0 / m_A72; + const double f19_20 = -f19 * m_A81; + m_A82 += m_A73 * f19_20; + m_A83 += m_A74 * f19_20; + m_A84 += m_A75 * f19_20; + m_A85 += m_A76 * f19_20; + m_A86 += m_A77 * f19_20; + RHS20 += f19_20 * RHS19; + const double f19_21 = -f19 * m_A90; + m_A91 += m_A73 * f19_21; + m_A92 += m_A74 * f19_21; + m_A93 += m_A75 * f19_21; + m_A94 += m_A76 * f19_21; + m_A95 += m_A77 * f19_21; + RHS21 += f19_21 * RHS19; + const double f19_25 = -f19 * m_A112; + m_A113 += m_A73 * f19_25; + m_A114 += m_A74 * f19_25; + m_A115 += m_A75 * f19_25; + m_A116 += m_A76 * f19_25; + m_A117 += m_A77 * f19_25; + RHS25 += f19_25 * RHS19; + const double f19_28 = -f19 * m_A133; + m_A134 += m_A73 * f19_28; + m_A135 += m_A74 * f19_28; + m_A137 += m_A75 * f19_28; + m_A138 += m_A76 * f19_28; + m_A140 += m_A77 * f19_28; + RHS28 += f19_28 * RHS19; + const double f19_30 = -f19 * m_A153; + m_A154 += m_A73 * f19_30; + m_A155 += m_A74 * f19_30; + m_A156 += m_A75 * f19_30; + m_A158 += m_A76 * f19_30; + m_A160 += m_A77 * f19_30; RHS30 += f19_30 * RHS19; - const double f21 = 1.0 / m_A47; - const double f21_22 = -f21 * m_A50; - m_A51 += m_A48 * f21_22; - RHS22 += f21_22 * RHS21; - const double f21_32 = -f21 * m_A88; - m_A89 += m_A48 * f21_32; - RHS32 += f21_32 * RHS21; - const double f22 = 1.0 / m_A51; - const double f22_32 = -f22 * m_A89; - RHS32 += f22_32 * RHS22; - const double f23 = 1.0 / m_A54; - const double f23_34 = -f23 * m_A103; - RHS34 += f23_34 * RHS23; - const double f24 = 1.0 / m_A56; - const double f24_27 = -f24 * m_A66; - m_A68 += m_A57 * f24_27; - RHS27 += f24_27 * RHS24; - const double f26 = 1.0 / m_A62; - const double f26_31 = -f26 * m_A83; - m_A84 += m_A63 * f26_31; - RHS31 += f26_31 * RHS26; - const double f26_33 = -f26 * m_A97; - m_A98 += m_A63 * f26_33; - RHS33 += f26_33 * RHS26; - const double f27 = 1.0 / m_A67; - const double f27_32 = -f27 * m_A90; - m_A91 += m_A68 * f27_32; - m_A92 += m_A69 * f27_32; - m_A93 += m_A70 * f27_32; + const double f20 = 1.0 / m_A82; + const double f20_21 = -f20 * m_A91; + m_A92 += m_A83 * f20_21; + m_A93 += m_A84 * f20_21; + m_A94 += m_A85 * f20_21; + m_A95 += m_A86 * f20_21; + RHS21 += f20_21 * RHS20; + const double f20_25 = -f20 * m_A113; + m_A114 += m_A83 * f20_25; + m_A115 += m_A84 * f20_25; + m_A116 += m_A85 * f20_25; + m_A117 += m_A86 * f20_25; + RHS25 += f20_25 * RHS20; + const double f20_28 = -f20 * m_A134; + m_A135 += m_A83 * f20_28; + m_A137 += m_A84 * f20_28; + m_A138 += m_A85 * f20_28; + m_A140 += m_A86 * f20_28; + RHS28 += f20_28 * RHS20; + const double f20_30 = -f20 * m_A154; + m_A155 += m_A83 * f20_30; + m_A156 += m_A84 * f20_30; + m_A158 += m_A85 * f20_30; + m_A160 += m_A86 * f20_30; + RHS30 += f20_30 * RHS20; + const double f21 = 1.0 / m_A92; + const double f21_25 = -f21 * m_A114; + m_A115 += m_A93 * f21_25; + m_A116 += m_A94 * f21_25; + m_A117 += m_A95 * f21_25; + RHS25 += f21_25 * RHS21; + const double f21_28 = -f21 * m_A135; + m_A137 += m_A93 * f21_28; + m_A138 += m_A94 * f21_28; + m_A140 += m_A95 * f21_28; + RHS28 += f21_28 * RHS21; + const double f21_30 = -f21 * m_A155; + m_A156 += m_A93 * f21_30; + m_A158 += m_A94 * f21_30; + m_A160 += m_A95 * f21_30; + RHS30 += f21_30 * RHS21; + const double f22 = 1.0 / m_A98; + const double f22_31 = -f22 * m_A164; + m_A165 += m_A99 * f22_31; + RHS31 += f22_31 * RHS22; + const double f23 = 1.0 / m_A103; + const double f23_29 = -f23 * m_A145; + m_A148 += m_A104 * f23_29; + RHS29 += f23_29 * RHS23; + const double f24 = 1.0 / m_A108; + const double f24_28 = -f24 * m_A136; + m_A138 += m_A109 * f24_28; + m_A139 += m_A110 * f24_28; + RHS28 += f24_28 * RHS24; + const double f24_29 = -f24 * m_A146; + m_A147 += m_A109 * f24_29; + m_A148 += m_A110 * f24_29; + RHS29 += f24_29 * RHS24; + const double f25 = 1.0 / m_A115; + const double f25_28 = -f25 * m_A137; + m_A138 += m_A116 * f25_28; + m_A140 += m_A117 * f25_28; + RHS28 += f25_28 * RHS25; + const double f25_30 = -f25 * m_A156; + m_A158 += m_A116 * f25_30; + m_A160 += m_A117 * f25_30; + RHS30 += f25_30 * RHS25; + const double f26 = 1.0 / m_A120; + const double f26_27 = -f26 * m_A125; + m_A126 += m_A121 * f26_27; + m_A128 += m_A122 * f26_27; + RHS27 += f26_27 * RHS26; + const double f26_32 = -f26 * m_A170; + m_A171 += m_A121 * f26_32; + m_A174 += m_A122 * f26_32; + RHS32 += f26_32 * RHS26; + const double f27 = 1.0 / m_A126; + const double f27_30 = -f27 * m_A157; + m_A160 += m_A127 * f27_30; + m_A161 += m_A128 * f27_30; + RHS30 += f27_30 * RHS27; + const double f27_32 = -f27 * m_A171; + m_A172 += m_A127 * f27_32; + m_A174 += m_A128 * f27_32; RHS32 += f27_32 * RHS27; - const double f27_34 = -f27 * m_A104; - m_A105 += m_A68 * f27_34; - m_A106 += m_A69 * f27_34; - m_A107 += m_A70 * f27_34; - RHS34 += f27_34 * RHS27; - const double f27_36 = -f27 * m_A115; - m_A119 += m_A68 * f27_36; - m_A121 += m_A69 * f27_36; - m_A122 += m_A70 * f27_36; - RHS36 += f27_36 * RHS27; - const double f28 = 1.0 / m_A72; - const double f28_36 = -f28 * m_A116; - m_A120 += m_A73 * f28_36; - RHS36 += f28_36 * RHS28; - const double f29 = 1.0 / m_A76; - const double f29_35 = -f29 * m_A109; - m_A110 += m_A77 * f29_35; - m_A112 += m_A78 * f29_35; - RHS35 += f29_35 * RHS29; - const double f29_36 = -f29 * m_A117; - m_A118 += m_A77 * f29_36; - m_A122 += m_A78 * f29_36; - RHS36 += f29_36 * RHS29; - const double f30 = 1.0 / m_A81; - const double f30_35 = -f30 * m_A110; - RHS35 += f30_35 * RHS30; - const double f30_36 = -f30 * m_A118; - RHS36 += f30_36 * RHS30; - const double f31 = 1.0 / m_A84; - const double f31_33 = -f31 * m_A98; - RHS33 += f31_33 * RHS31; - const double f32 = 1.0 / m_A91; - const double f32_34 = -f32 * m_A105; - m_A106 += m_A92 * f32_34; - m_A107 += m_A93 * f32_34; - RHS34 += f32_34 * RHS32; - const double f32_36 = -f32 * m_A119; - m_A121 += m_A92 * f32_36; - m_A122 += m_A93 * f32_36; - RHS36 += f32_36 * RHS32; - const double f33 = 1.0 / m_A99; - const double f33_36 = -f33 * m_A120; - m_A122 += m_A100 * f33_36; - RHS36 += f33_36 * RHS33; - const double f34 = 1.0 / m_A106; - const double f34_36 = -f34 * m_A121; - m_A122 += m_A107 * f34_36; - RHS36 += f34_36 * RHS34; - V[36] = RHS36 / m_A122; - double tmp35 = 0.0; - tmp35 += m_A112 * V[36]; - V[35] = (RHS35 - tmp35) / m_A111; - double tmp34 = 0.0; - tmp34 += m_A107 * V[36]; - V[34] = (RHS34 - tmp34) / m_A106; - double tmp33 = 0.0; - tmp33 += m_A100 * V[36]; - V[33] = (RHS33 - tmp33) / m_A99; - double tmp32 = 0.0; - tmp32 += m_A92 * V[34]; - tmp32 += m_A93 * V[36]; - V[32] = (RHS32 - tmp32) / m_A91; + const double f28 = 1.0 / m_A138; + const double f28_29 = -f28 * m_A147; + m_A148 += m_A139 * f28_29; + m_A149 += m_A140 * f28_29; + RHS29 += f28_29 * RHS28; + const double f28_30 = -f28 * m_A158; + m_A159 += m_A139 * f28_30; + m_A160 += m_A140 * f28_30; + RHS30 += f28_30 * RHS28; + const double f29 = 1.0 / m_A148; + const double f29_30 = -f29 * m_A159; + m_A160 += m_A149 * f29_30; + RHS30 += f29_30 * RHS29; + const double f30 = 1.0 / m_A160; + const double f30_32 = -f30 * m_A172; + m_A174 += m_A161 * f30_32; + RHS32 += f30_32 * RHS30; + const double f31 = 1.0 / m_A165; + const double f31_32 = -f31 * m_A173; + m_A174 += m_A166 * f31_32; + RHS32 += f31_32 * RHS31; + V[32] = RHS32 / m_A174; double tmp31 = 0.0; - V[31] = (RHS31 - tmp31) / m_A84; + tmp31 += m_A166 * V[32]; + V[31] = (RHS31 - tmp31) / m_A165; double tmp30 = 0.0; - V[30] = (RHS30 - tmp30) / m_A81; + tmp30 += m_A161 * V[32]; + V[30] = (RHS30 - tmp30) / m_A160; double tmp29 = 0.0; - tmp29 += m_A77 * V[30]; - tmp29 += m_A78 * V[36]; - V[29] = (RHS29 - tmp29) / m_A76; + tmp29 += m_A149 * V[30]; + V[29] = (RHS29 - tmp29) / m_A148; double tmp28 = 0.0; - tmp28 += m_A73 * V[33]; - V[28] = (RHS28 - tmp28) / m_A72; + tmp28 += m_A139 * V[29]; + tmp28 += m_A140 * V[30]; + V[28] = (RHS28 - tmp28) / m_A138; double tmp27 = 0.0; - tmp27 += m_A68 * V[32]; - tmp27 += m_A69 * V[34]; - tmp27 += m_A70 * V[36]; - V[27] = (RHS27 - tmp27) / m_A67; + tmp27 += m_A127 * V[30]; + tmp27 += m_A128 * V[32]; + V[27] = (RHS27 - tmp27) / m_A126; double tmp26 = 0.0; - tmp26 += m_A63 * V[31]; - V[26] = (RHS26 - tmp26) / m_A62; + tmp26 += m_A121 * V[27]; + tmp26 += m_A122 * V[32]; + V[26] = (RHS26 - tmp26) / m_A120; double tmp25 = 0.0; - tmp25 += m_A60 * V[34]; - V[25] = (RHS25 - tmp25) / m_A59; + tmp25 += m_A116 * V[28]; + tmp25 += m_A117 * V[30]; + V[25] = (RHS25 - tmp25) / m_A115; double tmp24 = 0.0; - tmp24 += m_A57 * V[32]; - V[24] = (RHS24 - tmp24) / m_A56; + tmp24 += m_A109 * V[28]; + tmp24 += m_A110 * V[29]; + V[24] = (RHS24 - tmp24) / m_A108; double tmp23 = 0.0; - V[23] = (RHS23 - tmp23) / m_A54; + tmp23 += m_A104 * V[29]; + V[23] = (RHS23 - tmp23) / m_A103; double tmp22 = 0.0; - V[22] = (RHS22 - tmp22) / m_A51; + tmp22 += m_A99 * V[31]; + V[22] = (RHS22 - tmp22) / m_A98; double tmp21 = 0.0; - tmp21 += m_A48 * V[22]; - V[21] = (RHS21 - tmp21) / m_A47; + tmp21 += m_A93 * V[25]; + tmp21 += m_A94 * V[28]; + tmp21 += m_A95 * V[30]; + V[21] = (RHS21 - tmp21) / m_A92; double tmp20 = 0.0; - tmp20 += m_A44 * V[25]; - V[20] = (RHS20 - tmp20) / m_A43; + tmp20 += m_A83 * V[21]; + tmp20 += m_A84 * V[25]; + tmp20 += m_A85 * V[28]; + tmp20 += m_A86 * V[30]; + V[20] = (RHS20 - tmp20) / m_A82; double tmp19 = 0.0; - tmp19 += m_A41 * V[30]; - V[19] = (RHS19 - tmp19) / m_A40; + tmp19 += m_A73 * V[20]; + tmp19 += m_A74 * V[21]; + tmp19 += m_A75 * V[25]; + tmp19 += m_A76 * V[28]; + tmp19 += m_A77 * V[30]; + V[19] = (RHS19 - tmp19) / m_A72; double tmp18 = 0.0; - tmp18 += m_A39 * V[30]; - V[18] = (RHS18 - tmp18) / m_A38; + tmp18 += m_A67 * V[24]; + tmp18 += m_A68 * V[29]; + V[18] = (RHS18 - tmp18) / m_A66; double tmp17 = 0.0; - tmp17 += m_A37 * V[29]; - V[17] = (RHS17 - tmp17) / m_A36; + tmp17 += m_A60 * V[19]; + tmp17 += m_A61 * V[20]; + tmp17 += m_A62 * V[21]; + tmp17 += m_A63 * V[28]; + V[17] = (RHS17 - tmp17) / m_A59; double tmp16 = 0.0; - tmp16 += m_A34 * V[27]; - tmp16 += m_A35 * V[36]; - V[16] = (RHS16 - tmp16) / m_A33; + tmp16 += m_A57 * V[23]; + V[16] = (RHS16 - tmp16) / m_A56; double tmp15 = 0.0; - tmp15 += m_A32 * V[31]; - V[15] = (RHS15 - tmp15) / m_A31; + tmp15 += m_A52 * V[31]; + tmp15 += m_A53 * V[32]; + V[15] = (RHS15 - tmp15) / m_A51; double tmp14 = 0.0; - tmp14 += m_A30 * V[33]; - V[14] = (RHS14 - tmp14) / m_A29; + tmp14 += m_A48 * V[26]; + tmp14 += m_A49 * V[27]; + tmp14 += m_A50 * V[32]; + V[14] = (RHS14 - tmp14) / m_A47; double tmp13 = 0.0; - tmp13 += m_A28 * V[26]; - V[13] = (RHS13 - tmp13) / m_A27; + tmp13 += m_A45 * V[22]; + tmp13 += m_A46 * V[31]; + V[13] = (RHS13 - tmp13) / m_A44; + double tmp12 = 0.0; + tmp12 += m_A41 * V[27]; + tmp12 += m_A42 * V[30]; + tmp12 += m_A43 * V[32]; + V[12] = (RHS12 - tmp12) / m_A40; + double tmp11 = 0.0; + tmp11 += m_A38 * V[14]; + tmp11 += m_A39 * V[27]; + V[11] = (RHS11 - tmp11) / m_A37; + double tmp10 = 0.0; + tmp10 += m_A36 * V[22]; + V[10] = (RHS10 - tmp10) / m_A35; + double tmp9 = 0.0; + tmp9 += m_A30 * V[19]; + tmp9 += m_A31 * V[20]; + tmp9 += m_A32 * V[21]; + tmp9 += m_A33 * V[25]; + tmp9 += m_A34 * V[30]; + V[9] = (RHS9 - tmp9) / m_A29; + double tmp8 = 0.0; + tmp8 += m_A28 * V[25]; + V[8] = (RHS8 - tmp8) / m_A27; + double tmp7 = 0.0; + tmp7 += m_A24 * V[18]; + tmp7 += m_A25 * V[24]; + tmp7 += m_A26 * V[29]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A21 * V[7]; + tmp6 += m_A22 * V[24]; + V[6] = (RHS6 - tmp6) / m_A20; + double tmp5 = 0.0; + tmp5 += m_A17 * V[24]; + tmp5 += m_A18 * V[28]; + tmp5 += m_A19 * V[29]; + V[5] = (RHS5 - tmp5) / m_A16; + double tmp4 = 0.0; + tmp4 += m_A11 * V[17]; + tmp4 += m_A12 * V[19]; + tmp4 += m_A13 * V[20]; + tmp4 += m_A14 * V[21]; + tmp4 += m_A15 * V[28]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A8 * V[23]; + tmp3 += m_A9 * V[29]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A6 * V[17]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[16]; + tmp1 += m_A4 * V[23]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[16]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// segaspeech +static void nl_gcr_b22769fbf3159a8d_21_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A4 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A6 += go[8]; + m_A7 += go[9]; + m_A7 += go[10]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A9 += go[13]; + m_A8 += go[14]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A15 += go[15]; + m_A12 += go[16]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A20 += gt[22]; + m_A20 += gt[23]; + m_A20 += gt[24]; + m_A20 += gt[25]; + m_A17 += go[22]; + m_A17 += go[23]; + m_A16 += go[24]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 -= go[25] * *cnV[25]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A12; + m_A13 += m_A3 * f1_4; + m_A15 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A16; + m_A18 += m_A3 * f1_5; + m_A20 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_5 = -f2 * m_A17; + m_A19 += m_A6 * f2_5; + m_A20 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A13; + m_A15 += m_A11 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A18; + m_A20 += m_A11 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A19; + m_A20 += m_A15 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A20; + double tmp4 = 0.0; + tmp4 += m_A15 * V[5]; + V[4] = (RHS4 - tmp4) / m_A14; + double tmp3 = 0.0; + tmp3 += m_A11 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; + double tmp2 = 0.0; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_b66ff415b228d5f8_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A8 += go[8]; + m_A7 += go[9]; + m_A6 += go[10]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A5 * V[3]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starcas +static void nl_gcr_b7344e05aac90017_65_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A3 += go[0]; + m_A2 += go[1]; + m_A1 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A10 += go[12]; + m_A9 += go[13]; + m_A8 += go[14]; + m_A7 += go[15]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 -= go[16] * *cnV[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A12 += go[17]; + double RHS3 = Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A13 += gt[25]; + m_A14 += go[20]; + m_A15 += go[21]; + m_A16 += go[22]; + m_A16 += go[23]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 -= go[24] * *cnV[24]; + RHS4 -= go[25] * *cnV[25]; + m_A17 += gt[26]; + m_A17 += gt[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A19 += go[26]; + m_A18 += go[27]; + double RHS5 = Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 -= go[28] * *cnV[28]; + RHS5 -= go[29] * *cnV[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A22 += gt[32]; + m_A22 += gt[33]; + m_A21 += go[30]; + m_A20 += go[31]; + double RHS6 = Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 -= go[32] * *cnV[32]; + RHS6 -= go[33] * *cnV[33]; + m_A29 += gt[34]; + m_A29 += gt[35]; + m_A29 += gt[36]; + m_A29 += gt[37]; + m_A27 += go[34]; + m_A26 += go[35]; + double RHS7 = Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 -= go[36] * *cnV[36]; + RHS7 -= go[37] * *cnV[37]; + m_A36 += gt[38]; + m_A36 += gt[39]; + m_A36 += gt[40]; + m_A36 += gt[41]; + m_A33 += go[38]; + m_A32 += go[39]; + double RHS8 = Idr[38]; + RHS8 += Idr[39]; + RHS8 += Idr[40]; + RHS8 += Idr[41]; + RHS8 -= go[40] * *cnV[40]; + RHS8 -= go[41] * *cnV[41]; + m_A43 += gt[42]; + m_A43 += gt[43]; + m_A43 += gt[44]; + m_A43 += gt[45]; + m_A43 += gt[46]; + m_A38 += go[42]; + m_A44 += go[43]; + m_A39 += go[44]; + double RHS9 = Idr[42]; + RHS9 += Idr[43]; + RHS9 += Idr[44]; + RHS9 += Idr[45]; + RHS9 += Idr[46]; + RHS9 -= go[45] * *cnV[45]; + RHS9 -= go[46] * *cnV[46]; + m_A46 += gt[47]; + m_A46 += gt[48]; + m_A46 += gt[49]; + m_A46 += gt[50]; + m_A46 += gt[51]; + m_A46 += gt[52]; + m_A46 += gt[53]; + m_A45 += go[47]; + m_A47 += go[48]; + double RHS10 = Idr[47]; + RHS10 += Idr[48]; + RHS10 += Idr[49]; + RHS10 += Idr[50]; + RHS10 += Idr[51]; + RHS10 += Idr[52]; + RHS10 += Idr[53]; + RHS10 -= go[49] * *cnV[49]; + RHS10 -= go[50] * *cnV[50]; + RHS10 -= go[51] * *cnV[51]; + RHS10 -= go[52] * *cnV[52]; + RHS10 -= go[53] * *cnV[53]; + m_A51 += gt[54]; + m_A51 += gt[55]; + m_A51 += gt[56]; + m_A49 += go[54]; + m_A48 += go[55]; + double RHS11 = Idr[54]; + RHS11 += Idr[55]; + RHS11 += Idr[56]; + RHS11 -= go[56] * *cnV[56]; + m_A56 += gt[57]; + m_A56 += gt[58]; + m_A54 += go[57]; + double RHS12 = Idr[57]; + RHS12 += Idr[58]; + RHS12 -= go[58] * *cnV[58]; + m_A64 += gt[59]; + m_A64 += gt[60]; + m_A64 += gt[61]; + m_A64 += gt[62]; + m_A59 += go[59]; + m_A59 += go[60]; + m_A58 += go[61]; + m_A60 += go[62]; + double RHS13 = Idr[59]; + RHS13 += Idr[60]; + RHS13 += Idr[61]; + RHS13 += Idr[62]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A20; + m_A22 += m_A1 * f0_6; + m_A23 += m_A2 * f0_6; + m_A24 += m_A3 * f0_6; + RHS6 += f0_6 * RHS0; + const double f0_7 = -f0 * m_A26; + m_A28 += m_A1 * f0_7; + m_A29 += m_A2 * f0_7; + m_A30 += m_A3 * f0_7; + RHS7 += f0_7 * RHS0; + const double f0_8 = -f0 * m_A32; + m_A34 += m_A1 * f0_8; + m_A35 += m_A2 * f0_8; + m_A36 += m_A3 * f0_8; + RHS8 += f0_8 * RHS0; + const double f1 = 1.0 / m_A4; + const double f1_9 = -f1 * m_A38; + m_A39 += m_A5 * f1_9; + RHS9 += f1_9 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_6 = -f2 * m_A21; + m_A22 += m_A7 * f2_6; + m_A23 += m_A8 * f2_6; + m_A24 += m_A9 * f2_6; + m_A25 += m_A10 * f2_6; + RHS6 += f2_6 * RHS2; + const double f2_7 = -f2 * m_A27; + m_A28 += m_A7 * f2_7; + m_A29 += m_A8 * f2_7; + m_A30 += m_A9 * f2_7; + m_A31 += m_A10 * f2_7; + RHS7 += f2_7 * RHS2; + const double f2_8 = -f2 * m_A33; + m_A34 += m_A7 * f2_8; + m_A35 += m_A8 * f2_8; + m_A36 += m_A9 * f2_8; + m_A37 += m_A10 * f2_8; + RHS8 += f2_8 * RHS2; + const double f2_9 = -f2 * m_A39; + m_A40 += m_A7 * f2_9; + m_A41 += m_A8 * f2_9; + m_A42 += m_A9 * f2_9; + m_A43 += m_A10 * f2_9; + RHS9 += f2_9 * RHS2; + const double f3 = 1.0 / m_A11; + const double f3_10 = -f3 * m_A45; + m_A47 += m_A12 * f3_10; + RHS10 += f3_10 * RHS3; + const double f3_13 = -f3 * m_A58; + m_A64 += m_A12 * f3_13; + RHS13 += f3_13 * RHS3; + const double f4 = 1.0 / m_A13; + const double f4_11 = -f4 * m_A48; + m_A50 += m_A14 * f4_11; + m_A51 += m_A15 * f4_11; + m_A53 += m_A16 * f4_11; + RHS11 += f4_11 * RHS4; + const double f4_13 = -f4 * m_A59; + m_A61 += m_A14 * f4_13; + m_A62 += m_A15 * f4_13; + m_A64 += m_A16 * f4_13; + RHS13 += f4_13 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_11 = -f5 * m_A49; + m_A51 += m_A18 * f5_11; + m_A52 += m_A19 * f5_11; + RHS11 += f5_11 * RHS5; + const double f5_12 = -f5 * m_A54; + m_A55 += m_A18 * f5_12; + m_A56 += m_A19 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A22; + const double f6_7 = -f6 * m_A28; + m_A29 += m_A23 * f6_7; + m_A30 += m_A24 * f6_7; + m_A31 += m_A25 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A34; + m_A35 += m_A23 * f6_8; + m_A36 += m_A24 * f6_8; + m_A37 += m_A25 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_9 = -f6 * m_A40; + m_A41 += m_A23 * f6_9; + m_A42 += m_A24 * f6_9; + m_A43 += m_A25 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A29; + const double f7_8 = -f7 * m_A35; + m_A36 += m_A30 * f7_8; + m_A37 += m_A31 * f7_8; + RHS8 += f7_8 * RHS7; + const double f7_9 = -f7 * m_A41; + m_A42 += m_A30 * f7_9; + m_A43 += m_A31 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A36; + const double f8_9 = -f8 * m_A42; + m_A43 += m_A37 * f8_9; + RHS9 += f8_9 * RHS8; + const double f9 = 1.0 / m_A43; + const double f9_13 = -f9 * m_A60; + m_A64 += m_A44 * f9_13; + RHS13 += f9_13 * RHS9; + const double f10 = 1.0 / m_A46; + const double f10_11 = -f10 * m_A50; + m_A53 += m_A47 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_13 = -f10 * m_A61; + m_A64 += m_A47 * f10_13; + RHS13 += f10_13 * RHS10; + const double f11 = 1.0 / m_A51; + const double f11_12 = -f11 * m_A55; + m_A56 += m_A52 * f11_12; + m_A57 += m_A53 * f11_12; + RHS12 += f11_12 * RHS11; + const double f11_13 = -f11 * m_A62; + m_A63 += m_A52 * f11_13; + m_A64 += m_A53 * f11_13; + RHS13 += f11_13 * RHS11; + const double f12 = 1.0 / m_A56; + const double f12_13 = -f12 * m_A63; + m_A64 += m_A57 * f12_13; + RHS13 += f12_13 * RHS12; + V[13] = RHS13 / m_A64; double tmp12 = 0.0; - tmp12 += m_A26 * V[35]; - V[12] = (RHS12 - tmp12) / m_A25; + tmp12 += m_A57 * V[13]; + V[12] = (RHS12 - tmp12) / m_A56; double tmp11 = 0.0; - tmp11 += m_A24 * V[12]; - V[11] = (RHS11 - tmp11) / m_A23; + tmp11 += m_A52 * V[12]; + tmp11 += m_A53 * V[13]; + V[11] = (RHS11 - tmp11) / m_A51; double tmp10 = 0.0; - tmp10 += m_A22 * V[33]; - V[10] = (RHS10 - tmp10) / m_A21; + tmp10 += m_A47 * V[13]; + V[10] = (RHS10 - tmp10) / m_A46; double tmp9 = 0.0; - tmp9 += m_A20 * V[28]; - V[9] = (RHS9 - tmp9) / m_A19; + tmp9 += m_A44 * V[13]; + V[9] = (RHS9 - tmp9) / m_A43; double tmp8 = 0.0; - tmp8 += m_A18 * V[23]; - V[8] = (RHS8 - tmp8) / m_A17; + tmp8 += m_A37 * V[9]; + V[8] = (RHS8 - tmp8) / m_A36; double tmp7 = 0.0; - tmp7 += m_A16 * V[23]; - V[7] = (RHS7 - tmp7) / m_A15; + tmp7 += m_A30 * V[8]; + tmp7 += m_A31 * V[9]; + V[7] = (RHS7 - tmp7) / m_A29; double tmp6 = 0.0; - tmp6 += m_A13 * V[21]; - tmp6 += m_A14 * V[22]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A23 * V[7]; + tmp6 += m_A24 * V[8]; + tmp6 += m_A25 * V[9]; + V[6] = (RHS6 - tmp6) / m_A22; double tmp5 = 0.0; - tmp5 += m_A11 * V[21]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A18 * V[11]; + tmp5 += m_A19 * V[12]; + V[5] = (RHS5 - tmp5) / m_A17; double tmp4 = 0.0; - tmp4 += m_A9 * V[25]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A14 * V[10]; + tmp4 += m_A15 * V[11]; + tmp4 += m_A16 * V[13]; + V[4] = (RHS4 - tmp4) / m_A13; double tmp3 = 0.0; - tmp3 += m_A7 * V[34]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A12 * V[13]; + V[3] = (RHS3 - tmp3) / m_A11; double tmp2 = 0.0; - tmp2 += m_A5 * V[24]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[6]; + tmp2 += m_A8 * V[7]; + tmp2 += m_A9 * V[8]; + tmp2 += m_A10 * V[9]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[32]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A5 * V[2]; + V[1] = (RHS1 - tmp1) / m_A4; double tmp0 = 0.0; - tmp0 += m_A1 * V[32]; + tmp0 += m_A1 * V[6]; + tmp0 += m_A2 * V[7]; + tmp0 += m_A3 * V[8]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_87cb2c78a2628efd_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starfire +static void nl_gcr_b75e0baeb501e907_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -19310,6 +45477,22 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -19319,58 +45502,154 @@ RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A3 += go[3]; - m_A3 += go[4]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A3 += gt[7]; + m_A3 += gt[8]; + m_A3 += gt[9]; + m_A2 += go[3]; + m_A4 += go[4]; double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; RHS1 -= go[5] * *cnV[5]; RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A5 += go[7]; - m_A5 += go[8]; - m_A4 += go[9]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A6 += go[10]; + double RHS2 = Idr[10]; RHS2 += Idr[11]; RHS2 += Idr[12]; RHS2 += Idr[13]; - RHS2 -= go[10] * *cnV[10]; RHS2 -= go[11] * *cnV[11]; RHS2 -= go[12] * *cnV[12]; RHS2 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A7 += go[14]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A12 += go[17]; + m_A11 += go[18]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + m_A14 += gt[24]; + m_A14 += gt[25]; + m_A14 += gt[26]; + m_A13 += go[24]; + double RHS5 = Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A18 += gt[29]; + m_A18 += gt[30]; + m_A17 += go[27]; + m_A19 += go[28]; + double RHS6 = Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 -= go[29] * *cnV[29]; + RHS6 -= go[30] * *cnV[30]; + m_A22 += gt[31]; + m_A22 += gt[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A20 += go[31]; + m_A21 += go[32]; + double RHS7 = Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 -= go[33] * *cnV[33]; + RHS7 -= go[34] * *cnV[34]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + const double f0_1 = -f0 * m_A2; + m_A4 += m_A1 * f0_1; + RHS1 += f0_1 * RHS0; + const double f0_6 = -f0 * m_A17; + m_A18 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_7 = -f2 * m_A20; + m_A22 += m_A6 * f2_7; + RHS7 += f2_7 * RHS2; + const double f4 = 1.0 / m_A10; + const double f4_5 = -f4 * m_A13; + m_A15 += m_A11 * f4_5; + m_A16 += m_A12 * f4_5; + RHS5 += f4_5 * RHS4; + const double f6 = 1.0 / m_A18; + const double f6_7 = -f6 * m_A21; + m_A22 += m_A19 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A22; + double tmp6 = 0.0; + tmp6 += m_A19 * V[7]; + V[6] = (RHS6 - tmp6) / m_A18; + double tmp5 = 0.0; + tmp5 += m_A15 * V[6]; + tmp5 += m_A16 * V[7]; + V[5] = (RHS5 - tmp5) / m_A14; + double tmp4 = 0.0; + tmp4 += m_A11 * V[6]; + tmp4 += m_A12 * V[7]; + V[4] = (RHS4 - tmp4) / m_A10; + double tmp3 = 0.0; + tmp3 += m_A9 * V[6]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A6 * V[7]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[6]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[6]; V[0] = (RHS0 - tmp0) / m_A0; } -// starcas -static void nl_gcr_88a8ef5f6bd43d48_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// spacfury +static void nl_gcr_b7b209d222c0a9a6_91_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -19387,71 +45666,586 @@ double m_A9(0.0); double m_A10(0.0); double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; - m_A4 += go[2]; - m_A3 += go[3]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; RHS1 += Idr[4]; - RHS1 -= go[4] * *cnV[4]; - m_A7 += gt[5]; - m_A7 += gt[6]; - m_A7 += gt[7]; - m_A6 += go[5]; - m_A5 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 -= go[7] * *cnV[7]; - m_A11 += gt[8]; - m_A11 += gt[9]; - m_A11 += gt[10]; - m_A9 += go[8]; - double RHS3 = Idr[8]; - RHS3 += Idr[9]; - RHS3 += Idr[10]; - RHS3 -= go[9] * *cnV[9]; - RHS3 -= go[10] * *cnV[10]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; + m_A9 += go[10]; + m_A7 += go[11]; + m_A8 += go[12]; + m_A6 += go[13]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A12 += go[14]; + m_A11 += go[15]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 += Idr[20]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + RHS3 -= go[20] * *cnV[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A13 += gt[25]; + m_A13 += gt[26]; + m_A13 += gt[27]; + m_A14 += go[21]; + m_A15 += go[22]; + double RHS4 = Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 += Idr[26]; + RHS4 += Idr[27]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + RHS4 -= go[25] * *cnV[25]; + RHS4 -= go[26] * *cnV[26]; + RHS4 -= go[27] * *cnV[27]; + m_A16 += gt[28]; + m_A16 += gt[29]; + m_A16 += gt[30]; + m_A18 += go[28]; + m_A19 += go[29]; + m_A17 += go[30]; + double RHS5 = Idr[28]; + RHS5 += Idr[29]; + RHS5 += Idr[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A22 += go[31]; + m_A21 += go[32]; + double RHS6 = Idr[31]; + RHS6 += Idr[32]; + m_A23 += gt[33]; + m_A23 += gt[34]; + m_A23 += gt[35]; + m_A23 += gt[36]; + m_A24 += go[33]; + m_A24 += go[34]; + m_A25 += go[35]; + double RHS7 = Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 -= go[36] * *cnV[36]; + m_A28 += gt[37]; + m_A28 += gt[38]; + m_A28 += gt[39]; + m_A28 += gt[40]; + m_A27 += go[37]; + m_A26 += go[38]; + double RHS8 = Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + RHS8 += Idr[40]; + RHS8 -= go[39] * *cnV[39]; + RHS8 -= go[40] * *cnV[40]; + m_A38 += gt[41]; + m_A38 += gt[42]; + m_A38 += gt[43]; + m_A38 += gt[44]; + m_A38 += gt[45]; + m_A34 += go[41]; + m_A36 += go[42]; + m_A35 += go[43]; + double RHS9 = Idr[41]; + RHS9 += Idr[42]; + RHS9 += Idr[43]; + RHS9 += Idr[44]; + RHS9 += Idr[45]; + RHS9 -= go[44] * *cnV[44]; + RHS9 -= go[45] * *cnV[45]; + m_A45 += gt[46]; + m_A45 += gt[47]; + m_A45 += gt[48]; + m_A45 += gt[49]; + m_A46 += go[46]; + m_A44 += go[47]; + double RHS10 = Idr[46]; + RHS10 += Idr[47]; + RHS10 += Idr[48]; + RHS10 += Idr[49]; + RHS10 -= go[48] * *cnV[48]; + RHS10 -= go[49] * *cnV[49]; + m_A50 += gt[50]; + m_A50 += gt[51]; + m_A50 += gt[52]; + m_A54 += go[50]; + m_A47 += go[51]; + double RHS11 = Idr[50]; + RHS11 += Idr[51]; + RHS11 += Idr[52]; + RHS11 -= go[52] * *cnV[52]; + m_A59 += gt[53]; + m_A59 += gt[54]; + m_A59 += gt[55]; + m_A59 += gt[56]; + m_A59 += gt[57]; + m_A59 += gt[58]; + m_A56 += go[53]; + m_A56 += go[54]; + m_A55 += go[55]; + double RHS12 = Idr[53]; + RHS12 += Idr[54]; + RHS12 += Idr[55]; + RHS12 += Idr[56]; + RHS12 += Idr[57]; + RHS12 += Idr[58]; + RHS12 -= go[56] * *cnV[56]; + RHS12 -= go[57] * *cnV[57]; + RHS12 -= go[58] * *cnV[58]; + m_A69 += gt[59]; + m_A69 += gt[60]; + m_A69 += gt[61]; + m_A69 += gt[62]; + m_A69 += gt[63]; + m_A63 += go[59]; + m_A64 += go[60]; + m_A71 += go[61]; + double RHS13 = Idr[59]; + RHS13 += Idr[60]; + RHS13 += Idr[61]; + RHS13 += Idr[62]; + RHS13 += Idr[63]; + RHS13 -= go[62] * *cnV[62]; + RHS13 -= go[63] * *cnV[63]; + m_A80 += gt[64]; + m_A80 += gt[65]; + m_A80 += gt[66]; + m_A80 += gt[67]; + m_A80 += gt[68]; + m_A72 += go[64]; + m_A73 += go[65]; + m_A76 += go[66]; + double RHS14 = Idr[64]; + RHS14 += Idr[65]; + RHS14 += Idr[66]; + RHS14 += Idr[67]; + RHS14 += Idr[68]; + RHS14 -= go[67] * *cnV[67]; + RHS14 -= go[68] * *cnV[68]; + m_A90 += gt[69]; + m_A90 += gt[70]; + m_A90 += gt[71]; + m_A90 += gt[72]; + m_A83 += go[69]; + m_A88 += go[70]; + m_A86 += go[71]; + m_A82 += go[72]; + double RHS15 = Idr[69]; + RHS15 += Idr[70]; + RHS15 += Idr[71]; + RHS15 += Idr[72]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A7 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_10 = -f0 * m_A44; + m_A45 += m_A1 * f0_10; + RHS10 += f0_10 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A6; - m_A7 += m_A3 * f1_2; - m_A8 += m_A4 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A7; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A8 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; + const double f1_14 = -f1 * m_A72; + m_A76 += m_A3 * f1_14; + m_A80 += m_A4 * f1_14; + RHS14 += f1_14 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_8 = -f2 * m_A26; + m_A28 += m_A6 * f2_8; + m_A30 += m_A7 * f2_8; + m_A32 += m_A8 * f2_8; + m_A33 += m_A9 * f2_8; + RHS8 += f2_8 * RHS2; + const double f2_11 = -f2 * m_A47; + m_A48 += m_A6 * f2_11; + m_A50 += m_A7 * f2_11; + m_A53 += m_A8 * f2_11; + m_A54 += m_A9 * f2_11; + RHS11 += f2_11 * RHS2; + const double f2_14 = -f2 * m_A73; + m_A74 += m_A6 * f2_14; + m_A77 += m_A7 * f2_14; + m_A80 += m_A8 * f2_14; + m_A81 += m_A9 * f2_14; + RHS14 += f2_14 * RHS2; + const double f2_15 = -f2 * m_A82; + m_A84 += m_A6 * f2_15; + m_A86 += m_A7 * f2_15; + m_A89 += m_A8 * f2_15; + m_A90 += m_A9 * f2_15; + RHS15 += f2_15 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_13 = -f3 * m_A63; + m_A67 += m_A11 * f3_13; + m_A71 += m_A12 * f3_13; + RHS13 += f3_13 * RHS3; + const double f4 = 1.0 / m_A13; + const double f4_9 = -f4 * m_A34; + m_A35 += m_A14 * f4_9; + m_A41 += m_A15 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A16; + const double f5_8 = -f5 * m_A27; + m_A28 += m_A17 * f5_8; + m_A29 += m_A18 * f5_8; + m_A31 += m_A19 * f5_8; + RHS8 += f5_8 * RHS5; + const double f5_9 = -f5 * m_A35; + m_A37 += m_A17 * f5_9; + m_A38 += m_A18 * f5_9; + m_A41 += m_A19 * f5_9; + RHS9 += f5_9 * RHS5; + const double f5_13 = -f5 * m_A64; + m_A65 += m_A17 * f5_13; + m_A66 += m_A18 * f5_13; + m_A69 += m_A19 * f5_13; + RHS13 += f5_13 * RHS5; + const double f6 = 1.0 / m_A20; + const double f6_9 = -f6 * m_A36; + m_A38 += m_A21 * f6_9; + m_A40 += m_A22 * f6_9; + RHS9 += f6_9 * RHS6; + const double f6_12 = -f6 * m_A55; + m_A57 += m_A21 * f6_12; + m_A59 += m_A22 * f6_12; + RHS12 += f6_12 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_12 = -f7 * m_A56; + m_A59 += m_A24 * f7_12; + m_A62 += m_A25 * f7_12; + RHS12 += f7_12 * RHS7; + const double f7_15 = -f7 * m_A83; + m_A87 += m_A24 * f7_15; + m_A90 += m_A25 * f7_15; + RHS15 += f7_15 * RHS7; + const double f8 = 1.0 / m_A28; + const double f8_9 = -f8 * m_A37; + m_A38 += m_A29 * f8_9; + m_A39 += m_A30 * f8_9; + m_A41 += m_A31 * f8_9; + m_A42 += m_A32 * f8_9; + m_A43 += m_A33 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_11 = -f8 * m_A48; + m_A49 += m_A29 * f8_11; + m_A50 += m_A30 * f8_11; + m_A52 += m_A31 * f8_11; + m_A53 += m_A32 * f8_11; + m_A54 += m_A33 * f8_11; + RHS11 += f8_11 * RHS8; + const double f8_13 = -f8 * m_A65; + m_A66 += m_A29 * f8_13; + m_A67 += m_A30 * f8_13; + m_A69 += m_A31 * f8_13; + m_A70 += m_A32 * f8_13; + m_A71 += m_A33 * f8_13; + RHS13 += f8_13 * RHS8; + const double f8_14 = -f8 * m_A74; + m_A75 += m_A29 * f8_14; + m_A77 += m_A30 * f8_14; + m_A79 += m_A31 * f8_14; + m_A80 += m_A32 * f8_14; + m_A81 += m_A33 * f8_14; + RHS14 += f8_14 * RHS8; + const double f8_15 = -f8 * m_A84; + m_A85 += m_A29 * f8_15; + m_A86 += m_A30 * f8_15; + m_A88 += m_A31 * f8_15; + m_A89 += m_A32 * f8_15; + m_A90 += m_A33 * f8_15; + RHS15 += f8_15 * RHS8; + const double f9 = 1.0 / m_A38; + const double f9_11 = -f9 * m_A49; + m_A50 += m_A39 * f9_11; + m_A51 += m_A40 * f9_11; + m_A52 += m_A41 * f9_11; + m_A53 += m_A42 * f9_11; + m_A54 += m_A43 * f9_11; + RHS11 += f9_11 * RHS9; + const double f9_12 = -f9 * m_A57; + m_A58 += m_A39 * f9_12; + m_A59 += m_A40 * f9_12; + m_A60 += m_A41 * f9_12; + m_A61 += m_A42 * f9_12; + m_A62 += m_A43 * f9_12; + RHS12 += f9_12 * RHS9; + const double f9_13 = -f9 * m_A66; + m_A67 += m_A39 * f9_13; + m_A68 += m_A40 * f9_13; + m_A69 += m_A41 * f9_13; + m_A70 += m_A42 * f9_13; + m_A71 += m_A43 * f9_13; + RHS13 += f9_13 * RHS9; + const double f9_14 = -f9 * m_A75; + m_A77 += m_A39 * f9_14; + m_A78 += m_A40 * f9_14; + m_A79 += m_A41 * f9_14; + m_A80 += m_A42 * f9_14; + m_A81 += m_A43 * f9_14; + RHS14 += f9_14 * RHS9; + const double f9_15 = -f9 * m_A85; + m_A86 += m_A39 * f9_15; + m_A87 += m_A40 * f9_15; + m_A88 += m_A41 * f9_15; + m_A89 += m_A42 * f9_15; + m_A90 += m_A43 * f9_15; + RHS15 += f9_15 * RHS9; + const double f10 = 1.0 / m_A45; + const double f10_14 = -f10 * m_A76; + m_A80 += m_A46 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A50; + const double f11_12 = -f11 * m_A58; + m_A59 += m_A51 * f11_12; + m_A60 += m_A52 * f11_12; + m_A61 += m_A53 * f11_12; + m_A62 += m_A54 * f11_12; + RHS12 += f11_12 * RHS11; + const double f11_13 = -f11 * m_A67; + m_A68 += m_A51 * f11_13; + m_A69 += m_A52 * f11_13; + m_A70 += m_A53 * f11_13; + m_A71 += m_A54 * f11_13; + RHS13 += f11_13 * RHS11; + const double f11_14 = -f11 * m_A77; + m_A78 += m_A51 * f11_14; + m_A79 += m_A52 * f11_14; + m_A80 += m_A53 * f11_14; + m_A81 += m_A54 * f11_14; + RHS14 += f11_14 * RHS11; + const double f11_15 = -f11 * m_A86; + m_A87 += m_A51 * f11_15; + m_A88 += m_A52 * f11_15; + m_A89 += m_A53 * f11_15; + m_A90 += m_A54 * f11_15; + RHS15 += f11_15 * RHS11; + const double f12 = 1.0 / m_A59; + const double f12_13 = -f12 * m_A68; + m_A69 += m_A60 * f12_13; + m_A70 += m_A61 * f12_13; + m_A71 += m_A62 * f12_13; + RHS13 += f12_13 * RHS12; + const double f12_14 = -f12 * m_A78; + m_A79 += m_A60 * f12_14; + m_A80 += m_A61 * f12_14; + m_A81 += m_A62 * f12_14; + RHS14 += f12_14 * RHS12; + const double f12_15 = -f12 * m_A87; + m_A88 += m_A60 * f12_15; + m_A89 += m_A61 * f12_15; + m_A90 += m_A62 * f12_15; + RHS15 += f12_15 * RHS12; + const double f13 = 1.0 / m_A69; + const double f13_14 = -f13 * m_A79; + m_A80 += m_A70 * f13_14; + m_A81 += m_A71 * f13_14; + RHS14 += f13_14 * RHS13; + const double f13_15 = -f13 * m_A88; + m_A89 += m_A70 * f13_15; + m_A90 += m_A71 * f13_15; + RHS15 += f13_15 * RHS13; + const double f14 = 1.0 / m_A80; + const double f14_15 = -f14 * m_A89; + m_A90 += m_A81 * f14_15; + RHS15 += f14_15 * RHS14; + V[15] = RHS15 / m_A90; + double tmp14 = 0.0; + tmp14 += m_A81 * V[15]; + V[14] = (RHS14 - tmp14) / m_A80; + double tmp13 = 0.0; + tmp13 += m_A70 * V[14]; + tmp13 += m_A71 * V[15]; + V[13] = (RHS13 - tmp13) / m_A69; + double tmp12 = 0.0; + tmp12 += m_A60 * V[13]; + tmp12 += m_A61 * V[14]; + tmp12 += m_A62 * V[15]; + V[12] = (RHS12 - tmp12) / m_A59; + double tmp11 = 0.0; + tmp11 += m_A51 * V[12]; + tmp11 += m_A52 * V[13]; + tmp11 += m_A53 * V[14]; + tmp11 += m_A54 * V[15]; + V[11] = (RHS11 - tmp11) / m_A50; + double tmp10 = 0.0; + tmp10 += m_A46 * V[14]; + V[10] = (RHS10 - tmp10) / m_A45; + double tmp9 = 0.0; + tmp9 += m_A39 * V[11]; + tmp9 += m_A40 * V[12]; + tmp9 += m_A41 * V[13]; + tmp9 += m_A42 * V[14]; + tmp9 += m_A43 * V[15]; + V[9] = (RHS9 - tmp9) / m_A38; + double tmp8 = 0.0; + tmp8 += m_A29 * V[9]; + tmp8 += m_A30 * V[11]; + tmp8 += m_A31 * V[13]; + tmp8 += m_A32 * V[14]; + tmp8 += m_A33 * V[15]; + V[8] = (RHS8 - tmp8) / m_A28; + double tmp7 = 0.0; + tmp7 += m_A24 * V[12]; + tmp7 += m_A25 * V[15]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A21 * V[9]; + tmp6 += m_A22 * V[12]; + V[6] = (RHS6 - tmp6) / m_A20; + double tmp5 = 0.0; + tmp5 += m_A17 * V[8]; + tmp5 += m_A18 * V[9]; + tmp5 += m_A19 * V[13]; + V[5] = (RHS5 - tmp5) / m_A16; + double tmp4 = 0.0; + tmp4 += m_A14 * V[5]; + tmp4 += m_A15 * V[13]; + V[4] = (RHS4 - tmp4) / m_A13; + double tmp3 = 0.0; + tmp3 += m_A11 * V[11]; + tmp3 += m_A12 * V[15]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A8 * V[3]; - V[2] = (RHS2 - tmp2) / m_A7; + tmp2 += m_A6 * V[8]; + tmp2 += m_A7 * V[11]; + tmp2 += m_A8 * V[14]; + tmp2 += m_A9 * V[15]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[3]; + tmp1 += m_A3 * V[10]; + tmp1 += m_A4 * V[14]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[10]; V[0] = (RHS0 - tmp0) / m_A0; } -// breakout -static void nl_gcr_8a1565d1413f42f7_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// boxingb +static void nl_gcr_b8d6d148a50bdb8f_55_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -19487,196 +46281,366 @@ double m_A28(0.0); double m_A29(0.0); double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; - m_A0 += gt[4]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; - RHS0 += Idr[4]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[4]; m_A2 += gt[5]; m_A2 += gt[6]; m_A2 += gt[7]; - m_A3 += go[5]; - double RHS1 = Idr[5]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A5 += go[4]; + m_A4 += go[5]; + m_A4 += go[6]; + m_A3 += go[7]; + m_A3 += go[8]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A5 += go[8]; - m_A6 += go[9]; - double RHS2 = Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[10] * *cnV[10]; - m_A7 += gt[11]; - m_A7 += gt[12]; - m_A7 += gt[13]; - m_A8 += go[11]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; - m_A9 += gt[14]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A8 += go[12]; + m_A7 += go[13]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 -= go[14] * *cnV[14]; m_A9 += gt[15]; m_A9 += gt[16]; - m_A10 += go[14]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 -= go[15] * *cnV[15]; - RHS4 -= go[16] * *cnV[16]; - m_A12 += gt[17]; - m_A12 += gt[18]; - m_A12 += gt[19]; - m_A12 += gt[20]; - m_A12 += gt[21]; - m_A12 += gt[22]; - m_A12 += gt[23]; - m_A14 += go[17]; - m_A13 += go[18]; - m_A11 += go[19]; - double RHS5 = Idr[17]; - RHS5 += Idr[18]; - RHS5 += Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 -= go[20] * *cnV[20]; - RHS5 -= go[21] * *cnV[21]; - RHS5 -= go[22] * *cnV[22]; - RHS5 -= go[23] * *cnV[23]; - m_A16 += gt[24]; - m_A16 += gt[25]; - m_A16 += gt[26]; - m_A16 += gt[27]; - m_A16 += gt[28]; - m_A18 += go[24]; - m_A15 += go[25]; - double RHS6 = Idr[24]; - RHS6 += Idr[25]; - RHS6 += Idr[26]; - RHS6 += Idr[27]; - RHS6 += Idr[28]; - RHS6 -= go[26] * *cnV[26]; - RHS6 -= go[27] * *cnV[27]; - RHS6 -= go[28] * *cnV[28]; - m_A23 += gt[29]; - m_A23 += gt[30]; - m_A23 += gt[31]; - m_A19 += go[29]; - m_A20 += go[30]; - m_A21 += go[31]; - double RHS7 = Idr[29]; - RHS7 += Idr[30]; - RHS7 += Idr[31]; - m_A30 += gt[32]; - m_A30 += gt[33]; - m_A30 += gt[34]; - m_A30 += gt[35]; - m_A30 += gt[36]; - m_A26 += go[32]; - m_A25 += go[33]; - m_A28 += go[34]; - m_A27 += go[35]; - double RHS8 = Idr[32]; - RHS8 += Idr[33]; - RHS8 += Idr[34]; - RHS8 += Idr[35]; - RHS8 += Idr[36]; - RHS8 -= go[36] * *cnV[36]; + m_A9 += gt[17]; + m_A9 += gt[18]; + m_A10 += go[15]; + double RHS3 = Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A11 += gt[23]; + m_A11 += gt[24]; + m_A11 += gt[25]; + m_A11 += gt[26]; + m_A14 += go[19]; + m_A13 += go[20]; + m_A13 += go[21]; + m_A12 += go[22]; + m_A12 += go[23]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 += Idr[26]; + RHS4 -= go[24] * *cnV[24]; + RHS4 -= go[25] * *cnV[25]; + RHS4 -= go[26] * *cnV[26]; + m_A15 += gt[27]; + m_A15 += gt[28]; + m_A15 += gt[29]; + m_A17 += go[27]; + m_A16 += go[28]; + double RHS5 = Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 -= go[29] * *cnV[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A20 += gt[34]; + m_A20 += gt[35]; + m_A19 += go[30]; + m_A19 += go[31]; + m_A18 += go[32]; + double RHS6 = Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 += Idr[34]; + RHS6 += Idr[35]; + RHS6 -= go[33] * *cnV[33]; + RHS6 -= go[34] * *cnV[34]; + RHS6 -= go[35] * *cnV[35]; + m_A25 += gt[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A25 += gt[39]; + m_A25 += gt[40]; + m_A26 += go[36]; + m_A26 += go[37]; + m_A23 += go[38]; + m_A23 += go[39]; + double RHS7 = Idr[36]; + RHS7 += Idr[37]; + RHS7 += Idr[38]; + RHS7 += Idr[39]; + RHS7 += Idr[40]; + RHS7 -= go[40] * *cnV[40]; + m_A29 += gt[41]; + m_A29 += gt[42]; + m_A29 += gt[43]; + m_A29 += gt[44]; + m_A29 += gt[45]; + m_A29 += gt[46]; + m_A28 += go[41]; + m_A28 += go[42]; + m_A27 += go[43]; + double RHS8 = Idr[41]; + RHS8 += Idr[42]; + RHS8 += Idr[43]; + RHS8 += Idr[44]; + RHS8 += Idr[45]; + RHS8 += Idr[46]; + RHS8 -= go[44] * *cnV[44]; + RHS8 -= go[45] * *cnV[45]; + RHS8 -= go[46] * *cnV[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A34 += gt[49]; + m_A34 += gt[50]; + m_A34 += gt[51]; + m_A35 += go[47]; + m_A35 += go[48]; + m_A32 += go[49]; + m_A32 += go[50]; + double RHS9 = Idr[47]; + RHS9 += Idr[48]; + RHS9 += Idr[49]; + RHS9 += Idr[50]; + RHS9 += Idr[51]; + RHS9 -= go[51] * *cnV[51]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A38 += gt[54]; + m_A37 += go[52]; + m_A36 += go[53]; + double RHS10 = Idr[52]; + RHS10 += Idr[53]; + RHS10 += Idr[54]; + RHS10 -= go[54] * *cnV[54]; + m_A46 += gt[55]; + m_A46 += gt[56]; + m_A46 += gt[57]; + m_A46 += gt[58]; + m_A42 += go[55]; + m_A44 += go[56]; + m_A44 += go[57]; + m_A41 += go[58]; + double RHS11 = Idr[55]; + RHS11 += Idr[56]; + RHS11 += Idr[57]; + RHS11 += Idr[58]; + m_A54 += gt[59]; + m_A54 += gt[60]; + m_A54 += gt[61]; + m_A54 += gt[62]; + m_A49 += go[59]; + m_A51 += go[60]; + m_A51 += go[61]; + m_A48 += go[62]; + double RHS12 = Idr[59]; + RHS12 += Idr[60]; + RHS12 += Idr[61]; + RHS12 += Idr[62]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A11; - m_A12 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; + const double f0_6 = -f0 * m_A18; + m_A20 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A19; - m_A23 += m_A3 * f1_7; + const double f1_6 = -f1 * m_A19; + m_A20 += m_A3 * f1_6; + m_A21 += m_A4 * f1_6; + m_A22 += m_A5 * f1_6; + RHS6 += f1_6 * RHS1; + const double f1_7 = -f1 * m_A23; + m_A24 += m_A3 * f1_7; + m_A25 += m_A4 * f1_7; + m_A26 += m_A5 * f1_7; RHS7 += f1_7 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A15; - m_A16 += m_A5 * f2_6; - m_A17 += m_A6 * f2_6; - RHS6 += f2_6 * RHS2; - const double f2_7 = -f2 * m_A20; - m_A22 += m_A5 * f2_7; - m_A23 += m_A6 * f2_7; - RHS7 += f2_7 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_8 = -f3 * m_A25; - m_A30 += m_A8 * f3_8; + const double f1_11 = -f1 * m_A41; + m_A43 += m_A3 * f1_11; + m_A44 += m_A4 * f1_11; + m_A46 += m_A5 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_10 = -f2 * m_A36; + m_A38 += m_A7 * f2_10; + m_A39 += m_A8 * f2_10; + RHS10 += f2_10 * RHS2; + const double f2_11 = -f2 * m_A42; + m_A45 += m_A7 * f2_11; + m_A46 += m_A8 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_8 = -f3 * m_A27; + m_A29 += m_A10 * f3_8; RHS8 += f3_8 * RHS3; - const double f4 = 1.0 / m_A9; - const double f4_8 = -f4 * m_A26; - m_A30 += m_A10 * f4_8; + const double f4 = 1.0 / m_A11; + const double f4_8 = -f4 * m_A28; + m_A29 += m_A12 * f4_8; + m_A30 += m_A13 * f4_8; + m_A31 += m_A14 * f4_8; RHS8 += f4_8 * RHS4; - const double f5 = 1.0 / m_A12; - const double f5_7 = -f5 * m_A21; - m_A23 += m_A13 * f5_7; - m_A24 += m_A14 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A27; - m_A29 += m_A13 * f5_8; - m_A30 += m_A14 * f5_8; - RHS8 += f5_8 * RHS5; - const double f6 = 1.0 / m_A16; - const double f6_7 = -f6 * m_A22; - m_A23 += m_A17 * f6_7; - m_A24 += m_A18 * f6_7; + const double f4_9 = -f4 * m_A32; + m_A33 += m_A12 * f4_9; + m_A34 += m_A13 * f4_9; + m_A35 += m_A14 * f4_9; + RHS9 += f4_9 * RHS4; + const double f4_12 = -f4 * m_A48; + m_A50 += m_A12 * f4_12; + m_A51 += m_A13 * f4_12; + m_A54 += m_A14 * f4_12; + RHS12 += f4_12 * RHS4; + const double f5 = 1.0 / m_A15; + const double f5_10 = -f5 * m_A37; + m_A38 += m_A16 * f5_10; + m_A40 += m_A17 * f5_10; + RHS10 += f5_10 * RHS5; + const double f5_12 = -f5 * m_A49; + m_A52 += m_A16 * f5_12; + m_A54 += m_A17 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A20; + const double f6_7 = -f6 * m_A24; + m_A25 += m_A21 * f6_7; + m_A26 += m_A22 * f6_7; RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A28; - m_A29 += m_A17 * f6_8; - m_A30 += m_A18 * f6_8; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A23; - const double f7_8 = -f7 * m_A29; - m_A30 += m_A24 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A30; + const double f6_11 = -f6 * m_A43; + m_A44 += m_A21 * f6_11; + m_A46 += m_A22 * f6_11; + RHS11 += f6_11 * RHS6; + const double f7 = 1.0 / m_A25; + const double f7_11 = -f7 * m_A44; + m_A46 += m_A26 * f7_11; + RHS11 += f7_11 * RHS7; + const double f8 = 1.0 / m_A29; + const double f8_9 = -f8 * m_A33; + m_A34 += m_A30 * f8_9; + m_A35 += m_A31 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_12 = -f8 * m_A50; + m_A51 += m_A30 * f8_12; + m_A54 += m_A31 * f8_12; + RHS12 += f8_12 * RHS8; + const double f9 = 1.0 / m_A34; + const double f9_12 = -f9 * m_A51; + m_A54 += m_A35 * f9_12; + RHS12 += f9_12 * RHS9; + const double f10 = 1.0 / m_A38; + const double f10_11 = -f10 * m_A45; + m_A46 += m_A39 * f10_11; + m_A47 += m_A40 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_12 = -f10 * m_A52; + m_A53 += m_A39 * f10_12; + m_A54 += m_A40 * f10_12; + RHS12 += f10_12 * RHS10; + const double f11 = 1.0 / m_A46; + const double f11_12 = -f11 * m_A53; + m_A54 += m_A47 * f11_12; + RHS12 += f11_12 * RHS11; + V[12] = RHS12 / m_A54; + double tmp11 = 0.0; + tmp11 += m_A47 * V[12]; + V[11] = (RHS11 - tmp11) / m_A46; + double tmp10 = 0.0; + tmp10 += m_A39 * V[11]; + tmp10 += m_A40 * V[12]; + V[10] = (RHS10 - tmp10) / m_A38; + double tmp9 = 0.0; + tmp9 += m_A35 * V[12]; + V[9] = (RHS9 - tmp9) / m_A34; + double tmp8 = 0.0; + tmp8 += m_A30 * V[9]; + tmp8 += m_A31 * V[12]; + V[8] = (RHS8 - tmp8) / m_A29; double tmp7 = 0.0; - tmp7 += m_A24 * V[8]; - V[7] = (RHS7 - tmp7) / m_A23; + tmp7 += m_A26 * V[11]; + V[7] = (RHS7 - tmp7) / m_A25; double tmp6 = 0.0; - tmp6 += m_A17 * V[7]; - tmp6 += m_A18 * V[8]; - V[6] = (RHS6 - tmp6) / m_A16; + tmp6 += m_A21 * V[7]; + tmp6 += m_A22 * V[11]; + V[6] = (RHS6 - tmp6) / m_A20; double tmp5 = 0.0; - tmp5 += m_A13 * V[7]; - tmp5 += m_A14 * V[8]; - V[5] = (RHS5 - tmp5) / m_A12; + tmp5 += m_A16 * V[10]; + tmp5 += m_A17 * V[12]; + V[5] = (RHS5 - tmp5) / m_A15; double tmp4 = 0.0; - tmp4 += m_A10 * V[8]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A12 * V[8]; + tmp4 += m_A13 * V[9]; + tmp4 += m_A14 * V[12]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A8 * V[8]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A10 * V[8]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; - tmp2 += m_A6 * V[7]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[10]; + tmp2 += m_A8 * V[11]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; + tmp1 += m_A3 * V[6]; + tmp1 += m_A4 * V[7]; + tmp1 += m_A5 * V[11]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[6]; V[0] = (RHS0 - tmp0) / m_A0; } -// starhawk -static void nl_gcr_8b1ac1e181eec3fc_40_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// 280zzzap +static void nl_gcr_bb501e6a23177009_57_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -19721,235 +46685,354 @@ double m_A37(0.0); double m_A38(0.0); double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; + m_A3 += go[3]; + double RHS1 = Idr[3]; RHS1 += Idr[4]; - RHS1 -= go[3] * *cnV[3]; RHS1 -= go[4] * *cnV[4]; m_A4 += gt[5]; m_A4 += gt[6]; m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; m_A5 += go[5]; double RHS2 = Idr[5]; RHS2 += Idr[6]; RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; RHS2 -= go[6] * *cnV[6]; RHS2 -= go[7] * *cnV[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A8 += go[8]; - m_A8 += go[9]; - m_A7 += go[10]; - double RHS3 = Idr[8]; - RHS3 += Idr[9]; - RHS3 += Idr[10]; - m_A9 += gt[11]; - m_A9 += gt[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A9 += gt[15]; - m_A9 += gt[16]; - m_A9 += gt[17]; - m_A10 += go[11]; - double RHS4 = Idr[11]; - RHS4 += Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - RHS4 += Idr[15]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A9 += go[15]; + double RHS4 = Idr[15]; RHS4 += Idr[16]; RHS4 += Idr[17]; - RHS4 -= go[12] * *cnV[12]; - RHS4 -= go[13] * *cnV[13]; - RHS4 -= go[14] * *cnV[14]; - RHS4 -= go[15] * *cnV[15]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; RHS4 -= go[16] * *cnV[16]; RHS4 -= go[17] * *cnV[17]; - m_A11 += gt[18]; - m_A11 += gt[19]; - m_A11 += gt[20]; - m_A11 += gt[21]; - m_A12 += go[18]; - m_A12 += go[19]; - m_A13 += go[20]; - double RHS5 = Idr[18]; - RHS5 += Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 -= go[21] * *cnV[21]; - m_A14 += gt[22]; - m_A14 += gt[23]; - m_A16 += go[22]; - m_A15 += go[23]; - double RHS6 = Idr[22]; - RHS6 += Idr[23]; - m_A19 += gt[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A18 += go[24]; - m_A17 += go[25]; - double RHS7 = Idr[24]; - RHS7 += Idr[25]; - RHS7 += Idr[26]; - RHS7 -= go[26] * *cnV[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A23 += go[27]; - m_A21 += go[28]; - double RHS8 = Idr[27]; - RHS8 += Idr[28]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A14 += go[24]; + m_A13 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[26]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[28]; + double RHS8 = Idr[28]; RHS8 += Idr[29]; RHS8 -= go[29] * *cnV[29]; - m_A26 += gt[30]; - m_A26 += gt[31]; - m_A26 += gt[32]; - m_A25 += go[30]; - m_A24 += go[31]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A19 += go[30]; double RHS9 = Idr[30]; RHS9 += Idr[31]; RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[31] * *cnV[31]; RHS9 -= go[32] * *cnV[32]; - m_A32 += gt[33]; - m_A32 += gt[34]; - m_A32 += gt[35]; - m_A32 += gt[36]; - m_A32 += gt[37]; - m_A32 += gt[38]; - m_A28 += go[33]; - m_A30 += go[34]; - m_A29 += go[35]; - m_A29 += go[36]; - double RHS10 = Idr[33]; - RHS10 += Idr[34]; + RHS9 -= go[33] * *cnV[33]; + m_A24 += gt[34]; + m_A24 += gt[35]; + m_A23 += go[34]; + m_A22 += go[35]; + double RHS10 = Idr[34]; RHS10 += Idr[35]; - RHS10 += Idr[36]; - RHS10 += Idr[37]; - RHS10 += Idr[38]; - RHS10 -= go[37] * *cnV[37]; - RHS10 -= go[38] * *cnV[38]; - m_A39 += gt[39]; - m_A39 += gt[40]; - m_A39 += gt[41]; - m_A39 += gt[42]; - m_A35 += go[39]; - m_A37 += go[40]; - m_A34 += go[41]; - m_A34 += go[42]; - double RHS11 = Idr[39]; - RHS11 += Idr[40]; - RHS11 += Idr[41]; - RHS11 += Idr[42]; + m_A27 += gt[36]; + m_A27 += gt[37]; + m_A27 += gt[38]; + m_A27 += gt[39]; + m_A26 += go[36]; + m_A28 += go[37]; + double RHS11 = Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + m_A31 += gt[40]; + m_A31 += gt[41]; + m_A31 += gt[42]; + m_A31 += gt[43]; + m_A31 += gt[44]; + m_A31 += gt[45]; + m_A29 += go[40]; + m_A33 += go[41]; + m_A32 += go[42]; + double RHS12 = Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 += Idr[45]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + RHS12 -= go[45] * *cnV[45]; + m_A36 += gt[46]; + m_A36 += gt[47]; + m_A34 += go[46]; + double RHS13 = Idr[46]; + RHS13 += Idr[47]; + RHS13 -= go[47] * *cnV[47]; + m_A39 += gt[48]; + m_A39 += gt[49]; + m_A39 += gt[50]; + m_A38 += go[48]; + m_A37 += go[49]; + double RHS14 = Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 -= go[50] * *cnV[50]; + m_A41 += gt[51]; + m_A41 += gt[52]; + m_A41 += gt[53]; + m_A41 += gt[54]; + m_A40 += go[51]; + m_A42 += go[52]; + double RHS15 = Idr[51]; + RHS15 += Idr[52]; + RHS15 += Idr[53]; + RHS15 += Idr[54]; + RHS15 -= go[53] * *cnV[53]; + RHS15 -= go[54] * *cnV[54]; + m_A49 += gt[55]; + m_A49 += gt[56]; + m_A49 += gt[57]; + m_A49 += gt[58]; + m_A49 += gt[59]; + m_A44 += go[55]; + m_A47 += go[56]; + m_A46 += go[57]; + m_A43 += go[58]; + m_A45 += go[59]; + double RHS16 = Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + m_A56 += gt[60]; + m_A56 += gt[61]; + m_A56 += gt[62]; + m_A56 += gt[63]; + m_A54 += go[60]; + m_A53 += go[61]; + m_A51 += go[62]; + m_A52 += go[63]; + double RHS17 = Idr[60]; + RHS17 += Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A24; - m_A26 += m_A1 * f0_9; - RHS9 += f0_9 * RHS0; + const double f0_11 = -f0 * m_A26; + m_A28 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f0_16 = -f0 * m_A43; + m_A49 += m_A1 * f0_16; + RHS16 += f0_16 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A17; - m_A19 += m_A3 * f1_7; - RHS7 += f1_7 * RHS1; + const double f1_16 = -f1 * m_A44; + m_A49 += m_A3 * f1_16; + RHS16 += f1_16 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_8 = -f2 * m_A21; - m_A22 += m_A5 * f2_8; - RHS8 += f2_8 * RHS2; + const double f2_12 = -f2 * m_A29; + m_A30 += m_A5 * f2_12; + RHS12 += f2_12 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_7 = -f3 * m_A18; - m_A19 += m_A7 * f3_7; - m_A20 += m_A8 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_11 = -f3 * m_A34; - m_A36 += m_A7 * f3_11; - m_A39 += m_A8 * f3_11; - RHS11 += f3_11 * RHS3; - const double f4 = 1.0 / m_A9; - const double f4_10 = -f4 * m_A28; - m_A29 += m_A10 * f4_10; - RHS10 += f4_10 * RHS4; - const double f5 = 1.0 / m_A11; - const double f5_10 = -f5 * m_A29; - m_A32 += m_A12 * f5_10; - m_A33 += m_A13 * f5_10; + const double f3_15 = -f3 * m_A40; + m_A42 += m_A7 * f3_15; + RHS15 += f3_15 * RHS3; + const double f3_17 = -f3 * m_A51; + m_A56 += m_A7 * f3_17; + RHS17 += f3_17 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_9 = -f4 * m_A19; + m_A21 += m_A9 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_10 = -f5 * m_A22; + m_A24 += m_A11 * f5_10; RHS10 += f5_10 * RHS5; - const double f5_11 = -f5 * m_A35; - m_A38 += m_A12 * f5_11; - m_A39 += m_A13 * f5_11; - RHS11 += f5_11 * RHS5; - const double f6 = 1.0 / m_A14; - const double f6_9 = -f6 * m_A25; - m_A26 += m_A15 * f6_9; - m_A27 += m_A16 * f6_9; - RHS9 += f6_9 * RHS6; - const double f6_10 = -f6 * m_A30; - m_A31 += m_A15 * f6_10; - m_A32 += m_A16 * f6_10; + const double f5_16 = -f5 * m_A45; + m_A46 += m_A11 * f5_16; + RHS16 += f5_16 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_10 = -f6 * m_A23; + m_A24 += m_A13 * f6_10; + m_A25 += m_A14 * f6_10; RHS10 += f6_10 * RHS6; - const double f7 = 1.0 / m_A19; - const double f7_11 = -f7 * m_A36; - m_A39 += m_A20 * f7_11; - RHS11 += f7_11 * RHS7; - const double f8 = 1.0 / m_A22; - const double f8_11 = -f8 * m_A37; - m_A39 += m_A23 * f8_11; - RHS11 += f8_11 * RHS8; - const double f9 = 1.0 / m_A26; - const double f9_10 = -f9 * m_A31; - m_A32 += m_A27 * f9_10; - RHS10 += f9_10 * RHS9; - const double f10 = 1.0 / m_A32; - const double f10_11 = -f10 * m_A38; - m_A39 += m_A33 * f10_11; - RHS11 += f10_11 * RHS10; - V[11] = RHS11 / m_A39; + const double f6_13 = -f6 * m_A34; + m_A35 += m_A13 * f6_13; + m_A36 += m_A14 * f6_13; + RHS13 += f6_13 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_14 = -f7 * m_A37; + m_A39 += m_A16 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_17 = -f7 * m_A52; + m_A54 += m_A16 * f7_17; + RHS17 += f7_17 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_14 = -f8 * m_A38; + m_A39 += m_A18 * f8_14; + RHS14 += f8_14 * RHS8; + const double f10 = 1.0 / m_A24; + const double f10_13 = -f10 * m_A35; + m_A36 += m_A25 * f10_13; + RHS13 += f10_13 * RHS10; + const double f10_16 = -f10 * m_A46; + m_A48 += m_A25 * f10_16; + RHS16 += f10_16 * RHS10; + const double f11 = 1.0 / m_A27; + const double f11_12 = -f11 * m_A30; + m_A32 += m_A28 * f11_12; + RHS12 += f11_12 * RHS11; + const double f12 = 1.0 / m_A31; + const double f12_16 = -f12 * m_A47; + m_A49 += m_A32 * f12_16; + m_A50 += m_A33 * f12_16; + RHS16 += f12_16 * RHS12; + const double f12_17 = -f12 * m_A53; + m_A55 += m_A32 * f12_17; + m_A56 += m_A33 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A36; + const double f13_16 = -f13 * m_A48; + RHS16 += f13_16 * RHS13; + const double f14 = 1.0 / m_A39; + const double f14_17 = -f14 * m_A54; + RHS17 += f14_17 * RHS14; + const double f16 = 1.0 / m_A49; + const double f16_17 = -f16 * m_A55; + m_A56 += m_A50 * f16_17; + RHS17 += f16_17 * RHS16; + V[17] = RHS17 / m_A56; + double tmp16 = 0.0; + tmp16 += m_A50 * V[17]; + V[16] = (RHS16 - tmp16) / m_A49; + double tmp15 = 0.0; + tmp15 += m_A42 * V[17]; + V[15] = (RHS15 - tmp15) / m_A41; + double tmp14 = 0.0; + V[14] = (RHS14 - tmp14) / m_A39; + double tmp13 = 0.0; + V[13] = (RHS13 - tmp13) / m_A36; + double tmp12 = 0.0; + tmp12 += m_A32 * V[16]; + tmp12 += m_A33 * V[17]; + V[12] = (RHS12 - tmp12) / m_A31; + double tmp11 = 0.0; + tmp11 += m_A28 * V[16]; + V[11] = (RHS11 - tmp11) / m_A27; double tmp10 = 0.0; - tmp10 += m_A33 * V[11]; - V[10] = (RHS10 - tmp10) / m_A32; + tmp10 += m_A25 * V[13]; + V[10] = (RHS10 - tmp10) / m_A24; double tmp9 = 0.0; - tmp9 += m_A27 * V[10]; - V[9] = (RHS9 - tmp9) / m_A26; + tmp9 += m_A21 * V[15]; + V[9] = (RHS9 - tmp9) / m_A20; double tmp8 = 0.0; - tmp8 += m_A23 * V[11]; - V[8] = (RHS8 - tmp8) / m_A22; + tmp8 += m_A18 * V[14]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A20 * V[11]; - V[7] = (RHS7 - tmp7) / m_A19; + tmp7 += m_A16 * V[14]; + V[7] = (RHS7 - tmp7) / m_A15; double tmp6 = 0.0; - tmp6 += m_A15 * V[9]; - tmp6 += m_A16 * V[10]; - V[6] = (RHS6 - tmp6) / m_A14; + tmp6 += m_A13 * V[10]; + tmp6 += m_A14 * V[13]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A12 * V[10]; - tmp5 += m_A13 * V[11]; - V[5] = (RHS5 - tmp5) / m_A11; + tmp5 += m_A11 * V[10]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A10 * V[5]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A9 * V[15]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[7]; - tmp3 += m_A8 * V[11]; + tmp3 += m_A7 * V[17]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[8]; + tmp2 += m_A5 * V[11]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; + tmp1 += m_A3 * V[16]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; + tmp0 += m_A1 * V[16]; V[0] = (RHS0 - tmp0) / m_A0; } -// rebound -static void nl_gcr_8bec817b324dcc3_28_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// elim +static void nl_gcr_bb56fa5325163fc3_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -19969,217 +47052,117 @@ double m_A12(0.0); double m_A13(0.0); double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; m_A2 += gt[5]; m_A2 += gt[6]; - m_A4 += go[3]; - m_A4 += go[4]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; m_A3 += go[5]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; + double RHS1 = Idr[5]; RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; RHS1 -= go[6] * *cnV[6]; - m_A5 += gt[7]; - m_A5 += gt[8]; - m_A5 += gt[9]; - m_A6 += go[7]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - m_A7 += gt[10]; - m_A7 += gt[11]; - m_A7 += gt[12]; - m_A7 += gt[13]; - m_A7 += gt[14]; - m_A7 += gt[15]; - m_A7 += gt[16]; - m_A8 += go[10]; - m_A8 += go[11]; - double RHS3 = Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; - RHS3 -= go[14] * *cnV[14]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; - m_A11 += gt[17]; - m_A11 += gt[18]; - m_A11 += gt[19]; - m_A13 += go[17]; - m_A10 += go[18]; - m_A9 += go[19]; - double RHS4 = Idr[17]; - RHS4 += Idr[18]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A6 += go[12]; + m_A6 += go[13]; + m_A5 += go[14]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 -= go[15] * *cnV[15]; + m_A9 += gt[16]; + m_A9 += gt[17]; + m_A8 += go[16]; + m_A7 += go[17]; + double RHS3 = Idr[16]; + RHS3 += Idr[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A11 += go[18]; + m_A12 += go[19]; + m_A12 += go[20]; + double RHS4 = Idr[18]; RHS4 += Idr[19]; - m_A16 += gt[20]; - m_A16 += gt[21]; - m_A16 += gt[22]; - m_A16 += gt[23]; - m_A16 += gt[24]; - m_A16 += gt[25]; - m_A16 += gt[26]; - m_A18 += go[20]; - m_A14 += go[21]; - m_A14 += go[22]; - double RHS5 = Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; - RHS5 += Idr[26]; - RHS5 -= go[23] * *cnV[23]; - RHS5 -= go[24] * *cnV[24]; - RHS5 -= go[25] * *cnV[25]; - RHS5 -= go[26] * *cnV[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A22 += gt[30]; - m_A22 += gt[31]; - m_A22 += gt[32]; - m_A22 += gt[33]; - m_A22 += gt[34]; - m_A22 += gt[35]; - m_A22 += gt[36]; - m_A23 += go[27]; - m_A23 += go[28]; - m_A20 += go[29]; - m_A19 += go[30]; - m_A19 += go[31]; - double RHS6 = Idr[27]; - RHS6 += Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 += Idr[33]; - RHS6 += Idr[34]; - RHS6 += Idr[35]; - RHS6 += Idr[36]; - RHS6 -= go[32] * *cnV[32]; - RHS6 -= go[33] * *cnV[33]; - RHS6 -= go[34] * *cnV[34]; - RHS6 -= go[35] * *cnV[35]; - RHS6 -= go[36] * *cnV[36]; - m_A27 += gt[37]; - m_A27 += gt[38]; - m_A27 += gt[39]; - m_A27 += gt[40]; - m_A27 += gt[41]; - m_A26 += go[37]; - m_A26 += go[38]; - m_A25 += go[39]; - m_A24 += go[40]; - double RHS7 = Idr[37]; - RHS7 += Idr[38]; - RHS7 += Idr[39]; - RHS7 += Idr[40]; - RHS7 += Idr[41]; - RHS7 -= go[41] * *cnV[41]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A9; - m_A11 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; + const double f0_3 = -f0 * m_A7; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A10; - m_A11 += m_A3 * f1_4; - m_A12 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A14; - m_A15 += m_A3 * f1_5; - m_A16 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_7 = -f2 * m_A24; - m_A27 += m_A6 * f2_7; - RHS7 += f2_7 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_6 = -f3 * m_A19; - m_A22 += m_A8 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_5 = -f4 * m_A15; - m_A16 += m_A12 * f4_5; - m_A17 += m_A13 * f4_5; - RHS5 += f4_5 * RHS4; - const double f4_6 = -f4 * m_A20; - m_A21 += m_A12 * f4_6; - m_A22 += m_A13 * f4_6; - RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A16; - const double f5_6 = -f5 * m_A21; - m_A22 += m_A17 * f5_6; - m_A23 += m_A18 * f5_6; - RHS6 += f5_6 * RHS5; - const double f5_7 = -f5 * m_A25; - m_A26 += m_A17 * f5_7; - m_A27 += m_A18 * f5_7; - RHS7 += f5_7 * RHS5; - const double f6 = 1.0 / m_A22; - const double f6_7 = -f6 * m_A26; - m_A27 += m_A23 * f6_7; - RHS7 += f6_7 * RHS6; - V[7] = RHS7 / m_A27; - double tmp6 = 0.0; - tmp6 += m_A23 * V[7]; - V[6] = (RHS6 - tmp6) / m_A22; - double tmp5 = 0.0; - tmp5 += m_A17 * V[6]; - tmp5 += m_A18 * V[7]; - V[5] = (RHS5 - tmp5) / m_A16; - double tmp4 = 0.0; - tmp4 += m_A12 * V[5]; - tmp4 += m_A13 * V[6]; - V[4] = (RHS4 - tmp4) / m_A11; + const double f1_4 = -f1 * m_A11; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + m_A10 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + const double f2_4 = -f2 * m_A12; + m_A13 += m_A5 * f2_4; + m_A14 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A14; double tmp3 = 0.0; - tmp3 += m_A8 * V[6]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A6 * V[7]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[3]; + tmp2 += m_A6 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - tmp1 += m_A4 * V[5]; + tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// cocoloco -static void nl_gcr_8c0f7f2284333de5_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starfire +static void nl_gcr_bd1514d7defd4062_9_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -20193,13 +47176,6 @@ double m_A6(0.0); double m_A7(0.0); double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -20208,83 +47184,67 @@ RHS0 -= go[1] * *cnV[1]; m_A2 += gt[2]; m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; m_A3 += go[2]; double RHS1 = Idr[2]; RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A7 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - RHS3 -= go[7] * *cnV[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; - m_A9 += gt[10]; - m_A8 += go[8]; - m_A10 += go[9]; - double RHS4 = Idr[8]; - RHS4 += Idr[9]; - RHS4 += Idr[10]; - RHS4 -= go[10] * *cnV[10]; - m_A15 += gt[11]; - m_A15 += gt[12]; - m_A15 += gt[13]; - m_A15 += gt[14]; - m_A14 += go[11]; - m_A13 += go[12]; - m_A12 += go[13]; - m_A11 += go[14]; - double RHS5 = Idr[11]; - RHS5 += Idr[12]; - RHS5 += Idr[13]; - RHS5 += Idr[14]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A4 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A6 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A11; - m_A15 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A12; - m_A15 += m_A3 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A8; - m_A9 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_5 = -f3 * m_A13; - m_A15 += m_A7 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A9; - const double f4_5 = -f4 * m_A14; - m_A15 += m_A10 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A15; - double tmp4 = 0.0; - tmp4 += m_A10 * V[5]; - V[4] = (RHS4 - tmp4) / m_A9; - double tmp3 = 0.0; - tmp3 += m_A7 * V[5]; - V[3] = (RHS3 - tmp3) / m_A6; + const double f1_3 = -f1 * m_A6; + m_A7 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A7; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - V[2] = (RHS2 - tmp2) / m_A4; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; + tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// gamemachine -static void nl_gcr_934712b55bb3b2b2_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// ripoff +static void nl_gcr_be7c805100c522fd_59_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -20299,6 +47259,55 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -20319,51 +47328,318 @@ RHS1 -= go[5] * *cnV[5]; m_A4 += gt[6]; m_A4 += gt[7]; + m_A4 += gt[8]; m_A5 += go[6]; double RHS2 = Idr[6]; RHS2 += Idr[7]; + RHS2 += Idr[8]; RHS2 -= go[7] * *cnV[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; - m_A9 += gt[10]; - m_A9 += gt[11]; - m_A9 += gt[12]; - m_A8 += go[8]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; m_A7 += go[9]; - m_A6 += go[10]; - double RHS3 = Idr[8]; - RHS3 += Idr[9]; + double RHS3 = Idr[9]; RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[10] * *cnV[10]; + m_A8 += gt[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A9 += go[11]; + double RHS4 = Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A12 += go[14]; + m_A11 += go[15]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A14 += go[16]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 -= go[17] * *cnV[17]; + RHS6 -= go[18] * *cnV[18]; + m_A15 += gt[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A16 += go[19]; + double RHS7 = Idr[19]; + RHS7 += Idr[20]; + RHS7 += Idr[21]; + RHS7 -= go[20] * *cnV[20]; + RHS7 -= go[21] * *cnV[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A18 += go[22]; + double RHS8 = Idr[22]; + RHS8 += Idr[23]; + RHS8 += Idr[24]; + RHS8 -= go[23] * *cnV[23]; + RHS8 -= go[24] * *cnV[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A20 += go[25]; + double RHS9 = Idr[25]; + RHS9 += Idr[26]; + RHS9 += Idr[27]; + RHS9 -= go[26] * *cnV[26]; + RHS9 -= go[27] * *cnV[27]; + m_A21 += gt[28]; + m_A21 += gt[29]; + m_A23 += go[28]; + m_A22 += go[29]; + double RHS10 = Idr[28]; + RHS10 += Idr[29]; + m_A24 += gt[30]; + m_A24 += gt[31]; + m_A24 += gt[32]; + m_A25 += go[30]; + double RHS11 = Idr[30]; + RHS11 += Idr[31]; + RHS11 += Idr[32]; + RHS11 -= go[31] * *cnV[31]; + RHS11 -= go[32] * *cnV[32]; + m_A26 += gt[33]; + m_A26 += gt[34]; + m_A26 += gt[35]; + m_A27 += go[33]; + double RHS12 = Idr[33]; + RHS12 += Idr[34]; + RHS12 += Idr[35]; + RHS12 -= go[34] * *cnV[34]; + RHS12 -= go[35] * *cnV[35]; + m_A28 += gt[36]; + m_A28 += gt[37]; + m_A28 += gt[38]; + m_A29 += go[36]; + double RHS13 = Idr[36]; + RHS13 += Idr[37]; + RHS13 += Idr[38]; + RHS13 -= go[37] * *cnV[37]; + RHS13 -= go[38] * *cnV[38]; + m_A35 += gt[39]; + m_A35 += gt[40]; + m_A35 += gt[41]; + m_A35 += gt[42]; + m_A35 += gt[43]; + m_A35 += gt[44]; + m_A34 += go[39]; + m_A33 += go[40]; + m_A32 += go[41]; + m_A31 += go[42]; + m_A30 += go[43]; + double RHS14 = Idr[39]; + RHS14 += Idr[40]; + RHS14 += Idr[41]; + RHS14 += Idr[42]; + RHS14 += Idr[43]; + RHS14 += Idr[44]; + RHS14 -= go[44] * *cnV[44]; + m_A38 += gt[45]; + m_A38 += gt[46]; + m_A37 += go[45]; + m_A39 += go[46]; + double RHS15 = Idr[45]; + RHS15 += Idr[46]; + m_A40 += gt[47]; + m_A40 += gt[48]; + m_A40 += gt[49]; + m_A41 += go[47]; + double RHS16 = Idr[47]; + RHS16 += Idr[48]; + RHS16 += Idr[49]; + RHS16 -= go[48] * *cnV[48]; + RHS16 -= go[49] * *cnV[49]; + m_A46 += gt[50]; + m_A46 += gt[51]; + m_A46 += gt[52]; + m_A43 += go[50]; + m_A45 += go[51]; + m_A42 += go[52]; + double RHS17 = Idr[50]; + RHS17 += Idr[51]; + RHS17 += Idr[52]; + m_A58 += gt[53]; + m_A58 += gt[54]; + m_A58 += gt[55]; + m_A58 += gt[56]; + m_A58 += gt[57]; + m_A58 += gt[58]; + m_A58 += gt[59]; + m_A58 += gt[60]; + m_A58 += gt[61]; + m_A58 += gt[62]; + m_A56 += go[53]; + m_A55 += go[54]; + m_A54 += go[55]; + m_A53 += go[56]; + m_A52 += go[57]; + m_A51 += go[58]; + m_A50 += go[59]; + m_A49 += go[60]; + m_A48 += go[61]; + double RHS18 = Idr[53]; + RHS18 += Idr[54]; + RHS18 += Idr[55]; + RHS18 += Idr[56]; + RHS18 += Idr[57]; + RHS18 += Idr[58]; + RHS18 += Idr[59]; + RHS18 += Idr[60]; + RHS18 += Idr[61]; + RHS18 += Idr[62]; + RHS18 -= go[62] * *cnV[62]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A6; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; + const double f0_14 = -f0 * m_A30; + m_A35 += m_A1 * f0_14; + RHS14 += f0_14 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; + const double f1_14 = -f1 * m_A31; + m_A35 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A5 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f2_14 = -f2 * m_A32; + m_A35 += m_A5 * f2_14; + RHS14 += f2_14 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_15 = -f3 * m_A37; + m_A38 += m_A7 * f3_15; + RHS15 += f3_15 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_14 = -f4 * m_A33; + m_A35 += m_A9 * f4_14; + RHS14 += f4_14 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_14 = -f5 * m_A34; + m_A35 += m_A11 * f5_14; + m_A36 += m_A12 * f5_14; + RHS14 += f5_14 * RHS5; + const double f5_17 = -f5 * m_A42; + m_A44 += m_A11 * f5_17; + m_A46 += m_A12 * f5_17; + RHS17 += f5_17 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_18 = -f6 * m_A48; + m_A58 += m_A14 * f6_18; + RHS18 += f6_18 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_18 = -f7 * m_A49; + m_A58 += m_A16 * f7_18; + RHS18 += f7_18 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_18 = -f8 * m_A50; + m_A58 += m_A18 * f8_18; + RHS18 += f8_18 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_18 = -f9 * m_A51; + m_A58 += m_A20 * f9_18; + RHS18 += f9_18 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_17 = -f10 * m_A43; + m_A46 += m_A22 * f10_17; + m_A47 += m_A23 * f10_17; + RHS17 += f10_17 * RHS10; + const double f10_18 = -f10 * m_A52; + m_A57 += m_A22 * f10_18; + m_A58 += m_A23 * f10_18; + RHS18 += f10_18 * RHS10; + const double f11 = 1.0 / m_A24; + const double f11_18 = -f11 * m_A53; + m_A58 += m_A25 * f11_18; + RHS18 += f11_18 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_18 = -f12 * m_A54; + m_A58 += m_A27 * f12_18; + RHS18 += f12_18 * RHS12; + const double f13 = 1.0 / m_A28; + const double f13_18 = -f13 * m_A55; + m_A58 += m_A29 * f13_18; + RHS18 += f13_18 * RHS13; + const double f14 = 1.0 / m_A35; + const double f14_17 = -f14 * m_A44; + m_A46 += m_A36 * f14_17; + RHS17 += f14_17 * RHS14; + const double f15 = 1.0 / m_A38; + const double f15_17 = -f15 * m_A45; + m_A46 += m_A39 * f15_17; + RHS17 += f15_17 * RHS15; + const double f16 = 1.0 / m_A40; + const double f16_18 = -f16 * m_A56; + m_A58 += m_A41 * f16_18; + RHS18 += f16_18 * RHS16; + const double f17 = 1.0 / m_A46; + const double f17_18 = -f17 * m_A57; + m_A58 += m_A47 * f17_18; + RHS18 += f17_18 * RHS17; + V[18] = RHS18 / m_A58; + double tmp17 = 0.0; + tmp17 += m_A47 * V[18]; + V[17] = (RHS17 - tmp17) / m_A46; + double tmp16 = 0.0; + tmp16 += m_A41 * V[18]; + V[16] = (RHS16 - tmp16) / m_A40; + double tmp15 = 0.0; + tmp15 += m_A39 * V[17]; + V[15] = (RHS15 - tmp15) / m_A38; + double tmp14 = 0.0; + tmp14 += m_A36 * V[17]; + V[14] = (RHS14 - tmp14) / m_A35; + double tmp13 = 0.0; + tmp13 += m_A29 * V[18]; + V[13] = (RHS13 - tmp13) / m_A28; + double tmp12 = 0.0; + tmp12 += m_A27 * V[18]; + V[12] = (RHS12 - tmp12) / m_A26; + double tmp11 = 0.0; + tmp11 += m_A25 * V[18]; + V[11] = (RHS11 - tmp11) / m_A24; + double tmp10 = 0.0; + tmp10 += m_A22 * V[17]; + tmp10 += m_A23 * V[18]; + V[10] = (RHS10 - tmp10) / m_A21; + double tmp9 = 0.0; + tmp9 += m_A20 * V[18]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A18 * V[18]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A16 * V[18]; + V[7] = (RHS7 - tmp7) / m_A15; + double tmp6 = 0.0; + tmp6 += m_A14 * V[18]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A11 * V[14]; + tmp5 += m_A12 * V[17]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[14]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[15]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; + tmp2 += m_A5 * V[14]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[14]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[14]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_9a5874c8e2da79d2_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// elim +static void nl_gcr_be831e5faa508573_150_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -20405,277 +47681,905 @@ double m_A34(0.0); double m_A35(0.0); double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A2 += go[0]; - m_A2 += go[1]; - m_A1 += go[2]; + m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[3] * *cnV[3]; - m_A3 += gt[4]; - m_A3 += gt[5]; - m_A3 += gt[6]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; m_A5 += go[4]; - m_A4 += go[5]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[6] * *cnV[6]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A7 += go[7]; - m_A7 += go[8]; - m_A8 += go[9]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[10] * *cnV[10]; - RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; - RHS2 -= go[13] * *cnV[13]; - m_A9 += gt[14]; - m_A9 += gt[15]; - m_A9 += gt[16]; - m_A11 += go[14]; - m_A10 += go[15]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 -= go[16] * *cnV[16]; - m_A14 += gt[17]; - m_A14 += gt[18]; - m_A14 += gt[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A13 += go[17]; - m_A12 += go[18]; - m_A12 += go[19]; - double RHS4 = Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 -= go[20] * *cnV[20]; - RHS4 -= go[21] * *cnV[21]; - m_A18 += gt[22]; - m_A18 += gt[23]; - m_A18 += gt[24]; - m_A18 += gt[25]; - m_A18 += gt[26]; - m_A18 += gt[27]; - m_A18 += gt[28]; - m_A20 += go[22]; - m_A19 += go[23]; - m_A19 += go[24]; - m_A19 += go[25]; - m_A17 += go[26]; - double RHS5 = Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - RHS5 -= go[27] * *cnV[27]; - RHS5 -= go[28] * *cnV[28]; - m_A23 += gt[29]; - m_A23 += gt[30]; - m_A23 += gt[31]; - m_A23 += gt[32]; - m_A21 += go[29]; - double RHS6 = Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 -= go[30] * *cnV[30]; - RHS6 -= go[31] * *cnV[31]; - RHS6 -= go[32] * *cnV[32]; - m_A28 += gt[33]; - m_A28 += gt[34]; - m_A28 += gt[35]; - m_A28 += gt[36]; - m_A28 += gt[37]; - m_A28 += gt[38]; - m_A26 += go[33]; - m_A27 += go[34]; - m_A27 += go[35]; - m_A27 += go[36]; - m_A25 += go[37]; - m_A25 += go[38]; - double RHS7 = Idr[33]; - RHS7 += Idr[34]; - RHS7 += Idr[35]; - RHS7 += Idr[36]; - RHS7 += Idr[37]; - RHS7 += Idr[38]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A11 += go[10]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A13 += go[12]; + double RHS6 = Idr[12]; + RHS6 += Idr[13]; + RHS6 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A16 += go[14]; + m_A15 += go[15]; + double RHS7 = Idr[14]; + RHS7 += Idr[15]; + RHS7 += Idr[16]; + RHS7 -= go[16] * *cnV[16]; + m_A17 += gt[17]; + m_A17 += gt[18]; + m_A18 += go[17]; + double RHS8 = Idr[17]; + RHS8 += Idr[18]; + RHS8 -= go[18] * *cnV[18]; + m_A19 += gt[19]; + m_A19 += gt[20]; + m_A19 += gt[21]; + m_A21 += go[19]; + m_A20 += go[20]; + double RHS9 = Idr[19]; + RHS9 += Idr[20]; + RHS9 += Idr[21]; + RHS9 -= go[21] * *cnV[21]; + m_A22 += gt[22]; + m_A22 += gt[23]; + m_A22 += gt[24]; + m_A23 += go[22]; + double RHS10 = Idr[22]; + RHS10 += Idr[23]; + RHS10 += Idr[24]; + RHS10 -= go[23] * *cnV[23]; + RHS10 -= go[24] * *cnV[24]; + m_A24 += gt[25]; + m_A24 += gt[26]; + m_A25 += go[25]; + double RHS11 = Idr[25]; + RHS11 += Idr[26]; + RHS11 -= go[26] * *cnV[26]; + m_A26 += gt[27]; + m_A26 += gt[28]; + m_A27 += go[27]; + double RHS12 = Idr[27]; + RHS12 += Idr[28]; + RHS12 -= go[28] * *cnV[28]; + m_A28 += gt[29]; + m_A28 += gt[30]; + m_A28 += gt[31]; + m_A28 += gt[32]; + m_A30 += go[29]; + m_A29 += go[30]; + double RHS13 = Idr[29]; + RHS13 += Idr[30]; + RHS13 += Idr[31]; + RHS13 += Idr[32]; + RHS13 -= go[31] * *cnV[31]; + RHS13 -= go[32] * *cnV[32]; + m_A31 += gt[33]; + m_A31 += gt[34]; + m_A31 += gt[35]; + m_A32 += go[33]; + double RHS14 = Idr[33]; + RHS14 += Idr[34]; + RHS14 += Idr[35]; + RHS14 -= go[34] * *cnV[34]; + RHS14 -= go[35] * *cnV[35]; + m_A33 += gt[36]; + m_A33 += gt[37]; + m_A34 += go[36]; + m_A35 += go[37]; + double RHS15 = Idr[36]; + RHS15 += Idr[37]; + m_A36 += gt[38]; m_A36 += gt[39]; - m_A36 += gt[40]; - m_A36 += gt[41]; - m_A36 += gt[42]; - m_A30 += go[39]; - m_A33 += go[40]; - m_A31 += go[41]; - double RHS8 = Idr[39]; - RHS8 += Idr[40]; - RHS8 += Idr[41]; - RHS8 += Idr[42]; - RHS8 -= go[42] * *cnV[42]; + m_A37 += go[38]; + m_A38 += go[39]; + double RHS16 = Idr[38]; + RHS16 += Idr[39]; + m_A39 += gt[40]; + m_A39 += gt[41]; + m_A39 += gt[42]; + m_A40 += go[40]; + double RHS17 = Idr[40]; + RHS17 += Idr[41]; + RHS17 += Idr[42]; + RHS17 -= go[41] * *cnV[41]; + RHS17 -= go[42] * *cnV[42]; + m_A41 += gt[43]; + m_A41 += gt[44]; + m_A41 += gt[45]; + m_A43 += go[43]; + m_A42 += go[44]; + double RHS18 = Idr[43]; + RHS18 += Idr[44]; + RHS18 += Idr[45]; + RHS18 -= go[45] * *cnV[45]; + m_A44 += gt[46]; + m_A44 += gt[47]; + m_A44 += gt[48]; + m_A44 += gt[49]; + m_A44 += gt[50]; + m_A44 += gt[51]; + m_A45 += go[46]; + m_A46 += go[47]; + double RHS19 = Idr[46]; + RHS19 += Idr[47]; + RHS19 += Idr[48]; + RHS19 += Idr[49]; + RHS19 += Idr[50]; + RHS19 += Idr[51]; + RHS19 -= go[48] * *cnV[48]; + RHS19 -= go[49] * *cnV[49]; + RHS19 -= go[50] * *cnV[50]; + RHS19 -= go[51] * *cnV[51]; + m_A47 += gt[52]; + m_A47 += gt[53]; + m_A47 += gt[54]; + m_A49 += go[52]; + m_A48 += go[53]; + double RHS20 = Idr[52]; + RHS20 += Idr[53]; + RHS20 += Idr[54]; + RHS20 -= go[54] * *cnV[54]; + m_A50 += gt[55]; + m_A50 += gt[56]; + m_A50 += gt[57]; + m_A50 += gt[58]; + m_A50 += gt[59]; + m_A50 += gt[60]; + m_A50 += gt[61]; + m_A52 += go[55]; + m_A51 += go[56]; + double RHS21 = Idr[55]; + RHS21 += Idr[56]; + RHS21 += Idr[57]; + RHS21 += Idr[58]; + RHS21 += Idr[59]; + RHS21 += Idr[60]; + RHS21 += Idr[61]; + RHS21 -= go[57] * *cnV[57]; + RHS21 -= go[58] * *cnV[58]; + RHS21 -= go[59] * *cnV[59]; + RHS21 -= go[60] * *cnV[60]; + RHS21 -= go[61] * *cnV[61]; + m_A53 += gt[62]; + m_A53 += gt[63]; + m_A53 += gt[64]; + m_A54 += go[62]; + m_A55 += go[63]; + double RHS22 = Idr[62]; + RHS22 += Idr[63]; + RHS22 += Idr[64]; + RHS22 -= go[64] * *cnV[64]; + m_A58 += gt[65]; + m_A58 += gt[66]; + m_A58 += gt[67]; + m_A57 += go[65]; + m_A56 += go[66]; + double RHS23 = Idr[65]; + RHS23 += Idr[66]; + RHS23 += Idr[67]; + RHS23 -= go[67] * *cnV[67]; + m_A61 += gt[68]; + m_A61 += gt[69]; + m_A61 += gt[70]; + m_A62 += go[68]; + m_A60 += go[69]; + double RHS24 = Idr[68]; + RHS24 += Idr[69]; + RHS24 += Idr[70]; + RHS24 -= go[70] * *cnV[70]; + m_A65 += gt[71]; + m_A65 += gt[72]; + m_A65 += gt[73]; + m_A63 += go[71]; + m_A66 += go[72]; + double RHS25 = Idr[71]; + RHS25 += Idr[72]; + RHS25 += Idr[73]; + RHS25 -= go[73] * *cnV[73]; + m_A69 += gt[74]; + m_A69 += gt[75]; + m_A69 += gt[76]; + m_A68 += go[74]; + m_A67 += go[75]; + double RHS26 = Idr[74]; + RHS26 += Idr[75]; + RHS26 += Idr[76]; + RHS26 -= go[76] * *cnV[76]; + m_A74 += gt[77]; + m_A74 += gt[78]; + m_A74 += gt[79]; + m_A74 += gt[80]; + m_A72 += go[77]; + m_A71 += go[78]; + m_A73 += go[79]; + double RHS27 = Idr[77]; + RHS27 += Idr[78]; + RHS27 += Idr[79]; + RHS27 += Idr[80]; + RHS27 -= go[80] * *cnV[80]; + m_A78 += gt[81]; + m_A78 += gt[82]; + m_A78 += gt[83]; + m_A76 += go[81]; + m_A79 += go[82]; + double RHS28 = Idr[81]; + RHS28 += Idr[82]; + RHS28 += Idr[83]; + RHS28 -= go[83] * *cnV[83]; + m_A82 += gt[84]; + m_A82 += gt[85]; + m_A82 += gt[86]; + m_A82 += gt[87]; + m_A82 += gt[88]; + m_A81 += go[84]; + m_A80 += go[85]; + m_A84 += go[86]; + double RHS29 = Idr[84]; + RHS29 += Idr[85]; + RHS29 += Idr[86]; + RHS29 += Idr[87]; + RHS29 += Idr[88]; + RHS29 -= go[87] * *cnV[87]; + RHS29 -= go[88] * *cnV[88]; + m_A88 += gt[89]; + m_A88 += gt[90]; + m_A88 += gt[91]; + m_A87 += go[89]; + m_A86 += go[90]; + double RHS30 = Idr[89]; + RHS30 += Idr[90]; + RHS30 += Idr[91]; + RHS30 -= go[91] * *cnV[91]; + m_A92 += gt[92]; + m_A92 += gt[93]; + m_A92 += gt[94]; + m_A92 += gt[95]; + m_A91 += go[92]; + m_A90 += go[93]; + double RHS31 = Idr[92]; + RHS31 += Idr[93]; + RHS31 += Idr[94]; + RHS31 += Idr[95]; + RHS31 -= go[94] * *cnV[94]; + RHS31 -= go[95] * *cnV[95]; + m_A96 += gt[96]; + m_A96 += gt[97]; + m_A96 += gt[98]; + m_A95 += go[96]; + m_A94 += go[97]; + double RHS32 = Idr[96]; + RHS32 += Idr[97]; + RHS32 += Idr[98]; + RHS32 -= go[98] * *cnV[98]; + m_A99 += gt[99]; + m_A99 += gt[100]; + m_A99 += gt[101]; + m_A100 += go[99]; + m_A98 += go[100]; + double RHS33 = Idr[99]; + RHS33 += Idr[100]; + RHS33 += Idr[101]; + RHS33 -= go[101] * *cnV[101]; + m_A104 += gt[102]; + m_A104 += gt[103]; + m_A104 += gt[104]; + m_A104 += gt[105]; + m_A102 += go[102]; + m_A107 += go[103]; + m_A101 += go[104]; + double RHS34 = Idr[102]; + RHS34 += Idr[103]; + RHS34 += Idr[104]; + RHS34 += Idr[105]; + RHS34 -= go[105] * *cnV[105]; + m_A116 += gt[106]; + m_A116 += gt[107]; + m_A116 += gt[108]; + m_A116 += gt[109]; + m_A116 += gt[110]; + m_A116 += gt[111]; + m_A113 += go[106]; + m_A110 += go[107]; + m_A109 += go[108]; + m_A111 += go[109]; + m_A108 += go[110]; + double RHS35 = Idr[106]; + RHS35 += Idr[107]; + RHS35 += Idr[108]; + RHS35 += Idr[109]; + RHS35 += Idr[110]; + RHS35 += Idr[111]; + RHS35 -= go[111] * *cnV[111]; + m_A124 += gt[112]; + m_A124 += gt[113]; + m_A124 += gt[114]; + m_A124 += gt[115]; + m_A120 += go[112]; + m_A125 += go[113]; + m_A119 += go[114]; + double RHS36 = Idr[112]; + RHS36 += Idr[113]; + RHS36 += Idr[114]; + RHS36 += Idr[115]; + RHS36 -= go[115] * *cnV[115]; + m_A128 += gt[116]; + m_A128 += gt[117]; + m_A128 += gt[118]; + m_A126 += go[116]; + m_A129 += go[117]; + double RHS37 = Idr[116]; + RHS37 += Idr[117]; + RHS37 += Idr[118]; + RHS37 -= go[118] * *cnV[118]; + m_A132 += gt[119]; + m_A132 += gt[120]; + m_A132 += gt[121]; + m_A130 += go[119]; + m_A131 += go[120]; + double RHS38 = Idr[119]; + RHS38 += Idr[120]; + RHS38 += Idr[121]; + RHS38 -= go[121] * *cnV[121]; + m_A136 += gt[122]; + m_A136 += gt[123]; + m_A136 += gt[124]; + m_A134 += go[122]; + m_A137 += go[123]; + double RHS39 = Idr[122]; + RHS39 += Idr[123]; + RHS39 += Idr[124]; + RHS39 -= go[124] * *cnV[124]; + m_A149 += gt[125]; + m_A149 += gt[126]; + m_A149 += gt[127]; + m_A149 += gt[128]; + m_A149 += gt[129]; + m_A149 += gt[130]; + m_A149 += gt[131]; + m_A149 += gt[132]; + m_A149 += gt[133]; + m_A149 += gt[134]; + m_A149 += gt[135]; + m_A149 += gt[136]; + m_A138 += go[125]; + m_A139 += go[126]; + m_A148 += go[127]; + m_A146 += go[128]; + m_A142 += go[129]; + m_A141 += go[130]; + m_A140 += go[131]; + m_A145 += go[132]; + m_A143 += go[133]; + double RHS40 = Idr[125]; + RHS40 += Idr[126]; + RHS40 += Idr[127]; + RHS40 += Idr[128]; + RHS40 += Idr[129]; + RHS40 += Idr[130]; + RHS40 += Idr[131]; + RHS40 += Idr[132]; + RHS40 += Idr[133]; + RHS40 += Idr[134]; + RHS40 += Idr[135]; + RHS40 += Idr[136]; + RHS40 -= go[134] * *cnV[134]; + RHS40 -= go[135] * *cnV[135]; + RHS40 -= go[136] * *cnV[136]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A17; - m_A18 += m_A1 * f0_5; - m_A19 += m_A2 * f0_5; - RHS5 += f0_5 * RHS0; - const double f0_7 = -f0 * m_A25; - m_A27 += m_A1 * f0_7; - m_A28 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_7 = -f1 * m_A26; - m_A28 += m_A4 * f1_7; - m_A29 += m_A5 * f1_7; - RHS7 += f1_7 * RHS1; - const double f1_8 = -f1 * m_A30; - m_A35 += m_A4 * f1_8; - m_A36 += m_A5 * f1_8; - RHS8 += f1_8 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A7 * f2_4; - m_A16 += m_A8 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_8 = -f2 * m_A31; - m_A32 += m_A7 * f2_8; - m_A36 += m_A8 * f2_8; - RHS8 += f2_8 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A10 * f3_4; - m_A15 += m_A11 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_6 = -f3 * m_A21; - m_A22 += m_A10 * f3_6; - m_A23 += m_A11 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A14; - const double f4_6 = -f4 * m_A22; - m_A23 += m_A15 * f4_6; - m_A24 += m_A16 * f4_6; - RHS6 += f4_6 * RHS4; - const double f4_8 = -f4 * m_A32; - m_A34 += m_A15 * f4_8; - m_A36 += m_A16 * f4_8; - RHS8 += f4_8 * RHS4; - const double f5 = 1.0 / m_A18; - const double f5_7 = -f5 * m_A27; - m_A28 += m_A19 * f5_7; - m_A29 += m_A20 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A33; - m_A35 += m_A19 * f5_8; - m_A36 += m_A20 * f5_8; - RHS8 += f5_8 * RHS5; - const double f6 = 1.0 / m_A23; - const double f6_8 = -f6 * m_A34; - m_A36 += m_A24 * f6_8; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A28; - const double f7_8 = -f7 * m_A35; - m_A36 += m_A29 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A36; + const double f0_33 = -f0 * m_A98; + m_A99 += m_A1 * f0_33; + RHS33 += f0_33 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_34 = -f1 * m_A101; + m_A104 += m_A3 * f1_34; + RHS34 += f1_34 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_30 = -f2 * m_A86; + m_A88 += m_A5 * f2_30; + RHS30 += f2_30 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_23 = -f3 * m_A56; + m_A58 += m_A7 * f3_23; + RHS23 += f3_23 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_26 = -f4 * m_A67; + m_A69 += m_A9 * f4_26; + RHS26 += f4_26 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_32 = -f5 * m_A94; + m_A96 += m_A11 * f5_32; + RHS32 += f5_32 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_24 = -f6 * m_A60; + m_A61 += m_A13 * f6_24; + RHS24 += f6_24 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_23 = -f7 * m_A57; + m_A58 += m_A15 * f7_23; + m_A59 += m_A16 * f7_23; + RHS23 += f7_23 * RHS7; + const double f7_25 = -f7 * m_A63; + m_A64 += m_A15 * f7_25; + m_A65 += m_A16 * f7_25; + RHS25 += f7_25 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_36 = -f8 * m_A119; + m_A124 += m_A18 * f8_36; + RHS36 += f8_36 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_26 = -f9 * m_A68; + m_A69 += m_A20 * f9_26; + m_A70 += m_A21 * f9_26; + RHS26 += f9_26 * RHS9; + const double f9_28 = -f9 * m_A76; + m_A77 += m_A20 * f9_28; + m_A78 += m_A21 * f9_28; + RHS28 += f9_28 * RHS9; + const double f10 = 1.0 / m_A22; + const double f10_27 = -f10 * m_A71; + m_A74 += m_A23 * f10_27; + RHS27 += f10_27 * RHS10; + const double f11 = 1.0 / m_A24; + const double f11_27 = -f11 * m_A72; + m_A74 += m_A25 * f11_27; + RHS27 += f11_27 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_31 = -f12 * m_A90; + m_A92 += m_A27 * f12_31; + RHS31 += f12_31 * RHS12; + const double f13 = 1.0 / m_A28; + const double f13_27 = -f13 * m_A73; + m_A74 += m_A29 * f13_27; + m_A75 += m_A30 * f13_27; + RHS27 += f13_27 * RHS13; + const double f13_35 = -f13 * m_A108; + m_A112 += m_A29 * f13_35; + m_A116 += m_A30 * f13_35; + RHS35 += f13_35 * RHS13; + const double f14 = 1.0 / m_A31; + const double f14_35 = -f14 * m_A109; + m_A116 += m_A32 * f14_35; + RHS35 += f14_35 * RHS14; + const double f15 = 1.0 / m_A33; + const double f15_29 = -f15 * m_A80; + m_A82 += m_A34 * f15_29; + m_A83 += m_A35 * f15_29; + RHS29 += f15_29 * RHS15; + const double f15_34 = -f15 * m_A102; + m_A103 += m_A34 * f15_34; + m_A104 += m_A35 * f15_34; + RHS34 += f15_34 * RHS15; + const double f16 = 1.0 / m_A36; + const double f16_29 = -f16 * m_A81; + m_A82 += m_A37 * f16_29; + m_A85 += m_A38 * f16_29; + RHS29 += f16_29 * RHS16; + const double f16_36 = -f16 * m_A120; + m_A121 += m_A37 * f16_36; + m_A124 += m_A38 * f16_36; + RHS36 += f16_36 * RHS16; + const double f17 = 1.0 / m_A39; + const double f17_35 = -f17 * m_A110; + m_A116 += m_A40 * f17_35; + RHS35 += f17_35 * RHS17; + const double f18 = 1.0 / m_A41; + const double f18_30 = -f18 * m_A87; + m_A88 += m_A42 * f18_30; + m_A89 += m_A43 * f18_30; + RHS30 += f18_30 * RHS18; + const double f18_37 = -f18 * m_A126; + m_A127 += m_A42 * f18_37; + m_A128 += m_A43 * f18_37; + RHS37 += f18_37 * RHS18; + const double f19 = 1.0 / m_A44; + const double f19_31 = -f19 * m_A91; + m_A92 += m_A45 * f19_31; + m_A93 += m_A46 * f19_31; + RHS31 += f19_31 * RHS19; + const double f19_35 = -f19 * m_A111; + m_A114 += m_A45 * f19_35; + m_A116 += m_A46 * f19_35; + RHS35 += f19_35 * RHS19; + const double f20 = 1.0 / m_A47; + const double f20_32 = -f20 * m_A95; + m_A96 += m_A48 * f20_32; + m_A97 += m_A49 * f20_32; + RHS32 += f20_32 * RHS20; + const double f20_39 = -f20 * m_A134; + m_A135 += m_A48 * f20_39; + m_A136 += m_A49 * f20_39; + RHS39 += f20_39 * RHS20; + const double f21 = 1.0 / m_A50; + const double f21_40 = -f21 * m_A138; + m_A140 += m_A51 * f21_40; + m_A149 += m_A52 * f21_40; + RHS40 += f21_40 * RHS21; + const double f22 = 1.0 / m_A53; + const double f22_38 = -f22 * m_A130; + m_A132 += m_A54 * f22_38; + m_A133 += m_A55 * f22_38; + RHS38 += f22_38 * RHS22; + const double f22_40 = -f22 * m_A139; + m_A147 += m_A54 * f22_40; + m_A149 += m_A55 * f22_40; + RHS40 += f22_40 * RHS22; + const double f23 = 1.0 / m_A58; + const double f23_25 = -f23 * m_A64; + m_A65 += m_A59 * f23_25; + RHS25 += f23_25 * RHS23; + const double f24 = 1.0 / m_A61; + const double f24_40 = -f24 * m_A140; + m_A149 += m_A62 * f24_40; + RHS40 += f24_40 * RHS24; + const double f25 = 1.0 / m_A65; + const double f25_40 = -f25 * m_A141; + m_A149 += m_A66 * f25_40; + RHS40 += f25_40 * RHS25; + const double f26 = 1.0 / m_A69; + const double f26_28 = -f26 * m_A77; + m_A78 += m_A70 * f26_28; + RHS28 += f26_28 * RHS26; + const double f27 = 1.0 / m_A74; + const double f27_35 = -f27 * m_A112; + m_A116 += m_A75 * f27_35; + RHS35 += f27_35 * RHS27; + const double f28 = 1.0 / m_A78; + const double f28_40 = -f28 * m_A142; + m_A149 += m_A79 * f28_40; + RHS40 += f28_40 * RHS28; + const double f29 = 1.0 / m_A82; + const double f29_34 = -f29 * m_A103; + m_A104 += m_A83 * f29_34; + m_A105 += m_A84 * f29_34; + m_A106 += m_A85 * f29_34; + RHS34 += f29_34 * RHS29; + const double f29_35 = -f29 * m_A113; + m_A115 += m_A83 * f29_35; + m_A116 += m_A84 * f29_35; + m_A117 += m_A85 * f29_35; + RHS35 += f29_35 * RHS29; + const double f29_36 = -f29 * m_A121; + m_A122 += m_A83 * f29_36; + m_A123 += m_A84 * f29_36; + m_A124 += m_A85 * f29_36; + RHS36 += f29_36 * RHS29; + const double f30 = 1.0 / m_A88; + const double f30_37 = -f30 * m_A127; + m_A128 += m_A89 * f30_37; + RHS37 += f30_37 * RHS30; + const double f31 = 1.0 / m_A92; + const double f31_35 = -f31 * m_A114; + m_A116 += m_A93 * f31_35; + RHS35 += f31_35 * RHS31; + const double f32 = 1.0 / m_A96; + const double f32_39 = -f32 * m_A135; + m_A136 += m_A97 * f32_39; + RHS39 += f32_39 * RHS32; + const double f33 = 1.0 / m_A99; + const double f33_38 = -f33 * m_A131; + m_A132 += m_A100 * f33_38; + RHS38 += f33_38 * RHS33; + const double f34 = 1.0 / m_A104; + const double f34_35 = -f34 * m_A115; + m_A116 += m_A105 * f34_35; + m_A117 += m_A106 * f34_35; + m_A118 += m_A107 * f34_35; + RHS35 += f34_35 * RHS34; + const double f34_36 = -f34 * m_A122; + m_A123 += m_A105 * f34_36; + m_A124 += m_A106 * f34_36; + m_A125 += m_A107 * f34_36; + RHS36 += f34_36 * RHS34; + const double f34_40 = -f34 * m_A143; + m_A144 += m_A105 * f34_40; + m_A145 += m_A106 * f34_40; + m_A149 += m_A107 * f34_40; + RHS40 += f34_40 * RHS34; + const double f35 = 1.0 / m_A116; + const double f35_36 = -f35 * m_A123; + m_A124 += m_A117 * f35_36; + m_A125 += m_A118 * f35_36; + RHS36 += f35_36 * RHS35; + const double f35_40 = -f35 * m_A144; + m_A145 += m_A117 * f35_40; + m_A149 += m_A118 * f35_40; + RHS40 += f35_40 * RHS35; + const double f36 = 1.0 / m_A124; + const double f36_40 = -f36 * m_A145; + m_A149 += m_A125 * f36_40; + RHS40 += f36_40 * RHS36; + const double f37 = 1.0 / m_A128; + const double f37_40 = -f37 * m_A146; + m_A149 += m_A129 * f37_40; + RHS40 += f37_40 * RHS37; + const double f38 = 1.0 / m_A132; + const double f38_40 = -f38 * m_A147; + m_A149 += m_A133 * f38_40; + RHS40 += f38_40 * RHS38; + const double f39 = 1.0 / m_A136; + const double f39_40 = -f39 * m_A148; + m_A149 += m_A137 * f39_40; + RHS40 += f39_40 * RHS39; + V[40] = RHS40 / m_A149; + double tmp39 = 0.0; + tmp39 += m_A137 * V[40]; + V[39] = (RHS39 - tmp39) / m_A136; + double tmp38 = 0.0; + tmp38 += m_A133 * V[40]; + V[38] = (RHS38 - tmp38) / m_A132; + double tmp37 = 0.0; + tmp37 += m_A129 * V[40]; + V[37] = (RHS37 - tmp37) / m_A128; + double tmp36 = 0.0; + tmp36 += m_A125 * V[40]; + V[36] = (RHS36 - tmp36) / m_A124; + double tmp35 = 0.0; + tmp35 += m_A117 * V[36]; + tmp35 += m_A118 * V[40]; + V[35] = (RHS35 - tmp35) / m_A116; + double tmp34 = 0.0; + tmp34 += m_A105 * V[35]; + tmp34 += m_A106 * V[36]; + tmp34 += m_A107 * V[40]; + V[34] = (RHS34 - tmp34) / m_A104; + double tmp33 = 0.0; + tmp33 += m_A100 * V[38]; + V[33] = (RHS33 - tmp33) / m_A99; + double tmp32 = 0.0; + tmp32 += m_A97 * V[39]; + V[32] = (RHS32 - tmp32) / m_A96; + double tmp31 = 0.0; + tmp31 += m_A93 * V[35]; + V[31] = (RHS31 - tmp31) / m_A92; + double tmp30 = 0.0; + tmp30 += m_A89 * V[37]; + V[30] = (RHS30 - tmp30) / m_A88; + double tmp29 = 0.0; + tmp29 += m_A83 * V[34]; + tmp29 += m_A84 * V[35]; + tmp29 += m_A85 * V[36]; + V[29] = (RHS29 - tmp29) / m_A82; + double tmp28 = 0.0; + tmp28 += m_A79 * V[40]; + V[28] = (RHS28 - tmp28) / m_A78; + double tmp27 = 0.0; + tmp27 += m_A75 * V[35]; + V[27] = (RHS27 - tmp27) / m_A74; + double tmp26 = 0.0; + tmp26 += m_A70 * V[28]; + V[26] = (RHS26 - tmp26) / m_A69; + double tmp25 = 0.0; + tmp25 += m_A66 * V[40]; + V[25] = (RHS25 - tmp25) / m_A65; + double tmp24 = 0.0; + tmp24 += m_A62 * V[40]; + V[24] = (RHS24 - tmp24) / m_A61; + double tmp23 = 0.0; + tmp23 += m_A59 * V[25]; + V[23] = (RHS23 - tmp23) / m_A58; + double tmp22 = 0.0; + tmp22 += m_A54 * V[38]; + tmp22 += m_A55 * V[40]; + V[22] = (RHS22 - tmp22) / m_A53; + double tmp21 = 0.0; + tmp21 += m_A51 * V[24]; + tmp21 += m_A52 * V[40]; + V[21] = (RHS21 - tmp21) / m_A50; + double tmp20 = 0.0; + tmp20 += m_A48 * V[32]; + tmp20 += m_A49 * V[39]; + V[20] = (RHS20 - tmp20) / m_A47; + double tmp19 = 0.0; + tmp19 += m_A45 * V[31]; + tmp19 += m_A46 * V[35]; + V[19] = (RHS19 - tmp19) / m_A44; + double tmp18 = 0.0; + tmp18 += m_A42 * V[30]; + tmp18 += m_A43 * V[37]; + V[18] = (RHS18 - tmp18) / m_A41; + double tmp17 = 0.0; + tmp17 += m_A40 * V[35]; + V[17] = (RHS17 - tmp17) / m_A39; + double tmp16 = 0.0; + tmp16 += m_A37 * V[29]; + tmp16 += m_A38 * V[36]; + V[16] = (RHS16 - tmp16) / m_A36; + double tmp15 = 0.0; + tmp15 += m_A34 * V[29]; + tmp15 += m_A35 * V[34]; + V[15] = (RHS15 - tmp15) / m_A33; + double tmp14 = 0.0; + tmp14 += m_A32 * V[35]; + V[14] = (RHS14 - tmp14) / m_A31; + double tmp13 = 0.0; + tmp13 += m_A29 * V[27]; + tmp13 += m_A30 * V[35]; + V[13] = (RHS13 - tmp13) / m_A28; + double tmp12 = 0.0; + tmp12 += m_A27 * V[31]; + V[12] = (RHS12 - tmp12) / m_A26; + double tmp11 = 0.0; + tmp11 += m_A25 * V[27]; + V[11] = (RHS11 - tmp11) / m_A24; + double tmp10 = 0.0; + tmp10 += m_A23 * V[27]; + V[10] = (RHS10 - tmp10) / m_A22; + double tmp9 = 0.0; + tmp9 += m_A20 * V[26]; + tmp9 += m_A21 * V[28]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A18 * V[36]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A29 * V[8]; - V[7] = (RHS7 - tmp7) / m_A28; + tmp7 += m_A15 * V[23]; + tmp7 += m_A16 * V[25]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A24 * V[8]; - V[6] = (RHS6 - tmp6) / m_A23; + tmp6 += m_A13 * V[24]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A19 * V[7]; - tmp5 += m_A20 * V[8]; - V[5] = (RHS5 - tmp5) / m_A18; + tmp5 += m_A11 * V[32]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A15 * V[6]; - tmp4 += m_A16 * V[8]; - V[4] = (RHS4 - tmp4) / m_A14; + tmp4 += m_A9 * V[26]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A10 * V[4]; - tmp3 += m_A11 * V[6]; - V[3] = (RHS3 - tmp3) / m_A9; + tmp3 += m_A7 * V[23]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A7 * V[4]; - tmp2 += m_A8 * V[8]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A4 * V[7]; - tmp1 += m_A5 * V[8]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; - tmp0 += m_A2 * V[7]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// warrior -static void nl_gcr_9c975530a1a529d6_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - m_A6 += gt[3]; - m_A6 += gt[4]; - m_A5 += go[3]; - m_A4 += go[4]; - double RHS2 = Idr[3]; - RHS2 += Idr[4]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + tmp2 += m_A5 * V[30]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[34]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[33]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_9f141889c2091efc_24_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// warrior +static void nl_gcr_bff07f8d339f7cc4_89_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -20704,886 +48608,1027 @@ double m_A21(0.0); double m_A22(0.0); double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A3 += go[7]; - double RHS1 = Idr[7]; - RHS1 += Idr[8]; - RHS1 -= go[8] * *cnV[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A5 += go[9]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[10] * *cnV[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; - m_A7 += go[11]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 -= go[12] * *cnV[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A10 += go[13]; - m_A9 += go[14]; - double RHS4 = Idr[13]; - RHS4 += Idr[14]; - RHS4 += Idr[15]; - RHS4 -= go[15] * *cnV[15]; - m_A11 += gt[16]; - m_A11 += gt[17]; - m_A11 += gt[18]; - m_A12 += go[16]; - double RHS5 = Idr[16]; - RHS5 += Idr[17]; - RHS5 += Idr[18]; - RHS5 -= go[17] * *cnV[17]; - RHS5 -= go[18] * *cnV[18]; - m_A18 += gt[19]; - m_A18 += gt[20]; - m_A18 += gt[21]; - m_A18 += gt[22]; - m_A18 += gt[23]; - m_A16 += go[19]; - m_A15 += go[20]; - m_A14 += go[21]; - m_A17 += go[22]; - m_A13 += go[23]; - double RHS6 = Idr[19]; - RHS6 += Idr[20]; - RHS6 += Idr[21]; - RHS6 += Idr[22]; - RHS6 += Idr[23]; - m_A23 += gt[24]; - m_A23 += gt[25]; - m_A21 += go[24]; - m_A20 += go[25]; - double RHS7 = Idr[24]; - RHS7 += Idr[25]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A7 += go[6]; + m_A8 += go[7]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A11 += go[8]; + m_A10 += go[9]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + m_A12 += gt[10]; + m_A12 += gt[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A13 += go[10]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 += Idr[12]; + RHS5 += Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 += Idr[16]; + RHS5 -= go[11] * *cnV[11]; + RHS5 -= go[12] * *cnV[12]; + RHS5 -= go[13] * *cnV[13]; + RHS5 -= go[14] * *cnV[14]; + RHS5 -= go[15] * *cnV[15]; + RHS5 -= go[16] * *cnV[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A16 += go[17]; + m_A15 += go[18]; + double RHS6 = Idr[17]; + RHS6 += Idr[18]; + m_A17 += gt[19]; + m_A17 += gt[20]; + m_A19 += go[19]; + m_A18 += go[20]; + double RHS7 = Idr[19]; + RHS7 += Idr[20]; + m_A20 += gt[21]; + m_A20 += gt[22]; + m_A21 += go[21]; + double RHS8 = Idr[21]; + RHS8 += Idr[22]; + RHS8 -= go[22] * *cnV[22]; + m_A22 += gt[23]; + m_A22 += gt[24]; + m_A22 += gt[25]; + m_A24 += go[23]; + m_A23 += go[24]; + double RHS9 = Idr[23]; + RHS9 += Idr[24]; + RHS9 += Idr[25]; + RHS9 -= go[25] * *cnV[25]; + m_A25 += gt[26]; + m_A25 += gt[27]; + m_A26 += go[26]; + double RHS10 = Idr[26]; + RHS10 += Idr[27]; + RHS10 -= go[27] * *cnV[27]; + m_A27 += gt[28]; + m_A27 += gt[29]; + m_A27 += gt[30]; + m_A28 += go[28]; + m_A29 += go[29]; + double RHS11 = Idr[28]; + RHS11 += Idr[29]; + RHS11 += Idr[30]; + RHS11 -= go[30] * *cnV[30]; + m_A32 += gt[31]; + m_A32 += gt[32]; + m_A32 += gt[33]; + m_A31 += go[31]; + m_A30 += go[32]; + double RHS12 = Idr[31]; + RHS12 += Idr[32]; + RHS12 += Idr[33]; + RHS12 -= go[33] * *cnV[33]; + m_A35 += gt[34]; + m_A35 += gt[35]; + m_A35 += gt[36]; + m_A34 += go[34]; + m_A37 += go[35]; + double RHS13 = Idr[34]; + RHS13 += Idr[35]; + RHS13 += Idr[36]; + RHS13 -= go[36] * *cnV[36]; + m_A40 += gt[37]; + m_A40 += gt[38]; + m_A40 += gt[39]; + m_A39 += go[37]; + m_A38 += go[38]; + double RHS14 = Idr[37]; + RHS14 += Idr[38]; + RHS14 += Idr[39]; + RHS14 -= go[39] * *cnV[39]; + m_A43 += gt[40]; + m_A43 += gt[41]; + m_A43 += gt[42]; + m_A44 += go[40]; + m_A42 += go[41]; + double RHS15 = Idr[40]; + RHS15 += Idr[41]; + RHS15 += Idr[42]; + RHS15 -= go[42] * *cnV[42]; + m_A47 += gt[43]; + m_A47 += gt[44]; + m_A47 += gt[45]; + m_A47 += gt[46]; + m_A49 += go[43]; + m_A49 += go[44]; + m_A45 += go[45]; + double RHS16 = Idr[43]; + RHS16 += Idr[44]; + RHS16 += Idr[45]; + RHS16 += Idr[46]; + RHS16 -= go[46] * *cnV[46]; + m_A52 += gt[47]; + m_A52 += gt[48]; + m_A50 += go[47]; + m_A53 += go[48]; + double RHS17 = Idr[47]; + RHS17 += Idr[48]; + m_A56 += gt[49]; + m_A56 += gt[50]; + m_A56 += gt[51]; + m_A55 += go[49]; + m_A54 += go[50]; + double RHS18 = Idr[49]; + RHS18 += Idr[50]; + RHS18 += Idr[51]; + RHS18 -= go[51] * *cnV[51]; + m_A62 += gt[52]; + m_A62 += gt[53]; + m_A62 += gt[54]; + m_A62 += gt[55]; + m_A58 += go[52]; + m_A59 += go[53]; + m_A60 += go[54]; + double RHS19 = Idr[52]; + RHS19 += Idr[53]; + RHS19 += Idr[54]; + RHS19 += Idr[55]; + RHS19 -= go[55] * *cnV[55]; + m_A69 += gt[56]; + m_A69 += gt[57]; + m_A69 += gt[58]; + m_A66 += go[56]; + m_A67 += go[57]; + double RHS20 = Idr[56]; + RHS20 += Idr[57]; + RHS20 += Idr[58]; + RHS20 -= go[58] * *cnV[58]; + m_A78 += gt[59]; + m_A78 += gt[60]; + m_A78 += gt[61]; + m_A78 += gt[62]; + m_A78 += gt[63]; + m_A78 += gt[64]; + m_A72 += go[59]; + m_A73 += go[60]; + m_A75 += go[61]; + m_A75 += go[62]; + double RHS21 = Idr[59]; + RHS21 += Idr[60]; + RHS21 += Idr[61]; + RHS21 += Idr[62]; + RHS21 += Idr[63]; + RHS21 += Idr[64]; + RHS21 -= go[63] * *cnV[63]; + RHS21 -= go[64] * *cnV[64]; + m_A88 += gt[65]; + m_A88 += gt[66]; + m_A88 += gt[67]; + m_A88 += gt[68]; + m_A88 += gt[69]; + m_A83 += go[65]; + m_A81 += go[66]; + m_A82 += go[67]; + m_A80 += go[68]; + double RHS22 = Idr[65]; + RHS22 += Idr[66]; + RHS22 += Idr[67]; + RHS22 += Idr[68]; + RHS22 += Idr[69]; + RHS22 -= go[69] * *cnV[69]; const double f0 = 1.0 / m_A0; - const double f0_6 = -f0 * m_A13; - m_A18 += m_A1 * f0_6; - RHS6 += f0_6 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A14; - m_A18 += m_A3 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A15; - m_A18 += m_A5 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A16; - m_A18 += m_A7 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_6 = -f4 * m_A17; - m_A18 += m_A9 * f4_6; - m_A19 += m_A10 * f4_6; - RHS6 += f4_6 * RHS4; - const double f4_7 = -f4 * m_A20; - m_A22 += m_A9 * f4_7; - m_A23 += m_A10 * f4_7; - RHS7 += f4_7 * RHS4; - const double f5 = 1.0 / m_A11; - const double f5_7 = -f5 * m_A21; - m_A23 += m_A12 * f5_7; - RHS7 += f5_7 * RHS5; - const double f6 = 1.0 / m_A18; - const double f6_7 = -f6 * m_A22; - m_A23 += m_A19 * f6_7; - RHS7 += f6_7 * RHS6; - V[7] = RHS7 / m_A23; + const double f0_12 = -f0 * m_A30; + m_A32 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_15 = -f1 * m_A42; + m_A43 += m_A3 * f1_15; + RHS15 += f1_15 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_22 = -f2 * m_A80; + m_A88 += m_A5 * f2_22; + RHS22 += f2_22 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_19 = -f3 * m_A58; + m_A62 += m_A7 * f3_19; + m_A65 += m_A8 * f3_19; + RHS19 += f3_19 * RHS3; + const double f3_22 = -f3 * m_A81; + m_A85 += m_A7 * f3_22; + m_A88 += m_A8 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_13 = -f4 * m_A34; + m_A35 += m_A10 * f4_13; + m_A36 += m_A11 * f4_13; + RHS13 += f4_13 * RHS4; + const double f4_16 = -f4 * m_A45; + m_A46 += m_A10 * f4_16; + m_A47 += m_A11 * f4_16; + RHS16 += f4_16 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_21 = -f5 * m_A72; + m_A75 += m_A13 * f5_21; + RHS21 += f5_21 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_12 = -f6 * m_A31; + m_A32 += m_A15 * f6_12; + m_A33 += m_A16 * f6_12; + RHS12 += f6_12 * RHS6; + const double f6_21 = -f6 * m_A73; + m_A74 += m_A15 * f6_21; + m_A78 += m_A16 * f6_21; + RHS21 += f6_21 * RHS6; + const double f7 = 1.0 / m_A17; + const double f7_19 = -f7 * m_A59; + m_A62 += m_A18 * f7_19; + m_A63 += m_A19 * f7_19; + RHS19 += f7_19 * RHS7; + const double f7_20 = -f7 * m_A66; + m_A68 += m_A18 * f7_20; + m_A69 += m_A19 * f7_20; + RHS20 += f7_20 * RHS7; + const double f8 = 1.0 / m_A20; + const double f8_14 = -f8 * m_A38; + m_A40 += m_A21 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A22; + const double f9_14 = -f9 * m_A39; + m_A40 += m_A23 * f9_14; + m_A41 += m_A24 * f9_14; + RHS14 += f9_14 * RHS9; + const double f9_17 = -f9 * m_A50; + m_A51 += m_A23 * f9_17; + m_A52 += m_A24 * f9_17; + RHS17 += f9_17 * RHS9; + const double f10 = 1.0 / m_A25; + const double f10_18 = -f10 * m_A54; + m_A56 += m_A26 * f10_18; + RHS18 += f10_18 * RHS10; + const double f11 = 1.0 / m_A27; + const double f11_18 = -f11 * m_A55; + m_A56 += m_A28 * f11_18; + m_A57 += m_A29 * f11_18; + RHS18 += f11_18 * RHS11; + const double f11_22 = -f11 * m_A82; + m_A84 += m_A28 * f11_22; + m_A88 += m_A29 * f11_22; + RHS22 += f11_22 * RHS11; + const double f12 = 1.0 / m_A32; + const double f12_21 = -f12 * m_A74; + m_A78 += m_A33 * f12_21; + RHS21 += f12_21 * RHS12; + const double f13 = 1.0 / m_A35; + const double f13_16 = -f13 * m_A46; + m_A47 += m_A36 * f13_16; + m_A48 += m_A37 * f13_16; + RHS16 += f13_16 * RHS13; + const double f13_19 = -f13 * m_A60; + m_A61 += m_A36 * f13_19; + m_A62 += m_A37 * f13_19; + RHS19 += f13_19 * RHS13; + const double f14 = 1.0 / m_A40; + const double f14_17 = -f14 * m_A51; + m_A52 += m_A41 * f14_17; + RHS17 += f14_17 * RHS14; + const double f15 = 1.0 / m_A43; + const double f15_20 = -f15 * m_A67; + m_A69 += m_A44 * f15_20; + RHS20 += f15_20 * RHS15; + const double f16 = 1.0 / m_A47; + const double f16_19 = -f16 * m_A61; + m_A62 += m_A48 * f16_19; + m_A64 += m_A49 * f16_19; + RHS19 += f16_19 * RHS16; + const double f16_21 = -f16 * m_A75; + m_A76 += m_A48 * f16_21; + m_A78 += m_A49 * f16_21; + RHS21 += f16_21 * RHS16; + const double f17 = 1.0 / m_A52; + const double f17_22 = -f17 * m_A83; + m_A88 += m_A53 * f17_22; + RHS22 += f17_22 * RHS17; + const double f18 = 1.0 / m_A56; + const double f18_22 = -f18 * m_A84; + m_A88 += m_A57 * f18_22; + RHS22 += f18_22 * RHS18; + const double f19 = 1.0 / m_A62; + const double f19_20 = -f19 * m_A68; + m_A69 += m_A63 * f19_20; + m_A70 += m_A64 * f19_20; + m_A71 += m_A65 * f19_20; + RHS20 += f19_20 * RHS19; + const double f19_21 = -f19 * m_A76; + m_A77 += m_A63 * f19_21; + m_A78 += m_A64 * f19_21; + m_A79 += m_A65 * f19_21; + RHS21 += f19_21 * RHS19; + const double f19_22 = -f19 * m_A85; + m_A86 += m_A63 * f19_22; + m_A87 += m_A64 * f19_22; + m_A88 += m_A65 * f19_22; + RHS22 += f19_22 * RHS19; + const double f20 = 1.0 / m_A69; + const double f20_21 = -f20 * m_A77; + m_A78 += m_A70 * f20_21; + m_A79 += m_A71 * f20_21; + RHS21 += f20_21 * RHS20; + const double f20_22 = -f20 * m_A86; + m_A87 += m_A70 * f20_22; + m_A88 += m_A71 * f20_22; + RHS22 += f20_22 * RHS20; + const double f21 = 1.0 / m_A78; + const double f21_22 = -f21 * m_A87; + m_A88 += m_A79 * f21_22; + RHS22 += f21_22 * RHS21; + V[22] = RHS22 / m_A88; + double tmp21 = 0.0; + tmp21 += m_A79 * V[22]; + V[21] = (RHS21 - tmp21) / m_A78; + double tmp20 = 0.0; + tmp20 += m_A70 * V[21]; + tmp20 += m_A71 * V[22]; + V[20] = (RHS20 - tmp20) / m_A69; + double tmp19 = 0.0; + tmp19 += m_A63 * V[20]; + tmp19 += m_A64 * V[21]; + tmp19 += m_A65 * V[22]; + V[19] = (RHS19 - tmp19) / m_A62; + double tmp18 = 0.0; + tmp18 += m_A57 * V[22]; + V[18] = (RHS18 - tmp18) / m_A56; + double tmp17 = 0.0; + tmp17 += m_A53 * V[22]; + V[17] = (RHS17 - tmp17) / m_A52; + double tmp16 = 0.0; + tmp16 += m_A48 * V[19]; + tmp16 += m_A49 * V[21]; + V[16] = (RHS16 - tmp16) / m_A47; + double tmp15 = 0.0; + tmp15 += m_A44 * V[20]; + V[15] = (RHS15 - tmp15) / m_A43; + double tmp14 = 0.0; + tmp14 += m_A41 * V[17]; + V[14] = (RHS14 - tmp14) / m_A40; + double tmp13 = 0.0; + tmp13 += m_A36 * V[16]; + tmp13 += m_A37 * V[19]; + V[13] = (RHS13 - tmp13) / m_A35; + double tmp12 = 0.0; + tmp12 += m_A33 * V[21]; + V[12] = (RHS12 - tmp12) / m_A32; + double tmp11 = 0.0; + tmp11 += m_A28 * V[18]; + tmp11 += m_A29 * V[22]; + V[11] = (RHS11 - tmp11) / m_A27; + double tmp10 = 0.0; + tmp10 += m_A26 * V[18]; + V[10] = (RHS10 - tmp10) / m_A25; + double tmp9 = 0.0; + tmp9 += m_A23 * V[14]; + tmp9 += m_A24 * V[17]; + V[9] = (RHS9 - tmp9) / m_A22; + double tmp8 = 0.0; + tmp8 += m_A21 * V[14]; + V[8] = (RHS8 - tmp8) / m_A20; + double tmp7 = 0.0; + tmp7 += m_A18 * V[19]; + tmp7 += m_A19 * V[20]; + V[7] = (RHS7 - tmp7) / m_A17; double tmp6 = 0.0; - tmp6 += m_A19 * V[7]; - V[6] = (RHS6 - tmp6) / m_A18; + tmp6 += m_A15 * V[12]; + tmp6 += m_A16 * V[21]; + V[6] = (RHS6 - tmp6) / m_A14; double tmp5 = 0.0; - tmp5 += m_A12 * V[7]; - V[5] = (RHS5 - tmp5) / m_A11; + tmp5 += m_A13 * V[16]; + V[5] = (RHS5 - tmp5) / m_A12; double tmp4 = 0.0; - tmp4 += m_A9 * V[6]; - tmp4 += m_A10 * V[7]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[6]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// segas16b_audio -static void nl_gcr_9f7104c5e25c87dd_111_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); - double m_A76(0.0); - double m_A77(0.0); - double m_A78(0.0); - double m_A79(0.0); - double m_A80(0.0); - double m_A81(0.0); - double m_A82(0.0); - double m_A83(0.0); - double m_A84(0.0); - double m_A85(0.0); - double m_A86(0.0); - double m_A87(0.0); - double m_A88(0.0); - double m_A89(0.0); - double m_A90(0.0); - double m_A91(0.0); - double m_A92(0.0); - double m_A93(0.0); - double m_A94(0.0); - double m_A95(0.0); - double m_A96(0.0); - double m_A97(0.0); - double m_A98(0.0); - double m_A99(0.0); - double m_A100(0.0); - double m_A101(0.0); - double m_A102(0.0); - double m_A103(0.0); - double m_A104(0.0); - double m_A105(0.0); - double m_A106(0.0); - double m_A107(0.0); - double m_A108(0.0); - double m_A109(0.0); - double m_A110(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A8 += go[9]; - m_A7 += go[10]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 -= go[11] * *cnV[11]; - m_A9 += gt[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A12 += go[12]; - m_A10 += go[13]; - m_A11 += go[14]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - m_A13 += gt[15]; - m_A13 += gt[16]; - m_A13 += gt[17]; - m_A13 += gt[18]; - m_A13 += gt[19]; - m_A13 += gt[20]; - m_A13 += gt[21]; - m_A15 += go[15]; - m_A14 += go[16]; - double RHS5 = Idr[15]; - RHS5 += Idr[16]; - RHS5 += Idr[17]; - RHS5 += Idr[18]; - RHS5 += Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 -= go[17] * *cnV[17]; - RHS5 -= go[18] * *cnV[18]; - RHS5 -= go[19] * *cnV[19]; - RHS5 -= go[20] * *cnV[20]; - RHS5 -= go[21] * *cnV[21]; - m_A16 += gt[22]; - m_A16 += gt[23]; - m_A17 += go[22]; - m_A18 += go[23]; - double RHS6 = Idr[22]; - RHS6 += Idr[23]; - m_A19 += gt[24]; - m_A19 += gt[25]; - m_A20 += go[24]; - m_A21 += go[25]; - double RHS7 = Idr[24]; - RHS7 += Idr[25]; - m_A22 += gt[26]; - m_A22 += gt[27]; - m_A23 += go[26]; - m_A24 += go[27]; - double RHS8 = Idr[26]; - RHS8 += Idr[27]; - m_A25 += gt[28]; - m_A25 += gt[29]; - m_A26 += go[28]; - m_A27 += go[29]; - double RHS9 = Idr[28]; - RHS9 += Idr[29]; - m_A28 += gt[30]; - m_A28 += gt[31]; - m_A29 += go[30]; - double RHS10 = Idr[30]; - RHS10 += Idr[31]; - RHS10 -= go[31] * *cnV[31]; - m_A30 += gt[32]; - m_A30 += gt[33]; - m_A30 += gt[34]; - m_A30 += gt[35]; - m_A31 += go[32]; - double RHS11 = Idr[32]; - RHS11 += Idr[33]; - RHS11 += Idr[34]; - RHS11 += Idr[35]; - RHS11 -= go[33] * *cnV[33]; - RHS11 -= go[34] * *cnV[34]; - RHS11 -= go[35] * *cnV[35]; - m_A34 += gt[36]; - m_A34 += gt[37]; - m_A34 += gt[38]; - m_A33 += go[36]; - m_A32 += go[37]; - double RHS12 = Idr[36]; - RHS12 += Idr[37]; - RHS12 += Idr[38]; - RHS12 -= go[38] * *cnV[38]; - m_A37 += gt[39]; - m_A37 += gt[40]; - m_A37 += gt[41]; - m_A37 += gt[42]; - m_A37 += gt[43]; - m_A37 += gt[44]; - m_A37 += gt[45]; - m_A38 += go[39]; - m_A36 += go[40]; - double RHS13 = Idr[39]; - RHS13 += Idr[40]; - RHS13 += Idr[41]; - RHS13 += Idr[42]; - RHS13 += Idr[43]; - RHS13 += Idr[44]; - RHS13 += Idr[45]; - RHS13 -= go[41] * *cnV[41]; - RHS13 -= go[42] * *cnV[42]; - RHS13 -= go[43] * *cnV[43]; - RHS13 -= go[44] * *cnV[44]; - RHS13 -= go[45] * *cnV[45]; - m_A40 += gt[46]; - m_A40 += gt[47]; - m_A40 += gt[48]; - m_A40 += gt[49]; - m_A40 += gt[50]; - m_A40 += gt[51]; - m_A40 += gt[52]; - m_A41 += go[46]; - m_A39 += go[47]; - double RHS14 = Idr[46]; - RHS14 += Idr[47]; - RHS14 += Idr[48]; - RHS14 += Idr[49]; - RHS14 += Idr[50]; - RHS14 += Idr[51]; - RHS14 += Idr[52]; - RHS14 -= go[48] * *cnV[48]; - RHS14 -= go[49] * *cnV[49]; - RHS14 -= go[50] * *cnV[50]; - RHS14 -= go[51] * *cnV[51]; - RHS14 -= go[52] * *cnV[52]; - m_A44 += gt[53]; - m_A44 += gt[54]; - m_A44 += gt[55]; - m_A44 += gt[56]; - m_A45 += go[53]; - m_A43 += go[54]; - m_A42 += go[55]; - double RHS15 = Idr[53]; - RHS15 += Idr[54]; - RHS15 += Idr[55]; - RHS15 += Idr[56]; - RHS15 -= go[56] * *cnV[56]; + tmp4 += m_A10 * V[13]; + tmp4 += m_A11 * V[16]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A7 * V[19]; + tmp3 += m_A8 * V[22]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[22]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[15]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[12]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_c1d22fe6e895255d_79_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A2 += gt[12]; + m_A2 += gt[13]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 += Idr[12]; + RHS1 += Idr[13]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + RHS1 -= go[12] * *cnV[12]; + RHS1 -= go[13] * *cnV[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A4 += gt[16]; + m_A4 += gt[17]; + m_A4 += gt[18]; + m_A5 += go[14]; + m_A6 += go[15]; + double RHS2 = Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 += Idr[17]; + RHS2 += Idr[18]; + RHS2 -= go[16] * *cnV[16]; + RHS2 -= go[17] * *cnV[17]; + RHS2 -= go[18] * *cnV[18]; + m_A7 += gt[19]; + m_A7 += gt[20]; + m_A8 += go[19]; + double RHS3 = Idr[19]; + RHS3 += Idr[20]; + RHS3 -= go[20] * *cnV[20]; + m_A9 += gt[21]; + m_A9 += gt[22]; + m_A10 += go[21]; + double RHS4 = Idr[21]; + RHS4 += Idr[22]; + RHS4 -= go[22] * *cnV[22]; + m_A11 += gt[23]; + m_A11 += gt[24]; + m_A11 += gt[25]; + m_A12 += go[23]; + double RHS5 = Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + m_A14 += gt[26]; + m_A14 += gt[27]; + m_A14 += gt[28]; + m_A14 += gt[29]; + m_A14 += gt[30]; + m_A14 += gt[31]; + m_A13 += go[26]; + m_A16 += go[27]; + m_A15 += go[28]; + m_A15 += go[29]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; + m_A18 += gt[32]; + m_A18 += gt[33]; + m_A18 += gt[34]; + m_A19 += go[32]; + double RHS7 = Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 -= go[33] * *cnV[33]; + RHS7 -= go[34] * *cnV[34]; + m_A20 += gt[35]; + m_A20 += gt[36]; + m_A20 += gt[37]; + m_A21 += go[35]; + double RHS8 = Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 -= go[36] * *cnV[36]; + RHS8 -= go[37] * *cnV[37]; + m_A22 += gt[38]; + m_A22 += gt[39]; + m_A23 += go[38]; + double RHS9 = Idr[38]; + RHS9 += Idr[39]; + RHS9 -= go[39] * *cnV[39]; + m_A25 += gt[40]; + m_A25 += gt[41]; + m_A25 += gt[42]; + m_A27 += go[40]; + m_A24 += go[41]; + double RHS10 = Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 -= go[42] * *cnV[42]; + m_A30 += gt[43]; + m_A30 += gt[44]; + m_A30 += gt[45]; + m_A32 += go[43]; + m_A28 += go[44]; + double RHS11 = Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 -= go[45] * *cnV[45]; + m_A36 += gt[46]; + m_A36 += gt[47]; + m_A36 += gt[48]; + m_A36 += gt[49]; + m_A36 += gt[50]; + m_A36 += gt[51]; + m_A35 += go[46]; + m_A35 += go[47]; + m_A37 += go[48]; + m_A34 += go[49]; + m_A33 += go[50]; + double RHS12 = Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 += Idr[49]; + RHS12 += Idr[50]; + RHS12 += Idr[51]; + RHS12 -= go[51] * *cnV[51]; + m_A41 += gt[52]; + m_A41 += gt[53]; + m_A41 += gt[54]; + m_A41 += gt[55]; + m_A41 += gt[56]; + m_A40 += go[52]; + m_A43 += go[53]; + m_A44 += go[54]; + double RHS13 = Idr[52]; + RHS13 += Idr[53]; + RHS13 += Idr[54]; + RHS13 += Idr[55]; + RHS13 += Idr[56]; + RHS13 -= go[55] * *cnV[55]; + RHS13 -= go[56] * *cnV[56]; m_A48 += gt[57]; m_A48 += gt[58]; - m_A48 += gt[59]; - m_A48 += gt[60]; - m_A48 += gt[61]; - m_A48 += gt[62]; - m_A48 += gt[63]; - m_A49 += go[57]; - m_A46 += go[58]; - double RHS16 = Idr[57]; - RHS16 += Idr[58]; - RHS16 += Idr[59]; - RHS16 += Idr[60]; - RHS16 += Idr[61]; - RHS16 += Idr[62]; - RHS16 += Idr[63]; - RHS16 -= go[59] * *cnV[59]; - RHS16 -= go[60] * *cnV[60]; - RHS16 -= go[61] * *cnV[61]; - RHS16 -= go[62] * *cnV[62]; - RHS16 -= go[63] * *cnV[63]; - m_A51 += gt[64]; - m_A51 += gt[65]; - m_A51 += gt[66]; - m_A53 += go[64]; - m_A50 += go[65]; - double RHS17 = Idr[64]; - RHS17 += Idr[65]; - RHS17 += Idr[66]; - RHS17 -= go[66] * *cnV[66]; - m_A58 += gt[67]; - m_A58 += gt[68]; - m_A58 += gt[69]; - m_A58 += gt[70]; - m_A58 += gt[71]; - m_A58 += gt[72]; - m_A57 += go[67]; - m_A62 += go[68]; - m_A62 += go[69]; - m_A56 += go[70]; - m_A55 += go[71]; - m_A54 += go[72]; - double RHS18 = Idr[67]; - RHS18 += Idr[68]; - RHS18 += Idr[69]; - RHS18 += Idr[70]; + m_A46 += go[57]; + m_A45 += go[58]; + double RHS14 = Idr[57]; + RHS14 += Idr[58]; + m_A51 += gt[59]; + m_A51 += gt[60]; + m_A51 += gt[61]; + m_A51 += gt[62]; + m_A52 += go[59]; + m_A50 += go[60]; + double RHS15 = Idr[59]; + RHS15 += Idr[60]; + RHS15 += Idr[61]; + RHS15 += Idr[62]; + RHS15 -= go[61] * *cnV[61]; + RHS15 -= go[62] * *cnV[62]; + m_A58 += gt[63]; + m_A58 += gt[64]; + m_A58 += gt[65]; + m_A54 += go[63]; + m_A55 += go[64]; + m_A53 += go[65]; + double RHS16 = Idr[63]; + RHS16 += Idr[64]; + RHS16 += Idr[65]; + m_A64 += gt[66]; + m_A64 += gt[67]; + m_A64 += gt[68]; + m_A64 += gt[69]; + m_A61 += go[66]; + m_A60 += go[67]; + double RHS17 = Idr[66]; + RHS17 += Idr[67]; + RHS17 += Idr[68]; + RHS17 += Idr[69]; + RHS17 -= go[68] * *cnV[68]; + RHS17 -= go[69] * *cnV[69]; + m_A68 += gt[70]; + m_A68 += gt[71]; + m_A68 += gt[72]; + m_A65 += go[70]; + m_A66 += go[71]; + double RHS18 = Idr[70]; RHS18 += Idr[71]; RHS18 += Idr[72]; - m_A67 += gt[73]; - m_A67 += gt[74]; - m_A67 += gt[75]; - m_A67 += gt[76]; - m_A67 += gt[77]; - m_A65 += go[73]; - m_A64 += go[74]; - m_A63 += go[75]; + RHS18 -= go[72] * *cnV[72]; + m_A78 += gt[73]; + m_A78 += gt[74]; + m_A78 += gt[75]; + m_A78 += gt[76]; + m_A78 += gt[77]; + m_A72 += go[73]; + m_A73 += go[74]; + m_A75 += go[75]; + m_A71 += go[76]; + m_A70 += go[77]; double RHS19 = Idr[73]; RHS19 += Idr[74]; RHS19 += Idr[75]; RHS19 += Idr[76]; RHS19 += Idr[77]; - RHS19 -= go[76] * *cnV[76]; - RHS19 -= go[77] * *cnV[77]; - m_A76 += gt[78]; - m_A76 += gt[79]; - m_A76 += gt[80]; - m_A76 += gt[81]; - m_A76 += gt[82]; - m_A73 += go[78]; - m_A72 += go[79]; - m_A71 += go[80]; - double RHS20 = Idr[78]; - RHS20 += Idr[79]; - RHS20 += Idr[80]; - RHS20 += Idr[81]; - RHS20 += Idr[82]; - RHS20 -= go[81] * *cnV[81]; - RHS20 -= go[82] * *cnV[82]; - m_A84 += gt[83]; - m_A84 += gt[84]; - m_A84 += gt[85]; - m_A84 += gt[86]; - m_A84 += gt[87]; - m_A84 += gt[88]; - m_A82 += go[83]; - m_A80 += go[84]; - m_A79 += go[85]; - m_A81 += go[86]; - double RHS21 = Idr[83]; - RHS21 += Idr[84]; - RHS21 += Idr[85]; - RHS21 += Idr[86]; - RHS21 += Idr[87]; - RHS21 += Idr[88]; - RHS21 -= go[87] * *cnV[87]; - RHS21 -= go[88] * *cnV[88]; - m_A94 += gt[89]; - m_A94 += gt[90]; - m_A94 += gt[91]; - m_A94 += gt[92]; - m_A94 += gt[93]; - m_A94 += gt[94]; - m_A87 += go[89]; - m_A88 += go[90]; - m_A89 += go[91]; - m_A86 += go[92]; - double RHS22 = Idr[89]; - RHS22 += Idr[90]; - RHS22 += Idr[91]; - RHS22 += Idr[92]; - RHS22 += Idr[93]; - RHS22 += Idr[94]; - RHS22 -= go[93] * *cnV[93]; - RHS22 -= go[94] * *cnV[94]; - m_A101 += gt[95]; - m_A101 += gt[96]; - m_A101 += gt[97]; - m_A101 += gt[98]; - m_A101 += gt[99]; - m_A101 += gt[100]; - m_A101 += gt[101]; - m_A96 += go[95]; - m_A97 += go[96]; - double RHS23 = Idr[95]; - RHS23 += Idr[96]; - RHS23 += Idr[97]; - RHS23 += Idr[98]; - RHS23 += Idr[99]; - RHS23 += Idr[100]; - RHS23 += Idr[101]; - RHS23 -= go[97] * *cnV[97]; - RHS23 -= go[98] * *cnV[98]; - RHS23 -= go[99] * *cnV[99]; - RHS23 -= go[100] * *cnV[100]; - RHS23 -= go[101] * *cnV[101]; - m_A110 += gt[102]; - m_A110 += gt[103]; - m_A110 += gt[104]; - m_A110 += gt[105]; - m_A110 += gt[106]; - m_A110 += gt[107]; - m_A109 += go[102]; - m_A103 += go[103]; - m_A105 += go[104]; - m_A105 += go[105]; - double RHS24 = Idr[102]; - RHS24 += Idr[103]; - RHS24 += Idr[104]; - RHS24 += Idr[105]; - RHS24 += Idr[106]; - RHS24 += Idr[107]; - RHS24 -= go[106] * *cnV[106]; - RHS24 -= go[107] * *cnV[107]; const double f0 = 1.0 / m_A0; - const double f0_13 = -f0 * m_A36; - m_A38 += m_A1 * f0_13; - RHS13 += f0_13 * RHS0; - const double f0_19 = -f0 * m_A63; - m_A67 += m_A1 * f0_19; - RHS19 += f0_19 * RHS0; + const double f0_6 = -f0 * m_A13; + m_A17 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_14 = -f1 * m_A39; - m_A41 += m_A3 * f1_14; - RHS14 += f1_14 * RHS1; - const double f1_20 = -f1 * m_A71; - m_A76 += m_A3 * f1_20; - RHS20 += f1_20 * RHS1; + const double f1_13 = -f1 * m_A40; + m_A42 += m_A3 * f1_13; + RHS13 += f1_13 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_15 = -f2 * m_A42; - m_A44 += m_A5 * f2_15; - RHS15 += f2_15 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_15 = -f3 * m_A43; - m_A44 += m_A7 * f3_15; - m_A45 += m_A8 * f3_15; - RHS15 += f3_15 * RHS3; - const double f3_16 = -f3 * m_A46; - m_A47 += m_A7 * f3_16; - m_A49 += m_A8 * f3_16; - RHS16 += f3_16 * RHS3; - const double f3_21 = -f3 * m_A79; - m_A81 += m_A7 * f3_21; - m_A84 += m_A8 * f3_21; - RHS21 += f3_21 * RHS3; + const double f2_10 = -f2 * m_A24; + m_A25 += m_A5 * f2_10; + m_A26 += m_A6 * f2_10; + RHS10 += f2_10 * RHS2; + const double f2_11 = -f2 * m_A28; + m_A29 += m_A5 * f2_11; + m_A30 += m_A6 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_12 = -f3 * m_A33; + m_A37 += m_A8 * f3_12; + RHS12 += f3_12 * RHS3; + const double f3_14 = -f3 * m_A45; + m_A48 += m_A8 * f3_14; + RHS14 += f3_14 * RHS3; const double f4 = 1.0 / m_A9; - const double f4_17 = -f4 * m_A50; - m_A51 += m_A10 * f4_17; - m_A52 += m_A11 * f4_17; - m_A53 += m_A12 * f4_17; - RHS17 += f4_17 * RHS4; - const double f4_21 = -f4 * m_A80; - m_A83 += m_A10 * f4_21; - m_A84 += m_A11 * f4_21; - m_A85 += m_A12 * f4_21; - RHS21 += f4_21 * RHS4; - const double f4_22 = -f4 * m_A86; - m_A89 += m_A10 * f4_22; - m_A93 += m_A11 * f4_22; - m_A94 += m_A12 * f4_22; - RHS22 += f4_22 * RHS4; - const double f5 = 1.0 / m_A13; - const double f5_22 = -f5 * m_A87; - m_A89 += m_A14 * f5_22; - m_A94 += m_A15 * f5_22; - RHS22 += f5_22 * RHS5; - const double f6 = 1.0 / m_A16; - const double f6_18 = -f6 * m_A54; - m_A58 += m_A17 * f6_18; - m_A61 += m_A18 * f6_18; - RHS18 += f6_18 * RHS6; - const double f6_22 = -f6 * m_A88; - m_A90 += m_A17 * f6_22; - m_A94 += m_A18 * f6_22; - RHS22 += f6_22 * RHS6; - const double f7 = 1.0 / m_A19; - const double f7_18 = -f7 * m_A55; - m_A58 += m_A20 * f7_18; - m_A59 += m_A21 * f7_18; - RHS18 += f7_18 * RHS7; - const double f7_19 = -f7 * m_A64; - m_A66 += m_A20 * f7_19; - m_A67 += m_A21 * f7_19; - RHS19 += f7_19 * RHS7; - const double f8 = 1.0 / m_A22; - const double f8_18 = -f8 * m_A56; - m_A58 += m_A23 * f8_18; - m_A60 += m_A24 * f8_18; - RHS18 += f8_18 * RHS8; - const double f8_20 = -f8 * m_A72; - m_A74 += m_A23 * f8_20; - m_A76 += m_A24 * f8_20; - RHS20 += f8_20 * RHS8; - const double f9 = 1.0 / m_A25; - const double f9_12 = -f9 * m_A32; - m_A34 += m_A26 * f9_12; - m_A35 += m_A27 * f9_12; - RHS12 += f9_12 * RHS9; - const double f9_24 = -f9 * m_A103; - m_A104 += m_A26 * f9_24; - m_A110 += m_A27 * f9_24; - RHS24 += f9_24 * RHS9; - const double f10 = 1.0 / m_A28; - const double f10_12 = -f10 * m_A33; - m_A34 += m_A29 * f10_12; - RHS12 += f10_12 * RHS10; + const double f4_16 = -f4 * m_A53; + m_A58 += m_A10 * f4_16; + RHS16 += f4_16 * RHS4; + const double f4_19 = -f4 * m_A70; + m_A75 += m_A10 * f4_19; + RHS19 += f4_19 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_12 = -f5 * m_A34; + m_A36 += m_A12 * f5_12; + RHS12 += f5_12 * RHS5; + const double f5_17 = -f5 * m_A60; + m_A61 += m_A12 * f5_17; + RHS17 += f5_17 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_12 = -f6 * m_A35; + m_A36 += m_A15 * f6_12; + m_A38 += m_A16 * f6_12; + m_A39 += m_A17 * f6_12; + RHS12 += f6_12 * RHS6; + const double f6_16 = -f6 * m_A54; + m_A56 += m_A15 * f6_16; + m_A58 += m_A16 * f6_16; + m_A59 += m_A17 * f6_16; + RHS16 += f6_16 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_18 = -f7 * m_A65; + m_A68 += m_A19 * f7_18; + RHS18 += f7_18 * RHS7; + const double f8 = 1.0 / m_A20; + const double f8_15 = -f8 * m_A50; + m_A52 += m_A21 * f8_15; + RHS15 += f8_15 * RHS8; + const double f8_19 = -f8 * m_A71; + m_A78 += m_A21 * f8_19; + RHS19 += f8_19 * RHS8; + const double f9 = 1.0 / m_A22; + const double f9_19 = -f9 * m_A72; + m_A78 += m_A23 * f9_19; + RHS19 += f9_19 * RHS9; + const double f10 = 1.0 / m_A25; + const double f10_11 = -f10 * m_A29; + m_A30 += m_A26 * f10_11; + m_A31 += m_A27 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_14 = -f10 * m_A46; + m_A47 += m_A26 * f10_14; + m_A48 += m_A27 * f10_14; + RHS14 += f10_14 * RHS10; const double f11 = 1.0 / m_A30; - const double f11_18 = -f11 * m_A57; - m_A58 += m_A31 * f11_18; - RHS18 += f11_18 * RHS11; - const double f11_23 = -f11 * m_A96; - m_A97 += m_A31 * f11_23; - RHS23 += f11_23 * RHS11; - const double f12 = 1.0 / m_A34; - const double f12_24 = -f12 * m_A104; - m_A110 += m_A35 * f12_24; - RHS24 += f12_24 * RHS12; - const double f13 = 1.0 / m_A37; - const double f13_19 = -f13 * m_A65; - m_A67 += m_A38 * f13_19; + const double f11_14 = -f11 * m_A47; + m_A48 += m_A31 * f11_14; + m_A49 += m_A32 * f11_14; + RHS14 += f11_14 * RHS11; + const double f11_16 = -f11 * m_A55; + m_A57 += m_A31 * f11_16; + m_A58 += m_A32 * f11_16; + RHS16 += f11_16 * RHS11; + const double f12 = 1.0 / m_A36; + const double f12_16 = -f12 * m_A56; + m_A57 += m_A37 * f12_16; + m_A58 += m_A38 * f12_16; + m_A59 += m_A39 * f12_16; + RHS16 += f12_16 * RHS12; + const double f12_17 = -f12 * m_A61; + m_A62 += m_A37 * f12_17; + m_A63 += m_A38 * f12_17; + m_A64 += m_A39 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A41; + const double f13_18 = -f13 * m_A66; + m_A67 += m_A42 * f13_18; + m_A68 += m_A43 * f13_18; + m_A69 += m_A44 * f13_18; + RHS18 += f13_18 * RHS13; + const double f13_19 = -f13 * m_A73; + m_A74 += m_A42 * f13_19; + m_A77 += m_A43 * f13_19; + m_A78 += m_A44 * f13_19; RHS19 += f13_19 * RHS13; - const double f14 = 1.0 / m_A40; - const double f14_20 = -f14 * m_A73; - m_A76 += m_A41 * f14_20; - RHS20 += f14_20 * RHS14; - const double f15 = 1.0 / m_A44; - const double f15_16 = -f15 * m_A47; - m_A49 += m_A45 * f15_16; - RHS16 += f15_16 * RHS15; - const double f15_21 = -f15 * m_A81; - m_A84 += m_A45 * f15_21; - RHS21 += f15_21 * RHS15; - const double f16 = 1.0 / m_A48; - const double f16_21 = -f16 * m_A82; - m_A84 += m_A49 * f16_21; - RHS21 += f16_21 * RHS16; - const double f17 = 1.0 / m_A51; - const double f17_21 = -f17 * m_A83; - m_A84 += m_A52 * f17_21; - m_A85 += m_A53 * f17_21; - RHS21 += f17_21 * RHS17; - const double f17_22 = -f17 * m_A89; - m_A93 += m_A52 * f17_22; - m_A94 += m_A53 * f17_22; - RHS22 += f17_22 * RHS17; - const double f18 = 1.0 / m_A58; - const double f18_19 = -f18 * m_A66; - m_A67 += m_A59 * f18_19; - m_A68 += m_A60 * f18_19; - m_A69 += m_A61 * f18_19; - m_A70 += m_A62 * f18_19; + const double f14 = 1.0 / m_A48; + const double f14_16 = -f14 * m_A57; + m_A58 += m_A49 * f14_16; + RHS16 += f14_16 * RHS14; + const double f14_17 = -f14 * m_A62; + m_A63 += m_A49 * f14_17; + RHS17 += f14_17 * RHS14; + const double f15 = 1.0 / m_A51; + const double f15_18 = -f15 * m_A67; + m_A69 += m_A52 * f15_18; + RHS18 += f15_18 * RHS15; + const double f15_19 = -f15 * m_A74; + m_A78 += m_A52 * f15_19; + RHS19 += f15_19 * RHS15; + const double f16 = 1.0 / m_A58; + const double f16_17 = -f16 * m_A63; + m_A64 += m_A59 * f16_17; + RHS17 += f16_17 * RHS16; + const double f16_19 = -f16 * m_A75; + m_A76 += m_A59 * f16_19; + RHS19 += f16_19 * RHS16; + const double f17 = 1.0 / m_A64; + const double f17_19 = -f17 * m_A76; + RHS19 += f17_19 * RHS17; + const double f18 = 1.0 / m_A68; + const double f18_19 = -f18 * m_A77; + m_A78 += m_A69 * f18_19; RHS19 += f18_19 * RHS18; - const double f18_20 = -f18 * m_A74; - m_A75 += m_A59 * f18_20; - m_A76 += m_A60 * f18_20; - m_A77 += m_A61 * f18_20; - m_A78 += m_A62 * f18_20; - RHS20 += f18_20 * RHS18; - const double f18_22 = -f18 * m_A90; - m_A91 += m_A59 * f18_22; - m_A92 += m_A60 * f18_22; - m_A94 += m_A61 * f18_22; - m_A95 += m_A62 * f18_22; - RHS22 += f18_22 * RHS18; - const double f18_23 = -f18 * m_A97; - m_A98 += m_A59 * f18_23; - m_A99 += m_A60 * f18_23; - m_A100 += m_A61 * f18_23; - m_A102 += m_A62 * f18_23; - RHS23 += f18_23 * RHS18; - const double f18_24 = -f18 * m_A105; - m_A106 += m_A59 * f18_24; - m_A107 += m_A60 * f18_24; - m_A108 += m_A61 * f18_24; - m_A110 += m_A62 * f18_24; - RHS24 += f18_24 * RHS18; - const double f19 = 1.0 / m_A67; - const double f19_20 = -f19 * m_A75; - m_A76 += m_A68 * f19_20; - m_A77 += m_A69 * f19_20; - m_A78 += m_A70 * f19_20; - RHS20 += f19_20 * RHS19; - const double f19_22 = -f19 * m_A91; - m_A92 += m_A68 * f19_22; - m_A94 += m_A69 * f19_22; - m_A95 += m_A70 * f19_22; - RHS22 += f19_22 * RHS19; - const double f19_23 = -f19 * m_A98; - m_A99 += m_A68 * f19_23; - m_A100 += m_A69 * f19_23; - m_A102 += m_A70 * f19_23; - RHS23 += f19_23 * RHS19; - const double f19_24 = -f19 * m_A106; - m_A107 += m_A68 * f19_24; - m_A108 += m_A69 * f19_24; - m_A110 += m_A70 * f19_24; - RHS24 += f19_24 * RHS19; - const double f20 = 1.0 / m_A76; - const double f20_22 = -f20 * m_A92; - m_A94 += m_A77 * f20_22; - m_A95 += m_A78 * f20_22; - RHS22 += f20_22 * RHS20; - const double f20_23 = -f20 * m_A99; - m_A100 += m_A77 * f20_23; - m_A102 += m_A78 * f20_23; - RHS23 += f20_23 * RHS20; - const double f20_24 = -f20 * m_A107; - m_A108 += m_A77 * f20_24; - m_A110 += m_A78 * f20_24; - RHS24 += f20_24 * RHS20; - const double f21 = 1.0 / m_A84; - const double f21_22 = -f21 * m_A93; - m_A94 += m_A85 * f21_22; - RHS22 += f21_22 * RHS21; - const double f22 = 1.0 / m_A94; - const double f22_23 = -f22 * m_A100; - m_A102 += m_A95 * f22_23; - RHS23 += f22_23 * RHS22; - const double f22_24 = -f22 * m_A108; - m_A110 += m_A95 * f22_24; - RHS24 += f22_24 * RHS22; - const double f23 = 1.0 / m_A101; - const double f23_24 = -f23 * m_A109; - m_A110 += m_A102 * f23_24; - RHS24 += f23_24 * RHS23; - V[24] = RHS24 / m_A110; - double tmp23 = 0.0; - tmp23 += m_A102 * V[24]; - V[23] = (RHS23 - tmp23) / m_A101; - double tmp22 = 0.0; - tmp22 += m_A95 * V[24]; - V[22] = (RHS22 - tmp22) / m_A94; - double tmp21 = 0.0; - tmp21 += m_A85 * V[22]; - V[21] = (RHS21 - tmp21) / m_A84; - double tmp20 = 0.0; - tmp20 += m_A77 * V[22]; - tmp20 += m_A78 * V[24]; - V[20] = (RHS20 - tmp20) / m_A76; - double tmp19 = 0.0; - tmp19 += m_A68 * V[20]; - tmp19 += m_A69 * V[22]; - tmp19 += m_A70 * V[24]; - V[19] = (RHS19 - tmp19) / m_A67; + V[19] = RHS19 / m_A78; double tmp18 = 0.0; - tmp18 += m_A59 * V[19]; - tmp18 += m_A60 * V[20]; - tmp18 += m_A61 * V[22]; - tmp18 += m_A62 * V[24]; - V[18] = (RHS18 - tmp18) / m_A58; + tmp18 += m_A69 * V[19]; + V[18] = (RHS18 - tmp18) / m_A68; double tmp17 = 0.0; - tmp17 += m_A52 * V[21]; - tmp17 += m_A53 * V[22]; - V[17] = (RHS17 - tmp17) / m_A51; + V[17] = (RHS17 - tmp17) / m_A64; double tmp16 = 0.0; - tmp16 += m_A49 * V[21]; - V[16] = (RHS16 - tmp16) / m_A48; + tmp16 += m_A59 * V[17]; + V[16] = (RHS16 - tmp16) / m_A58; double tmp15 = 0.0; - tmp15 += m_A45 * V[21]; - V[15] = (RHS15 - tmp15) / m_A44; + tmp15 += m_A52 * V[19]; + V[15] = (RHS15 - tmp15) / m_A51; double tmp14 = 0.0; - tmp14 += m_A41 * V[20]; - V[14] = (RHS14 - tmp14) / m_A40; + tmp14 += m_A49 * V[16]; + V[14] = (RHS14 - tmp14) / m_A48; double tmp13 = 0.0; - tmp13 += m_A38 * V[19]; - V[13] = (RHS13 - tmp13) / m_A37; + tmp13 += m_A42 * V[15]; + tmp13 += m_A43 * V[18]; + tmp13 += m_A44 * V[19]; + V[13] = (RHS13 - tmp13) / m_A41; double tmp12 = 0.0; - tmp12 += m_A35 * V[24]; - V[12] = (RHS12 - tmp12) / m_A34; + tmp12 += m_A37 * V[14]; + tmp12 += m_A38 * V[16]; + tmp12 += m_A39 * V[17]; + V[12] = (RHS12 - tmp12) / m_A36; double tmp11 = 0.0; - tmp11 += m_A31 * V[18]; + tmp11 += m_A31 * V[14]; + tmp11 += m_A32 * V[16]; V[11] = (RHS11 - tmp11) / m_A30; double tmp10 = 0.0; - tmp10 += m_A29 * V[12]; - V[10] = (RHS10 - tmp10) / m_A28; + tmp10 += m_A26 * V[11]; + tmp10 += m_A27 * V[14]; + V[10] = (RHS10 - tmp10) / m_A25; double tmp9 = 0.0; - tmp9 += m_A26 * V[12]; - tmp9 += m_A27 * V[24]; - V[9] = (RHS9 - tmp9) / m_A25; + tmp9 += m_A23 * V[19]; + V[9] = (RHS9 - tmp9) / m_A22; double tmp8 = 0.0; - tmp8 += m_A23 * V[18]; - tmp8 += m_A24 * V[20]; - V[8] = (RHS8 - tmp8) / m_A22; + tmp8 += m_A21 * V[19]; + V[8] = (RHS8 - tmp8) / m_A20; double tmp7 = 0.0; - tmp7 += m_A20 * V[18]; - tmp7 += m_A21 * V[19]; - V[7] = (RHS7 - tmp7) / m_A19; + tmp7 += m_A19 * V[18]; + V[7] = (RHS7 - tmp7) / m_A18; double tmp6 = 0.0; - tmp6 += m_A17 * V[18]; - tmp6 += m_A18 * V[22]; - V[6] = (RHS6 - tmp6) / m_A16; + tmp6 += m_A15 * V[12]; + tmp6 += m_A16 * V[16]; + tmp6 += m_A17 * V[17]; + V[6] = (RHS6 - tmp6) / m_A14; double tmp5 = 0.0; - tmp5 += m_A14 * V[17]; - tmp5 += m_A15 * V[22]; - V[5] = (RHS5 - tmp5) / m_A13; + tmp5 += m_A12 * V[12]; + V[5] = (RHS5 - tmp5) / m_A11; double tmp4 = 0.0; - tmp4 += m_A10 * V[17]; - tmp4 += m_A11 * V[21]; - tmp4 += m_A12 * V[22]; + tmp4 += m_A10 * V[16]; V[4] = (RHS4 - tmp4) / m_A9; double tmp3 = 0.0; - tmp3 += m_A7 * V[15]; - tmp3 += m_A8 * V[21]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A8 * V[14]; + V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A5 * V[15]; + tmp2 += m_A5 * V[10]; + tmp2 += m_A6 * V[11]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[20]; + tmp1 += m_A3 * V[15]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[19]; + tmp0 += m_A1 * V[17]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_a0bf548977306172_25_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starcrus +static void nl_gcr_c2e616f3de30f15b_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -21613,152 +49658,385 @@ double m_A22(0.0); double m_A23(0.0); double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; m_A4 += gt[5]; m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A6 += go[4]; m_A5 += go[5]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; + double RHS2 = Idr[5]; RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; RHS2 -= go[6] * *cnV[6]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; - m_A7 += gt[11]; - m_A7 += gt[12]; - m_A7 += gt[13]; - m_A8 += go[11]; - m_A9 += go[12]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 -= go[13] * *cnV[13]; - m_A11 += gt[14]; - m_A11 += gt[15]; - m_A11 += gt[16]; - m_A12 += go[14]; - m_A10 += go[15]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 -= go[16] * *cnV[16]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[8] * *cnV[8]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A9 += go[9]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + RHS4 -= go[10] * *cnV[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A12 += go[11]; + m_A10 += go[12]; + m_A10 += go[13]; + m_A11 += go[14]; + double RHS5 = Idr[11]; + RHS5 += Idr[12]; + RHS5 += Idr[13]; + RHS5 += Idr[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; m_A14 += gt[17]; m_A14 += gt[18]; m_A14 += gt[19]; - m_A15 += go[17]; - m_A13 += go[18]; - double RHS5 = Idr[17]; - RHS5 += Idr[18]; - RHS5 += Idr[19]; - RHS5 -= go[19] * *cnV[19]; - m_A18 += gt[20]; - m_A18 += gt[21]; - m_A18 += gt[22]; - m_A16 += go[20]; - m_A17 += go[21]; - double RHS6 = Idr[20]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A13 += go[15]; + m_A15 += go[16]; + double RHS6 = Idr[15]; + RHS6 += Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; RHS6 += Idr[21]; - RHS6 += Idr[22]; - RHS6 -= go[22] * *cnV[22]; - m_A24 += gt[23]; + RHS6 -= go[17] * *cnV[17]; + RHS6 -= go[18] * *cnV[18]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + RHS6 -= go[21] * *cnV[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A17 += go[22]; + double RHS7 = Idr[22]; + RHS7 += Idr[23]; + RHS7 -= go[23] * *cnV[23]; m_A24 += gt[24]; m_A24 += gt[25]; m_A24 += gt[26]; m_A24 += gt[27]; - m_A20 += go[23]; - m_A21 += go[24]; - m_A22 += go[25]; - double RHS7 = Idr[23]; - RHS7 += Idr[24]; - RHS7 += Idr[25]; - RHS7 += Idr[26]; - RHS7 += Idr[27]; - RHS7 -= go[26] * *cnV[26]; - RHS7 -= go[27] * *cnV[27]; + m_A24 += gt[28]; + m_A24 += gt[29]; + m_A24 += gt[30]; + m_A22 += go[24]; + m_A21 += go[25]; + m_A20 += go[26]; + m_A19 += go[27]; + m_A18 += go[28]; + m_A25 += go[29]; + m_A23 += go[30]; + double RHS8 = Idr[24]; + RHS8 += Idr[25]; + RHS8 += Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + m_A30 += gt[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A27 += go[31]; + m_A28 += go[32]; + m_A26 += go[33]; + m_A29 += go[34]; + double RHS9 = Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 -= go[35] * *cnV[35]; + RHS9 -= go[36] * *cnV[36]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A13; + m_A15 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f0_8 = -f0 * m_A18; + m_A24 += m_A1 * f0_8; + RHS8 += f0_8 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_8 = -f1 * m_A19; + m_A24 += m_A3 * f1_8; + RHS8 += f1_8 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_8 = -f2 * m_A20; + m_A24 += m_A5 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_8 = -f3 * m_A21; + m_A24 += m_A7 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_8 = -f4 * m_A22; + m_A24 += m_A9 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_8 = -f5 * m_A23; + m_A24 += m_A11 * f5_8; + m_A25 += m_A12 * f5_8; + RHS8 += f5_8 * RHS5; + const double f5_9 = -f5 * m_A26; + m_A29 += m_A11 * f5_9; + m_A30 += m_A12 * f5_9; + RHS9 += f5_9 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_9 = -f6 * m_A27; + m_A29 += m_A15 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_9 = -f7 * m_A28; + m_A30 += m_A17 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A24; + const double f8_9 = -f8 * m_A29; + m_A30 += m_A25 * f8_9; + RHS9 += f8_9 * RHS8; + V[9] = RHS9 / m_A30; + double tmp8 = 0.0; + tmp8 += m_A25 * V[9]; + V[8] = (RHS8 - tmp8) / m_A24; + double tmp7 = 0.0; + tmp7 += m_A17 * V[9]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A15 * V[8]; + V[6] = (RHS6 - tmp6) / m_A14; + double tmp5 = 0.0; + tmp5 += m_A11 * V[8]; + tmp5 += m_A12 * V[9]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[8]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[8]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[8]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[8]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[8]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// tailg +static void nl_gcr_c4cec7aed23b7b94_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[2]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A7 += go[7]; + m_A6 += go[8]; + m_A6 += go[9]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A9 += gt[17]; + m_A10 += go[13]; + m_A10 += go[14]; + m_A8 += go[15]; + m_A8 += go[16]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[17] * *cnV[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A12 += gt[22]; + m_A13 += go[18]; + m_A13 += go[19]; + m_A11 += go[20]; + m_A11 += go[21]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 -= go[22] * *cnV[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A17 += gt[26]; + m_A17 += gt[27]; + m_A17 += gt[28]; + m_A18 += go[23]; + m_A16 += go[24]; + m_A16 += go[25]; + m_A15 += go[26]; + m_A14 += go[27]; + double RHS5 = Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 -= go[28] * *cnV[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A22 += gt[32]; + m_A20 += go[29]; + m_A20 += go[30]; + m_A19 += go[31]; + m_A21 += go[32]; + double RHS6 = Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A10; - m_A11 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; + const double f0_5 = -f0 * m_A14; + m_A17 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A13; - m_A14 += m_A3 * f1_5; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A3 * f1_3; + m_A10 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_5 = -f1 * m_A15; + m_A16 += m_A3 * f1_5; + m_A17 += m_A4 * f1_5; RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_7 = -f2 * m_A20; - m_A22 += m_A5 * f2_7; - m_A24 += m_A6 * f2_7; - RHS7 += f2_7 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_6 = -f3 * m_A16; - m_A18 += m_A8 * f3_6; - m_A19 += m_A9 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_7 = -f3 * m_A21; - m_A23 += m_A8 * f3_7; - m_A24 += m_A9 * f3_7; - RHS7 += f3_7 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_6 = -f4 * m_A17; - m_A18 += m_A12 * f4_6; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A11; + m_A12 += m_A6 * f2_4; + m_A13 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_6 = -f2 * m_A19; + m_A20 += m_A6 * f2_6; + m_A22 += m_A7 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_5 = -f3 * m_A16; + m_A17 += m_A10 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_6 = -f4 * m_A20; + m_A22 += m_A13 * f4_6; RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A14; - const double f5_7 = -f5 * m_A22; - m_A24 += m_A15 * f5_7; - RHS7 += f5_7 * RHS5; - const double f6 = 1.0 / m_A18; - const double f6_7 = -f6 * m_A23; - m_A24 += m_A19 * f6_7; - RHS7 += f6_7 * RHS6; - V[7] = RHS7 / m_A24; - double tmp6 = 0.0; - tmp6 += m_A19 * V[7]; - V[6] = (RHS6 - tmp6) / m_A18; + const double f5 = 1.0 / m_A17; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A18 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A22; double tmp5 = 0.0; - tmp5 += m_A15 * V[7]; - V[5] = (RHS5 - tmp5) / m_A14; + tmp5 += m_A18 * V[6]; + V[5] = (RHS5 - tmp5) / m_A17; double tmp4 = 0.0; - tmp4 += m_A12 * V[6]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A13 * V[6]; + V[4] = (RHS4 - tmp4) / m_A12; double tmp3 = 0.0; - tmp3 += m_A8 * V[6]; - tmp3 += m_A9 * V[7]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A10 * V[5]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[5]; - tmp2 += m_A6 * V[7]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[6]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[5]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_a1132c8737d5d463_96_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// segausb +static void nl_gcr_c61e08cf5e35918_84_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -21803,608 +50081,507 @@ double m_A37(0.0); double m_A38(0.0); double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); - double m_A76(0.0); - double m_A77(0.0); - double m_A78(0.0); - double m_A79(0.0); - double m_A80(0.0); - double m_A81(0.0); - double m_A82(0.0); - double m_A83(0.0); - double m_A84(0.0); - double m_A85(0.0); - double m_A86(0.0); - double m_A87(0.0); - double m_A88(0.0); - double m_A89(0.0); - double m_A90(0.0); - double m_A91(0.0); - double m_A92(0.0); - double m_A93(0.0); - double m_A94(0.0); - double m_A95(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A3 += go[4]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A5 += go[7]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; - m_A7 += go[10]; - double RHS3 = Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A9 += go[13]; - double RHS4 = Idr[13]; - RHS4 += Idr[14]; - RHS4 += Idr[15]; - RHS4 -= go[14] * *cnV[14]; - RHS4 -= go[15] * *cnV[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A11 += go[16]; - double RHS5 = Idr[16]; - RHS5 += Idr[17]; - RHS5 += Idr[18]; - RHS5 -= go[17] * *cnV[17]; - RHS5 -= go[18] * *cnV[18]; - m_A12 += gt[19]; - m_A12 += gt[20]; - m_A12 += gt[21]; - m_A13 += go[19]; - double RHS6 = Idr[19]; - RHS6 += Idr[20]; - RHS6 += Idr[21]; - RHS6 -= go[20] * *cnV[20]; - RHS6 -= go[21] * *cnV[21]; - m_A14 += gt[22]; - m_A14 += gt[23]; - m_A14 += gt[24]; - m_A15 += go[22]; - double RHS7 = Idr[22]; - RHS7 += Idr[23]; - RHS7 += Idr[24]; - RHS7 -= go[23] * *cnV[23]; - RHS7 -= go[24] * *cnV[24]; - m_A16 += gt[25]; - m_A16 += gt[26]; - m_A16 += gt[27]; - m_A17 += go[25]; - double RHS8 = Idr[25]; - RHS8 += Idr[26]; - RHS8 += Idr[27]; - RHS8 -= go[26] * *cnV[26]; - RHS8 -= go[27] * *cnV[27]; - m_A18 += gt[28]; - m_A18 += gt[29]; - m_A18 += gt[30]; - m_A19 += go[28]; - double RHS9 = Idr[28]; - RHS9 += Idr[29]; - RHS9 += Idr[30]; - RHS9 -= go[29] * *cnV[29]; - RHS9 -= go[30] * *cnV[30]; - m_A20 += gt[31]; - m_A20 += gt[32]; - m_A20 += gt[33]; - m_A21 += go[31]; - double RHS10 = Idr[31]; - RHS10 += Idr[32]; - RHS10 += Idr[33]; - RHS10 -= go[32] * *cnV[32]; - RHS10 -= go[33] * *cnV[33]; - m_A22 += gt[34]; - m_A22 += gt[35]; - m_A24 += go[34]; - m_A23 += go[35]; - double RHS11 = Idr[34]; - RHS11 += Idr[35]; - m_A25 += gt[36]; - m_A25 += gt[37]; - m_A27 += go[36]; - m_A26 += go[37]; - double RHS12 = Idr[36]; - RHS12 += Idr[37]; - m_A28 += gt[38]; - m_A28 += gt[39]; - m_A30 += go[38]; - m_A29 += go[39]; - double RHS13 = Idr[38]; - RHS13 += Idr[39]; - m_A31 += gt[40]; - m_A31 += gt[41]; - m_A32 += go[40]; - double RHS14 = Idr[40]; - RHS14 += Idr[41]; - RHS14 -= go[41] * *cnV[41]; - m_A33 += gt[42]; - m_A33 += gt[43]; - m_A35 += go[42]; - m_A34 += go[43]; - double RHS15 = Idr[42]; - RHS15 += Idr[43]; - m_A36 += gt[44]; - m_A36 += gt[45]; - m_A36 += gt[46]; - m_A36 += gt[47]; - m_A36 += gt[48]; - m_A36 += gt[49]; - m_A36 += gt[50]; - m_A37 += go[44]; - double RHS16 = Idr[44]; - RHS16 += Idr[45]; - RHS16 += Idr[46]; - RHS16 += Idr[47]; - RHS16 += Idr[48]; - RHS16 += Idr[49]; - RHS16 += Idr[50]; - RHS16 -= go[45] * *cnV[45]; - RHS16 -= go[46] * *cnV[46]; - RHS16 -= go[47] * *cnV[47]; - RHS16 -= go[48] * *cnV[48]; - RHS16 -= go[49] * *cnV[49]; - RHS16 -= go[50] * *cnV[50]; - m_A42 += gt[51]; - m_A42 += gt[52]; - m_A42 += gt[53]; - m_A42 += gt[54]; - m_A42 += gt[55]; - m_A41 += go[51]; - m_A40 += go[52]; - m_A39 += go[53]; - m_A38 += go[54]; - double RHS17 = Idr[51]; - RHS17 += Idr[52]; - RHS17 += Idr[53]; - RHS17 += Idr[54]; - RHS17 += Idr[55]; - RHS17 -= go[55] * *cnV[55]; - m_A48 += gt[56]; - m_A48 += gt[57]; - m_A48 += gt[58]; - m_A48 += gt[59]; - m_A48 += gt[60]; - m_A47 += go[56]; - m_A46 += go[57]; - m_A45 += go[58]; - m_A44 += go[59]; - double RHS18 = Idr[56]; - RHS18 += Idr[57]; - RHS18 += Idr[58]; - RHS18 += Idr[59]; - RHS18 += Idr[60]; - RHS18 -= go[60] * *cnV[60]; - m_A50 += gt[61]; - m_A50 += gt[62]; - m_A51 += go[61]; - m_A52 += go[62]; - double RHS19 = Idr[61]; - RHS19 += Idr[62]; - m_A55 += gt[63]; - m_A55 += gt[64]; - m_A55 += gt[65]; - m_A54 += go[63]; - m_A53 += go[64]; - double RHS20 = Idr[63]; - RHS20 += Idr[64]; - RHS20 += Idr[65]; - RHS20 -= go[65] * *cnV[65]; - m_A58 += gt[66]; - m_A58 += gt[67]; - m_A58 += gt[68]; - m_A59 += go[66]; - m_A57 += go[67]; - double RHS21 = Idr[66]; - RHS21 += Idr[67]; - RHS21 += Idr[68]; - RHS21 -= go[68] * *cnV[68]; - m_A62 += gt[69]; - m_A62 += gt[70]; - m_A62 += gt[71]; - m_A61 += go[69]; - m_A60 += go[70]; - double RHS22 = Idr[69]; - RHS22 += Idr[70]; - RHS22 += Idr[71]; - RHS22 -= go[71] * *cnV[71]; - m_A65 += gt[72]; - m_A65 += gt[73]; - m_A65 += gt[74]; - m_A65 += gt[75]; - m_A65 += gt[76]; - m_A65 += gt[77]; - m_A65 += gt[78]; - m_A64 += go[72]; - m_A66 += go[73]; - double RHS23 = Idr[72]; - RHS23 += Idr[73]; - RHS23 += Idr[74]; - RHS23 += Idr[75]; - RHS23 += Idr[76]; - RHS23 += Idr[77]; - RHS23 += Idr[78]; - RHS23 -= go[74] * *cnV[74]; - RHS23 -= go[75] * *cnV[75]; - RHS23 -= go[76] * *cnV[76]; - RHS23 -= go[77] * *cnV[77]; - RHS23 -= go[78] * *cnV[78]; - m_A68 += gt[79]; - m_A68 += gt[80]; - m_A69 += go[79]; - m_A67 += go[80]; - double RHS24 = Idr[79]; - RHS24 += Idr[80]; - m_A73 += gt[81]; - m_A73 += gt[82]; - m_A73 += gt[83]; - m_A73 += gt[84]; - m_A73 += gt[85]; - m_A72 += go[81]; - m_A70 += go[82]; - m_A71 += go[83]; - double RHS25 = Idr[81]; - RHS25 += Idr[82]; - RHS25 += Idr[83]; - RHS25 += Idr[84]; - RHS25 += Idr[85]; - RHS25 -= go[84] * *cnV[84]; - RHS25 -= go[85] * *cnV[85]; - m_A76 += gt[86]; - m_A76 += gt[87]; - m_A77 += go[86]; - m_A75 += go[87]; - double RHS26 = Idr[86]; - RHS26 += Idr[87]; - m_A79 += gt[88]; - m_A79 += gt[89]; - m_A79 += gt[90]; - m_A79 += gt[91]; - m_A79 += gt[92]; - m_A78 += go[88]; - m_A80 += go[89]; - m_A80 += go[90]; - double RHS27 = Idr[88]; - RHS27 += Idr[89]; - RHS27 += Idr[90]; - RHS27 += Idr[91]; - RHS27 += Idr[92]; - RHS27 -= go[91] * *cnV[91]; - RHS27 -= go[92] * *cnV[92]; - m_A95 += gt[93]; - m_A95 += gt[94]; - m_A95 += gt[95]; - m_A95 += gt[96]; - m_A95 += gt[97]; - m_A95 += gt[98]; - m_A95 += gt[99]; - m_A95 += gt[100]; - m_A95 += gt[101]; - m_A95 += gt[102]; - m_A95 += gt[103]; - m_A87 += go[93]; - m_A94 += go[94]; - m_A94 += go[95]; - m_A93 += go[96]; - m_A91 += go[97]; - m_A84 += go[98]; - m_A83 += go[99]; - m_A82 += go[100]; - m_A81 += go[101]; - m_A89 += go[102]; - double RHS28 = Idr[93]; - RHS28 += Idr[94]; - RHS28 += Idr[95]; - RHS28 += Idr[96]; - RHS28 += Idr[97]; - RHS28 += Idr[98]; - RHS28 += Idr[99]; - RHS28 += Idr[100]; - RHS28 += Idr[101]; - RHS28 += Idr[102]; - RHS28 += Idr[103]; - RHS28 -= go[103] * *cnV[103]; + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + m_A2 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + m_A3 += gt[2]; + m_A3 += gt[3]; + m_A5 += go[2]; + m_A4 += go[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + m_A6 += gt[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A7 += go[4]; + m_A8 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A10 += go[11]; + m_A11 += go[12]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[13] * *cnV[13]; + m_A12 += gt[14]; + m_A13 += go[14]; + double RHS4 = Idr[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A16 += go[15]; + m_A15 += go[16]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + m_A17 += gt[17]; + m_A17 += gt[18]; + m_A18 += go[17]; + double RHS6 = Idr[17]; + RHS6 += Idr[18]; + RHS6 -= go[18] * *cnV[18]; + m_A19 += gt[19]; + m_A19 += gt[20]; + m_A19 += gt[21]; + m_A19 += gt[22]; + m_A19 += gt[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A20 += go[19]; + double RHS7 = Idr[19]; + RHS7 += Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 -= go[20] * *cnV[20]; + RHS7 -= go[21] * *cnV[21]; + RHS7 -= go[22] * *cnV[22]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; + RHS7 -= go[25] * *cnV[25]; + m_A21 += gt[26]; + m_A21 += gt[27]; + m_A21 += gt[28]; + m_A21 += gt[29]; + m_A21 += gt[30]; + m_A21 += gt[31]; + m_A21 += gt[32]; + m_A22 += go[26]; + double RHS8 = Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 += Idr[32]; + RHS8 -= go[27] * *cnV[27]; + RHS8 -= go[28] * *cnV[28]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + RHS8 -= go[32] * *cnV[32]; + m_A23 += gt[33]; + m_A23 += gt[34]; + m_A25 += go[33]; + m_A24 += go[34]; + double RHS9 = Idr[33]; + RHS9 += Idr[34]; + m_A28 += gt[35]; + m_A28 += gt[36]; + m_A28 += gt[37]; + m_A28 += gt[38]; + m_A28 += gt[39]; + m_A28 += gt[40]; + m_A30 += go[35]; + m_A27 += go[36]; + m_A26 += go[37]; + m_A29 += go[38]; + double RHS10 = Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 -= go[39] * *cnV[39]; + RHS10 -= go[40] * *cnV[40]; + m_A34 += gt[41]; + m_A34 += gt[42]; + m_A34 += gt[43]; + m_A34 += gt[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A31 += go[41]; + m_A33 += go[42]; + m_A37 += go[43]; + m_A32 += go[44]; + double RHS11 = Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 += Idr[46]; + RHS11 -= go[45] * *cnV[45]; + RHS11 -= go[46] * *cnV[46]; + m_A41 += gt[47]; + m_A41 += gt[48]; + m_A41 += gt[49]; + m_A41 += gt[50]; + m_A44 += go[47]; + m_A39 += go[48]; + m_A38 += go[49]; + double RHS12 = Idr[47]; + RHS12 += Idr[48]; + RHS12 += Idr[49]; + RHS12 += Idr[50]; + RHS12 -= go[50] * *cnV[50]; + m_A45 += gt[51]; + m_A45 += gt[52]; + m_A45 += gt[53]; + m_A45 += gt[54]; + m_A45 += gt[55]; + m_A46 += go[51]; + double RHS13 = Idr[51]; + RHS13 += Idr[52]; + RHS13 += Idr[53]; + RHS13 += Idr[54]; + RHS13 += Idr[55]; + RHS13 -= go[52] * *cnV[52]; + RHS13 -= go[53] * *cnV[53]; + RHS13 -= go[54] * *cnV[54]; + RHS13 -= go[55] * *cnV[55]; + m_A50 += gt[56]; + m_A50 += gt[57]; + m_A50 += gt[58]; + m_A50 += gt[59]; + m_A50 += gt[60]; + m_A49 += go[56]; + m_A48 += go[57]; + m_A47 += go[58]; + double RHS14 = Idr[56]; + RHS14 += Idr[57]; + RHS14 += Idr[58]; + RHS14 += Idr[59]; + RHS14 += Idr[60]; + RHS14 -= go[59] * *cnV[59]; + RHS14 -= go[60] * *cnV[60]; + m_A59 += gt[61]; + m_A59 += gt[62]; + m_A59 += gt[63]; + m_A59 += gt[64]; + m_A54 += go[61]; + m_A53 += go[62]; + m_A55 += go[63]; + double RHS15 = Idr[61]; + RHS15 += Idr[62]; + RHS15 += Idr[63]; + RHS15 += Idr[64]; + RHS15 -= go[64] * *cnV[64]; + m_A67 += gt[65]; + m_A67 += gt[66]; + m_A67 += gt[67]; + m_A63 += go[65]; + m_A69 += go[66]; + m_A64 += go[67]; + double RHS16 = Idr[65]; + RHS16 += Idr[66]; + RHS16 += Idr[67]; + m_A74 += gt[68]; + m_A74 += gt[69]; + m_A74 += gt[70]; + m_A74 += gt[71]; + m_A70 += go[68]; + m_A71 += go[69]; + double RHS17 = Idr[68]; + RHS17 += Idr[69]; + RHS17 += Idr[70]; + RHS17 += Idr[71]; + RHS17 -= go[70] * *cnV[70]; + RHS17 -= go[71] * *cnV[71]; + m_A83 += gt[72]; + m_A83 += gt[73]; + m_A83 += gt[74]; + m_A83 += gt[75]; + m_A83 += gt[76]; + m_A83 += gt[77]; + m_A76 += go[72]; + m_A78 += go[73]; + m_A81 += go[74]; + m_A77 += go[75]; + double RHS18 = Idr[72]; + RHS18 += Idr[73]; + RHS18 += Idr[74]; + RHS18 += Idr[75]; + RHS18 += Idr[76]; + RHS18 += Idr[77]; + RHS18 -= go[76] * *cnV[76]; + RHS18 -= go[77] * *cnV[77]; const double f0 = 1.0 / m_A0; - const double f0_21 = -f0 * m_A57; - m_A58 += m_A1 * f0_21; - RHS21 += f0_21 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_17 = -f1 * m_A38; - m_A42 += m_A3 * f1_17; - RHS17 += f1_17 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_17 = -f2 * m_A39; - m_A42 += m_A5 * f2_17; - RHS17 += f2_17 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_17 = -f3 * m_A40; - m_A42 += m_A7 * f3_17; - RHS17 += f3_17 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_18 = -f4 * m_A44; - m_A48 += m_A9 * f4_18; - RHS18 += f4_18 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_20 = -f5 * m_A53; - m_A55 += m_A11 * f5_20; - RHS20 += f5_20 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_22 = -f6 * m_A60; - m_A62 += m_A13 * f6_22; - RHS22 += f6_22 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_18 = -f7 * m_A45; - m_A48 += m_A15 * f7_18; - RHS18 += f7_18 * RHS7; - const double f8 = 1.0 / m_A16; - const double f8_18 = -f8 * m_A46; - m_A48 += m_A17 * f8_18; + const double f0_10 = -f0 * m_A26; + m_A28 += m_A1 * f0_10; + m_A29 += m_A2 * f0_10; + RHS10 += f0_10 * RHS0; + const double f0_14 = -f0 * m_A47; + m_A49 += m_A1 * f0_14; + m_A50 += m_A2 * f0_14; + RHS14 += f0_14 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_10 = -f1 * m_A27; + m_A28 += m_A4 * f1_10; + m_A30 += m_A5 * f1_10; + RHS10 += f1_10 * RHS1; + const double f1_15 = -f1 * m_A53; + m_A55 += m_A4 * f1_15; + m_A59 += m_A5 * f1_15; + RHS15 += f1_15 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_11 = -f2 * m_A31; + m_A32 += m_A7 * f2_11; + m_A36 += m_A8 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_11 = -f3 * m_A32; + m_A34 += m_A10 * f3_11; + m_A36 += m_A11 * f3_11; + RHS11 += f3_11 * RHS3; + const double f3_15 = -f3 * m_A54; + m_A56 += m_A10 * f3_15; + m_A59 += m_A11 * f3_15; + RHS15 += f3_15 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_16 = -f4 * m_A63; + m_A67 += m_A13 * f4_16; + RHS16 += f4_16 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_11 = -f5 * m_A33; + m_A34 += m_A15 * f5_11; + m_A35 += m_A16 * f5_11; + RHS11 += f5_11 * RHS5; + const double f5_12 = -f5 * m_A38; + m_A40 += m_A15 * f5_12; + m_A41 += m_A16 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A17; + const double f6_12 = -f6 * m_A39; + m_A41 += m_A18 * f6_12; + RHS12 += f6_12 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_17 = -f7 * m_A70; + m_A71 += m_A20 * f7_17; + RHS17 += f7_17 * RHS7; + const double f8 = 1.0 / m_A21; + const double f8_18 = -f8 * m_A76; + m_A78 += m_A22 * f8_18; RHS18 += f8_18 * RHS8; - const double f9 = 1.0 / m_A18; - const double f9_24 = -f9 * m_A67; - m_A68 += m_A19 * f9_24; - RHS24 += f9_24 * RHS9; - const double f10 = 1.0 / m_A20; - const double f10_26 = -f10 * m_A75; - m_A76 += m_A21 * f10_26; - RHS26 += f10_26 * RHS10; - const double f11 = 1.0 / m_A22; - const double f11_17 = -f11 * m_A41; - m_A42 += m_A23 * f11_17; - m_A43 += m_A24 * f11_17; - RHS17 += f11_17 * RHS11; - const double f11_28 = -f11 * m_A81; - m_A85 += m_A23 * f11_28; - m_A95 += m_A24 * f11_28; - RHS28 += f11_28 * RHS11; - const double f12 = 1.0 / m_A25; - const double f12_18 = -f12 * m_A47; - m_A48 += m_A26 * f12_18; - m_A49 += m_A27 * f12_18; - RHS18 += f12_18 * RHS12; - const double f12_28 = -f12 * m_A82; - m_A86 += m_A26 * f12_28; - m_A95 += m_A27 * f12_28; - RHS28 += f12_28 * RHS12; - const double f13 = 1.0 / m_A28; - const double f13_20 = -f13 * m_A54; - m_A55 += m_A29 * f13_20; - m_A56 += m_A30 * f13_20; - RHS20 += f13_20 * RHS13; - const double f13_28 = -f13 * m_A83; - m_A88 += m_A29 * f13_28; - m_A95 += m_A30 * f13_28; - RHS28 += f13_28 * RHS13; - const double f14 = 1.0 / m_A31; - const double f14_23 = -f14 * m_A64; - m_A66 += m_A32 * f14_23; - RHS23 += f14_23 * RHS14; - const double f14_25 = -f14 * m_A70; - m_A73 += m_A32 * f14_25; - RHS25 += f14_25 * RHS14; - const double f15 = 1.0 / m_A33; - const double f15_22 = -f15 * m_A61; - m_A62 += m_A34 * f15_22; - m_A63 += m_A35 * f15_22; - RHS22 += f15_22 * RHS15; - const double f15_28 = -f15 * m_A84; - m_A90 += m_A34 * f15_28; - m_A95 += m_A35 * f15_28; - RHS28 += f15_28 * RHS15; - const double f16 = 1.0 / m_A36; - const double f16_27 = -f16 * m_A78; - m_A80 += m_A37 * f16_27; - RHS27 += f16_27 * RHS16; - const double f17 = 1.0 / m_A42; - const double f17_28 = -f17 * m_A85; - m_A95 += m_A43 * f17_28; - RHS28 += f17_28 * RHS17; - const double f18 = 1.0 / m_A48; - const double f18_28 = -f18 * m_A86; - m_A95 += m_A49 * f18_28; - RHS28 += f18_28 * RHS18; - const double f19 = 1.0 / m_A50; - const double f19_25 = -f19 * m_A71; - m_A73 += m_A51 * f19_25; - m_A74 += m_A52 * f19_25; - RHS25 += f19_25 * RHS19; - const double f19_28 = -f19 * m_A87; - m_A92 += m_A51 * f19_28; - m_A95 += m_A52 * f19_28; - RHS28 += f19_28 * RHS19; - const double f20 = 1.0 / m_A55; - const double f20_28 = -f20 * m_A88; - m_A95 += m_A56 * f20_28; - RHS28 += f20_28 * RHS20; - const double f21 = 1.0 / m_A58; - const double f21_28 = -f21 * m_A89; - m_A95 += m_A59 * f21_28; - RHS28 += f21_28 * RHS21; - const double f22 = 1.0 / m_A62; - const double f22_28 = -f22 * m_A90; - m_A95 += m_A63 * f22_28; - RHS28 += f22_28 * RHS22; - const double f23 = 1.0 / m_A65; - const double f23_25 = -f23 * m_A72; - m_A73 += m_A66 * f23_25; - RHS25 += f23_25 * RHS23; - const double f24 = 1.0 / m_A68; - const double f24_28 = -f24 * m_A91; - m_A95 += m_A69 * f24_28; - RHS28 += f24_28 * RHS24; - const double f25 = 1.0 / m_A73; - const double f25_28 = -f25 * m_A92; - m_A95 += m_A74 * f25_28; - RHS28 += f25_28 * RHS25; - const double f26 = 1.0 / m_A76; - const double f26_28 = -f26 * m_A93; - m_A95 += m_A77 * f26_28; - RHS28 += f26_28 * RHS26; - const double f27 = 1.0 / m_A79; - const double f27_28 = -f27 * m_A94; - m_A95 += m_A80 * f27_28; - RHS28 += f27_28 * RHS27; - V[28] = RHS28 / m_A95; - double tmp27 = 0.0; - tmp27 += m_A80 * V[28]; - V[27] = (RHS27 - tmp27) / m_A79; - double tmp26 = 0.0; - tmp26 += m_A77 * V[28]; - V[26] = (RHS26 - tmp26) / m_A76; - double tmp25 = 0.0; - tmp25 += m_A74 * V[28]; - V[25] = (RHS25 - tmp25) / m_A73; - double tmp24 = 0.0; - tmp24 += m_A69 * V[28]; - V[24] = (RHS24 - tmp24) / m_A68; - double tmp23 = 0.0; - tmp23 += m_A66 * V[25]; - V[23] = (RHS23 - tmp23) / m_A65; - double tmp22 = 0.0; - tmp22 += m_A63 * V[28]; - V[22] = (RHS22 - tmp22) / m_A62; - double tmp21 = 0.0; - tmp21 += m_A59 * V[28]; - V[21] = (RHS21 - tmp21) / m_A58; - double tmp20 = 0.0; - tmp20 += m_A56 * V[28]; - V[20] = (RHS20 - tmp20) / m_A55; - double tmp19 = 0.0; - tmp19 += m_A51 * V[25]; - tmp19 += m_A52 * V[28]; - V[19] = (RHS19 - tmp19) / m_A50; - double tmp18 = 0.0; - tmp18 += m_A49 * V[28]; - V[18] = (RHS18 - tmp18) / m_A48; + const double f9 = 1.0 / m_A23; + const double f9_14 = -f9 * m_A48; + m_A50 += m_A24 * f9_14; + m_A52 += m_A25 * f9_14; + RHS14 += f9_14 * RHS9; + const double f9_18 = -f9 * m_A77; + m_A79 += m_A24 * f9_18; + m_A83 += m_A25 * f9_18; + RHS18 += f9_18 * RHS9; + const double f10 = 1.0 / m_A28; + const double f10_14 = -f10 * m_A49; + m_A50 += m_A29 * f10_14; + m_A51 += m_A30 * f10_14; + RHS14 += f10_14 * RHS10; + const double f10_15 = -f10 * m_A55; + m_A58 += m_A29 * f10_15; + m_A59 += m_A30 * f10_15; + RHS15 += f10_15 * RHS10; + const double f11 = 1.0 / m_A34; + const double f11_12 = -f11 * m_A40; + m_A41 += m_A35 * f11_12; + m_A42 += m_A36 * f11_12; + m_A43 += m_A37 * f11_12; + RHS12 += f11_12 * RHS11; + const double f11_15 = -f11 * m_A56; + m_A57 += m_A35 * f11_15; + m_A59 += m_A36 * f11_15; + m_A60 += m_A37 * f11_15; + RHS15 += f11_15 * RHS11; + const double f11_16 = -f11 * m_A64; + m_A65 += m_A35 * f11_16; + m_A66 += m_A36 * f11_16; + m_A67 += m_A37 * f11_16; + RHS16 += f11_16 * RHS11; + const double f12 = 1.0 / m_A41; + const double f12_15 = -f12 * m_A57; + m_A59 += m_A42 * f12_15; + m_A60 += m_A43 * f12_15; + m_A61 += m_A44 * f12_15; + RHS15 += f12_15 * RHS12; + const double f12_16 = -f12 * m_A65; + m_A66 += m_A42 * f12_16; + m_A67 += m_A43 * f12_16; + m_A68 += m_A44 * f12_16; + RHS16 += f12_16 * RHS12; + const double f12_17 = -f12 * m_A71; + m_A72 += m_A42 * f12_17; + m_A73 += m_A43 * f12_17; + m_A74 += m_A44 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A45; + const double f13_18 = -f13 * m_A78; + m_A83 += m_A46 * f13_18; + RHS18 += f13_18 * RHS13; + const double f14 = 1.0 / m_A50; + const double f14_15 = -f14 * m_A58; + m_A59 += m_A51 * f14_15; + m_A62 += m_A52 * f14_15; + RHS15 += f14_15 * RHS14; + const double f14_18 = -f14 * m_A79; + m_A80 += m_A51 * f14_18; + m_A83 += m_A52 * f14_18; + RHS18 += f14_18 * RHS14; + const double f15 = 1.0 / m_A59; + const double f15_16 = -f15 * m_A66; + m_A67 += m_A60 * f15_16; + m_A68 += m_A61 * f15_16; + m_A69 += m_A62 * f15_16; + RHS16 += f15_16 * RHS15; + const double f15_17 = -f15 * m_A72; + m_A73 += m_A60 * f15_17; + m_A74 += m_A61 * f15_17; + m_A75 += m_A62 * f15_17; + RHS17 += f15_17 * RHS15; + const double f15_18 = -f15 * m_A80; + m_A81 += m_A60 * f15_18; + m_A82 += m_A61 * f15_18; + m_A83 += m_A62 * f15_18; + RHS18 += f15_18 * RHS15; + const double f16 = 1.0 / m_A67; + const double f16_17 = -f16 * m_A73; + m_A74 += m_A68 * f16_17; + m_A75 += m_A69 * f16_17; + RHS17 += f16_17 * RHS16; + const double f16_18 = -f16 * m_A81; + m_A82 += m_A68 * f16_18; + m_A83 += m_A69 * f16_18; + RHS18 += f16_18 * RHS16; + const double f17 = 1.0 / m_A74; + const double f17_18 = -f17 * m_A82; + m_A83 += m_A75 * f17_18; + RHS18 += f17_18 * RHS17; + V[18] = RHS18 / m_A83; double tmp17 = 0.0; - tmp17 += m_A43 * V[28]; - V[17] = (RHS17 - tmp17) / m_A42; + tmp17 += m_A75 * V[18]; + V[17] = (RHS17 - tmp17) / m_A74; double tmp16 = 0.0; - tmp16 += m_A37 * V[28]; - V[16] = (RHS16 - tmp16) / m_A36; + tmp16 += m_A68 * V[17]; + tmp16 += m_A69 * V[18]; + V[16] = (RHS16 - tmp16) / m_A67; double tmp15 = 0.0; - tmp15 += m_A34 * V[22]; - tmp15 += m_A35 * V[28]; - V[15] = (RHS15 - tmp15) / m_A33; + tmp15 += m_A60 * V[16]; + tmp15 += m_A61 * V[17]; + tmp15 += m_A62 * V[18]; + V[15] = (RHS15 - tmp15) / m_A59; double tmp14 = 0.0; - tmp14 += m_A32 * V[25]; - V[14] = (RHS14 - tmp14) / m_A31; + tmp14 += m_A51 * V[15]; + tmp14 += m_A52 * V[18]; + V[14] = (RHS14 - tmp14) / m_A50; double tmp13 = 0.0; - tmp13 += m_A29 * V[20]; - tmp13 += m_A30 * V[28]; - V[13] = (RHS13 - tmp13) / m_A28; + tmp13 += m_A46 * V[18]; + V[13] = (RHS13 - tmp13) / m_A45; double tmp12 = 0.0; - tmp12 += m_A26 * V[18]; - tmp12 += m_A27 * V[28]; - V[12] = (RHS12 - tmp12) / m_A25; + tmp12 += m_A42 * V[15]; + tmp12 += m_A43 * V[16]; + tmp12 += m_A44 * V[17]; + V[12] = (RHS12 - tmp12) / m_A41; double tmp11 = 0.0; - tmp11 += m_A23 * V[17]; - tmp11 += m_A24 * V[28]; - V[11] = (RHS11 - tmp11) / m_A22; + tmp11 += m_A35 * V[12]; + tmp11 += m_A36 * V[15]; + tmp11 += m_A37 * V[16]; + V[11] = (RHS11 - tmp11) / m_A34; double tmp10 = 0.0; - tmp10 += m_A21 * V[26]; - V[10] = (RHS10 - tmp10) / m_A20; + tmp10 += m_A29 * V[14]; + tmp10 += m_A30 * V[15]; + V[10] = (RHS10 - tmp10) / m_A28; double tmp9 = 0.0; - tmp9 += m_A19 * V[24]; - V[9] = (RHS9 - tmp9) / m_A18; + tmp9 += m_A24 * V[14]; + tmp9 += m_A25 * V[18]; + V[9] = (RHS9 - tmp9) / m_A23; double tmp8 = 0.0; - tmp8 += m_A17 * V[18]; - V[8] = (RHS8 - tmp8) / m_A16; + tmp8 += m_A22 * V[13]; + V[8] = (RHS8 - tmp8) / m_A21; double tmp7 = 0.0; - tmp7 += m_A15 * V[18]; - V[7] = (RHS7 - tmp7) / m_A14; + tmp7 += m_A20 * V[12]; + V[7] = (RHS7 - tmp7) / m_A19; double tmp6 = 0.0; - tmp6 += m_A13 * V[22]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A18 * V[12]; + V[6] = (RHS6 - tmp6) / m_A17; double tmp5 = 0.0; - tmp5 += m_A11 * V[20]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A15 * V[11]; + tmp5 += m_A16 * V[12]; + V[5] = (RHS5 - tmp5) / m_A14; double tmp4 = 0.0; - tmp4 += m_A9 * V[18]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A13 * V[16]; + V[4] = (RHS4 - tmp4) / m_A12; double tmp3 = 0.0; - tmp3 += m_A7 * V[17]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A10 * V[11]; + tmp3 += m_A11 * V[15]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[17]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[3]; + tmp2 += m_A8 * V[15]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[17]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[10]; + tmp1 += m_A5 * V[15]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[21]; + tmp0 += m_A1 * V[10]; + tmp0 += m_A2 * V[14]; V[0] = (RHS0 - tmp0) / m_A0; } -// rebound -static void nl_gcr_a41a44bd5c424f88_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// popeye +static void nl_gcr_c6f25bb06e161d1c_50_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -22422,6 +50599,43 @@ double m_A10(0.0); double m_A11(0.0); double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -22452,60 +50666,315 @@ m_A6 += gt[9]; m_A6 += gt[10]; m_A6 += gt[11]; - m_A7 += go[9]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A10 += go[9]; + m_A7 += go[10]; + m_A8 += go[11]; + m_A9 += go[12]; double RHS3 = Idr[9]; RHS3 += Idr[10]; RHS3 += Idr[11]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - m_A12 += gt[12]; - m_A12 += gt[13]; - m_A12 += gt[14]; - m_A12 += gt[15]; - m_A12 += gt[16]; - m_A11 += go[12]; - m_A10 += go[13]; - m_A9 += go[14]; - m_A8 += go[15]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - RHS4 += Idr[15]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A13 += go[15]; + m_A13 += go[16]; + m_A12 += go[17]; + double RHS4 = Idr[15]; RHS4 += Idr[16]; - RHS4 -= go[16] * *cnV[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A14 += gt[24]; + m_A16 += go[20]; + m_A15 += go[21]; + m_A15 += go[22]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A18 += go[25]; + m_A17 += go[26]; + double RHS6 = Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[27] * *cnV[27]; + m_A26 += gt[28]; + m_A26 += gt[29]; + m_A26 += gt[30]; + m_A24 += go[28]; + m_A23 += go[29]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 -= go[30] * *cnV[30]; + m_A33 += gt[31]; + m_A33 += gt[32]; + m_A33 += gt[33]; + m_A30 += go[31]; + m_A29 += go[32]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 -= go[33] * *cnV[33]; + m_A40 += gt[34]; + m_A40 += gt[35]; + m_A40 += gt[36]; + m_A40 += gt[37]; + m_A36 += go[34]; + m_A35 += go[35]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; + m_A45 += gt[38]; + m_A45 += gt[39]; + m_A45 += gt[40]; + m_A45 += gt[41]; + m_A45 += gt[42]; + m_A45 += gt[43]; + m_A45 += gt[44]; + m_A45 += gt[45]; + m_A43 += go[38]; + m_A43 += go[39]; + m_A42 += go[40]; + m_A42 += go[41]; + double RHS10 = Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 += Idr[44]; + RHS10 += Idr[45]; + RHS10 -= go[42] * *cnV[42]; + RHS10 -= go[43] * *cnV[43]; + RHS10 -= go[44] * *cnV[44]; + RHS10 -= go[45] * *cnV[45]; + m_A49 += gt[46]; + m_A49 += gt[47]; + m_A47 += go[46]; + double RHS11 = Idr[46]; + RHS11 += Idr[47]; + RHS11 -= go[47] * *cnV[47]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A8; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; + const double f0_8 = -f0 * m_A29; + m_A33 += m_A1 * f0_8; + RHS8 += f0_8 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A9; - m_A12 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; + const double f1_7 = -f1 * m_A23; + m_A26 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A10; - m_A12 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; + const double f2_6 = -f2 * m_A17; + m_A19 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_4 = -f3 * m_A11; - m_A12 += m_A7 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A12; + const double f3_6 = -f3 * m_A18; + m_A19 += m_A7 * f3_6; + m_A20 += m_A8 * f3_6; + m_A21 += m_A9 * f3_6; + m_A22 += m_A10 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_7 = -f3 * m_A24; + m_A25 += m_A7 * f3_7; + m_A26 += m_A8 * f3_7; + m_A27 += m_A9 * f3_7; + m_A28 += m_A10 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_8 = -f3 * m_A30; + m_A31 += m_A7 * f3_8; + m_A32 += m_A8 * f3_8; + m_A33 += m_A9 * f3_8; + m_A34 += m_A10 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_9 = -f3 * m_A35; + m_A37 += m_A7 * f3_9; + m_A38 += m_A8 * f3_9; + m_A39 += m_A9 * f3_9; + m_A40 += m_A10 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_9 = -f4 * m_A36; + m_A40 += m_A12 * f4_9; + m_A41 += m_A13 * f4_9; + RHS9 += f4_9 * RHS4; + const double f4_10 = -f4 * m_A42; + m_A44 += m_A12 * f4_10; + m_A45 += m_A13 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_10 = -f5 * m_A43; + m_A45 += m_A15 * f5_10; + m_A46 += m_A16 * f5_10; + RHS10 += f5_10 * RHS5; + const double f5_11 = -f5 * m_A47; + m_A48 += m_A15 * f5_11; + m_A49 += m_A16 * f5_11; + RHS11 += f5_11 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_7 = -f6 * m_A25; + m_A26 += m_A20 * f6_7; + m_A27 += m_A21 * f6_7; + m_A28 += m_A22 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A31; + m_A32 += m_A20 * f6_8; + m_A33 += m_A21 * f6_8; + m_A34 += m_A22 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_9 = -f6 * m_A37; + m_A38 += m_A20 * f6_9; + m_A39 += m_A21 * f6_9; + m_A40 += m_A22 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A26; + const double f7_8 = -f7 * m_A32; + m_A33 += m_A27 * f7_8; + m_A34 += m_A28 * f7_8; + RHS8 += f7_8 * RHS7; + const double f7_9 = -f7 * m_A38; + m_A39 += m_A27 * f7_9; + m_A40 += m_A28 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A33; + const double f8_9 = -f8 * m_A39; + m_A40 += m_A34 * f8_9; + RHS9 += f8_9 * RHS8; + const double f9 = 1.0 / m_A40; + const double f9_10 = -f9 * m_A44; + m_A45 += m_A41 * f9_10; + RHS10 += f9_10 * RHS9; + const double f10 = 1.0 / m_A45; + const double f10_11 = -f10 * m_A48; + m_A49 += m_A46 * f10_11; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A49; + double tmp10 = 0.0; + tmp10 += m_A46 * V[11]; + V[10] = (RHS10 - tmp10) / m_A45; + double tmp9 = 0.0; + tmp9 += m_A41 * V[10]; + V[9] = (RHS9 - tmp9) / m_A40; + double tmp8 = 0.0; + tmp8 += m_A34 * V[9]; + V[8] = (RHS8 - tmp8) / m_A33; + double tmp7 = 0.0; + tmp7 += m_A27 * V[8]; + tmp7 += m_A28 * V[9]; + V[7] = (RHS7 - tmp7) / m_A26; + double tmp6 = 0.0; + tmp6 += m_A20 * V[7]; + tmp6 += m_A21 * V[8]; + tmp6 += m_A22 * V[9]; + V[6] = (RHS6 - tmp6) / m_A19; + double tmp5 = 0.0; + tmp5 += m_A15 * V[10]; + tmp5 += m_A16 * V[11]; + V[5] = (RHS5 - tmp5) / m_A14; + double tmp4 = 0.0; + tmp4 += m_A12 * V[9]; + tmp4 += m_A13 * V[10]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A7 * V[4]; + tmp3 += m_A7 * V[6]; + tmp3 += m_A8 * V[7]; + tmp3 += m_A9 * V[8]; + tmp3 += m_A10 * V[9]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; + tmp2 += m_A5 * V[6]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; + tmp1 += m_A3 * V[7]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[8]; V[0] = (RHS0 - tmp0) / m_A0; } -// tp1985 -static void nl_gcr_a4540ffea06b4346_26_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// flyball +static void nl_gcr_c74b1a65978d7121_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A6 += gt[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A5 += go[4]; + m_A4 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// stuntcyc +static void nl_gcr_c924fe5960b1479e_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -22530,153 +50999,139 @@ double m_A17(0.0); double m_A18(0.0); double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; m_A1 += go[0]; - m_A2 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - m_A3 += gt[2]; - m_A3 += gt[3]; - m_A3 += gt[4]; - m_A4 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 += Idr[4]; - RHS1 -= go[3] * *cnV[3]; - RHS1 -= go[4] * *cnV[4]; - m_A5 += gt[5]; - m_A5 += gt[6]; - m_A5 += gt[7]; - m_A6 += go[5]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 -= go[6] * *cnV[6]; - RHS2 -= go[7] * *cnV[7]; - m_A7 += gt[8]; - m_A7 += gt[9]; - m_A8 += go[8]; - double RHS3 = Idr[8]; - RHS3 += Idr[9]; - RHS3 -= go[9] * *cnV[9]; - m_A10 += gt[10]; - m_A10 += gt[11]; - m_A10 += gt[12]; - m_A10 += gt[13]; - m_A11 += go[10]; - m_A9 += go[11]; - double RHS4 = Idr[10]; - RHS4 += Idr[11]; - RHS4 += Idr[12]; - RHS4 += Idr[13]; - RHS4 -= go[12] * *cnV[12]; - RHS4 -= go[13] * *cnV[13]; - m_A14 += gt[14]; - m_A14 += gt[15]; - m_A13 += go[14]; - m_A15 += go[15]; - double RHS5 = Idr[14]; - RHS5 += Idr[15]; - m_A19 += gt[16]; - m_A19 += gt[17]; - m_A19 += gt[18]; - m_A19 += gt[19]; - m_A17 += go[16]; - m_A16 += go[17]; - m_A18 += go[18]; - m_A20 += go[19]; - double RHS6 = Idr[16]; - RHS6 += Idr[17]; - RHS6 += Idr[18]; - RHS6 += Idr[19]; - m_A25 += gt[20]; - m_A25 += gt[21]; - m_A25 += gt[22]; - m_A25 += gt[23]; - m_A25 += gt[24]; - m_A23 += go[20]; - m_A24 += go[21]; - m_A21 += go[22]; - double RHS7 = Idr[20]; - RHS7 += Idr[21]; - RHS7 += Idr[22]; - RHS7 += Idr[23]; - RHS7 += Idr[24]; - RHS7 -= go[23] * *cnV[23]; - RHS7 -= go[24] * *cnV[24]; - const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A9; - m_A10 += m_A1 * f0_4; - m_A12 += m_A2 * f0_4; - RHS4 += f0_4 * RHS0; - const double f0_7 = -f0 * m_A21; - m_A22 += m_A1 * f0_7; - m_A25 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_6 = -f1 * m_A16; - m_A19 += m_A4 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_6 = -f2 * m_A17; - m_A19 += m_A6 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_5 = -f3 * m_A13; - m_A14 += m_A8 * f3_5; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A3 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A6 += go[8]; + m_A5 += go[9]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A7 += go[15]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A12 += go[20]; + m_A11 += go[21]; + m_A13 += go[22]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[23] * *cnV[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A16 += go[24]; + m_A17 += go[25]; + double RHS5 = Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[26] * *cnV[26]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A7; + m_A8 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A11; + m_A14 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A5 * f2_4; + m_A15 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A16; + m_A18 += m_A5 * f2_5; + m_A19 += m_A6 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A9 * f3_4; + m_A15 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A17; + m_A18 += m_A9 * f3_5; + m_A19 += m_A10 * f3_5; RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_6 = -f4 * m_A18; - m_A19 += m_A11 * f4_6; - m_A20 += m_A12 * f4_6; - RHS6 += f4_6 * RHS4; - const double f4_7 = -f4 * m_A22; - m_A24 += m_A11 * f4_7; - m_A25 += m_A12 * f4_7; - RHS7 += f4_7 * RHS4; - const double f5 = 1.0 / m_A14; - const double f5_7 = -f5 * m_A23; - m_A25 += m_A15 * f5_7; - RHS7 += f5_7 * RHS5; - const double f6 = 1.0 / m_A19; - const double f6_7 = -f6 * m_A24; - m_A25 += m_A20 * f6_7; - RHS7 += f6_7 * RHS6; - V[7] = RHS7 / m_A25; - double tmp6 = 0.0; - tmp6 += m_A20 * V[7]; - V[6] = (RHS6 - tmp6) / m_A19; - double tmp5 = 0.0; - tmp5 += m_A15 * V[7]; - V[5] = (RHS5 - tmp5) / m_A14; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A15 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A19; double tmp4 = 0.0; - tmp4 += m_A11 * V[6]; - tmp4 += m_A12 * V[7]; - V[4] = (RHS4 - tmp4) / m_A10; + tmp4 += m_A15 * V[5]; + V[4] = (RHS4 - tmp4) / m_A14; double tmp3 = 0.0; - tmp3 += m_A8 * V[5]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A9 * V[4]; + tmp3 += m_A10 * V[5]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A6 * V[6]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[4]; + tmp2 += m_A6 * V[5]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A4 * V[6]; - V[1] = (RHS1 - tmp1) / m_A3; + tmp1 += m_A3 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - tmp0 += m_A2 * V[7]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// tailg -static void nl_gcr_a46301cd3479b8db_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// dpatrol +static void nl_gcr_ca68d70bd8f2f62e_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -22696,102 +51151,137 @@ double m_A12(0.0); double m_A13(0.0); double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; - m_A0 += gt[4]; m_A2 += go[0]; - m_A1 += go[1]; + m_A2 += go[1]; m_A1 += go[2]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; - RHS0 += Idr[4]; RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; + m_A3 += gt[4]; m_A3 += gt[5]; m_A3 += gt[6]; - m_A4 += go[5]; - double RHS1 = Idr[5]; + m_A3 += gt[7]; + m_A5 += go[4]; + m_A5 += go[5]; + m_A4 += go[6]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; RHS1 += Idr[6]; - RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; + RHS1 += Idr[7]; + RHS1 -= go[7] * *cnV[7]; m_A6 += gt[8]; m_A6 += gt[9]; m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[7]; m_A7 += go[8]; - m_A5 += go[9]; - m_A5 += go[10]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; + double RHS2 = Idr[8]; RHS2 += Idr[9]; RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[11] * *cnV[11]; - m_A9 += gt[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A10 += go[12]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A12 += go[11]; + m_A9 += go[12]; m_A8 += go[13]; - double RHS3 = Idr[12]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 -= go[14] * *cnV[14]; - m_A14 += gt[15]; - m_A14 += gt[16]; - m_A14 += gt[17]; - m_A14 += gt[18]; - m_A13 += go[15]; - m_A12 += go[16]; - m_A12 += go[17]; - m_A11 += go[18]; - double RHS4 = Idr[15]; + m_A16 += gt[14]; + m_A16 += gt[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A17 += go[14]; + m_A14 += go[15]; + m_A14 += go[16]; + m_A13 += go[17]; + m_A13 += go[18]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; RHS4 += Idr[16]; RHS4 += Idr[17]; RHS4 += Idr[18]; + m_A21 += gt[19]; + m_A21 += gt[20]; + m_A21 += gt[21]; + m_A18 += go[19]; + m_A20 += go[20]; + m_A19 += go[21]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A6 += m_A1 * f0_2; - m_A7 += m_A2 * f0_2; - RHS2 += f0_2 * RHS0; - const double f0_4 = -f0 * m_A11; - m_A12 += m_A1 * f0_4; - m_A14 += m_A2 * f0_4; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + m_A11 += m_A2 * f0_3; + RHS3 += f0_3 * RHS0; + const double f0_4 = -f0 * m_A13; + m_A15 += m_A1 * f0_4; + m_A16 += m_A2 * f0_4; RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A3; - const double f1_3 = -f1 * m_A8; - m_A9 += m_A4 * f1_3; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A4 * f1_3; + m_A11 += m_A5 * f1_3; RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A14; + m_A15 += m_A4 * f1_4; + m_A16 += m_A5 * f1_4; + RHS4 += f1_4 * RHS1; const double f2 = 1.0 / m_A6; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A10 * f3_4; + const double f2_5 = -f2 * m_A18; + m_A21 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A15; + m_A16 += m_A11 * f3_4; + m_A17 += m_A12 * f3_4; RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A14; + const double f3_5 = -f3 * m_A19; + m_A20 += m_A11 * f3_5; + m_A21 += m_A12 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A16; + const double f4_5 = -f4 * m_A20; + m_A21 += m_A17 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A21; + double tmp4 = 0.0; + tmp4 += m_A17 * V[5]; + V[4] = (RHS4 - tmp4) / m_A16; double tmp3 = 0.0; - tmp3 += m_A10 * V[4]; - V[3] = (RHS3 - tmp3) / m_A9; + tmp3 += m_A11 * V[4]; + tmp3 += m_A12 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A7 * V[4]; + tmp2 += m_A7 * V[5]; V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; tmp1 += m_A4 * V[3]; + tmp1 += m_A5 * V[4]; V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[3]; tmp0 += m_A2 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// barrier -static void nl_gcr_a50a4b733e95414a_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// breakout +static void nl_gcr_cb2aae3366e0ac1c_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -22803,9 +51293,6 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -22824,62 +51311,171 @@ RHS1 += Idr[5]; RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; - m_A5 += gt[6]; - m_A5 += gt[7]; - m_A5 += gt[8]; - m_A5 += gt[9]; - m_A4 += go[6]; - m_A6 += go[7]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A5 += go[6]; + m_A4 += go[7]; double RHS2 = Idr[6]; RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - m_A9 += gt[10]; - m_A9 += gt[11]; - m_A9 += gt[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A9 += gt[15]; - m_A7 += go[10]; - m_A8 += go[11]; - double RHS3 = Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; - RHS3 -= go[14] * *cnV[14]; - RHS3 -= go[15] * *cnV[15]; const double f0 = 1.0 / m_A0; const double f0_2 = -f0 * m_A4; - m_A5 += m_A1 * f0_2; + m_A6 += m_A1 * f0_2; RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// barrier +static void nl_gcr_cc913f9c3f9293e7_19_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A3 += go[2]; + m_A4 += go[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A7 += go[9]; + m_A6 += go[10]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A9 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[13] * *cnV[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A11 += go[14]; + m_A10 += go[15]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[16] * *cnV[16]; + m_A18 += gt[17]; + m_A18 += gt[18]; + m_A18 += gt[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A14 += go[17]; + m_A16 += go[18]; + m_A15 += go[19]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A10; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A14; + m_A15 += m_A3 * f1_5; + m_A17 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A6 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f2_4 = -f2 * m_A11; + m_A12 += m_A6 * f2_4; + m_A13 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A15; + m_A17 += m_A6 * f2_5; + m_A18 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_5 = -f3 * m_A16; + m_A18 += m_A9 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_5 = -f4 * m_A17; + m_A18 += m_A13 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A18; + double tmp4 = 0.0; + tmp4 += m_A13 * V[5]; + V[4] = (RHS4 - tmp4) / m_A12; + double tmp3 = 0.0; + tmp3 += m_A9 * V[5]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// starcas -static void nl_gcr_a582a424cb61c678_62_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// fireone +static void nl_gcr_cca3d1a4219e2ec0_153_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -22946,714 +51542,953 @@ double m_A59(0.0); double m_A60(0.0); double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[9]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - m_A8 += gt[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A9 += go[12]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - RHS4 -= go[13] * *cnV[13]; - RHS4 -= go[14] * *cnV[14]; - m_A10 += gt[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A11 += go[15]; - double RHS5 = Idr[15]; - RHS5 += Idr[16]; - RHS5 += Idr[17]; - RHS5 -= go[16] * *cnV[16]; - RHS5 -= go[17] * *cnV[17]; - m_A12 += gt[18]; - m_A12 += gt[19]; - m_A13 += go[18]; - double RHS6 = Idr[18]; - RHS6 += Idr[19]; - RHS6 -= go[19] * *cnV[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A16 += go[20]; - m_A15 += go[21]; - double RHS7 = Idr[20]; - RHS7 += Idr[21]; - m_A17 += gt[22]; - m_A17 += gt[23]; - m_A19 += go[22]; - m_A18 += go[23]; - double RHS8 = Idr[22]; - RHS8 += Idr[23]; - m_A20 += gt[24]; - m_A20 += gt[25]; - m_A21 += go[24]; - double RHS9 = Idr[24]; - RHS9 += Idr[25]; - RHS9 -= go[25] * *cnV[25]; - m_A23 += gt[26]; - m_A23 += gt[27]; - m_A23 += gt[28]; - m_A23 += gt[29]; - m_A23 += gt[30]; - m_A23 += gt[31]; - m_A23 += gt[32]; - m_A22 += go[26]; - m_A24 += go[27]; - double RHS10 = Idr[26]; - RHS10 += Idr[27]; - RHS10 += Idr[28]; - RHS10 += Idr[29]; - RHS10 += Idr[30]; - RHS10 += Idr[31]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A2 += gt[12]; + m_A2 += gt[13]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 += Idr[12]; + RHS1 += Idr[13]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + RHS1 -= go[12] * *cnV[12]; + RHS1 -= go[13] * *cnV[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A4 += gt[16]; + m_A5 += go[14]; + double RHS2 = Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 -= go[15] * *cnV[15]; + RHS2 -= go[16] * *cnV[16]; + m_A6 += gt[17]; + m_A6 += gt[18]; + m_A7 += go[17]; + double RHS3 = Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[18] * *cnV[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A9 += go[19]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[20] * *cnV[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A11 += go[21]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + RHS5 -= go[22] * *cnV[22]; + m_A12 += gt[23]; + m_A12 += gt[24]; + m_A13 += go[23]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[24] * *cnV[24]; + m_A14 += gt[25]; + m_A14 += gt[26]; + m_A15 += go[25]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + RHS7 -= go[26] * *cnV[26]; + m_A16 += gt[27]; + m_A16 += gt[28]; + m_A17 += go[27]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + RHS8 -= go[28] * *cnV[28]; + m_A18 += gt[29]; + m_A18 += gt[30]; + m_A19 += go[29]; + double RHS9 = Idr[29]; + RHS9 += Idr[30]; + RHS9 -= go[30] * *cnV[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A20 += gt[34]; + m_A21 += go[31]; + m_A22 += go[32]; + double RHS10 = Idr[31]; RHS10 += Idr[32]; - RHS10 -= go[28] * *cnV[28]; - RHS10 -= go[29] * *cnV[29]; - RHS10 -= go[30] * *cnV[30]; - RHS10 -= go[31] * *cnV[31]; - RHS10 -= go[32] * *cnV[32]; - m_A25 += gt[33]; - m_A25 += gt[34]; - m_A25 += gt[35]; - m_A25 += gt[36]; - m_A25 += gt[37]; - m_A25 += gt[38]; - m_A25 += gt[39]; - m_A26 += go[33]; - double RHS11 = Idr[33]; - RHS11 += Idr[34]; - RHS11 += Idr[35]; + RHS10 += Idr[33]; + RHS10 += Idr[34]; + RHS10 -= go[33] * *cnV[33]; + RHS10 -= go[34] * *cnV[34]; + m_A23 += gt[35]; + m_A23 += gt[36]; + m_A23 += gt[37]; + m_A23 += gt[38]; + m_A24 += go[35]; + m_A25 += go[36]; + double RHS11 = Idr[35]; RHS11 += Idr[36]; RHS11 += Idr[37]; RHS11 += Idr[38]; - RHS11 += Idr[39]; - RHS11 -= go[34] * *cnV[34]; - RHS11 -= go[35] * *cnV[35]; - RHS11 -= go[36] * *cnV[36]; RHS11 -= go[37] * *cnV[37]; RHS11 -= go[38] * *cnV[38]; - RHS11 -= go[39] * *cnV[39]; - m_A30 += gt[40]; - m_A30 += gt[41]; - m_A30 += gt[42]; - m_A30 += gt[43]; - m_A29 += go[40]; - m_A28 += go[41]; - m_A27 += go[42]; - double RHS12 = Idr[40]; + m_A26 += gt[39]; + m_A26 += gt[40]; + m_A26 += gt[41]; + m_A26 += gt[42]; + m_A27 += go[39]; + m_A28 += go[40]; + double RHS12 = Idr[39]; + RHS12 += Idr[40]; RHS12 += Idr[41]; RHS12 += Idr[42]; - RHS12 += Idr[43]; - RHS12 -= go[43] * *cnV[43]; - m_A32 += gt[44]; - m_A32 += gt[45]; - m_A33 += go[44]; - m_A34 += go[45]; - double RHS13 = Idr[44]; - RHS13 += Idr[45]; - m_A36 += gt[46]; - m_A36 += gt[47]; - m_A35 += go[46]; - m_A37 += go[47]; - double RHS14 = Idr[46]; - RHS14 += Idr[47]; - m_A42 += gt[48]; - m_A42 += gt[49]; - m_A42 += gt[50]; - m_A42 += gt[51]; - m_A42 += gt[52]; - m_A41 += go[48]; - m_A40 += go[49]; - m_A39 += go[50]; - m_A38 += go[51]; - double RHS15 = Idr[48]; - RHS15 += Idr[49]; - RHS15 += Idr[50]; - RHS15 += Idr[51]; - RHS15 += Idr[52]; - RHS15 -= go[52] * *cnV[52]; - m_A46 += gt[53]; - m_A46 += gt[54]; - m_A46 += gt[55]; - m_A46 += gt[56]; - m_A46 += gt[57]; - m_A45 += go[53]; - m_A44 += go[54]; - m_A47 += go[55]; - double RHS16 = Idr[53]; - RHS16 += Idr[54]; - RHS16 += Idr[55]; - RHS16 += Idr[56]; - RHS16 += Idr[57]; - RHS16 -= go[56] * *cnV[56]; - RHS16 -= go[57] * *cnV[57]; - m_A51 += gt[58]; - m_A51 += gt[59]; - m_A51 += gt[60]; - m_A51 += gt[61]; - m_A51 += gt[62]; - m_A49 += go[58]; - m_A48 += go[59]; - m_A50 += go[60]; - double RHS17 = Idr[58]; - RHS17 += Idr[59]; - RHS17 += Idr[60]; - RHS17 += Idr[61]; - RHS17 += Idr[62]; - RHS17 -= go[61] * *cnV[61]; - RHS17 -= go[62] * *cnV[62]; - m_A61 += gt[63]; - m_A61 += gt[64]; - m_A61 += gt[65]; - m_A61 += gt[66]; - m_A61 += gt[67]; - m_A61 += gt[68]; - m_A59 += go[63]; - m_A56 += go[64]; - m_A57 += go[65]; - m_A54 += go[66]; - m_A53 += go[67]; - double RHS18 = Idr[63]; - RHS18 += Idr[64]; - RHS18 += Idr[65]; - RHS18 += Idr[66]; - RHS18 += Idr[67]; - RHS18 += Idr[68]; - RHS18 -= go[68] * *cnV[68]; + RHS12 -= go[41] * *cnV[41]; + RHS12 -= go[42] * *cnV[42]; + m_A29 += gt[43]; + m_A29 += gt[44]; + m_A30 += go[43]; + double RHS13 = Idr[43]; + RHS13 += Idr[44]; + RHS13 -= go[44] * *cnV[44]; + m_A31 += gt[45]; + m_A31 += gt[46]; + m_A32 += go[45]; + double RHS14 = Idr[45]; + RHS14 += Idr[46]; + RHS14 -= go[46] * *cnV[46]; + m_A33 += gt[47]; + m_A33 += gt[48]; + m_A34 += go[47]; + double RHS15 = Idr[47]; + RHS15 += Idr[48]; + RHS15 -= go[48] * *cnV[48]; + m_A35 += gt[49]; + m_A35 += gt[50]; + m_A35 += gt[51]; + m_A36 += go[49]; + double RHS16 = Idr[49]; + RHS16 += Idr[50]; + RHS16 += Idr[51]; + RHS16 -= go[50] * *cnV[50]; + RHS16 -= go[51] * *cnV[51]; + m_A37 += gt[52]; + m_A37 += gt[53]; + m_A37 += gt[54]; + m_A37 += gt[55]; + m_A38 += go[52]; + double RHS17 = Idr[52]; + RHS17 += Idr[53]; + RHS17 += Idr[54]; + RHS17 += Idr[55]; + RHS17 -= go[53] * *cnV[53]; + RHS17 -= go[54] * *cnV[54]; + RHS17 -= go[55] * *cnV[55]; + m_A39 += gt[56]; + m_A39 += gt[57]; + m_A40 += go[56]; + double RHS18 = Idr[56]; + RHS18 += Idr[57]; + RHS18 -= go[57] * *cnV[57]; + m_A41 += gt[58]; + m_A41 += gt[59]; + m_A42 += go[58]; + double RHS19 = Idr[58]; + RHS19 += Idr[59]; + RHS19 -= go[59] * *cnV[59]; + m_A43 += gt[60]; + m_A43 += gt[61]; + m_A44 += go[60]; + double RHS20 = Idr[60]; + RHS20 += Idr[61]; + RHS20 -= go[61] * *cnV[61]; + m_A45 += gt[62]; + m_A45 += gt[63]; + m_A45 += gt[64]; + m_A45 += gt[65]; + m_A46 += go[62]; + double RHS21 = Idr[62]; + RHS21 += Idr[63]; + RHS21 += Idr[64]; + RHS21 += Idr[65]; + RHS21 -= go[63] * *cnV[63]; + RHS21 -= go[64] * *cnV[64]; + RHS21 -= go[65] * *cnV[65]; + m_A47 += gt[66]; + m_A47 += gt[67]; + m_A48 += go[66]; + double RHS22 = Idr[66]; + RHS22 += Idr[67]; + RHS22 -= go[67] * *cnV[67]; + m_A49 += gt[68]; + m_A49 += gt[69]; + m_A50 += go[68]; + double RHS23 = Idr[68]; + RHS23 += Idr[69]; + RHS23 -= go[69] * *cnV[69]; + m_A51 += gt[70]; + m_A51 += gt[71]; + m_A52 += go[70]; + double RHS24 = Idr[70]; + RHS24 += Idr[71]; + RHS24 -= go[71] * *cnV[71]; + m_A53 += gt[72]; + m_A53 += gt[73]; + m_A53 += gt[74]; + m_A54 += go[72]; + double RHS25 = Idr[72]; + RHS25 += Idr[73]; + RHS25 += Idr[74]; + RHS25 -= go[73] * *cnV[73]; + RHS25 -= go[74] * *cnV[74]; + m_A55 += gt[75]; + m_A55 += gt[76]; + m_A56 += go[75]; + m_A57 += go[76]; + double RHS26 = Idr[75]; + RHS26 += Idr[76]; + m_A58 += gt[77]; + m_A58 += gt[78]; + m_A58 += gt[79]; + m_A59 += go[77]; + double RHS27 = Idr[77]; + RHS27 += Idr[78]; + RHS27 += Idr[79]; + RHS27 -= go[78] * *cnV[78]; + RHS27 -= go[79] * *cnV[79]; + m_A60 += gt[80]; + m_A60 += gt[81]; + m_A61 += go[80]; + m_A62 += go[81]; + double RHS28 = Idr[80]; + RHS28 += Idr[81]; + m_A65 += gt[82]; + m_A65 += gt[83]; + m_A64 += go[82]; + m_A63 += go[83]; + double RHS29 = Idr[82]; + RHS29 += Idr[83]; + m_A66 += gt[84]; + m_A66 += gt[85]; + m_A66 += gt[86]; + m_A67 += go[84]; + double RHS30 = Idr[84]; + RHS30 += Idr[85]; + RHS30 += Idr[86]; + RHS30 -= go[85] * *cnV[85]; + RHS30 -= go[86] * *cnV[86]; + m_A70 += gt[87]; + m_A70 += gt[88]; + m_A69 += go[87]; + m_A68 += go[88]; + double RHS31 = Idr[87]; + RHS31 += Idr[88]; + m_A72 += gt[89]; + m_A72 += gt[90]; + m_A72 += gt[91]; + m_A72 += gt[92]; + m_A73 += go[89]; + m_A74 += go[90]; + m_A71 += go[91]; + double RHS32 = Idr[89]; + RHS32 += Idr[90]; + RHS32 += Idr[91]; + RHS32 += Idr[92]; + RHS32 -= go[92] * *cnV[92]; + m_A77 += gt[93]; + m_A77 += gt[94]; + m_A77 += gt[95]; + m_A75 += go[93]; + m_A76 += go[94]; + double RHS33 = Idr[93]; + RHS33 += Idr[94]; + RHS33 += Idr[95]; + RHS33 -= go[95] * *cnV[95]; + m_A81 += gt[96]; + m_A81 += gt[97]; + m_A81 += gt[98]; + m_A79 += go[96]; + m_A80 += go[97]; + double RHS34 = Idr[96]; + RHS34 += Idr[97]; + RHS34 += Idr[98]; + RHS34 -= go[98] * *cnV[98]; + m_A84 += gt[99]; + m_A84 += gt[100]; + m_A84 += gt[101]; + m_A85 += go[99]; + m_A83 += go[100]; + double RHS35 = Idr[99]; + RHS35 += Idr[100]; + RHS35 += Idr[101]; + RHS35 -= go[101] * *cnV[101]; + m_A87 += gt[102]; + m_A87 += gt[103]; + m_A87 += gt[104]; + m_A88 += go[102]; + m_A86 += go[103]; + double RHS36 = Idr[102]; + RHS36 += Idr[103]; + RHS36 += Idr[104]; + RHS36 -= go[104] * *cnV[104]; + m_A92 += gt[105]; + m_A92 += gt[106]; + m_A92 += gt[107]; + m_A92 += gt[108]; + m_A92 += gt[109]; + m_A92 += gt[110]; + m_A89 += go[105]; + m_A90 += go[106]; + m_A94 += go[107]; + m_A94 += go[108]; + double RHS37 = Idr[105]; + RHS37 += Idr[106]; + RHS37 += Idr[107]; + RHS37 += Idr[108]; + RHS37 += Idr[109]; + RHS37 += Idr[110]; + RHS37 -= go[109] * *cnV[109]; + RHS37 -= go[110] * *cnV[110]; + m_A98 += gt[111]; + m_A98 += gt[112]; + m_A98 += gt[113]; + m_A98 += gt[114]; + m_A98 += gt[115]; + m_A98 += gt[116]; + m_A95 += go[111]; + m_A96 += go[112]; + m_A100 += go[113]; + m_A100 += go[114]; + double RHS38 = Idr[111]; + RHS38 += Idr[112]; + RHS38 += Idr[113]; + RHS38 += Idr[114]; + RHS38 += Idr[115]; + RHS38 += Idr[116]; + RHS38 -= go[115] * *cnV[115]; + RHS38 -= go[116] * *cnV[116]; + m_A102 += gt[117]; + m_A102 += gt[118]; + m_A102 += gt[119]; + m_A102 += gt[120]; + m_A103 += go[117]; + m_A101 += go[118]; + double RHS39 = Idr[117]; + RHS39 += Idr[118]; + RHS39 += Idr[119]; + RHS39 += Idr[120]; + RHS39 -= go[119] * *cnV[119]; + RHS39 -= go[120] * *cnV[120]; + m_A105 += gt[121]; + m_A105 += gt[122]; + m_A105 += gt[123]; + m_A105 += gt[124]; + m_A106 += go[121]; + m_A104 += go[122]; + double RHS40 = Idr[121]; + RHS40 += Idr[122]; + RHS40 += Idr[123]; + RHS40 += Idr[124]; + RHS40 -= go[123] * *cnV[123]; + RHS40 -= go[124] * *cnV[124]; + m_A116 += gt[125]; + m_A116 += gt[126]; + m_A116 += gt[127]; + m_A116 += gt[128]; + m_A116 += gt[129]; + m_A116 += gt[130]; + m_A116 += gt[131]; + m_A116 += gt[132]; + m_A116 += gt[133]; + m_A116 += gt[134]; + m_A114 += go[125]; + m_A113 += go[126]; + m_A112 += go[127]; + m_A111 += go[128]; + m_A110 += go[129]; + m_A118 += go[130]; + m_A109 += go[131]; + m_A108 += go[132]; + m_A107 += go[133]; + m_A115 += go[134]; + double RHS41 = Idr[125]; + RHS41 += Idr[126]; + RHS41 += Idr[127]; + RHS41 += Idr[128]; + RHS41 += Idr[129]; + RHS41 += Idr[130]; + RHS41 += Idr[131]; + RHS41 += Idr[132]; + RHS41 += Idr[133]; + RHS41 += Idr[134]; + m_A131 += gt[135]; + m_A131 += gt[136]; + m_A131 += gt[137]; + m_A131 += gt[138]; + m_A131 += gt[139]; + m_A131 += gt[140]; + m_A131 += gt[141]; + m_A131 += gt[142]; + m_A131 += gt[143]; + m_A131 += gt[144]; + m_A131 += gt[145]; + m_A131 += gt[146]; + m_A125 += go[135]; + m_A124 += go[136]; + m_A123 += go[137]; + m_A122 += go[138]; + m_A121 += go[139]; + m_A120 += go[140]; + m_A119 += go[141]; + m_A133 += go[142]; + m_A128 += go[143]; + m_A127 += go[144]; + m_A126 += go[145]; + m_A129 += go[146]; + double RHS42 = Idr[135]; + RHS42 += Idr[136]; + RHS42 += Idr[137]; + RHS42 += Idr[138]; + RHS42 += Idr[139]; + RHS42 += Idr[140]; + RHS42 += Idr[141]; + RHS42 += Idr[142]; + RHS42 += Idr[143]; + RHS42 += Idr[144]; + RHS42 += Idr[145]; + RHS42 += Idr[146]; + m_A142 += gt[147]; + m_A142 += gt[148]; + m_A142 += gt[149]; + m_A142 += gt[150]; + m_A142 += gt[151]; + m_A142 += gt[152]; + m_A142 += gt[153]; + m_A138 += go[147]; + m_A138 += go[148]; + m_A137 += go[149]; + m_A136 += go[150]; + m_A140 += go[151]; + m_A135 += go[152]; + m_A134 += go[153]; + double RHS43 = Idr[147]; + RHS43 += Idr[148]; + RHS43 += Idr[149]; + RHS43 += Idr[150]; + RHS43 += Idr[151]; + RHS43 += Idr[152]; + RHS43 += Idr[153]; + m_A152 += gt[154]; + m_A152 += gt[155]; + m_A152 += gt[156]; + m_A152 += gt[157]; + m_A152 += gt[158]; + m_A152 += gt[159]; + m_A152 += gt[160]; + m_A148 += go[154]; + m_A148 += go[155]; + m_A147 += go[156]; + m_A146 += go[157]; + m_A150 += go[158]; + m_A145 += go[159]; + m_A144 += go[160]; + double RHS44 = Idr[154]; + RHS44 += Idr[155]; + RHS44 += Idr[156]; + RHS44 += Idr[157]; + RHS44 += Idr[158]; + RHS44 += Idr[159]; + RHS44 += Idr[160]; const double f0 = 1.0 / m_A0; - const double f0_12 = -f0 * m_A27; - m_A30 += m_A1 * f0_12; - RHS12 += f0_12 * RHS0; + const double f0_38 = -f0 * m_A95; + m_A99 += m_A1 * f0_38; + RHS38 += f0_38 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_12 = -f1 * m_A28; - m_A30 += m_A3 * f1_12; - RHS12 += f1_12 * RHS1; + const double f1_37 = -f1 * m_A89; + m_A93 += m_A3 * f1_37; + RHS37 += f1_37 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_15 = -f2 * m_A38; - m_A42 += m_A5 * f2_15; - RHS15 += f2_15 * RHS2; + const double f2_32 = -f2 * m_A71; + m_A72 += m_A5 * f2_32; + RHS32 += f2_32 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_15 = -f3 * m_A39; - m_A42 += m_A7 * f3_15; - RHS15 += f3_15 * RHS3; + const double f3_42 = -f3 * m_A119; + m_A131 += m_A7 * f3_42; + RHS42 += f3_42 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_15 = -f4 * m_A40; - m_A42 += m_A9 * f4_15; - RHS15 += f4_15 * RHS4; + const double f4_42 = -f4 * m_A120; + m_A131 += m_A9 * f4_42; + RHS42 += f4_42 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_14 = -f5 * m_A35; - m_A36 += m_A11 * f5_14; - RHS14 += f5_14 * RHS5; + const double f5_42 = -f5 * m_A121; + m_A131 += m_A11 * f5_42; + RHS42 += f5_42 * RHS5; const double f6 = 1.0 / m_A12; - const double f6_10 = -f6 * m_A22; - m_A24 += m_A13 * f6_10; - RHS10 += f6_10 * RHS6; - const double f6_17 = -f6 * m_A48; - m_A51 += m_A13 * f6_17; - RHS17 += f6_17 * RHS6; + const double f6_42 = -f6 * m_A122; + m_A131 += m_A13 * f6_42; + RHS42 += f6_42 * RHS6; const double f7 = 1.0 / m_A14; - const double f7_12 = -f7 * m_A29; - m_A30 += m_A15 * f7_12; - m_A31 += m_A16 * f7_12; - RHS12 += f7_12 * RHS7; - const double f7_18 = -f7 * m_A53; - m_A55 += m_A15 * f7_18; - m_A61 += m_A16 * f7_18; - RHS18 += f7_18 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_15 = -f8 * m_A41; - m_A42 += m_A18 * f8_15; - m_A43 += m_A19 * f8_15; - RHS15 += f8_15 * RHS8; - const double f8_18 = -f8 * m_A54; - m_A58 += m_A18 * f8_18; - m_A61 += m_A19 * f8_18; - RHS18 += f8_18 * RHS8; - const double f9 = 1.0 / m_A20; - const double f9_16 = -f9 * m_A44; - m_A46 += m_A21 * f9_16; - RHS16 += f9_16 * RHS9; - const double f10 = 1.0 / m_A23; - const double f10_17 = -f10 * m_A49; - m_A51 += m_A24 * f10_17; - RHS17 += f10_17 * RHS10; - const double f11 = 1.0 / m_A25; - const double f11_16 = -f11 * m_A45; - m_A47 += m_A26 * f11_16; - RHS16 += f11_16 * RHS11; - const double f12 = 1.0 / m_A30; - const double f12_18 = -f12 * m_A55; - m_A61 += m_A31 * f12_18; - RHS18 += f12_18 * RHS12; - const double f13 = 1.0 / m_A32; - const double f13_17 = -f13 * m_A50; - m_A51 += m_A33 * f13_17; - m_A52 += m_A34 * f13_17; - RHS17 += f13_17 * RHS13; - const double f13_18 = -f13 * m_A56; - m_A60 += m_A33 * f13_18; - m_A61 += m_A34 * f13_18; - RHS18 += f13_18 * RHS13; - const double f14 = 1.0 / m_A36; - const double f14_18 = -f14 * m_A57; - m_A61 += m_A37 * f14_18; - RHS18 += f14_18 * RHS14; - const double f15 = 1.0 / m_A42; - const double f15_18 = -f15 * m_A58; - m_A61 += m_A43 * f15_18; - RHS18 += f15_18 * RHS15; - const double f16 = 1.0 / m_A46; - const double f16_18 = -f16 * m_A59; - m_A61 += m_A47 * f16_18; - RHS18 += f16_18 * RHS16; - const double f17 = 1.0 / m_A51; - const double f17_18 = -f17 * m_A60; - m_A61 += m_A52 * f17_18; - RHS18 += f17_18 * RHS17; - V[18] = RHS18 / m_A61; + const double f7_42 = -f7 * m_A123; + m_A131 += m_A15 * f7_42; + RHS42 += f7_42 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_42 = -f8 * m_A124; + m_A131 += m_A17 * f8_42; + RHS42 += f8_42 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_42 = -f9 * m_A125; + m_A131 += m_A19 * f9_42; + RHS42 += f9_42 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_41 = -f10 * m_A107; + m_A116 += m_A21 * f10_41; + m_A117 += m_A22 * f10_41; + RHS41 += f10_41 * RHS10; + const double f10_42 = -f10 * m_A126; + m_A130 += m_A21 * f10_42; + m_A131 += m_A22 * f10_42; + RHS42 += f10_42 * RHS10; + const double f11 = 1.0 / m_A23; + const double f11_41 = -f11 * m_A108; + m_A116 += m_A24 * f11_41; + m_A117 += m_A25 * f11_41; + RHS41 += f11_41 * RHS11; + const double f11_42 = -f11 * m_A127; + m_A130 += m_A24 * f11_42; + m_A131 += m_A25 * f11_42; + RHS42 += f11_42 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_41 = -f12 * m_A109; + m_A116 += m_A27 * f12_41; + m_A117 += m_A28 * f12_41; + RHS41 += f12_41 * RHS12; + const double f12_42 = -f12 * m_A128; + m_A130 += m_A27 * f12_42; + m_A131 += m_A28 * f12_42; + RHS42 += f12_42 * RHS12; + const double f13 = 1.0 / m_A29; + const double f13_41 = -f13 * m_A110; + m_A116 += m_A30 * f13_41; + RHS41 += f13_41 * RHS13; + const double f14 = 1.0 / m_A31; + const double f14_41 = -f14 * m_A111; + m_A116 += m_A32 * f14_41; + RHS41 += f14_41 * RHS14; + const double f15 = 1.0 / m_A33; + const double f15_29 = -f15 * m_A63; + m_A65 += m_A34 * f15_29; + RHS29 += f15_29 * RHS15; + const double f15_44 = -f15 * m_A144; + m_A146 += m_A34 * f15_44; + RHS44 += f15_44 * RHS15; + const double f16 = 1.0 / m_A35; + const double f16_35 = -f16 * m_A83; + m_A84 += m_A36 * f16_35; + RHS35 += f16_35 * RHS16; + const double f17 = 1.0 / m_A37; + const double f17_29 = -f17 * m_A64; + m_A65 += m_A38 * f17_29; + RHS29 += f17_29 * RHS17; + const double f18 = 1.0 / m_A39; + const double f18_33 = -f18 * m_A75; + m_A77 += m_A40 * f18_33; + RHS33 += f18_33 * RHS18; + const double f19 = 1.0 / m_A41; + const double f19_41 = -f19 * m_A112; + m_A116 += m_A42 * f19_41; + RHS41 += f19_41 * RHS19; + const double f20 = 1.0 / m_A43; + const double f20_31 = -f20 * m_A68; + m_A70 += m_A44 * f20_31; + RHS31 += f20_31 * RHS20; + const double f20_43 = -f20 * m_A134; + m_A136 += m_A44 * f20_43; + RHS43 += f20_43 * RHS20; + const double f21 = 1.0 / m_A45; + const double f21_31 = -f21 * m_A69; + m_A70 += m_A46 * f21_31; + RHS31 += f21_31 * RHS21; + const double f22 = 1.0 / m_A47; + const double f22_34 = -f22 * m_A79; + m_A81 += m_A48 * f22_34; + RHS34 += f22_34 * RHS22; + const double f23 = 1.0 / m_A49; + const double f23_41 = -f23 * m_A113; + m_A116 += m_A50 * f23_41; + RHS41 += f23_41 * RHS23; + const double f24 = 1.0 / m_A51; + const double f24_41 = -f24 * m_A114; + m_A116 += m_A52 * f24_41; + RHS41 += f24_41 * RHS24; + const double f25 = 1.0 / m_A53; + const double f25_36 = -f25 * m_A86; + m_A87 += m_A54 * f25_36; + RHS36 += f25_36 * RHS25; + const double f26 = 1.0 / m_A55; + const double f26_33 = -f26 * m_A76; + m_A77 += m_A56 * f26_33; + m_A78 += m_A57 * f26_33; + RHS33 += f26_33 * RHS26; + const double f26_38 = -f26 * m_A96; + m_A97 += m_A56 * f26_38; + m_A98 += m_A57 * f26_38; + RHS38 += f26_38 * RHS26; + const double f27 = 1.0 / m_A58; + const double f27_39 = -f27 * m_A101; + m_A103 += m_A59 * f27_39; + RHS39 += f27_39 * RHS27; + const double f27_44 = -f27 * m_A145; + m_A152 += m_A59 * f27_44; + RHS44 += f27_44 * RHS27; + const double f28 = 1.0 / m_A60; + const double f28_34 = -f28 * m_A80; + m_A81 += m_A61 * f28_34; + m_A82 += m_A62 * f28_34; + RHS34 += f28_34 * RHS28; + const double f28_37 = -f28 * m_A90; + m_A91 += m_A61 * f28_37; + m_A92 += m_A62 * f28_37; + RHS37 += f28_37 * RHS28; + const double f29 = 1.0 / m_A65; + const double f29_44 = -f29 * m_A146; + RHS44 += f29_44 * RHS29; + const double f30 = 1.0 / m_A66; + const double f30_40 = -f30 * m_A104; + m_A106 += m_A67 * f30_40; + RHS40 += f30_40 * RHS30; + const double f30_43 = -f30 * m_A135; + m_A142 += m_A67 * f30_43; + RHS43 += f30_43 * RHS30; + const double f31 = 1.0 / m_A70; + const double f31_43 = -f31 * m_A136; + RHS43 += f31_43 * RHS31; + const double f32 = 1.0 / m_A72; + const double f32_41 = -f32 * m_A115; + m_A116 += m_A73 * f32_41; + m_A117 += m_A74 * f32_41; + RHS41 += f32_41 * RHS32; + const double f32_42 = -f32 * m_A129; + m_A130 += m_A73 * f32_42; + m_A131 += m_A74 * f32_42; + RHS42 += f32_42 * RHS32; + const double f33 = 1.0 / m_A77; + const double f33_38 = -f33 * m_A97; + m_A98 += m_A78 * f33_38; + RHS38 += f33_38 * RHS33; + const double f34 = 1.0 / m_A81; + const double f34_37 = -f34 * m_A91; + m_A92 += m_A82 * f34_37; + RHS37 += f34_37 * RHS34; + const double f35 = 1.0 / m_A84; + const double f35_44 = -f35 * m_A147; + m_A152 += m_A85 * f35_44; + RHS44 += f35_44 * RHS35; + const double f36 = 1.0 / m_A87; + const double f36_43 = -f36 * m_A137; + m_A142 += m_A88 * f36_43; + RHS43 += f36_43 * RHS36; + const double f37 = 1.0 / m_A92; + const double f37_43 = -f37 * m_A138; + m_A139 += m_A93 * f37_43; + m_A142 += m_A94 * f37_43; + RHS43 += f37_43 * RHS37; + const double f38 = 1.0 / m_A98; + const double f38_44 = -f38 * m_A148; + m_A149 += m_A99 * f38_44; + m_A152 += m_A100 * f38_44; + RHS44 += f38_44 * RHS38; + const double f39 = 1.0 / m_A102; + const double f39_44 = -f39 * m_A149; + m_A152 += m_A103 * f39_44; + RHS44 += f39_44 * RHS39; + const double f40 = 1.0 / m_A105; + const double f40_43 = -f40 * m_A139; + m_A142 += m_A106 * f40_43; + RHS43 += f40_43 * RHS40; + const double f41 = 1.0 / m_A116; + const double f41_42 = -f41 * m_A130; + m_A131 += m_A117 * f41_42; + m_A132 += m_A118 * f41_42; + RHS42 += f41_42 * RHS41; + const double f41_43 = -f41 * m_A140; + m_A141 += m_A117 * f41_43; + m_A142 += m_A118 * f41_43; + RHS43 += f41_43 * RHS41; + const double f42 = 1.0 / m_A131; + const double f42_43 = -f42 * m_A141; + m_A142 += m_A132 * f42_43; + m_A143 += m_A133 * f42_43; + RHS43 += f42_43 * RHS42; + const double f42_44 = -f42 * m_A150; + m_A151 += m_A132 * f42_44; + m_A152 += m_A133 * f42_44; + RHS44 += f42_44 * RHS42; + const double f43 = 1.0 / m_A142; + const double f43_44 = -f43 * m_A151; + m_A152 += m_A143 * f43_44; + RHS44 += f43_44 * RHS43; + V[44] = RHS44 / m_A152; + double tmp43 = 0.0; + tmp43 += m_A143 * V[44]; + V[43] = (RHS43 - tmp43) / m_A142; + double tmp42 = 0.0; + tmp42 += m_A132 * V[43]; + tmp42 += m_A133 * V[44]; + V[42] = (RHS42 - tmp42) / m_A131; + double tmp41 = 0.0; + tmp41 += m_A117 * V[42]; + tmp41 += m_A118 * V[43]; + V[41] = (RHS41 - tmp41) / m_A116; + double tmp40 = 0.0; + tmp40 += m_A106 * V[43]; + V[40] = (RHS40 - tmp40) / m_A105; + double tmp39 = 0.0; + tmp39 += m_A103 * V[44]; + V[39] = (RHS39 - tmp39) / m_A102; + double tmp38 = 0.0; + tmp38 += m_A99 * V[39]; + tmp38 += m_A100 * V[44]; + V[38] = (RHS38 - tmp38) / m_A98; + double tmp37 = 0.0; + tmp37 += m_A93 * V[40]; + tmp37 += m_A94 * V[43]; + V[37] = (RHS37 - tmp37) / m_A92; + double tmp36 = 0.0; + tmp36 += m_A88 * V[43]; + V[36] = (RHS36 - tmp36) / m_A87; + double tmp35 = 0.0; + tmp35 += m_A85 * V[44]; + V[35] = (RHS35 - tmp35) / m_A84; + double tmp34 = 0.0; + tmp34 += m_A82 * V[37]; + V[34] = (RHS34 - tmp34) / m_A81; + double tmp33 = 0.0; + tmp33 += m_A78 * V[38]; + V[33] = (RHS33 - tmp33) / m_A77; + double tmp32 = 0.0; + tmp32 += m_A73 * V[41]; + tmp32 += m_A74 * V[42]; + V[32] = (RHS32 - tmp32) / m_A72; + double tmp31 = 0.0; + V[31] = (RHS31 - tmp31) / m_A70; + double tmp30 = 0.0; + tmp30 += m_A67 * V[43]; + V[30] = (RHS30 - tmp30) / m_A66; + double tmp29 = 0.0; + V[29] = (RHS29 - tmp29) / m_A65; + double tmp28 = 0.0; + tmp28 += m_A61 * V[34]; + tmp28 += m_A62 * V[37]; + V[28] = (RHS28 - tmp28) / m_A60; + double tmp27 = 0.0; + tmp27 += m_A59 * V[44]; + V[27] = (RHS27 - tmp27) / m_A58; + double tmp26 = 0.0; + tmp26 += m_A56 * V[33]; + tmp26 += m_A57 * V[38]; + V[26] = (RHS26 - tmp26) / m_A55; + double tmp25 = 0.0; + tmp25 += m_A54 * V[36]; + V[25] = (RHS25 - tmp25) / m_A53; + double tmp24 = 0.0; + tmp24 += m_A52 * V[41]; + V[24] = (RHS24 - tmp24) / m_A51; + double tmp23 = 0.0; + tmp23 += m_A50 * V[41]; + V[23] = (RHS23 - tmp23) / m_A49; + double tmp22 = 0.0; + tmp22 += m_A48 * V[34]; + V[22] = (RHS22 - tmp22) / m_A47; + double tmp21 = 0.0; + tmp21 += m_A46 * V[31]; + V[21] = (RHS21 - tmp21) / m_A45; + double tmp20 = 0.0; + tmp20 += m_A44 * V[31]; + V[20] = (RHS20 - tmp20) / m_A43; + double tmp19 = 0.0; + tmp19 += m_A42 * V[41]; + V[19] = (RHS19 - tmp19) / m_A41; + double tmp18 = 0.0; + tmp18 += m_A40 * V[33]; + V[18] = (RHS18 - tmp18) / m_A39; double tmp17 = 0.0; - tmp17 += m_A52 * V[18]; - V[17] = (RHS17 - tmp17) / m_A51; + tmp17 += m_A38 * V[29]; + V[17] = (RHS17 - tmp17) / m_A37; double tmp16 = 0.0; - tmp16 += m_A47 * V[18]; - V[16] = (RHS16 - tmp16) / m_A46; + tmp16 += m_A36 * V[35]; + V[16] = (RHS16 - tmp16) / m_A35; double tmp15 = 0.0; - tmp15 += m_A43 * V[18]; - V[15] = (RHS15 - tmp15) / m_A42; + tmp15 += m_A34 * V[29]; + V[15] = (RHS15 - tmp15) / m_A33; double tmp14 = 0.0; - tmp14 += m_A37 * V[18]; - V[14] = (RHS14 - tmp14) / m_A36; + tmp14 += m_A32 * V[41]; + V[14] = (RHS14 - tmp14) / m_A31; double tmp13 = 0.0; - tmp13 += m_A33 * V[17]; - tmp13 += m_A34 * V[18]; - V[13] = (RHS13 - tmp13) / m_A32; + tmp13 += m_A30 * V[41]; + V[13] = (RHS13 - tmp13) / m_A29; double tmp12 = 0.0; - tmp12 += m_A31 * V[18]; - V[12] = (RHS12 - tmp12) / m_A30; + tmp12 += m_A27 * V[41]; + tmp12 += m_A28 * V[42]; + V[12] = (RHS12 - tmp12) / m_A26; double tmp11 = 0.0; - tmp11 += m_A26 * V[18]; - V[11] = (RHS11 - tmp11) / m_A25; + tmp11 += m_A24 * V[41]; + tmp11 += m_A25 * V[42]; + V[11] = (RHS11 - tmp11) / m_A23; double tmp10 = 0.0; - tmp10 += m_A24 * V[17]; - V[10] = (RHS10 - tmp10) / m_A23; + tmp10 += m_A21 * V[41]; + tmp10 += m_A22 * V[42]; + V[10] = (RHS10 - tmp10) / m_A20; double tmp9 = 0.0; - tmp9 += m_A21 * V[16]; - V[9] = (RHS9 - tmp9) / m_A20; + tmp9 += m_A19 * V[42]; + V[9] = (RHS9 - tmp9) / m_A18; double tmp8 = 0.0; - tmp8 += m_A18 * V[15]; - tmp8 += m_A19 * V[18]; - V[8] = (RHS8 - tmp8) / m_A17; + tmp8 += m_A17 * V[42]; + V[8] = (RHS8 - tmp8) / m_A16; double tmp7 = 0.0; - tmp7 += m_A15 * V[12]; - tmp7 += m_A16 * V[18]; + tmp7 += m_A15 * V[42]; V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A13 * V[17]; + tmp6 += m_A13 * V[42]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[14]; + tmp5 += m_A11 * V[42]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[15]; + tmp4 += m_A9 * V[42]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[15]; + tmp3 += m_A7 * V[42]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[15]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[12]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[12]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// boxingb -static void nl_gcr_a6b734322b3ea924_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A3 += go[5]; - double RHS1 = Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[6] * *cnV[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A4 += gt[12]; - m_A4 += gt[13]; - m_A4 += gt[14]; - m_A7 += go[7]; - m_A6 += go[8]; - m_A6 += go[9]; - m_A5 += go[10]; - m_A5 += go[11]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 += Idr[14]; - RHS2 -= go[12] * *cnV[12]; - RHS2 -= go[13] * *cnV[13]; - RHS2 -= go[14] * *cnV[14]; - m_A10 += gt[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A10 += gt[19]; - m_A8 += go[15]; - m_A9 += go[16]; - m_A9 += go[17]; - double RHS3 = Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A15 += gt[20]; - m_A15 += gt[21]; - m_A15 += gt[22]; - m_A15 += gt[23]; - m_A15 += gt[24]; - m_A16 += go[20]; - m_A16 += go[21]; - m_A13 += go[22]; - m_A13 += go[23]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 -= go[24] * *cnV[24]; - m_A21 += gt[25]; - m_A21 += gt[26]; - m_A21 += gt[27]; - m_A21 += gt[28]; - m_A21 += gt[29]; - m_A20 += go[25]; - m_A20 += go[26]; - m_A18 += go[27]; - m_A17 += go[28]; - double RHS5 = Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 -= go[29] * *cnV[29]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A17; - m_A21 += m_A3 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A9; - m_A10 += m_A5 * f2_3; - m_A11 += m_A6 * f2_3; - m_A12 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - const double f2_4 = -f2 * m_A13; - m_A14 += m_A5 * f2_4; - m_A15 += m_A6 * f2_4; - m_A16 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A18; - m_A19 += m_A5 * f2_5; - m_A20 += m_A6 * f2_5; - m_A21 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_4 = -f3 * m_A14; - m_A15 += m_A11 * f3_4; - m_A16 += m_A12 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A19; - m_A20 += m_A11 * f3_5; - m_A21 += m_A12 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A15; - const double f4_5 = -f4 * m_A20; - m_A21 += m_A16 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A21; - double tmp4 = 0.0; - tmp4 += m_A16 * V[5]; - V[4] = (RHS4 - tmp4) / m_A15; - double tmp3 = 0.0; - tmp3 += m_A11 * V[4]; - tmp3 += m_A12 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; - double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[5]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// armora -static void nl_gcr_a6cfda6668b153c2_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[4]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A4 += gt[12]; - m_A4 += gt[13]; - m_A7 += go[6]; - m_A6 += go[7]; - m_A6 += go[8]; - m_A5 += go[9]; - m_A5 += go[10]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; - RHS2 -= go[13] * *cnV[13]; - m_A10 += gt[14]; - m_A10 += gt[15]; - m_A10 += gt[16]; - m_A10 += gt[17]; - m_A10 += gt[18]; - m_A10 += gt[19]; - m_A9 += go[14]; - m_A9 += go[15]; - m_A8 += go[16]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A15 += gt[20]; - m_A15 += gt[21]; - m_A15 += gt[22]; - m_A15 += gt[23]; - m_A15 += gt[24]; - m_A16 += go[20]; - m_A16 += go[21]; - m_A13 += go[22]; - m_A13 += go[23]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 -= go[24] * *cnV[24]; - m_A21 += gt[25]; - m_A21 += gt[26]; - m_A21 += gt[27]; - m_A21 += gt[28]; - m_A20 += go[25]; - m_A20 += go[26]; - m_A18 += go[27]; - m_A17 += go[28]; - double RHS5 = Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A17; - m_A21 += m_A3 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A9; - m_A10 += m_A5 * f2_3; - m_A11 += m_A6 * f2_3; - m_A12 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - const double f2_4 = -f2 * m_A13; - m_A14 += m_A5 * f2_4; - m_A15 += m_A6 * f2_4; - m_A16 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A18; - m_A19 += m_A5 * f2_5; - m_A20 += m_A6 * f2_5; - m_A21 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_4 = -f3 * m_A14; - m_A15 += m_A11 * f3_4; - m_A16 += m_A12 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A19; - m_A20 += m_A11 * f3_5; - m_A21 += m_A12 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A15; - const double f4_5 = -f4 * m_A20; - m_A21 += m_A16 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A21; - double tmp4 = 0.0; - tmp4 += m_A16 * V[5]; - V[4] = (RHS4 - tmp4) / m_A15; - double tmp3 = 0.0; - tmp3 += m_A11 * V[4]; - tmp3 += m_A12 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; - double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[5]; + tmp2 += m_A5 * V[32]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; + tmp1 += m_A3 * V[40]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[39]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_a6f74be7f61e6db2_29_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// 1942 +static void nl_gcr_ce766957cb26ff3e_90_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -23687,6 +52522,67 @@ double m_A26(0.0); double m_A27(0.0); double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -23699,175 +52595,438 @@ m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A4 += go[3]; - m_A3 += go[4]; - m_A3 += go[5]; + m_A3 += go[3]; double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - m_A5 += gt[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A5 += gt[12]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; m_A7 += go[9]; - m_A6 += go[10]; - m_A6 += go[11]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 -= go[12] * *cnV[12]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; m_A8 += gt[13]; m_A8 += gt[14]; - m_A9 += go[13]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 -= go[14] * *cnV[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; m_A10 += gt[15]; m_A10 += gt[16]; + m_A10 += gt[17]; m_A11 += go[15]; - double RHS4 = Idr[15]; - RHS4 += Idr[16]; - RHS4 -= go[16] * *cnV[16]; - m_A14 += gt[17]; - m_A14 += gt[18]; - m_A14 += gt[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A14 += gt[22]; - m_A13 += go[17]; - m_A13 += go[18]; - m_A12 += go[19]; - double RHS5 = Idr[17]; - RHS5 += Idr[18]; - RHS5 += Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 -= go[20] * *cnV[20]; - RHS5 -= go[21] * *cnV[21]; - RHS5 -= go[22] * *cnV[22]; - m_A19 += gt[23]; - m_A19 += gt[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A19 += gt[27]; - m_A17 += go[23]; - m_A17 += go[24]; - m_A16 += go[25]; - double RHS6 = Idr[23]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[16] * *cnV[16]; + RHS5 -= go[17] * *cnV[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A12 += gt[22]; + m_A12 += gt[23]; + m_A12 += gt[24]; + m_A19 += go[18]; + m_A13 += go[19]; + m_A15 += go[20]; + m_A17 += go[21]; + m_A18 += go[22]; + m_A16 += go[23]; + m_A14 += go[24]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; RHS6 += Idr[24]; - RHS6 += Idr[25]; - RHS6 += Idr[26]; - RHS6 += Idr[27]; - RHS6 -= go[26] * *cnV[26]; - RHS6 -= go[27] * *cnV[27]; - m_A24 += gt[28]; - m_A24 += gt[29]; - m_A24 += gt[30]; - m_A24 += gt[31]; - m_A24 += gt[32]; - m_A24 += gt[33]; - m_A22 += go[28]; - m_A25 += go[29]; - m_A21 += go[30]; - double RHS7 = Idr[28]; - RHS7 += Idr[29]; - RHS7 += Idr[30]; - RHS7 += Idr[31]; - RHS7 += Idr[32]; - RHS7 += Idr[33]; - RHS7 -= go[31] * *cnV[31]; - RHS7 -= go[32] * *cnV[32]; - RHS7 -= go[33] * *cnV[33]; - m_A28 += gt[34]; - m_A28 += gt[35]; - m_A26 += go[34]; - m_A27 += go[35]; - double RHS8 = Idr[34]; - RHS8 += Idr[35]; + m_A20 += gt[25]; + m_A20 += gt[26]; + m_A22 += go[25]; + m_A21 += go[26]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + m_A25 += gt[27]; + m_A25 += gt[28]; + m_A24 += go[27]; + m_A23 += go[28]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + m_A35 += gt[29]; + m_A35 += gt[30]; + m_A33 += go[29]; + m_A32 += go[30]; + double RHS9 = Idr[29]; + RHS9 += Idr[30]; + m_A45 += gt[31]; + m_A45 += gt[32]; + m_A42 += go[31]; + m_A41 += go[32]; + double RHS10 = Idr[31]; + RHS10 += Idr[32]; + m_A55 += gt[33]; + m_A55 += gt[34]; + m_A51 += go[33]; + m_A50 += go[34]; + double RHS11 = Idr[33]; + RHS11 += Idr[34]; + m_A65 += gt[35]; + m_A65 += gt[36]; + m_A60 += go[35]; + m_A59 += go[36]; + double RHS12 = Idr[35]; + RHS12 += Idr[36]; + m_A75 += gt[37]; + m_A75 += gt[38]; + m_A69 += go[37]; + m_A68 += go[38]; + double RHS13 = Idr[37]; + RHS13 += Idr[38]; + m_A85 += gt[39]; + m_A85 += gt[40]; + m_A85 += gt[41]; + m_A78 += go[39]; + m_A77 += go[40]; + double RHS14 = Idr[39]; + RHS14 += Idr[40]; + RHS14 += Idr[41]; + RHS14 -= go[41] * *cnV[41]; + m_A89 += gt[42]; + m_A89 += gt[43]; + m_A87 += go[42]; + double RHS15 = Idr[42]; + RHS15 += Idr[43]; + RHS15 -= go[43] * *cnV[43]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A12; - m_A14 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; + const double f0_9 = -f0 * m_A32; + m_A35 += m_A1 * f0_9; + RHS9 += f0_9 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A13; - m_A14 += m_A3 * f1_5; - m_A15 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; - const double f1_6 = -f1 * m_A16; - m_A18 += m_A3 * f1_6; - m_A19 += m_A4 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_6 = -f2 * m_A17; - m_A19 += m_A6 * f2_6; - m_A20 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; - const double f2_7 = -f2 * m_A21; - m_A23 += m_A6 * f2_7; - m_A24 += m_A7 * f2_7; - RHS7 += f2_7 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_7 = -f3 * m_A22; - m_A24 += m_A9 * f3_7; - RHS7 += f3_7 * RHS3; - const double f4 = 1.0 / m_A10; - const double f4_8 = -f4 * m_A26; - m_A28 += m_A11 * f4_8; - RHS8 += f4_8 * RHS4; - const double f5 = 1.0 / m_A14; - const double f5_6 = -f5 * m_A18; - m_A19 += m_A15 * f5_6; - RHS6 += f5_6 * RHS5; - const double f6 = 1.0 / m_A19; - const double f6_7 = -f6 * m_A23; - m_A24 += m_A20 * f6_7; - RHS7 += f6_7 * RHS6; - const double f7 = 1.0 / m_A24; - const double f7_8 = -f7 * m_A27; - m_A28 += m_A25 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A28; + const double f1_11 = -f1 * m_A50; + m_A55 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_13 = -f2 * m_A68; + m_A75 += m_A5 * f2_13; + RHS13 += f2_13 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_12 = -f3 * m_A59; + m_A65 += m_A7 * f3_12; + RHS12 += f3_12 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_10 = -f4 * m_A41; + m_A45 += m_A9 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_8 = -f5 * m_A23; + m_A25 += m_A11 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_8 = -f6 * m_A24; + m_A25 += m_A13 * f6_8; + m_A26 += m_A14 * f6_8; + m_A27 += m_A15 * f6_8; + m_A28 += m_A16 * f6_8; + m_A29 += m_A17 * f6_8; + m_A30 += m_A18 * f6_8; + m_A31 += m_A19 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_9 = -f6 * m_A33; + m_A34 += m_A13 * f6_9; + m_A35 += m_A14 * f6_9; + m_A36 += m_A15 * f6_9; + m_A37 += m_A16 * f6_9; + m_A38 += m_A17 * f6_9; + m_A39 += m_A18 * f6_9; + m_A40 += m_A19 * f6_9; + RHS9 += f6_9 * RHS6; + const double f6_10 = -f6 * m_A42; + m_A43 += m_A13 * f6_10; + m_A44 += m_A14 * f6_10; + m_A45 += m_A15 * f6_10; + m_A46 += m_A16 * f6_10; + m_A47 += m_A17 * f6_10; + m_A48 += m_A18 * f6_10; + m_A49 += m_A19 * f6_10; + RHS10 += f6_10 * RHS6; + const double f6_11 = -f6 * m_A51; + m_A52 += m_A13 * f6_11; + m_A53 += m_A14 * f6_11; + m_A54 += m_A15 * f6_11; + m_A55 += m_A16 * f6_11; + m_A56 += m_A17 * f6_11; + m_A57 += m_A18 * f6_11; + m_A58 += m_A19 * f6_11; + RHS11 += f6_11 * RHS6; + const double f6_12 = -f6 * m_A60; + m_A61 += m_A13 * f6_12; + m_A62 += m_A14 * f6_12; + m_A63 += m_A15 * f6_12; + m_A64 += m_A16 * f6_12; + m_A65 += m_A17 * f6_12; + m_A66 += m_A18 * f6_12; + m_A67 += m_A19 * f6_12; + RHS12 += f6_12 * RHS6; + const double f6_13 = -f6 * m_A69; + m_A70 += m_A13 * f6_13; + m_A71 += m_A14 * f6_13; + m_A72 += m_A15 * f6_13; + m_A73 += m_A16 * f6_13; + m_A74 += m_A17 * f6_13; + m_A75 += m_A18 * f6_13; + m_A76 += m_A19 * f6_13; + RHS13 += f6_13 * RHS6; + const double f6_14 = -f6 * m_A77; + m_A79 += m_A13 * f6_14; + m_A80 += m_A14 * f6_14; + m_A81 += m_A15 * f6_14; + m_A82 += m_A16 * f6_14; + m_A83 += m_A17 * f6_14; + m_A84 += m_A18 * f6_14; + m_A85 += m_A19 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A20; + const double f7_14 = -f7 * m_A78; + m_A85 += m_A21 * f7_14; + m_A86 += m_A22 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_15 = -f7 * m_A87; + m_A88 += m_A21 * f7_15; + m_A89 += m_A22 * f7_15; + RHS15 += f7_15 * RHS7; + const double f8 = 1.0 / m_A25; + const double f8_9 = -f8 * m_A34; + m_A35 += m_A26 * f8_9; + m_A36 += m_A27 * f8_9; + m_A37 += m_A28 * f8_9; + m_A38 += m_A29 * f8_9; + m_A39 += m_A30 * f8_9; + m_A40 += m_A31 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_10 = -f8 * m_A43; + m_A44 += m_A26 * f8_10; + m_A45 += m_A27 * f8_10; + m_A46 += m_A28 * f8_10; + m_A47 += m_A29 * f8_10; + m_A48 += m_A30 * f8_10; + m_A49 += m_A31 * f8_10; + RHS10 += f8_10 * RHS8; + const double f8_11 = -f8 * m_A52; + m_A53 += m_A26 * f8_11; + m_A54 += m_A27 * f8_11; + m_A55 += m_A28 * f8_11; + m_A56 += m_A29 * f8_11; + m_A57 += m_A30 * f8_11; + m_A58 += m_A31 * f8_11; + RHS11 += f8_11 * RHS8; + const double f8_12 = -f8 * m_A61; + m_A62 += m_A26 * f8_12; + m_A63 += m_A27 * f8_12; + m_A64 += m_A28 * f8_12; + m_A65 += m_A29 * f8_12; + m_A66 += m_A30 * f8_12; + m_A67 += m_A31 * f8_12; + RHS12 += f8_12 * RHS8; + const double f8_13 = -f8 * m_A70; + m_A71 += m_A26 * f8_13; + m_A72 += m_A27 * f8_13; + m_A73 += m_A28 * f8_13; + m_A74 += m_A29 * f8_13; + m_A75 += m_A30 * f8_13; + m_A76 += m_A31 * f8_13; + RHS13 += f8_13 * RHS8; + const double f8_14 = -f8 * m_A79; + m_A80 += m_A26 * f8_14; + m_A81 += m_A27 * f8_14; + m_A82 += m_A28 * f8_14; + m_A83 += m_A29 * f8_14; + m_A84 += m_A30 * f8_14; + m_A85 += m_A31 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A35; + const double f9_10 = -f9 * m_A44; + m_A45 += m_A36 * f9_10; + m_A46 += m_A37 * f9_10; + m_A47 += m_A38 * f9_10; + m_A48 += m_A39 * f9_10; + m_A49 += m_A40 * f9_10; + RHS10 += f9_10 * RHS9; + const double f9_11 = -f9 * m_A53; + m_A54 += m_A36 * f9_11; + m_A55 += m_A37 * f9_11; + m_A56 += m_A38 * f9_11; + m_A57 += m_A39 * f9_11; + m_A58 += m_A40 * f9_11; + RHS11 += f9_11 * RHS9; + const double f9_12 = -f9 * m_A62; + m_A63 += m_A36 * f9_12; + m_A64 += m_A37 * f9_12; + m_A65 += m_A38 * f9_12; + m_A66 += m_A39 * f9_12; + m_A67 += m_A40 * f9_12; + RHS12 += f9_12 * RHS9; + const double f9_13 = -f9 * m_A71; + m_A72 += m_A36 * f9_13; + m_A73 += m_A37 * f9_13; + m_A74 += m_A38 * f9_13; + m_A75 += m_A39 * f9_13; + m_A76 += m_A40 * f9_13; + RHS13 += f9_13 * RHS9; + const double f9_14 = -f9 * m_A80; + m_A81 += m_A36 * f9_14; + m_A82 += m_A37 * f9_14; + m_A83 += m_A38 * f9_14; + m_A84 += m_A39 * f9_14; + m_A85 += m_A40 * f9_14; + RHS14 += f9_14 * RHS9; + const double f10 = 1.0 / m_A45; + const double f10_11 = -f10 * m_A54; + m_A55 += m_A46 * f10_11; + m_A56 += m_A47 * f10_11; + m_A57 += m_A48 * f10_11; + m_A58 += m_A49 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_12 = -f10 * m_A63; + m_A64 += m_A46 * f10_12; + m_A65 += m_A47 * f10_12; + m_A66 += m_A48 * f10_12; + m_A67 += m_A49 * f10_12; + RHS12 += f10_12 * RHS10; + const double f10_13 = -f10 * m_A72; + m_A73 += m_A46 * f10_13; + m_A74 += m_A47 * f10_13; + m_A75 += m_A48 * f10_13; + m_A76 += m_A49 * f10_13; + RHS13 += f10_13 * RHS10; + const double f10_14 = -f10 * m_A81; + m_A82 += m_A46 * f10_14; + m_A83 += m_A47 * f10_14; + m_A84 += m_A48 * f10_14; + m_A85 += m_A49 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A55; + const double f11_12 = -f11 * m_A64; + m_A65 += m_A56 * f11_12; + m_A66 += m_A57 * f11_12; + m_A67 += m_A58 * f11_12; + RHS12 += f11_12 * RHS11; + const double f11_13 = -f11 * m_A73; + m_A74 += m_A56 * f11_13; + m_A75 += m_A57 * f11_13; + m_A76 += m_A58 * f11_13; + RHS13 += f11_13 * RHS11; + const double f11_14 = -f11 * m_A82; + m_A83 += m_A56 * f11_14; + m_A84 += m_A57 * f11_14; + m_A85 += m_A58 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A65; + const double f12_13 = -f12 * m_A74; + m_A75 += m_A66 * f12_13; + m_A76 += m_A67 * f12_13; + RHS13 += f12_13 * RHS12; + const double f12_14 = -f12 * m_A83; + m_A84 += m_A66 * f12_14; + m_A85 += m_A67 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A75; + const double f13_14 = -f13 * m_A84; + m_A85 += m_A76 * f13_14; + RHS14 += f13_14 * RHS13; + const double f14 = 1.0 / m_A85; + const double f14_15 = -f14 * m_A88; + m_A89 += m_A86 * f14_15; + RHS15 += f14_15 * RHS14; + V[15] = RHS15 / m_A89; + double tmp14 = 0.0; + tmp14 += m_A86 * V[15]; + V[14] = (RHS14 - tmp14) / m_A85; + double tmp13 = 0.0; + tmp13 += m_A76 * V[14]; + V[13] = (RHS13 - tmp13) / m_A75; + double tmp12 = 0.0; + tmp12 += m_A66 * V[13]; + tmp12 += m_A67 * V[14]; + V[12] = (RHS12 - tmp12) / m_A65; + double tmp11 = 0.0; + tmp11 += m_A56 * V[12]; + tmp11 += m_A57 * V[13]; + tmp11 += m_A58 * V[14]; + V[11] = (RHS11 - tmp11) / m_A55; + double tmp10 = 0.0; + tmp10 += m_A46 * V[11]; + tmp10 += m_A47 * V[12]; + tmp10 += m_A48 * V[13]; + tmp10 += m_A49 * V[14]; + V[10] = (RHS10 - tmp10) / m_A45; + double tmp9 = 0.0; + tmp9 += m_A36 * V[10]; + tmp9 += m_A37 * V[11]; + tmp9 += m_A38 * V[12]; + tmp9 += m_A39 * V[13]; + tmp9 += m_A40 * V[14]; + V[9] = (RHS9 - tmp9) / m_A35; + double tmp8 = 0.0; + tmp8 += m_A26 * V[9]; + tmp8 += m_A27 * V[10]; + tmp8 += m_A28 * V[11]; + tmp8 += m_A29 * V[12]; + tmp8 += m_A30 * V[13]; + tmp8 += m_A31 * V[14]; + V[8] = (RHS8 - tmp8) / m_A25; double tmp7 = 0.0; - tmp7 += m_A25 * V[8]; - V[7] = (RHS7 - tmp7) / m_A24; + tmp7 += m_A21 * V[14]; + tmp7 += m_A22 * V[15]; + V[7] = (RHS7 - tmp7) / m_A20; double tmp6 = 0.0; - tmp6 += m_A20 * V[7]; - V[6] = (RHS6 - tmp6) / m_A19; + tmp6 += m_A13 * V[8]; + tmp6 += m_A14 * V[9]; + tmp6 += m_A15 * V[10]; + tmp6 += m_A16 * V[11]; + tmp6 += m_A17 * V[12]; + tmp6 += m_A18 * V[13]; + tmp6 += m_A19 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A15 * V[6]; - V[5] = (RHS5 - tmp5) / m_A14; + tmp5 += m_A11 * V[8]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A11 * V[8]; - V[4] = (RHS4 - tmp4) / m_A10; + tmp4 += m_A9 * V[10]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A9 * V[7]; - V[3] = (RHS3 - tmp3) / m_A8; + tmp3 += m_A7 * V[12]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A6 * V[6]; - tmp2 += m_A7 * V[7]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[13]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; - tmp1 += m_A4 * V[6]; + tmp1 += m_A3 * V[11]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[9]; V[0] = (RHS0 - tmp0) / m_A0; } -// breakout -static void nl_gcr_a971eeb2ef76f75f_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// astrob +static void nl_gcr_cf1018e7ed626623_43_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -23885,6 +53044,36 @@ double m_A10(0.0); double m_A11(0.0); double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -23914,309 +53103,254 @@ RHS2 -= go[8] * *cnV[8]; m_A6 += gt[9]; m_A6 += gt[10]; - m_A6 += gt[11]; m_A7 += go[9]; double RHS3 = Idr[9]; RHS3 += Idr[10]; - RHS3 += Idr[11]; RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - m_A12 += gt[12]; - m_A12 += gt[13]; - m_A12 += gt[14]; - m_A12 += gt[15]; - m_A11 += go[12]; - m_A10 += go[13]; - m_A9 += go[14]; - m_A8 += go[15]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - RHS4 += Idr[15]; + m_A8 += gt[11]; + m_A8 += gt[12]; + m_A9 += go[11]; + double RHS4 = Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A11 += go[13]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[14] * *cnV[14]; + RHS5 -= go[15] * *cnV[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A13 += go[16]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 -= go[17] * *cnV[17]; + RHS6 -= go[18] * *cnV[18]; + m_A16 += gt[19]; + m_A16 += gt[20]; + m_A16 += gt[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A15 += go[19]; + m_A14 += go[20]; + m_A17 += go[21]; + m_A17 += go[22]; + double RHS7 = Idr[19]; + RHS7 += Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; + RHS7 -= go[25] * *cnV[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A19 += go[26]; + double RHS8 = Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 -= go[27] * *cnV[27]; + RHS8 -= go[28] * *cnV[28]; + m_A20 += gt[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A21 += go[29]; + double RHS9 = Idr[29]; + RHS9 += Idr[30]; + RHS9 += Idr[31]; + RHS9 -= go[30] * *cnV[30]; + RHS9 -= go[31] * *cnV[31]; + m_A22 += gt[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A23 += go[32]; + double RHS10 = Idr[32]; + RHS10 += Idr[33]; + RHS10 += Idr[34]; + RHS10 -= go[33] * *cnV[33]; + RHS10 -= go[34] * *cnV[34]; + m_A24 += gt[35]; + m_A24 += gt[36]; + m_A24 += gt[37]; + m_A25 += go[35]; + double RHS11 = Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 -= go[36] * *cnV[36]; + RHS11 -= go[37] * *cnV[37]; + m_A26 += gt[38]; + m_A26 += gt[39]; + m_A26 += gt[40]; + m_A27 += go[38]; + double RHS12 = Idr[38]; + RHS12 += Idr[39]; + RHS12 += Idr[40]; + RHS12 -= go[39] * *cnV[39]; + RHS12 -= go[40] * *cnV[40]; + m_A29 += gt[41]; + m_A29 += gt[42]; + m_A29 += gt[43]; + m_A29 += gt[44]; + m_A29 += gt[45]; + m_A28 += go[41]; + m_A28 += go[42]; + m_A30 += go[43]; + double RHS13 = Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 += Idr[44]; + RHS13 += Idr[45]; + RHS13 -= go[44] * *cnV[44]; + RHS13 -= go[45] * *cnV[45]; + m_A42 += gt[46]; + m_A42 += gt[47]; + m_A42 += gt[48]; + m_A42 += gt[49]; + m_A42 += gt[50]; + m_A42 += gt[51]; + m_A42 += gt[52]; + m_A42 += gt[53]; + m_A42 += gt[54]; + m_A42 += gt[55]; + m_A42 += gt[56]; + m_A42 += gt[57]; + m_A41 += go[46]; + m_A40 += go[47]; + m_A39 += go[48]; + m_A38 += go[49]; + m_A37 += go[50]; + m_A36 += go[51]; + m_A35 += go[52]; + m_A34 += go[53]; + m_A33 += go[54]; + m_A32 += go[55]; + m_A31 += go[56]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 += Idr[55]; + RHS14 += Idr[56]; + RHS14 += Idr[57]; + RHS14 -= go[57] * *cnV[57]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A8; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; + const double f0_14 = -f0 * m_A31; + m_A42 += m_A1 * f0_14; + RHS14 += f0_14 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A9; - m_A12 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; + const double f1_14 = -f1 * m_A32; + m_A42 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A10; - m_A12 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; + const double f2_14 = -f2 * m_A33; + m_A42 += m_A5 * f2_14; + RHS14 += f2_14 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_4 = -f3 * m_A11; - m_A12 += m_A7 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A12; + const double f3_7 = -f3 * m_A14; + m_A16 += m_A7 * f3_7; + RHS7 += f3_7 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_7 = -f4 * m_A15; + m_A16 += m_A9 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_14 = -f5 * m_A34; + m_A42 += m_A11 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A35; + m_A42 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_13 = -f7 * m_A28; + m_A29 += m_A17 * f7_13; + RHS13 += f7_13 * RHS7; + const double f8 = 1.0 / m_A18; + const double f8_14 = -f8 * m_A36; + m_A42 += m_A19 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A20; + const double f9_14 = -f9 * m_A37; + m_A42 += m_A21 * f9_14; + RHS14 += f9_14 * RHS9; + const double f10 = 1.0 / m_A22; + const double f10_14 = -f10 * m_A38; + m_A42 += m_A23 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A24; + const double f11_14 = -f11 * m_A39; + m_A42 += m_A25 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_14 = -f12 * m_A40; + m_A42 += m_A27 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A29; + const double f13_14 = -f13 * m_A41; + m_A42 += m_A30 * f13_14; + RHS14 += f13_14 * RHS13; + V[14] = RHS14 / m_A42; + double tmp13 = 0.0; + tmp13 += m_A30 * V[14]; + V[13] = (RHS13 - tmp13) / m_A29; + double tmp12 = 0.0; + tmp12 += m_A27 * V[14]; + V[12] = (RHS12 - tmp12) / m_A26; + double tmp11 = 0.0; + tmp11 += m_A25 * V[14]; + V[11] = (RHS11 - tmp11) / m_A24; + double tmp10 = 0.0; + tmp10 += m_A23 * V[14]; + V[10] = (RHS10 - tmp10) / m_A22; + double tmp9 = 0.0; + tmp9 += m_A21 * V[14]; + V[9] = (RHS9 - tmp9) / m_A20; + double tmp8 = 0.0; + tmp8 += m_A19 * V[14]; + V[8] = (RHS8 - tmp8) / m_A18; + double tmp7 = 0.0; + tmp7 += m_A17 * V[13]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A13 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[14]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[7]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[4]; + tmp3 += m_A7 * V[7]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// ripoff -static void nl_gcr_aa07266ef5d420d1_11_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A6 += gt[4]; - m_A6 += gt[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A7 += go[4]; - m_A5 += go[5]; - m_A4 += go[6]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A10 += gt[9]; - m_A10 += gt[10]; - m_A10 += gt[11]; - m_A10 += gt[12]; - m_A10 += gt[13]; - m_A10 += gt[14]; - m_A10 += gt[15]; - m_A8 += go[9]; - m_A9 += go[10]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; - RHS3 -= go[14] * *cnV[14]; - RHS3 -= go[15] * *cnV[15]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A8; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A9; - m_A10 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A10; - double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// sundance -static void nl_gcr_ad6dba01ff2425c3_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A4 += go[2]; - m_A3 += go[3]; - m_A3 += go[4]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[7]; - m_A7 += go[8]; - m_A5 += go[9]; - m_A5 += go[10]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[11] * *cnV[11]; - m_A11 += gt[12]; - m_A11 += gt[13]; - m_A11 += gt[14]; - m_A11 += gt[15]; - m_A11 += gt[16]; - m_A10 += go[12]; - m_A10 += go[13]; - m_A9 += go[14]; - m_A8 += go[15]; - double RHS3 = Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 -= go[16] * *cnV[16]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A11 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - m_A7 += m_A4 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; - double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[3]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// rebound -static void nl_gcr_ae15f7f8a55fc96_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[4]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A5 += go[6]; - m_A4 += go[7]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + tmp2 += m_A5 * V[14]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[14]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[14]; V[0] = (RHS0 - tmp0) / m_A0; } -// armora -static void nl_gcr_afcde432efdafb81_56_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// zac1b11142 +static void nl_gcr_cfd3bbf5fbba4765_71_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -24277,70 +53411,85 @@ double m_A53(0.0); double m_A54(0.0); double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A7 += go[9]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - m_A8 += gt[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A2 += gt[12]; + m_A2 += gt[13]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 += Idr[12]; + RHS1 += Idr[13]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + RHS1 -= go[12] * *cnV[12]; + RHS1 -= go[13] * *cnV[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A4 += gt[16]; + m_A5 += go[14]; + double RHS2 = Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 -= go[15] * *cnV[15]; + RHS2 -= go[16] * *cnV[16]; + m_A6 += gt[17]; + m_A6 += gt[18]; + m_A7 += go[17]; + double RHS3 = Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[18] * *cnV[18]; m_A8 += gt[19]; m_A8 += gt[20]; m_A8 += gt[21]; - m_A9 += go[12]; - double RHS4 = Idr[12]; - RHS4 += Idr[13]; - RHS4 += Idr[14]; - RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; + m_A9 += go[19]; + double RHS4 = Idr[19]; RHS4 += Idr[20]; RHS4 += Idr[21]; - RHS4 -= go[13] * *cnV[13]; - RHS4 -= go[14] * *cnV[14]; - RHS4 -= go[15] * *cnV[15]; - RHS4 -= go[16] * *cnV[16]; - RHS4 -= go[17] * *cnV[17]; - RHS4 -= go[18] * *cnV[18]; - RHS4 -= go[19] * *cnV[19]; RHS4 -= go[20] * *cnV[20]; RHS4 -= go[21] * *cnV[21]; m_A10 += gt[22]; @@ -24351,277 +53500,338 @@ RHS5 -= go[23] * *cnV[23]; m_A12 += gt[24]; m_A12 += gt[25]; - m_A14 += go[24]; - m_A13 += go[25]; + m_A12 += gt[26]; + m_A13 += go[24]; double RHS6 = Idr[24]; RHS6 += Idr[25]; - m_A15 += gt[26]; - m_A15 += gt[27]; - m_A17 += go[26]; - m_A16 += go[27]; - double RHS7 = Idr[26]; - RHS7 += Idr[27]; - m_A18 += gt[28]; - m_A18 += gt[29]; - m_A20 += go[28]; - m_A19 += go[29]; - double RHS8 = Idr[28]; - RHS8 += Idr[29]; - m_A21 += gt[30]; - m_A21 += gt[31]; - m_A21 += gt[32]; - m_A21 += gt[33]; - m_A21 += gt[34]; - m_A21 += gt[35]; + RHS6 += Idr[26]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + m_A14 += gt[27]; + m_A14 += gt[28]; + m_A14 += gt[29]; + m_A15 += go[27]; + double RHS7 = Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 -= go[28] * *cnV[28]; + RHS7 -= go[29] * *cnV[29]; + m_A17 += gt[30]; + m_A17 += gt[31]; + m_A17 += gt[32]; + m_A17 += gt[33]; + m_A17 += gt[34]; + m_A17 += gt[35]; + m_A16 += go[30]; + m_A18 += go[31]; + m_A19 += go[32]; + m_A19 += go[33]; + double RHS8 = Idr[30]; + RHS8 += Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 -= go[34] * *cnV[34]; + RHS8 -= go[35] * *cnV[35]; m_A21 += gt[36]; - m_A22 += go[30]; - double RHS9 = Idr[30]; - RHS9 += Idr[31]; - RHS9 += Idr[32]; - RHS9 += Idr[33]; - RHS9 += Idr[34]; - RHS9 += Idr[35]; - RHS9 += Idr[36]; - RHS9 -= go[31] * *cnV[31]; - RHS9 -= go[32] * *cnV[32]; - RHS9 -= go[33] * *cnV[33]; - RHS9 -= go[34] * *cnV[34]; - RHS9 -= go[35] * *cnV[35]; - RHS9 -= go[36] * *cnV[36]; - m_A25 += gt[37]; - m_A25 += gt[38]; - m_A25 += gt[39]; - m_A24 += go[37]; - m_A23 += go[38]; - double RHS10 = Idr[37]; - RHS10 += Idr[38]; - RHS10 += Idr[39]; - RHS10 -= go[39] * *cnV[39]; - m_A28 += gt[40]; - m_A28 += gt[41]; - m_A28 += gt[42]; - m_A28 += gt[43]; - m_A28 += gt[44]; - m_A28 += gt[45]; - m_A28 += gt[46]; - m_A29 += go[40]; - m_A27 += go[41]; - double RHS11 = Idr[40]; - RHS11 += Idr[41]; - RHS11 += Idr[42]; + m_A21 += gt[37]; + m_A21 += gt[38]; + m_A22 += go[36]; + double RHS9 = Idr[36]; + RHS9 += Idr[37]; + RHS9 += Idr[38]; + RHS9 -= go[37] * *cnV[37]; + RHS9 -= go[38] * *cnV[38]; + m_A23 += gt[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A25 += go[39]; + m_A24 += go[40]; + double RHS10 = Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 -= go[41] * *cnV[41]; + m_A27 += gt[42]; + m_A27 += gt[43]; + m_A27 += gt[44]; + m_A27 += gt[45]; + m_A27 += gt[46]; + m_A27 += gt[47]; + m_A26 += go[42]; + m_A29 += go[43]; + m_A29 += go[44]; + double RHS11 = Idr[42]; RHS11 += Idr[43]; RHS11 += Idr[44]; RHS11 += Idr[45]; RHS11 += Idr[46]; - RHS11 -= go[42] * *cnV[42]; - RHS11 -= go[43] * *cnV[43]; - RHS11 -= go[44] * *cnV[44]; + RHS11 += Idr[47]; RHS11 -= go[45] * *cnV[45]; RHS11 -= go[46] * *cnV[46]; - m_A31 += gt[47]; + RHS11 -= go[47] * *cnV[47]; m_A31 += gt[48]; - m_A32 += go[47]; - m_A30 += go[48]; - double RHS12 = Idr[47]; - RHS12 += Idr[48]; - m_A37 += gt[49]; - m_A37 += gt[50]; - m_A37 += gt[51]; - m_A37 += gt[52]; - m_A37 += gt[53]; - m_A36 += go[49]; - m_A35 += go[50]; - m_A34 += go[51]; - m_A33 += go[52]; - double RHS13 = Idr[49]; - RHS13 += Idr[50]; + m_A31 += gt[49]; + m_A32 += go[48]; + m_A30 += go[49]; + double RHS12 = Idr[48]; + RHS12 += Idr[49]; + m_A35 += gt[50]; + m_A35 += gt[51]; + m_A34 += go[50]; + m_A33 += go[51]; + double RHS13 = Idr[50]; RHS13 += Idr[51]; - RHS13 += Idr[52]; - RHS13 += Idr[53]; - RHS13 -= go[53] * *cnV[53]; - m_A42 += gt[54]; - m_A42 += gt[55]; - m_A42 += gt[56]; - m_A42 += gt[57]; - m_A42 += gt[58]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A37 += go[52]; + m_A36 += go[53]; + double RHS14 = Idr[52]; + RHS14 += Idr[53]; + m_A40 += gt[54]; + m_A40 += gt[55]; + m_A40 += gt[56]; + m_A40 += gt[57]; m_A41 += go[54]; - m_A40 += go[55]; - m_A39 += go[56]; - double RHS14 = Idr[54]; - RHS14 += Idr[55]; - RHS14 += Idr[56]; - RHS14 += Idr[57]; - RHS14 += Idr[58]; - RHS14 -= go[57] * *cnV[57]; - RHS14 -= go[58] * *cnV[58]; - m_A45 += gt[59]; - m_A45 += gt[60]; - m_A45 += gt[61]; - m_A45 += gt[62]; - m_A44 += go[59]; - m_A46 += go[60]; - double RHS15 = Idr[59]; - RHS15 += Idr[60]; - RHS15 += Idr[61]; - RHS15 += Idr[62]; - RHS15 -= go[61] * *cnV[61]; - RHS15 -= go[62] * *cnV[62]; - m_A55 += gt[63]; - m_A55 += gt[64]; - m_A55 += gt[65]; - m_A55 += gt[66]; - m_A55 += gt[67]; - m_A55 += gt[68]; - m_A54 += go[63]; + m_A39 += go[55]; + double RHS15 = Idr[54]; + RHS15 += Idr[55]; + RHS15 += Idr[56]; + RHS15 += Idr[57]; + RHS15 -= go[56] * *cnV[56]; + RHS15 -= go[57] * *cnV[57]; + m_A44 += gt[58]; + m_A44 += gt[59]; + m_A43 += go[58]; + m_A42 += go[59]; + double RHS16 = Idr[58]; + RHS16 += Idr[59]; + m_A54 += gt[60]; + m_A54 += gt[61]; + m_A54 += gt[62]; + m_A54 += gt[63]; + m_A54 += gt[64]; + m_A54 += gt[65]; + m_A52 += go[60]; + m_A50 += go[61]; + m_A50 += go[62]; + m_A51 += go[63]; m_A49 += go[64]; - m_A51 += go[65]; - m_A48 += go[66]; - m_A47 += go[67]; - double RHS16 = Idr[63]; - RHS16 += Idr[64]; - RHS16 += Idr[65]; - RHS16 += Idr[66]; - RHS16 += Idr[67]; - RHS16 += Idr[68]; - RHS16 -= go[68] * *cnV[68]; + m_A48 += go[65]; + double RHS17 = Idr[60]; + RHS17 += Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + m_A65 += gt[66]; + m_A65 += gt[67]; + m_A65 += gt[68]; + m_A65 += gt[69]; + m_A65 += gt[70]; + m_A65 += gt[71]; + m_A61 += go[66]; + m_A60 += go[67]; + m_A60 += go[68]; + m_A59 += go[69]; + m_A58 += go[70]; + m_A57 += go[71]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + m_A70 += gt[72]; + m_A70 += gt[73]; + m_A70 += gt[74]; + m_A70 += gt[75]; + m_A68 += go[72]; + m_A67 += go[73]; + double RHS19 = Idr[72]; + RHS19 += Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + RHS19 -= go[74] * *cnV[74]; + RHS19 -= go[75] * *cnV[75]; const double f0 = 1.0 / m_A0; - const double f0_10 = -f0 * m_A23; - m_A25 += m_A1 * f0_10; - RHS10 += f0_10 * RHS0; + const double f0_8 = -f0 * m_A16; + m_A20 += m_A1 * f0_8; + RHS8 += f0_8 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_13 = -f1 * m_A33; - m_A37 += m_A3 * f1_13; - RHS13 += f1_13 * RHS1; + const double f1_11 = -f1 * m_A26; + m_A28 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_13 = -f2 * m_A34; - m_A37 += m_A5 * f2_13; - RHS13 += f2_13 * RHS2; + const double f2_12 = -f2 * m_A30; + m_A31 += m_A5 * f2_12; + RHS12 += f2_12 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_13 = -f3 * m_A35; - m_A37 += m_A7 * f3_13; + const double f3_13 = -f3 * m_A33; + m_A35 += m_A7 * f3_13; RHS13 += f3_13 * RHS3; + const double f3_17 = -f3 * m_A48; + m_A52 += m_A7 * f3_17; + RHS17 += f3_17 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_11 = -f4 * m_A27; - m_A29 += m_A9 * f4_11; - RHS11 += f4_11 * RHS4; - const double f4_14 = -f4 * m_A39; - m_A42 += m_A9 * f4_14; - RHS14 += f4_14 * RHS4; + const double f4_13 = -f4 * m_A34; + m_A35 += m_A9 * f4_13; + RHS13 += f4_13 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_12 = -f5 * m_A30; - m_A31 += m_A11 * f5_12; - RHS12 += f5_12 * RHS5; + const double f5_14 = -f5 * m_A36; + m_A38 += m_A11 * f5_14; + RHS14 += f5_14 * RHS5; + const double f5_18 = -f5 * m_A57; + m_A61 += m_A11 * f5_18; + RHS18 += f5_18 * RHS5; const double f6 = 1.0 / m_A12; - const double f6_10 = -f6 * m_A24; - m_A25 += m_A13 * f6_10; - m_A26 += m_A14 * f6_10; - RHS10 += f6_10 * RHS6; - const double f6_16 = -f6 * m_A47; - m_A50 += m_A13 * f6_16; - m_A55 += m_A14 * f6_16; - RHS16 += f6_16 * RHS6; - const double f7 = 1.0 / m_A15; - const double f7_13 = -f7 * m_A36; - m_A37 += m_A16 * f7_13; - m_A38 += m_A17 * f7_13; - RHS13 += f7_13 * RHS7; - const double f7_16 = -f7 * m_A48; - m_A52 += m_A16 * f7_16; - m_A55 += m_A17 * f7_16; - RHS16 += f7_16 * RHS7; - const double f8 = 1.0 / m_A18; - const double f8_14 = -f8 * m_A40; - m_A42 += m_A19 * f8_14; - m_A43 += m_A20 * f8_14; - RHS14 += f8_14 * RHS8; - const double f8_16 = -f8 * m_A49; - m_A53 += m_A19 * f8_16; - m_A55 += m_A20 * f8_16; + const double f6_14 = -f6 * m_A37; + m_A38 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_17 = -f7 * m_A49; + m_A54 += m_A15 * f7_17; + RHS17 += f7_17 * RHS7; + const double f7_19 = -f7 * m_A67; + m_A68 += m_A15 * f7_19; + RHS19 += f7_19 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_16 = -f8 * m_A42; + m_A44 += m_A18 * f8_16; + m_A45 += m_A19 * f8_16; + m_A47 += m_A20 * f8_16; RHS16 += f8_16 * RHS8; + const double f8_17 = -f8 * m_A50; + m_A53 += m_A18 * f8_17; + m_A54 += m_A19 * f8_17; + m_A56 += m_A20 * f8_17; + RHS17 += f8_17 * RHS8; const double f9 = 1.0 / m_A21; - const double f9_15 = -f9 * m_A44; - m_A46 += m_A22 * f9_15; + const double f9_15 = -f9 * m_A39; + m_A41 += m_A22 * f9_15; RHS15 += f9_15 * RHS9; - const double f10 = 1.0 / m_A25; - const double f10_16 = -f10 * m_A50; - m_A55 += m_A26 * f10_16; + const double f9_18 = -f9 * m_A58; + m_A65 += m_A22 * f9_18; + RHS18 += f9_18 * RHS9; + const double f10 = 1.0 / m_A23; + const double f10_16 = -f10 * m_A43; + m_A44 += m_A24 * f10_16; + m_A46 += m_A25 * f10_16; RHS16 += f10_16 * RHS10; - const double f11 = 1.0 / m_A28; - const double f11_14 = -f11 * m_A41; - m_A42 += m_A29 * f11_14; - RHS14 += f11_14 * RHS11; - const double f12 = 1.0 / m_A31; - const double f12_16 = -f12 * m_A51; - m_A55 += m_A32 * f12_16; - RHS16 += f12_16 * RHS12; - const double f13 = 1.0 / m_A37; - const double f13_16 = -f13 * m_A52; - m_A55 += m_A38 * f13_16; - RHS16 += f13_16 * RHS13; - const double f14 = 1.0 / m_A42; - const double f14_16 = -f14 * m_A53; - m_A55 += m_A43 * f14_16; - RHS16 += f14_16 * RHS14; - const double f15 = 1.0 / m_A45; - const double f15_16 = -f15 * m_A54; - m_A55 += m_A46 * f15_16; - RHS16 += f15_16 * RHS15; - V[16] = RHS16 / m_A55; + const double f10_18 = -f10 * m_A59; + m_A63 += m_A24 * f10_18; + m_A65 += m_A25 * f10_18; + RHS18 += f10_18 * RHS10; + const double f11 = 1.0 / m_A27; + const double f11_18 = -f11 * m_A60; + m_A62 += m_A28 * f11_18; + m_A65 += m_A29 * f11_18; + RHS18 += f11_18 * RHS11; + const double f12 = 1.0 / m_A31; + const double f12_17 = -f12 * m_A51; + m_A54 += m_A32 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A35; + const double f13_17 = -f13 * m_A52; + RHS17 += f13_17 * RHS13; + const double f14 = 1.0 / m_A38; + const double f14_18 = -f14 * m_A61; + RHS18 += f14_18 * RHS14; + const double f15 = 1.0 / m_A40; + const double f15_18 = -f15 * m_A62; + m_A65 += m_A41 * f15_18; + RHS18 += f15_18 * RHS15; + const double f16 = 1.0 / m_A44; + const double f16_17 = -f16 * m_A53; + m_A54 += m_A45 * f16_17; + m_A55 += m_A46 * f16_17; + m_A56 += m_A47 * f16_17; + RHS17 += f16_17 * RHS16; + const double f16_18 = -f16 * m_A63; + m_A64 += m_A45 * f16_18; + m_A65 += m_A46 * f16_18; + m_A66 += m_A47 * f16_18; + RHS18 += f16_18 * RHS16; + const double f17 = 1.0 / m_A54; + const double f17_18 = -f17 * m_A64; + m_A65 += m_A55 * f17_18; + m_A66 += m_A56 * f17_18; + RHS18 += f17_18 * RHS17; + const double f17_19 = -f17 * m_A68; + m_A69 += m_A55 * f17_19; + m_A70 += m_A56 * f17_19; + RHS19 += f17_19 * RHS17; + const double f18 = 1.0 / m_A65; + const double f18_19 = -f18 * m_A69; + m_A70 += m_A66 * f18_19; + RHS19 += f18_19 * RHS18; + V[19] = RHS19 / m_A70; + double tmp18 = 0.0; + tmp18 += m_A66 * V[19]; + V[18] = (RHS18 - tmp18) / m_A65; + double tmp17 = 0.0; + tmp17 += m_A55 * V[18]; + tmp17 += m_A56 * V[19]; + V[17] = (RHS17 - tmp17) / m_A54; + double tmp16 = 0.0; + tmp16 += m_A45 * V[17]; + tmp16 += m_A46 * V[18]; + tmp16 += m_A47 * V[19]; + V[16] = (RHS16 - tmp16) / m_A44; double tmp15 = 0.0; - tmp15 += m_A46 * V[16]; - V[15] = (RHS15 - tmp15) / m_A45; + tmp15 += m_A41 * V[18]; + V[15] = (RHS15 - tmp15) / m_A40; double tmp14 = 0.0; - tmp14 += m_A43 * V[16]; - V[14] = (RHS14 - tmp14) / m_A42; + V[14] = (RHS14 - tmp14) / m_A38; double tmp13 = 0.0; - tmp13 += m_A38 * V[16]; - V[13] = (RHS13 - tmp13) / m_A37; + V[13] = (RHS13 - tmp13) / m_A35; double tmp12 = 0.0; - tmp12 += m_A32 * V[16]; + tmp12 += m_A32 * V[17]; V[12] = (RHS12 - tmp12) / m_A31; double tmp11 = 0.0; - tmp11 += m_A29 * V[14]; - V[11] = (RHS11 - tmp11) / m_A28; + tmp11 += m_A28 * V[15]; + tmp11 += m_A29 * V[18]; + V[11] = (RHS11 - tmp11) / m_A27; double tmp10 = 0.0; - tmp10 += m_A26 * V[16]; - V[10] = (RHS10 - tmp10) / m_A25; + tmp10 += m_A24 * V[16]; + tmp10 += m_A25 * V[18]; + V[10] = (RHS10 - tmp10) / m_A23; double tmp9 = 0.0; - tmp9 += m_A22 * V[16]; + tmp9 += m_A22 * V[18]; V[9] = (RHS9 - tmp9) / m_A21; double tmp8 = 0.0; - tmp8 += m_A19 * V[14]; - tmp8 += m_A20 * V[16]; - V[8] = (RHS8 - tmp8) / m_A18; + tmp8 += m_A18 * V[16]; + tmp8 += m_A19 * V[17]; + tmp8 += m_A20 * V[19]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A16 * V[13]; - tmp7 += m_A17 * V[16]; - V[7] = (RHS7 - tmp7) / m_A15; + tmp7 += m_A15 * V[17]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A13 * V[10]; - tmp6 += m_A14 * V[16]; + tmp6 += m_A13 * V[14]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[12]; + tmp5 += m_A11 * V[14]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; + tmp4 += m_A9 * V[13]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; tmp3 += m_A7 * V[13]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[13]; + tmp2 += m_A5 * V[12]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[13]; + tmp1 += m_A3 * V[15]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[10]; + tmp0 += m_A1 * V[19]; V[0] = (RHS0 - tmp0) / m_A0; } -// mario -static void nl_gcr_afce66fb47d3c5f3_62_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// gunfight +static void nl_gcr_d05b3dbe370c7904_14_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -24640,417 +53850,101 @@ double m_A11(0.0); double m_A12(0.0); double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A1 += go[0]; + m_A0 += gt[2]; + m_A2 += go[0]; + m_A1 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 += Idr[4]; - RHS1 -= go[3] * *cnV[3]; - RHS1 -= go[4] * *cnV[4]; - m_A4 += gt[5]; - m_A4 += gt[6]; - m_A5 += go[5]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - RHS2 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A7 += go[7]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - RHS3 += Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 -= go[8] * *cnV[8]; - RHS3 -= go[9] * *cnV[9]; - RHS3 -= go[10] * *cnV[10]; - RHS3 -= go[11] * *cnV[11]; - RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A8 += gt[19]; - m_A8 += gt[20]; - m_A9 += go[14]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 -= go[15] * *cnV[15]; - RHS4 -= go[16] * *cnV[16]; - RHS4 -= go[17] * *cnV[17]; - RHS4 -= go[18] * *cnV[18]; - RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; - m_A10 += gt[21]; - m_A10 += gt[22]; - m_A12 += go[21]; - m_A11 += go[22]; - double RHS5 = Idr[21]; - RHS5 += Idr[22]; - m_A13 += gt[23]; - m_A13 += gt[24]; - m_A13 += gt[25]; - m_A14 += go[23]; - double RHS6 = Idr[23]; - RHS6 += Idr[24]; - RHS6 += Idr[25]; - RHS6 -= go[24] * *cnV[24]; - RHS6 -= go[25] * *cnV[25]; - m_A15 += gt[26]; - m_A15 += gt[27]; - m_A16 += go[26]; - double RHS7 = Idr[26]; - RHS7 += Idr[27]; - RHS7 -= go[27] * *cnV[27]; - m_A17 += gt[28]; - m_A17 += gt[29]; - m_A17 += gt[30]; - m_A17 += gt[31]; - m_A18 += go[28]; - double RHS8 = Idr[28]; - RHS8 += Idr[29]; - RHS8 += Idr[30]; - RHS8 += Idr[31]; - RHS8 -= go[29] * *cnV[29]; - RHS8 -= go[30] * *cnV[30]; - RHS8 -= go[31] * *cnV[31]; - m_A20 += gt[32]; - m_A20 += gt[33]; - m_A19 += go[32]; - double RHS9 = Idr[32]; - RHS9 += Idr[33]; - RHS9 -= go[33] * *cnV[33]; - m_A22 += gt[34]; - m_A22 += gt[35]; - m_A22 += gt[36]; - m_A22 += gt[37]; - m_A21 += go[34]; - m_A23 += go[35]; - double RHS10 = Idr[34]; - RHS10 += Idr[35]; - RHS10 += Idr[36]; - RHS10 += Idr[37]; - RHS10 -= go[36] * *cnV[36]; - RHS10 -= go[37] * *cnV[37]; - m_A27 += gt[38]; - m_A27 += gt[39]; - m_A27 += gt[40]; - m_A27 += gt[41]; - m_A27 += gt[42]; - m_A24 += go[38]; - m_A25 += go[39]; - m_A28 += go[40]; - double RHS11 = Idr[38]; - RHS11 += Idr[39]; - RHS11 += Idr[40]; - RHS11 += Idr[41]; - RHS11 += Idr[42]; - RHS11 -= go[41] * *cnV[41]; - RHS11 -= go[42] * *cnV[42]; - m_A32 += gt[43]; - m_A32 += gt[44]; - m_A31 += go[43]; - m_A30 += go[44]; - double RHS12 = Idr[43]; - RHS12 += Idr[44]; - m_A34 += gt[45]; - m_A34 += gt[46]; - m_A34 += gt[47]; - m_A34 += gt[48]; - m_A34 += gt[49]; - m_A34 += gt[50]; - m_A33 += go[45]; - m_A37 += go[46]; - m_A36 += go[47]; - double RHS13 = Idr[45]; - RHS13 += Idr[46]; - RHS13 += Idr[47]; - RHS13 += Idr[48]; - RHS13 += Idr[49]; - RHS13 += Idr[50]; - RHS13 -= go[48] * *cnV[48]; - RHS13 -= go[49] * *cnV[49]; - RHS13 -= go[50] * *cnV[50]; - m_A39 += gt[51]; - m_A39 += gt[52]; - m_A39 += gt[53]; - m_A39 += gt[54]; - m_A40 += go[51]; - m_A38 += go[52]; - double RHS14 = Idr[51]; - RHS14 += Idr[52]; - RHS14 += Idr[53]; - RHS14 += Idr[54]; - RHS14 -= go[53] * *cnV[53]; - RHS14 -= go[54] * *cnV[54]; - m_A46 += gt[55]; - m_A46 += gt[56]; - m_A46 += gt[57]; - m_A46 += gt[58]; - m_A46 += gt[59]; - m_A44 += go[55]; - m_A45 += go[56]; - m_A43 += go[57]; - m_A42 += go[58]; - m_A41 += go[59]; - double RHS15 = Idr[55]; - RHS15 += Idr[56]; - RHS15 += Idr[57]; - RHS15 += Idr[58]; - RHS15 += Idr[59]; - m_A53 += gt[60]; - m_A53 += gt[61]; - m_A53 += gt[62]; - m_A53 += gt[63]; - m_A50 += go[60]; - m_A54 += go[61]; - m_A48 += go[62]; - double RHS16 = Idr[60]; - RHS16 += Idr[61]; - RHS16 += Idr[62]; - RHS16 += Idr[63]; - RHS16 -= go[63] * *cnV[63]; - m_A61 += gt[64]; - m_A61 += gt[65]; - m_A61 += gt[66]; - m_A61 += gt[67]; - m_A61 += gt[68]; - m_A57 += go[64]; - m_A58 += go[65]; - m_A60 += go[66]; - m_A55 += go[67]; - m_A56 += go[68]; - double RHS17 = Idr[64]; - RHS17 += Idr[65]; - RHS17 += Idr[66]; - RHS17 += Idr[67]; - RHS17 += Idr[68]; - const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A19; - m_A20 += m_A1 * f0_9; - RHS9 += f0_9 * RHS0; - const double f0_15 = -f0 * m_A41; - m_A44 += m_A1 * f0_15; - RHS15 += f0_15 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_10 = -f1 * m_A21; - m_A23 += m_A3 * f1_10; - RHS10 += f1_10 * RHS1; - const double f1_15 = -f1 * m_A42; - m_A46 += m_A3 * f1_15; - RHS15 += f1_15 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_15 = -f2 * m_A43; - m_A46 += m_A5 * f2_15; - RHS15 += f2_15 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_11 = -f3 * m_A24; - m_A26 += m_A7 * f3_11; - RHS11 += f3_11 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_13 = -f4 * m_A33; - m_A35 += m_A9 * f4_13; - RHS13 += f4_13 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_11 = -f5 * m_A25; - m_A27 += m_A11 * f5_11; - m_A29 += m_A12 * f5_11; - RHS11 += f5_11 * RHS5; - const double f5_16 = -f5 * m_A48; - m_A49 += m_A11 * f5_16; - m_A53 += m_A12 * f5_16; - RHS16 += f5_16 * RHS5; - const double f6 = 1.0 / m_A13; - const double f6_14 = -f6 * m_A38; - m_A40 += m_A14 * f6_14; - RHS14 += f6_14 * RHS6; - const double f6_17 = -f6 * m_A55; - m_A61 += m_A14 * f6_17; - RHS17 += f6_17 * RHS6; - const double f7 = 1.0 / m_A15; - const double f7_12 = -f7 * m_A30; - m_A32 += m_A16 * f7_12; - RHS12 += f7_12 * RHS7; - const double f7_17 = -f7 * m_A56; - m_A57 += m_A16 * f7_17; - RHS17 += f7_17 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_12 = -f8 * m_A31; - m_A32 += m_A18 * f8_12; - RHS12 += f8_12 * RHS8; - const double f9 = 1.0 / m_A20; - const double f9_15 = -f9 * m_A44; - RHS15 += f9_15 * RHS9; - const double f10 = 1.0 / m_A22; - const double f10_11 = -f10 * m_A26; - m_A28 += m_A23 * f10_11; - RHS11 += f10_11 * RHS10; - const double f11 = 1.0 / m_A27; - const double f11_15 = -f11 * m_A45; - m_A46 += m_A28 * f11_15; - m_A47 += m_A29 * f11_15; - RHS15 += f11_15 * RHS11; - const double f11_16 = -f11 * m_A49; - m_A52 += m_A28 * f11_16; - m_A53 += m_A29 * f11_16; - RHS16 += f11_16 * RHS11; - const double f12 = 1.0 / m_A32; - const double f12_17 = -f12 * m_A57; - RHS17 += f12_17 * RHS12; - const double f13 = 1.0 / m_A34; - const double f13_16 = -f13 * m_A50; - m_A51 += m_A35 * f13_16; - m_A53 += m_A36 * f13_16; - m_A54 += m_A37 * f13_16; - RHS16 += f13_16 * RHS13; - const double f13_17 = -f13 * m_A58; - m_A59 += m_A35 * f13_17; - m_A60 += m_A36 * f13_17; - m_A61 += m_A37 * f13_17; - RHS17 += f13_17 * RHS13; - const double f14 = 1.0 / m_A39; - const double f14_16 = -f14 * m_A51; - m_A54 += m_A40 * f14_16; - RHS16 += f14_16 * RHS14; - const double f14_17 = -f14 * m_A59; - m_A61 += m_A40 * f14_17; - RHS17 += f14_17 * RHS14; - const double f15 = 1.0 / m_A46; - const double f15_16 = -f15 * m_A52; - m_A53 += m_A47 * f15_16; - RHS16 += f15_16 * RHS15; - const double f16 = 1.0 / m_A53; - const double f16_17 = -f16 * m_A60; - m_A61 += m_A54 * f16_17; - RHS17 += f16_17 * RHS16; - V[17] = RHS17 / m_A61; - double tmp16 = 0.0; - tmp16 += m_A54 * V[17]; - V[16] = (RHS16 - tmp16) / m_A53; - double tmp15 = 0.0; - tmp15 += m_A47 * V[16]; - V[15] = (RHS15 - tmp15) / m_A46; - double tmp14 = 0.0; - tmp14 += m_A40 * V[17]; - V[14] = (RHS14 - tmp14) / m_A39; - double tmp13 = 0.0; - tmp13 += m_A35 * V[14]; - tmp13 += m_A36 * V[16]; - tmp13 += m_A37 * V[17]; - V[13] = (RHS13 - tmp13) / m_A34; - double tmp12 = 0.0; - V[12] = (RHS12 - tmp12) / m_A32; - double tmp11 = 0.0; - tmp11 += m_A28 * V[15]; - tmp11 += m_A29 * V[16]; - V[11] = (RHS11 - tmp11) / m_A27; - double tmp10 = 0.0; - tmp10 += m_A23 * V[15]; - V[10] = (RHS10 - tmp10) / m_A22; - double tmp9 = 0.0; - V[9] = (RHS9 - tmp9) / m_A20; - double tmp8 = 0.0; - tmp8 += m_A18 * V[12]; - V[8] = (RHS8 - tmp8) / m_A17; - double tmp7 = 0.0; - tmp7 += m_A16 * V[12]; - V[7] = (RHS7 - tmp7) / m_A15; - double tmp6 = 0.0; - tmp6 += m_A14 * V[17]; - V[6] = (RHS6 - tmp6) / m_A13; - double tmp5 = 0.0; - tmp5 += m_A11 * V[11]; - tmp5 += m_A12 * V[16]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[10]; - V[3] = (RHS3 - tmp3) / m_A6; + RHS0 += Idr[2]; + RHS0 -= go[2] * *cnV[2]; + m_A4 += gt[3]; + m_A4 += gt[4]; + m_A3 += go[3]; + m_A6 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + m_A9 += gt[5]; + m_A9 += gt[6]; + m_A9 += gt[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A7 += go[5]; + m_A10 += go[6]; + m_A10 += go[7]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A12 += go[14]; + m_A12 += go[15]; + m_A11 += go[16]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + const double f0 = 1.0 / m_A0; + const double f0_1 = -f0 * m_A3; + m_A4 += m_A1 * f0_1; + m_A5 += m_A2 * f0_1; + RHS1 += f0_1 * RHS0; + const double f0_2 = -f0 * m_A7; + m_A8 += m_A1 * f0_2; + m_A9 += m_A2 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A4; + const double f1_2 = -f1 * m_A8; + m_A9 += m_A5 * f1_2; + m_A10 += m_A6 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A11; + m_A12 += m_A5 * f1_3; + m_A13 += m_A6 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A9; + const double f2_3 = -f2 * m_A12; + m_A13 += m_A10 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A13; double tmp2 = 0.0; - tmp2 += m_A5 * V[15]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A10 * V[3]; + V[2] = (RHS2 - tmp2) / m_A9; double tmp1 = 0.0; - tmp1 += m_A3 * V[15]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A5 * V[2]; + tmp1 += m_A6 * V[3]; + V[1] = (RHS1 - tmp1) / m_A4; double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; + tmp0 += m_A1 * V[1]; + tmp0 += m_A2 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// spacewar -static void nl_gcr_b09deef9a25aecaf_24_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// barrier +static void nl_gcr_d06bd7ddbfd17b5e_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -25070,15 +53964,6 @@ double m_A12(0.0); double m_A13(0.0); double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -25087,124 +53972,70 @@ RHS0 -= go[1] * *cnV[1]; m_A2 += gt[2]; m_A2 += gt[3]; - m_A3 += go[2]; + m_A4 += go[2]; + m_A3 += go[3]; double RHS1 = Idr[2]; RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A5 += go[4]; + m_A5 += gt[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A6 += go[4]; double RHS2 = Idr[4]; RHS2 += Idr[5]; + RHS2 += Idr[6]; RHS2 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A7 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - RHS3 -= go[7] * *cnV[7]; - m_A8 += gt[8]; - m_A8 += gt[9]; - m_A9 += go[8]; - double RHS4 = Idr[8]; - RHS4 += Idr[9]; - RHS4 -= go[9] * *cnV[9]; - m_A10 += gt[10]; - m_A10 += gt[11]; - m_A10 += gt[12]; - m_A12 += go[10]; - m_A11 += go[11]; - double RHS5 = Idr[10]; - RHS5 += Idr[11]; - RHS5 += Idr[12]; - RHS5 -= go[12] * *cnV[12]; - m_A19 += gt[13]; - m_A19 += gt[14]; - m_A19 += gt[15]; - m_A19 += gt[16]; - m_A19 += gt[17]; - m_A19 += gt[18]; - m_A17 += go[13]; - m_A16 += go[14]; - m_A15 += go[15]; - m_A14 += go[16]; - m_A13 += go[17]; - m_A18 += go[18]; - double RHS6 = Idr[13]; - RHS6 += Idr[14]; - RHS6 += Idr[15]; - RHS6 += Idr[16]; - RHS6 += Idr[17]; - RHS6 += Idr[18]; - m_A23 += gt[19]; - m_A23 += gt[20]; - m_A23 += gt[21]; - m_A21 += go[19]; - double RHS7 = Idr[19]; - RHS7 += Idr[20]; - RHS7 += Idr[21]; - RHS7 -= go[20] * *cnV[20]; - RHS7 -= go[21] * *cnV[21]; + RHS2 -= go[6] * *cnV[6]; + m_A9 += gt[7]; + m_A9 += gt[8]; + m_A7 += go[7]; + m_A8 += go[8]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + m_A14 += gt[9]; + m_A14 += gt[10]; + m_A12 += go[9]; + m_A11 += go[10]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; const double f0 = 1.0 / m_A0; - const double f0_6 = -f0 * m_A13; - m_A19 += m_A1 * f0_6; - RHS6 += f0_6 * RHS0; + const double f0_3 = -f0 * m_A7; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A14; - m_A19 += m_A3 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A15; - m_A19 += m_A5 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A16; - m_A19 += m_A7 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_6 = -f4 * m_A17; - m_A19 += m_A9 * f4_6; - RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_6 = -f5 * m_A18; - m_A19 += m_A11 * f5_6; - m_A20 += m_A12 * f5_6; - RHS6 += f5_6 * RHS5; - const double f5_7 = -f5 * m_A21; - m_A22 += m_A11 * f5_7; - m_A23 += m_A12 * f5_7; - RHS7 += f5_7 * RHS5; - const double f6 = 1.0 / m_A19; - const double f6_7 = -f6 * m_A22; - m_A23 += m_A20 * f6_7; - RHS7 += f6_7 * RHS6; - V[7] = RHS7 / m_A23; - double tmp6 = 0.0; - tmp6 += m_A20 * V[7]; - V[6] = (RHS6 - tmp6) / m_A19; - double tmp5 = 0.0; - tmp5 += m_A11 * V[6]; - tmp5 += m_A12 * V[7]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[6]; - V[4] = (RHS4 - tmp4) / m_A8; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A3 * f1_3; + m_A10 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A11; + m_A13 += m_A3 * f1_4; + m_A14 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A14; double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[4]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[6]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// breakout -static void nl_gcr_b66ff415b228d5f8_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// elim +static void nl_gcr_d13f9c6838af6aeb_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -25219,65 +54050,287 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[3]; m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[4]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A5 += go[6]; - double RHS2 = Idr[6]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A6 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; RHS2 += Idr[7]; + RHS2 += Idr[8]; RHS2 -= go[7] * *cnV[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; - m_A9 += gt[10]; - m_A8 += go[8]; - m_A7 += go[9]; - m_A6 += go[10]; - double RHS3 = Idr[8]; - RHS3 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A8 += gt[11]; + m_A9 += go[9]; + m_A7 += go[10]; + double RHS3 = Idr[9]; RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A11 += go[12]; + m_A10 += go[13]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A6; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; + m_A8 += m_A3 * f1_3; RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A5 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A9 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; + double tmp3 = 0.0; + tmp3 += m_A9 * V[4]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[4]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// starcas -static void nl_gcr_b7344e05aac90017_65_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// elim +static void nl_gcr_d190a0e3b8e1f4a7_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A6 += gt[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A5 += go[4]; + m_A4 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// elim +static void nl_gcr_d224211d1af6811d_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A0 += gt[7]; + m_A0 += gt[8]; + m_A0 += gt[9]; + m_A0 += gt[10]; + m_A0 += gt[11]; + m_A0 += gt[12]; + m_A0 += gt[13]; + m_A0 += gt[14]; + m_A0 += gt[15]; + m_A0 += gt[16]; + m_A0 += gt[17]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 += Idr[7]; + RHS0 += Idr[8]; + RHS0 += Idr[9]; + RHS0 += Idr[10]; + RHS0 += Idr[11]; + RHS0 += Idr[12]; + RHS0 += Idr[13]; + RHS0 += Idr[14]; + RHS0 += Idr[15]; + RHS0 += Idr[16]; + RHS0 += Idr[17]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + RHS0 -= go[7] * *cnV[7]; + RHS0 -= go[8] * *cnV[8]; + RHS0 -= go[9] * *cnV[9]; + RHS0 -= go[10] * *cnV[10]; + RHS0 -= go[11] * *cnV[11]; + RHS0 -= go[12] * *cnV[12]; + RHS0 -= go[13] * *cnV[13]; + RHS0 -= go[14] * *cnV[14]; + RHS0 -= go[15] * *cnV[15]; + RHS0 -= go[16] * *cnV[16]; + RHS0 -= go[17] * *cnV[17]; + m_A2 += gt[18]; + m_A2 += gt[19]; + m_A2 += gt[20]; + m_A2 += gt[21]; + m_A2 += gt[22]; + m_A4 += go[18]; + m_A3 += go[19]; + double RHS1 = Idr[18]; + RHS1 += Idr[19]; + RHS1 += Idr[20]; + RHS1 += Idr[21]; + RHS1 += Idr[22]; + RHS1 -= go[20] * *cnV[20]; + RHS1 -= go[21] * *cnV[21]; + RHS1 -= go[22] * *cnV[22]; + m_A7 += gt[23]; + m_A7 += gt[24]; + m_A7 += gt[25]; + m_A6 += go[23]; + m_A5 += go[24]; + double RHS2 = Idr[23]; + RHS2 += Idr[24]; + RHS2 += Idr[25]; + RHS2 -= go[25] * *cnV[25]; + m_A11 += gt[26]; + m_A11 += gt[27]; + m_A11 += gt[28]; + m_A11 += gt[29]; + m_A11 += gt[30]; + m_A11 += gt[31]; + m_A11 += gt[32]; + m_A10 += go[26]; + m_A9 += go[27]; + double RHS3 = Idr[26]; + RHS3 += Idr[27]; + RHS3 += Idr[28]; + RHS3 += Idr[29]; + RHS3 += Idr[30]; + RHS3 += Idr[31]; + RHS3 += Idr[32]; + RHS3 -= go[28] * *cnV[28]; + RHS3 -= go[29] * *cnV[29]; + RHS3 -= go[30] * *cnV[30]; + RHS3 -= go[31] * *cnV[31]; + RHS3 -= go[32] * *cnV[32]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A7 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f0_3 = -f0 * m_A9; + m_A10 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A6; + m_A7 += m_A3 * f1_2; + m_A8 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A8 * V[3]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// armora +static void nl_gcr_d27a39bc93616187_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -25327,59 +54380,39 @@ double m_A42(0.0); double m_A43(0.0); double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; - m_A0 += gt[4]; - m_A3 += go[0]; - m_A2 += go[1]; - m_A1 += go[2]; + m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; - RHS0 += Idr[4]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - m_A4 += gt[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A5 += go[5]; - double RHS1 = Idr[5]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A5 += go[4]; + m_A4 += go[5]; + m_A4 += go[6]; + m_A3 += go[7]; + m_A3 += go[8]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; RHS1 += Idr[8]; RHS1 += Idr[9]; RHS1 += Idr[10]; RHS1 += Idr[11]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; RHS1 -= go[9] * *cnV[9]; RHS1 -= go[10] * *cnV[10]; RHS1 -= go[11] * *cnV[11]; @@ -25387,336 +54420,388 @@ m_A6 += gt[13]; m_A6 += gt[14]; m_A6 += gt[15]; - m_A6 += gt[16]; - m_A10 += go[12]; - m_A9 += go[13]; - m_A8 += go[14]; - m_A7 += go[15]; + m_A7 += go[12]; double RHS2 = Idr[12]; RHS2 += Idr[13]; RHS2 += Idr[14]; RHS2 += Idr[15]; - RHS2 += Idr[16]; - RHS2 -= go[16] * *cnV[16]; - m_A11 += gt[17]; - m_A11 += gt[18]; - m_A11 += gt[19]; - m_A12 += go[17]; - double RHS3 = Idr[17]; + RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[14] * *cnV[14]; + RHS2 -= go[15] * *cnV[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A10 += go[16]; + m_A9 += go[17]; + double RHS3 = Idr[16]; + RHS3 += Idr[17]; RHS3 += Idr[18]; - RHS3 += Idr[19]; RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A13 += gt[20]; - m_A13 += gt[21]; - m_A13 += gt[22]; - m_A13 += gt[23]; - m_A13 += gt[24]; - m_A13 += gt[25]; - m_A14 += go[20]; - m_A15 += go[21]; - m_A16 += go[22]; - m_A16 += go[23]; - double RHS4 = Idr[20]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A11 += gt[23]; + m_A11 += gt[24]; + m_A11 += gt[25]; + m_A11 += gt[26]; + m_A14 += go[19]; + m_A13 += go[20]; + m_A13 += go[21]; + m_A12 += go[22]; + m_A12 += go[23]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; RHS4 += Idr[21]; RHS4 += Idr[22]; RHS4 += Idr[23]; RHS4 += Idr[24]; RHS4 += Idr[25]; + RHS4 += Idr[26]; RHS4 -= go[24] * *cnV[24]; RHS4 -= go[25] * *cnV[25]; - m_A17 += gt[26]; + RHS4 -= go[26] * *cnV[26]; m_A17 += gt[27]; m_A17 += gt[28]; m_A17 += gt[29]; - m_A19 += go[26]; - m_A18 += go[27]; - double RHS5 = Idr[26]; - RHS5 += Idr[27]; + m_A17 += gt[30]; + m_A17 += gt[31]; + m_A17 += gt[32]; + m_A16 += go[27]; + m_A16 += go[28]; + m_A15 += go[29]; + double RHS5 = Idr[27]; RHS5 += Idr[28]; RHS5 += Idr[29]; - RHS5 -= go[28] * *cnV[28]; - RHS5 -= go[29] * *cnV[29]; - m_A22 += gt[30]; - m_A22 += gt[31]; - m_A22 += gt[32]; + RHS5 += Idr[30]; + RHS5 += Idr[31]; + RHS5 += Idr[32]; + RHS5 -= go[30] * *cnV[30]; + RHS5 -= go[31] * *cnV[31]; + RHS5 -= go[32] * *cnV[32]; m_A22 += gt[33]; - m_A21 += go[30]; - m_A20 += go[31]; - double RHS6 = Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 += Idr[33]; - RHS6 -= go[32] * *cnV[32]; - RHS6 -= go[33] * *cnV[33]; - m_A29 += gt[34]; - m_A29 += gt[35]; - m_A29 += gt[36]; - m_A29 += gt[37]; - m_A27 += go[34]; - m_A26 += go[35]; - double RHS7 = Idr[34]; - RHS7 += Idr[35]; - RHS7 += Idr[36]; - RHS7 += Idr[37]; - RHS7 -= go[36] * *cnV[36]; - RHS7 -= go[37] * *cnV[37]; - m_A36 += gt[38]; - m_A36 += gt[39]; - m_A36 += gt[40]; - m_A36 += gt[41]; - m_A33 += go[38]; - m_A32 += go[39]; - double RHS8 = Idr[38]; - RHS8 += Idr[39]; - RHS8 += Idr[40]; - RHS8 += Idr[41]; - RHS8 -= go[40] * *cnV[40]; - RHS8 -= go[41] * *cnV[41]; - m_A43 += gt[42]; - m_A43 += gt[43]; - m_A43 += gt[44]; - m_A43 += gt[45]; - m_A43 += gt[46]; - m_A38 += go[42]; - m_A44 += go[43]; - m_A39 += go[44]; - double RHS9 = Idr[42]; - RHS9 += Idr[43]; - RHS9 += Idr[44]; - RHS9 += Idr[45]; - RHS9 += Idr[46]; - RHS9 -= go[45] * *cnV[45]; - RHS9 -= go[46] * *cnV[46]; - m_A46 += gt[47]; - m_A46 += gt[48]; - m_A46 += gt[49]; - m_A46 += gt[50]; - m_A46 += gt[51]; - m_A46 += gt[52]; - m_A46 += gt[53]; - m_A45 += go[47]; - m_A47 += go[48]; - double RHS10 = Idr[47]; - RHS10 += Idr[48]; - RHS10 += Idr[49]; - RHS10 += Idr[50]; - RHS10 += Idr[51]; - RHS10 += Idr[52]; - RHS10 += Idr[53]; - RHS10 -= go[49] * *cnV[49]; - RHS10 -= go[50] * *cnV[50]; - RHS10 -= go[51] * *cnV[51]; - RHS10 -= go[52] * *cnV[52]; - RHS10 -= go[53] * *cnV[53]; - m_A51 += gt[54]; - m_A51 += gt[55]; - m_A51 += gt[56]; - m_A49 += go[54]; - m_A48 += go[55]; - double RHS11 = Idr[54]; - RHS11 += Idr[55]; - RHS11 += Idr[56]; - RHS11 -= go[56] * *cnV[56]; - m_A56 += gt[57]; - m_A56 += gt[58]; - m_A54 += go[57]; - double RHS12 = Idr[57]; - RHS12 += Idr[58]; - RHS12 -= go[58] * *cnV[58]; - m_A64 += gt[59]; - m_A64 += gt[60]; - m_A64 += gt[61]; - m_A64 += gt[62]; - m_A59 += go[59]; - m_A59 += go[60]; - m_A58 += go[61]; - m_A60 += go[62]; - double RHS13 = Idr[59]; - RHS13 += Idr[60]; - RHS13 += Idr[61]; - RHS13 += Idr[62]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A22 += gt[37]; + m_A22 += gt[38]; + m_A21 += go[33]; + m_A21 += go[34]; + m_A20 += go[35]; + double RHS6 = Idr[33]; + RHS6 += Idr[34]; + RHS6 += Idr[35]; + RHS6 += Idr[36]; + RHS6 += Idr[37]; + RHS6 += Idr[38]; + RHS6 -= go[36] * *cnV[36]; + RHS6 -= go[37] * *cnV[37]; + RHS6 -= go[38] * *cnV[38]; + m_A27 += gt[39]; + m_A27 += gt[40]; + m_A27 += gt[41]; + m_A27 += gt[42]; + m_A27 += gt[43]; + m_A28 += go[39]; + m_A28 += go[40]; + m_A25 += go[41]; + m_A25 += go[42]; + double RHS7 = Idr[39]; + RHS7 += Idr[40]; + RHS7 += Idr[41]; + RHS7 += Idr[42]; + RHS7 += Idr[43]; + RHS7 -= go[43] * *cnV[43]; + m_A31 += gt[44]; + m_A31 += gt[45]; + m_A31 += gt[46]; + m_A31 += gt[47]; + m_A31 += gt[48]; + m_A32 += go[44]; + m_A32 += go[45]; + m_A29 += go[46]; + m_A29 += go[47]; + double RHS8 = Idr[44]; + RHS8 += Idr[45]; + RHS8 += Idr[46]; + RHS8 += Idr[47]; + RHS8 += Idr[48]; + RHS8 -= go[48] * *cnV[48]; + m_A37 += gt[49]; + m_A37 += gt[50]; + m_A37 += gt[51]; + m_A37 += gt[52]; + m_A37 += gt[53]; + m_A34 += go[49]; + m_A36 += go[50]; + m_A36 += go[51]; + m_A33 += go[52]; + double RHS9 = Idr[49]; + RHS9 += Idr[50]; + RHS9 += Idr[51]; + RHS9 += Idr[52]; + RHS9 += Idr[53]; + RHS9 -= go[53] * *cnV[53]; + m_A44 += gt[54]; + m_A44 += gt[55]; + m_A44 += gt[56]; + m_A44 += gt[57]; + m_A44 += gt[58]; + m_A42 += go[54]; + m_A42 += go[55]; + m_A40 += go[56]; + m_A39 += go[57]; + double RHS10 = Idr[54]; + RHS10 += Idr[55]; + RHS10 += Idr[56]; + RHS10 += Idr[57]; + RHS10 += Idr[58]; + RHS10 -= go[58] * *cnV[58]; const double f0 = 1.0 / m_A0; - const double f0_6 = -f0 * m_A20; - m_A22 += m_A1 * f0_6; - m_A23 += m_A2 * f0_6; - m_A24 += m_A3 * f0_6; - RHS6 += f0_6 * RHS0; - const double f0_7 = -f0 * m_A26; - m_A28 += m_A1 * f0_7; - m_A29 += m_A2 * f0_7; - m_A30 += m_A3 * f0_7; - RHS7 += f0_7 * RHS0; - const double f0_8 = -f0 * m_A32; - m_A34 += m_A1 * f0_8; - m_A35 += m_A2 * f0_8; - m_A36 += m_A3 * f0_8; - RHS8 += f0_8 * RHS0; - const double f1 = 1.0 / m_A4; - const double f1_9 = -f1 * m_A38; - m_A39 += m_A5 * f1_9; + const double f0_5 = -f0 * m_A15; + m_A17 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A16; + m_A17 += m_A3 * f1_5; + m_A18 += m_A4 * f1_5; + m_A19 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f1_7 = -f1 * m_A25; + m_A26 += m_A3 * f1_7; + m_A27 += m_A4 * f1_7; + m_A28 += m_A5 * f1_7; + RHS7 += f1_7 * RHS1; + const double f1_9 = -f1 * m_A33; + m_A35 += m_A3 * f1_9; + m_A36 += m_A4 * f1_9; + m_A37 += m_A5 * f1_9; RHS9 += f1_9 * RHS1; const double f2 = 1.0 / m_A6; - const double f2_6 = -f2 * m_A21; + const double f2_6 = -f2 * m_A20; m_A22 += m_A7 * f2_6; - m_A23 += m_A8 * f2_6; - m_A24 += m_A9 * f2_6; - m_A25 += m_A10 * f2_6; RHS6 += f2_6 * RHS2; - const double f2_7 = -f2 * m_A27; - m_A28 += m_A7 * f2_7; - m_A29 += m_A8 * f2_7; - m_A30 += m_A9 * f2_7; - m_A31 += m_A10 * f2_7; - RHS7 += f2_7 * RHS2; - const double f2_8 = -f2 * m_A33; - m_A34 += m_A7 * f2_8; - m_A35 += m_A8 * f2_8; - m_A36 += m_A9 * f2_8; - m_A37 += m_A10 * f2_8; - RHS8 += f2_8 * RHS2; - const double f2_9 = -f2 * m_A39; - m_A40 += m_A7 * f2_9; - m_A41 += m_A8 * f2_9; - m_A42 += m_A9 * f2_9; - m_A43 += m_A10 * f2_9; - RHS9 += f2_9 * RHS2; - const double f3 = 1.0 / m_A11; - const double f3_10 = -f3 * m_A45; - m_A47 += m_A12 * f3_10; + const double f3 = 1.0 / m_A8; + const double f3_9 = -f3 * m_A34; + m_A37 += m_A9 * f3_9; + m_A38 += m_A10 * f3_9; + RHS9 += f3_9 * RHS3; + const double f3_10 = -f3 * m_A39; + m_A43 += m_A9 * f3_10; + m_A44 += m_A10 * f3_10; RHS10 += f3_10 * RHS3; - const double f3_13 = -f3 * m_A58; - m_A64 += m_A12 * f3_13; - RHS13 += f3_13 * RHS3; - const double f4 = 1.0 / m_A13; - const double f4_11 = -f4 * m_A48; - m_A50 += m_A14 * f4_11; - m_A51 += m_A15 * f4_11; - m_A53 += m_A16 * f4_11; - RHS11 += f4_11 * RHS4; - const double f4_13 = -f4 * m_A59; - m_A61 += m_A14 * f4_13; - m_A62 += m_A15 * f4_13; - m_A64 += m_A16 * f4_13; - RHS13 += f4_13 * RHS4; + const double f4 = 1.0 / m_A11; + const double f4_6 = -f4 * m_A21; + m_A22 += m_A12 * f4_6; + m_A23 += m_A13 * f4_6; + m_A24 += m_A14 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_8 = -f4 * m_A29; + m_A30 += m_A12 * f4_8; + m_A31 += m_A13 * f4_8; + m_A32 += m_A14 * f4_8; + RHS8 += f4_8 * RHS4; + const double f4_10 = -f4 * m_A40; + m_A41 += m_A12 * f4_10; + m_A42 += m_A13 * f4_10; + m_A44 += m_A14 * f4_10; + RHS10 += f4_10 * RHS4; const double f5 = 1.0 / m_A17; - const double f5_11 = -f5 * m_A49; - m_A51 += m_A18 * f5_11; - m_A52 += m_A19 * f5_11; - RHS11 += f5_11 * RHS5; - const double f5_12 = -f5 * m_A54; - m_A55 += m_A18 * f5_12; - m_A56 += m_A19 * f5_12; - RHS12 += f5_12 * RHS5; + const double f5_7 = -f5 * m_A26; + m_A27 += m_A18 * f5_7; + m_A28 += m_A19 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_9 = -f5 * m_A35; + m_A36 += m_A18 * f5_9; + m_A37 += m_A19 * f5_9; + RHS9 += f5_9 * RHS5; const double f6 = 1.0 / m_A22; - const double f6_7 = -f6 * m_A28; - m_A29 += m_A23 * f6_7; - m_A30 += m_A24 * f6_7; - m_A31 += m_A25 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A34; - m_A35 += m_A23 * f6_8; - m_A36 += m_A24 * f6_8; - m_A37 += m_A25 * f6_8; + const double f6_8 = -f6 * m_A30; + m_A31 += m_A23 * f6_8; + m_A32 += m_A24 * f6_8; RHS8 += f6_8 * RHS6; - const double f6_9 = -f6 * m_A40; - m_A41 += m_A23 * f6_9; - m_A42 += m_A24 * f6_9; - m_A43 += m_A25 * f6_9; - RHS9 += f6_9 * RHS6; - const double f7 = 1.0 / m_A29; - const double f7_8 = -f7 * m_A35; - m_A36 += m_A30 * f7_8; - m_A37 += m_A31 * f7_8; - RHS8 += f7_8 * RHS7; - const double f7_9 = -f7 * m_A41; - m_A42 += m_A30 * f7_9; - m_A43 += m_A31 * f7_9; + const double f6_10 = -f6 * m_A41; + m_A42 += m_A23 * f6_10; + m_A44 += m_A24 * f6_10; + RHS10 += f6_10 * RHS6; + const double f7 = 1.0 / m_A27; + const double f7_9 = -f7 * m_A36; + m_A37 += m_A28 * f7_9; RHS9 += f7_9 * RHS7; - const double f8 = 1.0 / m_A36; - const double f8_9 = -f8 * m_A42; - m_A43 += m_A37 * f8_9; - RHS9 += f8_9 * RHS8; - const double f9 = 1.0 / m_A43; - const double f9_13 = -f9 * m_A60; - m_A64 += m_A44 * f9_13; - RHS13 += f9_13 * RHS9; - const double f10 = 1.0 / m_A46; - const double f10_11 = -f10 * m_A50; - m_A53 += m_A47 * f10_11; - RHS11 += f10_11 * RHS10; - const double f10_13 = -f10 * m_A61; - m_A64 += m_A47 * f10_13; - RHS13 += f10_13 * RHS10; - const double f11 = 1.0 / m_A51; - const double f11_12 = -f11 * m_A55; - m_A56 += m_A52 * f11_12; - m_A57 += m_A53 * f11_12; - RHS12 += f11_12 * RHS11; - const double f11_13 = -f11 * m_A62; - m_A63 += m_A52 * f11_13; - m_A64 += m_A53 * f11_13; - RHS13 += f11_13 * RHS11; - const double f12 = 1.0 / m_A56; - const double f12_13 = -f12 * m_A63; - m_A64 += m_A57 * f12_13; - RHS13 += f12_13 * RHS12; - V[13] = RHS13 / m_A64; - double tmp12 = 0.0; - tmp12 += m_A57 * V[13]; - V[12] = (RHS12 - tmp12) / m_A56; - double tmp11 = 0.0; - tmp11 += m_A52 * V[12]; - tmp11 += m_A53 * V[13]; - V[11] = (RHS11 - tmp11) / m_A51; - double tmp10 = 0.0; - tmp10 += m_A47 * V[13]; - V[10] = (RHS10 - tmp10) / m_A46; + const double f8 = 1.0 / m_A31; + const double f8_10 = -f8 * m_A42; + m_A44 += m_A32 * f8_10; + RHS10 += f8_10 * RHS8; + const double f9 = 1.0 / m_A37; + const double f9_10 = -f9 * m_A43; + m_A44 += m_A38 * f9_10; + RHS10 += f9_10 * RHS9; + V[10] = RHS10 / m_A44; double tmp9 = 0.0; - tmp9 += m_A44 * V[13]; - V[9] = (RHS9 - tmp9) / m_A43; + tmp9 += m_A38 * V[10]; + V[9] = (RHS9 - tmp9) / m_A37; double tmp8 = 0.0; - tmp8 += m_A37 * V[9]; - V[8] = (RHS8 - tmp8) / m_A36; + tmp8 += m_A32 * V[10]; + V[8] = (RHS8 - tmp8) / m_A31; double tmp7 = 0.0; - tmp7 += m_A30 * V[8]; - tmp7 += m_A31 * V[9]; - V[7] = (RHS7 - tmp7) / m_A29; + tmp7 += m_A28 * V[9]; + V[7] = (RHS7 - tmp7) / m_A27; double tmp6 = 0.0; - tmp6 += m_A23 * V[7]; - tmp6 += m_A24 * V[8]; - tmp6 += m_A25 * V[9]; + tmp6 += m_A23 * V[8]; + tmp6 += m_A24 * V[10]; V[6] = (RHS6 - tmp6) / m_A22; double tmp5 = 0.0; - tmp5 += m_A18 * V[11]; - tmp5 += m_A19 * V[12]; + tmp5 += m_A18 * V[7]; + tmp5 += m_A19 * V[9]; V[5] = (RHS5 - tmp5) / m_A17; double tmp4 = 0.0; - tmp4 += m_A14 * V[10]; - tmp4 += m_A15 * V[11]; - tmp4 += m_A16 * V[13]; - V[4] = (RHS4 - tmp4) / m_A13; + tmp4 += m_A12 * V[6]; + tmp4 += m_A13 * V[8]; + tmp4 += m_A14 * V[10]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A9 * V[9]; + tmp3 += m_A10 * V[10]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A7 * V[6]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[5]; + tmp1 += m_A4 * V[7]; + tmp1 += m_A5 * V[9]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// elim +static void nl_gcr_d2ea3f267b959e8b_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + m_A2 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[2] * *cnV[2]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A4 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A7 += go[5]; + m_A6 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + m_A10 += gt[7]; + m_A10 += gt[8]; + m_A10 += gt[9]; + m_A9 += go[7]; + m_A8 += go[8]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A15 += gt[10]; + m_A15 += gt[11]; + m_A15 += gt[12]; + m_A13 += go[10]; + m_A12 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + m_A19 += gt[13]; + m_A19 += gt[14]; + m_A19 += gt[15]; + m_A17 += go[13]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[14] * *cnV[14]; + RHS5 -= go[15] * *cnV[15]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + m_A11 += m_A2 * f0_3; + RHS3 += f0_3 * RHS0; + const double f0_4 = -f0 * m_A12; + m_A14 += m_A1 * f0_4; + m_A15 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A13; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A17; + m_A18 += m_A6 * f2_5; + m_A19 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A11 * f3_4; + RHS4 += f3_4 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A16 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A19; + double tmp4 = 0.0; + tmp4 += m_A16 * V[5]; + V[4] = (RHS4 - tmp4) / m_A15; double tmp3 = 0.0; - tmp3 += m_A12 * V[13]; - V[3] = (RHS3 - tmp3) / m_A11; + tmp3 += m_A11 * V[4]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A7 * V[6]; - tmp2 += m_A8 * V[7]; - tmp2 += m_A9 * V[8]; - tmp2 += m_A10 * V[9]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A5 * V[2]; - V[1] = (RHS1 - tmp1) / m_A4; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[6]; - tmp0 += m_A2 * V[7]; - tmp0 += m_A3 * V[8]; + tmp0 += m_A1 * V[3]; + tmp0 += m_A2 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_b8d6d148a50bdb8f_55_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starfire +static void nl_gcr_d32effa2b0ea54a1_438_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -25776,342 +54861,2768 @@ double m_A52(0.0); double m_A53(0.0); double m_A54(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A2 += gt[11]; - m_A5 += go[4]; - m_A4 += go[5]; - m_A4 += go[6]; - m_A3 += go[7]; - m_A3 += go[8]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 += Idr[11]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - RHS1 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A8 += go[12]; - m_A7 += go[13]; - double RHS2 = Idr[12]; - RHS2 += Idr[13]; - RHS2 += Idr[14]; - RHS2 -= go[14] * *cnV[14]; - m_A9 += gt[15]; - m_A9 += gt[16]; - m_A9 += gt[17]; - m_A9 += gt[18]; - m_A10 += go[15]; - double RHS3 = Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 -= go[16] * *cnV[16]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - m_A11 += gt[19]; - m_A11 += gt[20]; - m_A11 += gt[21]; - m_A11 += gt[22]; - m_A11 += gt[23]; - m_A11 += gt[24]; - m_A11 += gt[25]; - m_A11 += gt[26]; - m_A14 += go[19]; - m_A13 += go[20]; - m_A13 += go[21]; - m_A12 += go[22]; - m_A12 += go[23]; - double RHS4 = Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 += Idr[25]; - RHS4 += Idr[26]; - RHS4 -= go[24] * *cnV[24]; - RHS4 -= go[25] * *cnV[25]; - RHS4 -= go[26] * *cnV[26]; - m_A15 += gt[27]; - m_A15 += gt[28]; - m_A15 += gt[29]; - m_A17 += go[27]; - m_A16 += go[28]; - double RHS5 = Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 -= go[29] * *cnV[29]; - m_A20 += gt[30]; - m_A20 += gt[31]; - m_A20 += gt[32]; - m_A20 += gt[33]; - m_A20 += gt[34]; - m_A20 += gt[35]; - m_A19 += go[30]; - m_A19 += go[31]; - m_A18 += go[32]; - double RHS6 = Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 += Idr[33]; - RHS6 += Idr[34]; - RHS6 += Idr[35]; - RHS6 -= go[33] * *cnV[33]; - RHS6 -= go[34] * *cnV[34]; - RHS6 -= go[35] * *cnV[35]; - m_A25 += gt[36]; - m_A25 += gt[37]; - m_A25 += gt[38]; - m_A25 += gt[39]; - m_A25 += gt[40]; - m_A26 += go[36]; - m_A26 += go[37]; - m_A23 += go[38]; - m_A23 += go[39]; - double RHS7 = Idr[36]; - RHS7 += Idr[37]; - RHS7 += Idr[38]; - RHS7 += Idr[39]; - RHS7 += Idr[40]; - RHS7 -= go[40] * *cnV[40]; - m_A29 += gt[41]; - m_A29 += gt[42]; - m_A29 += gt[43]; - m_A29 += gt[44]; - m_A29 += gt[45]; - m_A29 += gt[46]; - m_A28 += go[41]; - m_A28 += go[42]; - m_A27 += go[43]; - double RHS8 = Idr[41]; - RHS8 += Idr[42]; - RHS8 += Idr[43]; - RHS8 += Idr[44]; - RHS8 += Idr[45]; - RHS8 += Idr[46]; - RHS8 -= go[44] * *cnV[44]; - RHS8 -= go[45] * *cnV[45]; - RHS8 -= go[46] * *cnV[46]; - m_A34 += gt[47]; - m_A34 += gt[48]; - m_A34 += gt[49]; - m_A34 += gt[50]; - m_A34 += gt[51]; - m_A35 += go[47]; - m_A35 += go[48]; - m_A32 += go[49]; - m_A32 += go[50]; - double RHS9 = Idr[47]; - RHS9 += Idr[48]; - RHS9 += Idr[49]; - RHS9 += Idr[50]; - RHS9 += Idr[51]; - RHS9 -= go[51] * *cnV[51]; - m_A38 += gt[52]; - m_A38 += gt[53]; - m_A38 += gt[54]; - m_A37 += go[52]; - m_A36 += go[53]; - double RHS10 = Idr[52]; - RHS10 += Idr[53]; - RHS10 += Idr[54]; - RHS10 -= go[54] * *cnV[54]; + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); + double m_A198(0.0); + double m_A199(0.0); + double m_A200(0.0); + double m_A201(0.0); + double m_A202(0.0); + double m_A203(0.0); + double m_A204(0.0); + double m_A205(0.0); + double m_A206(0.0); + double m_A207(0.0); + double m_A208(0.0); + double m_A209(0.0); + double m_A210(0.0); + double m_A211(0.0); + double m_A212(0.0); + double m_A213(0.0); + double m_A214(0.0); + double m_A215(0.0); + double m_A216(0.0); + double m_A217(0.0); + double m_A218(0.0); + double m_A219(0.0); + double m_A220(0.0); + double m_A221(0.0); + double m_A222(0.0); + double m_A223(0.0); + double m_A224(0.0); + double m_A225(0.0); + double m_A226(0.0); + double m_A227(0.0); + double m_A228(0.0); + double m_A229(0.0); + double m_A230(0.0); + double m_A231(0.0); + double m_A232(0.0); + double m_A233(0.0); + double m_A234(0.0); + double m_A235(0.0); + double m_A236(0.0); + double m_A237(0.0); + double m_A238(0.0); + double m_A239(0.0); + double m_A240(0.0); + double m_A241(0.0); + double m_A242(0.0); + double m_A243(0.0); + double m_A244(0.0); + double m_A245(0.0); + double m_A246(0.0); + double m_A247(0.0); + double m_A248(0.0); + double m_A249(0.0); + double m_A250(0.0); + double m_A251(0.0); + double m_A252(0.0); + double m_A253(0.0); + double m_A254(0.0); + double m_A255(0.0); + double m_A256(0.0); + double m_A257(0.0); + double m_A258(0.0); + double m_A259(0.0); + double m_A260(0.0); + double m_A261(0.0); + double m_A262(0.0); + double m_A263(0.0); + double m_A264(0.0); + double m_A265(0.0); + double m_A266(0.0); + double m_A267(0.0); + double m_A268(0.0); + double m_A269(0.0); + double m_A270(0.0); + double m_A271(0.0); + double m_A272(0.0); + double m_A273(0.0); + double m_A274(0.0); + double m_A275(0.0); + double m_A276(0.0); + double m_A277(0.0); + double m_A278(0.0); + double m_A279(0.0); + double m_A280(0.0); + double m_A281(0.0); + double m_A282(0.0); + double m_A283(0.0); + double m_A284(0.0); + double m_A285(0.0); + double m_A286(0.0); + double m_A287(0.0); + double m_A288(0.0); + double m_A289(0.0); + double m_A290(0.0); + double m_A291(0.0); + double m_A292(0.0); + double m_A293(0.0); + double m_A294(0.0); + double m_A295(0.0); + double m_A296(0.0); + double m_A297(0.0); + double m_A298(0.0); + double m_A299(0.0); + double m_A300(0.0); + double m_A301(0.0); + double m_A302(0.0); + double m_A303(0.0); + double m_A304(0.0); + double m_A305(0.0); + double m_A306(0.0); + double m_A307(0.0); + double m_A308(0.0); + double m_A309(0.0); + double m_A310(0.0); + double m_A311(0.0); + double m_A312(0.0); + double m_A313(0.0); + double m_A314(0.0); + double m_A315(0.0); + double m_A316(0.0); + double m_A317(0.0); + double m_A318(0.0); + double m_A319(0.0); + double m_A320(0.0); + double m_A321(0.0); + double m_A322(0.0); + double m_A323(0.0); + double m_A324(0.0); + double m_A325(0.0); + double m_A326(0.0); + double m_A327(0.0); + double m_A328(0.0); + double m_A329(0.0); + double m_A330(0.0); + double m_A331(0.0); + double m_A332(0.0); + double m_A333(0.0); + double m_A334(0.0); + double m_A335(0.0); + double m_A336(0.0); + double m_A337(0.0); + double m_A338(0.0); + double m_A339(0.0); + double m_A340(0.0); + double m_A341(0.0); + double m_A342(0.0); + double m_A343(0.0); + double m_A344(0.0); + double m_A345(0.0); + double m_A346(0.0); + double m_A347(0.0); + double m_A348(0.0); + double m_A349(0.0); + double m_A350(0.0); + double m_A351(0.0); + double m_A352(0.0); + double m_A353(0.0); + double m_A354(0.0); + double m_A355(0.0); + double m_A356(0.0); + double m_A357(0.0); + double m_A358(0.0); + double m_A359(0.0); + double m_A360(0.0); + double m_A361(0.0); + double m_A362(0.0); + double m_A363(0.0); + double m_A364(0.0); + double m_A365(0.0); + double m_A366(0.0); + double m_A367(0.0); + double m_A368(0.0); + double m_A369(0.0); + double m_A370(0.0); + double m_A371(0.0); + double m_A372(0.0); + double m_A373(0.0); + double m_A374(0.0); + double m_A375(0.0); + double m_A376(0.0); + double m_A377(0.0); + double m_A378(0.0); + double m_A379(0.0); + double m_A380(0.0); + double m_A381(0.0); + double m_A382(0.0); + double m_A383(0.0); + double m_A384(0.0); + double m_A385(0.0); + double m_A386(0.0); + double m_A387(0.0); + double m_A388(0.0); + double m_A389(0.0); + double m_A390(0.0); + double m_A391(0.0); + double m_A392(0.0); + double m_A393(0.0); + double m_A394(0.0); + double m_A395(0.0); + double m_A396(0.0); + double m_A397(0.0); + double m_A398(0.0); + double m_A399(0.0); + double m_A400(0.0); + double m_A401(0.0); + double m_A402(0.0); + double m_A403(0.0); + double m_A404(0.0); + double m_A405(0.0); + double m_A406(0.0); + double m_A407(0.0); + double m_A408(0.0); + double m_A409(0.0); + double m_A410(0.0); + double m_A411(0.0); + double m_A412(0.0); + double m_A413(0.0); + double m_A414(0.0); + double m_A415(0.0); + double m_A416(0.0); + double m_A417(0.0); + double m_A418(0.0); + double m_A419(0.0); + double m_A420(0.0); + double m_A421(0.0); + double m_A422(0.0); + double m_A423(0.0); + double m_A424(0.0); + double m_A425(0.0); + double m_A426(0.0); + double m_A427(0.0); + double m_A428(0.0); + double m_A429(0.0); + double m_A430(0.0); + double m_A431(0.0); + double m_A432(0.0); + double m_A433(0.0); + double m_A434(0.0); + double m_A435(0.0); + double m_A436(0.0); + double m_A437(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A7 += go[4]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A11 += go[10]; + m_A12 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + m_A13 += gt[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A14 += go[13]; + m_A15 += go[14]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[15] * *cnV[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A17 += go[16]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 -= go[17] * *cnV[17]; + m_A18 += gt[18]; + m_A18 += gt[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A22 += go[18]; + m_A21 += go[19]; + m_A20 += go[20]; + m_A19 += go[21]; + double RHS7 = Idr[18]; + RHS7 += Idr[19]; + RHS7 += Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[22] * *cnV[22]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; + m_A23 += gt[25]; + m_A23 += gt[26]; + m_A23 += gt[27]; + m_A23 += gt[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A27 += go[25]; + m_A26 += go[26]; + m_A25 += go[27]; + m_A24 += go[28]; + double RHS8 = Idr[25]; + RHS8 += Idr[26]; + RHS8 += Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + m_A28 += gt[32]; + m_A28 += gt[33]; + m_A29 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[33] * *cnV[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A31 += go[34]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; + RHS10 -= go[35] * *cnV[35]; + m_A32 += gt[36]; + m_A32 += gt[37]; + m_A32 += gt[38]; + m_A32 += gt[39]; + m_A33 += go[36]; + m_A34 += go[37]; + double RHS11 = Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + m_A35 += gt[40]; + m_A35 += gt[41]; + m_A35 += gt[42]; + m_A36 += go[40]; + m_A37 += go[41]; + double RHS12 = Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 -= go[42] * *cnV[42]; + m_A38 += gt[43]; + m_A38 += gt[44]; + m_A38 += gt[45]; + m_A39 += go[43]; + double RHS13 = Idr[43]; + RHS13 += Idr[44]; + RHS13 += Idr[45]; + RHS13 -= go[44] * *cnV[44]; + RHS13 -= go[45] * *cnV[45]; + m_A40 += gt[46]; + m_A40 += gt[47]; + m_A40 += gt[48]; + m_A42 += go[46]; + m_A41 += go[47]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 -= go[48] * *cnV[48]; + m_A43 += gt[49]; + m_A43 += gt[50]; + m_A43 += gt[51]; + m_A44 += go[49]; + m_A45 += go[50]; + double RHS15 = Idr[49]; + RHS15 += Idr[50]; + RHS15 += Idr[51]; + RHS15 -= go[51] * *cnV[51]; + m_A46 += gt[52]; + m_A46 += gt[53]; + m_A46 += gt[54]; m_A46 += gt[55]; m_A46 += gt[56]; m_A46 += gt[57]; m_A46 += gt[58]; - m_A42 += go[55]; - m_A44 += go[56]; - m_A44 += go[57]; - m_A41 += go[58]; - double RHS11 = Idr[55]; - RHS11 += Idr[56]; - RHS11 += Idr[57]; - RHS11 += Idr[58]; - m_A54 += gt[59]; - m_A54 += gt[60]; - m_A54 += gt[61]; - m_A54 += gt[62]; - m_A49 += go[59]; - m_A51 += go[60]; - m_A51 += go[61]; - m_A48 += go[62]; - double RHS12 = Idr[59]; - RHS12 += Idr[60]; - RHS12 += Idr[61]; - RHS12 += Idr[62]; + m_A50 += go[52]; + m_A49 += go[53]; + m_A47 += go[54]; + m_A48 += go[55]; + double RHS16 = Idr[52]; + RHS16 += Idr[53]; + RHS16 += Idr[54]; + RHS16 += Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; + RHS16 += Idr[58]; + RHS16 -= go[56] * *cnV[56]; + RHS16 -= go[57] * *cnV[57]; + RHS16 -= go[58] * *cnV[58]; + m_A51 += gt[59]; + m_A51 += gt[60]; + m_A51 += gt[61]; + m_A52 += go[59]; + double RHS17 = Idr[59]; + RHS17 += Idr[60]; + RHS17 += Idr[61]; + RHS17 -= go[60] * *cnV[60]; + RHS17 -= go[61] * *cnV[61]; + m_A53 += gt[62]; + m_A53 += gt[63]; + m_A53 += gt[64]; + m_A55 += go[62]; + m_A54 += go[63]; + double RHS18 = Idr[62]; + RHS18 += Idr[63]; + RHS18 += Idr[64]; + RHS18 -= go[64] * *cnV[64]; + m_A56 += gt[65]; + m_A56 += gt[66]; + m_A56 += gt[67]; + m_A57 += go[65]; + double RHS19 = Idr[65]; + RHS19 += Idr[66]; + RHS19 += Idr[67]; + RHS19 -= go[66] * *cnV[66]; + RHS19 -= go[67] * *cnV[67]; + m_A58 += gt[68]; + m_A58 += gt[69]; + m_A58 += gt[70]; + m_A59 += go[68]; + double RHS20 = Idr[68]; + RHS20 += Idr[69]; + RHS20 += Idr[70]; + RHS20 -= go[69] * *cnV[69]; + RHS20 -= go[70] * *cnV[70]; + m_A60 += gt[71]; + m_A60 += gt[72]; + m_A61 += go[71]; + double RHS21 = Idr[71]; + RHS21 += Idr[72]; + RHS21 -= go[72] * *cnV[72]; + m_A62 += gt[73]; + m_A62 += gt[74]; + m_A62 += gt[75]; + m_A63 += go[73]; + double RHS22 = Idr[73]; + RHS22 += Idr[74]; + RHS22 += Idr[75]; + RHS22 -= go[74] * *cnV[74]; + RHS22 -= go[75] * *cnV[75]; + m_A64 += gt[76]; + m_A64 += gt[77]; + m_A65 += go[76]; + double RHS23 = Idr[76]; + RHS23 += Idr[77]; + RHS23 -= go[77] * *cnV[77]; + m_A66 += gt[78]; + m_A66 += gt[79]; + m_A66 += gt[80]; + m_A67 += go[78]; + double RHS24 = Idr[78]; + RHS24 += Idr[79]; + RHS24 += Idr[80]; + RHS24 -= go[79] * *cnV[79]; + RHS24 -= go[80] * *cnV[80]; + m_A68 += gt[81]; + m_A68 += gt[82]; + m_A69 += go[81]; + double RHS25 = Idr[81]; + RHS25 += Idr[82]; + RHS25 -= go[82] * *cnV[82]; + m_A70 += gt[83]; + m_A70 += gt[84]; + m_A70 += gt[85]; + m_A70 += gt[86]; + m_A72 += go[83]; + m_A71 += go[84]; + m_A71 += go[85]; + double RHS26 = Idr[83]; + RHS26 += Idr[84]; + RHS26 += Idr[85]; + RHS26 += Idr[86]; + RHS26 -= go[86] * *cnV[86]; + m_A73 += gt[87]; + m_A73 += gt[88]; + m_A73 += gt[89]; + m_A73 += gt[90]; + m_A73 += gt[91]; + m_A73 += gt[92]; + m_A73 += gt[93]; + m_A74 += go[87]; + m_A75 += go[88]; + double RHS27 = Idr[87]; + RHS27 += Idr[88]; + RHS27 += Idr[89]; + RHS27 += Idr[90]; + RHS27 += Idr[91]; + RHS27 += Idr[92]; + RHS27 += Idr[93]; + RHS27 -= go[89] * *cnV[89]; + RHS27 -= go[90] * *cnV[90]; + RHS27 -= go[91] * *cnV[91]; + RHS27 -= go[92] * *cnV[92]; + RHS27 -= go[93] * *cnV[93]; + m_A76 += gt[94]; + m_A76 += gt[95]; + m_A78 += go[94]; + m_A77 += go[95]; + double RHS28 = Idr[94]; + RHS28 += Idr[95]; + m_A79 += gt[96]; + m_A79 += gt[97]; + m_A79 += gt[98]; + m_A79 += gt[99]; + m_A79 += gt[100]; + m_A79 += gt[101]; + m_A79 += gt[102]; + m_A80 += go[96]; + double RHS29 = Idr[96]; + RHS29 += Idr[97]; + RHS29 += Idr[98]; + RHS29 += Idr[99]; + RHS29 += Idr[100]; + RHS29 += Idr[101]; + RHS29 += Idr[102]; + RHS29 -= go[97] * *cnV[97]; + RHS29 -= go[98] * *cnV[98]; + RHS29 -= go[99] * *cnV[99]; + RHS29 -= go[100] * *cnV[100]; + RHS29 -= go[101] * *cnV[101]; + RHS29 -= go[102] * *cnV[102]; + m_A81 += gt[103]; + m_A81 += gt[104]; + m_A81 += gt[105]; + m_A81 += gt[106]; + m_A82 += go[103]; + m_A83 += go[104]; + double RHS30 = Idr[103]; + RHS30 += Idr[104]; + RHS30 += Idr[105]; + RHS30 += Idr[106]; + RHS30 -= go[105] * *cnV[105]; + RHS30 -= go[106] * *cnV[106]; + m_A84 += gt[107]; + m_A84 += gt[108]; + m_A85 += go[107]; + double RHS31 = Idr[107]; + RHS31 += Idr[108]; + RHS31 -= go[108] * *cnV[108]; + m_A86 += gt[109]; + m_A86 += gt[110]; + m_A86 += gt[111]; + m_A86 += gt[112]; + m_A86 += gt[113]; + m_A86 += gt[114]; + m_A86 += gt[115]; + m_A88 += go[109]; + m_A87 += go[110]; + double RHS32 = Idr[109]; + RHS32 += Idr[110]; + RHS32 += Idr[111]; + RHS32 += Idr[112]; + RHS32 += Idr[113]; + RHS32 += Idr[114]; + RHS32 += Idr[115]; + RHS32 -= go[111] * *cnV[111]; + RHS32 -= go[112] * *cnV[112]; + RHS32 -= go[113] * *cnV[113]; + RHS32 -= go[114] * *cnV[114]; + RHS32 -= go[115] * *cnV[115]; + m_A89 += gt[116]; + m_A89 += gt[117]; + m_A90 += go[116]; + double RHS33 = Idr[116]; + RHS33 += Idr[117]; + RHS33 -= go[117] * *cnV[117]; + m_A91 += gt[118]; + m_A91 += gt[119]; + m_A91 += gt[120]; + m_A91 += gt[121]; + m_A93 += go[118]; + m_A92 += go[119]; + double RHS34 = Idr[118]; + RHS34 += Idr[119]; + RHS34 += Idr[120]; + RHS34 += Idr[121]; + RHS34 -= go[120] * *cnV[120]; + RHS34 -= go[121] * *cnV[121]; + m_A94 += gt[122]; + m_A94 += gt[123]; + m_A94 += gt[124]; + m_A94 += gt[125]; + m_A94 += gt[126]; + m_A94 += gt[127]; + m_A94 += gt[128]; + m_A95 += go[122]; + double RHS35 = Idr[122]; + RHS35 += Idr[123]; + RHS35 += Idr[124]; + RHS35 += Idr[125]; + RHS35 += Idr[126]; + RHS35 += Idr[127]; + RHS35 += Idr[128]; + RHS35 -= go[123] * *cnV[123]; + RHS35 -= go[124] * *cnV[124]; + RHS35 -= go[125] * *cnV[125]; + RHS35 -= go[126] * *cnV[126]; + RHS35 -= go[127] * *cnV[127]; + RHS35 -= go[128] * *cnV[128]; + m_A96 += gt[129]; + m_A96 += gt[130]; + m_A96 += gt[131]; + m_A97 += go[129]; + m_A98 += go[130]; + double RHS36 = Idr[129]; + RHS36 += Idr[130]; + RHS36 += Idr[131]; + RHS36 -= go[131] * *cnV[131]; + m_A99 += gt[132]; + m_A99 += gt[133]; + m_A99 += gt[134]; + m_A99 += gt[135]; + m_A100 += go[132]; + m_A101 += go[133]; + double RHS37 = Idr[132]; + RHS37 += Idr[133]; + RHS37 += Idr[134]; + RHS37 += Idr[135]; + RHS37 -= go[134] * *cnV[134]; + RHS37 -= go[135] * *cnV[135]; + m_A102 += gt[136]; + m_A102 += gt[137]; + m_A102 += gt[138]; + m_A102 += gt[139]; + m_A103 += go[136]; + m_A104 += go[137]; + double RHS38 = Idr[136]; + RHS38 += Idr[137]; + RHS38 += Idr[138]; + RHS38 += Idr[139]; + RHS38 -= go[138] * *cnV[138]; + RHS38 -= go[139] * *cnV[139]; + m_A105 += gt[140]; + m_A105 += gt[141]; + m_A105 += gt[142]; + m_A107 += go[140]; + m_A106 += go[141]; + double RHS39 = Idr[140]; + RHS39 += Idr[141]; + RHS39 += Idr[142]; + RHS39 -= go[142] * *cnV[142]; + m_A108 += gt[143]; + m_A108 += gt[144]; + m_A108 += gt[145]; + m_A110 += go[143]; + m_A109 += go[144]; + double RHS40 = Idr[143]; + RHS40 += Idr[144]; + RHS40 += Idr[145]; + RHS40 -= go[145] * *cnV[145]; + m_A111 += gt[146]; + m_A111 += gt[147]; + m_A111 += gt[148]; + m_A112 += go[146]; + m_A113 += go[147]; + double RHS41 = Idr[146]; + RHS41 += Idr[147]; + RHS41 += Idr[148]; + RHS41 -= go[148] * *cnV[148]; + m_A114 += gt[149]; + m_A114 += gt[150]; + m_A114 += gt[151]; + m_A114 += gt[152]; + m_A116 += go[149]; + m_A114 += go[150]; + m_A114 += go[151]; + m_A115 += go[152]; + double RHS42 = Idr[149]; + RHS42 += Idr[150]; + RHS42 += Idr[151]; + RHS42 += Idr[152]; + m_A117 += gt[153]; + m_A117 += gt[154]; + m_A117 += gt[155]; + m_A117 += gt[156]; + m_A119 += go[153]; + m_A117 += go[154]; + m_A117 += go[155]; + m_A118 += go[156]; + double RHS43 = Idr[153]; + RHS43 += Idr[154]; + RHS43 += Idr[155]; + RHS43 += Idr[156]; + m_A120 += gt[157]; + m_A120 += gt[158]; + m_A120 += gt[159]; + m_A120 += gt[160]; + m_A122 += go[157]; + m_A120 += go[158]; + m_A120 += go[159]; + m_A121 += go[160]; + double RHS44 = Idr[157]; + RHS44 += Idr[158]; + RHS44 += Idr[159]; + RHS44 += Idr[160]; + m_A123 += gt[161]; + m_A123 += gt[162]; + m_A123 += gt[163]; + m_A124 += go[161]; + m_A125 += go[162]; + double RHS45 = Idr[161]; + RHS45 += Idr[162]; + RHS45 += Idr[163]; + RHS45 -= go[163] * *cnV[163]; + m_A128 += gt[164]; + m_A128 += gt[165]; + m_A128 += gt[166]; + m_A128 += gt[167]; + m_A127 += go[164]; + m_A126 += go[165]; + double RHS46 = Idr[164]; + RHS46 += Idr[165]; + RHS46 += Idr[166]; + RHS46 += Idr[167]; + RHS46 -= go[166] * *cnV[166]; + RHS46 -= go[167] * *cnV[167]; + m_A134 += gt[168]; + m_A134 += gt[169]; + m_A134 += gt[170]; + m_A134 += gt[171]; + m_A132 += go[168]; + m_A131 += go[169]; + double RHS47 = Idr[168]; + RHS47 += Idr[169]; + RHS47 += Idr[170]; + RHS47 += Idr[171]; + RHS47 -= go[170] * *cnV[170]; + RHS47 -= go[171] * *cnV[171]; + m_A141 += gt[172]; + m_A141 += gt[173]; + m_A141 += gt[174]; + m_A140 += go[172]; + m_A139 += go[173]; + double RHS48 = Idr[172]; + RHS48 += Idr[173]; + RHS48 += Idr[174]; + RHS48 -= go[174] * *cnV[174]; + m_A145 += gt[175]; + m_A145 += gt[176]; + m_A145 += gt[177]; + m_A144 += go[175]; + m_A143 += go[176]; + double RHS49 = Idr[175]; + RHS49 += Idr[176]; + RHS49 += Idr[177]; + RHS49 -= go[177] * *cnV[177]; + m_A148 += gt[178]; + m_A148 += gt[179]; + m_A148 += gt[180]; + m_A147 += go[178]; + m_A149 += go[179]; + double RHS50 = Idr[178]; + RHS50 += Idr[179]; + RHS50 += Idr[180]; + RHS50 -= go[180] * *cnV[180]; + m_A152 += gt[181]; + m_A152 += gt[182]; + m_A152 += gt[183]; + m_A152 += gt[184]; + m_A150 += go[181]; + m_A151 += go[182]; + m_A153 += go[183]; + double RHS51 = Idr[181]; + RHS51 += Idr[182]; + RHS51 += Idr[183]; + RHS51 += Idr[184]; + RHS51 -= go[184] * *cnV[184]; + m_A157 += gt[185]; + m_A157 += gt[186]; + m_A157 += gt[187]; + m_A156 += go[185]; + m_A155 += go[186]; + m_A154 += go[187]; + double RHS52 = Idr[185]; + RHS52 += Idr[186]; + RHS52 += Idr[187]; + m_A160 += gt[188]; + m_A160 += gt[189]; + m_A160 += gt[190]; + m_A160 += gt[191]; + m_A161 += go[188]; + m_A159 += go[189]; + double RHS53 = Idr[188]; + RHS53 += Idr[189]; + RHS53 += Idr[190]; + RHS53 += Idr[191]; + RHS53 -= go[190] * *cnV[190]; + RHS53 -= go[191] * *cnV[191]; + m_A166 += gt[192]; + m_A166 += gt[193]; + m_A166 += gt[194]; + m_A166 += gt[195]; + m_A168 += go[192]; + m_A163 += go[193]; + m_A162 += go[194]; + double RHS54 = Idr[192]; + RHS54 += Idr[193]; + RHS54 += Idr[194]; + RHS54 += Idr[195]; + RHS54 -= go[195] * *cnV[195]; + m_A173 += gt[196]; + m_A173 += gt[197]; + m_A173 += gt[198]; + m_A173 += gt[199]; + m_A173 += gt[200]; + m_A173 += gt[201]; + m_A173 += gt[202]; + m_A174 += go[196]; + m_A171 += go[197]; + double RHS55 = Idr[196]; + RHS55 += Idr[197]; + RHS55 += Idr[198]; + RHS55 += Idr[199]; + RHS55 += Idr[200]; + RHS55 += Idr[201]; + RHS55 += Idr[202]; + RHS55 -= go[198] * *cnV[198]; + RHS55 -= go[199] * *cnV[199]; + RHS55 -= go[200] * *cnV[200]; + RHS55 -= go[201] * *cnV[201]; + RHS55 -= go[202] * *cnV[202]; + m_A180 += gt[203]; + m_A180 += gt[204]; + m_A180 += gt[205]; + m_A180 += gt[206]; + m_A180 += gt[207]; + m_A180 += gt[208]; + m_A184 += go[203]; + m_A177 += go[204]; + m_A176 += go[205]; + m_A175 += go[206]; + m_A182 += go[207]; + double RHS56 = Idr[203]; + RHS56 += Idr[204]; + RHS56 += Idr[205]; + RHS56 += Idr[206]; + RHS56 += Idr[207]; + RHS56 += Idr[208]; + RHS56 -= go[208] * *cnV[208]; + m_A188 += gt[209]; + m_A188 += gt[210]; + m_A188 += gt[211]; + m_A188 += gt[212]; + m_A188 += gt[213]; + m_A188 += gt[214]; + m_A185 += go[209]; + m_A187 += go[210]; + m_A186 += go[211]; + double RHS57 = Idr[209]; + RHS57 += Idr[210]; + RHS57 += Idr[211]; + RHS57 += Idr[212]; + RHS57 += Idr[213]; + RHS57 += Idr[214]; + RHS57 -= go[212] * *cnV[212]; + RHS57 -= go[213] * *cnV[213]; + RHS57 -= go[214] * *cnV[214]; + m_A191 += gt[215]; + m_A191 += gt[216]; + m_A191 += gt[217]; + m_A190 += go[215]; + m_A192 += go[216]; + double RHS58 = Idr[215]; + RHS58 += Idr[216]; + RHS58 += Idr[217]; + RHS58 -= go[217] * *cnV[217]; + m_A193 += gt[218]; + m_A193 += gt[219]; + m_A193 += gt[220]; + m_A193 += gt[221]; + m_A195 += go[218]; + m_A193 += go[219]; + m_A193 += go[220]; + m_A194 += go[221]; + double RHS59 = Idr[218]; + RHS59 += Idr[219]; + RHS59 += Idr[220]; + RHS59 += Idr[221]; + m_A197 += gt[222]; + m_A197 += gt[223]; + m_A197 += gt[224]; + m_A197 += gt[225]; + m_A197 += gt[226]; + m_A197 += gt[227]; + m_A197 += gt[228]; + m_A201 += go[222]; + m_A200 += go[223]; + m_A199 += go[224]; + m_A196 += go[225]; + double RHS60 = Idr[222]; + RHS60 += Idr[223]; + RHS60 += Idr[224]; + RHS60 += Idr[225]; + RHS60 += Idr[226]; + RHS60 += Idr[227]; + RHS60 += Idr[228]; + RHS60 -= go[226] * *cnV[226]; + RHS60 -= go[227] * *cnV[227]; + RHS60 -= go[228] * *cnV[228]; + m_A203 += gt[229]; + m_A203 += gt[230]; + m_A203 += gt[231]; + m_A202 += go[229]; + m_A204 += go[230]; + double RHS61 = Idr[229]; + RHS61 += Idr[230]; + RHS61 += Idr[231]; + RHS61 -= go[231] * *cnV[231]; + m_A207 += gt[232]; + m_A207 += gt[233]; + m_A207 += gt[234]; + m_A207 += gt[235]; + m_A207 += gt[236]; + m_A208 += go[232]; + m_A205 += go[233]; + m_A209 += go[234]; + double RHS62 = Idr[232]; + RHS62 += Idr[233]; + RHS62 += Idr[234]; + RHS62 += Idr[235]; + RHS62 += Idr[236]; + RHS62 -= go[235] * *cnV[235]; + RHS62 -= go[236] * *cnV[236]; + m_A211 += gt[237]; + m_A211 += gt[238]; + m_A211 += gt[239]; + m_A211 += gt[240]; + m_A211 += gt[241]; + m_A211 += gt[242]; + m_A210 += go[237]; + m_A213 += go[238]; + m_A212 += go[239]; + double RHS63 = Idr[237]; + RHS63 += Idr[238]; + RHS63 += Idr[239]; + RHS63 += Idr[240]; + RHS63 += Idr[241]; + RHS63 += Idr[242]; + RHS63 -= go[240] * *cnV[240]; + RHS63 -= go[241] * *cnV[241]; + RHS63 -= go[242] * *cnV[242]; + m_A216 += gt[243]; + m_A216 += gt[244]; + m_A216 += gt[245]; + m_A216 += gt[246]; + m_A216 += gt[247]; + m_A216 += gt[248]; + m_A216 += gt[249]; + m_A217 += go[243]; + m_A217 += go[244]; + m_A215 += go[245]; + m_A215 += go[246]; + m_A214 += go[247]; + double RHS64 = Idr[243]; + RHS64 += Idr[244]; + RHS64 += Idr[245]; + RHS64 += Idr[246]; + RHS64 += Idr[247]; + RHS64 += Idr[248]; + RHS64 += Idr[249]; + RHS64 -= go[248] * *cnV[248]; + RHS64 -= go[249] * *cnV[249]; + m_A220 += gt[250]; + m_A220 += gt[251]; + m_A220 += gt[252]; + m_A220 += gt[253]; + m_A218 += go[250]; + m_A219 += go[251]; + m_A221 += go[252]; + double RHS65 = Idr[250]; + RHS65 += Idr[251]; + RHS65 += Idr[252]; + RHS65 += Idr[253]; + RHS65 -= go[253] * *cnV[253]; + m_A223 += gt[254]; + m_A223 += gt[255]; + m_A223 += gt[256]; + m_A225 += go[254]; + m_A222 += go[255]; + double RHS66 = Idr[254]; + RHS66 += Idr[255]; + RHS66 += Idr[256]; + RHS66 -= go[256] * *cnV[256]; + m_A228 += gt[257]; + m_A228 += gt[258]; + m_A228 += gt[259]; + m_A229 += go[257]; + m_A226 += go[258]; + double RHS67 = Idr[257]; + RHS67 += Idr[258]; + RHS67 += Idr[259]; + RHS67 -= go[259] * *cnV[259]; + m_A232 += gt[260]; + m_A232 += gt[261]; + m_A231 += go[260]; + m_A230 += go[261]; + double RHS68 = Idr[260]; + RHS68 += Idr[261]; + m_A234 += gt[262]; + m_A234 += gt[263]; + m_A234 += gt[264]; + m_A234 += gt[265]; + m_A234 += gt[266]; + m_A234 += gt[267]; + m_A234 += gt[268]; + m_A235 += go[262]; + double RHS69 = Idr[262]; + RHS69 += Idr[263]; + RHS69 += Idr[264]; + RHS69 += Idr[265]; + RHS69 += Idr[266]; + RHS69 += Idr[267]; + RHS69 += Idr[268]; + RHS69 -= go[263] * *cnV[263]; + RHS69 -= go[264] * *cnV[264]; + RHS69 -= go[265] * *cnV[265]; + RHS69 -= go[266] * *cnV[266]; + RHS69 -= go[267] * *cnV[267]; + RHS69 -= go[268] * *cnV[268]; + m_A238 += gt[269]; + m_A238 += gt[270]; + m_A238 += gt[271]; + m_A240 += go[269]; + m_A236 += go[270]; + double RHS70 = Idr[269]; + RHS70 += Idr[270]; + RHS70 += Idr[271]; + RHS70 -= go[271] * *cnV[271]; + m_A244 += gt[272]; + m_A244 += gt[273]; + m_A244 += gt[274]; + m_A245 += go[272]; + m_A242 += go[273]; + m_A246 += go[274]; + double RHS71 = Idr[272]; + RHS71 += Idr[273]; + RHS71 += Idr[274]; + m_A249 += gt[275]; + m_A249 += gt[276]; + m_A248 += go[275]; + m_A247 += go[276]; + double RHS72 = Idr[275]; + RHS72 += Idr[276]; + m_A254 += gt[277]; + m_A254 += gt[278]; + m_A254 += gt[279]; + m_A254 += gt[280]; + m_A255 += go[277]; + m_A254 += go[278]; + m_A254 += go[279]; + m_A252 += go[280]; + double RHS73 = Idr[277]; + RHS73 += Idr[278]; + RHS73 += Idr[279]; + RHS73 += Idr[280]; + m_A257 += gt[281]; + m_A257 += gt[282]; + m_A256 += go[281]; + double RHS74 = Idr[281]; + RHS74 += Idr[282]; + RHS74 -= go[282] * *cnV[282]; + m_A264 += gt[283]; + m_A264 += gt[284]; + m_A264 += gt[285]; + m_A264 += gt[286]; + m_A264 += gt[287]; + m_A262 += go[283]; + m_A259 += go[284]; + m_A261 += go[285]; + double RHS75 = Idr[283]; + RHS75 += Idr[284]; + RHS75 += Idr[285]; + RHS75 += Idr[286]; + RHS75 += Idr[287]; + RHS75 -= go[286] * *cnV[286]; + RHS75 -= go[287] * *cnV[287]; + m_A271 += gt[288]; + m_A271 += gt[289]; + m_A271 += gt[290]; + m_A271 += gt[291]; + m_A273 += go[288]; + m_A268 += go[289]; + m_A269 += go[290]; + double RHS76 = Idr[288]; + RHS76 += Idr[289]; + RHS76 += Idr[290]; + RHS76 += Idr[291]; + RHS76 -= go[291] * *cnV[291]; + m_A281 += gt[292]; + m_A281 += gt[293]; + m_A281 += gt[294]; + m_A281 += gt[295]; + m_A277 += go[292]; + m_A276 += go[293]; + m_A279 += go[294]; + m_A278 += go[295]; + double RHS77 = Idr[292]; + RHS77 += Idr[293]; + RHS77 += Idr[294]; + RHS77 += Idr[295]; + m_A294 += gt[296]; + m_A294 += gt[297]; + m_A294 += gt[298]; + m_A294 += gt[299]; + m_A294 += gt[300]; + m_A294 += gt[301]; + m_A289 += go[296]; + m_A296 += go[297]; + m_A287 += go[298]; + m_A285 += go[299]; + m_A286 += go[300]; + double RHS78 = Idr[296]; + RHS78 += Idr[297]; + RHS78 += Idr[298]; + RHS78 += Idr[299]; + RHS78 += Idr[300]; + RHS78 += Idr[301]; + RHS78 -= go[301] * *cnV[301]; + m_A300 += gt[302]; + m_A300 += gt[303]; + m_A300 += gt[304]; + m_A300 += gt[305]; + m_A300 += gt[306]; + m_A298 += go[302]; + m_A297 += go[303]; + m_A299 += go[304]; + double RHS79 = Idr[302]; + RHS79 += Idr[303]; + RHS79 += Idr[304]; + RHS79 += Idr[305]; + RHS79 += Idr[306]; + RHS79 -= go[305] * *cnV[305]; + RHS79 -= go[306] * *cnV[306]; + m_A304 += gt[307]; + m_A304 += gt[308]; + m_A303 += go[307]; + m_A302 += go[308]; + double RHS80 = Idr[307]; + RHS80 += Idr[308]; + m_A311 += gt[309]; + m_A311 += gt[310]; + m_A311 += gt[311]; + m_A311 += gt[312]; + m_A311 += gt[313]; + m_A311 += gt[314]; + m_A315 += go[309]; + m_A308 += go[310]; + m_A309 += go[311]; + m_A307 += go[312]; + m_A313 += go[313]; + double RHS81 = Idr[309]; + RHS81 += Idr[310]; + RHS81 += Idr[311]; + RHS81 += Idr[312]; + RHS81 += Idr[313]; + RHS81 += Idr[314]; + RHS81 -= go[314] * *cnV[314]; + m_A319 += gt[315]; + m_A319 += gt[316]; + m_A319 += gt[317]; + m_A319 += gt[318]; + m_A319 += gt[319]; + m_A319 += gt[320]; + m_A319 += gt[321]; + m_A318 += go[315]; + m_A316 += go[316]; + double RHS82 = Idr[315]; + RHS82 += Idr[316]; + RHS82 += Idr[317]; + RHS82 += Idr[318]; + RHS82 += Idr[319]; + RHS82 += Idr[320]; + RHS82 += Idr[321]; + RHS82 -= go[317] * *cnV[317]; + RHS82 -= go[318] * *cnV[318]; + RHS82 -= go[319] * *cnV[319]; + RHS82 -= go[320] * *cnV[320]; + RHS82 -= go[321] * *cnV[321]; + m_A322 += gt[322]; + m_A322 += gt[323]; + m_A322 += gt[324]; + m_A322 += gt[325]; + m_A324 += go[322]; + m_A322 += go[323]; + m_A322 += go[324]; + m_A321 += go[325]; + double RHS83 = Idr[322]; + RHS83 += Idr[323]; + RHS83 += Idr[324]; + RHS83 += Idr[325]; + m_A329 += gt[326]; + m_A329 += gt[327]; + m_A329 += gt[328]; + m_A329 += gt[329]; + m_A329 += gt[330]; + m_A329 += gt[331]; + m_A326 += go[326]; + m_A325 += go[327]; + m_A328 += go[328]; + m_A328 += go[329]; + double RHS84 = Idr[326]; + RHS84 += Idr[327]; + RHS84 += Idr[328]; + RHS84 += Idr[329]; + RHS84 += Idr[330]; + RHS84 += Idr[331]; + RHS84 -= go[330] * *cnV[330]; + RHS84 -= go[331] * *cnV[331]; + m_A335 += gt[332]; + m_A335 += gt[333]; + m_A335 += gt[334]; + m_A335 += gt[335]; + m_A335 += gt[336]; + m_A330 += go[332]; + m_A331 += go[333]; + m_A332 += go[334]; + double RHS85 = Idr[332]; + RHS85 += Idr[333]; + RHS85 += Idr[334]; + RHS85 += Idr[335]; + RHS85 += Idr[336]; + RHS85 -= go[335] * *cnV[335]; + RHS85 -= go[336] * *cnV[336]; + m_A347 += gt[337]; + m_A347 += gt[338]; + m_A347 += gt[339]; + m_A347 += gt[340]; + m_A347 += gt[341]; + m_A347 += gt[342]; + m_A347 += gt[343]; + m_A338 += go[337]; + m_A340 += go[338]; + m_A341 += go[339]; + m_A342 += go[340]; + m_A343 += go[341]; + double RHS86 = Idr[337]; + RHS86 += Idr[338]; + RHS86 += Idr[339]; + RHS86 += Idr[340]; + RHS86 += Idr[341]; + RHS86 += Idr[342]; + RHS86 += Idr[343]; + RHS86 -= go[342] * *cnV[342]; + RHS86 -= go[343] * *cnV[343]; + m_A356 += gt[344]; + m_A356 += gt[345]; + m_A356 += gt[346]; + m_A356 += gt[347]; + m_A356 += gt[348]; + m_A356 += gt[349]; + m_A351 += go[344]; + m_A352 += go[345]; + m_A354 += go[346]; + m_A353 += go[347]; + double RHS87 = Idr[344]; + RHS87 += Idr[345]; + RHS87 += Idr[346]; + RHS87 += Idr[347]; + RHS87 += Idr[348]; + RHS87 += Idr[349]; + RHS87 -= go[348] * *cnV[348]; + RHS87 -= go[349] * *cnV[349]; + m_A364 += gt[350]; + m_A364 += gt[351]; + m_A364 += gt[352]; + m_A364 += gt[353]; + m_A360 += go[350]; + m_A359 += go[351]; + m_A361 += go[352]; + double RHS88 = Idr[350]; + RHS88 += Idr[351]; + RHS88 += Idr[352]; + RHS88 += Idr[353]; + RHS88 -= go[353] * *cnV[353]; + m_A380 += gt[354]; + m_A380 += gt[355]; + m_A380 += gt[356]; + m_A380 += gt[357]; + m_A380 += gt[358]; + m_A380 += gt[359]; + m_A380 += gt[360]; + m_A380 += gt[361]; + m_A370 += go[354]; + m_A369 += go[355]; + m_A377 += go[356]; + m_A368 += go[357]; + m_A373 += go[358]; + double RHS89 = Idr[354]; + RHS89 += Idr[355]; + RHS89 += Idr[356]; + RHS89 += Idr[357]; + RHS89 += Idr[358]; + RHS89 += Idr[359]; + RHS89 += Idr[360]; + RHS89 += Idr[361]; + RHS89 -= go[359] * *cnV[359]; + RHS89 -= go[360] * *cnV[360]; + RHS89 -= go[361] * *cnV[361]; + m_A387 += gt[362]; + m_A387 += gt[363]; + m_A387 += gt[364]; + m_A387 += gt[365]; + m_A383 += go[362]; + m_A382 += go[363]; + m_A384 += go[364]; + m_A385 += go[365]; + double RHS90 = Idr[362]; + RHS90 += Idr[363]; + RHS90 += Idr[364]; + RHS90 += Idr[365]; + m_A393 += gt[366]; + m_A393 += gt[367]; + m_A393 += gt[368]; + m_A393 += gt[369]; + m_A390 += go[366]; + m_A388 += go[367]; + m_A391 += go[368]; + m_A389 += go[369]; + double RHS91 = Idr[366]; + RHS91 += Idr[367]; + RHS91 += Idr[368]; + RHS91 += Idr[369]; + m_A404 += gt[370]; + m_A404 += gt[371]; + m_A404 += gt[372]; + m_A404 += gt[373]; + m_A404 += gt[374]; + m_A404 += gt[375]; + m_A399 += go[370]; + m_A405 += go[371]; + m_A397 += go[372]; + m_A396 += go[373]; + m_A398 += go[374]; + double RHS92 = Idr[370]; + RHS92 += Idr[371]; + RHS92 += Idr[372]; + RHS92 += Idr[373]; + RHS92 += Idr[374]; + RHS92 += Idr[375]; + RHS92 -= go[375] * *cnV[375]; + m_A409 += gt[376]; + m_A409 += gt[377]; + m_A409 += gt[378]; + m_A409 += gt[379]; + m_A409 += gt[380]; + m_A407 += go[376]; + m_A406 += go[377]; + m_A410 += go[378]; + double RHS93 = Idr[376]; + RHS93 += Idr[377]; + RHS93 += Idr[378]; + RHS93 += Idr[379]; + RHS93 += Idr[380]; + RHS93 -= go[379] * *cnV[379]; + RHS93 -= go[380] * *cnV[380]; + m_A420 += gt[381]; + m_A420 += gt[382]; + m_A420 += gt[383]; + m_A420 += gt[384]; + m_A420 += gt[385]; + m_A420 += gt[386]; + m_A420 += gt[387]; + m_A420 += gt[388]; + m_A412 += go[381]; + m_A411 += go[382]; + m_A419 += go[383]; + m_A413 += go[384]; + m_A416 += go[385]; + double RHS94 = Idr[381]; + RHS94 += Idr[382]; + RHS94 += Idr[383]; + RHS94 += Idr[384]; + RHS94 += Idr[385]; + RHS94 += Idr[386]; + RHS94 += Idr[387]; + RHS94 += Idr[388]; + RHS94 -= go[386] * *cnV[386]; + RHS94 -= go[387] * *cnV[387]; + RHS94 -= go[388] * *cnV[388]; + m_A437 += gt[389]; + m_A437 += gt[390]; + m_A437 += gt[391]; + m_A437 += gt[392]; + m_A437 += gt[393]; + m_A437 += gt[394]; + m_A437 += gt[395]; + m_A437 += gt[396]; + m_A435 += go[389]; + m_A425 += go[390]; + m_A424 += go[391]; + m_A429 += go[392]; + m_A423 += go[393]; + m_A422 += go[394]; + m_A427 += go[395]; + double RHS95 = Idr[389]; + RHS95 += Idr[390]; + RHS95 += Idr[391]; + RHS95 += Idr[392]; + RHS95 += Idr[393]; + RHS95 += Idr[394]; + RHS95 += Idr[395]; + RHS95 += Idr[396]; + RHS95 -= go[396] * *cnV[396]; const double f0 = 1.0 / m_A0; - const double f0_6 = -f0 * m_A18; - m_A20 += m_A1 * f0_6; - RHS6 += f0_6 * RHS0; + const double f0_46 = -f0 * m_A126; + m_A128 += m_A1 * f0_46; + RHS46 += f0_46 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A19; - m_A20 += m_A3 * f1_6; - m_A21 += m_A4 * f1_6; - m_A22 += m_A5 * f1_6; - RHS6 += f1_6 * RHS1; - const double f1_7 = -f1 * m_A23; - m_A24 += m_A3 * f1_7; - m_A25 += m_A4 * f1_7; - m_A26 += m_A5 * f1_7; - RHS7 += f1_7 * RHS1; - const double f1_11 = -f1 * m_A41; - m_A43 += m_A3 * f1_11; - m_A44 += m_A4 * f1_11; - m_A46 += m_A5 * f1_11; - RHS11 += f1_11 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_10 = -f2 * m_A36; - m_A38 += m_A7 * f2_10; - m_A39 += m_A8 * f2_10; - RHS10 += f2_10 * RHS2; - const double f2_11 = -f2 * m_A42; - m_A45 += m_A7 * f2_11; - m_A46 += m_A8 * f2_11; - RHS11 += f2_11 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_8 = -f3 * m_A27; - m_A29 += m_A10 * f3_8; - RHS8 += f3_8 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_8 = -f4 * m_A28; - m_A29 += m_A12 * f4_8; - m_A30 += m_A13 * f4_8; - m_A31 += m_A14 * f4_8; - RHS8 += f4_8 * RHS4; - const double f4_9 = -f4 * m_A32; - m_A33 += m_A12 * f4_9; - m_A34 += m_A13 * f4_9; - m_A35 += m_A14 * f4_9; - RHS9 += f4_9 * RHS4; - const double f4_12 = -f4 * m_A48; - m_A50 += m_A12 * f4_12; - m_A51 += m_A13 * f4_12; - m_A54 += m_A14 * f4_12; - RHS12 += f4_12 * RHS4; - const double f5 = 1.0 / m_A15; - const double f5_10 = -f5 * m_A37; - m_A38 += m_A16 * f5_10; - m_A40 += m_A17 * f5_10; - RHS10 += f5_10 * RHS5; - const double f5_12 = -f5 * m_A49; - m_A52 += m_A16 * f5_12; - m_A54 += m_A17 * f5_12; - RHS12 += f5_12 * RHS5; - const double f6 = 1.0 / m_A20; - const double f6_7 = -f6 * m_A24; - m_A25 += m_A21 * f6_7; - m_A26 += m_A22 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_11 = -f6 * m_A43; - m_A44 += m_A21 * f6_11; - m_A46 += m_A22 * f6_11; - RHS11 += f6_11 * RHS6; - const double f7 = 1.0 / m_A25; - const double f7_11 = -f7 * m_A44; - m_A46 += m_A26 * f7_11; - RHS11 += f7_11 * RHS7; - const double f8 = 1.0 / m_A29; - const double f8_9 = -f8 * m_A33; - m_A34 += m_A30 * f8_9; - m_A35 += m_A31 * f8_9; - RHS9 += f8_9 * RHS8; - const double f8_12 = -f8 * m_A50; - m_A51 += m_A30 * f8_12; - m_A54 += m_A31 * f8_12; - RHS12 += f8_12 * RHS8; - const double f9 = 1.0 / m_A34; - const double f9_12 = -f9 * m_A51; - m_A54 += m_A35 * f9_12; - RHS12 += f9_12 * RHS9; - const double f10 = 1.0 / m_A38; - const double f10_11 = -f10 * m_A45; - m_A46 += m_A39 * f10_11; - m_A47 += m_A40 * f10_11; - RHS11 += f10_11 * RHS10; - const double f10_12 = -f10 * m_A52; - m_A53 += m_A39 * f10_12; - m_A54 += m_A40 * f10_12; - RHS12 += f10_12 * RHS10; - const double f11 = 1.0 / m_A46; - const double f11_12 = -f11 * m_A53; - m_A54 += m_A47 * f11_12; - RHS12 += f11_12 * RHS11; - V[12] = RHS12 / m_A54; + const double f1_50 = -f1 * m_A147; + m_A148 += m_A3 * f1_50; + RHS50 += f1_50 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_46 = -f2 * m_A127; + m_A128 += m_A5 * f2_46; + m_A129 += m_A6 * f2_46; + m_A130 += m_A7 * f2_46; + RHS46 += f2_46 * RHS2; + const double f2_47 = -f2 * m_A131; + m_A133 += m_A5 * f2_47; + m_A134 += m_A6 * f2_47; + m_A135 += m_A7 * f2_47; + RHS47 += f2_47 * RHS2; + const double f2_54 = -f2 * m_A162; + m_A164 += m_A5 * f2_54; + m_A165 += m_A6 * f2_54; + m_A166 += m_A7 * f2_54; + RHS54 += f2_54 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_51 = -f3 * m_A150; + m_A152 += m_A9 * f3_51; + RHS51 += f3_51 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_56 = -f4 * m_A175; + m_A180 += m_A11 * f4_56; + m_A182 += m_A12 * f4_56; + RHS56 += f4_56 * RHS4; + const double f4_77 = -f4 * m_A276; + m_A279 += m_A11 * f4_77; + m_A281 += m_A12 * f4_77; + RHS77 += f4_77 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_51 = -f5 * m_A151; + m_A152 += m_A14 * f5_51; + m_A153 += m_A15 * f5_51; + RHS51 += f5_51 * RHS5; + const double f5_78 = -f5 * m_A285; + m_A289 += m_A14 * f5_78; + m_A294 += m_A15 * f5_78; + RHS78 += f5_78 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_53 = -f6 * m_A159; + m_A160 += m_A17 * f6_53; + RHS53 += f6_53 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_47 = -f7 * m_A132; + m_A134 += m_A19 * f7_47; + m_A136 += m_A20 * f7_47; + m_A137 += m_A21 * f7_47; + m_A138 += m_A22 * f7_47; + RHS47 += f7_47 * RHS7; + const double f7_56 = -f7 * m_A176; + m_A178 += m_A19 * f7_56; + m_A180 += m_A20 * f7_56; + m_A183 += m_A21 * f7_56; + m_A184 += m_A22 * f7_56; + RHS56 += f7_56 * RHS7; + const double f7_78 = -f7 * m_A286; + m_A288 += m_A19 * f7_78; + m_A291 += m_A20 * f7_78; + m_A294 += m_A21 * f7_78; + m_A296 += m_A22 * f7_78; + RHS78 += f7_78 * RHS7; + const double f7_89 = -f7 * m_A368; + m_A371 += m_A19 * f7_89; + m_A373 += m_A20 * f7_89; + m_A377 += m_A21 * f7_89; + m_A380 += m_A22 * f7_89; + RHS89 += f7_89 * RHS7; + const double f8 = 1.0 / m_A23; + const double f8_54 = -f8 * m_A163; + m_A166 += m_A24 * f8_54; + m_A167 += m_A25 * f8_54; + m_A169 += m_A26 * f8_54; + m_A170 += m_A27 * f8_54; + RHS54 += f8_54 * RHS8; + const double f8_56 = -f8 * m_A177; + m_A179 += m_A24 * f8_56; + m_A180 += m_A25 * f8_56; + m_A183 += m_A26 * f8_56; + m_A184 += m_A27 * f8_56; + RHS56 += f8_56 * RHS8; + const double f8_78 = -f8 * m_A287; + m_A290 += m_A24 * f8_78; + m_A291 += m_A25 * f8_78; + m_A294 += m_A26 * f8_78; + m_A296 += m_A27 * f8_78; + RHS78 += f8_78 * RHS8; + const double f8_89 = -f8 * m_A369; + m_A372 += m_A24 * f8_89; + m_A373 += m_A25 * f8_89; + m_A377 += m_A26 * f8_89; + m_A380 += m_A27 * f8_89; + RHS89 += f8_89 * RHS8; + const double f9 = 1.0 / m_A28; + const double f9_58 = -f9 * m_A190; + m_A191 += m_A29 * f9_58; + RHS58 += f9_58 * RHS9; + const double f10 = 1.0 / m_A30; + const double f10_65 = -f10 * m_A218; + m_A220 += m_A31 * f10_65; + RHS65 += f10_65 * RHS10; + const double f11 = 1.0 / m_A32; + const double f11_60 = -f11 * m_A196; + m_A197 += m_A33 * f11_60; + m_A198 += m_A34 * f11_60; + RHS60 += f11_60 * RHS11; + const double f11_76 = -f11 * m_A268; + m_A270 += m_A33 * f11_76; + m_A271 += m_A34 * f11_76; + RHS76 += f11_76 * RHS11; + const double f12 = 1.0 / m_A35; + const double f12_65 = -f12 * m_A219; + m_A220 += m_A36 * f12_65; + m_A221 += m_A37 * f12_65; + RHS65 += f12_65 * RHS12; + const double f12_92 = -f12 * m_A396; + m_A399 += m_A36 * f12_92; + m_A404 += m_A37 * f12_92; + RHS92 += f12_92 * RHS12; + const double f13 = 1.0 / m_A38; + const double f13_48 = -f13 * m_A139; + m_A141 += m_A39 * f13_48; + RHS48 += f13_48 * RHS13; + const double f14 = 1.0 / m_A40; + const double f14_48 = -f14 * m_A140; + m_A141 += m_A41 * f14_48; + m_A142 += m_A42 * f14_48; + RHS48 += f14_48 * RHS14; + const double f14_55 = -f14 * m_A171; + m_A172 += m_A41 * f14_55; + m_A174 += m_A42 * f14_55; + RHS55 += f14_55 * RHS14; + const double f14_75 = -f14 * m_A259; + m_A260 += m_A41 * f14_75; + m_A264 += m_A42 * f14_75; + RHS75 += f14_75 * RHS14; + const double f15 = 1.0 / m_A43; + const double f15_81 = -f15 * m_A307; + m_A311 += m_A44 * f15_81; + m_A313 += m_A45 * f15_81; + RHS81 += f15_81 * RHS15; + const double f15_91 = -f15 * m_A388; + m_A391 += m_A44 * f15_91; + m_A393 += m_A45 * f15_91; + RHS91 += f15_91 * RHS15; + const double f16 = 1.0 / m_A46; + const double f16_81 = -f16 * m_A308; + m_A311 += m_A47 * f16_81; + m_A312 += m_A48 * f16_81; + m_A314 += m_A49 * f16_81; + m_A315 += m_A50 * f16_81; + RHS81 += f16_81 * RHS16; + const double f16_88 = -f16 * m_A359; + m_A362 += m_A47 * f16_88; + m_A364 += m_A48 * f16_88; + m_A366 += m_A49 * f16_88; + m_A367 += m_A50 * f16_88; + RHS88 += f16_88 * RHS16; + const double f16_92 = -f16 * m_A397; + m_A401 += m_A47 * f16_92; + m_A402 += m_A48 * f16_92; + m_A404 += m_A49 * f16_92; + m_A405 += m_A50 * f16_92; + RHS92 += f16_92 * RHS16; + const double f16_94 = -f16 * m_A411; + m_A416 += m_A47 * f16_94; + m_A417 += m_A48 * f16_94; + m_A419 += m_A49 * f16_94; + m_A420 += m_A50 * f16_94; + RHS94 += f16_94 * RHS16; + const double f17 = 1.0 / m_A51; + const double f17_49 = -f17 * m_A143; + m_A145 += m_A52 * f17_49; + RHS49 += f17_49 * RHS17; + const double f18 = 1.0 / m_A53; + const double f18_49 = -f18 * m_A144; + m_A145 += m_A54 * f18_49; + m_A146 += m_A55 * f18_49; + RHS49 += f18_49 * RHS18; + const double f18_62 = -f18 * m_A205; + m_A206 += m_A54 * f18_62; + m_A207 += m_A55 * f18_62; + RHS62 += f18_62 * RHS18; + const double f18_82 = -f18 * m_A316; + m_A317 += m_A54 * f18_82; + m_A318 += m_A55 * f18_82; + RHS82 += f18_82 * RHS18; + const double f19 = 1.0 / m_A56; + const double f19_52 = -f19 * m_A154; + m_A157 += m_A57 * f19_52; + RHS52 += f19_52 * RHS19; + const double f20 = 1.0 / m_A58; + const double f20_52 = -f20 * m_A155; + m_A157 += m_A59 * f20_52; + RHS52 += f20_52 * RHS20; + const double f21 = 1.0 / m_A60; + const double f21_61 = -f21 * m_A202; + m_A203 += m_A61 * f21_61; + RHS61 += f21_61 * RHS21; + const double f22 = 1.0 / m_A62; + const double f22_90 = -f22 * m_A382; + m_A387 += m_A63 * f22_90; + RHS90 += f22_90 * RHS22; + const double f23 = 1.0 / m_A64; + const double f23_63 = -f23 * m_A210; + m_A212 += m_A65 * f23_63; + RHS63 += f23_63 * RHS23; + const double f23_79 = -f23 * m_A297; + m_A300 += m_A65 * f23_79; + RHS79 += f23_79 * RHS23; + const double f24 = 1.0 / m_A66; + const double f24_64 = -f24 * m_A214; + m_A216 += m_A67 * f24_64; + RHS64 += f24_64 * RHS24; + const double f25 = 1.0 / m_A68; + const double f25_79 = -f25 * m_A298; + m_A300 += m_A69 * f25_79; + RHS79 += f25_79 * RHS25; + const double f25_90 = -f25 * m_A383; + m_A385 += m_A69 * f25_90; + RHS90 += f25_90 * RHS25; + const double f26 = 1.0 / m_A70; + const double f26_64 = -f26 * m_A215; + m_A216 += m_A71 * f26_64; + m_A217 += m_A72 * f26_64; + RHS64 += f26_64 * RHS26; + const double f26_84 = -f26 * m_A325; + m_A328 += m_A71 * f26_84; + m_A329 += m_A72 * f26_84; + RHS84 += f26_84 * RHS26; + const double f27 = 1.0 / m_A73; + const double f27_57 = -f27 * m_A185; + m_A186 += m_A74 * f27_57; + m_A189 += m_A75 * f27_57; + RHS57 += f27_57 * RHS27; + const double f28 = 1.0 / m_A76; + const double f28_52 = -f28 * m_A156; + m_A157 += m_A77 * f28_52; + m_A158 += m_A78 * f28_52; + RHS52 += f28_52 * RHS28; + const double f28_67 = -f28 * m_A226; + m_A227 += m_A77 * f28_67; + m_A228 += m_A78 * f28_67; + RHS67 += f28_67 * RHS28; + const double f29 = 1.0 / m_A79; + const double f29_87 = -f29 * m_A351; + m_A353 += m_A80 * f29_87; + RHS87 += f29_87 * RHS29; + const double f30 = 1.0 / m_A81; + const double f30_57 = -f30 * m_A186; + m_A188 += m_A82 * f30_57; + m_A189 += m_A83 * f30_57; + RHS57 += f30_57 * RHS30; + const double f30_84 = -f30 * m_A326; + m_A327 += m_A82 * f30_84; + m_A329 += m_A83 * f30_84; + RHS84 += f30_84 * RHS30; + const double f31 = 1.0 / m_A84; + const double f31_57 = -f31 * m_A187; + m_A188 += m_A85 * f31_57; + RHS57 += f31_57 * RHS31; + const double f32 = 1.0 / m_A86; + const double f32_86 = -f32 * m_A338; + m_A339 += m_A87 * f32_86; + m_A342 += m_A88 * f32_86; + RHS86 += f32_86 * RHS32; + const double f33 = 1.0 / m_A89; + const double f33_68 = -f33 * m_A230; + m_A232 += m_A90 * f33_68; + RHS68 += f33_68 * RHS33; + const double f34 = 1.0 / m_A91; + const double f34_70 = -f34 * m_A236; + m_A237 += m_A92 * f34_70; + m_A238 += m_A93 * f34_70; + RHS70 += f34_70 * RHS34; + const double f35 = 1.0 / m_A94; + const double f35_85 = -f35 * m_A330; + m_A332 += m_A95 * f35_85; + RHS85 += f35_85 * RHS35; + const double f36 = 1.0 / m_A96; + const double f36_66 = -f36 * m_A222; + m_A223 += m_A97 * f36_66; + m_A224 += m_A98 * f36_66; + RHS66 += f36_66 * RHS36; + const double f36_71 = -f36 * m_A242; + m_A243 += m_A97 * f36_71; + m_A244 += m_A98 * f36_71; + RHS71 += f36_71 * RHS36; + const double f36_86 = -f36 * m_A339; + m_A342 += m_A97 * f36_86; + m_A343 += m_A98 * f36_86; + RHS86 += f36_86 * RHS36; + const double f37 = 1.0 / m_A99; + const double f37_72 = -f37 * m_A247; + m_A249 += m_A100 * f37_72; + m_A250 += m_A101 * f37_72; + RHS72 += f37_72 * RHS37; + const double f37_89 = -f37 * m_A370; + m_A374 += m_A100 * f37_89; + m_A380 += m_A101 * f37_89; + RHS89 += f37_89 * RHS37; + const double f38 = 1.0 / m_A102; + const double f38_80 = -f38 * m_A302; + m_A304 += m_A103 * f38_80; + m_A305 += m_A104 * f38_80; + RHS80 += f38_80 * RHS38; + const double f38_94 = -f38 * m_A412; + m_A415 += m_A103 * f38_94; + m_A420 += m_A104 * f38_94; + RHS94 += f38_94 * RHS38; + const double f39 = 1.0 / m_A105; + const double f39_68 = -f39 * m_A231; + m_A232 += m_A106 * f39_68; + m_A233 += m_A107 * f39_68; + RHS68 += f39_68 * RHS39; + const double f39_73 = -f39 * m_A252; + m_A253 += m_A106 * f39_73; + m_A254 += m_A107 * f39_73; + RHS73 += f39_73 * RHS39; + const double f40 = 1.0 / m_A108; + const double f40_77 = -f40 * m_A277; + m_A281 += m_A109 * f40_77; + m_A283 += m_A110 * f40_77; + RHS77 += f40_77 * RHS40; + const double f40_86 = -f40 * m_A340; + m_A344 += m_A109 * f40_86; + m_A347 += m_A110 * f40_86; + RHS86 += f40_86 * RHS40; + const double f41 = 1.0 / m_A111; + const double f41_83 = -f41 * m_A321; + m_A322 += m_A112 * f41_83; + m_A323 += m_A113 * f41_83; + RHS83 += f41_83 * RHS41; + const double f41_86 = -f41 * m_A341; + m_A346 += m_A112 * f41_86; + m_A347 += m_A113 * f41_86; + RHS86 += f41_86 * RHS41; + const double f42 = 1.0 / m_A114; + const double f42_85 = -f42 * m_A331; + m_A335 += m_A115 * f42_85; + m_A337 += m_A116 * f42_85; + RHS85 += f42_85 * RHS42; + const double f42_95 = -f42 * m_A422; + m_A430 += m_A115 * f42_95; + m_A437 += m_A116 * f42_95; + RHS95 += f42_95 * RHS42; + const double f43 = 1.0 / m_A117; + const double f43_87 = -f43 * m_A352; + m_A356 += m_A118 * f43_87; + m_A358 += m_A119 * f43_87; + RHS87 += f43_87 * RHS43; + const double f43_95 = -f43 * m_A423; + m_A432 += m_A118 * f43_95; + m_A437 += m_A119 * f43_95; + RHS95 += f43_95 * RHS43; + const double f44 = 1.0 / m_A120; + const double f44_72 = -f44 * m_A248; + m_A249 += m_A121 * f44_72; + m_A251 += m_A122 * f44_72; + RHS72 += f44_72 * RHS44; + const double f44_95 = -f44 * m_A424; + m_A426 += m_A121 * f44_95; + m_A437 += m_A122 * f44_95; + RHS95 += f44_95 * RHS44; + const double f45 = 1.0 / m_A123; + const double f45_74 = -f45 * m_A256; + m_A257 += m_A124 * f45_74; + m_A258 += m_A125 * f45_74; + RHS74 += f45_74 * RHS45; + const double f45_93 = -f45 * m_A406; + m_A408 += m_A124 * f45_93; + m_A409 += m_A125 * f45_93; + RHS93 += f45_93 * RHS45; + const double f46 = 1.0 / m_A128; + const double f46_47 = -f46 * m_A133; + m_A134 += m_A129 * f46_47; + m_A135 += m_A130 * f46_47; + RHS47 += f46_47 * RHS46; + const double f46_54 = -f46 * m_A164; + m_A165 += m_A129 * f46_54; + m_A166 += m_A130 * f46_54; + RHS54 += f46_54 * RHS46; + const double f47 = 1.0 / m_A134; + const double f47_54 = -f47 * m_A165; + m_A166 += m_A135 * f47_54; + m_A167 += m_A136 * f47_54; + m_A169 += m_A137 * f47_54; + m_A170 += m_A138 * f47_54; + RHS54 += f47_54 * RHS47; + const double f47_56 = -f47 * m_A178; + m_A179 += m_A135 * f47_56; + m_A180 += m_A136 * f47_56; + m_A183 += m_A137 * f47_56; + m_A184 += m_A138 * f47_56; + RHS56 += f47_56 * RHS47; + const double f47_78 = -f47 * m_A288; + m_A290 += m_A135 * f47_78; + m_A291 += m_A136 * f47_78; + m_A294 += m_A137 * f47_78; + m_A296 += m_A138 * f47_78; + RHS78 += f47_78 * RHS47; + const double f47_89 = -f47 * m_A371; + m_A372 += m_A135 * f47_89; + m_A373 += m_A136 * f47_89; + m_A377 += m_A137 * f47_89; + m_A380 += m_A138 * f47_89; + RHS89 += f47_89 * RHS47; + const double f48 = 1.0 / m_A141; + const double f48_55 = -f48 * m_A172; + m_A174 += m_A142 * f48_55; + RHS55 += f48_55 * RHS48; + const double f48_75 = -f48 * m_A260; + m_A264 += m_A142 * f48_75; + RHS75 += f48_75 * RHS48; + const double f49 = 1.0 / m_A145; + const double f49_62 = -f49 * m_A206; + m_A207 += m_A146 * f49_62; + RHS62 += f49_62 * RHS49; + const double f49_82 = -f49 * m_A317; + m_A318 += m_A146 * f49_82; + RHS82 += f49_82 * RHS49; + const double f50 = 1.0 / m_A148; + const double f50_77 = -f50 * m_A278; + m_A281 += m_A149 * f50_77; + RHS77 += f50_77 * RHS50; + const double f51 = 1.0 / m_A152; + const double f51_78 = -f51 * m_A289; + m_A294 += m_A153 * f51_78; + RHS78 += f51_78 * RHS51; + const double f52 = 1.0 / m_A157; + const double f52_67 = -f52 * m_A227; + m_A228 += m_A158 * f52_67; + RHS67 += f52_67 * RHS52; + const double f53 = 1.0 / m_A160; + const double f53_76 = -f53 * m_A269; + m_A271 += m_A161 * f53_76; + RHS76 += f53_76 * RHS53; + const double f54 = 1.0 / m_A166; + const double f54_56 = -f54 * m_A179; + m_A180 += m_A167 * f54_56; + m_A181 += m_A168 * f54_56; + m_A183 += m_A169 * f54_56; + m_A184 += m_A170 * f54_56; + RHS56 += f54_56 * RHS54; + const double f54_75 = -f54 * m_A261; + m_A263 += m_A167 * f54_75; + m_A264 += m_A168 * f54_75; + m_A266 += m_A169 * f54_75; + m_A267 += m_A170 * f54_75; + RHS75 += f54_75 * RHS54; + const double f54_78 = -f54 * m_A290; + m_A291 += m_A167 * f54_78; + m_A292 += m_A168 * f54_78; + m_A294 += m_A169 * f54_78; + m_A296 += m_A170 * f54_78; + RHS78 += f54_78 * RHS54; + const double f54_89 = -f54 * m_A372; + m_A373 += m_A167 * f54_89; + m_A375 += m_A168 * f54_89; + m_A377 += m_A169 * f54_89; + m_A380 += m_A170 * f54_89; + RHS89 += f54_89 * RHS54; + const double f55 = 1.0 / m_A173; + const double f55_75 = -f55 * m_A262; + m_A264 += m_A174 * f55_75; + RHS75 += f55_75 * RHS55; + const double f56 = 1.0 / m_A180; + const double f56_75 = -f56 * m_A263; + m_A264 += m_A181 * f56_75; + m_A265 += m_A182 * f56_75; + m_A266 += m_A183 * f56_75; + m_A267 += m_A184 * f56_75; + RHS75 += f56_75 * RHS56; + const double f56_77 = -f56 * m_A279; + m_A280 += m_A181 * f56_77; + m_A281 += m_A182 * f56_77; + m_A282 += m_A183 * f56_77; + m_A284 += m_A184 * f56_77; + RHS77 += f56_77 * RHS56; + const double f56_78 = -f56 * m_A291; + m_A292 += m_A181 * f56_78; + m_A293 += m_A182 * f56_78; + m_A294 += m_A183 * f56_78; + m_A296 += m_A184 * f56_78; + RHS78 += f56_78 * RHS56; + const double f56_89 = -f56 * m_A373; + m_A375 += m_A181 * f56_89; + m_A376 += m_A182 * f56_89; + m_A377 += m_A183 * f56_89; + m_A380 += m_A184 * f56_89; + RHS89 += f56_89 * RHS56; + const double f57 = 1.0 / m_A188; + const double f57_79 = -f57 * m_A299; + m_A301 += m_A189 * f57_79; + RHS79 += f57_79 * RHS57; + const double f57_84 = -f57 * m_A327; + m_A329 += m_A189 * f57_84; + RHS84 += f57_84 * RHS57; + const double f58 = 1.0 / m_A191; + const double f58_91 = -f58 * m_A389; + m_A393 += m_A192 * f58_91; + RHS91 += f58_91 * RHS58; + const double f59 = 1.0 / m_A193; + const double f59_80 = -f59 * m_A303; + m_A304 += m_A194 * f59_80; + m_A306 += m_A195 * f59_80; + RHS80 += f59_80 * RHS59; + const double f59_95 = -f59 * m_A425; + m_A428 += m_A194 * f59_95; + m_A437 += m_A195 * f59_95; + RHS95 += f59_95 * RHS59; + const double f60 = 1.0 / m_A197; + const double f60_76 = -f60 * m_A270; + m_A271 += m_A198 * f60_76; + m_A272 += m_A199 * f60_76; + m_A274 += m_A200 * f60_76; + m_A275 += m_A201 * f60_76; + RHS76 += f60_76 * RHS60; + const double f60_81 = -f60 * m_A309; + m_A310 += m_A198 * f60_81; + m_A311 += m_A199 * f60_81; + m_A314 += m_A200 * f60_81; + m_A315 += m_A201 * f60_81; + RHS81 += f60_81 * RHS60; + const double f60_92 = -f60 * m_A398; + m_A400 += m_A198 * f60_92; + m_A401 += m_A199 * f60_92; + m_A404 += m_A200 * f60_92; + m_A405 += m_A201 * f60_92; + RHS92 += f60_92 * RHS60; + const double f60_94 = -f60 * m_A413; + m_A414 += m_A198 * f60_94; + m_A416 += m_A199 * f60_94; + m_A419 += m_A200 * f60_94; + m_A420 += m_A201 * f60_94; + RHS94 += f60_94 * RHS60; + const double f61 = 1.0 / m_A203; + const double f61_91 = -f61 * m_A390; + m_A393 += m_A204 * f61_91; + RHS91 += f61_91 * RHS61; + const double f62 = 1.0 / m_A207; + const double f62_82 = -f62 * m_A318; + m_A319 += m_A208 * f62_82; + m_A320 += m_A209 * f62_82; + RHS82 += f62_82 * RHS62; + const double f62_88 = -f62 * m_A360; + m_A363 += m_A208 * f62_88; + m_A364 += m_A209 * f62_88; + RHS88 += f62_88 * RHS62; + const double f63 = 1.0 / m_A211; + const double f63_70 = -f63 * m_A237; + m_A239 += m_A212 * f63_70; + m_A241 += m_A213 * f63_70; + RHS70 += f63_70 * RHS63; + const double f63_90 = -f63 * m_A384; + m_A385 += m_A212 * f63_90; + m_A387 += m_A213 * f63_90; + RHS90 += f63_90 * RHS63; + const double f64 = 1.0 / m_A216; + const double f64_84 = -f64 * m_A328; + m_A329 += m_A217 * f64_84; + RHS84 += f64_84 * RHS64; + const double f65 = 1.0 / m_A220; + const double f65_92 = -f65 * m_A399; + m_A404 += m_A221 * f65_92; + RHS92 += f65_92 * RHS65; + const double f66 = 1.0 / m_A223; + const double f66_71 = -f66 * m_A243; + m_A244 += m_A224 * f66_71; + m_A245 += m_A225 * f66_71; + RHS71 += f66_71 * RHS66; + const double f66_86 = -f66 * m_A342; + m_A343 += m_A224 * f66_86; + m_A347 += m_A225 * f66_86; + RHS86 += f66_86 * RHS66; + const double f67 = 1.0 / m_A228; + const double f67_87 = -f67 * m_A353; + m_A356 += m_A229 * f67_87; + RHS87 += f67_87 * RHS67; + const double f68 = 1.0 / m_A232; + const double f68_73 = -f68 * m_A253; + m_A254 += m_A233 * f68_73; + RHS73 += f68_73 * RHS68; + const double f69 = 1.0 / m_A234; + const double f69_93 = -f69 * m_A407; + m_A410 += m_A235 * f69_93; + RHS93 += f69_93 * RHS69; + const double f70 = 1.0 / m_A238; + const double f70_85 = -f70 * m_A332; + m_A333 += m_A239 * f70_85; + m_A335 += m_A240 * f70_85; + m_A336 += m_A241 * f70_85; + RHS85 += f70_85 * RHS70; + const double f71 = 1.0 / m_A244; + const double f71_86 = -f71 * m_A343; + m_A347 += m_A245 * f71_86; + m_A348 += m_A246 * f71_86; + RHS86 += f71_86 * RHS71; + const double f71_87 = -f71 * m_A354; + m_A355 += m_A245 * f71_87; + m_A356 += m_A246 * f71_87; + RHS87 += f71_87 * RHS71; + const double f72 = 1.0 / m_A249; + const double f72_89 = -f72 * m_A374; + m_A380 += m_A250 * f72_89; + m_A381 += m_A251 * f72_89; + RHS89 += f72_89 * RHS72; + const double f72_95 = -f72 * m_A426; + m_A433 += m_A250 * f72_95; + m_A437 += m_A251 * f72_95; + RHS95 += f72_95 * RHS72; + const double f73 = 1.0 / m_A254; + const double f73_95 = -f73 * m_A427; + m_A437 += m_A255 * f73_95; + RHS95 += f73_95 * RHS73; + const double f74 = 1.0 / m_A257; + const double f74_93 = -f74 * m_A408; + m_A409 += m_A258 * f74_93; + RHS93 += f74_93 * RHS74; + const double f75 = 1.0 / m_A264; + const double f75_77 = -f75 * m_A280; + m_A281 += m_A265 * f75_77; + m_A282 += m_A266 * f75_77; + m_A284 += m_A267 * f75_77; + RHS77 += f75_77 * RHS75; + const double f75_78 = -f75 * m_A292; + m_A293 += m_A265 * f75_78; + m_A294 += m_A266 * f75_78; + m_A296 += m_A267 * f75_78; + RHS78 += f75_78 * RHS75; + const double f75_89 = -f75 * m_A375; + m_A376 += m_A265 * f75_89; + m_A377 += m_A266 * f75_89; + m_A380 += m_A267 * f75_89; + RHS89 += f75_89 * RHS75; + const double f76 = 1.0 / m_A271; + const double f76_81 = -f76 * m_A310; + m_A311 += m_A272 * f76_81; + m_A312 += m_A273 * f76_81; + m_A314 += m_A274 * f76_81; + m_A315 += m_A275 * f76_81; + RHS81 += f76_81 * RHS76; + const double f76_88 = -f76 * m_A361; + m_A362 += m_A272 * f76_88; + m_A364 += m_A273 * f76_88; + m_A366 += m_A274 * f76_88; + m_A367 += m_A275 * f76_88; + RHS88 += f76_88 * RHS76; + const double f76_92 = -f76 * m_A400; + m_A401 += m_A272 * f76_92; + m_A402 += m_A273 * f76_92; + m_A404 += m_A274 * f76_92; + m_A405 += m_A275 * f76_92; + RHS92 += f76_92 * RHS76; + const double f76_94 = -f76 * m_A414; + m_A416 += m_A272 * f76_94; + m_A417 += m_A273 * f76_94; + m_A419 += m_A274 * f76_94; + m_A420 += m_A275 * f76_94; + RHS94 += f76_94 * RHS76; + const double f77 = 1.0 / m_A281; + const double f77_78 = -f77 * m_A293; + m_A294 += m_A282 * f77_78; + m_A295 += m_A283 * f77_78; + m_A296 += m_A284 * f77_78; + RHS78 += f77_78 * RHS77; + const double f77_86 = -f77 * m_A344; + m_A345 += m_A282 * f77_86; + m_A347 += m_A283 * f77_86; + m_A349 += m_A284 * f77_86; + RHS86 += f77_86 * RHS77; + const double f77_89 = -f77 * m_A376; + m_A377 += m_A282 * f77_89; + m_A378 += m_A283 * f77_89; + m_A380 += m_A284 * f77_89; + RHS89 += f77_89 * RHS77; + const double f78 = 1.0 / m_A294; + const double f78_86 = -f78 * m_A345; + m_A347 += m_A295 * f78_86; + m_A349 += m_A296 * f78_86; + RHS86 += f78_86 * RHS78; + const double f78_89 = -f78 * m_A377; + m_A378 += m_A295 * f78_89; + m_A380 += m_A296 * f78_89; + RHS89 += f78_89 * RHS78; + const double f79 = 1.0 / m_A300; + const double f79_85 = -f79 * m_A333; + m_A334 += m_A301 * f79_85; + RHS85 += f79_85 * RHS79; + const double f79_90 = -f79 * m_A385; + m_A386 += m_A301 * f79_90; + RHS90 += f79_90 * RHS79; + const double f80 = 1.0 / m_A304; + const double f80_94 = -f80 * m_A415; + m_A420 += m_A305 * f80_94; + m_A421 += m_A306 * f80_94; + RHS94 += f80_94 * RHS80; + const double f80_95 = -f80 * m_A428; + m_A436 += m_A305 * f80_95; + m_A437 += m_A306 * f80_95; + RHS95 += f80_95 * RHS80; + const double f81 = 1.0 / m_A311; + const double f81_88 = -f81 * m_A362; + m_A364 += m_A312 * f81_88; + m_A365 += m_A313 * f81_88; + m_A366 += m_A314 * f81_88; + m_A367 += m_A315 * f81_88; + RHS88 += f81_88 * RHS81; + const double f81_91 = -f81 * m_A391; + m_A392 += m_A312 * f81_91; + m_A393 += m_A313 * f81_91; + m_A394 += m_A314 * f81_91; + m_A395 += m_A315 * f81_91; + RHS91 += f81_91 * RHS81; + const double f81_92 = -f81 * m_A401; + m_A402 += m_A312 * f81_92; + m_A403 += m_A313 * f81_92; + m_A404 += m_A314 * f81_92; + m_A405 += m_A315 * f81_92; + RHS92 += f81_92 * RHS81; + const double f81_94 = -f81 * m_A416; + m_A417 += m_A312 * f81_94; + m_A418 += m_A313 * f81_94; + m_A419 += m_A314 * f81_94; + m_A420 += m_A315 * f81_94; + RHS94 += f81_94 * RHS81; + const double f82 = 1.0 / m_A319; + const double f82_88 = -f82 * m_A363; + m_A364 += m_A320 * f82_88; + RHS88 += f82_88 * RHS82; + const double f83 = 1.0 / m_A322; + const double f83_86 = -f83 * m_A346; + m_A347 += m_A323 * f83_86; + m_A350 += m_A324 * f83_86; + RHS86 += f83_86 * RHS83; + const double f83_95 = -f83 * m_A429; + m_A431 += m_A323 * f83_95; + m_A437 += m_A324 * f83_95; + RHS95 += f83_95 * RHS83; + const double f84 = 1.0 / m_A329; + const double f84_85 = -f84 * m_A334; + RHS85 += f84_85 * RHS84; + const double f84_90 = -f84 * m_A386; + RHS90 += f84_90 * RHS84; + const double f85 = 1.0 / m_A335; + const double f85_95 = -f85 * m_A430; + m_A434 += m_A336 * f85_95; + m_A437 += m_A337 * f85_95; + RHS95 += f85_95 * RHS85; + const double f86 = 1.0 / m_A347; + const double f86_87 = -f86 * m_A355; + m_A356 += m_A348 * f86_87; + m_A357 += m_A349 * f86_87; + m_A358 += m_A350 * f86_87; + RHS87 += f86_87 * RHS86; + const double f86_89 = -f86 * m_A378; + m_A379 += m_A348 * f86_89; + m_A380 += m_A349 * f86_89; + m_A381 += m_A350 * f86_89; + RHS89 += f86_89 * RHS86; + const double f86_95 = -f86 * m_A431; + m_A432 += m_A348 * f86_95; + m_A433 += m_A349 * f86_95; + m_A437 += m_A350 * f86_95; + RHS95 += f86_95 * RHS86; + const double f87 = 1.0 / m_A356; + const double f87_89 = -f87 * m_A379; + m_A380 += m_A357 * f87_89; + m_A381 += m_A358 * f87_89; + RHS89 += f87_89 * RHS87; + const double f87_95 = -f87 * m_A432; + m_A433 += m_A357 * f87_95; + m_A437 += m_A358 * f87_95; + RHS95 += f87_95 * RHS87; + const double f88 = 1.0 / m_A364; + const double f88_91 = -f88 * m_A392; + m_A393 += m_A365 * f88_91; + m_A394 += m_A366 * f88_91; + m_A395 += m_A367 * f88_91; + RHS91 += f88_91 * RHS88; + const double f88_92 = -f88 * m_A402; + m_A403 += m_A365 * f88_92; + m_A404 += m_A366 * f88_92; + m_A405 += m_A367 * f88_92; + RHS92 += f88_92 * RHS88; + const double f88_94 = -f88 * m_A417; + m_A418 += m_A365 * f88_94; + m_A419 += m_A366 * f88_94; + m_A420 += m_A367 * f88_94; + RHS94 += f88_94 * RHS88; + const double f89 = 1.0 / m_A380; + const double f89_95 = -f89 * m_A433; + m_A437 += m_A381 * f89_95; + RHS95 += f89_95 * RHS89; + const double f90 = 1.0 / m_A387; + const double f90_95 = -f90 * m_A434; + RHS95 += f90_95 * RHS90; + const double f91 = 1.0 / m_A393; + const double f91_92 = -f91 * m_A403; + m_A404 += m_A394 * f91_92; + m_A405 += m_A395 * f91_92; + RHS92 += f91_92 * RHS91; + const double f91_94 = -f91 * m_A418; + m_A419 += m_A394 * f91_94; + m_A420 += m_A395 * f91_94; + RHS94 += f91_94 * RHS91; + const double f92 = 1.0 / m_A404; + const double f92_94 = -f92 * m_A419; + m_A420 += m_A405 * f92_94; + RHS94 += f92_94 * RHS92; + const double f93 = 1.0 / m_A409; + const double f93_95 = -f93 * m_A435; + m_A437 += m_A410 * f93_95; + RHS95 += f93_95 * RHS93; + const double f94 = 1.0 / m_A420; + const double f94_95 = -f94 * m_A436; + m_A437 += m_A421 * f94_95; + RHS95 += f94_95 * RHS94; + V[95] = RHS95 / m_A437; + double tmp94 = 0.0; + tmp94 += m_A421 * V[95]; + V[94] = (RHS94 - tmp94) / m_A420; + double tmp93 = 0.0; + tmp93 += m_A410 * V[95]; + V[93] = (RHS93 - tmp93) / m_A409; + double tmp92 = 0.0; + tmp92 += m_A405 * V[94]; + V[92] = (RHS92 - tmp92) / m_A404; + double tmp91 = 0.0; + tmp91 += m_A394 * V[92]; + tmp91 += m_A395 * V[94]; + V[91] = (RHS91 - tmp91) / m_A393; + double tmp90 = 0.0; + V[90] = (RHS90 - tmp90) / m_A387; + double tmp89 = 0.0; + tmp89 += m_A381 * V[95]; + V[89] = (RHS89 - tmp89) / m_A380; + double tmp88 = 0.0; + tmp88 += m_A365 * V[91]; + tmp88 += m_A366 * V[92]; + tmp88 += m_A367 * V[94]; + V[88] = (RHS88 - tmp88) / m_A364; + double tmp87 = 0.0; + tmp87 += m_A357 * V[89]; + tmp87 += m_A358 * V[95]; + V[87] = (RHS87 - tmp87) / m_A356; + double tmp86 = 0.0; + tmp86 += m_A348 * V[87]; + tmp86 += m_A349 * V[89]; + tmp86 += m_A350 * V[95]; + V[86] = (RHS86 - tmp86) / m_A347; + double tmp85 = 0.0; + tmp85 += m_A336 * V[90]; + tmp85 += m_A337 * V[95]; + V[85] = (RHS85 - tmp85) / m_A335; + double tmp84 = 0.0; + V[84] = (RHS84 - tmp84) / m_A329; + double tmp83 = 0.0; + tmp83 += m_A323 * V[86]; + tmp83 += m_A324 * V[95]; + V[83] = (RHS83 - tmp83) / m_A322; + double tmp82 = 0.0; + tmp82 += m_A320 * V[88]; + V[82] = (RHS82 - tmp82) / m_A319; + double tmp81 = 0.0; + tmp81 += m_A312 * V[88]; + tmp81 += m_A313 * V[91]; + tmp81 += m_A314 * V[92]; + tmp81 += m_A315 * V[94]; + V[81] = (RHS81 - tmp81) / m_A311; + double tmp80 = 0.0; + tmp80 += m_A305 * V[94]; + tmp80 += m_A306 * V[95]; + V[80] = (RHS80 - tmp80) / m_A304; + double tmp79 = 0.0; + tmp79 += m_A301 * V[84]; + V[79] = (RHS79 - tmp79) / m_A300; + double tmp78 = 0.0; + tmp78 += m_A295 * V[86]; + tmp78 += m_A296 * V[89]; + V[78] = (RHS78 - tmp78) / m_A294; + double tmp77 = 0.0; + tmp77 += m_A282 * V[78]; + tmp77 += m_A283 * V[86]; + tmp77 += m_A284 * V[89]; + V[77] = (RHS77 - tmp77) / m_A281; + double tmp76 = 0.0; + tmp76 += m_A272 * V[81]; + tmp76 += m_A273 * V[88]; + tmp76 += m_A274 * V[92]; + tmp76 += m_A275 * V[94]; + V[76] = (RHS76 - tmp76) / m_A271; + double tmp75 = 0.0; + tmp75 += m_A265 * V[77]; + tmp75 += m_A266 * V[78]; + tmp75 += m_A267 * V[89]; + V[75] = (RHS75 - tmp75) / m_A264; + double tmp74 = 0.0; + tmp74 += m_A258 * V[93]; + V[74] = (RHS74 - tmp74) / m_A257; + double tmp73 = 0.0; + tmp73 += m_A255 * V[95]; + V[73] = (RHS73 - tmp73) / m_A254; + double tmp72 = 0.0; + tmp72 += m_A250 * V[89]; + tmp72 += m_A251 * V[95]; + V[72] = (RHS72 - tmp72) / m_A249; + double tmp71 = 0.0; + tmp71 += m_A245 * V[86]; + tmp71 += m_A246 * V[87]; + V[71] = (RHS71 - tmp71) / m_A244; + double tmp70 = 0.0; + tmp70 += m_A239 * V[79]; + tmp70 += m_A240 * V[85]; + tmp70 += m_A241 * V[90]; + V[70] = (RHS70 - tmp70) / m_A238; + double tmp69 = 0.0; + tmp69 += m_A235 * V[95]; + V[69] = (RHS69 - tmp69) / m_A234; + double tmp68 = 0.0; + tmp68 += m_A233 * V[73]; + V[68] = (RHS68 - tmp68) / m_A232; + double tmp67 = 0.0; + tmp67 += m_A229 * V[87]; + V[67] = (RHS67 - tmp67) / m_A228; + double tmp66 = 0.0; + tmp66 += m_A224 * V[71]; + tmp66 += m_A225 * V[86]; + V[66] = (RHS66 - tmp66) / m_A223; + double tmp65 = 0.0; + tmp65 += m_A221 * V[92]; + V[65] = (RHS65 - tmp65) / m_A220; + double tmp64 = 0.0; + tmp64 += m_A217 * V[84]; + V[64] = (RHS64 - tmp64) / m_A216; + double tmp63 = 0.0; + tmp63 += m_A212 * V[79]; + tmp63 += m_A213 * V[90]; + V[63] = (RHS63 - tmp63) / m_A211; + double tmp62 = 0.0; + tmp62 += m_A208 * V[82]; + tmp62 += m_A209 * V[88]; + V[62] = (RHS62 - tmp62) / m_A207; + double tmp61 = 0.0; + tmp61 += m_A204 * V[91]; + V[61] = (RHS61 - tmp61) / m_A203; + double tmp60 = 0.0; + tmp60 += m_A198 * V[76]; + tmp60 += m_A199 * V[81]; + tmp60 += m_A200 * V[92]; + tmp60 += m_A201 * V[94]; + V[60] = (RHS60 - tmp60) / m_A197; + double tmp59 = 0.0; + tmp59 += m_A194 * V[80]; + tmp59 += m_A195 * V[95]; + V[59] = (RHS59 - tmp59) / m_A193; + double tmp58 = 0.0; + tmp58 += m_A192 * V[91]; + V[58] = (RHS58 - tmp58) / m_A191; + double tmp57 = 0.0; + tmp57 += m_A189 * V[84]; + V[57] = (RHS57 - tmp57) / m_A188; + double tmp56 = 0.0; + tmp56 += m_A181 * V[75]; + tmp56 += m_A182 * V[77]; + tmp56 += m_A183 * V[78]; + tmp56 += m_A184 * V[89]; + V[56] = (RHS56 - tmp56) / m_A180; + double tmp55 = 0.0; + tmp55 += m_A174 * V[75]; + V[55] = (RHS55 - tmp55) / m_A173; + double tmp54 = 0.0; + tmp54 += m_A167 * V[56]; + tmp54 += m_A168 * V[75]; + tmp54 += m_A169 * V[78]; + tmp54 += m_A170 * V[89]; + V[54] = (RHS54 - tmp54) / m_A166; + double tmp53 = 0.0; + tmp53 += m_A161 * V[76]; + V[53] = (RHS53 - tmp53) / m_A160; + double tmp52 = 0.0; + tmp52 += m_A158 * V[67]; + V[52] = (RHS52 - tmp52) / m_A157; + double tmp51 = 0.0; + tmp51 += m_A153 * V[78]; + V[51] = (RHS51 - tmp51) / m_A152; + double tmp50 = 0.0; + tmp50 += m_A149 * V[77]; + V[50] = (RHS50 - tmp50) / m_A148; + double tmp49 = 0.0; + tmp49 += m_A146 * V[62]; + V[49] = (RHS49 - tmp49) / m_A145; + double tmp48 = 0.0; + tmp48 += m_A142 * V[75]; + V[48] = (RHS48 - tmp48) / m_A141; + double tmp47 = 0.0; + tmp47 += m_A135 * V[54]; + tmp47 += m_A136 * V[56]; + tmp47 += m_A137 * V[78]; + tmp47 += m_A138 * V[89]; + V[47] = (RHS47 - tmp47) / m_A134; + double tmp46 = 0.0; + tmp46 += m_A129 * V[47]; + tmp46 += m_A130 * V[54]; + V[46] = (RHS46 - tmp46) / m_A128; + double tmp45 = 0.0; + tmp45 += m_A124 * V[74]; + tmp45 += m_A125 * V[93]; + V[45] = (RHS45 - tmp45) / m_A123; + double tmp44 = 0.0; + tmp44 += m_A121 * V[72]; + tmp44 += m_A122 * V[95]; + V[44] = (RHS44 - tmp44) / m_A120; + double tmp43 = 0.0; + tmp43 += m_A118 * V[87]; + tmp43 += m_A119 * V[95]; + V[43] = (RHS43 - tmp43) / m_A117; + double tmp42 = 0.0; + tmp42 += m_A115 * V[85]; + tmp42 += m_A116 * V[95]; + V[42] = (RHS42 - tmp42) / m_A114; + double tmp41 = 0.0; + tmp41 += m_A112 * V[83]; + tmp41 += m_A113 * V[86]; + V[41] = (RHS41 - tmp41) / m_A111; + double tmp40 = 0.0; + tmp40 += m_A109 * V[77]; + tmp40 += m_A110 * V[86]; + V[40] = (RHS40 - tmp40) / m_A108; + double tmp39 = 0.0; + tmp39 += m_A106 * V[68]; + tmp39 += m_A107 * V[73]; + V[39] = (RHS39 - tmp39) / m_A105; + double tmp38 = 0.0; + tmp38 += m_A103 * V[80]; + tmp38 += m_A104 * V[94]; + V[38] = (RHS38 - tmp38) / m_A102; + double tmp37 = 0.0; + tmp37 += m_A100 * V[72]; + tmp37 += m_A101 * V[89]; + V[37] = (RHS37 - tmp37) / m_A99; + double tmp36 = 0.0; + tmp36 += m_A97 * V[66]; + tmp36 += m_A98 * V[71]; + V[36] = (RHS36 - tmp36) / m_A96; + double tmp35 = 0.0; + tmp35 += m_A95 * V[70]; + V[35] = (RHS35 - tmp35) / m_A94; + double tmp34 = 0.0; + tmp34 += m_A92 * V[63]; + tmp34 += m_A93 * V[70]; + V[34] = (RHS34 - tmp34) / m_A91; + double tmp33 = 0.0; + tmp33 += m_A90 * V[68]; + V[33] = (RHS33 - tmp33) / m_A89; + double tmp32 = 0.0; + tmp32 += m_A87 * V[36]; + tmp32 += m_A88 * V[66]; + V[32] = (RHS32 - tmp32) / m_A86; + double tmp31 = 0.0; + tmp31 += m_A85 * V[57]; + V[31] = (RHS31 - tmp31) / m_A84; + double tmp30 = 0.0; + tmp30 += m_A82 * V[57]; + tmp30 += m_A83 * V[84]; + V[30] = (RHS30 - tmp30) / m_A81; + double tmp29 = 0.0; + tmp29 += m_A80 * V[67]; + V[29] = (RHS29 - tmp29) / m_A79; + double tmp28 = 0.0; + tmp28 += m_A77 * V[52]; + tmp28 += m_A78 * V[67]; + V[28] = (RHS28 - tmp28) / m_A76; + double tmp27 = 0.0; + tmp27 += m_A74 * V[30]; + tmp27 += m_A75 * V[84]; + V[27] = (RHS27 - tmp27) / m_A73; + double tmp26 = 0.0; + tmp26 += m_A71 * V[64]; + tmp26 += m_A72 * V[84]; + V[26] = (RHS26 - tmp26) / m_A70; + double tmp25 = 0.0; + tmp25 += m_A69 * V[79]; + V[25] = (RHS25 - tmp25) / m_A68; + double tmp24 = 0.0; + tmp24 += m_A67 * V[64]; + V[24] = (RHS24 - tmp24) / m_A66; + double tmp23 = 0.0; + tmp23 += m_A65 * V[79]; + V[23] = (RHS23 - tmp23) / m_A64; + double tmp22 = 0.0; + tmp22 += m_A63 * V[90]; + V[22] = (RHS22 - tmp22) / m_A62; + double tmp21 = 0.0; + tmp21 += m_A61 * V[61]; + V[21] = (RHS21 - tmp21) / m_A60; + double tmp20 = 0.0; + tmp20 += m_A59 * V[52]; + V[20] = (RHS20 - tmp20) / m_A58; + double tmp19 = 0.0; + tmp19 += m_A57 * V[52]; + V[19] = (RHS19 - tmp19) / m_A56; + double tmp18 = 0.0; + tmp18 += m_A54 * V[49]; + tmp18 += m_A55 * V[62]; + V[18] = (RHS18 - tmp18) / m_A53; + double tmp17 = 0.0; + tmp17 += m_A52 * V[49]; + V[17] = (RHS17 - tmp17) / m_A51; + double tmp16 = 0.0; + tmp16 += m_A47 * V[81]; + tmp16 += m_A48 * V[88]; + tmp16 += m_A49 * V[92]; + tmp16 += m_A50 * V[94]; + V[16] = (RHS16 - tmp16) / m_A46; + double tmp15 = 0.0; + tmp15 += m_A44 * V[81]; + tmp15 += m_A45 * V[91]; + V[15] = (RHS15 - tmp15) / m_A43; + double tmp14 = 0.0; + tmp14 += m_A41 * V[48]; + tmp14 += m_A42 * V[75]; + V[14] = (RHS14 - tmp14) / m_A40; + double tmp13 = 0.0; + tmp13 += m_A39 * V[48]; + V[13] = (RHS13 - tmp13) / m_A38; + double tmp12 = 0.0; + tmp12 += m_A36 * V[65]; + tmp12 += m_A37 * V[92]; + V[12] = (RHS12 - tmp12) / m_A35; double tmp11 = 0.0; - tmp11 += m_A47 * V[12]; - V[11] = (RHS11 - tmp11) / m_A46; + tmp11 += m_A33 * V[60]; + tmp11 += m_A34 * V[76]; + V[11] = (RHS11 - tmp11) / m_A32; double tmp10 = 0.0; - tmp10 += m_A39 * V[11]; - tmp10 += m_A40 * V[12]; - V[10] = (RHS10 - tmp10) / m_A38; + tmp10 += m_A31 * V[65]; + V[10] = (RHS10 - tmp10) / m_A30; double tmp9 = 0.0; - tmp9 += m_A35 * V[12]; - V[9] = (RHS9 - tmp9) / m_A34; + tmp9 += m_A29 * V[58]; + V[9] = (RHS9 - tmp9) / m_A28; double tmp8 = 0.0; - tmp8 += m_A30 * V[9]; - tmp8 += m_A31 * V[12]; - V[8] = (RHS8 - tmp8) / m_A29; + tmp8 += m_A24 * V[54]; + tmp8 += m_A25 * V[56]; + tmp8 += m_A26 * V[78]; + tmp8 += m_A27 * V[89]; + V[8] = (RHS8 - tmp8) / m_A23; double tmp7 = 0.0; - tmp7 += m_A26 * V[11]; - V[7] = (RHS7 - tmp7) / m_A25; + tmp7 += m_A19 * V[47]; + tmp7 += m_A20 * V[56]; + tmp7 += m_A21 * V[78]; + tmp7 += m_A22 * V[89]; + V[7] = (RHS7 - tmp7) / m_A18; double tmp6 = 0.0; - tmp6 += m_A21 * V[7]; - tmp6 += m_A22 * V[11]; - V[6] = (RHS6 - tmp6) / m_A20; + tmp6 += m_A17 * V[53]; + V[6] = (RHS6 - tmp6) / m_A16; double tmp5 = 0.0; - tmp5 += m_A16 * V[10]; - tmp5 += m_A17 * V[12]; - V[5] = (RHS5 - tmp5) / m_A15; + tmp5 += m_A14 * V[51]; + tmp5 += m_A15 * V[78]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A12 * V[8]; - tmp4 += m_A13 * V[9]; - tmp4 += m_A14 * V[12]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A11 * V[56]; + tmp4 += m_A12 * V[77]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A10 * V[8]; - V[3] = (RHS3 - tmp3) / m_A9; + tmp3 += m_A9 * V[51]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A7 * V[10]; - tmp2 += m_A8 * V[11]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A5 * V[46]; + tmp2 += m_A6 * V[47]; + tmp2 += m_A7 * V[54]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; - tmp1 += m_A4 * V[7]; - tmp1 += m_A5 * V[11]; + tmp1 += m_A3 * V[50]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[6]; + tmp0 += m_A1 * V[46]; V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_bb501e6a23177009_57_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// spacfury +static void nl_gcr_d4c34516ff6aa139_46_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -26162,17 +57673,6 @@ double m_A43(0.0); double m_A44(0.0); double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -26184,326 +57684,355 @@ RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; + m_A2 += gt[5]; m_A3 += go[3]; double RHS1 = Idr[3]; RHS1 += Idr[4]; + RHS1 += Idr[5]; RHS1 -= go[4] * *cnV[4]; - m_A4 += gt[5]; + RHS1 -= go[5] * *cnV[5]; m_A4 += gt[6]; m_A4 += gt[7]; m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A5 += go[5]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; + m_A5 += go[6]; + double RHS2 = Idr[6]; RHS2 += Idr[7]; RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[6] * *cnV[6]; RHS2 -= go[7] * *cnV[7]; RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; - RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; m_A6 += gt[12]; m_A6 += gt[13]; m_A6 += gt[14]; - m_A7 += go[12]; - double RHS3 = Idr[12]; + m_A6 += gt[15]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; RHS3 -= go[13] * *cnV[13]; RHS3 -= go[14] * *cnV[14]; - m_A8 += gt[15]; + RHS3 -= go[15] * *cnV[15]; m_A8 += gt[16]; m_A8 += gt[17]; m_A8 += gt[18]; m_A8 += gt[19]; - m_A8 += gt[20]; - m_A8 += gt[21]; - m_A9 += go[15]; - double RHS4 = Idr[15]; - RHS4 += Idr[16]; + m_A11 += go[16]; + m_A10 += go[17]; + m_A9 += go[18]; + double RHS4 = Idr[16]; RHS4 += Idr[17]; RHS4 += Idr[18]; RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 -= go[16] * *cnV[16]; - RHS4 -= go[17] * *cnV[17]; - RHS4 -= go[18] * *cnV[18]; RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; - RHS4 -= go[21] * *cnV[21]; - m_A10 += gt[22]; - m_A10 += gt[23]; - m_A11 += go[22]; - double RHS5 = Idr[22]; - RHS5 += Idr[23]; - RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A12 += gt[22]; + m_A12 += gt[23]; m_A12 += gt[24]; m_A12 += gt[25]; - m_A14 += go[24]; - m_A13 += go[25]; - double RHS6 = Idr[24]; - RHS6 += Idr[25]; - m_A15 += gt[26]; - m_A15 += gt[27]; - m_A16 += go[26]; - double RHS7 = Idr[26]; - RHS7 += Idr[27]; - RHS7 -= go[27] * *cnV[27]; - m_A17 += gt[28]; - m_A17 += gt[29]; - m_A18 += go[28]; - double RHS8 = Idr[28]; - RHS8 += Idr[29]; - RHS8 -= go[29] * *cnV[29]; - m_A20 += gt[30]; - m_A20 += gt[31]; - m_A20 += gt[32]; - m_A20 += gt[33]; - m_A19 += go[30]; - double RHS9 = Idr[30]; - RHS9 += Idr[31]; - RHS9 += Idr[32]; - RHS9 += Idr[33]; - RHS9 -= go[31] * *cnV[31]; - RHS9 -= go[32] * *cnV[32]; - RHS9 -= go[33] * *cnV[33]; - m_A24 += gt[34]; - m_A24 += gt[35]; - m_A23 += go[34]; - m_A22 += go[35]; - double RHS10 = Idr[34]; - RHS10 += Idr[35]; - m_A27 += gt[36]; + m_A12 += gt[26]; + m_A13 += go[20]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + m_A14 += gt[27]; + m_A14 += gt[28]; + m_A14 += gt[29]; + m_A14 += gt[30]; + m_A17 += go[27]; + m_A15 += go[28]; + m_A16 += go[29]; + double RHS6 = Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 -= go[30] * *cnV[30]; + m_A22 += gt[31]; + m_A22 += gt[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A21 += go[31]; + m_A20 += go[32]; + m_A19 += go[33]; + m_A18 += go[34]; + double RHS7 = Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 -= go[35] * *cnV[35]; + RHS7 -= go[36] * *cnV[36]; m_A27 += gt[37]; m_A27 += gt[38]; m_A27 += gt[39]; - m_A26 += go[36]; m_A28 += go[37]; - double RHS11 = Idr[36]; - RHS11 += Idr[37]; - RHS11 += Idr[38]; - RHS11 += Idr[39]; - RHS11 -= go[38] * *cnV[38]; - RHS11 -= go[39] * *cnV[39]; - m_A31 += gt[40]; - m_A31 += gt[41]; - m_A31 += gt[42]; - m_A31 += gt[43]; - m_A31 += gt[44]; - m_A31 += gt[45]; - m_A29 += go[40]; - m_A33 += go[41]; - m_A32 += go[42]; - double RHS12 = Idr[40]; - RHS12 += Idr[41]; - RHS12 += Idr[42]; - RHS12 += Idr[43]; - RHS12 += Idr[44]; - RHS12 += Idr[45]; - RHS12 -= go[43] * *cnV[43]; - RHS12 -= go[44] * *cnV[44]; - RHS12 -= go[45] * *cnV[45]; - m_A36 += gt[46]; - m_A36 += gt[47]; - m_A34 += go[46]; - double RHS13 = Idr[46]; - RHS13 += Idr[47]; - RHS13 -= go[47] * *cnV[47]; + m_A25 += go[38]; + double RHS8 = Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + RHS8 -= go[39] * *cnV[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A32 += go[40]; + m_A29 += go[41]; + double RHS9 = Idr[40]; + RHS9 += Idr[41]; + RHS9 += Idr[42]; + RHS9 -= go[42] * *cnV[42]; + m_A39 += gt[43]; + m_A39 += gt[44]; + m_A39 += gt[45]; + m_A39 += gt[46]; + m_A39 += gt[47]; m_A39 += gt[48]; - m_A39 += gt[49]; - m_A39 += gt[50]; - m_A38 += go[48]; - m_A37 += go[49]; - double RHS14 = Idr[48]; - RHS14 += Idr[49]; - RHS14 += Idr[50]; - RHS14 -= go[50] * *cnV[50]; - m_A41 += gt[51]; - m_A41 += gt[52]; - m_A41 += gt[53]; - m_A41 += gt[54]; - m_A40 += go[51]; - m_A42 += go[52]; - double RHS15 = Idr[51]; - RHS15 += Idr[52]; - RHS15 += Idr[53]; - RHS15 += Idr[54]; - RHS15 -= go[53] * *cnV[53]; - RHS15 -= go[54] * *cnV[54]; - m_A49 += gt[55]; - m_A49 += gt[56]; - m_A49 += gt[57]; - m_A49 += gt[58]; - m_A49 += gt[59]; - m_A44 += go[55]; - m_A47 += go[56]; - m_A46 += go[57]; - m_A43 += go[58]; - m_A45 += go[59]; - double RHS16 = Idr[55]; - RHS16 += Idr[56]; - RHS16 += Idr[57]; - RHS16 += Idr[58]; - RHS16 += Idr[59]; - m_A56 += gt[60]; - m_A56 += gt[61]; - m_A56 += gt[62]; - m_A56 += gt[63]; - m_A54 += go[60]; - m_A53 += go[61]; - m_A51 += go[62]; - m_A52 += go[63]; - double RHS17 = Idr[60]; - RHS17 += Idr[61]; - RHS17 += Idr[62]; - RHS17 += Idr[63]; + m_A33 += go[43]; + m_A35 += go[44]; + m_A37 += go[45]; + m_A34 += go[46]; + double RHS10 = Idr[43]; + RHS10 += Idr[44]; + RHS10 += Idr[45]; + RHS10 += Idr[46]; + RHS10 += Idr[47]; + RHS10 += Idr[48]; + RHS10 -= go[47] * *cnV[47]; + RHS10 -= go[48] * *cnV[48]; + m_A45 += gt[49]; + m_A45 += gt[50]; + m_A45 += gt[51]; + m_A45 += gt[52]; + m_A45 += gt[53]; + m_A45 += gt[54]; + m_A41 += go[49]; + m_A43 += go[50]; + m_A42 += go[51]; + double RHS11 = Idr[49]; + RHS11 += Idr[50]; + RHS11 += Idr[51]; + RHS11 += Idr[52]; + RHS11 += Idr[53]; + RHS11 += Idr[54]; + RHS11 -= go[52] * *cnV[52]; + RHS11 -= go[53] * *cnV[53]; + RHS11 -= go[54] * *cnV[54]; const double f0 = 1.0 / m_A0; - const double f0_11 = -f0 * m_A26; - m_A28 += m_A1 * f0_11; - RHS11 += f0_11 * RHS0; - const double f0_16 = -f0 * m_A43; - m_A49 += m_A1 * f0_16; - RHS16 += f0_16 * RHS0; + const double f0_7 = -f0 * m_A18; + m_A22 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_16 = -f1 * m_A44; - m_A49 += m_A3 * f1_16; - RHS16 += f1_16 * RHS1; + const double f1_7 = -f1 * m_A19; + m_A22 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_12 = -f2 * m_A29; - m_A30 += m_A5 * f2_12; - RHS12 += f2_12 * RHS2; + const double f2_7 = -f2 * m_A20; + m_A22 += m_A5 * f2_7; + RHS7 += f2_7 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_15 = -f3 * m_A40; - m_A42 += m_A7 * f3_15; - RHS15 += f3_15 * RHS3; - const double f3_17 = -f3 * m_A51; - m_A56 += m_A7 * f3_17; - RHS17 += f3_17 * RHS3; + const double f3_10 = -f3 * m_A33; + m_A37 += m_A7 * f3_10; + RHS10 += f3_10 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_9 = -f4 * m_A19; - m_A21 += m_A9 * f4_9; - RHS9 += f4_9 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_10 = -f5 * m_A22; - m_A24 += m_A11 * f5_10; - RHS10 += f5_10 * RHS5; - const double f5_16 = -f5 * m_A45; - m_A46 += m_A11 * f5_16; - RHS16 += f5_16 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_10 = -f6 * m_A23; - m_A24 += m_A13 * f6_10; - m_A25 += m_A14 * f6_10; + const double f4_7 = -f4 * m_A21; + m_A22 += m_A9 * f4_7; + m_A23 += m_A10 * f4_7; + m_A24 += m_A11 * f4_7; + RHS7 += f4_7 * RHS4; + const double f4_8 = -f4 * m_A25; + m_A26 += m_A9 * f4_8; + m_A27 += m_A10 * f4_8; + m_A28 += m_A11 * f4_8; + RHS8 += f4_8 * RHS4; + const double f4_10 = -f4 * m_A34; + m_A36 += m_A9 * f4_10; + m_A37 += m_A10 * f4_10; + m_A39 += m_A11 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_11 = -f5 * m_A41; + m_A43 += m_A13 * f5_11; + RHS11 += f5_11 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_9 = -f6 * m_A29; + m_A30 += m_A15 * f6_9; + m_A31 += m_A16 * f6_9; + m_A32 += m_A17 * f6_9; + RHS9 += f6_9 * RHS6; + const double f6_10 = -f6 * m_A35; + m_A38 += m_A15 * f6_10; + m_A39 += m_A16 * f6_10; + m_A40 += m_A17 * f6_10; RHS10 += f6_10 * RHS6; - const double f6_13 = -f6 * m_A34; - m_A35 += m_A13 * f6_13; - m_A36 += m_A14 * f6_13; - RHS13 += f6_13 * RHS6; - const double f7 = 1.0 / m_A15; - const double f7_14 = -f7 * m_A37; - m_A39 += m_A16 * f7_14; - RHS14 += f7_14 * RHS7; - const double f7_17 = -f7 * m_A52; - m_A54 += m_A16 * f7_17; - RHS17 += f7_17 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_14 = -f8 * m_A38; - m_A39 += m_A18 * f8_14; - RHS14 += f8_14 * RHS8; - const double f10 = 1.0 / m_A24; - const double f10_13 = -f10 * m_A35; - m_A36 += m_A25 * f10_13; - RHS13 += f10_13 * RHS10; - const double f10_16 = -f10 * m_A46; - m_A48 += m_A25 * f10_16; - RHS16 += f10_16 * RHS10; - const double f11 = 1.0 / m_A27; - const double f11_12 = -f11 * m_A30; - m_A32 += m_A28 * f11_12; - RHS12 += f11_12 * RHS11; - const double f12 = 1.0 / m_A31; - const double f12_16 = -f12 * m_A47; - m_A49 += m_A32 * f12_16; - m_A50 += m_A33 * f12_16; - RHS16 += f12_16 * RHS12; - const double f12_17 = -f12 * m_A53; - m_A55 += m_A32 * f12_17; - m_A56 += m_A33 * f12_17; - RHS17 += f12_17 * RHS12; - const double f13 = 1.0 / m_A36; - const double f13_16 = -f13 * m_A48; - RHS16 += f13_16 * RHS13; - const double f14 = 1.0 / m_A39; - const double f14_17 = -f14 * m_A54; - RHS17 += f14_17 * RHS14; - const double f16 = 1.0 / m_A49; - const double f16_17 = -f16 * m_A55; - m_A56 += m_A50 * f16_17; - RHS17 += f16_17 * RHS16; - V[17] = RHS17 / m_A56; - double tmp16 = 0.0; - tmp16 += m_A50 * V[17]; - V[16] = (RHS16 - tmp16) / m_A49; - double tmp15 = 0.0; - tmp15 += m_A42 * V[17]; - V[15] = (RHS15 - tmp15) / m_A41; - double tmp14 = 0.0; - V[14] = (RHS14 - tmp14) / m_A39; - double tmp13 = 0.0; - V[13] = (RHS13 - tmp13) / m_A36; - double tmp12 = 0.0; - tmp12 += m_A32 * V[16]; - tmp12 += m_A33 * V[17]; - V[12] = (RHS12 - tmp12) / m_A31; - double tmp11 = 0.0; - tmp11 += m_A28 * V[16]; - V[11] = (RHS11 - tmp11) / m_A27; + const double f6_11 = -f6 * m_A42; + m_A43 += m_A15 * f6_11; + m_A44 += m_A16 * f6_11; + m_A45 += m_A17 * f6_11; + RHS11 += f6_11 * RHS6; + const double f7 = 1.0 / m_A22; + const double f7_8 = -f7 * m_A26; + m_A27 += m_A23 * f7_8; + m_A28 += m_A24 * f7_8; + RHS8 += f7_8 * RHS7; + const double f7_10 = -f7 * m_A36; + m_A37 += m_A23 * f7_10; + m_A39 += m_A24 * f7_10; + RHS10 += f7_10 * RHS7; + const double f8 = 1.0 / m_A27; + const double f8_10 = -f8 * m_A37; + m_A39 += m_A28 * f8_10; + RHS10 += f8_10 * RHS8; + const double f9 = 1.0 / m_A30; + const double f9_10 = -f9 * m_A38; + m_A39 += m_A31 * f9_10; + m_A40 += m_A32 * f9_10; + RHS10 += f9_10 * RHS9; + const double f9_11 = -f9 * m_A43; + m_A44 += m_A31 * f9_11; + m_A45 += m_A32 * f9_11; + RHS11 += f9_11 * RHS9; + const double f10 = 1.0 / m_A39; + const double f10_11 = -f10 * m_A44; + m_A45 += m_A40 * f10_11; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A45; double tmp10 = 0.0; - tmp10 += m_A25 * V[13]; - V[10] = (RHS10 - tmp10) / m_A24; + tmp10 += m_A40 * V[11]; + V[10] = (RHS10 - tmp10) / m_A39; double tmp9 = 0.0; - tmp9 += m_A21 * V[15]; - V[9] = (RHS9 - tmp9) / m_A20; + tmp9 += m_A31 * V[10]; + tmp9 += m_A32 * V[11]; + V[9] = (RHS9 - tmp9) / m_A30; double tmp8 = 0.0; - tmp8 += m_A18 * V[14]; - V[8] = (RHS8 - tmp8) / m_A17; + tmp8 += m_A28 * V[10]; + V[8] = (RHS8 - tmp8) / m_A27; double tmp7 = 0.0; - tmp7 += m_A16 * V[14]; - V[7] = (RHS7 - tmp7) / m_A15; + tmp7 += m_A23 * V[8]; + tmp7 += m_A24 * V[10]; + V[7] = (RHS7 - tmp7) / m_A22; double tmp6 = 0.0; - tmp6 += m_A13 * V[10]; - tmp6 += m_A14 * V[13]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A15 * V[9]; + tmp6 += m_A16 * V[10]; + tmp6 += m_A17 * V[11]; + V[6] = (RHS6 - tmp6) / m_A14; double tmp5 = 0.0; - tmp5 += m_A11 * V[10]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A13 * V[9]; + V[5] = (RHS5 - tmp5) / m_A12; double tmp4 = 0.0; - tmp4 += m_A9 * V[15]; + tmp4 += m_A9 * V[7]; + tmp4 += m_A10 * V[8]; + tmp4 += m_A11 * V[10]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[17]; + tmp3 += m_A7 * V[8]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[11]; + tmp2 += m_A5 * V[7]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[16]; + tmp1 += m_A3 * V[7]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[16]; + tmp0 += m_A1 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// boxingb +static void nl_gcr_d7d45dc58b08cab9_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A6 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A7 += go[9]; + m_A8 += go[10]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// ripoff -static void nl_gcr_be7c805100c522fd_59_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// kidniki +static void nl_gcr_d8c511d38cef5f6f_34_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -26542,363 +58071,411 @@ double m_A31(0.0); double m_A32(0.0); double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A1 += go[0]; + m_A2 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A3 += gt[7]; + m_A3 += gt[8]; + m_A3 += gt[9]; + m_A5 += go[3]; + m_A4 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A6 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A11 += go[13]; + m_A10 += go[14]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[15] * *cnV[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A14 += go[16]; + m_A13 += go[17]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 -= go[18] * *cnV[18]; + m_A17 += gt[19]; + m_A17 += gt[20]; + m_A17 += gt[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A15 += go[19]; + m_A18 += go[20]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + m_A21 += gt[26]; + m_A21 += gt[27]; + m_A21 += gt[28]; + m_A21 += gt[29]; + m_A21 += gt[30]; + m_A21 += gt[31]; + m_A19 += go[26]; + m_A22 += go[27]; + m_A20 += go[28]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 -= go[29] * *cnV[29]; + RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; + m_A27 += gt[32]; + m_A27 += gt[33]; + m_A27 += gt[34]; + m_A27 += gt[35]; + m_A27 += gt[36]; + m_A26 += go[32]; + m_A25 += go[33]; + m_A23 += go[34]; + double RHS7 = Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 -= go[35] * *cnV[35]; + RHS7 -= go[36] * *cnV[36]; + m_A33 += gt[37]; + m_A33 += gt[38]; + m_A33 += gt[39]; + m_A30 += go[37]; + m_A31 += go[38]; + m_A29 += go[39]; + double RHS8 = Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A6; + m_A7 += m_A1 * f0_2; + m_A8 += m_A2 * f0_2; + RHS2 += f0_2 * RHS0; + const double f0_5 = -f0 * m_A15; + m_A16 += m_A1 * f0_5; + m_A18 += m_A2 * f0_5; + RHS5 += f0_5 * RHS0; + const double f0_7 = -f0 * m_A23; + m_A24 += m_A1 * f0_7; + m_A27 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_6 = -f1 * m_A19; + m_A20 += m_A4 * f1_6; + m_A21 += m_A5 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_5 = -f2 * m_A16; + m_A18 += m_A8 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_7 = -f2 * m_A24; + m_A27 += m_A8 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_6 = -f3 * m_A20; + m_A21 += m_A10 * f3_6; + m_A22 += m_A11 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_8 = -f3 * m_A29; + m_A31 += m_A10 * f3_8; + m_A33 += m_A11 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_7 = -f4 * m_A25; + m_A27 += m_A13 * f4_7; + m_A28 += m_A14 * f4_7; + RHS7 += f4_7 * RHS4; + const double f4_8 = -f4 * m_A30; + m_A32 += m_A13 * f4_8; + m_A33 += m_A14 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_7 = -f5 * m_A26; + m_A27 += m_A18 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A21; + const double f6_8 = -f6 * m_A31; + m_A33 += m_A22 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A27; + const double f7_8 = -f7 * m_A32; + m_A33 += m_A28 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A33; + double tmp7 = 0.0; + tmp7 += m_A28 * V[8]; + V[7] = (RHS7 - tmp7) / m_A27; + double tmp6 = 0.0; + tmp6 += m_A22 * V[8]; + V[6] = (RHS6 - tmp6) / m_A21; + double tmp5 = 0.0; + tmp5 += m_A18 * V[7]; + V[5] = (RHS5 - tmp5) / m_A17; + double tmp4 = 0.0; + tmp4 += m_A13 * V[7]; + tmp4 += m_A14 * V[8]; + V[4] = (RHS4 - tmp4) / m_A12; + double tmp3 = 0.0; + tmp3 += m_A10 * V[6]; + tmp3 += m_A11 * V[8]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A8 * V[7]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A4 * V[3]; + tmp1 += m_A5 * V[6]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + tmp0 += m_A2 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// warrior +static void nl_gcr_da598f43329e823_27_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[2]; m_A3 += go[3]; - double RHS1 = Idr[3]; + m_A3 += go[4]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; + RHS1 += Idr[6]; RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; + RHS1 -= go[6] * *cnV[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A8 += go[7]; + m_A6 += go[8]; + m_A6 += go[9]; + m_A7 += go[10]; + double RHS2 = Idr[7]; RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A7 += go[9]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 -= go[10] * *cnV[10]; - m_A8 += gt[11]; - m_A8 += gt[12]; - m_A8 += gt[13]; - m_A9 += go[11]; - double RHS4 = Idr[11]; - RHS4 += Idr[12]; - RHS4 += Idr[13]; - RHS4 -= go[12] * *cnV[12]; - RHS4 -= go[13] * *cnV[13]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; m_A10 += gt[14]; m_A10 += gt[15]; - m_A12 += go[14]; - m_A11 += go[15]; - double RHS5 = Idr[14]; - RHS5 += Idr[15]; + m_A11 += go[11]; + m_A11 += go[12]; + m_A9 += go[13]; + m_A9 += go[14]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[15] * *cnV[15]; m_A13 += gt[16]; m_A13 += gt[17]; m_A13 += gt[18]; - m_A14 += go[16]; - double RHS6 = Idr[16]; - RHS6 += Idr[17]; - RHS6 += Idr[18]; - RHS6 -= go[17] * *cnV[17]; - RHS6 -= go[18] * *cnV[18]; - m_A15 += gt[19]; - m_A15 += gt[20]; - m_A15 += gt[21]; - m_A16 += go[19]; - double RHS7 = Idr[19]; - RHS7 += Idr[20]; - RHS7 += Idr[21]; - RHS7 -= go[20] * *cnV[20]; - RHS7 -= go[21] * *cnV[21]; - m_A17 += gt[22]; - m_A17 += gt[23]; - m_A17 += gt[24]; - m_A18 += go[22]; - double RHS8 = Idr[22]; - RHS8 += Idr[23]; - RHS8 += Idr[24]; - RHS8 -= go[23] * *cnV[23]; - RHS8 -= go[24] * *cnV[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A19 += gt[27]; - m_A20 += go[25]; - double RHS9 = Idr[25]; - RHS9 += Idr[26]; - RHS9 += Idr[27]; - RHS9 -= go[26] * *cnV[26]; - RHS9 -= go[27] * *cnV[27]; - m_A21 += gt[28]; - m_A21 += gt[29]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A15 += go[16]; + m_A15 += go[17]; + m_A12 += go[18]; + m_A12 += go[19]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[20] * *cnV[20]; + m_A21 += gt[21]; + m_A21 += gt[22]; + m_A21 += gt[23]; + m_A21 += gt[24]; + m_A21 += gt[25]; + m_A18 += go[21]; + m_A19 += go[22]; + m_A19 += go[23]; + m_A17 += go[24]; + m_A16 += go[25]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + m_A26 += gt[26]; + m_A26 += gt[27]; + m_A26 += gt[28]; + m_A26 += gt[29]; + m_A26 += gt[30]; + m_A24 += go[26]; + m_A24 += go[27]; m_A23 += go[28]; - m_A22 += go[29]; - double RHS10 = Idr[28]; - RHS10 += Idr[29]; - m_A24 += gt[30]; - m_A24 += gt[31]; - m_A24 += gt[32]; - m_A25 += go[30]; - double RHS11 = Idr[30]; - RHS11 += Idr[31]; - RHS11 += Idr[32]; - RHS11 -= go[31] * *cnV[31]; - RHS11 -= go[32] * *cnV[32]; - m_A26 += gt[33]; - m_A26 += gt[34]; - m_A26 += gt[35]; - m_A27 += go[33]; - double RHS12 = Idr[33]; - RHS12 += Idr[34]; - RHS12 += Idr[35]; - RHS12 -= go[34] * *cnV[34]; - RHS12 -= go[35] * *cnV[35]; - m_A28 += gt[36]; - m_A28 += gt[37]; - m_A28 += gt[38]; - m_A29 += go[36]; - double RHS13 = Idr[36]; - RHS13 += Idr[37]; - RHS13 += Idr[38]; - RHS13 -= go[37] * *cnV[37]; - RHS13 -= go[38] * *cnV[38]; - m_A35 += gt[39]; - m_A35 += gt[40]; - m_A35 += gt[41]; - m_A35 += gt[42]; - m_A35 += gt[43]; - m_A35 += gt[44]; - m_A34 += go[39]; - m_A33 += go[40]; - m_A32 += go[41]; - m_A31 += go[42]; - m_A30 += go[43]; - double RHS14 = Idr[39]; - RHS14 += Idr[40]; - RHS14 += Idr[41]; - RHS14 += Idr[42]; - RHS14 += Idr[43]; - RHS14 += Idr[44]; - RHS14 -= go[44] * *cnV[44]; - m_A38 += gt[45]; - m_A38 += gt[46]; - m_A37 += go[45]; - m_A39 += go[46]; - double RHS15 = Idr[45]; - RHS15 += Idr[46]; - m_A40 += gt[47]; - m_A40 += gt[48]; - m_A40 += gt[49]; - m_A41 += go[47]; - double RHS16 = Idr[47]; - RHS16 += Idr[48]; - RHS16 += Idr[49]; - RHS16 -= go[48] * *cnV[48]; - RHS16 -= go[49] * *cnV[49]; - m_A46 += gt[50]; - m_A46 += gt[51]; - m_A46 += gt[52]; - m_A43 += go[50]; - m_A45 += go[51]; - m_A42 += go[52]; - double RHS17 = Idr[50]; - RHS17 += Idr[51]; - RHS17 += Idr[52]; - m_A58 += gt[53]; - m_A58 += gt[54]; - m_A58 += gt[55]; - m_A58 += gt[56]; - m_A58 += gt[57]; - m_A58 += gt[58]; - m_A58 += gt[59]; - m_A58 += gt[60]; - m_A58 += gt[61]; - m_A58 += gt[62]; - m_A56 += go[53]; - m_A55 += go[54]; - m_A54 += go[55]; - m_A53 += go[56]; - m_A52 += go[57]; - m_A51 += go[58]; - m_A50 += go[59]; - m_A49 += go[60]; - m_A48 += go[61]; - double RHS18 = Idr[53]; - RHS18 += Idr[54]; - RHS18 += Idr[55]; - RHS18 += Idr[56]; - RHS18 += Idr[57]; - RHS18 += Idr[58]; - RHS18 += Idr[59]; - RHS18 += Idr[60]; - RHS18 += Idr[61]; - RHS18 += Idr[62]; - RHS18 -= go[62] * *cnV[62]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 -= go[29] * *cnV[29]; + RHS6 -= go[30] * *cnV[30]; const double f0 = 1.0 / m_A0; - const double f0_14 = -f0 * m_A30; - m_A35 += m_A1 * f0_14; - RHS14 += f0_14 * RHS0; + const double f0_5 = -f0 * m_A16; + m_A21 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_14 = -f1 * m_A31; - m_A35 += m_A3 * f1_14; - RHS14 += f1_14 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_14 = -f2 * m_A32; - m_A35 += m_A5 * f2_14; - RHS14 += f2_14 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_15 = -f3 * m_A37; - m_A38 += m_A7 * f3_15; - RHS15 += f3_15 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_14 = -f4 * m_A33; - m_A35 += m_A9 * f4_14; - RHS14 += f4_14 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_14 = -f5 * m_A34; - m_A35 += m_A11 * f5_14; - m_A36 += m_A12 * f5_14; - RHS14 += f5_14 * RHS5; - const double f5_17 = -f5 * m_A42; - m_A44 += m_A11 * f5_17; - m_A46 += m_A12 * f5_17; - RHS17 += f5_17 * RHS5; - const double f6 = 1.0 / m_A13; - const double f6_18 = -f6 * m_A48; - m_A58 += m_A14 * f6_18; - RHS18 += f6_18 * RHS6; - const double f7 = 1.0 / m_A15; - const double f7_18 = -f7 * m_A49; - m_A58 += m_A16 * f7_18; - RHS18 += f7_18 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_18 = -f8 * m_A50; - m_A58 += m_A18 * f8_18; - RHS18 += f8_18 * RHS8; - const double f9 = 1.0 / m_A19; - const double f9_18 = -f9 * m_A51; - m_A58 += m_A20 * f9_18; - RHS18 += f9_18 * RHS9; - const double f10 = 1.0 / m_A21; - const double f10_17 = -f10 * m_A43; - m_A46 += m_A22 * f10_17; - m_A47 += m_A23 * f10_17; - RHS17 += f10_17 * RHS10; - const double f10_18 = -f10 * m_A52; - m_A57 += m_A22 * f10_18; - m_A58 += m_A23 * f10_18; - RHS18 += f10_18 * RHS10; - const double f11 = 1.0 / m_A24; - const double f11_18 = -f11 * m_A53; - m_A58 += m_A25 * f11_18; - RHS18 += f11_18 * RHS11; - const double f12 = 1.0 / m_A26; - const double f12_18 = -f12 * m_A54; - m_A58 += m_A27 * f12_18; - RHS18 += f12_18 * RHS12; - const double f13 = 1.0 / m_A28; - const double f13_18 = -f13 * m_A55; - m_A58 += m_A29 * f13_18; - RHS18 += f13_18 * RHS13; - const double f14 = 1.0 / m_A35; - const double f14_17 = -f14 * m_A44; - m_A46 += m_A36 * f14_17; - RHS17 += f14_17 * RHS14; - const double f15 = 1.0 / m_A38; - const double f15_17 = -f15 * m_A45; - m_A46 += m_A39 * f15_17; - RHS17 += f15_17 * RHS15; - const double f16 = 1.0 / m_A40; - const double f16_18 = -f16 * m_A56; - m_A58 += m_A41 * f16_18; - RHS18 += f16_18 * RHS16; - const double f17 = 1.0 / m_A46; - const double f17_18 = -f17 * m_A57; - m_A58 += m_A47 * f17_18; - RHS18 += f17_18 * RHS17; - V[18] = RHS18 / m_A58; - double tmp17 = 0.0; - tmp17 += m_A47 * V[18]; - V[17] = (RHS17 - tmp17) / m_A46; - double tmp16 = 0.0; - tmp16 += m_A41 * V[18]; - V[16] = (RHS16 - tmp16) / m_A40; - double tmp15 = 0.0; - tmp15 += m_A39 * V[17]; - V[15] = (RHS15 - tmp15) / m_A38; - double tmp14 = 0.0; - tmp14 += m_A36 * V[17]; - V[14] = (RHS14 - tmp14) / m_A35; - double tmp13 = 0.0; - tmp13 += m_A29 * V[18]; - V[13] = (RHS13 - tmp13) / m_A28; - double tmp12 = 0.0; - tmp12 += m_A27 * V[18]; - V[12] = (RHS12 - tmp12) / m_A26; - double tmp11 = 0.0; - tmp11 += m_A25 * V[18]; - V[11] = (RHS11 - tmp11) / m_A24; - double tmp10 = 0.0; - tmp10 += m_A22 * V[17]; - tmp10 += m_A23 * V[18]; - V[10] = (RHS10 - tmp10) / m_A21; - double tmp9 = 0.0; - tmp9 += m_A20 * V[18]; - V[9] = (RHS9 - tmp9) / m_A19; - double tmp8 = 0.0; - tmp8 += m_A18 * V[18]; - V[8] = (RHS8 - tmp8) / m_A17; - double tmp7 = 0.0; - tmp7 += m_A16 * V[18]; - V[7] = (RHS7 - tmp7) / m_A15; - double tmp6 = 0.0; - tmp6 += m_A14 * V[18]; - V[6] = (RHS6 - tmp6) / m_A13; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_5 = -f1 * m_A17; + m_A19 += m_A3 * f1_5; + m_A21 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A12; + m_A13 += m_A6 * f2_4; + m_A14 += m_A7 * f2_4; + m_A15 += m_A8 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A18; + m_A20 += m_A6 * f2_5; + m_A21 += m_A7 * f2_5; + m_A22 += m_A8 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_6 = -f2 * m_A23; + m_A24 += m_A6 * f2_6; + m_A25 += m_A7 * f2_6; + m_A26 += m_A8 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_5 = -f3 * m_A19; + m_A21 += m_A11 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A13; + const double f4_5 = -f4 * m_A20; + m_A21 += m_A14 * f4_5; + m_A22 += m_A15 * f4_5; + RHS5 += f4_5 * RHS4; + const double f4_6 = -f4 * m_A24; + m_A25 += m_A14 * f4_6; + m_A26 += m_A15 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A21; + const double f5_6 = -f5 * m_A25; + m_A26 += m_A22 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A26; double tmp5 = 0.0; - tmp5 += m_A11 * V[14]; - tmp5 += m_A12 * V[17]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A22 * V[6]; + V[5] = (RHS5 - tmp5) / m_A21; double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A14 * V[5]; + tmp4 += m_A15 * V[6]; + V[4] = (RHS4 - tmp4) / m_A13; double tmp3 = 0.0; - tmp3 += m_A7 * V[15]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A11 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A5 * V[14]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + tmp2 += m_A8 * V[6]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[14]; + tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[5]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[14]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// warrior -static void nl_gcr_bff07f8d339f7cc4_89_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// pongf +static void nl_gcr_dbafc5ddaf7a08f8_35_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -26938,682 +58515,470 @@ double m_A32(0.0); double m_A33(0.0); double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); - double m_A76(0.0); - double m_A77(0.0); - double m_A78(0.0); - double m_A79(0.0); - double m_A80(0.0); - double m_A81(0.0); - double m_A82(0.0); - double m_A83(0.0); - double m_A84(0.0); - double m_A85(0.0); - double m_A86(0.0); - double m_A87(0.0); - double m_A88(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 -= go[3] * *cnV[3]; - m_A4 += gt[4]; - m_A4 += gt[5]; - m_A5 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A7 += go[6]; - m_A8 += go[7]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; - m_A11 += go[8]; - m_A10 += go[9]; - double RHS4 = Idr[8]; - RHS4 += Idr[9]; - m_A12 += gt[10]; - m_A12 += gt[11]; - m_A12 += gt[12]; - m_A12 += gt[13]; - m_A12 += gt[14]; - m_A12 += gt[15]; - m_A12 += gt[16]; - m_A13 += go[10]; - double RHS5 = Idr[10]; - RHS5 += Idr[11]; - RHS5 += Idr[12]; - RHS5 += Idr[13]; - RHS5 += Idr[14]; - RHS5 += Idr[15]; - RHS5 += Idr[16]; - RHS5 -= go[11] * *cnV[11]; - RHS5 -= go[12] * *cnV[12]; - RHS5 -= go[13] * *cnV[13]; - RHS5 -= go[14] * *cnV[14]; - RHS5 -= go[15] * *cnV[15]; - RHS5 -= go[16] * *cnV[16]; - m_A14 += gt[17]; - m_A14 += gt[18]; - m_A16 += go[17]; - m_A15 += go[18]; - double RHS6 = Idr[17]; - RHS6 += Idr[18]; - m_A17 += gt[19]; - m_A17 += gt[20]; - m_A19 += go[19]; - m_A18 += go[20]; - double RHS7 = Idr[19]; - RHS7 += Idr[20]; - m_A20 += gt[21]; - m_A20 += gt[22]; - m_A21 += go[21]; - double RHS8 = Idr[21]; - RHS8 += Idr[22]; - RHS8 -= go[22] * *cnV[22]; - m_A22 += gt[23]; - m_A22 += gt[24]; - m_A22 += gt[25]; - m_A24 += go[23]; - m_A23 += go[24]; - double RHS9 = Idr[23]; - RHS9 += Idr[24]; - RHS9 += Idr[25]; - RHS9 -= go[25] * *cnV[25]; - m_A25 += gt[26]; - m_A25 += gt[27]; - m_A26 += go[26]; - double RHS10 = Idr[26]; - RHS10 += Idr[27]; - RHS10 -= go[27] * *cnV[27]; - m_A27 += gt[28]; - m_A27 += gt[29]; - m_A27 += gt[30]; - m_A28 += go[28]; - m_A29 += go[29]; - double RHS11 = Idr[28]; - RHS11 += Idr[29]; - RHS11 += Idr[30]; - RHS11 -= go[30] * *cnV[30]; - m_A32 += gt[31]; - m_A32 += gt[32]; - m_A32 += gt[33]; - m_A31 += go[31]; - m_A30 += go[32]; - double RHS12 = Idr[31]; - RHS12 += Idr[32]; - RHS12 += Idr[33]; - RHS12 -= go[33] * *cnV[33]; - m_A35 += gt[34]; - m_A35 += gt[35]; - m_A35 += gt[36]; - m_A34 += go[34]; - m_A37 += go[35]; - double RHS13 = Idr[34]; - RHS13 += Idr[35]; - RHS13 += Idr[36]; - RHS13 -= go[36] * *cnV[36]; - m_A40 += gt[37]; - m_A40 += gt[38]; - m_A40 += gt[39]; - m_A39 += go[37]; - m_A38 += go[38]; - double RHS14 = Idr[37]; - RHS14 += Idr[38]; - RHS14 += Idr[39]; - RHS14 -= go[39] * *cnV[39]; - m_A43 += gt[40]; - m_A43 += gt[41]; - m_A43 += gt[42]; - m_A44 += go[40]; - m_A42 += go[41]; - double RHS15 = Idr[40]; - RHS15 += Idr[41]; - RHS15 += Idr[42]; - RHS15 -= go[42] * *cnV[42]; - m_A47 += gt[43]; - m_A47 += gt[44]; - m_A47 += gt[45]; - m_A47 += gt[46]; - m_A49 += go[43]; - m_A49 += go[44]; - m_A45 += go[45]; - double RHS16 = Idr[43]; - RHS16 += Idr[44]; - RHS16 += Idr[45]; - RHS16 += Idr[46]; - RHS16 -= go[46] * *cnV[46]; - m_A52 += gt[47]; - m_A52 += gt[48]; - m_A50 += go[47]; - m_A53 += go[48]; - double RHS17 = Idr[47]; - RHS17 += Idr[48]; - m_A56 += gt[49]; - m_A56 += gt[50]; - m_A56 += gt[51]; - m_A55 += go[49]; - m_A54 += go[50]; - double RHS18 = Idr[49]; - RHS18 += Idr[50]; - RHS18 += Idr[51]; - RHS18 -= go[51] * *cnV[51]; - m_A62 += gt[52]; - m_A62 += gt[53]; - m_A62 += gt[54]; - m_A62 += gt[55]; - m_A58 += go[52]; - m_A59 += go[53]; - m_A60 += go[54]; - double RHS19 = Idr[52]; - RHS19 += Idr[53]; - RHS19 += Idr[54]; - RHS19 += Idr[55]; - RHS19 -= go[55] * *cnV[55]; - m_A69 += gt[56]; - m_A69 += gt[57]; - m_A69 += gt[58]; - m_A66 += go[56]; - m_A67 += go[57]; - double RHS20 = Idr[56]; - RHS20 += Idr[57]; - RHS20 += Idr[58]; - RHS20 -= go[58] * *cnV[58]; - m_A78 += gt[59]; - m_A78 += gt[60]; - m_A78 += gt[61]; - m_A78 += gt[62]; - m_A78 += gt[63]; - m_A78 += gt[64]; - m_A72 += go[59]; - m_A73 += go[60]; - m_A75 += go[61]; - m_A75 += go[62]; - double RHS21 = Idr[59]; - RHS21 += Idr[60]; - RHS21 += Idr[61]; - RHS21 += Idr[62]; - RHS21 += Idr[63]; - RHS21 += Idr[64]; - RHS21 -= go[63] * *cnV[63]; - RHS21 -= go[64] * *cnV[64]; - m_A88 += gt[65]; - m_A88 += gt[66]; - m_A88 += gt[67]; - m_A88 += gt[68]; - m_A88 += gt[69]; - m_A83 += go[65]; - m_A81 += go[66]; - m_A82 += go[67]; - m_A80 += go[68]; - double RHS22 = Idr[65]; - RHS22 += Idr[66]; - RHS22 += Idr[67]; - RHS22 += Idr[68]; - RHS22 += Idr[69]; - RHS22 -= go[69] * *cnV[69]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A5 += go[8]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A9 += go[11]; + m_A7 += go[12]; + m_A7 += go[13]; + m_A7 += go[14]; + m_A8 += go[15]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A13 += go[16]; + m_A12 += go[17]; + m_A10 += go[18]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + m_A15 += gt[23]; + m_A15 += gt[24]; + m_A15 += gt[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A17 += go[23]; + m_A14 += go[24]; + m_A14 += go[25]; + m_A14 += go[26]; + double RHS5 = Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[27] * *cnV[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A19 += go[28]; + m_A20 += go[29]; + m_A18 += go[30]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 -= go[31] * *cnV[31]; + m_A28 += gt[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A29 += go[32]; + m_A25 += go[33]; + m_A26 += go[34]; + double RHS7 = Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + m_A34 += gt[35]; + m_A34 += gt[36]; + m_A34 += gt[37]; + m_A31 += go[35]; + m_A30 += go[36]; + m_A33 += go[37]; + double RHS8 = Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; const double f0 = 1.0 / m_A0; - const double f0_12 = -f0 * m_A30; - m_A32 += m_A1 * f0_12; - RHS12 += f0_12 * RHS0; + const double f0_4 = -f0 * m_A10; + m_A11 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_15 = -f1 * m_A42; - m_A43 += m_A3 * f1_15; - RHS15 += f1_15 * RHS1; + const double f1_6 = -f1 * m_A18; + m_A22 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_22 = -f2 * m_A80; - m_A88 += m_A5 * f2_22; - RHS22 += f2_22 * RHS2; + const double f2_7 = -f2 * m_A25; + m_A28 += m_A5 * f2_7; + RHS7 += f2_7 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_19 = -f3 * m_A58; - m_A62 += m_A7 * f3_19; - m_A65 += m_A8 * f3_19; - RHS19 += f3_19 * RHS3; - const double f3_22 = -f3 * m_A81; - m_A85 += m_A7 * f3_22; - m_A88 += m_A8 * f3_22; - RHS22 += f3_22 * RHS3; - const double f4 = 1.0 / m_A9; - const double f4_13 = -f4 * m_A34; - m_A35 += m_A10 * f4_13; - m_A36 += m_A11 * f4_13; - RHS13 += f4_13 * RHS4; - const double f4_16 = -f4 * m_A45; - m_A46 += m_A10 * f4_16; - m_A47 += m_A11 * f4_16; - RHS16 += f4_16 * RHS4; - const double f5 = 1.0 / m_A12; - const double f5_21 = -f5 * m_A72; - m_A75 += m_A13 * f5_21; - RHS21 += f5_21 * RHS5; - const double f6 = 1.0 / m_A14; - const double f6_12 = -f6 * m_A31; - m_A32 += m_A15 * f6_12; - m_A33 += m_A16 * f6_12; - RHS12 += f6_12 * RHS6; - const double f6_21 = -f6 * m_A73; - m_A74 += m_A15 * f6_21; - m_A78 += m_A16 * f6_21; - RHS21 += f6_21 * RHS6; - const double f7 = 1.0 / m_A17; - const double f7_19 = -f7 * m_A59; - m_A62 += m_A18 * f7_19; - m_A63 += m_A19 * f7_19; - RHS19 += f7_19 * RHS7; - const double f7_20 = -f7 * m_A66; - m_A68 += m_A18 * f7_20; - m_A69 += m_A19 * f7_20; - RHS20 += f7_20 * RHS7; - const double f8 = 1.0 / m_A20; - const double f8_14 = -f8 * m_A38; - m_A40 += m_A21 * f8_14; - RHS14 += f8_14 * RHS8; - const double f9 = 1.0 / m_A22; - const double f9_14 = -f9 * m_A39; - m_A40 += m_A23 * f9_14; - m_A41 += m_A24 * f9_14; - RHS14 += f9_14 * RHS9; - const double f9_17 = -f9 * m_A50; - m_A51 += m_A23 * f9_17; - m_A52 += m_A24 * f9_17; - RHS17 += f9_17 * RHS9; - const double f10 = 1.0 / m_A25; - const double f10_18 = -f10 * m_A54; - m_A56 += m_A26 * f10_18; - RHS18 += f10_18 * RHS10; - const double f11 = 1.0 / m_A27; - const double f11_18 = -f11 * m_A55; - m_A56 += m_A28 * f11_18; - m_A57 += m_A29 * f11_18; - RHS18 += f11_18 * RHS11; - const double f11_22 = -f11 * m_A82; - m_A84 += m_A28 * f11_22; - m_A88 += m_A29 * f11_22; - RHS22 += f11_22 * RHS11; - const double f12 = 1.0 / m_A32; - const double f12_21 = -f12 * m_A74; - m_A78 += m_A33 * f12_21; - RHS21 += f12_21 * RHS12; - const double f13 = 1.0 / m_A35; - const double f13_16 = -f13 * m_A46; - m_A47 += m_A36 * f13_16; - m_A48 += m_A37 * f13_16; - RHS16 += f13_16 * RHS13; - const double f13_19 = -f13 * m_A60; - m_A61 += m_A36 * f13_19; - m_A62 += m_A37 * f13_19; - RHS19 += f13_19 * RHS13; - const double f14 = 1.0 / m_A40; - const double f14_17 = -f14 * m_A51; - m_A52 += m_A41 * f14_17; - RHS17 += f14_17 * RHS14; - const double f15 = 1.0 / m_A43; - const double f15_20 = -f15 * m_A67; - m_A69 += m_A44 * f15_20; - RHS20 += f15_20 * RHS15; - const double f16 = 1.0 / m_A47; - const double f16_19 = -f16 * m_A61; - m_A62 += m_A48 * f16_19; - m_A64 += m_A49 * f16_19; - RHS19 += f16_19 * RHS16; - const double f16_21 = -f16 * m_A75; - m_A76 += m_A48 * f16_21; - m_A78 += m_A49 * f16_21; - RHS21 += f16_21 * RHS16; - const double f17 = 1.0 / m_A52; - const double f17_22 = -f17 * m_A83; - m_A88 += m_A53 * f17_22; - RHS22 += f17_22 * RHS17; - const double f18 = 1.0 / m_A56; - const double f18_22 = -f18 * m_A84; - m_A88 += m_A57 * f18_22; - RHS22 += f18_22 * RHS18; - const double f19 = 1.0 / m_A62; - const double f19_20 = -f19 * m_A68; - m_A69 += m_A63 * f19_20; - m_A70 += m_A64 * f19_20; - m_A71 += m_A65 * f19_20; - RHS20 += f19_20 * RHS19; - const double f19_21 = -f19 * m_A76; - m_A77 += m_A63 * f19_21; - m_A78 += m_A64 * f19_21; - m_A79 += m_A65 * f19_21; - RHS21 += f19_21 * RHS19; - const double f19_22 = -f19 * m_A85; - m_A86 += m_A63 * f19_22; - m_A87 += m_A64 * f19_22; - m_A88 += m_A65 * f19_22; - RHS22 += f19_22 * RHS19; - const double f20 = 1.0 / m_A69; - const double f20_21 = -f20 * m_A77; - m_A78 += m_A70 * f20_21; - m_A79 += m_A71 * f20_21; - RHS21 += f20_21 * RHS20; - const double f20_22 = -f20 * m_A86; - m_A87 += m_A70 * f20_22; - m_A88 += m_A71 * f20_22; - RHS22 += f20_22 * RHS20; - const double f21 = 1.0 / m_A78; - const double f21_22 = -f21 * m_A87; - m_A88 += m_A79 * f21_22; - RHS22 += f21_22 * RHS21; - V[22] = RHS22 / m_A88; - double tmp21 = 0.0; - tmp21 += m_A79 * V[22]; - V[21] = (RHS21 - tmp21) / m_A78; - double tmp20 = 0.0; - tmp20 += m_A70 * V[21]; - tmp20 += m_A71 * V[22]; - V[20] = (RHS20 - tmp20) / m_A69; - double tmp19 = 0.0; - tmp19 += m_A63 * V[20]; - tmp19 += m_A64 * V[21]; - tmp19 += m_A65 * V[22]; - V[19] = (RHS19 - tmp19) / m_A62; - double tmp18 = 0.0; - tmp18 += m_A57 * V[22]; - V[18] = (RHS18 - tmp18) / m_A56; - double tmp17 = 0.0; - tmp17 += m_A53 * V[22]; - V[17] = (RHS17 - tmp17) / m_A52; - double tmp16 = 0.0; - tmp16 += m_A48 * V[19]; - tmp16 += m_A49 * V[21]; - V[16] = (RHS16 - tmp16) / m_A47; - double tmp15 = 0.0; - tmp15 += m_A44 * V[20]; - V[15] = (RHS15 - tmp15) / m_A43; - double tmp14 = 0.0; - tmp14 += m_A41 * V[17]; - V[14] = (RHS14 - tmp14) / m_A40; - double tmp13 = 0.0; - tmp13 += m_A36 * V[16]; - tmp13 += m_A37 * V[19]; - V[13] = (RHS13 - tmp13) / m_A35; - double tmp12 = 0.0; - tmp12 += m_A33 * V[21]; - V[12] = (RHS12 - tmp12) / m_A32; - double tmp11 = 0.0; - tmp11 += m_A28 * V[18]; - tmp11 += m_A29 * V[22]; - V[11] = (RHS11 - tmp11) / m_A27; + const double f3_5 = -f3 * m_A14; + m_A15 += m_A7 * f3_5; + m_A16 += m_A8 * f3_5; + m_A17 += m_A9 * f3_5; + RHS5 += f3_5 * RHS3; + const double f3_6 = -f3 * m_A19; + m_A21 += m_A7 * f3_6; + m_A22 += m_A8 * f3_6; + m_A24 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_8 = -f3 * m_A30; + m_A31 += m_A7 * f3_8; + m_A32 += m_A8 * f3_8; + m_A34 += m_A9 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_6 = -f4 * m_A20; + m_A22 += m_A12 * f4_6; + m_A23 += m_A13 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_7 = -f4 * m_A26; + m_A27 += m_A12 * f4_7; + m_A28 += m_A13 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A15; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A16 * f5_6; + m_A24 += m_A17 * f5_6; + RHS6 += f5_6 * RHS5; + const double f5_8 = -f5 * m_A31; + m_A32 += m_A16 * f5_8; + m_A34 += m_A17 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A22; + const double f6_7 = -f6 * m_A27; + m_A28 += m_A23 * f6_7; + m_A29 += m_A24 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A32; + m_A33 += m_A23 * f6_8; + m_A34 += m_A24 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A28; + const double f7_8 = -f7 * m_A33; + m_A34 += m_A29 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A34; + double tmp7 = 0.0; + tmp7 += m_A29 * V[8]; + V[7] = (RHS7 - tmp7) / m_A28; + double tmp6 = 0.0; + tmp6 += m_A23 * V[7]; + tmp6 += m_A24 * V[8]; + V[6] = (RHS6 - tmp6) / m_A22; + double tmp5 = 0.0; + tmp5 += m_A16 * V[6]; + tmp5 += m_A17 * V[8]; + V[5] = (RHS5 - tmp5) / m_A15; + double tmp4 = 0.0; + tmp4 += m_A12 * V[6]; + tmp4 += m_A13 * V[7]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A7 * V[5]; + tmp3 += m_A8 * V[6]; + tmp3 += m_A9 * V[8]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[7]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[6]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_dcbecbc127c5868f_36_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A5 += go[11]; + double RHS2 = Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[12] * *cnV[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A7 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A9 += go[16]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A11 += go[19]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + RHS5 -= go[20] * *cnV[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A14 += go[21]; + m_A12 += go[22]; + double RHS6 = Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A15 += go[24]; + m_A17 += go[25]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 -= go[26] * *cnV[26]; + m_A19 += gt[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A19 += gt[30]; + m_A20 += go[27]; + m_A18 += go[28]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + m_A24 += gt[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A24 += gt[34]; + m_A24 += gt[35]; + m_A23 += go[31]; + m_A26 += go[32]; + m_A25 += go[33]; + m_A22 += go[34]; + m_A21 += go[35]; + double RHS9 = Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + m_A29 += gt[36]; + m_A29 += gt[37]; + m_A28 += go[36]; + m_A27 += go[37]; + double RHS10 = Idr[36]; + RHS10 += Idr[37]; + m_A35 += gt[38]; + m_A35 += gt[39]; + m_A35 += gt[40]; + m_A35 += gt[41]; + m_A35 += gt[42]; + m_A30 += go[38]; + m_A31 += go[39]; + m_A33 += go[40]; + double RHS11 = Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A30; + m_A32 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A12; + m_A13 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_9 = -f2 * m_A21; + m_A25 += m_A5 * f2_9; + RHS9 += f2_9 * RHS2; + const double f2_10 = -f2 * m_A27; + m_A29 += m_A5 * f2_10; + RHS10 += f2_10 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_8 = -f3 * m_A18; + m_A20 += m_A7 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_9 = -f3 * m_A22; + m_A24 += m_A7 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_7 = -f4 * m_A15; + m_A16 += m_A9 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_9 = -f5 * m_A23; + m_A24 += m_A11 * f5_9; + RHS9 += f5_9 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_10 = -f6 * m_A28; + m_A29 += m_A14 * f6_10; + RHS10 += f6_10 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_11 = -f7 * m_A31; + m_A35 += m_A17 * f7_11; + RHS11 += f7_11 * RHS7; + const double f8 = 1.0 / m_A19; + const double f8_11 = -f8 * m_A32; + m_A33 += m_A20 * f8_11; + RHS11 += f8_11 * RHS8; + const double f9 = 1.0 / m_A24; + const double f9_11 = -f9 * m_A33; + m_A34 += m_A25 * f9_11; + m_A35 += m_A26 * f9_11; + RHS11 += f9_11 * RHS9; + const double f10 = 1.0 / m_A29; + const double f10_11 = -f10 * m_A34; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A35; double tmp10 = 0.0; - tmp10 += m_A26 * V[18]; - V[10] = (RHS10 - tmp10) / m_A25; + V[10] = (RHS10 - tmp10) / m_A29; double tmp9 = 0.0; - tmp9 += m_A23 * V[14]; - tmp9 += m_A24 * V[17]; - V[9] = (RHS9 - tmp9) / m_A22; + tmp9 += m_A25 * V[10]; + tmp9 += m_A26 * V[11]; + V[9] = (RHS9 - tmp9) / m_A24; double tmp8 = 0.0; - tmp8 += m_A21 * V[14]; - V[8] = (RHS8 - tmp8) / m_A20; - double tmp7 = 0.0; - tmp7 += m_A18 * V[19]; - tmp7 += m_A19 * V[20]; - V[7] = (RHS7 - tmp7) / m_A17; + tmp8 += m_A20 * V[9]; + V[8] = (RHS8 - tmp8) / m_A19; + double tmp7 = 0.0; + tmp7 += m_A17 * V[11]; + V[7] = (RHS7 - tmp7) / m_A16; double tmp6 = 0.0; - tmp6 += m_A15 * V[12]; - tmp6 += m_A16 * V[21]; - V[6] = (RHS6 - tmp6) / m_A14; + tmp6 += m_A14 * V[10]; + V[6] = (RHS6 - tmp6) / m_A13; double tmp5 = 0.0; - tmp5 += m_A13 * V[16]; - V[5] = (RHS5 - tmp5) / m_A12; + tmp5 += m_A11 * V[9]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A10 * V[13]; - tmp4 += m_A11 * V[16]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A9 * V[7]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[19]; - tmp3 += m_A8 * V[22]; + tmp3 += m_A7 * V[9]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[22]; + tmp2 += m_A5 * V[10]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[15]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[12]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// tailg -static void nl_gcr_c4cec7aed23b7b94_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A4 += go[2]; - m_A3 += go[3]; - m_A3 += go[4]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A5 += gt[7]; - m_A5 += gt[8]; - m_A5 += gt[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A5 += gt[12]; - m_A7 += go[7]; - m_A6 += go[8]; - m_A6 += go[9]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 -= go[10] * *cnV[10]; - RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A9 += gt[15]; - m_A9 += gt[16]; - m_A9 += gt[17]; - m_A10 += go[13]; - m_A10 += go[14]; - m_A8 += go[15]; - m_A8 += go[16]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 -= go[17] * *cnV[17]; - m_A12 += gt[18]; - m_A12 += gt[19]; - m_A12 += gt[20]; - m_A12 += gt[21]; - m_A12 += gt[22]; - m_A13 += go[18]; - m_A13 += go[19]; - m_A11 += go[20]; - m_A11 += go[21]; - double RHS4 = Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 -= go[22] * *cnV[22]; - m_A17 += gt[23]; - m_A17 += gt[24]; - m_A17 += gt[25]; - m_A17 += gt[26]; - m_A17 += gt[27]; - m_A17 += gt[28]; - m_A18 += go[23]; - m_A16 += go[24]; - m_A16 += go[25]; - m_A15 += go[26]; - m_A14 += go[27]; - double RHS5 = Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - RHS5 -= go[28] * *cnV[28]; - m_A22 += gt[29]; - m_A22 += gt[30]; - m_A22 += gt[31]; - m_A22 += gt[32]; - m_A20 += go[29]; - m_A20 += go[30]; - m_A19 += go[31]; - m_A21 += go[32]; - double RHS6 = Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A14; - m_A17 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A8; - m_A9 += m_A3 * f1_3; - m_A10 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_5 = -f1 * m_A15; - m_A16 += m_A3 * f1_5; - m_A17 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A11; - m_A12 += m_A6 * f2_4; - m_A13 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_6 = -f2 * m_A19; - m_A20 += m_A6 * f2_6; - m_A22 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_5 = -f3 * m_A16; - m_A17 += m_A10 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A12; - const double f4_6 = -f4 * m_A20; - m_A22 += m_A13 * f4_6; - RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A17; - const double f5_6 = -f5 * m_A21; - m_A22 += m_A18 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A22; - double tmp5 = 0.0; - tmp5 += m_A18 * V[6]; - V[5] = (RHS5 - tmp5) / m_A17; - double tmp4 = 0.0; - tmp4 += m_A13 * V[6]; - V[4] = (RHS4 - tmp4) / m_A12; - double tmp3 = 0.0; - tmp3 += m_A10 * V[5]; - V[3] = (RHS3 - tmp3) / m_A9; - double tmp2 = 0.0; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[6]; - V[2] = (RHS2 - tmp2) / m_A5; - double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; - tmp1 += m_A4 * V[5]; + tmp1 += m_A3 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[8]; V[0] = (RHS0 - tmp0) / m_A0; } -// popeye -static void nl_gcr_c6f25bb06e161d1c_50_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// sundance +static void nl_gcr_e02a162cb515a958_100_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -27668,288 +59033,667 @@ double m_A47(0.0); double m_A48(0.0); double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A5 += go[6]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[7] * *cnV[7]; - RHS2 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[8] * *cnV[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; m_A6 += gt[12]; m_A6 += gt[13]; m_A6 += gt[14]; - m_A10 += go[9]; - m_A7 += go[10]; - m_A8 += go[11]; - m_A9 += go[12]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; - RHS3 += Idr[11]; - RHS3 += Idr[12]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A6 += gt[17]; + m_A6 += gt[18]; + m_A7 += go[12]; + double RHS3 = Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; RHS3 -= go[13] * *cnV[13]; RHS3 -= go[14] * *cnV[14]; - m_A11 += gt[15]; - m_A11 += gt[16]; - m_A11 += gt[17]; - m_A11 += gt[18]; - m_A11 += gt[19]; - m_A13 += go[15]; - m_A13 += go[16]; - m_A12 += go[17]; - double RHS4 = Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 -= go[18] * *cnV[18]; - RHS4 -= go[19] * *cnV[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A14 += gt[22]; - m_A14 += gt[23]; - m_A14 += gt[24]; - m_A16 += go[20]; - m_A15 += go[21]; - m_A15 += go[22]; - double RHS5 = Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 -= go[23] * *cnV[23]; - RHS5 -= go[24] * *cnV[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A19 += gt[27]; - m_A18 += go[25]; - m_A17 += go[26]; - double RHS6 = Idr[25]; - RHS6 += Idr[26]; - RHS6 += Idr[27]; - RHS6 -= go[27] * *cnV[27]; - m_A26 += gt[28]; - m_A26 += gt[29]; - m_A26 += gt[30]; - m_A24 += go[28]; - m_A23 += go[29]; - double RHS7 = Idr[28]; - RHS7 += Idr[29]; - RHS7 += Idr[30]; - RHS7 -= go[30] * *cnV[30]; - m_A33 += gt[31]; - m_A33 += gt[32]; - m_A33 += gt[33]; - m_A30 += go[31]; - m_A29 += go[32]; - double RHS8 = Idr[31]; - RHS8 += Idr[32]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A8 += gt[22]; + m_A8 += gt[23]; + m_A8 += gt[24]; + m_A8 += gt[25]; + m_A9 += go[19]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + RHS4 -= go[25] * *cnV[25]; + m_A10 += gt[26]; + m_A10 += gt[27]; + m_A11 += go[26]; + double RHS5 = Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[27] * *cnV[27]; + m_A12 += gt[28]; + m_A12 += gt[29]; + m_A13 += go[28]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 -= go[29] * *cnV[29]; + m_A14 += gt[30]; + m_A14 += gt[31]; + m_A15 += go[30]; + double RHS7 = Idr[30]; + RHS7 += Idr[31]; + RHS7 -= go[31] * *cnV[31]; + m_A16 += gt[32]; + m_A16 += gt[33]; + m_A16 += gt[34]; + m_A16 += gt[35]; + m_A18 += go[32]; + m_A17 += go[33]; + m_A17 += go[34]; + double RHS8 = Idr[32]; RHS8 += Idr[33]; - RHS8 -= go[33] * *cnV[33]; - m_A40 += gt[34]; - m_A40 += gt[35]; - m_A40 += gt[36]; - m_A40 += gt[37]; - m_A36 += go[34]; - m_A35 += go[35]; - double RHS9 = Idr[34]; - RHS9 += Idr[35]; - RHS9 += Idr[36]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 -= go[35] * *cnV[35]; + m_A19 += gt[36]; + m_A19 += gt[37]; + m_A19 += gt[38]; + m_A20 += go[36]; + double RHS9 = Idr[36]; RHS9 += Idr[37]; - RHS9 -= go[36] * *cnV[36]; + RHS9 += Idr[38]; RHS9 -= go[37] * *cnV[37]; - m_A45 += gt[38]; - m_A45 += gt[39]; - m_A45 += gt[40]; - m_A45 += gt[41]; - m_A45 += gt[42]; - m_A45 += gt[43]; - m_A45 += gt[44]; - m_A45 += gt[45]; - m_A43 += go[38]; - m_A43 += go[39]; - m_A42 += go[40]; - m_A42 += go[41]; - double RHS10 = Idr[38]; - RHS10 += Idr[39]; + RHS9 -= go[38] * *cnV[38]; + m_A21 += gt[39]; + m_A21 += gt[40]; + m_A21 += gt[41]; + m_A22 += go[39]; + double RHS10 = Idr[39]; RHS10 += Idr[40]; RHS10 += Idr[41]; - RHS10 += Idr[42]; - RHS10 += Idr[43]; - RHS10 += Idr[44]; - RHS10 += Idr[45]; - RHS10 -= go[42] * *cnV[42]; - RHS10 -= go[43] * *cnV[43]; - RHS10 -= go[44] * *cnV[44]; - RHS10 -= go[45] * *cnV[45]; - m_A49 += gt[46]; - m_A49 += gt[47]; - m_A47 += go[46]; - double RHS11 = Idr[46]; - RHS11 += Idr[47]; - RHS11 -= go[47] * *cnV[47]; + RHS10 -= go[40] * *cnV[40]; + RHS10 -= go[41] * *cnV[41]; + m_A23 += gt[42]; + m_A23 += gt[43]; + m_A23 += gt[44]; + m_A23 += gt[45]; + m_A24 += go[42]; + m_A25 += go[43]; + m_A25 += go[44]; + double RHS11 = Idr[42]; + RHS11 += Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 -= go[45] * *cnV[45]; + m_A27 += gt[46]; + m_A27 += gt[47]; + m_A26 += go[46]; + double RHS12 = Idr[46]; + RHS12 += Idr[47]; + RHS12 -= go[47] * *cnV[47]; + m_A29 += gt[48]; + m_A29 += gt[49]; + m_A29 += gt[50]; + m_A29 += gt[51]; + m_A28 += go[48]; + m_A30 += go[49]; + double RHS13 = Idr[48]; + RHS13 += Idr[49]; + RHS13 += Idr[50]; + RHS13 += Idr[51]; + RHS13 -= go[50] * *cnV[50]; + RHS13 -= go[51] * *cnV[51]; + m_A31 += gt[52]; + m_A31 += gt[53]; + m_A31 += gt[54]; + m_A32 += go[52]; + double RHS14 = Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 -= go[53] * *cnV[53]; + RHS14 -= go[54] * *cnV[54]; + m_A34 += gt[55]; + m_A34 += gt[56]; + m_A35 += go[55]; + m_A33 += go[56]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + m_A38 += gt[57]; + m_A38 += gt[58]; + m_A38 += gt[59]; + m_A39 += go[57]; + m_A37 += go[58]; + m_A36 += go[59]; + double RHS16 = Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + m_A41 += gt[60]; + m_A41 += gt[61]; + m_A41 += gt[62]; + m_A41 += gt[63]; + m_A41 += gt[64]; + m_A41 += gt[65]; + m_A41 += gt[66]; + m_A41 += gt[67]; + m_A42 += go[60]; + m_A42 += go[61]; + m_A43 += go[62]; + m_A43 += go[63]; + m_A40 += go[64]; + m_A40 += go[65]; + double RHS17 = Idr[60]; + RHS17 += Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + RHS17 += Idr[66]; + RHS17 += Idr[67]; + RHS17 -= go[66] * *cnV[66]; + RHS17 -= go[67] * *cnV[67]; + m_A46 += gt[68]; + m_A46 += gt[69]; + m_A46 += gt[70]; + m_A46 += gt[71]; + m_A44 += go[68]; + m_A48 += go[69]; + double RHS18 = Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 -= go[70] * *cnV[70]; + RHS18 -= go[71] * *cnV[71]; + m_A52 += gt[72]; + m_A52 += gt[73]; + m_A52 += gt[74]; + m_A52 += gt[75]; + m_A50 += go[72]; + m_A51 += go[73]; + m_A51 += go[74]; + m_A49 += go[75]; + double RHS19 = Idr[72]; + RHS19 += Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + m_A55 += gt[76]; + m_A55 += gt[77]; + m_A55 += gt[78]; + m_A55 += gt[79]; + m_A56 += go[76]; + m_A54 += go[77]; + double RHS20 = Idr[76]; + RHS20 += Idr[77]; + RHS20 += Idr[78]; + RHS20 += Idr[79]; + RHS20 -= go[78] * *cnV[78]; + RHS20 -= go[79] * *cnV[79]; + m_A60 += gt[80]; + m_A60 += gt[81]; + m_A60 += gt[82]; + m_A60 += gt[83]; + m_A60 += gt[84]; + m_A62 += go[80]; + m_A59 += go[81]; + m_A58 += go[82]; + m_A57 += go[83]; + double RHS21 = Idr[80]; + RHS21 += Idr[81]; + RHS21 += Idr[82]; + RHS21 += Idr[83]; + RHS21 += Idr[84]; + RHS21 -= go[84] * *cnV[84]; + m_A64 += gt[85]; + m_A64 += gt[86]; + m_A64 += gt[87]; + m_A64 += gt[88]; + m_A65 += go[85]; + m_A63 += go[86]; + double RHS22 = Idr[85]; + RHS22 += Idr[86]; + RHS22 += Idr[87]; + RHS22 += Idr[88]; + RHS22 -= go[87] * *cnV[87]; + RHS22 -= go[88] * *cnV[88]; + m_A69 += gt[89]; + m_A69 += gt[90]; + m_A69 += gt[91]; + m_A69 += gt[92]; + m_A68 += go[89]; + m_A70 += go[90]; + m_A67 += go[91]; + m_A66 += go[92]; + double RHS23 = Idr[89]; + RHS23 += Idr[90]; + RHS23 += Idr[91]; + RHS23 += Idr[92]; + m_A77 += gt[93]; + m_A77 += gt[94]; + m_A77 += gt[95]; + m_A77 += gt[96]; + m_A77 += gt[97]; + m_A77 += gt[98]; + m_A71 += go[93]; + m_A72 += go[94]; + m_A73 += go[95]; + m_A76 += go[96]; + double RHS24 = Idr[93]; + RHS24 += Idr[94]; + RHS24 += Idr[95]; + RHS24 += Idr[96]; + RHS24 += Idr[97]; + RHS24 += Idr[98]; + RHS24 -= go[97] * *cnV[97]; + RHS24 -= go[98] * *cnV[98]; + m_A82 += gt[99]; + m_A82 += gt[100]; + m_A82 += gt[101]; + m_A82 += gt[102]; + m_A82 += gt[103]; + m_A82 += gt[104]; + m_A82 += gt[105]; + m_A82 += gt[106]; + m_A80 += go[99]; + m_A80 += go[100]; + m_A79 += go[101]; + m_A83 += go[102]; + m_A83 += go[103]; + double RHS25 = Idr[99]; + RHS25 += Idr[100]; + RHS25 += Idr[101]; + RHS25 += Idr[102]; + RHS25 += Idr[103]; + RHS25 += Idr[104]; + RHS25 += Idr[105]; + RHS25 += Idr[106]; + RHS25 -= go[104] * *cnV[104]; + RHS25 -= go[105] * *cnV[105]; + RHS25 -= go[106] * *cnV[106]; + m_A90 += gt[107]; + m_A90 += gt[108]; + m_A90 += gt[109]; + m_A90 += gt[110]; + m_A90 += gt[111]; + m_A91 += go[107]; + m_A86 += go[108]; + m_A87 += go[109]; + m_A85 += go[110]; + m_A84 += go[111]; + double RHS26 = Idr[107]; + RHS26 += Idr[108]; + RHS26 += Idr[109]; + RHS26 += Idr[110]; + RHS26 += Idr[111]; + m_A99 += gt[112]; + m_A99 += gt[113]; + m_A99 += gt[114]; + m_A99 += gt[115]; + m_A99 += gt[116]; + m_A99 += gt[117]; + m_A99 += gt[118]; + m_A99 += gt[119]; + m_A99 += gt[120]; + m_A92 += go[112]; + m_A93 += go[113]; + m_A93 += go[114]; + m_A97 += go[115]; + m_A97 += go[116]; + m_A94 += go[117]; + m_A98 += go[118]; + double RHS27 = Idr[112]; + RHS27 += Idr[113]; + RHS27 += Idr[114]; + RHS27 += Idr[115]; + RHS27 += Idr[116]; + RHS27 += Idr[117]; + RHS27 += Idr[118]; + RHS27 += Idr[119]; + RHS27 += Idr[120]; + RHS27 -= go[119] * *cnV[119]; + RHS27 -= go[120] * *cnV[120]; const double f0 = 1.0 / m_A0; - const double f0_8 = -f0 * m_A29; - m_A33 += m_A1 * f0_8; - RHS8 += f0_8 * RHS0; + const double f0_27 = -f0 * m_A92; + m_A95 += m_A1 * f0_27; + RHS27 += f0_27 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A23; - m_A26 += m_A3 * f1_7; - RHS7 += f1_7 * RHS1; + const double f1_12 = -f1 * m_A26; + m_A27 += m_A3 * f1_12; + RHS12 += f1_12 * RHS1; + const double f1_23 = -f1 * m_A66; + m_A68 += m_A3 * f1_23; + RHS23 += f1_23 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A17; - m_A19 += m_A5 * f2_6; - RHS6 += f2_6 * RHS2; + const double f2_13 = -f2 * m_A28; + m_A30 += m_A5 * f2_13; + RHS13 += f2_13 * RHS2; + const double f2_23 = -f2 * m_A67; + m_A69 += m_A5 * f2_23; + RHS23 += f2_23 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A18; - m_A19 += m_A7 * f3_6; - m_A20 += m_A8 * f3_6; - m_A21 += m_A9 * f3_6; - m_A22 += m_A10 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_7 = -f3 * m_A24; - m_A25 += m_A7 * f3_7; - m_A26 += m_A8 * f3_7; - m_A27 += m_A9 * f3_7; - m_A28 += m_A10 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_8 = -f3 * m_A30; - m_A31 += m_A7 * f3_8; - m_A32 += m_A8 * f3_8; - m_A33 += m_A9 * f3_8; - m_A34 += m_A10 * f3_8; - RHS8 += f3_8 * RHS3; - const double f3_9 = -f3 * m_A35; - m_A37 += m_A7 * f3_9; - m_A38 += m_A8 * f3_9; - m_A39 += m_A9 * f3_9; - m_A40 += m_A10 * f3_9; - RHS9 += f3_9 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_9 = -f4 * m_A36; - m_A40 += m_A12 * f4_9; - m_A41 += m_A13 * f4_9; - RHS9 += f4_9 * RHS4; - const double f4_10 = -f4 * m_A42; - m_A44 += m_A12 * f4_10; - m_A45 += m_A13 * f4_10; - RHS10 += f4_10 * RHS4; - const double f5 = 1.0 / m_A14; - const double f5_10 = -f5 * m_A43; - m_A45 += m_A15 * f5_10; - m_A46 += m_A16 * f5_10; - RHS10 += f5_10 * RHS5; - const double f5_11 = -f5 * m_A47; - m_A48 += m_A15 * f5_11; - m_A49 += m_A16 * f5_11; - RHS11 += f5_11 * RHS5; - const double f6 = 1.0 / m_A19; - const double f6_7 = -f6 * m_A25; - m_A26 += m_A20 * f6_7; - m_A27 += m_A21 * f6_7; - m_A28 += m_A22 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A31; - m_A32 += m_A20 * f6_8; - m_A33 += m_A21 * f6_8; - m_A34 += m_A22 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_9 = -f6 * m_A37; - m_A38 += m_A20 * f6_9; - m_A39 += m_A21 * f6_9; - m_A40 += m_A22 * f6_9; - RHS9 += f6_9 * RHS6; - const double f7 = 1.0 / m_A26; - const double f7_8 = -f7 * m_A32; - m_A33 += m_A27 * f7_8; - m_A34 += m_A28 * f7_8; - RHS8 += f7_8 * RHS7; - const double f7_9 = -f7 * m_A38; - m_A39 += m_A27 * f7_9; - m_A40 += m_A28 * f7_9; - RHS9 += f7_9 * RHS7; - const double f8 = 1.0 / m_A33; - const double f8_9 = -f8 * m_A39; - m_A40 += m_A34 * f8_9; - RHS9 += f8_9 * RHS8; - const double f9 = 1.0 / m_A40; - const double f9_10 = -f9 * m_A44; - m_A45 += m_A41 * f9_10; - RHS10 += f9_10 * RHS9; - const double f10 = 1.0 / m_A45; - const double f10_11 = -f10 * m_A48; - m_A49 += m_A46 * f10_11; - RHS11 += f10_11 * RHS10; - V[11] = RHS11 / m_A49; + const double f3_18 = -f3 * m_A44; + m_A45 += m_A7 * f3_18; + RHS18 += f3_18 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_24 = -f4 * m_A71; + m_A74 += m_A9 * f4_24; + RHS24 += f4_24 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_16 = -f5 * m_A36; + m_A38 += m_A11 * f5_16; + RHS16 += f5_16 * RHS5; + const double f5_21 = -f5 * m_A57; + m_A59 += m_A11 * f5_21; + RHS21 += f5_21 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_15 = -f6 * m_A33; + m_A34 += m_A13 * f6_15; + RHS15 += f6_15 * RHS6; + const double f6_26 = -f6 * m_A84; + m_A86 += m_A13 * f6_26; + RHS26 += f6_26 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_16 = -f7 * m_A37; + m_A38 += m_A15 * f7_16; + RHS16 += f7_16 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_17 = -f8 * m_A40; + m_A41 += m_A17 * f8_17; + m_A42 += m_A18 * f8_17; + RHS17 += f8_17 * RHS8; + const double f8_19 = -f8 * m_A49; + m_A51 += m_A17 * f8_19; + m_A52 += m_A18 * f8_19; + RHS19 += f8_19 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_19 = -f9 * m_A50; + m_A52 += m_A20 * f9_19; + RHS19 += f9_19 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_22 = -f10 * m_A63; + m_A65 += m_A22 * f10_22; + RHS22 += f10_22 * RHS10; + const double f10_26 = -f10 * m_A85; + m_A90 += m_A22 * f10_26; + RHS26 += f10_26 * RHS10; + const double f11 = 1.0 / m_A23; + const double f11_25 = -f11 * m_A79; + m_A82 += m_A24 * f11_25; + m_A83 += m_A25 * f11_25; + RHS25 += f11_25 * RHS11; + const double f11_27 = -f11 * m_A93; + m_A97 += m_A24 * f11_27; + m_A99 += m_A25 * f11_27; + RHS27 += f11_27 * RHS11; + const double f12 = 1.0 / m_A27; + const double f12_23 = -f12 * m_A68; + RHS23 += f12_23 * RHS12; + const double f13 = 1.0 / m_A29; + const double f13_18 = -f13 * m_A45; + m_A47 += m_A30 * f13_18; + RHS18 += f13_18 * RHS13; + const double f14 = 1.0 / m_A31; + const double f14_20 = -f14 * m_A54; + m_A56 += m_A32 * f14_20; + RHS20 += f14_20 * RHS14; + const double f14_21 = -f14 * m_A58; + m_A60 += m_A32 * f14_21; + RHS21 += f14_21 * RHS14; + const double f15 = 1.0 / m_A34; + const double f15_24 = -f15 * m_A72; + m_A77 += m_A35 * f15_24; + RHS24 += f15_24 * RHS15; + const double f15_26 = -f15 * m_A86; + m_A89 += m_A35 * f15_26; + RHS26 += f15_26 * RHS15; + const double f16 = 1.0 / m_A38; + const double f16_21 = -f16 * m_A59; + m_A61 += m_A39 * f16_21; + RHS21 += f16_21 * RHS16; + const double f16_24 = -f16 * m_A73; + m_A77 += m_A39 * f16_24; + RHS24 += f16_24 * RHS16; + const double f17 = 1.0 / m_A41; + const double f17_19 = -f17 * m_A51; + m_A52 += m_A42 * f17_19; + m_A53 += m_A43 * f17_19; + RHS19 += f17_19 * RHS17; + const double f17_25 = -f17 * m_A80; + m_A81 += m_A42 * f17_25; + m_A82 += m_A43 * f17_25; + RHS25 += f17_25 * RHS17; + const double f18 = 1.0 / m_A46; + const double f18_26 = -f18 * m_A87; + m_A88 += m_A47 * f18_26; + m_A90 += m_A48 * f18_26; + RHS26 += f18_26 * RHS18; + const double f19 = 1.0 / m_A52; + const double f19_25 = -f19 * m_A81; + m_A82 += m_A53 * f19_25; + RHS25 += f19_25 * RHS19; + const double f20 = 1.0 / m_A55; + const double f20_24 = -f20 * m_A74; + m_A75 += m_A56 * f20_24; + RHS24 += f20_24 * RHS20; + const double f21 = 1.0 / m_A60; + const double f21_24 = -f21 * m_A75; + m_A77 += m_A61 * f21_24; + m_A78 += m_A62 * f21_24; + RHS24 += f21_24 * RHS21; + const double f21_27 = -f21 * m_A94; + m_A96 += m_A61 * f21_27; + m_A99 += m_A62 * f21_27; + RHS27 += f21_27 * RHS21; + const double f22 = 1.0 / m_A64; + const double f22_27 = -f22 * m_A95; + m_A98 += m_A65 * f22_27; + RHS27 += f22_27 * RHS22; + const double f23 = 1.0 / m_A69; + const double f23_24 = -f23 * m_A76; + m_A77 += m_A70 * f23_24; + RHS24 += f23_24 * RHS23; + const double f23_26 = -f23 * m_A88; + m_A89 += m_A70 * f23_26; + RHS26 += f23_26 * RHS23; + const double f24 = 1.0 / m_A77; + const double f24_26 = -f24 * m_A89; + m_A91 += m_A78 * f24_26; + RHS26 += f24_26 * RHS24; + const double f24_27 = -f24 * m_A96; + m_A99 += m_A78 * f24_27; + RHS27 += f24_27 * RHS24; + const double f25 = 1.0 / m_A82; + const double f25_27 = -f25 * m_A97; + m_A99 += m_A83 * f25_27; + RHS27 += f25_27 * RHS25; + const double f26 = 1.0 / m_A90; + const double f26_27 = -f26 * m_A98; + m_A99 += m_A91 * f26_27; + RHS27 += f26_27 * RHS26; + V[27] = RHS27 / m_A99; + double tmp26 = 0.0; + tmp26 += m_A91 * V[27]; + V[26] = (RHS26 - tmp26) / m_A90; + double tmp25 = 0.0; + tmp25 += m_A83 * V[27]; + V[25] = (RHS25 - tmp25) / m_A82; + double tmp24 = 0.0; + tmp24 += m_A78 * V[27]; + V[24] = (RHS24 - tmp24) / m_A77; + double tmp23 = 0.0; + tmp23 += m_A70 * V[24]; + V[23] = (RHS23 - tmp23) / m_A69; + double tmp22 = 0.0; + tmp22 += m_A65 * V[26]; + V[22] = (RHS22 - tmp22) / m_A64; + double tmp21 = 0.0; + tmp21 += m_A61 * V[24]; + tmp21 += m_A62 * V[27]; + V[21] = (RHS21 - tmp21) / m_A60; + double tmp20 = 0.0; + tmp20 += m_A56 * V[21]; + V[20] = (RHS20 - tmp20) / m_A55; + double tmp19 = 0.0; + tmp19 += m_A53 * V[25]; + V[19] = (RHS19 - tmp19) / m_A52; + double tmp18 = 0.0; + tmp18 += m_A47 * V[23]; + tmp18 += m_A48 * V[26]; + V[18] = (RHS18 - tmp18) / m_A46; + double tmp17 = 0.0; + tmp17 += m_A42 * V[19]; + tmp17 += m_A43 * V[25]; + V[17] = (RHS17 - tmp17) / m_A41; + double tmp16 = 0.0; + tmp16 += m_A39 * V[24]; + V[16] = (RHS16 - tmp16) / m_A38; + double tmp15 = 0.0; + tmp15 += m_A35 * V[24]; + V[15] = (RHS15 - tmp15) / m_A34; + double tmp14 = 0.0; + tmp14 += m_A32 * V[21]; + V[14] = (RHS14 - tmp14) / m_A31; + double tmp13 = 0.0; + tmp13 += m_A30 * V[23]; + V[13] = (RHS13 - tmp13) / m_A29; + double tmp12 = 0.0; + V[12] = (RHS12 - tmp12) / m_A27; + double tmp11 = 0.0; + tmp11 += m_A24 * V[25]; + tmp11 += m_A25 * V[27]; + V[11] = (RHS11 - tmp11) / m_A23; double tmp10 = 0.0; - tmp10 += m_A46 * V[11]; - V[10] = (RHS10 - tmp10) / m_A45; + tmp10 += m_A22 * V[26]; + V[10] = (RHS10 - tmp10) / m_A21; double tmp9 = 0.0; - tmp9 += m_A41 * V[10]; - V[9] = (RHS9 - tmp9) / m_A40; + tmp9 += m_A20 * V[19]; + V[9] = (RHS9 - tmp9) / m_A19; double tmp8 = 0.0; - tmp8 += m_A34 * V[9]; - V[8] = (RHS8 - tmp8) / m_A33; + tmp8 += m_A17 * V[17]; + tmp8 += m_A18 * V[19]; + V[8] = (RHS8 - tmp8) / m_A16; double tmp7 = 0.0; - tmp7 += m_A27 * V[8]; - tmp7 += m_A28 * V[9]; - V[7] = (RHS7 - tmp7) / m_A26; + tmp7 += m_A15 * V[16]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A20 * V[7]; - tmp6 += m_A21 * V[8]; - tmp6 += m_A22 * V[9]; - V[6] = (RHS6 - tmp6) / m_A19; + tmp6 += m_A13 * V[15]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A15 * V[10]; - tmp5 += m_A16 * V[11]; - V[5] = (RHS5 - tmp5) / m_A14; + tmp5 += m_A11 * V[16]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A12 * V[9]; - tmp4 += m_A13 * V[10]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A9 * V[20]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - tmp3 += m_A8 * V[7]; - tmp3 += m_A9 * V[8]; - tmp3 += m_A10 * V[9]; + tmp3 += m_A7 * V[13]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; + tmp2 += m_A5 * V[23]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; + tmp1 += m_A3 * V[12]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[8]; + tmp0 += m_A1 * V[22]; V[0] = (RHS0 - tmp0) / m_A0; } -// stuntcyc -static void nl_gcr_c924fe5960b1479e_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// speedfrk +static void nl_gcr_e07b5b086812756c_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -27961,152 +59705,61 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[3]; + m_A2 += gt[4]; m_A2 += gt[5]; m_A2 += gt[6]; - m_A2 += gt[7]; - m_A3 += go[5]; - double RHS1 = Idr[5]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; RHS1 += Idr[6]; - RHS1 += Idr[7]; + RHS1 -= go[5] * *cnV[5]; RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A4 += gt[12]; - m_A6 += go[8]; - m_A5 += go[9]; - double RHS2 = Idr[8]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A5 += go[7]; + m_A5 += go[8]; + m_A4 += go[9]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; RHS2 += Idr[9]; RHS2 += Idr[10]; RHS2 += Idr[11]; - RHS2 += Idr[12]; RHS2 -= go[10] * *cnV[10]; RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A8 += gt[19]; - m_A10 += go[13]; - m_A9 += go[14]; - m_A7 += go[15]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 -= go[16] * *cnV[16]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A14 += gt[20]; - m_A14 += gt[21]; - m_A14 += gt[22]; - m_A14 += gt[23]; - m_A12 += go[20]; - m_A11 += go[21]; - m_A13 += go[22]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 -= go[23] * *cnV[23]; - m_A19 += gt[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A16 += go[24]; - m_A17 += go[25]; - double RHS5 = Idr[24]; - RHS5 += Idr[25]; - RHS5 += Idr[26]; - RHS5 -= go[26] * *cnV[26]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A7; - m_A8 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A11; - m_A14 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A5 * f2_4; - m_A15 += m_A6 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A16; - m_A18 += m_A5 * f2_5; - m_A19 += m_A6 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A9 * f3_4; - m_A15 += m_A10 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A17; - m_A18 += m_A9 * f3_5; - m_A19 += m_A10 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A14; - const double f4_5 = -f4 * m_A18; - m_A19 += m_A15 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A19; - double tmp4 = 0.0; - tmp4 += m_A15 * V[5]; - V[4] = (RHS4 - tmp4) / m_A14; - double tmp3 = 0.0; - tmp3 += m_A9 * V[4]; - tmp3 += m_A10 * V[5]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - tmp2 += m_A6 * V[5]; - V[2] = (RHS2 - tmp2) / m_A4; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; + tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// dpatrol -static void nl_gcr_ca68d70bd8f2f62e_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// solarq +static void nl_gcr_e081f90c2e0313f6_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -28133,184 +59786,327 @@ double m_A19(0.0); double m_A20(0.0); double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; - m_A2 += go[0]; - m_A2 += go[1]; - m_A1 += go[2]; + m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; RHS0 -= go[3] * *cnV[3]; - m_A3 += gt[4]; - m_A3 += gt[5]; - m_A3 += gt[6]; - m_A3 += gt[7]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; m_A5 += go[4]; - m_A5 += go[5]; + m_A4 += go[5]; m_A4 += go[6]; + m_A3 += go[7]; + m_A3 += go[8]; double RHS1 = Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; - RHS1 -= go[7] * *cnV[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A7 += go[8]; - double RHS2 = Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; - m_A10 += gt[11]; - m_A10 += gt[12]; - m_A10 += gt[13]; - m_A12 += go[11]; - m_A9 += go[12]; - m_A8 += go[13]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - m_A16 += gt[14]; - m_A16 += gt[15]; - m_A16 += gt[16]; - m_A16 += gt[17]; - m_A16 += gt[18]; - m_A17 += go[14]; - m_A14 += go[15]; - m_A14 += go[16]; - m_A13 += go[17]; - m_A13 += go[18]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - m_A21 += gt[19]; - m_A21 += gt[20]; - m_A21 += gt[21]; - m_A18 += go[19]; - m_A20 += go[20]; - m_A19 += go[21]; - double RHS5 = Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A7 += go[12]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[14] * *cnV[14]; + RHS2 -= go[15] * *cnV[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A10 += go[16]; + m_A9 += go[17]; + double RHS3 = Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[18] * *cnV[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A11 += gt[23]; + m_A11 += gt[24]; + m_A11 += gt[25]; + m_A11 += gt[26]; + m_A14 += go[19]; + m_A13 += go[20]; + m_A13 += go[21]; + m_A12 += go[22]; + m_A12 += go[23]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 += Idr[25]; + RHS4 += Idr[26]; + RHS4 -= go[24] * *cnV[24]; + RHS4 -= go[25] * *cnV[25]; + RHS4 -= go[26] * *cnV[26]; + m_A17 += gt[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A17 += gt[30]; + m_A17 += gt[31]; + m_A17 += gt[32]; + m_A16 += go[27]; + m_A16 += go[28]; + m_A15 += go[29]; + double RHS5 = Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 += Idr[30]; + RHS5 += Idr[31]; + RHS5 += Idr[32]; + RHS5 -= go[30] * *cnV[30]; + RHS5 -= go[31] * *cnV[31]; + RHS5 -= go[32] * *cnV[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A22 += gt[37]; + m_A22 += gt[38]; + m_A21 += go[33]; + m_A21 += go[34]; + m_A20 += go[35]; + double RHS6 = Idr[33]; + RHS6 += Idr[34]; + RHS6 += Idr[35]; + RHS6 += Idr[36]; + RHS6 += Idr[37]; + RHS6 += Idr[38]; + RHS6 -= go[36] * *cnV[36]; + RHS6 -= go[37] * *cnV[37]; + RHS6 -= go[38] * *cnV[38]; + m_A27 += gt[39]; + m_A27 += gt[40]; + m_A27 += gt[41]; + m_A27 += gt[42]; + m_A27 += gt[43]; + m_A28 += go[39]; + m_A28 += go[40]; + m_A25 += go[41]; + m_A25 += go[42]; + double RHS7 = Idr[39]; + RHS7 += Idr[40]; + RHS7 += Idr[41]; + RHS7 += Idr[42]; + RHS7 += Idr[43]; + RHS7 -= go[43] * *cnV[43]; + m_A33 += gt[44]; + m_A33 += gt[45]; + m_A33 += gt[46]; + m_A33 += gt[47]; + m_A33 += gt[48]; + m_A32 += go[44]; + m_A32 += go[45]; + m_A29 += go[46]; + m_A30 += go[47]; + double RHS8 = Idr[44]; + RHS8 += Idr[45]; + RHS8 += Idr[46]; + RHS8 += Idr[47]; + RHS8 += Idr[48]; + RHS8 -= go[48] * *cnV[48]; + m_A37 += gt[49]; + m_A37 += gt[50]; + m_A37 += gt[51]; + m_A37 += gt[52]; + m_A37 += gt[53]; + m_A38 += go[49]; + m_A38 += go[50]; + m_A35 += go[51]; + m_A35 += go[52]; + double RHS9 = Idr[49]; + RHS9 += Idr[50]; + RHS9 += Idr[51]; + RHS9 += Idr[52]; + RHS9 += Idr[53]; + RHS9 -= go[53] * *cnV[53]; + m_A44 += gt[54]; + m_A44 += gt[55]; + m_A44 += gt[56]; + m_A44 += gt[57]; + m_A44 += gt[58]; + m_A43 += go[54]; + m_A43 += go[55]; + m_A40 += go[56]; + m_A39 += go[57]; + double RHS10 = Idr[54]; + RHS10 += Idr[55]; + RHS10 += Idr[56]; + RHS10 += Idr[57]; + RHS10 += Idr[58]; + RHS10 -= go[58] * *cnV[58]; const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - m_A11 += m_A2 * f0_3; - RHS3 += f0_3 * RHS0; - const double f0_4 = -f0 * m_A13; - m_A15 += m_A1 * f0_4; - m_A16 += m_A2 * f0_4; - RHS4 += f0_4 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A4 * f1_3; - m_A11 += m_A5 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_4 = -f1 * m_A14; - m_A15 += m_A4 * f1_4; - m_A16 += m_A5 * f1_4; - RHS4 += f1_4 * RHS1; + const double f0_5 = -f0 * m_A15; + m_A17 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A16; + m_A17 += m_A3 * f1_5; + m_A18 += m_A4 * f1_5; + m_A19 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f1_7 = -f1 * m_A25; + m_A26 += m_A3 * f1_7; + m_A27 += m_A4 * f1_7; + m_A28 += m_A5 * f1_7; + RHS7 += f1_7 * RHS1; + const double f1_8 = -f1 * m_A29; + m_A31 += m_A3 * f1_8; + m_A32 += m_A4 * f1_8; + m_A33 += m_A5 * f1_8; + RHS8 += f1_8 * RHS1; const double f2 = 1.0 / m_A6; - const double f2_5 = -f2 * m_A18; - m_A21 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_4 = -f3 * m_A15; - m_A16 += m_A11 * f3_4; - m_A17 += m_A12 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A19; - m_A20 += m_A11 * f3_5; - m_A21 += m_A12 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A16; - const double f4_5 = -f4 * m_A20; - m_A21 += m_A17 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A21; + const double f2_6 = -f2 * m_A20; + m_A22 += m_A7 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_8 = -f3 * m_A30; + m_A33 += m_A9 * f3_8; + m_A34 += m_A10 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_10 = -f3 * m_A39; + m_A42 += m_A9 * f3_10; + m_A44 += m_A10 * f3_10; + RHS10 += f3_10 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_6 = -f4 * m_A21; + m_A22 += m_A12 * f4_6; + m_A23 += m_A13 * f4_6; + m_A24 += m_A14 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_9 = -f4 * m_A35; + m_A36 += m_A12 * f4_9; + m_A37 += m_A13 * f4_9; + m_A38 += m_A14 * f4_9; + RHS9 += f4_9 * RHS4; + const double f4_10 = -f4 * m_A40; + m_A41 += m_A12 * f4_10; + m_A43 += m_A13 * f4_10; + m_A44 += m_A14 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_7 = -f5 * m_A26; + m_A27 += m_A18 * f5_7; + m_A28 += m_A19 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A31; + m_A32 += m_A18 * f5_8; + m_A33 += m_A19 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A22; + const double f6_9 = -f6 * m_A36; + m_A37 += m_A23 * f6_9; + m_A38 += m_A24 * f6_9; + RHS9 += f6_9 * RHS6; + const double f6_10 = -f6 * m_A41; + m_A43 += m_A23 * f6_10; + m_A44 += m_A24 * f6_10; + RHS10 += f6_10 * RHS6; + const double f7 = 1.0 / m_A27; + const double f7_8 = -f7 * m_A32; + m_A33 += m_A28 * f7_8; + RHS8 += f7_8 * RHS7; + const double f8 = 1.0 / m_A33; + const double f8_10 = -f8 * m_A42; + m_A44 += m_A34 * f8_10; + RHS10 += f8_10 * RHS8; + const double f9 = 1.0 / m_A37; + const double f9_10 = -f9 * m_A43; + m_A44 += m_A38 * f9_10; + RHS10 += f9_10 * RHS9; + V[10] = RHS10 / m_A44; + double tmp9 = 0.0; + tmp9 += m_A38 * V[10]; + V[9] = (RHS9 - tmp9) / m_A37; + double tmp8 = 0.0; + tmp8 += m_A34 * V[10]; + V[8] = (RHS8 - tmp8) / m_A33; + double tmp7 = 0.0; + tmp7 += m_A28 * V[8]; + V[7] = (RHS7 - tmp7) / m_A27; + double tmp6 = 0.0; + tmp6 += m_A23 * V[9]; + tmp6 += m_A24 * V[10]; + V[6] = (RHS6 - tmp6) / m_A22; + double tmp5 = 0.0; + tmp5 += m_A18 * V[7]; + tmp5 += m_A19 * V[8]; + V[5] = (RHS5 - tmp5) / m_A17; double tmp4 = 0.0; - tmp4 += m_A17 * V[5]; - V[4] = (RHS4 - tmp4) / m_A16; + tmp4 += m_A12 * V[6]; + tmp4 += m_A13 * V[9]; + tmp4 += m_A14 * V[10]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A11 * V[4]; - tmp3 += m_A12 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; + tmp3 += m_A9 * V[8]; + tmp3 += m_A10 * V[10]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A7 * V[5]; + tmp2 += m_A7 * V[6]; V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A4 * V[3]; - tmp1 += m_A5 * V[4]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; - tmp0 += m_A2 * V[4]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// breakout -static void nl_gcr_cb2aae3366e0ac1c_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A5 += go[6]; - m_A4 += go[7]; - double RHS2 = Idr[6]; - RHS2 += Idr[7]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[5]; + tmp1 += m_A4 * V[7]; + tmp1 += m_A5 * V[8]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// barrier -static void nl_gcr_cc913f9c3f9293e7_19_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// spacewar +static void nl_gcr_e0b492db40bba291_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -28334,6 +60130,7 @@ double m_A16(0.0); double m_A17(0.0); double m_A18(0.0); + double m_A19(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -28342,106 +60139,86 @@ RHS0 -= go[1] * *cnV[1]; m_A2 += gt[2]; m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; m_A3 += go[2]; m_A4 += go[3]; double RHS1 = Idr[2]; RHS1 += Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - m_A5 += gt[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A7 += go[9]; - m_A6 += go[10]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[11] * *cnV[11]; - m_A8 += gt[12]; - m_A8 += gt[13]; - m_A9 += go[12]; - double RHS3 = Idr[12]; - RHS3 += Idr[13]; - RHS3 -= go[13] * *cnV[13]; - m_A12 += gt[14]; - m_A12 += gt[15]; - m_A12 += gt[16]; - m_A11 += go[14]; - m_A10 += go[15]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 -= go[16] * *cnV[16]; - m_A18 += gt[17]; - m_A18 += gt[18]; - m_A18 += gt[19]; - m_A18 += gt[20]; - m_A18 += gt[21]; - m_A18 += gt[22]; - m_A14 += go[17]; - m_A16 += go[18]; - m_A15 += go[19]; - double RHS5 = Idr[17]; - RHS5 += Idr[18]; - RHS5 += Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 -= go[20] * *cnV[20]; - RHS5 -= go[21] * *cnV[21]; - RHS5 -= go[22] * *cnV[22]; + m_A5 += gt[4]; + m_A5 += gt[5]; + m_A7 += go[4]; + m_A6 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + m_A9 += gt[6]; + m_A9 += gt[7]; + m_A9 += gt[8]; + m_A8 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[7] * *cnV[7]; + RHS3 -= go[8] * *cnV[8]; + m_A15 += gt[9]; + m_A15 += gt[10]; + m_A15 += gt[11]; + m_A11 += go[9]; + m_A13 += go[10]; + m_A12 += go[11]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + RHS4 += Idr[11]; + m_A19 += gt[12]; + m_A19 += gt[13]; + m_A19 += gt[14]; + m_A17 += go[12]; + double RHS5 = Idr[12]; + RHS5 += Idr[13]; + RHS5 += Idr[14]; + RHS5 -= go[13] * *cnV[13]; + RHS5 -= go[14] * *cnV[14]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A10; - m_A12 += m_A1 * f0_4; + const double f0_4 = -f0 * m_A11; + m_A15 += m_A1 * f0_4; RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A14; - m_A15 += m_A3 * f1_5; - m_A17 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; + const double f1_3 = -f1 * m_A8; + m_A9 += m_A3 * f1_3; + m_A10 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A12; + m_A14 += m_A3 * f1_4; + m_A15 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A11; - m_A12 += m_A6 * f2_4; - m_A13 += m_A7 * f2_4; + const double f2_4 = -f2 * m_A13; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A15; - m_A17 += m_A6 * f2_5; - m_A18 += m_A7 * f2_5; + const double f2_5 = -f2 * m_A17; + m_A18 += m_A6 * f2_5; + m_A19 += m_A7 * f2_5; RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_5 = -f3 * m_A16; - m_A18 += m_A9 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A12; - const double f4_5 = -f4 * m_A17; - m_A18 += m_A13 * f4_5; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A14; + m_A15 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + const double f4 = 1.0 / m_A15; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A16 * f4_5; RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A18; + V[5] = RHS5 / m_A19; double tmp4 = 0.0; - tmp4 += m_A13 * V[5]; - V[4] = (RHS4 - tmp4) / m_A12; + tmp4 += m_A16 * V[5]; + V[4] = (RHS4 - tmp4) / m_A15; double tmp3 = 0.0; - tmp3 += m_A9 * V[5]; - V[3] = (RHS3 - tmp3) / m_A8; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; tmp2 += m_A6 * V[4]; tmp2 += m_A7 * V[5]; V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[3]; tmp1 += m_A4 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; @@ -28449,8 +60226,65 @@ V[0] = (RHS0 - tmp0) / m_A0; } -// 1942 -static void nl_gcr_ce766957cb26ff3e_90_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// flyball +static void nl_gcr_e15d9316d59cdad9_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A1 += go[0]; + m_A0 += go[1]; + m_A0 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A5 += go[7]; + m_A4 += go[8]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// speedfrk +static void nl_gcr_e4f2ffbf201a3d0c_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -28492,59 +60326,6 @@ double m_A34(0.0); double m_A35(0.0); double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); - double m_A76(0.0); - double m_A77(0.0); - double m_A78(0.0); - double m_A79(0.0); - double m_A80(0.0); - double m_A81(0.0); - double m_A82(0.0); - double m_A83(0.0); - double m_A84(0.0); - double m_A85(0.0); - double m_A86(0.0); - double m_A87(0.0); - double m_A88(0.0); - double m_A89(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -28602,393 +60383,478 @@ m_A12 += gt[18]; m_A12 += gt[19]; m_A12 += gt[20]; - m_A12 += gt[21]; - m_A12 += gt[22]; - m_A12 += gt[23]; - m_A12 += gt[24]; - m_A19 += go[18]; - m_A13 += go[19]; - m_A15 += go[20]; - m_A17 += go[21]; - m_A18 += go[22]; - m_A16 += go[23]; - m_A14 += go[24]; + m_A13 += go[18]; double RHS6 = Idr[18]; RHS6 += Idr[19]; RHS6 += Idr[20]; - RHS6 += Idr[21]; - RHS6 += Idr[22]; - RHS6 += Idr[23]; - RHS6 += Idr[24]; - m_A20 += gt[25]; - m_A20 += gt[26]; - m_A22 += go[25]; - m_A21 += go[26]; - double RHS7 = Idr[25]; - RHS7 += Idr[26]; - m_A25 += gt[27]; - m_A25 += gt[28]; - m_A24 += go[27]; - m_A23 += go[28]; - double RHS8 = Idr[27]; - RHS8 += Idr[28]; - m_A35 += gt[29]; - m_A35 += gt[30]; - m_A33 += go[29]; - m_A32 += go[30]; - double RHS9 = Idr[29]; - RHS9 += Idr[30]; - m_A45 += gt[31]; - m_A45 += gt[32]; - m_A42 += go[31]; - m_A41 += go[32]; - double RHS10 = Idr[31]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A15 += go[21]; + double RHS7 = Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 -= go[22] * *cnV[22]; + RHS7 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A17 += go[24]; + double RHS8 = Idr[24]; + RHS8 += Idr[25]; + RHS8 += Idr[26]; + RHS8 -= go[25] * *cnV[25]; + RHS8 -= go[26] * *cnV[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A18 += gt[29]; + m_A19 += go[27]; + double RHS9 = Idr[27]; + RHS9 += Idr[28]; + RHS9 += Idr[29]; + RHS9 -= go[28] * *cnV[28]; + RHS9 -= go[29] * *cnV[29]; + m_A24 += gt[30]; + m_A24 += gt[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A24 += gt[34]; + m_A25 += go[30]; + m_A23 += go[31]; + m_A22 += go[32]; + m_A21 += go[33]; + m_A20 += go[34]; + double RHS10 = Idr[30]; + RHS10 += Idr[31]; RHS10 += Idr[32]; - m_A55 += gt[33]; - m_A55 += gt[34]; - m_A51 += go[33]; - m_A50 += go[34]; - double RHS11 = Idr[33]; - RHS11 += Idr[34]; - m_A65 += gt[35]; - m_A65 += gt[36]; - m_A60 += go[35]; - m_A59 += go[36]; - double RHS12 = Idr[35]; - RHS12 += Idr[36]; - m_A75 += gt[37]; - m_A75 += gt[38]; - m_A69 += go[37]; - m_A68 += go[38]; - double RHS13 = Idr[37]; - RHS13 += Idr[38]; - m_A85 += gt[39]; - m_A85 += gt[40]; - m_A85 += gt[41]; - m_A78 += go[39]; - m_A77 += go[40]; - double RHS14 = Idr[39]; - RHS14 += Idr[40]; - RHS14 += Idr[41]; - RHS14 -= go[41] * *cnV[41]; - m_A89 += gt[42]; - m_A89 += gt[43]; - m_A87 += go[42]; - double RHS15 = Idr[42]; - RHS15 += Idr[43]; - RHS15 -= go[43] * *cnV[43]; + RHS10 += Idr[33]; + RHS10 += Idr[34]; + m_A29 += gt[35]; + m_A29 += gt[36]; + m_A29 += gt[37]; + m_A29 += gt[38]; + m_A29 += gt[39]; + m_A30 += go[35]; + m_A28 += go[36]; + m_A27 += go[37]; + m_A26 += go[38]; + double RHS11 = Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 -= go[39] * *cnV[39]; + m_A36 += gt[40]; + m_A36 += gt[41]; + m_A36 += gt[42]; + m_A36 += gt[43]; + m_A36 += gt[44]; + m_A35 += go[40]; + m_A34 += go[41]; + m_A33 += go[42]; + m_A32 += go[43]; + m_A31 += go[44]; + double RHS12 = Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A32; - m_A35 += m_A1 * f0_9; - RHS9 += f0_9 * RHS0; + const double f0_10 = -f0 * m_A20; + m_A24 += m_A1 * f0_10; + RHS10 += f0_10 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_11 = -f1 * m_A50; - m_A55 += m_A3 * f1_11; - RHS11 += f1_11 * RHS1; + const double f1_10 = -f1 * m_A21; + m_A24 += m_A3 * f1_10; + RHS10 += f1_10 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_13 = -f2 * m_A68; - m_A75 += m_A5 * f2_13; - RHS13 += f2_13 * RHS2; + const double f2_10 = -f2 * m_A22; + m_A24 += m_A5 * f2_10; + RHS10 += f2_10 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_12 = -f3 * m_A59; - m_A65 += m_A7 * f3_12; - RHS12 += f3_12 * RHS3; + const double f3_11 = -f3 * m_A26; + m_A29 += m_A7 * f3_11; + RHS11 += f3_11 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_10 = -f4 * m_A41; - m_A45 += m_A9 * f4_10; - RHS10 += f4_10 * RHS4; + const double f4_12 = -f4 * m_A31; + m_A36 += m_A9 * f4_12; + RHS12 += f4_12 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_8 = -f5 * m_A23; - m_A25 += m_A11 * f5_8; - RHS8 += f5_8 * RHS5; + const double f5_10 = -f5 * m_A23; + m_A24 += m_A11 * f5_10; + RHS10 += f5_10 * RHS5; const double f6 = 1.0 / m_A12; - const double f6_8 = -f6 * m_A24; - m_A25 += m_A13 * f6_8; - m_A26 += m_A14 * f6_8; - m_A27 += m_A15 * f6_8; - m_A28 += m_A16 * f6_8; - m_A29 += m_A17 * f6_8; - m_A30 += m_A18 * f6_8; - m_A31 += m_A19 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_9 = -f6 * m_A33; - m_A34 += m_A13 * f6_9; - m_A35 += m_A14 * f6_9; - m_A36 += m_A15 * f6_9; - m_A37 += m_A16 * f6_9; - m_A38 += m_A17 * f6_9; - m_A39 += m_A18 * f6_9; - m_A40 += m_A19 * f6_9; - RHS9 += f6_9 * RHS6; - const double f6_10 = -f6 * m_A42; - m_A43 += m_A13 * f6_10; - m_A44 += m_A14 * f6_10; - m_A45 += m_A15 * f6_10; - m_A46 += m_A16 * f6_10; - m_A47 += m_A17 * f6_10; - m_A48 += m_A18 * f6_10; - m_A49 += m_A19 * f6_10; - RHS10 += f6_10 * RHS6; - const double f6_11 = -f6 * m_A51; - m_A52 += m_A13 * f6_11; - m_A53 += m_A14 * f6_11; - m_A54 += m_A15 * f6_11; - m_A55 += m_A16 * f6_11; - m_A56 += m_A17 * f6_11; - m_A57 += m_A18 * f6_11; - m_A58 += m_A19 * f6_11; + const double f6_11 = -f6 * m_A27; + m_A29 += m_A13 * f6_11; RHS11 += f6_11 * RHS6; - const double f6_12 = -f6 * m_A60; - m_A61 += m_A13 * f6_12; - m_A62 += m_A14 * f6_12; - m_A63 += m_A15 * f6_12; - m_A64 += m_A16 * f6_12; - m_A65 += m_A17 * f6_12; - m_A66 += m_A18 * f6_12; - m_A67 += m_A19 * f6_12; - RHS12 += f6_12 * RHS6; - const double f6_13 = -f6 * m_A69; - m_A70 += m_A13 * f6_13; - m_A71 += m_A14 * f6_13; - m_A72 += m_A15 * f6_13; - m_A73 += m_A16 * f6_13; - m_A74 += m_A17 * f6_13; - m_A75 += m_A18 * f6_13; - m_A76 += m_A19 * f6_13; - RHS13 += f6_13 * RHS6; - const double f6_14 = -f6 * m_A77; - m_A79 += m_A13 * f6_14; - m_A80 += m_A14 * f6_14; - m_A81 += m_A15 * f6_14; - m_A82 += m_A16 * f6_14; - m_A83 += m_A17 * f6_14; - m_A84 += m_A18 * f6_14; - m_A85 += m_A19 * f6_14; - RHS14 += f6_14 * RHS6; - const double f7 = 1.0 / m_A20; - const double f7_14 = -f7 * m_A78; - m_A85 += m_A21 * f7_14; - m_A86 += m_A22 * f7_14; - RHS14 += f7_14 * RHS7; - const double f7_15 = -f7 * m_A87; - m_A88 += m_A21 * f7_15; - m_A89 += m_A22 * f7_15; - RHS15 += f7_15 * RHS7; - const double f8 = 1.0 / m_A25; - const double f8_9 = -f8 * m_A34; - m_A35 += m_A26 * f8_9; - m_A36 += m_A27 * f8_9; - m_A37 += m_A28 * f8_9; - m_A38 += m_A29 * f8_9; - m_A39 += m_A30 * f8_9; - m_A40 += m_A31 * f8_9; - RHS9 += f8_9 * RHS8; - const double f8_10 = -f8 * m_A43; - m_A44 += m_A26 * f8_10; - m_A45 += m_A27 * f8_10; - m_A46 += m_A28 * f8_10; - m_A47 += m_A29 * f8_10; - m_A48 += m_A30 * f8_10; - m_A49 += m_A31 * f8_10; - RHS10 += f8_10 * RHS8; - const double f8_11 = -f8 * m_A52; - m_A53 += m_A26 * f8_11; - m_A54 += m_A27 * f8_11; - m_A55 += m_A28 * f8_11; - m_A56 += m_A29 * f8_11; - m_A57 += m_A30 * f8_11; - m_A58 += m_A31 * f8_11; - RHS11 += f8_11 * RHS8; - const double f8_12 = -f8 * m_A61; - m_A62 += m_A26 * f8_12; - m_A63 += m_A27 * f8_12; - m_A64 += m_A28 * f8_12; - m_A65 += m_A29 * f8_12; - m_A66 += m_A30 * f8_12; - m_A67 += m_A31 * f8_12; + const double f7 = 1.0 / m_A14; + const double f7_12 = -f7 * m_A32; + m_A36 += m_A15 * f7_12; + RHS12 += f7_12 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_12 = -f8 * m_A33; + m_A36 += m_A17 * f8_12; RHS12 += f8_12 * RHS8; - const double f8_13 = -f8 * m_A70; - m_A71 += m_A26 * f8_13; - m_A72 += m_A27 * f8_13; - m_A73 += m_A28 * f8_13; - m_A74 += m_A29 * f8_13; - m_A75 += m_A30 * f8_13; - m_A76 += m_A31 * f8_13; - RHS13 += f8_13 * RHS8; - const double f8_14 = -f8 * m_A79; - m_A80 += m_A26 * f8_14; - m_A81 += m_A27 * f8_14; - m_A82 += m_A28 * f8_14; - m_A83 += m_A29 * f8_14; - m_A84 += m_A30 * f8_14; - m_A85 += m_A31 * f8_14; - RHS14 += f8_14 * RHS8; - const double f9 = 1.0 / m_A35; - const double f9_10 = -f9 * m_A44; - m_A45 += m_A36 * f9_10; - m_A46 += m_A37 * f9_10; - m_A47 += m_A38 * f9_10; - m_A48 += m_A39 * f9_10; - m_A49 += m_A40 * f9_10; - RHS10 += f9_10 * RHS9; - const double f9_11 = -f9 * m_A53; - m_A54 += m_A36 * f9_11; - m_A55 += m_A37 * f9_11; - m_A56 += m_A38 * f9_11; - m_A57 += m_A39 * f9_11; - m_A58 += m_A40 * f9_11; + const double f9 = 1.0 / m_A18; + const double f9_11 = -f9 * m_A28; + m_A29 += m_A19 * f9_11; RHS11 += f9_11 * RHS9; - const double f9_12 = -f9 * m_A62; - m_A63 += m_A36 * f9_12; - m_A64 += m_A37 * f9_12; - m_A65 += m_A38 * f9_12; - m_A66 += m_A39 * f9_12; - m_A67 += m_A40 * f9_12; - RHS12 += f9_12 * RHS9; - const double f9_13 = -f9 * m_A71; - m_A72 += m_A36 * f9_13; - m_A73 += m_A37 * f9_13; - m_A74 += m_A38 * f9_13; - m_A75 += m_A39 * f9_13; - m_A76 += m_A40 * f9_13; - RHS13 += f9_13 * RHS9; - const double f9_14 = -f9 * m_A80; - m_A81 += m_A36 * f9_14; - m_A82 += m_A37 * f9_14; - m_A83 += m_A38 * f9_14; - m_A84 += m_A39 * f9_14; - m_A85 += m_A40 * f9_14; - RHS14 += f9_14 * RHS9; - const double f10 = 1.0 / m_A45; - const double f10_11 = -f10 * m_A54; - m_A55 += m_A46 * f10_11; - m_A56 += m_A47 * f10_11; - m_A57 += m_A48 * f10_11; - m_A58 += m_A49 * f10_11; - RHS11 += f10_11 * RHS10; - const double f10_12 = -f10 * m_A63; - m_A64 += m_A46 * f10_12; - m_A65 += m_A47 * f10_12; - m_A66 += m_A48 * f10_12; - m_A67 += m_A49 * f10_12; + const double f10 = 1.0 / m_A24; + const double f10_12 = -f10 * m_A34; + m_A36 += m_A25 * f10_12; RHS12 += f10_12 * RHS10; - const double f10_13 = -f10 * m_A72; - m_A73 += m_A46 * f10_13; - m_A74 += m_A47 * f10_13; - m_A75 += m_A48 * f10_13; - m_A76 += m_A49 * f10_13; - RHS13 += f10_13 * RHS10; - const double f10_14 = -f10 * m_A81; - m_A82 += m_A46 * f10_14; - m_A83 += m_A47 * f10_14; - m_A84 += m_A48 * f10_14; - m_A85 += m_A49 * f10_14; - RHS14 += f10_14 * RHS10; - const double f11 = 1.0 / m_A55; - const double f11_12 = -f11 * m_A64; - m_A65 += m_A56 * f11_12; - m_A66 += m_A57 * f11_12; - m_A67 += m_A58 * f11_12; + const double f11 = 1.0 / m_A29; + const double f11_12 = -f11 * m_A35; + m_A36 += m_A30 * f11_12; RHS12 += f11_12 * RHS11; - const double f11_13 = -f11 * m_A73; - m_A74 += m_A56 * f11_13; - m_A75 += m_A57 * f11_13; - m_A76 += m_A58 * f11_13; - RHS13 += f11_13 * RHS11; - const double f11_14 = -f11 * m_A82; - m_A83 += m_A56 * f11_14; - m_A84 += m_A57 * f11_14; - m_A85 += m_A58 * f11_14; - RHS14 += f11_14 * RHS11; - const double f12 = 1.0 / m_A65; - const double f12_13 = -f12 * m_A74; - m_A75 += m_A66 * f12_13; - m_A76 += m_A67 * f12_13; - RHS13 += f12_13 * RHS12; - const double f12_14 = -f12 * m_A83; - m_A84 += m_A66 * f12_14; - m_A85 += m_A67 * f12_14; - RHS14 += f12_14 * RHS12; - const double f13 = 1.0 / m_A75; - const double f13_14 = -f13 * m_A84; - m_A85 += m_A76 * f13_14; - RHS14 += f13_14 * RHS13; - const double f14 = 1.0 / m_A85; - const double f14_15 = -f14 * m_A88; - m_A89 += m_A86 * f14_15; - RHS15 += f14_15 * RHS14; - V[15] = RHS15 / m_A89; - double tmp14 = 0.0; - tmp14 += m_A86 * V[15]; - V[14] = (RHS14 - tmp14) / m_A85; - double tmp13 = 0.0; - tmp13 += m_A76 * V[14]; - V[13] = (RHS13 - tmp13) / m_A75; - double tmp12 = 0.0; - tmp12 += m_A66 * V[13]; - tmp12 += m_A67 * V[14]; - V[12] = (RHS12 - tmp12) / m_A65; + V[12] = RHS12 / m_A36; double tmp11 = 0.0; - tmp11 += m_A56 * V[12]; - tmp11 += m_A57 * V[13]; - tmp11 += m_A58 * V[14]; - V[11] = (RHS11 - tmp11) / m_A55; + tmp11 += m_A30 * V[12]; + V[11] = (RHS11 - tmp11) / m_A29; double tmp10 = 0.0; - tmp10 += m_A46 * V[11]; - tmp10 += m_A47 * V[12]; - tmp10 += m_A48 * V[13]; - tmp10 += m_A49 * V[14]; - V[10] = (RHS10 - tmp10) / m_A45; + tmp10 += m_A25 * V[12]; + V[10] = (RHS10 - tmp10) / m_A24; double tmp9 = 0.0; - tmp9 += m_A36 * V[10]; - tmp9 += m_A37 * V[11]; - tmp9 += m_A38 * V[12]; - tmp9 += m_A39 * V[13]; - tmp9 += m_A40 * V[14]; - V[9] = (RHS9 - tmp9) / m_A35; + tmp9 += m_A19 * V[11]; + V[9] = (RHS9 - tmp9) / m_A18; double tmp8 = 0.0; - tmp8 += m_A26 * V[9]; - tmp8 += m_A27 * V[10]; - tmp8 += m_A28 * V[11]; - tmp8 += m_A29 * V[12]; - tmp8 += m_A30 * V[13]; - tmp8 += m_A31 * V[14]; - V[8] = (RHS8 - tmp8) / m_A25; + tmp8 += m_A17 * V[12]; + V[8] = (RHS8 - tmp8) / m_A16; double tmp7 = 0.0; - tmp7 += m_A21 * V[14]; - tmp7 += m_A22 * V[15]; - V[7] = (RHS7 - tmp7) / m_A20; + tmp7 += m_A15 * V[12]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A13 * V[8]; - tmp6 += m_A14 * V[9]; - tmp6 += m_A15 * V[10]; - tmp6 += m_A16 * V[11]; - tmp6 += m_A17 * V[12]; - tmp6 += m_A18 * V[13]; - tmp6 += m_A19 * V[14]; + tmp6 += m_A13 * V[11]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[8]; + tmp5 += m_A11 * V[10]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[10]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A9 * V[12]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[11]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[10]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[10]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[10]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// pongf +static void nl_gcr_e51b463cd890ef6d_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A5 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// sundance +static void nl_gcr_e5b7711fac1ea80c_8_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[0] * *cnV[0]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A1 += gt[3]; + m_A1 += gt[4]; + m_A1 += gt[5]; + m_A1 += gt[6]; + m_A1 += gt[7]; + m_A1 += gt[8]; + m_A1 += gt[9]; + m_A2 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A3 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A7 += gt[14]; + m_A7 += gt[15]; + m_A7 += gt[16]; + m_A5 += go[14]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A3; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A1; + const double f1_3 = -f1 * m_A5; + m_A6 += m_A2 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A6; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A7; + double tmp2 = 0.0; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A2 * V[2]; + V[1] = (RHS1 - tmp1) / m_A1; + double tmp0 = 0.0; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// ripoff +static void nl_gcr_e60314070a75e121_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A2 += go[0]; + m_A2 += go[1]; + m_A1 += go[2]; + m_A1 += go[3]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A3 += gt[7]; + m_A3 += gt[8]; + m_A4 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A7 += go[9]; + m_A5 += go[10]; + m_A5 += go[11]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[12] * *cnV[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A9 += go[13]; + m_A9 += go[14]; + m_A10 += go[15]; + m_A10 += go[16]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[17] * *cnV[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A12 += go[18]; + m_A12 += go[19]; + m_A14 += go[20]; + m_A11 += go[21]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + m_A19 += gt[22]; + m_A19 += gt[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A18 += go[22]; + m_A17 += go[23]; + m_A17 += go[24]; + m_A16 += go[25]; + m_A15 += go[26]; + m_A15 += go[27]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 -= go[28] * *cnV[28]; + RHS5 -= go[29] * *cnV[29]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A6 += m_A1 * f0_2; + m_A7 += m_A2 * f0_2; + RHS2 += f0_2 * RHS0; + const double f0_5 = -f0 * m_A15; + m_A16 += m_A1 * f0_5; + m_A19 += m_A2 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_4 = -f1 * m_A11; + m_A13 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_5 = -f2 * m_A16; + m_A19 += m_A7 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_4 = -f3 * m_A12; + m_A13 += m_A9 * f3_4; + m_A14 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A17; + m_A18 += m_A9 * f3_5; + m_A19 += m_A10 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A13; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A14 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A19; + double tmp4 = 0.0; + tmp4 += m_A14 * V[5]; + V[4] = (RHS4 - tmp4) / m_A13; double tmp3 = 0.0; - tmp3 += m_A7 * V[12]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A9 * V[4]; + tmp3 += m_A10 * V[5]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[13]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[11]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[4]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; + tmp0 += m_A1 * V[2]; + tmp0 += m_A2 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_cfd3bbf5fbba4765_71_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// cheekyms +static void nl_gcr_e75302e17c866419_150_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -29064,616 +60930,887 @@ double m_A68(0.0); double m_A69(0.0); double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A2 += gt[11]; - m_A2 += gt[12]; - m_A2 += gt[13]; - m_A3 += go[7]; - double RHS1 = Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 += Idr[11]; - RHS1 += Idr[12]; - RHS1 += Idr[13]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - RHS1 -= go[11] * *cnV[11]; - RHS1 -= go[12] * *cnV[12]; - RHS1 -= go[13] * *cnV[13]; - m_A4 += gt[14]; - m_A4 += gt[15]; - m_A4 += gt[16]; - m_A5 += go[14]; - double RHS2 = Idr[14]; - RHS2 += Idr[15]; - RHS2 += Idr[16]; - RHS2 -= go[15] * *cnV[15]; - RHS2 -= go[16] * *cnV[16]; - m_A6 += gt[17]; - m_A6 += gt[18]; - m_A7 += go[17]; - double RHS3 = Idr[17]; - RHS3 += Idr[18]; - RHS3 -= go[18] * *cnV[18]; - m_A8 += gt[19]; - m_A8 += gt[20]; - m_A8 += gt[21]; - m_A9 += go[19]; - double RHS4 = Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 -= go[20] * *cnV[20]; - RHS4 -= go[21] * *cnV[21]; - m_A10 += gt[22]; - m_A10 += gt[23]; - m_A11 += go[22]; - double RHS5 = Idr[22]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A6 += go[6]; + m_A5 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[8] * *cnV[8]; + m_A7 += gt[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A10 += go[9]; + m_A9 += go[10]; + m_A8 += go[11]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A12 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[15] * *cnV[15]; + RHS4 -= go[16] * *cnV[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A15 += go[17]; + m_A14 += go[18]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; RHS5 += Idr[23]; + RHS5 -= go[19] * *cnV[19]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; RHS5 -= go[23] * *cnV[23]; - m_A12 += gt[24]; - m_A12 += gt[25]; - m_A12 += gt[26]; - m_A13 += go[24]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A17 += go[24]; double RHS6 = Idr[24]; RHS6 += Idr[25]; RHS6 += Idr[26]; RHS6 -= go[25] * *cnV[25]; RHS6 -= go[26] * *cnV[26]; - m_A14 += gt[27]; - m_A14 += gt[28]; - m_A14 += gt[29]; - m_A15 += go[27]; - double RHS7 = Idr[27]; - RHS7 += Idr[28]; - RHS7 += Idr[29]; - RHS7 -= go[28] * *cnV[28]; - RHS7 -= go[29] * *cnV[29]; - m_A17 += gt[30]; - m_A17 += gt[31]; - m_A17 += gt[32]; - m_A17 += gt[33]; - m_A17 += gt[34]; - m_A17 += gt[35]; - m_A16 += go[30]; - m_A18 += go[31]; - m_A19 += go[32]; - m_A19 += go[33]; - double RHS8 = Idr[30]; - RHS8 += Idr[31]; - RHS8 += Idr[32]; - RHS8 += Idr[33]; - RHS8 += Idr[34]; - RHS8 += Idr[35]; - RHS8 -= go[34] * *cnV[34]; - RHS8 -= go[35] * *cnV[35]; - m_A21 += gt[36]; - m_A21 += gt[37]; - m_A21 += gt[38]; - m_A22 += go[36]; - double RHS9 = Idr[36]; - RHS9 += Idr[37]; - RHS9 += Idr[38]; - RHS9 -= go[37] * *cnV[37]; - RHS9 -= go[38] * *cnV[38]; - m_A23 += gt[39]; - m_A23 += gt[40]; - m_A23 += gt[41]; - m_A25 += go[39]; - m_A24 += go[40]; - double RHS10 = Idr[39]; - RHS10 += Idr[40]; - RHS10 += Idr[41]; - RHS10 -= go[41] * *cnV[41]; - m_A27 += gt[42]; - m_A27 += gt[43]; - m_A27 += gt[44]; - m_A27 += gt[45]; - m_A27 += gt[46]; - m_A27 += gt[47]; - m_A26 += go[42]; - m_A29 += go[43]; - m_A29 += go[44]; - double RHS11 = Idr[42]; - RHS11 += Idr[43]; - RHS11 += Idr[44]; - RHS11 += Idr[45]; - RHS11 += Idr[46]; - RHS11 += Idr[47]; - RHS11 -= go[45] * *cnV[45]; - RHS11 -= go[46] * *cnV[46]; - RHS11 -= go[47] * *cnV[47]; - m_A31 += gt[48]; - m_A31 += gt[49]; - m_A32 += go[48]; - m_A30 += go[49]; - double RHS12 = Idr[48]; - RHS12 += Idr[49]; - m_A35 += gt[50]; - m_A35 += gt[51]; - m_A34 += go[50]; - m_A33 += go[51]; - double RHS13 = Idr[50]; - RHS13 += Idr[51]; - m_A38 += gt[52]; - m_A38 += gt[53]; - m_A37 += go[52]; - m_A36 += go[53]; - double RHS14 = Idr[52]; - RHS14 += Idr[53]; - m_A40 += gt[54]; - m_A40 += gt[55]; - m_A40 += gt[56]; - m_A40 += gt[57]; - m_A41 += go[54]; - m_A39 += go[55]; - double RHS15 = Idr[54]; - RHS15 += Idr[55]; - RHS15 += Idr[56]; - RHS15 += Idr[57]; - RHS15 -= go[56] * *cnV[56]; - RHS15 -= go[57] * *cnV[57]; - m_A44 += gt[58]; - m_A44 += gt[59]; - m_A43 += go[58]; - m_A42 += go[59]; - double RHS16 = Idr[58]; - RHS16 += Idr[59]; - m_A54 += gt[60]; - m_A54 += gt[61]; - m_A54 += gt[62]; - m_A54 += gt[63]; - m_A54 += gt[64]; - m_A54 += gt[65]; - m_A52 += go[60]; - m_A50 += go[61]; - m_A50 += go[62]; - m_A51 += go[63]; - m_A49 += go[64]; - m_A48 += go[65]; - double RHS17 = Idr[60]; - RHS17 += Idr[61]; - RHS17 += Idr[62]; - RHS17 += Idr[63]; - RHS17 += Idr[64]; - RHS17 += Idr[65]; - m_A65 += gt[66]; - m_A65 += gt[67]; - m_A65 += gt[68]; - m_A65 += gt[69]; - m_A65 += gt[70]; - m_A65 += gt[71]; - m_A61 += go[66]; - m_A60 += go[67]; - m_A60 += go[68]; - m_A59 += go[69]; - m_A58 += go[70]; - m_A57 += go[71]; - double RHS18 = Idr[66]; - RHS18 += Idr[67]; - RHS18 += Idr[68]; - RHS18 += Idr[69]; - RHS18 += Idr[70]; - RHS18 += Idr[71]; - m_A70 += gt[72]; - m_A70 += gt[73]; - m_A70 += gt[74]; - m_A70 += gt[75]; - m_A68 += go[72]; - m_A67 += go[73]; - double RHS19 = Idr[72]; - RHS19 += Idr[73]; - RHS19 += Idr[74]; - RHS19 += Idr[75]; - RHS19 -= go[74] * *cnV[74]; - RHS19 -= go[75] * *cnV[75]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A19 += go[27]; + double RHS7 = Idr[27]; + RHS7 += Idr[28]; + RHS7 -= go[28] * *cnV[28]; + m_A20 += gt[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A21 += go[29]; + m_A23 += go[30]; + m_A22 += go[31]; + double RHS8 = Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A24 += gt[34]; + m_A25 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 -= go[33] * *cnV[33]; + RHS9 -= go[34] * *cnV[34]; + m_A26 += gt[35]; + m_A26 += gt[36]; + m_A26 += gt[37]; + m_A26 += gt[38]; + m_A27 += go[35]; + m_A28 += go[36]; + double RHS10 = Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 -= go[37] * *cnV[37]; + RHS10 -= go[38] * *cnV[38]; + m_A29 += gt[39]; + m_A29 += gt[40]; + m_A30 += go[39]; + double RHS11 = Idr[39]; + RHS11 += Idr[40]; + RHS11 -= go[40] * *cnV[40]; + m_A31 += gt[41]; + m_A31 += gt[42]; + m_A31 += gt[43]; + m_A31 += gt[44]; + m_A32 += go[41]; + m_A33 += go[42]; + double RHS12 = Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A36 += go[45]; + m_A35 += go[46]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 -= go[47] * *cnV[47]; + m_A37 += gt[48]; + m_A37 += gt[49]; + m_A38 += go[48]; + double RHS14 = Idr[48]; + RHS14 += Idr[49]; + RHS14 -= go[49] * *cnV[49]; + m_A39 += gt[50]; + m_A39 += gt[51]; + m_A40 += go[50]; + double RHS15 = Idr[50]; + RHS15 += Idr[51]; + RHS15 -= go[51] * *cnV[51]; + m_A41 += gt[52]; + m_A41 += gt[53]; + m_A42 += go[52]; + double RHS16 = Idr[52]; + RHS16 += Idr[53]; + RHS16 -= go[53] * *cnV[53]; + m_A43 += gt[54]; + m_A43 += gt[55]; + m_A43 += gt[56]; + m_A43 += gt[57]; + m_A43 += gt[58]; + m_A44 += go[54]; + m_A46 += go[55]; + m_A45 += go[56]; + double RHS17 = Idr[54]; + RHS17 += Idr[55]; + RHS17 += Idr[56]; + RHS17 += Idr[57]; + RHS17 += Idr[58]; + RHS17 -= go[57] * *cnV[57]; + RHS17 -= go[58] * *cnV[58]; + m_A47 += gt[59]; + m_A47 += gt[60]; + m_A47 += gt[61]; + m_A47 += gt[62]; + m_A47 += gt[63]; + m_A48 += go[59]; + m_A50 += go[60]; + m_A49 += go[61]; + double RHS18 = Idr[59]; + RHS18 += Idr[60]; + RHS18 += Idr[61]; + RHS18 += Idr[62]; + RHS18 += Idr[63]; + RHS18 -= go[62] * *cnV[62]; + RHS18 -= go[63] * *cnV[63]; + m_A51 += gt[64]; + m_A51 += gt[65]; + m_A52 += go[64]; + double RHS19 = Idr[64]; + RHS19 += Idr[65]; + RHS19 -= go[65] * *cnV[65]; + m_A55 += gt[66]; + m_A55 += gt[67]; + m_A54 += go[66]; + m_A53 += go[67]; + double RHS20 = Idr[66]; + RHS20 += Idr[67]; + m_A60 += gt[68]; + m_A60 += gt[69]; + m_A60 += gt[70]; + m_A58 += go[68]; + m_A57 += go[69]; + double RHS21 = Idr[68]; + RHS21 += Idr[69]; + RHS21 += Idr[70]; + RHS21 -= go[70] * *cnV[70]; + m_A63 += gt[71]; + m_A63 += gt[72]; + m_A64 += go[71]; + double RHS22 = Idr[71]; + RHS22 += Idr[72]; + RHS22 -= go[72] * *cnV[72]; + m_A65 += gt[73]; + m_A65 += gt[74]; + m_A65 += gt[75]; + m_A66 += go[73]; + double RHS23 = Idr[73]; + RHS23 += Idr[74]; + RHS23 += Idr[75]; + RHS23 -= go[74] * *cnV[74]; + RHS23 -= go[75] * *cnV[75]; + m_A69 += gt[76]; + m_A69 += gt[77]; + m_A69 += gt[78]; + m_A67 += go[76]; + m_A68 += go[77]; + double RHS24 = Idr[76]; + RHS24 += Idr[77]; + RHS24 += Idr[78]; + RHS24 -= go[78] * *cnV[78]; + m_A76 += gt[79]; + m_A76 += gt[80]; + m_A73 += go[79]; + m_A72 += go[80]; + double RHS25 = Idr[79]; + RHS25 += Idr[80]; + m_A81 += gt[81]; + m_A81 += gt[82]; + m_A80 += go[81]; + m_A79 += go[82]; + double RHS26 = Idr[81]; + RHS26 += Idr[82]; + m_A84 += gt[83]; + m_A84 += gt[84]; + m_A84 += gt[85]; + m_A85 += go[83]; + m_A83 += go[84]; + double RHS27 = Idr[83]; + RHS27 += Idr[84]; + RHS27 += Idr[85]; + RHS27 -= go[85] * *cnV[85]; + m_A88 += gt[86]; + m_A88 += gt[87]; + m_A87 += go[86]; + m_A86 += go[87]; + double RHS28 = Idr[86]; + RHS28 += Idr[87]; + m_A95 += gt[88]; + m_A95 += gt[89]; + m_A95 += gt[90]; + m_A95 += gt[91]; + m_A95 += gt[92]; + m_A90 += go[88]; + m_A92 += go[89]; + m_A91 += go[90]; + double RHS29 = Idr[88]; + RHS29 += Idr[89]; + RHS29 += Idr[90]; + RHS29 += Idr[91]; + RHS29 += Idr[92]; + RHS29 -= go[91] * *cnV[91]; + RHS29 -= go[92] * *cnV[92]; + m_A100 += gt[93]; + m_A100 += gt[94]; + m_A100 += gt[95]; + m_A100 += gt[96]; + m_A100 += gt[97]; + m_A100 += gt[98]; + m_A100 += gt[99]; + m_A98 += go[93]; + m_A101 += go[94]; + double RHS30 = Idr[93]; + RHS30 += Idr[94]; + RHS30 += Idr[95]; + RHS30 += Idr[96]; + RHS30 += Idr[97]; + RHS30 += Idr[98]; + RHS30 += Idr[99]; + RHS30 -= go[95] * *cnV[95]; + RHS30 -= go[96] * *cnV[96]; + RHS30 -= go[97] * *cnV[97]; + RHS30 -= go[98] * *cnV[98]; + RHS30 -= go[99] * *cnV[99]; + m_A103 += gt[100]; + m_A103 += gt[101]; + m_A103 += gt[102]; + m_A103 += gt[103]; + m_A103 += gt[104]; + m_A103 += gt[105]; + m_A104 += go[100]; + m_A104 += go[101]; + m_A102 += go[102]; + double RHS31 = Idr[100]; + RHS31 += Idr[101]; + RHS31 += Idr[102]; + RHS31 += Idr[103]; + RHS31 += Idr[104]; + RHS31 += Idr[105]; + RHS31 -= go[103] * *cnV[103]; + RHS31 -= go[104] * *cnV[104]; + RHS31 -= go[105] * *cnV[105]; + m_A110 += gt[106]; + m_A110 += gt[107]; + m_A110 += gt[108]; + m_A106 += go[106]; + m_A107 += go[107]; + m_A105 += go[108]; + double RHS32 = Idr[106]; + RHS32 += Idr[107]; + RHS32 += Idr[108]; + m_A114 += gt[109]; + m_A114 += gt[110]; + m_A114 += gt[111]; + m_A114 += gt[112]; + m_A114 += gt[113]; + m_A114 += gt[114]; + m_A114 += gt[115]; + m_A112 += go[109]; + m_A115 += go[110]; + double RHS33 = Idr[109]; + RHS33 += Idr[110]; + RHS33 += Idr[111]; + RHS33 += Idr[112]; + RHS33 += Idr[113]; + RHS33 += Idr[114]; + RHS33 += Idr[115]; + RHS33 -= go[111] * *cnV[111]; + RHS33 -= go[112] * *cnV[112]; + RHS33 -= go[113] * *cnV[113]; + RHS33 -= go[114] * *cnV[114]; + RHS33 -= go[115] * *cnV[115]; + m_A121 += gt[116]; + m_A121 += gt[117]; + m_A121 += gt[118]; + m_A121 += gt[119]; + m_A121 += gt[120]; + m_A121 += gt[121]; + m_A121 += gt[122]; + m_A118 += go[116]; + m_A116 += go[117]; + double RHS34 = Idr[116]; + RHS34 += Idr[117]; + RHS34 += Idr[118]; + RHS34 += Idr[119]; + RHS34 += Idr[120]; + RHS34 += Idr[121]; + RHS34 += Idr[122]; + RHS34 -= go[118] * *cnV[118]; + RHS34 -= go[119] * *cnV[119]; + RHS34 -= go[120] * *cnV[120]; + RHS34 -= go[121] * *cnV[121]; + RHS34 -= go[122] * *cnV[122]; + m_A125 += gt[123]; + m_A125 += gt[124]; + m_A125 += gt[125]; + m_A124 += go[123]; + m_A126 += go[124]; + m_A123 += go[125]; + double RHS35 = Idr[123]; + RHS35 += Idr[124]; + RHS35 += Idr[125]; + m_A132 += gt[126]; + m_A132 += gt[127]; + m_A132 += gt[128]; + m_A127 += go[126]; + m_A128 += go[127]; + m_A130 += go[128]; + double RHS36 = Idr[126]; + RHS36 += Idr[127]; + RHS36 += Idr[128]; + m_A149 += gt[129]; + m_A149 += gt[130]; + m_A149 += gt[131]; + m_A149 += gt[132]; + m_A149 += gt[133]; + m_A149 += gt[134]; + m_A149 += gt[135]; + m_A149 += gt[136]; + m_A149 += gt[137]; + m_A149 += gt[138]; + m_A149 += gt[139]; + m_A140 += go[129]; + m_A147 += go[130]; + m_A139 += go[131]; + m_A138 += go[132]; + m_A137 += go[133]; + m_A136 += go[134]; + m_A135 += go[135]; + m_A134 += go[136]; + m_A143 += go[137]; + m_A143 += go[138]; + double RHS37 = Idr[129]; + RHS37 += Idr[130]; + RHS37 += Idr[131]; + RHS37 += Idr[132]; + RHS37 += Idr[133]; + RHS37 += Idr[134]; + RHS37 += Idr[135]; + RHS37 += Idr[136]; + RHS37 += Idr[137]; + RHS37 += Idr[138]; + RHS37 += Idr[139]; + RHS37 -= go[139] * *cnV[139]; const double f0 = 1.0 / m_A0; - const double f0_8 = -f0 * m_A16; - m_A20 += m_A1 * f0_8; - RHS8 += f0_8 * RHS0; + const double f0_31 = -f0 * m_A102; + m_A103 += m_A1 * f0_31; + RHS31 += f0_31 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_11 = -f1 * m_A26; - m_A28 += m_A3 * f1_11; - RHS11 += f1_11 * RHS1; + const double f1_20 = -f1 * m_A53; + m_A55 += m_A3 * f1_20; + RHS20 += f1_20 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_12 = -f2 * m_A30; - m_A31 += m_A5 * f2_12; - RHS12 += f2_12 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_13 = -f3 * m_A33; - m_A35 += m_A7 * f3_13; - RHS13 += f3_13 * RHS3; - const double f3_17 = -f3 * m_A48; - m_A52 += m_A7 * f3_17; - RHS17 += f3_17 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_13 = -f4 * m_A34; - m_A35 += m_A9 * f4_13; - RHS13 += f4_13 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_14 = -f5 * m_A36; - m_A38 += m_A11 * f5_14; - RHS14 += f5_14 * RHS5; - const double f5_18 = -f5 * m_A57; - m_A61 += m_A11 * f5_18; - RHS18 += f5_18 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_14 = -f6 * m_A37; - m_A38 += m_A13 * f6_14; - RHS14 += f6_14 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_17 = -f7 * m_A49; - m_A54 += m_A15 * f7_17; - RHS17 += f7_17 * RHS7; - const double f7_19 = -f7 * m_A67; - m_A68 += m_A15 * f7_19; - RHS19 += f7_19 * RHS7; - const double f8 = 1.0 / m_A17; - const double f8_16 = -f8 * m_A42; - m_A44 += m_A18 * f8_16; - m_A45 += m_A19 * f8_16; - m_A47 += m_A20 * f8_16; - RHS16 += f8_16 * RHS8; - const double f8_17 = -f8 * m_A50; - m_A53 += m_A18 * f8_17; - m_A54 += m_A19 * f8_17; - m_A56 += m_A20 * f8_17; - RHS17 += f8_17 * RHS8; - const double f9 = 1.0 / m_A21; - const double f9_15 = -f9 * m_A39; - m_A41 += m_A22 * f9_15; - RHS15 += f9_15 * RHS9; - const double f9_18 = -f9 * m_A58; - m_A65 += m_A22 * f9_18; - RHS18 += f9_18 * RHS9; - const double f10 = 1.0 / m_A23; - const double f10_16 = -f10 * m_A43; - m_A44 += m_A24 * f10_16; - m_A46 += m_A25 * f10_16; - RHS16 += f10_16 * RHS10; - const double f10_18 = -f10 * m_A59; - m_A63 += m_A24 * f10_18; - m_A65 += m_A25 * f10_18; - RHS18 += f10_18 * RHS10; - const double f11 = 1.0 / m_A27; - const double f11_18 = -f11 * m_A60; - m_A62 += m_A28 * f11_18; - m_A65 += m_A29 * f11_18; - RHS18 += f11_18 * RHS11; - const double f12 = 1.0 / m_A31; - const double f12_17 = -f12 * m_A51; - m_A54 += m_A32 * f12_17; - RHS17 += f12_17 * RHS12; - const double f13 = 1.0 / m_A35; - const double f13_17 = -f13 * m_A52; - RHS17 += f13_17 * RHS13; - const double f14 = 1.0 / m_A38; - const double f14_18 = -f14 * m_A61; - RHS18 += f14_18 * RHS14; - const double f15 = 1.0 / m_A40; - const double f15_18 = -f15 * m_A62; - m_A65 += m_A41 * f15_18; - RHS18 += f15_18 * RHS15; - const double f16 = 1.0 / m_A44; - const double f16_17 = -f16 * m_A53; - m_A54 += m_A45 * f16_17; - m_A55 += m_A46 * f16_17; - m_A56 += m_A47 * f16_17; - RHS17 += f16_17 * RHS16; - const double f16_18 = -f16 * m_A63; - m_A64 += m_A45 * f16_18; - m_A65 += m_A46 * f16_18; - m_A66 += m_A47 * f16_18; - RHS18 += f16_18 * RHS16; - const double f17 = 1.0 / m_A54; - const double f17_18 = -f17 * m_A64; - m_A65 += m_A55 * f17_18; - m_A66 += m_A56 * f17_18; - RHS18 += f17_18 * RHS17; - const double f17_19 = -f17 * m_A68; - m_A69 += m_A55 * f17_19; - m_A70 += m_A56 * f17_19; - RHS19 += f17_19 * RHS17; - const double f18 = 1.0 / m_A65; - const double f18_19 = -f18 * m_A69; - m_A70 += m_A66 * f18_19; - RHS19 += f18_19 * RHS18; - V[19] = RHS19 / m_A70; + const double f2_20 = -f2 * m_A54; + m_A55 += m_A5 * f2_20; + m_A56 += m_A6 * f2_20; + RHS20 += f2_20 * RHS2; + const double f2_21 = -f2 * m_A57; + m_A59 += m_A5 * f2_21; + m_A60 += m_A6 * f2_21; + RHS21 += f2_21 * RHS2; + const double f2_34 = -f2 * m_A116; + m_A117 += m_A5 * f2_34; + m_A118 += m_A6 * f2_34; + RHS34 += f2_34 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_21 = -f3 * m_A58; + m_A60 += m_A8 * f3_21; + m_A61 += m_A9 * f3_21; + m_A62 += m_A10 * f3_21; + RHS21 += f3_21 * RHS3; + const double f3_25 = -f3 * m_A72; + m_A74 += m_A8 * f3_25; + m_A76 += m_A9 * f3_25; + m_A78 += m_A10 * f3_25; + RHS25 += f3_25 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_24 = -f4 * m_A67; + m_A69 += m_A12 * f4_24; + RHS24 += f4_24 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_29 = -f5 * m_A90; + m_A91 += m_A14 * f5_29; + m_A93 += m_A15 * f5_29; + RHS29 += f5_29 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_26 = -f6 * m_A79; + m_A81 += m_A17 * f6_26; + RHS26 += f6_26 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_27 = -f7 * m_A83; + m_A84 += m_A19 * f7_27; + RHS27 += f7_27 * RHS7; + const double f8 = 1.0 / m_A20; + const double f8_24 = -f8 * m_A68; + m_A69 += m_A21 * f8_24; + m_A70 += m_A22 * f8_24; + m_A71 += m_A23 * f8_24; + RHS24 += f8_24 * RHS8; + const double f8_25 = -f8 * m_A73; + m_A75 += m_A21 * f8_25; + m_A76 += m_A22 * f8_25; + m_A77 += m_A23 * f8_25; + RHS25 += f8_25 * RHS8; + const double f8_29 = -f8 * m_A91; + m_A93 += m_A21 * f8_29; + m_A94 += m_A22 * f8_29; + m_A95 += m_A23 * f8_29; + RHS29 += f8_29 * RHS8; + const double f9 = 1.0 / m_A24; + const double f9_28 = -f9 * m_A86; + m_A88 += m_A25 * f9_28; + RHS28 += f9_28 * RHS9; + const double f10 = 1.0 / m_A26; + const double f10_26 = -f10 * m_A80; + m_A81 += m_A27 * f10_26; + m_A82 += m_A28 * f10_26; + RHS26 += f10_26 * RHS10; + const double f10_33 = -f10 * m_A112; + m_A113 += m_A27 * f10_33; + m_A115 += m_A28 * f10_33; + RHS33 += f10_33 * RHS10; + const double f10_36 = -f10 * m_A127; + m_A129 += m_A27 * f10_36; + m_A132 += m_A28 * f10_36; + RHS36 += f10_36 * RHS10; + const double f11 = 1.0 / m_A29; + const double f11_32 = -f11 * m_A105; + m_A110 += m_A30 * f11_32; + RHS32 += f11_32 * RHS11; + const double f12 = 1.0 / m_A31; + const double f12_28 = -f12 * m_A87; + m_A88 += m_A32 * f12_28; + m_A89 += m_A33 * f12_28; + RHS28 += f12_28 * RHS12; + const double f12_30 = -f12 * m_A98; + m_A99 += m_A32 * f12_30; + m_A101 += m_A33 * f12_30; + RHS30 += f12_30 * RHS12; + const double f12_32 = -f12 * m_A106; + m_A108 += m_A32 * f12_32; + m_A110 += m_A33 * f12_32; + RHS32 += f12_32 * RHS12; + const double f13 = 1.0 / m_A34; + const double f13_29 = -f13 * m_A92; + m_A95 += m_A35 * f13_29; + m_A97 += m_A36 * f13_29; + RHS29 += f13_29 * RHS13; + const double f13_37 = -f13 * m_A134; + m_A141 += m_A35 * f13_37; + m_A149 += m_A36 * f13_37; + RHS37 += f13_37 * RHS13; + const double f14 = 1.0 / m_A37; + const double f14_35 = -f14 * m_A123; + m_A125 += m_A38 * f14_35; + RHS35 += f14_35 * RHS14; + const double f15 = 1.0 / m_A39; + const double f15_35 = -f15 * m_A124; + m_A125 += m_A40 * f15_35; + RHS35 += f15_35 * RHS15; + const double f16 = 1.0 / m_A41; + const double f16_37 = -f16 * m_A135; + m_A149 += m_A42 * f16_37; + RHS37 += f16_37 * RHS16; + const double f17 = 1.0 / m_A43; + const double f17_36 = -f17 * m_A128; + m_A131 += m_A44 * f17_36; + m_A132 += m_A45 * f17_36; + m_A133 += m_A46 * f17_36; + RHS36 += f17_36 * RHS17; + const double f17_37 = -f17 * m_A136; + m_A145 += m_A44 * f17_37; + m_A148 += m_A45 * f17_37; + m_A149 += m_A46 * f17_37; + RHS37 += f17_37 * RHS17; + const double f18 = 1.0 / m_A47; + const double f18_32 = -f18 * m_A107; + m_A109 += m_A48 * f18_32; + m_A110 += m_A49 * f18_32; + m_A111 += m_A50 * f18_32; + RHS32 += f18_32 * RHS18; + const double f18_37 = -f18 * m_A137; + m_A142 += m_A48 * f18_37; + m_A144 += m_A49 * f18_37; + m_A149 += m_A50 * f18_37; + RHS37 += f18_37 * RHS18; + const double f19 = 1.0 / m_A51; + const double f19_37 = -f19 * m_A138; + m_A149 += m_A52 * f19_37; + RHS37 += f19_37 * RHS19; + const double f20 = 1.0 / m_A55; + const double f20_21 = -f20 * m_A59; + m_A60 += m_A56 * f20_21; + RHS21 += f20_21 * RHS20; + const double f20_34 = -f20 * m_A117; + m_A118 += m_A56 * f20_34; + RHS34 += f20_34 * RHS20; + const double f21 = 1.0 / m_A60; + const double f21_25 = -f21 * m_A74; + m_A76 += m_A61 * f21_25; + m_A78 += m_A62 * f21_25; + RHS25 += f21_25 * RHS21; + const double f21_34 = -f21 * m_A118; + m_A119 += m_A61 * f21_34; + m_A121 += m_A62 * f21_34; + RHS34 += f21_34 * RHS21; + const double f22 = 1.0 / m_A63; + const double f22_37 = -f22 * m_A139; + m_A149 += m_A64 * f22_37; + RHS37 += f22_37 * RHS22; + const double f23 = 1.0 / m_A65; + const double f23_37 = -f23 * m_A140; + m_A149 += m_A66 * f23_37; + RHS37 += f23_37 * RHS23; + const double f24 = 1.0 / m_A69; + const double f24_25 = -f24 * m_A75; + m_A76 += m_A70 * f24_25; + m_A77 += m_A71 * f24_25; + RHS25 += f24_25 * RHS24; + const double f24_29 = -f24 * m_A93; + m_A94 += m_A70 * f24_29; + m_A95 += m_A71 * f24_29; + RHS29 += f24_29 * RHS24; + const double f25 = 1.0 / m_A76; + const double f25_29 = -f25 * m_A94; + m_A95 += m_A77 * f25_29; + m_A96 += m_A78 * f25_29; + RHS29 += f25_29 * RHS25; + const double f25_34 = -f25 * m_A119; + m_A120 += m_A77 * f25_34; + m_A121 += m_A78 * f25_34; + RHS34 += f25_34 * RHS25; + const double f26 = 1.0 / m_A81; + const double f26_33 = -f26 * m_A113; + m_A115 += m_A82 * f26_33; + RHS33 += f26_33 * RHS26; + const double f26_36 = -f26 * m_A129; + m_A132 += m_A82 * f26_36; + RHS36 += f26_36 * RHS26; + const double f27 = 1.0 / m_A84; + const double f27_36 = -f27 * m_A130; + m_A132 += m_A85 * f27_36; + RHS36 += f27_36 * RHS27; + const double f28 = 1.0 / m_A88; + const double f28_30 = -f28 * m_A99; + m_A101 += m_A89 * f28_30; + RHS30 += f28_30 * RHS28; + const double f28_32 = -f28 * m_A108; + m_A110 += m_A89 * f28_32; + RHS32 += f28_32 * RHS28; + const double f29 = 1.0 / m_A95; + const double f29_34 = -f29 * m_A120; + m_A121 += m_A96 * f29_34; + m_A122 += m_A97 * f29_34; + RHS34 += f29_34 * RHS29; + const double f29_37 = -f29 * m_A141; + m_A146 += m_A96 * f29_37; + m_A149 += m_A97 * f29_37; + RHS37 += f29_37 * RHS29; + const double f30 = 1.0 / m_A100; + const double f30_32 = -f30 * m_A109; + m_A110 += m_A101 * f30_32; + RHS32 += f30_32 * RHS30; + const double f30_37 = -f30 * m_A142; + m_A144 += m_A101 * f30_37; + RHS37 += f30_37 * RHS30; + const double f31 = 1.0 / m_A103; + const double f31_37 = -f31 * m_A143; + m_A149 += m_A104 * f31_37; + RHS37 += f31_37 * RHS31; + const double f32 = 1.0 / m_A110; + const double f32_37 = -f32 * m_A144; + m_A149 += m_A111 * f32_37; + RHS37 += f32_37 * RHS32; + const double f33 = 1.0 / m_A114; + const double f33_36 = -f33 * m_A131; + m_A132 += m_A115 * f33_36; + RHS36 += f33_36 * RHS33; + const double f33_37 = -f33 * m_A145; + m_A148 += m_A115 * f33_37; + RHS37 += f33_37 * RHS33; + const double f34 = 1.0 / m_A121; + const double f34_37 = -f34 * m_A146; + m_A149 += m_A122 * f34_37; + RHS37 += f34_37 * RHS34; + const double f35 = 1.0 / m_A125; + const double f35_37 = -f35 * m_A147; + m_A149 += m_A126 * f35_37; + RHS37 += f35_37 * RHS35; + const double f36 = 1.0 / m_A132; + const double f36_37 = -f36 * m_A148; + m_A149 += m_A133 * f36_37; + RHS37 += f36_37 * RHS36; + V[37] = RHS37 / m_A149; + double tmp36 = 0.0; + tmp36 += m_A133 * V[37]; + V[36] = (RHS36 - tmp36) / m_A132; + double tmp35 = 0.0; + tmp35 += m_A126 * V[37]; + V[35] = (RHS35 - tmp35) / m_A125; + double tmp34 = 0.0; + tmp34 += m_A122 * V[37]; + V[34] = (RHS34 - tmp34) / m_A121; + double tmp33 = 0.0; + tmp33 += m_A115 * V[36]; + V[33] = (RHS33 - tmp33) / m_A114; + double tmp32 = 0.0; + tmp32 += m_A111 * V[37]; + V[32] = (RHS32 - tmp32) / m_A110; + double tmp31 = 0.0; + tmp31 += m_A104 * V[37]; + V[31] = (RHS31 - tmp31) / m_A103; + double tmp30 = 0.0; + tmp30 += m_A101 * V[32]; + V[30] = (RHS30 - tmp30) / m_A100; + double tmp29 = 0.0; + tmp29 += m_A96 * V[34]; + tmp29 += m_A97 * V[37]; + V[29] = (RHS29 - tmp29) / m_A95; + double tmp28 = 0.0; + tmp28 += m_A89 * V[32]; + V[28] = (RHS28 - tmp28) / m_A88; + double tmp27 = 0.0; + tmp27 += m_A85 * V[36]; + V[27] = (RHS27 - tmp27) / m_A84; + double tmp26 = 0.0; + tmp26 += m_A82 * V[36]; + V[26] = (RHS26 - tmp26) / m_A81; + double tmp25 = 0.0; + tmp25 += m_A77 * V[29]; + tmp25 += m_A78 * V[34]; + V[25] = (RHS25 - tmp25) / m_A76; + double tmp24 = 0.0; + tmp24 += m_A70 * V[25]; + tmp24 += m_A71 * V[29]; + V[24] = (RHS24 - tmp24) / m_A69; + double tmp23 = 0.0; + tmp23 += m_A66 * V[37]; + V[23] = (RHS23 - tmp23) / m_A65; + double tmp22 = 0.0; + tmp22 += m_A64 * V[37]; + V[22] = (RHS22 - tmp22) / m_A63; + double tmp21 = 0.0; + tmp21 += m_A61 * V[25]; + tmp21 += m_A62 * V[34]; + V[21] = (RHS21 - tmp21) / m_A60; + double tmp20 = 0.0; + tmp20 += m_A56 * V[21]; + V[20] = (RHS20 - tmp20) / m_A55; + double tmp19 = 0.0; + tmp19 += m_A52 * V[37]; + V[19] = (RHS19 - tmp19) / m_A51; double tmp18 = 0.0; - tmp18 += m_A66 * V[19]; - V[18] = (RHS18 - tmp18) / m_A65; + tmp18 += m_A48 * V[30]; + tmp18 += m_A49 * V[32]; + tmp18 += m_A50 * V[37]; + V[18] = (RHS18 - tmp18) / m_A47; double tmp17 = 0.0; - tmp17 += m_A55 * V[18]; - tmp17 += m_A56 * V[19]; - V[17] = (RHS17 - tmp17) / m_A54; + tmp17 += m_A44 * V[33]; + tmp17 += m_A45 * V[36]; + tmp17 += m_A46 * V[37]; + V[17] = (RHS17 - tmp17) / m_A43; double tmp16 = 0.0; - tmp16 += m_A45 * V[17]; - tmp16 += m_A46 * V[18]; - tmp16 += m_A47 * V[19]; - V[16] = (RHS16 - tmp16) / m_A44; + tmp16 += m_A42 * V[37]; + V[16] = (RHS16 - tmp16) / m_A41; double tmp15 = 0.0; - tmp15 += m_A41 * V[18]; - V[15] = (RHS15 - tmp15) / m_A40; + tmp15 += m_A40 * V[35]; + V[15] = (RHS15 - tmp15) / m_A39; double tmp14 = 0.0; - V[14] = (RHS14 - tmp14) / m_A38; + tmp14 += m_A38 * V[35]; + V[14] = (RHS14 - tmp14) / m_A37; double tmp13 = 0.0; - V[13] = (RHS13 - tmp13) / m_A35; + tmp13 += m_A35 * V[29]; + tmp13 += m_A36 * V[37]; + V[13] = (RHS13 - tmp13) / m_A34; double tmp12 = 0.0; - tmp12 += m_A32 * V[17]; + tmp12 += m_A32 * V[28]; + tmp12 += m_A33 * V[32]; V[12] = (RHS12 - tmp12) / m_A31; double tmp11 = 0.0; - tmp11 += m_A28 * V[15]; - tmp11 += m_A29 * V[18]; - V[11] = (RHS11 - tmp11) / m_A27; + tmp11 += m_A30 * V[32]; + V[11] = (RHS11 - tmp11) / m_A29; double tmp10 = 0.0; - tmp10 += m_A24 * V[16]; - tmp10 += m_A25 * V[18]; - V[10] = (RHS10 - tmp10) / m_A23; + tmp10 += m_A27 * V[26]; + tmp10 += m_A28 * V[36]; + V[10] = (RHS10 - tmp10) / m_A26; double tmp9 = 0.0; - tmp9 += m_A22 * V[18]; - V[9] = (RHS9 - tmp9) / m_A21; + tmp9 += m_A25 * V[28]; + V[9] = (RHS9 - tmp9) / m_A24; double tmp8 = 0.0; - tmp8 += m_A18 * V[16]; - tmp8 += m_A19 * V[17]; - tmp8 += m_A20 * V[19]; - V[8] = (RHS8 - tmp8) / m_A17; + tmp8 += m_A21 * V[24]; + tmp8 += m_A22 * V[25]; + tmp8 += m_A23 * V[29]; + V[8] = (RHS8 - tmp8) / m_A20; double tmp7 = 0.0; - tmp7 += m_A15 * V[17]; - V[7] = (RHS7 - tmp7) / m_A14; + tmp7 += m_A19 * V[27]; + V[7] = (RHS7 - tmp7) / m_A18; double tmp6 = 0.0; - tmp6 += m_A13 * V[14]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A17 * V[26]; + V[6] = (RHS6 - tmp6) / m_A16; double tmp5 = 0.0; - tmp5 += m_A11 * V[14]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[13]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[13]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[12]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[15]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[19]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// gunfight -static void nl_gcr_d05b3dbe370c7904_14_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A2 += go[0]; - m_A1 += go[1]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[2] * *cnV[2]; - m_A4 += gt[3]; - m_A4 += gt[4]; - m_A3 += go[3]; - m_A6 += go[4]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - m_A9 += gt[5]; - m_A9 += gt[6]; - m_A9 += gt[7]; - m_A9 += gt[8]; - m_A9 += gt[9]; - m_A9 += gt[10]; - m_A9 += gt[11]; - m_A9 += gt[12]; - m_A9 += gt[13]; - m_A7 += go[5]; - m_A10 += go[6]; - m_A10 += go[7]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[8] * *cnV[8]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; - RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; - RHS2 -= go[13] * *cnV[13]; - m_A13 += gt[14]; - m_A13 += gt[15]; - m_A13 += gt[16]; - m_A13 += gt[17]; - m_A13 += gt[18]; - m_A12 += go[14]; - m_A12 += go[15]; - m_A11 += go[16]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - const double f0 = 1.0 / m_A0; - const double f0_1 = -f0 * m_A3; - m_A4 += m_A1 * f0_1; - m_A5 += m_A2 * f0_1; - RHS1 += f0_1 * RHS0; - const double f0_2 = -f0 * m_A7; - m_A8 += m_A1 * f0_2; - m_A9 += m_A2 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A4; - const double f1_2 = -f1 * m_A8; - m_A9 += m_A5 * f1_2; - m_A10 += m_A6 * f1_2; - RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A11; - m_A12 += m_A5 * f1_3; - m_A13 += m_A6 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A9; - const double f2_3 = -f2 * m_A12; - m_A13 += m_A10 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A13; - double tmp2 = 0.0; - tmp2 += m_A10 * V[3]; - V[2] = (RHS2 - tmp2) / m_A9; - double tmp1 = 0.0; - tmp1 += m_A5 * V[2]; - tmp1 += m_A6 * V[3]; - V[1] = (RHS1 - tmp1) / m_A4; - double tmp0 = 0.0; - tmp0 += m_A1 * V[1]; - tmp0 += m_A2 * V[2]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// barrier -static void nl_gcr_d06bd7ddbfd17b5e_15_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A4 += go[2]; - m_A3 += go[3]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - m_A5 += gt[4]; - m_A5 += gt[5]; - m_A5 += gt[6]; - m_A6 += go[4]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - RHS2 += Idr[6]; - RHS2 -= go[5] * *cnV[5]; - RHS2 -= go[6] * *cnV[6]; - m_A9 += gt[7]; - m_A9 += gt[8]; - m_A7 += go[7]; - m_A8 += go[8]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - m_A14 += gt[9]; - m_A14 += gt[10]; - m_A12 += go[9]; - m_A11 += go[10]; - double RHS4 = Idr[9]; - RHS4 += Idr[10]; - const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A7; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A8; - m_A9 += m_A3 * f1_3; - m_A10 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_4 = -f1 * m_A11; - m_A13 += m_A3 * f1_4; - m_A14 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A6 * f2_4; - RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A10 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A14; + tmp5 += m_A14 * V[8]; + tmp5 += m_A15 * V[24]; + V[5] = (RHS5 - tmp5) / m_A13; + double tmp4 = 0.0; + tmp4 += m_A12 * V[24]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A10 * V[4]; - V[3] = (RHS3 - tmp3) / m_A9; + tmp3 += m_A8 * V[21]; + tmp3 += m_A9 * V[25]; + tmp3 += m_A10 * V[34]; + V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A6 * V[4]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[20]; + tmp2 += m_A6 * V[21]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; - tmp1 += m_A4 * V[4]; + tmp1 += m_A3 * V[20]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[31]; V[0] = (RHS0 - tmp0) / m_A0; } -// armora -static void nl_gcr_d27a39bc93616187_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// elim +static void nl_gcr_e76692c10e79997e_36_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -29714,15 +61851,6 @@ double m_A33(0.0); double m_A34(0.0); double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -29739,288 +61867,290 @@ m_A2 += gt[5]; m_A2 += gt[6]; m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A2 += gt[11]; - m_A5 += go[4]; - m_A4 += go[5]; - m_A4 += go[6]; - m_A3 += go[7]; - m_A3 += go[8]; + m_A3 += go[4]; double RHS1 = Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 += Idr[11]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - RHS1 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A7 += go[12]; - double RHS2 = Idr[12]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A4 += gt[14]; + m_A5 += go[8]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; RHS2 += Idr[13]; RHS2 += Idr[14]; - RHS2 += Idr[15]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; RHS2 -= go[13] * *cnV[13]; RHS2 -= go[14] * *cnV[14]; - RHS2 -= go[15] * *cnV[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A10 += go[16]; - m_A9 += go[17]; - double RHS3 = Idr[16]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A6 += gt[17]; + m_A7 += go[15]; + double RHS3 = Idr[15]; + RHS3 += Idr[16]; RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 -= go[18] * *cnV[18]; - m_A11 += gt[19]; - m_A11 += gt[20]; - m_A11 += gt[21]; - m_A11 += gt[22]; - m_A11 += gt[23]; - m_A11 += gt[24]; - m_A11 += gt[25]; - m_A11 += gt[26]; - m_A14 += go[19]; - m_A13 += go[20]; - m_A13 += go[21]; - m_A12 += go[22]; - m_A12 += go[23]; - double RHS4 = Idr[19]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A8 += gt[22]; + m_A8 += gt[23]; + m_A10 += go[18]; + m_A9 += go[19]; + m_A11 += go[20]; + m_A11 += go[21]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; RHS4 += Idr[20]; RHS4 += Idr[21]; RHS4 += Idr[22]; RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 += Idr[25]; - RHS4 += Idr[26]; - RHS4 -= go[24] * *cnV[24]; - RHS4 -= go[25] * *cnV[25]; - RHS4 -= go[26] * *cnV[26]; - m_A17 += gt[27]; - m_A17 += gt[28]; - m_A17 += gt[29]; - m_A17 += gt[30]; - m_A17 += gt[31]; - m_A17 += gt[32]; - m_A16 += go[27]; - m_A16 += go[28]; - m_A15 += go[29]; - double RHS5 = Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 += Idr[30]; - RHS5 += Idr[31]; - RHS5 += Idr[32]; - RHS5 -= go[30] * *cnV[30]; - RHS5 -= go[31] * *cnV[31]; - RHS5 -= go[32] * *cnV[32]; - m_A22 += gt[33]; - m_A22 += gt[34]; - m_A22 += gt[35]; - m_A22 += gt[36]; - m_A22 += gt[37]; - m_A22 += gt[38]; - m_A21 += go[33]; - m_A21 += go[34]; - m_A20 += go[35]; - double RHS6 = Idr[33]; - RHS6 += Idr[34]; - RHS6 += Idr[35]; - RHS6 += Idr[36]; - RHS6 += Idr[37]; - RHS6 += Idr[38]; - RHS6 -= go[36] * *cnV[36]; - RHS6 -= go[37] * *cnV[37]; - RHS6 -= go[38] * *cnV[38]; - m_A27 += gt[39]; - m_A27 += gt[40]; - m_A27 += gt[41]; - m_A27 += gt[42]; - m_A27 += gt[43]; - m_A28 += go[39]; - m_A28 += go[40]; - m_A25 += go[41]; - m_A25 += go[42]; - double RHS7 = Idr[39]; - RHS7 += Idr[40]; - RHS7 += Idr[41]; - RHS7 += Idr[42]; - RHS7 += Idr[43]; - RHS7 -= go[43] * *cnV[43]; - m_A31 += gt[44]; - m_A31 += gt[45]; - m_A31 += gt[46]; - m_A31 += gt[47]; - m_A31 += gt[48]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A12 += gt[26]; + m_A13 += go[24]; + double RHS5 = Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + m_A16 += gt[27]; + m_A16 += gt[28]; + m_A15 += go[27]; + m_A14 += go[28]; + double RHS6 = Idr[27]; + RHS6 += Idr[28]; + m_A21 += gt[29]; + m_A21 += gt[30]; + m_A21 += gt[31]; + m_A21 += gt[32]; + m_A22 += go[29]; + m_A20 += go[30]; + m_A19 += go[31]; + double RHS7 = Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 -= go[32] * *cnV[32]; + m_A24 += gt[33]; + m_A24 += gt[34]; + m_A24 += gt[35]; + m_A24 += gt[36]; + m_A24 += gt[37]; + m_A24 += gt[38]; + m_A24 += gt[39]; + m_A23 += go[33]; + m_A25 += go[34]; + double RHS8 = Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + RHS8 -= go[35] * *cnV[35]; + RHS8 -= go[36] * *cnV[36]; + RHS8 -= go[37] * *cnV[37]; + RHS8 -= go[38] * *cnV[38]; + RHS8 -= go[39] * *cnV[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A30 += gt[43]; + m_A27 += go[40]; + m_A27 += go[41]; + m_A26 += go[42]; + m_A31 += go[43]; + double RHS9 = Idr[40]; + RHS9 += Idr[41]; + RHS9 += Idr[42]; + RHS9 += Idr[43]; + m_A35 += gt[44]; + m_A35 += gt[45]; + m_A35 += gt[46]; + m_A35 += gt[47]; + m_A35 += gt[48]; m_A32 += go[44]; - m_A32 += go[45]; - m_A29 += go[46]; - m_A29 += go[47]; - double RHS8 = Idr[44]; - RHS8 += Idr[45]; - RHS8 += Idr[46]; - RHS8 += Idr[47]; - RHS8 += Idr[48]; - RHS8 -= go[48] * *cnV[48]; - m_A37 += gt[49]; - m_A37 += gt[50]; - m_A37 += gt[51]; - m_A37 += gt[52]; - m_A37 += gt[53]; - m_A34 += go[49]; - m_A36 += go[50]; - m_A36 += go[51]; - m_A33 += go[52]; - double RHS9 = Idr[49]; - RHS9 += Idr[50]; - RHS9 += Idr[51]; - RHS9 += Idr[52]; - RHS9 += Idr[53]; - RHS9 -= go[53] * *cnV[53]; - m_A44 += gt[54]; - m_A44 += gt[55]; - m_A44 += gt[56]; - m_A44 += gt[57]; - m_A44 += gt[58]; - m_A42 += go[54]; - m_A42 += go[55]; - m_A40 += go[56]; - m_A39 += go[57]; - double RHS10 = Idr[54]; - RHS10 += Idr[55]; - RHS10 += Idr[56]; - RHS10 += Idr[57]; - RHS10 += Idr[58]; - RHS10 -= go[58] * *cnV[58]; + m_A34 += go[45]; + m_A33 += go[46]; + double RHS10 = Idr[44]; + RHS10 += Idr[45]; + RHS10 += Idr[46]; + RHS10 += Idr[47]; + RHS10 += Idr[48]; + RHS10 -= go[47] * *cnV[47]; + RHS10 -= go[48] * *cnV[48]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A15; - m_A17 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; + const double f0_7 = -f0 * m_A19; + m_A21 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A16; - m_A17 += m_A3 * f1_5; - m_A18 += m_A4 * f1_5; - m_A19 += m_A5 * f1_5; - RHS5 += f1_5 * RHS1; - const double f1_7 = -f1 * m_A25; - m_A26 += m_A3 * f1_7; - m_A27 += m_A4 * f1_7; - m_A28 += m_A5 * f1_7; + const double f1_7 = -f1 * m_A20; + m_A21 += m_A3 * f1_7; RHS7 += f1_7 * RHS1; - const double f1_9 = -f1 * m_A33; - m_A35 += m_A3 * f1_9; - m_A36 += m_A4 * f1_9; - m_A37 += m_A5 * f1_9; - RHS9 += f1_9 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_6 = -f2 * m_A20; - m_A22 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_9 = -f3 * m_A34; - m_A37 += m_A9 * f3_9; - m_A38 += m_A10 * f3_9; + const double f2 = 1.0 / m_A4; + const double f2_10 = -f2 * m_A32; + m_A33 += m_A5 * f2_10; + RHS10 += f2_10 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_8 = -f3 * m_A23; + m_A25 += m_A7 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_9 = -f3 * m_A26; + m_A30 += m_A7 * f3_9; RHS9 += f3_9 * RHS3; - const double f3_10 = -f3 * m_A39; - m_A43 += m_A9 * f3_10; - m_A44 += m_A10 * f3_10; - RHS10 += f3_10 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_6 = -f4 * m_A21; - m_A22 += m_A12 * f4_6; - m_A23 += m_A13 * f4_6; - m_A24 += m_A14 * f4_6; + const double f4 = 1.0 / m_A8; + const double f4_6 = -f4 * m_A14; + m_A16 += m_A9 * f4_6; + m_A17 += m_A10 * f4_6; + m_A18 += m_A11 * f4_6; RHS6 += f4_6 * RHS4; - const double f4_8 = -f4 * m_A29; - m_A30 += m_A12 * f4_8; - m_A31 += m_A13 * f4_8; - m_A32 += m_A14 * f4_8; - RHS8 += f4_8 * RHS4; - const double f4_10 = -f4 * m_A40; - m_A41 += m_A12 * f4_10; - m_A42 += m_A13 * f4_10; - m_A44 += m_A14 * f4_10; - RHS10 += f4_10 * RHS4; - const double f5 = 1.0 / m_A17; - const double f5_7 = -f5 * m_A26; - m_A27 += m_A18 * f5_7; - m_A28 += m_A19 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_9 = -f5 * m_A35; - m_A36 += m_A18 * f5_9; - m_A37 += m_A19 * f5_9; - RHS9 += f5_9 * RHS5; - const double f6 = 1.0 / m_A22; - const double f6_8 = -f6 * m_A30; - m_A31 += m_A23 * f6_8; - m_A32 += m_A24 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_10 = -f6 * m_A41; - m_A42 += m_A23 * f6_10; - m_A44 += m_A24 * f6_10; - RHS10 += f6_10 * RHS6; - const double f7 = 1.0 / m_A27; - const double f7_9 = -f7 * m_A36; - m_A37 += m_A28 * f7_9; - RHS9 += f7_9 * RHS7; - const double f8 = 1.0 / m_A31; - const double f8_10 = -f8 * m_A42; - m_A44 += m_A32 * f8_10; - RHS10 += f8_10 * RHS8; - const double f9 = 1.0 / m_A37; - const double f9_10 = -f9 * m_A43; - m_A44 += m_A38 * f9_10; + const double f4_9 = -f4 * m_A27; + m_A28 += m_A9 * f4_9; + m_A29 += m_A10 * f4_9; + m_A30 += m_A11 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_6 = -f5 * m_A15; + m_A16 += m_A13 * f5_6; + RHS6 += f5_6 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_9 = -f6 * m_A28; + m_A29 += m_A17 * f6_9; + m_A30 += m_A18 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A21; + const double f7_10 = -f7 * m_A33; + m_A35 += m_A22 * f7_10; + RHS10 += f7_10 * RHS7; + const double f8 = 1.0 / m_A24; + const double f8_9 = -f8 * m_A29; + m_A30 += m_A25 * f8_9; + RHS9 += f8_9 * RHS8; + const double f9 = 1.0 / m_A30; + const double f9_10 = -f9 * m_A34; + m_A35 += m_A31 * f9_10; RHS10 += f9_10 * RHS9; - V[10] = RHS10 / m_A44; + V[10] = RHS10 / m_A35; double tmp9 = 0.0; - tmp9 += m_A38 * V[10]; - V[9] = (RHS9 - tmp9) / m_A37; + tmp9 += m_A31 * V[10]; + V[9] = (RHS9 - tmp9) / m_A30; double tmp8 = 0.0; - tmp8 += m_A32 * V[10]; - V[8] = (RHS8 - tmp8) / m_A31; + tmp8 += m_A25 * V[9]; + V[8] = (RHS8 - tmp8) / m_A24; double tmp7 = 0.0; - tmp7 += m_A28 * V[9]; - V[7] = (RHS7 - tmp7) / m_A27; + tmp7 += m_A22 * V[10]; + V[7] = (RHS7 - tmp7) / m_A21; double tmp6 = 0.0; - tmp6 += m_A23 * V[8]; - tmp6 += m_A24 * V[10]; - V[6] = (RHS6 - tmp6) / m_A22; + tmp6 += m_A17 * V[8]; + tmp6 += m_A18 * V[9]; + V[6] = (RHS6 - tmp6) / m_A16; double tmp5 = 0.0; - tmp5 += m_A18 * V[7]; - tmp5 += m_A19 * V[9]; - V[5] = (RHS5 - tmp5) / m_A17; + tmp5 += m_A13 * V[6]; + V[5] = (RHS5 - tmp5) / m_A12; double tmp4 = 0.0; - tmp4 += m_A12 * V[6]; - tmp4 += m_A13 * V[8]; - tmp4 += m_A14 * V[10]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A9 * V[6]; + tmp4 += m_A10 * V[8]; + tmp4 += m_A11 * V[9]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A9 * V[9]; - tmp3 += m_A10 * V[10]; - V[3] = (RHS3 - tmp3) / m_A8; + tmp3 += m_A7 * V[9]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A7 * V[6]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A5 * V[7]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; - tmp1 += m_A4 * V[7]; - tmp1 += m_A5 * V[9]; + tmp1 += m_A3 * V[7]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[7]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_d7d45dc58b08cab9_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// fireone +static void nl_gcr_e7fb484f621b3ab9_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A2 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A4 += go[7]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + const double f0 = 1.0 / m_A0; + const double f0_1 = -f0 * m_A2; + m_A3 += m_A1 * f0_1; + RHS1 += f0_1 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_2 = -f1 * m_A5; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[1]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// elim +static void nl_gcr_e8aeb165b69427ec_18_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -30035,65 +62165,108 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A3 += go[2]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 -= go[3] * *cnV[3]; - RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; m_A5 += gt[6]; m_A5 += gt[7]; - m_A5 += gt[8]; m_A6 += go[6]; - m_A4 += go[7]; double RHS2 = Idr[6]; RHS2 += Idr[7]; - RHS2 += Idr[8]; - RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[7] * *cnV[7]; + m_A9 += gt[8]; m_A9 += gt[9]; - m_A9 += gt[10]; + m_A8 += go[8]; m_A7 += go[9]; - m_A8 += go[10]; - double RHS3 = Idr[9]; - RHS3 += Idr[10]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + m_A13 += gt[10]; + m_A13 += gt[11]; + m_A13 += gt[12]; + m_A14 += go[10]; + m_A11 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 -= go[12] * *cnV[12]; + m_A17 += gt[13]; + m_A17 += gt[14]; + m_A17 += gt[15]; + m_A15 += go[13]; + m_A16 += go[14]; + double RHS5 = Idr[13]; + RHS5 += Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[15] * *cnV[15]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A5 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_3 = -f0 * m_A7; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; + const double f1_3 = -f1 * m_A8; m_A9 += m_A3 * f1_3; + m_A10 += m_A4 * f1_3; RHS3 += f1_3 * RHS1; + const double f1_4 = -f1 * m_A11; + m_A12 += m_A3 * f1_4; + m_A13 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A6 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f2_5 = -f2 * m_A15; + m_A17 += m_A6 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A12; + m_A13 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + const double f4 = 1.0 / m_A13; + const double f4_5 = -f4 * m_A16; + m_A17 += m_A14 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A17; + double tmp4 = 0.0; + tmp4 += m_A14 * V[5]; + V[4] = (RHS4 - tmp4) / m_A13; + double tmp3 = 0.0; + tmp3 += m_A10 * V[4]; + V[3] = (RHS3 - tmp3) / m_A9; double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; + tmp2 += m_A6 * V[5]; V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_d8c511d38cef5f6f_34_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// spacewar +static void nl_gcr_e9e8211f43d8f4b3_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -30120,226 +62293,136 @@ double m_A19(0.0); double m_A20(0.0); double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; - m_A2 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[2] * *cnV[2]; - m_A3 += gt[3]; - m_A3 += gt[4]; - m_A3 += gt[5]; - m_A3 += gt[6]; - m_A3 += gt[7]; - m_A3 += gt[8]; - m_A3 += gt[9]; - m_A5 += go[3]; - m_A4 += go[4]; - double RHS1 = Idr[3]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A3 += go[2]; + m_A4 += go[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; RHS1 += Idr[8]; - RHS1 += Idr[9]; + RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; RHS1 -= go[6] * *cnV[6]; RHS1 -= go[7] * *cnV[7]; RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - m_A7 += gt[10]; - m_A7 += gt[11]; - m_A7 += gt[12]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A7 += go[9]; m_A6 += go[10]; - double RHS2 = Idr[10]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; RHS2 += Idr[11]; - RHS2 += Idr[12]; RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A9 += gt[15]; - m_A11 += go[13]; - m_A10 += go[14]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 -= go[15] * *cnV[15]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A9 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[13] * *cnV[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; m_A12 += gt[16]; - m_A12 += gt[17]; - m_A12 += gt[18]; - m_A14 += go[16]; - m_A13 += go[17]; - double RHS4 = Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 -= go[18] * *cnV[18]; + m_A11 += go[14]; + m_A10 += go[15]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[16] * *cnV[16]; + m_A17 += gt[17]; + m_A17 += gt[18]; m_A17 += gt[19]; m_A17 += gt[20]; m_A17 += gt[21]; m_A17 += gt[22]; - m_A17 += gt[23]; - m_A17 += gt[24]; - m_A17 += gt[25]; + m_A14 += go[17]; + m_A18 += go[18]; m_A15 += go[19]; - m_A18 += go[20]; - double RHS5 = Idr[19]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; RHS5 += Idr[20]; RHS5 += Idr[21]; RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; + RHS5 -= go[20] * *cnV[20]; RHS5 -= go[21] * *cnV[21]; RHS5 -= go[22] * *cnV[22]; - RHS5 -= go[23] * *cnV[23]; - RHS5 -= go[24] * *cnV[24]; - RHS5 -= go[25] * *cnV[25]; - m_A21 += gt[26]; - m_A21 += gt[27]; - m_A21 += gt[28]; - m_A21 += gt[29]; - m_A21 += gt[30]; - m_A21 += gt[31]; - m_A19 += go[26]; - m_A22 += go[27]; - m_A20 += go[28]; - double RHS6 = Idr[26]; - RHS6 += Idr[27]; - RHS6 += Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - RHS6 -= go[29] * *cnV[29]; - RHS6 -= go[30] * *cnV[30]; - RHS6 -= go[31] * *cnV[31]; - m_A27 += gt[32]; - m_A27 += gt[33]; - m_A27 += gt[34]; - m_A27 += gt[35]; - m_A27 += gt[36]; - m_A26 += go[32]; - m_A25 += go[33]; - m_A23 += go[34]; - double RHS7 = Idr[32]; - RHS7 += Idr[33]; - RHS7 += Idr[34]; - RHS7 += Idr[35]; - RHS7 += Idr[36]; - RHS7 -= go[35] * *cnV[35]; - RHS7 -= go[36] * *cnV[36]; - m_A33 += gt[37]; - m_A33 += gt[38]; - m_A33 += gt[39]; - m_A30 += go[37]; - m_A31 += go[38]; - m_A29 += go[39]; - double RHS8 = Idr[37]; - RHS8 += Idr[38]; - RHS8 += Idr[39]; + m_A21 += gt[23]; + m_A21 += gt[24]; + m_A19 += go[23]; + m_A20 += go[24]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A6; - m_A7 += m_A1 * f0_2; - m_A8 += m_A2 * f0_2; - RHS2 += f0_2 * RHS0; - const double f0_5 = -f0 * m_A15; - m_A16 += m_A1 * f0_5; - m_A18 += m_A2 * f0_5; - RHS5 += f0_5 * RHS0; - const double f0_7 = -f0 * m_A23; - m_A24 += m_A1 * f0_7; - m_A27 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_6 = -f1 * m_A19; - m_A20 += m_A4 * f1_6; - m_A21 += m_A5 * f1_6; - RHS6 += f1_6 * RHS1; - const double f2 = 1.0 / m_A7; - const double f2_5 = -f2 * m_A16; - m_A18 += m_A8 * f2_5; + const double f0_4 = -f0 * m_A10; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A14; + m_A15 += m_A3 * f1_5; + m_A16 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_4 = -f2 * m_A11; + m_A12 += m_A6 * f2_4; + m_A13 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A15; + m_A16 += m_A6 * f2_5; + m_A17 += m_A7 * f2_5; RHS5 += f2_5 * RHS2; - const double f2_7 = -f2 * m_A24; - m_A27 += m_A8 * f2_7; - RHS7 += f2_7 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_6 = -f3 * m_A20; - m_A21 += m_A10 * f3_6; - m_A22 += m_A11 * f3_6; + const double f3 = 1.0 / m_A8; + const double f3_6 = -f3 * m_A19; + m_A21 += m_A9 * f3_6; RHS6 += f3_6 * RHS3; - const double f3_8 = -f3 * m_A29; - m_A31 += m_A10 * f3_8; - m_A33 += m_A11 * f3_8; - RHS8 += f3_8 * RHS3; const double f4 = 1.0 / m_A12; - const double f4_7 = -f4 * m_A25; - m_A27 += m_A13 * f4_7; - m_A28 += m_A14 * f4_7; - RHS7 += f4_7 * RHS4; - const double f4_8 = -f4 * m_A30; - m_A32 += m_A13 * f4_8; - m_A33 += m_A14 * f4_8; - RHS8 += f4_8 * RHS4; + const double f4_5 = -f4 * m_A16; + m_A17 += m_A13 * f4_5; + RHS5 += f4_5 * RHS4; const double f5 = 1.0 / m_A17; - const double f5_7 = -f5 * m_A26; - m_A27 += m_A18 * f5_7; - RHS7 += f5_7 * RHS5; - const double f6 = 1.0 / m_A21; - const double f6_8 = -f6 * m_A31; - m_A33 += m_A22 * f6_8; - RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A27; - const double f7_8 = -f7 * m_A32; - m_A33 += m_A28 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A33; - double tmp7 = 0.0; - tmp7 += m_A28 * V[8]; - V[7] = (RHS7 - tmp7) / m_A27; - double tmp6 = 0.0; - tmp6 += m_A22 * V[8]; - V[6] = (RHS6 - tmp6) / m_A21; + const double f5_6 = -f5 * m_A20; + m_A21 += m_A18 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A21; double tmp5 = 0.0; - tmp5 += m_A18 * V[7]; + tmp5 += m_A18 * V[6]; V[5] = (RHS5 - tmp5) / m_A17; double tmp4 = 0.0; - tmp4 += m_A13 * V[7]; - tmp4 += m_A14 * V[8]; + tmp4 += m_A13 * V[5]; V[4] = (RHS4 - tmp4) / m_A12; double tmp3 = 0.0; - tmp3 += m_A10 * V[6]; - tmp3 += m_A11 * V[8]; - V[3] = (RHS3 - tmp3) / m_A9; + tmp3 += m_A9 * V[6]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A8 * V[7]; - V[2] = (RHS2 - tmp2) / m_A7; + tmp2 += m_A6 * V[4]; + tmp2 += m_A7 * V[5]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A4 * V[3]; - tmp1 += m_A5 * V[6]; - V[1] = (RHS1 - tmp1) / m_A3; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - tmp0 += m_A2 * V[7]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// warrior -static void nl_gcr_da598f43329e823_27_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// boxingb +static void nl_gcr_ea2b6e3a05e6ef0b_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -30367,176 +62450,161 @@ double m_A20(0.0); double m_A21(0.0); double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; m_A2 += gt[4]; m_A2 += gt[5]; m_A2 += gt[6]; - m_A4 += go[2]; - m_A3 += go[3]; - m_A3 += go[4]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - RHS1 += Idr[4]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A4 += go[4]; + m_A3 += go[5]; + m_A3 += go[6]; + double RHS1 = Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A5 += gt[7]; - m_A5 += gt[8]; - m_A5 += gt[9]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; m_A5 += gt[10]; - m_A8 += go[7]; - m_A6 += go[8]; - m_A6 += go[9]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A5 += gt[13]; m_A7 += go[10]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - m_A10 += gt[11]; - m_A10 += gt[12]; - m_A10 += gt[13]; - m_A10 += gt[14]; - m_A10 += gt[15]; - m_A11 += go[11]; - m_A11 += go[12]; - m_A9 += go[13]; + m_A6 += go[11]; + m_A6 += go[12]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; m_A9 += go[14]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; + double RHS3 = Idr[14]; RHS3 += Idr[15]; RHS3 -= go[15] * *cnV[15]; - m_A13 += gt[16]; - m_A13 += gt[17]; - m_A13 += gt[18]; - m_A13 += gt[19]; - m_A13 += gt[20]; - m_A15 += go[16]; - m_A15 += go[17]; - m_A12 += go[18]; - m_A12 += go[19]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A11 += go[16]; + m_A11 += go[17]; + m_A10 += go[18]; double RHS4 = Idr[16]; RHS4 += Idr[17]; RHS4 += Idr[18]; RHS4 += Idr[19]; RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[19] * *cnV[19]; RHS4 -= go[20] * *cnV[20]; - m_A21 += gt[21]; - m_A21 += gt[22]; - m_A21 += gt[23]; - m_A21 += gt[24]; - m_A21 += gt[25]; - m_A18 += go[21]; - m_A19 += go[22]; - m_A19 += go[23]; - m_A17 += go[24]; - m_A16 += go[25]; - double RHS5 = Idr[21]; - RHS5 += Idr[22]; + RHS4 -= go[21] * *cnV[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A17 += gt[26]; + m_A15 += go[22]; + m_A15 += go[23]; + m_A14 += go[24]; + double RHS5 = Idr[22]; RHS5 += Idr[23]; RHS5 += Idr[24]; RHS5 += Idr[25]; - m_A26 += gt[26]; - m_A26 += gt[27]; - m_A26 += gt[28]; - m_A26 += gt[29]; - m_A26 += gt[30]; - m_A24 += go[26]; - m_A24 += go[27]; - m_A23 += go[28]; - double RHS6 = Idr[26]; - RHS6 += Idr[27]; + RHS5 += Idr[26]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A20 += go[27]; + m_A19 += go[28]; + double RHS6 = Idr[27]; RHS6 += Idr[28]; RHS6 += Idr[29]; RHS6 += Idr[30]; + RHS6 += Idr[31]; RHS6 -= go[29] * *cnV[29]; RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A16; - m_A21 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; + const double f0_4 = -f0 * m_A10; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_5 = -f1 * m_A17; - m_A19 += m_A3 * f1_5; - m_A21 += m_A4 * f1_5; + const double f1_4 = -f1 * m_A11; + m_A12 += m_A3 * f1_4; + m_A13 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A14; + m_A16 += m_A3 * f1_5; + m_A17 += m_A4 * f1_5; RHS5 += f1_5 * RHS1; const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A12; - m_A13 += m_A6 * f2_4; - m_A14 += m_A7 * f2_4; - m_A15 += m_A8 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A18; - m_A20 += m_A6 * f2_5; - m_A21 += m_A7 * f2_5; - m_A22 += m_A8 * f2_5; + const double f2_5 = -f2 * m_A15; + m_A17 += m_A6 * f2_5; + m_A18 += m_A7 * f2_5; RHS5 += f2_5 * RHS2; - const double f2_6 = -f2 * m_A23; - m_A24 += m_A6 * f2_6; - m_A25 += m_A7 * f2_6; - m_A26 += m_A8 * f2_6; + const double f2_6 = -f2 * m_A19; + m_A21 += m_A6 * f2_6; + m_A22 += m_A7 * f2_6; RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A10; - const double f3_5 = -f3 * m_A19; - m_A21 += m_A11 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A13; - const double f4_5 = -f4 * m_A20; - m_A21 += m_A14 * f4_5; - m_A22 += m_A15 * f4_5; + const double f3 = 1.0 / m_A8; + const double f3_6 = -f3 * m_A20; + m_A22 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_5 = -f4 * m_A16; + m_A17 += m_A13 * f4_5; RHS5 += f4_5 * RHS4; - const double f4_6 = -f4 * m_A24; - m_A25 += m_A14 * f4_6; - m_A26 += m_A15 * f4_6; - RHS6 += f4_6 * RHS4; - const double f5 = 1.0 / m_A21; - const double f5_6 = -f5 * m_A25; - m_A26 += m_A22 * f5_6; + const double f5 = 1.0 / m_A17; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A18 * f5_6; RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A26; + V[6] = RHS6 / m_A22; double tmp5 = 0.0; - tmp5 += m_A22 * V[6]; - V[5] = (RHS5 - tmp5) / m_A21; - double tmp4 = 0.0; - tmp4 += m_A14 * V[5]; - tmp4 += m_A15 * V[6]; - V[4] = (RHS4 - tmp4) / m_A13; + tmp5 += m_A18 * V[6]; + V[5] = (RHS5 - tmp5) / m_A17; + double tmp4 = 0.0; + tmp4 += m_A13 * V[5]; + V[4] = (RHS4 - tmp4) / m_A12; double tmp3 = 0.0; - tmp3 += m_A11 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; + tmp3 += m_A9 * V[6]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[5]; - tmp2 += m_A8 * V[6]; + tmp2 += m_A6 * V[5]; + tmp2 += m_A7 * V[6]; V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[4]; tmp1 += m_A4 * V[5]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// pongf -static void nl_gcr_dbafc5ddaf7a08f8_35_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starcas +static void nl_gcr_ec4f6d2dad5961b9_64_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -30576,213 +62644,444 @@ double m_A32(0.0); double m_A33(0.0); double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; m_A1 += go[0]; + m_A1 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; RHS0 -= go[2] * *cnV[2]; RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; m_A2 += gt[6]; m_A2 += gt[7]; - m_A3 += go[4]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A3 += go[6]; + double RHS1 = Idr[6]; RHS1 += Idr[7]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; RHS1 -= go[7] * *cnV[7]; - m_A4 += gt[8]; - m_A4 += gt[9]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; m_A4 += gt[10]; - m_A5 += go[8]; - double RHS2 = Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 -= go[9] * *cnV[9]; - RHS2 -= go[10] * *cnV[10]; - m_A6 += gt[11]; + m_A4 += gt[11]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; m_A6 += gt[12]; m_A6 += gt[13]; m_A6 += gt[14]; m_A6 += gt[15]; - m_A9 += go[11]; - m_A7 += go[12]; + m_A6 += gt[16]; + m_A6 += gt[17]; + m_A6 += gt[18]; + m_A6 += gt[19]; + m_A9 += go[12]; m_A7 += go[13]; m_A7 += go[14]; m_A8 += go[15]; - double RHS3 = Idr[11]; - RHS3 += Idr[12]; + m_A8 += go[16]; + m_A10 += go[17]; + double RHS3 = Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; RHS3 += Idr[15]; - m_A11 += gt[16]; - m_A11 += gt[17]; - m_A11 += gt[18]; - m_A11 += gt[19]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; m_A11 += gt[20]; m_A11 += gt[21]; m_A11 += gt[22]; - m_A13 += go[16]; - m_A12 += go[17]; - m_A10 += go[18]; - double RHS4 = Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; + m_A11 += gt[23]; + m_A12 += go[20]; + double RHS4 = Idr[20]; RHS4 += Idr[21]; RHS4 += Idr[22]; - RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; + RHS4 += Idr[23]; RHS4 -= go[21] * *cnV[21]; RHS4 -= go[22] * *cnV[22]; - m_A15 += gt[23]; - m_A15 += gt[24]; - m_A15 += gt[25]; - m_A15 += gt[26]; - m_A15 += gt[27]; - m_A17 += go[23]; + RHS4 -= go[23] * *cnV[23]; + m_A13 += gt[24]; + m_A13 += gt[25]; m_A14 += go[24]; - m_A14 += go[25]; - m_A14 += go[26]; - double RHS5 = Idr[23]; - RHS5 += Idr[24]; + double RHS5 = Idr[24]; RHS5 += Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 -= go[27] * *cnV[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A22 += gt[30]; - m_A22 += gt[31]; - m_A19 += go[28]; - m_A20 += go[29]; - m_A18 += go[30]; - double RHS6 = Idr[28]; + RHS5 -= go[25] * *cnV[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A15 += gt[28]; + m_A15 += gt[29]; + m_A15 += gt[30]; + m_A15 += gt[31]; + m_A15 += gt[32]; + m_A15 += gt[33]; + m_A18 += go[26]; + m_A16 += go[27]; + m_A16 += go[28]; + m_A17 += go[29]; + m_A17 += go[30]; + m_A19 += go[31]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; RHS6 += Idr[29]; RHS6 += Idr[30]; RHS6 += Idr[31]; - RHS6 -= go[31] * *cnV[31]; - m_A28 += gt[32]; - m_A28 += gt[33]; - m_A28 += gt[34]; - m_A29 += go[32]; - m_A25 += go[33]; - m_A26 += go[34]; - double RHS7 = Idr[32]; - RHS7 += Idr[33]; - RHS7 += Idr[34]; - m_A34 += gt[35]; - m_A34 += gt[36]; - m_A34 += gt[37]; - m_A31 += go[35]; - m_A30 += go[36]; - m_A33 += go[37]; - double RHS8 = Idr[35]; - RHS8 += Idr[36]; - RHS8 += Idr[37]; + RHS6 += Idr[32]; + RHS6 += Idr[33]; + RHS6 -= go[32] * *cnV[32]; + RHS6 -= go[33] * *cnV[33]; + m_A21 += gt[34]; + m_A21 += gt[35]; + m_A21 += gt[36]; + m_A21 += gt[37]; + m_A21 += gt[38]; + m_A23 += go[34]; + m_A23 += go[35]; + m_A20 += go[36]; + m_A20 += go[37]; + double RHS7 = Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 += Idr[38]; + RHS7 -= go[38] * *cnV[38]; + m_A26 += gt[39]; + m_A26 += gt[40]; + m_A26 += gt[41]; + m_A26 += gt[42]; + m_A26 += gt[43]; + m_A28 += go[39]; + m_A28 += go[40]; + m_A25 += go[41]; + m_A25 += go[42]; + double RHS8 = Idr[39]; + RHS8 += Idr[40]; + RHS8 += Idr[41]; + RHS8 += Idr[42]; + RHS8 += Idr[43]; + RHS8 -= go[43] * *cnV[43]; + m_A33 += gt[44]; + m_A33 += gt[45]; + m_A33 += gt[46]; + m_A33 += gt[47]; + m_A33 += gt[48]; + m_A31 += go[44]; + m_A31 += go[45]; + m_A30 += go[46]; + m_A35 += go[47]; + m_A35 += go[48]; + double RHS9 = Idr[44]; + RHS9 += Idr[45]; + RHS9 += Idr[46]; + RHS9 += Idr[47]; + RHS9 += Idr[48]; + m_A39 += gt[49]; + m_A39 += gt[50]; + m_A39 += gt[51]; + m_A39 += gt[52]; + m_A39 += gt[53]; + m_A37 += go[49]; + m_A37 += go[50]; + m_A36 += go[51]; + m_A41 += go[52]; + m_A41 += go[53]; + double RHS10 = Idr[49]; + RHS10 += Idr[50]; + RHS10 += Idr[51]; + RHS10 += Idr[52]; + RHS10 += Idr[53]; + m_A46 += gt[54]; + m_A46 += gt[55]; + m_A46 += gt[56]; + m_A46 += gt[57]; + m_A46 += gt[58]; + m_A44 += go[54]; + m_A44 += go[55]; + m_A43 += go[56]; + m_A42 += go[57]; + double RHS11 = Idr[54]; + RHS11 += Idr[55]; + RHS11 += Idr[56]; + RHS11 += Idr[57]; + RHS11 += Idr[58]; + RHS11 -= go[58] * *cnV[58]; + m_A52 += gt[59]; + m_A52 += gt[60]; + m_A52 += gt[61]; + m_A52 += gt[62]; + m_A52 += gt[63]; + m_A50 += go[59]; + m_A50 += go[60]; + m_A49 += go[61]; + m_A48 += go[62]; + double RHS12 = Idr[59]; + RHS12 += Idr[60]; + RHS12 += Idr[61]; + RHS12 += Idr[62]; + RHS12 += Idr[63]; + RHS12 -= go[63] * *cnV[63]; + m_A63 += gt[64]; + m_A63 += gt[65]; + m_A63 += gt[66]; + m_A63 += gt[67]; + m_A63 += gt[68]; + m_A63 += gt[69]; + m_A63 += gt[70]; + m_A63 += gt[71]; + m_A63 += gt[72]; + m_A63 += gt[73]; + m_A63 += gt[74]; + m_A56 += go[64]; + m_A60 += go[65]; + m_A60 += go[66]; + m_A55 += go[67]; + m_A59 += go[68]; + m_A59 += go[69]; + m_A54 += go[70]; + m_A54 += go[71]; + double RHS13 = Idr[64]; + RHS13 += Idr[65]; + RHS13 += Idr[66]; + RHS13 += Idr[67]; + RHS13 += Idr[68]; + RHS13 += Idr[69]; + RHS13 += Idr[70]; + RHS13 += Idr[71]; + RHS13 += Idr[72]; + RHS13 += Idr[73]; + RHS13 += Idr[74]; + RHS13 -= go[72] * *cnV[72]; + RHS13 -= go[73] * *cnV[73]; + RHS13 -= go[74] * *cnV[74]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A10; - m_A11 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; + const double f0_13 = -f0 * m_A54; + m_A63 += m_A1 * f0_13; + RHS13 += f0_13 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A18; - m_A22 += m_A3 * f1_6; - RHS6 += f1_6 * RHS1; + const double f1_9 = -f1 * m_A30; + m_A33 += m_A3 * f1_9; + RHS9 += f1_9 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_7 = -f2 * m_A25; - m_A28 += m_A5 * f2_7; - RHS7 += f2_7 * RHS2; + const double f2_11 = -f2 * m_A42; + m_A46 += m_A5 * f2_11; + RHS11 += f2_11 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_5 = -f3 * m_A14; - m_A15 += m_A7 * f3_5; - m_A16 += m_A8 * f3_5; - m_A17 += m_A9 * f3_5; - RHS5 += f3_5 * RHS3; - const double f3_6 = -f3 * m_A19; - m_A21 += m_A7 * f3_6; - m_A22 += m_A8 * f3_6; - m_A24 += m_A9 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_8 = -f3 * m_A30; - m_A31 += m_A7 * f3_8; - m_A32 += m_A8 * f3_8; - m_A34 += m_A9 * f3_8; - RHS8 += f3_8 * RHS3; + const double f3_7 = -f3 * m_A20; + m_A21 += m_A7 * f3_7; + m_A22 += m_A8 * f3_7; + m_A23 += m_A9 * f3_7; + m_A24 += m_A10 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_9 = -f3 * m_A31; + m_A32 += m_A7 * f3_9; + m_A33 += m_A8 * f3_9; + m_A34 += m_A9 * f3_9; + m_A35 += m_A10 * f3_9; + RHS9 += f3_9 * RHS3; + const double f3_11 = -f3 * m_A43; + m_A44 += m_A7 * f3_11; + m_A45 += m_A8 * f3_11; + m_A46 += m_A9 * f3_11; + m_A47 += m_A10 * f3_11; + RHS11 += f3_11 * RHS3; + const double f3_13 = -f3 * m_A55; + m_A57 += m_A7 * f3_13; + m_A59 += m_A8 * f3_13; + m_A61 += m_A9 * f3_13; + m_A63 += m_A10 * f3_13; + RHS13 += f3_13 * RHS3; const double f4 = 1.0 / m_A11; - const double f4_6 = -f4 * m_A20; - m_A22 += m_A12 * f4_6; - m_A23 += m_A13 * f4_6; - RHS6 += f4_6 * RHS4; - const double f4_7 = -f4 * m_A26; - m_A27 += m_A12 * f4_7; - m_A28 += m_A13 * f4_7; - RHS7 += f4_7 * RHS4; - const double f5 = 1.0 / m_A15; - const double f5_6 = -f5 * m_A21; - m_A22 += m_A16 * f5_6; - m_A24 += m_A17 * f5_6; - RHS6 += f5_6 * RHS5; - const double f5_8 = -f5 * m_A31; - m_A32 += m_A16 * f5_8; - m_A34 += m_A17 * f5_8; - RHS8 += f5_8 * RHS5; - const double f6 = 1.0 / m_A22; - const double f6_7 = -f6 * m_A27; - m_A28 += m_A23 * f6_7; - m_A29 += m_A24 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A32; - m_A33 += m_A23 * f6_8; - m_A34 += m_A24 * f6_8; + const double f4_10 = -f4 * m_A36; + m_A39 += m_A12 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_12 = -f5 * m_A48; + m_A52 += m_A14 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A15; + const double f6_8 = -f6 * m_A25; + m_A26 += m_A16 * f6_8; + m_A27 += m_A17 * f6_8; + m_A28 += m_A18 * f6_8; + m_A29 += m_A19 * f6_8; RHS8 += f6_8 * RHS6; - const double f7 = 1.0 / m_A28; - const double f7_8 = -f7 * m_A33; - m_A34 += m_A29 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A34; - double tmp7 = 0.0; - tmp7 += m_A29 * V[8]; - V[7] = (RHS7 - tmp7) / m_A28; + const double f6_10 = -f6 * m_A37; + m_A38 += m_A16 * f6_10; + m_A39 += m_A17 * f6_10; + m_A40 += m_A18 * f6_10; + m_A41 += m_A19 * f6_10; + RHS10 += f6_10 * RHS6; + const double f6_12 = -f6 * m_A49; + m_A50 += m_A16 * f6_12; + m_A51 += m_A17 * f6_12; + m_A52 += m_A18 * f6_12; + m_A53 += m_A19 * f6_12; + RHS12 += f6_12 * RHS6; + const double f6_13 = -f6 * m_A56; + m_A58 += m_A16 * f6_13; + m_A60 += m_A17 * f6_13; + m_A62 += m_A18 * f6_13; + m_A63 += m_A19 * f6_13; + RHS13 += f6_13 * RHS6; + const double f7 = 1.0 / m_A21; + const double f7_9 = -f7 * m_A32; + m_A33 += m_A22 * f7_9; + m_A34 += m_A23 * f7_9; + m_A35 += m_A24 * f7_9; + RHS9 += f7_9 * RHS7; + const double f7_11 = -f7 * m_A44; + m_A45 += m_A22 * f7_11; + m_A46 += m_A23 * f7_11; + m_A47 += m_A24 * f7_11; + RHS11 += f7_11 * RHS7; + const double f7_13 = -f7 * m_A57; + m_A59 += m_A22 * f7_13; + m_A61 += m_A23 * f7_13; + m_A63 += m_A24 * f7_13; + RHS13 += f7_13 * RHS7; + const double f8 = 1.0 / m_A26; + const double f8_10 = -f8 * m_A38; + m_A39 += m_A27 * f8_10; + m_A40 += m_A28 * f8_10; + m_A41 += m_A29 * f8_10; + RHS10 += f8_10 * RHS8; + const double f8_12 = -f8 * m_A50; + m_A51 += m_A27 * f8_12; + m_A52 += m_A28 * f8_12; + m_A53 += m_A29 * f8_12; + RHS12 += f8_12 * RHS8; + const double f8_13 = -f8 * m_A58; + m_A60 += m_A27 * f8_13; + m_A62 += m_A28 * f8_13; + m_A63 += m_A29 * f8_13; + RHS13 += f8_13 * RHS8; + const double f9 = 1.0 / m_A33; + const double f9_11 = -f9 * m_A45; + m_A46 += m_A34 * f9_11; + m_A47 += m_A35 * f9_11; + RHS11 += f9_11 * RHS9; + const double f9_13 = -f9 * m_A59; + m_A61 += m_A34 * f9_13; + m_A63 += m_A35 * f9_13; + RHS13 += f9_13 * RHS9; + const double f10 = 1.0 / m_A39; + const double f10_12 = -f10 * m_A51; + m_A52 += m_A40 * f10_12; + m_A53 += m_A41 * f10_12; + RHS12 += f10_12 * RHS10; + const double f10_13 = -f10 * m_A60; + m_A62 += m_A40 * f10_13; + m_A63 += m_A41 * f10_13; + RHS13 += f10_13 * RHS10; + const double f11 = 1.0 / m_A46; + const double f11_13 = -f11 * m_A61; + m_A63 += m_A47 * f11_13; + RHS13 += f11_13 * RHS11; + const double f12 = 1.0 / m_A52; + const double f12_13 = -f12 * m_A62; + m_A63 += m_A53 * f12_13; + RHS13 += f12_13 * RHS12; + V[13] = RHS13 / m_A63; + double tmp12 = 0.0; + tmp12 += m_A53 * V[13]; + V[12] = (RHS12 - tmp12) / m_A52; + double tmp11 = 0.0; + tmp11 += m_A47 * V[13]; + V[11] = (RHS11 - tmp11) / m_A46; + double tmp10 = 0.0; + tmp10 += m_A40 * V[12]; + tmp10 += m_A41 * V[13]; + V[10] = (RHS10 - tmp10) / m_A39; + double tmp9 = 0.0; + tmp9 += m_A34 * V[11]; + tmp9 += m_A35 * V[13]; + V[9] = (RHS9 - tmp9) / m_A33; + double tmp8 = 0.0; + tmp8 += m_A27 * V[10]; + tmp8 += m_A28 * V[12]; + tmp8 += m_A29 * V[13]; + V[8] = (RHS8 - tmp8) / m_A26; + double tmp7 = 0.0; + tmp7 += m_A22 * V[9]; + tmp7 += m_A23 * V[11]; + tmp7 += m_A24 * V[13]; + V[7] = (RHS7 - tmp7) / m_A21; double tmp6 = 0.0; - tmp6 += m_A23 * V[7]; - tmp6 += m_A24 * V[8]; - V[6] = (RHS6 - tmp6) / m_A22; + tmp6 += m_A16 * V[8]; + tmp6 += m_A17 * V[10]; + tmp6 += m_A18 * V[12]; + tmp6 += m_A19 * V[13]; + V[6] = (RHS6 - tmp6) / m_A15; double tmp5 = 0.0; - tmp5 += m_A16 * V[6]; - tmp5 += m_A17 * V[8]; - V[5] = (RHS5 - tmp5) / m_A15; + tmp5 += m_A14 * V[12]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A12 * V[6]; - tmp4 += m_A13 * V[7]; + tmp4 += m_A12 * V[10]; V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A7 * V[5]; - tmp3 += m_A8 * V[6]; - tmp3 += m_A9 * V[8]; + tmp3 += m_A7 * V[7]; + tmp3 += m_A8 * V[9]; + tmp3 += m_A9 * V[11]; + tmp3 += m_A10 * V[13]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[7]; + tmp2 += m_A5 * V[11]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; + tmp1 += m_A3 * V[9]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[13]; V[0] = (RHS0 - tmp0) / m_A0; } -// sundance -static void nl_gcr_e02a162cb515a958_100_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// barrier +static void nl_gcr_ecf17036ce1c07cf_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -30797,1241 +63096,504 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); - double m_A64(0.0); - double m_A65(0.0); - double m_A66(0.0); - double m_A67(0.0); - double m_A68(0.0); - double m_A69(0.0); - double m_A70(0.0); - double m_A71(0.0); - double m_A72(0.0); - double m_A73(0.0); - double m_A74(0.0); - double m_A75(0.0); - double m_A76(0.0); - double m_A77(0.0); - double m_A78(0.0); - double m_A79(0.0); - double m_A80(0.0); - double m_A81(0.0); - double m_A82(0.0); - double m_A83(0.0); - double m_A84(0.0); - double m_A85(0.0); - double m_A86(0.0); - double m_A87(0.0); - double m_A88(0.0); - double m_A89(0.0); - double m_A90(0.0); - double m_A91(0.0); - double m_A92(0.0); - double m_A93(0.0); - double m_A94(0.0); - double m_A95(0.0); - double m_A96(0.0); - double m_A97(0.0); - double m_A98(0.0); - double m_A99(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A3 += go[7]; - double RHS1 = Idr[7]; - RHS1 += Idr[8]; - RHS1 -= go[8] * *cnV[8]; - m_A4 += gt[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A5 += go[9]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[10] * *cnV[10]; - RHS2 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A6 += gt[16]; - m_A6 += gt[17]; - m_A6 += gt[18]; - m_A7 += go[12]; - double RHS3 = Idr[12]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A4 += go[6]; + m_A6 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A7 += go[10]; + m_A8 += go[11]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; RHS3 += Idr[13]; RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 -= go[13] * *cnV[13]; - RHS3 -= go[14] * *cnV[14]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; - RHS3 -= go[17] * *cnV[17]; - RHS3 -= go[18] * *cnV[18]; - m_A8 += gt[19]; - m_A8 += gt[20]; - m_A8 += gt[21]; - m_A8 += gt[22]; - m_A8 += gt[23]; - m_A8 += gt[24]; - m_A8 += gt[25]; - m_A9 += go[19]; - double RHS4 = Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 += Idr[25]; - RHS4 -= go[20] * *cnV[20]; - RHS4 -= go[21] * *cnV[21]; - RHS4 -= go[22] * *cnV[22]; - RHS4 -= go[23] * *cnV[23]; - RHS4 -= go[24] * *cnV[24]; - RHS4 -= go[25] * *cnV[25]; - m_A10 += gt[26]; - m_A10 += gt[27]; - m_A11 += go[26]; - double RHS5 = Idr[26]; - RHS5 += Idr[27]; - RHS5 -= go[27] * *cnV[27]; - m_A12 += gt[28]; - m_A12 += gt[29]; - m_A13 += go[28]; - double RHS6 = Idr[28]; - RHS6 += Idr[29]; - RHS6 -= go[29] * *cnV[29]; - m_A14 += gt[30]; - m_A14 += gt[31]; - m_A15 += go[30]; - double RHS7 = Idr[30]; - RHS7 += Idr[31]; - RHS7 -= go[31] * *cnV[31]; - m_A16 += gt[32]; - m_A16 += gt[33]; - m_A16 += gt[34]; - m_A16 += gt[35]; - m_A18 += go[32]; - m_A17 += go[33]; - m_A17 += go[34]; - double RHS8 = Idr[32]; - RHS8 += Idr[33]; - RHS8 += Idr[34]; - RHS8 += Idr[35]; - RHS8 -= go[35] * *cnV[35]; - m_A19 += gt[36]; - m_A19 += gt[37]; - m_A19 += gt[38]; - m_A20 += go[36]; - double RHS9 = Idr[36]; - RHS9 += Idr[37]; - RHS9 += Idr[38]; - RHS9 -= go[37] * *cnV[37]; - RHS9 -= go[38] * *cnV[38]; - m_A21 += gt[39]; - m_A21 += gt[40]; - m_A21 += gt[41]; - m_A22 += go[39]; - double RHS10 = Idr[39]; - RHS10 += Idr[40]; - RHS10 += Idr[41]; - RHS10 -= go[40] * *cnV[40]; - RHS10 -= go[41] * *cnV[41]; - m_A23 += gt[42]; - m_A23 += gt[43]; - m_A23 += gt[44]; - m_A23 += gt[45]; - m_A24 += go[42]; - m_A25 += go[43]; - m_A25 += go[44]; - double RHS11 = Idr[42]; - RHS11 += Idr[43]; - RHS11 += Idr[44]; - RHS11 += Idr[45]; - RHS11 -= go[45] * *cnV[45]; - m_A27 += gt[46]; - m_A27 += gt[47]; - m_A26 += go[46]; - double RHS12 = Idr[46]; - RHS12 += Idr[47]; - RHS12 -= go[47] * *cnV[47]; - m_A29 += gt[48]; - m_A29 += gt[49]; - m_A29 += gt[50]; - m_A29 += gt[51]; - m_A28 += go[48]; - m_A30 += go[49]; - double RHS13 = Idr[48]; - RHS13 += Idr[49]; - RHS13 += Idr[50]; - RHS13 += Idr[51]; - RHS13 -= go[50] * *cnV[50]; - RHS13 -= go[51] * *cnV[51]; - m_A31 += gt[52]; - m_A31 += gt[53]; - m_A31 += gt[54]; - m_A32 += go[52]; - double RHS14 = Idr[52]; - RHS14 += Idr[53]; - RHS14 += Idr[54]; - RHS14 -= go[53] * *cnV[53]; - RHS14 -= go[54] * *cnV[54]; - m_A34 += gt[55]; - m_A34 += gt[56]; - m_A35 += go[55]; - m_A33 += go[56]; - double RHS15 = Idr[55]; - RHS15 += Idr[56]; - m_A38 += gt[57]; - m_A38 += gt[58]; - m_A38 += gt[59]; - m_A39 += go[57]; - m_A37 += go[58]; - m_A36 += go[59]; - double RHS16 = Idr[57]; - RHS16 += Idr[58]; - RHS16 += Idr[59]; - m_A41 += gt[60]; - m_A41 += gt[61]; - m_A41 += gt[62]; - m_A41 += gt[63]; - m_A41 += gt[64]; - m_A41 += gt[65]; - m_A41 += gt[66]; - m_A41 += gt[67]; - m_A42 += go[60]; - m_A42 += go[61]; - m_A43 += go[62]; - m_A43 += go[63]; - m_A40 += go[64]; - m_A40 += go[65]; - double RHS17 = Idr[60]; - RHS17 += Idr[61]; - RHS17 += Idr[62]; - RHS17 += Idr[63]; - RHS17 += Idr[64]; - RHS17 += Idr[65]; - RHS17 += Idr[66]; - RHS17 += Idr[67]; - RHS17 -= go[66] * *cnV[66]; - RHS17 -= go[67] * *cnV[67]; - m_A46 += gt[68]; - m_A46 += gt[69]; - m_A46 += gt[70]; - m_A46 += gt[71]; - m_A44 += go[68]; - m_A48 += go[69]; - double RHS18 = Idr[68]; - RHS18 += Idr[69]; - RHS18 += Idr[70]; - RHS18 += Idr[71]; - RHS18 -= go[70] * *cnV[70]; - RHS18 -= go[71] * *cnV[71]; - m_A52 += gt[72]; - m_A52 += gt[73]; - m_A52 += gt[74]; - m_A52 += gt[75]; - m_A50 += go[72]; - m_A51 += go[73]; - m_A51 += go[74]; - m_A49 += go[75]; - double RHS19 = Idr[72]; - RHS19 += Idr[73]; - RHS19 += Idr[74]; - RHS19 += Idr[75]; - m_A55 += gt[76]; - m_A55 += gt[77]; - m_A55 += gt[78]; - m_A55 += gt[79]; - m_A56 += go[76]; - m_A54 += go[77]; - double RHS20 = Idr[76]; - RHS20 += Idr[77]; - RHS20 += Idr[78]; - RHS20 += Idr[79]; - RHS20 -= go[78] * *cnV[78]; - RHS20 -= go[79] * *cnV[79]; - m_A60 += gt[80]; - m_A60 += gt[81]; - m_A60 += gt[82]; - m_A60 += gt[83]; - m_A60 += gt[84]; - m_A62 += go[80]; - m_A59 += go[81]; - m_A58 += go[82]; - m_A57 += go[83]; - double RHS21 = Idr[80]; - RHS21 += Idr[81]; - RHS21 += Idr[82]; - RHS21 += Idr[83]; - RHS21 += Idr[84]; - RHS21 -= go[84] * *cnV[84]; - m_A64 += gt[85]; - m_A64 += gt[86]; - m_A64 += gt[87]; - m_A64 += gt[88]; - m_A65 += go[85]; - m_A63 += go[86]; - double RHS22 = Idr[85]; - RHS22 += Idr[86]; - RHS22 += Idr[87]; - RHS22 += Idr[88]; - RHS22 -= go[87] * *cnV[87]; - RHS22 -= go[88] * *cnV[88]; - m_A69 += gt[89]; - m_A69 += gt[90]; - m_A69 += gt[91]; - m_A69 += gt[92]; - m_A68 += go[89]; - m_A70 += go[90]; - m_A67 += go[91]; - m_A66 += go[92]; - double RHS23 = Idr[89]; - RHS23 += Idr[90]; - RHS23 += Idr[91]; - RHS23 += Idr[92]; - m_A77 += gt[93]; - m_A77 += gt[94]; - m_A77 += gt[95]; - m_A77 += gt[96]; - m_A77 += gt[97]; - m_A77 += gt[98]; - m_A71 += go[93]; - m_A72 += go[94]; - m_A73 += go[95]; - m_A76 += go[96]; - double RHS24 = Idr[93]; - RHS24 += Idr[94]; - RHS24 += Idr[95]; - RHS24 += Idr[96]; - RHS24 += Idr[97]; - RHS24 += Idr[98]; - RHS24 -= go[97] * *cnV[97]; - RHS24 -= go[98] * *cnV[98]; - m_A82 += gt[99]; - m_A82 += gt[100]; - m_A82 += gt[101]; - m_A82 += gt[102]; - m_A82 += gt[103]; - m_A82 += gt[104]; - m_A82 += gt[105]; - m_A82 += gt[106]; - m_A80 += go[99]; - m_A80 += go[100]; - m_A79 += go[101]; - m_A83 += go[102]; - m_A83 += go[103]; - double RHS25 = Idr[99]; - RHS25 += Idr[100]; - RHS25 += Idr[101]; - RHS25 += Idr[102]; - RHS25 += Idr[103]; - RHS25 += Idr[104]; - RHS25 += Idr[105]; - RHS25 += Idr[106]; - RHS25 -= go[104] * *cnV[104]; - RHS25 -= go[105] * *cnV[105]; - RHS25 -= go[106] * *cnV[106]; - m_A90 += gt[107]; - m_A90 += gt[108]; - m_A90 += gt[109]; - m_A90 += gt[110]; - m_A90 += gt[111]; - m_A91 += go[107]; - m_A86 += go[108]; - m_A87 += go[109]; - m_A85 += go[110]; - m_A84 += go[111]; - double RHS26 = Idr[107]; - RHS26 += Idr[108]; - RHS26 += Idr[109]; - RHS26 += Idr[110]; - RHS26 += Idr[111]; - m_A99 += gt[112]; - m_A99 += gt[113]; - m_A99 += gt[114]; - m_A99 += gt[115]; - m_A99 += gt[116]; - m_A99 += gt[117]; - m_A99 += gt[118]; - m_A99 += gt[119]; - m_A99 += gt[120]; - m_A92 += go[112]; - m_A93 += go[113]; - m_A93 += go[114]; - m_A97 += go[115]; - m_A97 += go[116]; - m_A94 += go[117]; - m_A98 += go[118]; - double RHS27 = Idr[112]; - RHS27 += Idr[113]; - RHS27 += Idr[114]; - RHS27 += Idr[115]; - RHS27 += Idr[116]; - RHS27 += Idr[117]; - RHS27 += Idr[118]; - RHS27 += Idr[119]; - RHS27 += Idr[120]; - RHS27 -= go[119] * *cnV[119]; - RHS27 -= go[120] * *cnV[120]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; const double f0 = 1.0 / m_A0; - const double f0_27 = -f0 * m_A92; - m_A95 += m_A1 * f0_27; - RHS27 += f0_27 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_12 = -f1 * m_A26; - m_A27 += m_A3 * f1_12; - RHS12 += f1_12 * RHS1; - const double f1_23 = -f1 * m_A66; - m_A68 += m_A3 * f1_23; - RHS23 += f1_23 * RHS1; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A6 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// armora +static void nl_gcr_ee2cacaa15d32491_67_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 -= go[1] * *cnV[1]; + m_A2 += gt[2]; + m_A2 += gt[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 -= go[3] * *cnV[3]; + m_A4 += gt[4]; + m_A4 += gt[5]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A7 += go[6]; + double RHS3 = Idr[6]; + RHS3 += Idr[7]; + RHS3 -= go[7] * *cnV[7]; + m_A8 += gt[8]; + m_A8 += gt[9]; + m_A9 += go[8]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A12 += go[10]; + m_A11 += go[11]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 += Idr[12]; + RHS5 -= go[12] * *cnV[12]; + m_A13 += gt[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A15 += go[13]; + m_A14 += go[14]; + double RHS6 = Idr[13]; + RHS6 += Idr[14]; + RHS6 += Idr[15]; + RHS6 -= go[15] * *cnV[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A18 += go[16]; + m_A17 += go[17]; + double RHS7 = Idr[16]; + RHS7 += Idr[17]; + RHS7 += Idr[18]; + RHS7 -= go[18] * *cnV[18]; + m_A19 += gt[19]; + m_A19 += gt[20]; + m_A19 += gt[21]; + m_A19 += gt[22]; + m_A19 += gt[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A21 += go[19]; + m_A20 += go[20]; + double RHS8 = Idr[19]; + RHS8 += Idr[20]; + RHS8 += Idr[21]; + RHS8 += Idr[22]; + RHS8 += Idr[23]; + RHS8 += Idr[24]; + RHS8 += Idr[25]; + RHS8 -= go[21] * *cnV[21]; + RHS8 -= go[22] * *cnV[22]; + RHS8 -= go[23] * *cnV[23]; + RHS8 -= go[24] * *cnV[24]; + RHS8 -= go[25] * *cnV[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A23 += go[26]; + m_A24 += go[27]; + double RHS9 = Idr[26]; + RHS9 += Idr[27]; + RHS9 += Idr[28]; + RHS9 -= go[28] * *cnV[28]; + m_A26 += gt[29]; + m_A26 += gt[30]; + m_A26 += gt[31]; + m_A27 += go[29]; + m_A25 += go[30]; + double RHS10 = Idr[29]; + RHS10 += Idr[30]; + RHS10 += Idr[31]; + RHS10 -= go[31] * *cnV[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A29 += go[32]; + m_A28 += go[33]; + double RHS11 = Idr[32]; + RHS11 += Idr[33]; + RHS11 += Idr[34]; + RHS11 -= go[34] * *cnV[34]; + m_A33 += gt[35]; + m_A33 += gt[36]; + m_A33 += gt[37]; + m_A34 += go[35]; + m_A32 += go[36]; + double RHS12 = Idr[35]; + RHS12 += Idr[36]; + RHS12 += Idr[37]; + RHS12 -= go[37] * *cnV[37]; + m_A37 += gt[38]; + m_A37 += gt[39]; + m_A37 += gt[40]; + m_A36 += go[38]; + m_A35 += go[39]; + double RHS13 = Idr[38]; + RHS13 += Idr[39]; + RHS13 += Idr[40]; + RHS13 -= go[40] * *cnV[40]; + m_A41 += gt[41]; + m_A41 += gt[42]; + m_A41 += gt[43]; + m_A39 += go[41]; + m_A42 += go[42]; + double RHS14 = Idr[41]; + RHS14 += Idr[42]; + RHS14 += Idr[43]; + RHS14 -= go[43] * *cnV[43]; + m_A45 += gt[44]; + m_A45 += gt[45]; + m_A45 += gt[46]; + m_A44 += go[44]; + m_A43 += go[45]; + double RHS15 = Idr[44]; + RHS15 += Idr[45]; + RHS15 += Idr[46]; + RHS15 -= go[46] * *cnV[46]; + m_A49 += gt[47]; + m_A49 += gt[48]; + m_A49 += gt[49]; + m_A47 += go[47]; + m_A50 += go[48]; + double RHS16 = Idr[47]; + RHS16 += Idr[48]; + RHS16 += Idr[49]; + RHS16 -= go[49] * *cnV[49]; + m_A53 += gt[50]; + m_A53 += gt[51]; + m_A53 += gt[52]; + m_A51 += go[50]; + m_A52 += go[51]; + double RHS17 = Idr[50]; + RHS17 += Idr[51]; + RHS17 += Idr[52]; + RHS17 -= go[52] * *cnV[52]; + m_A57 += gt[53]; + m_A57 += gt[54]; + m_A57 += gt[55]; + m_A55 += go[53]; + m_A58 += go[54]; + double RHS18 = Idr[53]; + RHS18 += Idr[54]; + RHS18 += Idr[55]; + RHS18 -= go[55] * *cnV[55]; + m_A66 += gt[56]; + m_A66 += gt[57]; + m_A66 += gt[58]; + m_A66 += gt[59]; + m_A66 += gt[60]; + m_A66 += gt[61]; + m_A66 += gt[62]; + m_A66 += gt[63]; + m_A59 += go[56]; + m_A60 += go[57]; + m_A65 += go[58]; + m_A63 += go[59]; + m_A62 += go[60]; + m_A61 += go[61]; + double RHS19 = Idr[56]; + RHS19 += Idr[57]; + RHS19 += Idr[58]; + RHS19 += Idr[59]; + RHS19 += Idr[60]; + RHS19 += Idr[61]; + RHS19 += Idr[62]; + RHS19 += Idr[63]; + RHS19 -= go[62] * *cnV[62]; + RHS19 -= go[63] * *cnV[63]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A28; + m_A30 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_13 = -f1 * m_A35; + m_A37 += m_A3 * f1_13; + RHS13 += f1_13 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_13 = -f2 * m_A28; - m_A30 += m_A5 * f2_13; - RHS13 += f2_13 * RHS2; - const double f2_23 = -f2 * m_A67; - m_A69 += m_A5 * f2_23; - RHS23 += f2_23 * RHS2; + const double f2_15 = -f2 * m_A43; + m_A45 += m_A5 * f2_15; + RHS15 += f2_15 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_18 = -f3 * m_A44; - m_A45 += m_A7 * f3_18; - RHS18 += f3_18 * RHS3; + const double f3_10 = -f3 * m_A25; + m_A26 += m_A7 * f3_10; + RHS10 += f3_10 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_24 = -f4 * m_A71; - m_A74 += m_A9 * f4_24; - RHS24 += f4_24 * RHS4; + const double f4_12 = -f4 * m_A32; + m_A33 += m_A9 * f4_12; + RHS12 += f4_12 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_16 = -f5 * m_A36; - m_A38 += m_A11 * f5_16; - RHS16 += f5_16 * RHS5; - const double f5_21 = -f5 * m_A57; - m_A59 += m_A11 * f5_21; - RHS21 += f5_21 * RHS5; - const double f6 = 1.0 / m_A12; - const double f6_15 = -f6 * m_A33; - m_A34 += m_A13 * f6_15; - RHS15 += f6_15 * RHS6; - const double f6_26 = -f6 * m_A84; - m_A86 += m_A13 * f6_26; - RHS26 += f6_26 * RHS6; - const double f7 = 1.0 / m_A14; - const double f7_16 = -f7 * m_A37; - m_A38 += m_A15 * f7_16; - RHS16 += f7_16 * RHS7; - const double f8 = 1.0 / m_A16; - const double f8_17 = -f8 * m_A40; - m_A41 += m_A17 * f8_17; - m_A42 += m_A18 * f8_17; - RHS17 += f8_17 * RHS8; - const double f8_19 = -f8 * m_A49; - m_A51 += m_A17 * f8_19; - m_A52 += m_A18 * f8_19; - RHS19 += f8_19 * RHS8; - const double f9 = 1.0 / m_A19; - const double f9_19 = -f9 * m_A50; - m_A52 += m_A20 * f9_19; - RHS19 += f9_19 * RHS9; - const double f10 = 1.0 / m_A21; - const double f10_22 = -f10 * m_A63; - m_A65 += m_A22 * f10_22; - RHS22 += f10_22 * RHS10; - const double f10_26 = -f10 * m_A85; - m_A90 += m_A22 * f10_26; - RHS26 += f10_26 * RHS10; - const double f11 = 1.0 / m_A23; - const double f11_25 = -f11 * m_A79; - m_A82 += m_A24 * f11_25; - m_A83 += m_A25 * f11_25; - RHS25 += f11_25 * RHS11; - const double f11_27 = -f11 * m_A93; - m_A97 += m_A24 * f11_27; - m_A99 += m_A25 * f11_27; - RHS27 += f11_27 * RHS11; - const double f12 = 1.0 / m_A27; - const double f12_23 = -f12 * m_A68; - RHS23 += f12_23 * RHS12; - const double f13 = 1.0 / m_A29; - const double f13_18 = -f13 * m_A45; - m_A47 += m_A30 * f13_18; - RHS18 += f13_18 * RHS13; - const double f14 = 1.0 / m_A31; - const double f14_20 = -f14 * m_A54; - m_A56 += m_A32 * f14_20; - RHS20 += f14_20 * RHS14; - const double f14_21 = -f14 * m_A58; - m_A60 += m_A32 * f14_21; - RHS21 += f14_21 * RHS14; - const double f15 = 1.0 / m_A34; - const double f15_24 = -f15 * m_A72; - m_A77 += m_A35 * f15_24; - RHS24 += f15_24 * RHS15; - const double f15_26 = -f15 * m_A86; - m_A89 += m_A35 * f15_26; - RHS26 += f15_26 * RHS15; - const double f16 = 1.0 / m_A38; - const double f16_21 = -f16 * m_A59; - m_A61 += m_A39 * f16_21; - RHS21 += f16_21 * RHS16; - const double f16_24 = -f16 * m_A73; - m_A77 += m_A39 * f16_24; - RHS24 += f16_24 * RHS16; - const double f17 = 1.0 / m_A41; - const double f17_19 = -f17 * m_A51; - m_A52 += m_A42 * f17_19; - m_A53 += m_A43 * f17_19; - RHS19 += f17_19 * RHS17; - const double f17_25 = -f17 * m_A80; - m_A81 += m_A42 * f17_25; - m_A82 += m_A43 * f17_25; - RHS25 += f17_25 * RHS17; - const double f18 = 1.0 / m_A46; - const double f18_26 = -f18 * m_A87; - m_A88 += m_A47 * f18_26; - m_A90 += m_A48 * f18_26; - RHS26 += f18_26 * RHS18; - const double f19 = 1.0 / m_A52; - const double f19_25 = -f19 * m_A81; - m_A82 += m_A53 * f19_25; - RHS25 += f19_25 * RHS19; - const double f20 = 1.0 / m_A55; - const double f20_24 = -f20 * m_A74; - m_A75 += m_A56 * f20_24; - RHS24 += f20_24 * RHS20; - const double f21 = 1.0 / m_A60; - const double f21_24 = -f21 * m_A75; - m_A77 += m_A61 * f21_24; - m_A78 += m_A62 * f21_24; - RHS24 += f21_24 * RHS21; - const double f21_27 = -f21 * m_A94; - m_A96 += m_A61 * f21_27; - m_A99 += m_A62 * f21_27; - RHS27 += f21_27 * RHS21; - const double f22 = 1.0 / m_A64; - const double f22_27 = -f22 * m_A95; - m_A98 += m_A65 * f22_27; - RHS27 += f22_27 * RHS22; - const double f23 = 1.0 / m_A69; - const double f23_24 = -f23 * m_A76; - m_A77 += m_A70 * f23_24; - RHS24 += f23_24 * RHS23; - const double f23_26 = -f23 * m_A88; - m_A89 += m_A70 * f23_26; - RHS26 += f23_26 * RHS23; - const double f24 = 1.0 / m_A77; - const double f24_26 = -f24 * m_A89; - m_A91 += m_A78 * f24_26; - RHS26 += f24_26 * RHS24; - const double f24_27 = -f24 * m_A96; - m_A99 += m_A78 * f24_27; - RHS27 += f24_27 * RHS24; - const double f25 = 1.0 / m_A82; - const double f25_27 = -f25 * m_A97; - m_A99 += m_A83 * f25_27; - RHS27 += f25_27 * RHS25; - const double f26 = 1.0 / m_A90; - const double f26_27 = -f26 * m_A98; - m_A99 += m_A91 * f26_27; - RHS27 += f26_27 * RHS26; - V[27] = RHS27 / m_A99; - double tmp26 = 0.0; - tmp26 += m_A91 * V[27]; - V[26] = (RHS26 - tmp26) / m_A90; - double tmp25 = 0.0; - tmp25 += m_A83 * V[27]; - V[25] = (RHS25 - tmp25) / m_A82; - double tmp24 = 0.0; - tmp24 += m_A78 * V[27]; - V[24] = (RHS24 - tmp24) / m_A77; - double tmp23 = 0.0; - tmp23 += m_A70 * V[24]; - V[23] = (RHS23 - tmp23) / m_A69; - double tmp22 = 0.0; - tmp22 += m_A65 * V[26]; - V[22] = (RHS22 - tmp22) / m_A64; - double tmp21 = 0.0; - tmp21 += m_A61 * V[24]; - tmp21 += m_A62 * V[27]; - V[21] = (RHS21 - tmp21) / m_A60; - double tmp20 = 0.0; - tmp20 += m_A56 * V[21]; - V[20] = (RHS20 - tmp20) / m_A55; - double tmp19 = 0.0; - tmp19 += m_A53 * V[25]; - V[19] = (RHS19 - tmp19) / m_A52; + const double f5_11 = -f5 * m_A29; + m_A30 += m_A11 * f5_11; + m_A31 += m_A12 * f5_11; + RHS11 += f5_11 * RHS5; + const double f5_14 = -f5 * m_A39; + m_A40 += m_A11 * f5_14; + m_A41 += m_A12 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_13 = -f6 * m_A36; + m_A37 += m_A14 * f6_13; + m_A38 += m_A15 * f6_13; + RHS13 += f6_13 * RHS6; + const double f6_16 = -f6 * m_A47; + m_A48 += m_A14 * f6_16; + m_A49 += m_A15 * f6_16; + RHS16 += f6_16 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_15 = -f7 * m_A44; + m_A45 += m_A17 * f7_15; + m_A46 += m_A18 * f7_15; + RHS15 += f7_15 * RHS7; + const double f7_18 = -f7 * m_A55; + m_A56 += m_A17 * f7_18; + m_A57 += m_A18 * f7_18; + RHS18 += f7_18 * RHS7; + const double f8 = 1.0 / m_A19; + const double f8_19 = -f8 * m_A59; + m_A61 += m_A20 * f8_19; + m_A66 += m_A21 * f8_19; + RHS19 += f8_19 * RHS8; + const double f9 = 1.0 / m_A22; + const double f9_17 = -f9 * m_A51; + m_A53 += m_A23 * f9_17; + m_A54 += m_A24 * f9_17; + RHS17 += f9_17 * RHS9; + const double f9_19 = -f9 * m_A60; + m_A64 += m_A23 * f9_19; + m_A66 += m_A24 * f9_19; + RHS19 += f9_19 * RHS9; + const double f10 = 1.0 / m_A26; + const double f10_19 = -f10 * m_A61; + m_A66 += m_A27 * f10_19; + RHS19 += f10_19 * RHS10; + const double f11 = 1.0 / m_A30; + const double f11_14 = -f11 * m_A40; + m_A41 += m_A31 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A33; + const double f12_17 = -f12 * m_A52; + m_A53 += m_A34 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A37; + const double f13_16 = -f13 * m_A48; + m_A49 += m_A38 * f13_16; + RHS16 += f13_16 * RHS13; + const double f14 = 1.0 / m_A41; + const double f14_19 = -f14 * m_A62; + m_A66 += m_A42 * f14_19; + RHS19 += f14_19 * RHS14; + const double f15 = 1.0 / m_A45; + const double f15_18 = -f15 * m_A56; + m_A57 += m_A46 * f15_18; + RHS18 += f15_18 * RHS15; + const double f16 = 1.0 / m_A49; + const double f16_19 = -f16 * m_A63; + m_A66 += m_A50 * f16_19; + RHS19 += f16_19 * RHS16; + const double f17 = 1.0 / m_A53; + const double f17_19 = -f17 * m_A64; + m_A66 += m_A54 * f17_19; + RHS19 += f17_19 * RHS17; + const double f18 = 1.0 / m_A57; + const double f18_19 = -f18 * m_A65; + m_A66 += m_A58 * f18_19; + RHS19 += f18_19 * RHS18; + V[19] = RHS19 / m_A66; double tmp18 = 0.0; - tmp18 += m_A47 * V[23]; - tmp18 += m_A48 * V[26]; - V[18] = (RHS18 - tmp18) / m_A46; + tmp18 += m_A58 * V[19]; + V[18] = (RHS18 - tmp18) / m_A57; double tmp17 = 0.0; - tmp17 += m_A42 * V[19]; - tmp17 += m_A43 * V[25]; - V[17] = (RHS17 - tmp17) / m_A41; + tmp17 += m_A54 * V[19]; + V[17] = (RHS17 - tmp17) / m_A53; double tmp16 = 0.0; - tmp16 += m_A39 * V[24]; - V[16] = (RHS16 - tmp16) / m_A38; + tmp16 += m_A50 * V[19]; + V[16] = (RHS16 - tmp16) / m_A49; double tmp15 = 0.0; - tmp15 += m_A35 * V[24]; - V[15] = (RHS15 - tmp15) / m_A34; + tmp15 += m_A46 * V[18]; + V[15] = (RHS15 - tmp15) / m_A45; double tmp14 = 0.0; - tmp14 += m_A32 * V[21]; - V[14] = (RHS14 - tmp14) / m_A31; + tmp14 += m_A42 * V[19]; + V[14] = (RHS14 - tmp14) / m_A41; double tmp13 = 0.0; - tmp13 += m_A30 * V[23]; - V[13] = (RHS13 - tmp13) / m_A29; + tmp13 += m_A38 * V[16]; + V[13] = (RHS13 - tmp13) / m_A37; double tmp12 = 0.0; - V[12] = (RHS12 - tmp12) / m_A27; + tmp12 += m_A34 * V[17]; + V[12] = (RHS12 - tmp12) / m_A33; double tmp11 = 0.0; - tmp11 += m_A24 * V[25]; - tmp11 += m_A25 * V[27]; - V[11] = (RHS11 - tmp11) / m_A23; + tmp11 += m_A31 * V[14]; + V[11] = (RHS11 - tmp11) / m_A30; double tmp10 = 0.0; - tmp10 += m_A22 * V[26]; - V[10] = (RHS10 - tmp10) / m_A21; - double tmp9 = 0.0; - tmp9 += m_A20 * V[19]; - V[9] = (RHS9 - tmp9) / m_A19; - double tmp8 = 0.0; - tmp8 += m_A17 * V[17]; - tmp8 += m_A18 * V[19]; - V[8] = (RHS8 - tmp8) / m_A16; - double tmp7 = 0.0; - tmp7 += m_A15 * V[16]; - V[7] = (RHS7 - tmp7) / m_A14; - double tmp6 = 0.0; - tmp6 += m_A13 * V[15]; - V[6] = (RHS6 - tmp6) / m_A12; - double tmp5 = 0.0; - tmp5 += m_A11 * V[16]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[20]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[13]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[23]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[12]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[22]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// speedfrk -static void nl_gcr_e07b5b086812756c_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A3 += go[3]; - m_A3 += go[4]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A5 += go[7]; - m_A5 += go[8]; - m_A4 += go[9]; - double RHS2 = Idr[7]; - RHS2 += Idr[8]; - RHS2 += Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[10] * *cnV[10]; - RHS2 -= go[11] * *cnV[11]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// solarq -static void nl_gcr_e081f90c2e0313f6_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A2 += gt[10]; - m_A2 += gt[11]; - m_A5 += go[4]; - m_A4 += go[5]; - m_A4 += go[6]; - m_A3 += go[7]; - m_A3 += go[8]; - double RHS1 = Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 += Idr[10]; - RHS1 += Idr[11]; - RHS1 -= go[9] * *cnV[9]; - RHS1 -= go[10] * *cnV[10]; - RHS1 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A7 += go[12]; - double RHS2 = Idr[12]; - RHS2 += Idr[13]; - RHS2 += Idr[14]; - RHS2 += Idr[15]; - RHS2 -= go[13] * *cnV[13]; - RHS2 -= go[14] * *cnV[14]; - RHS2 -= go[15] * *cnV[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A8 += gt[18]; - m_A10 += go[16]; - m_A9 += go[17]; - double RHS3 = Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 -= go[18] * *cnV[18]; - m_A11 += gt[19]; - m_A11 += gt[20]; - m_A11 += gt[21]; - m_A11 += gt[22]; - m_A11 += gt[23]; - m_A11 += gt[24]; - m_A11 += gt[25]; - m_A11 += gt[26]; - m_A14 += go[19]; - m_A13 += go[20]; - m_A13 += go[21]; - m_A12 += go[22]; - m_A12 += go[23]; - double RHS4 = Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 += Idr[24]; - RHS4 += Idr[25]; - RHS4 += Idr[26]; - RHS4 -= go[24] * *cnV[24]; - RHS4 -= go[25] * *cnV[25]; - RHS4 -= go[26] * *cnV[26]; - m_A17 += gt[27]; - m_A17 += gt[28]; - m_A17 += gt[29]; - m_A17 += gt[30]; - m_A17 += gt[31]; - m_A17 += gt[32]; - m_A16 += go[27]; - m_A16 += go[28]; - m_A15 += go[29]; - double RHS5 = Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 += Idr[30]; - RHS5 += Idr[31]; - RHS5 += Idr[32]; - RHS5 -= go[30] * *cnV[30]; - RHS5 -= go[31] * *cnV[31]; - RHS5 -= go[32] * *cnV[32]; - m_A22 += gt[33]; - m_A22 += gt[34]; - m_A22 += gt[35]; - m_A22 += gt[36]; - m_A22 += gt[37]; - m_A22 += gt[38]; - m_A21 += go[33]; - m_A21 += go[34]; - m_A20 += go[35]; - double RHS6 = Idr[33]; - RHS6 += Idr[34]; - RHS6 += Idr[35]; - RHS6 += Idr[36]; - RHS6 += Idr[37]; - RHS6 += Idr[38]; - RHS6 -= go[36] * *cnV[36]; - RHS6 -= go[37] * *cnV[37]; - RHS6 -= go[38] * *cnV[38]; - m_A27 += gt[39]; - m_A27 += gt[40]; - m_A27 += gt[41]; - m_A27 += gt[42]; - m_A27 += gt[43]; - m_A28 += go[39]; - m_A28 += go[40]; - m_A25 += go[41]; - m_A25 += go[42]; - double RHS7 = Idr[39]; - RHS7 += Idr[40]; - RHS7 += Idr[41]; - RHS7 += Idr[42]; - RHS7 += Idr[43]; - RHS7 -= go[43] * *cnV[43]; - m_A33 += gt[44]; - m_A33 += gt[45]; - m_A33 += gt[46]; - m_A33 += gt[47]; - m_A33 += gt[48]; - m_A32 += go[44]; - m_A32 += go[45]; - m_A29 += go[46]; - m_A30 += go[47]; - double RHS8 = Idr[44]; - RHS8 += Idr[45]; - RHS8 += Idr[46]; - RHS8 += Idr[47]; - RHS8 += Idr[48]; - RHS8 -= go[48] * *cnV[48]; - m_A37 += gt[49]; - m_A37 += gt[50]; - m_A37 += gt[51]; - m_A37 += gt[52]; - m_A37 += gt[53]; - m_A38 += go[49]; - m_A38 += go[50]; - m_A35 += go[51]; - m_A35 += go[52]; - double RHS9 = Idr[49]; - RHS9 += Idr[50]; - RHS9 += Idr[51]; - RHS9 += Idr[52]; - RHS9 += Idr[53]; - RHS9 -= go[53] * *cnV[53]; - m_A44 += gt[54]; - m_A44 += gt[55]; - m_A44 += gt[56]; - m_A44 += gt[57]; - m_A44 += gt[58]; - m_A43 += go[54]; - m_A43 += go[55]; - m_A40 += go[56]; - m_A39 += go[57]; - double RHS10 = Idr[54]; - RHS10 += Idr[55]; - RHS10 += Idr[56]; - RHS10 += Idr[57]; - RHS10 += Idr[58]; - RHS10 -= go[58] * *cnV[58]; - const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A15; - m_A17 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A16; - m_A17 += m_A3 * f1_5; - m_A18 += m_A4 * f1_5; - m_A19 += m_A5 * f1_5; - RHS5 += f1_5 * RHS1; - const double f1_7 = -f1 * m_A25; - m_A26 += m_A3 * f1_7; - m_A27 += m_A4 * f1_7; - m_A28 += m_A5 * f1_7; - RHS7 += f1_7 * RHS1; - const double f1_8 = -f1 * m_A29; - m_A31 += m_A3 * f1_8; - m_A32 += m_A4 * f1_8; - m_A33 += m_A5 * f1_8; - RHS8 += f1_8 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_6 = -f2 * m_A20; - m_A22 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_8 = -f3 * m_A30; - m_A33 += m_A9 * f3_8; - m_A34 += m_A10 * f3_8; - RHS8 += f3_8 * RHS3; - const double f3_10 = -f3 * m_A39; - m_A42 += m_A9 * f3_10; - m_A44 += m_A10 * f3_10; - RHS10 += f3_10 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_6 = -f4 * m_A21; - m_A22 += m_A12 * f4_6; - m_A23 += m_A13 * f4_6; - m_A24 += m_A14 * f4_6; - RHS6 += f4_6 * RHS4; - const double f4_9 = -f4 * m_A35; - m_A36 += m_A12 * f4_9; - m_A37 += m_A13 * f4_9; - m_A38 += m_A14 * f4_9; - RHS9 += f4_9 * RHS4; - const double f4_10 = -f4 * m_A40; - m_A41 += m_A12 * f4_10; - m_A43 += m_A13 * f4_10; - m_A44 += m_A14 * f4_10; - RHS10 += f4_10 * RHS4; - const double f5 = 1.0 / m_A17; - const double f5_7 = -f5 * m_A26; - m_A27 += m_A18 * f5_7; - m_A28 += m_A19 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A31; - m_A32 += m_A18 * f5_8; - m_A33 += m_A19 * f5_8; - RHS8 += f5_8 * RHS5; - const double f6 = 1.0 / m_A22; - const double f6_9 = -f6 * m_A36; - m_A37 += m_A23 * f6_9; - m_A38 += m_A24 * f6_9; - RHS9 += f6_9 * RHS6; - const double f6_10 = -f6 * m_A41; - m_A43 += m_A23 * f6_10; - m_A44 += m_A24 * f6_10; - RHS10 += f6_10 * RHS6; - const double f7 = 1.0 / m_A27; - const double f7_8 = -f7 * m_A32; - m_A33 += m_A28 * f7_8; - RHS8 += f7_8 * RHS7; - const double f8 = 1.0 / m_A33; - const double f8_10 = -f8 * m_A42; - m_A44 += m_A34 * f8_10; - RHS10 += f8_10 * RHS8; - const double f9 = 1.0 / m_A37; - const double f9_10 = -f9 * m_A43; - m_A44 += m_A38 * f9_10; - RHS10 += f9_10 * RHS9; - V[10] = RHS10 / m_A44; + tmp10 += m_A27 * V[19]; + V[10] = (RHS10 - tmp10) / m_A26; double tmp9 = 0.0; - tmp9 += m_A38 * V[10]; - V[9] = (RHS9 - tmp9) / m_A37; + tmp9 += m_A23 * V[17]; + tmp9 += m_A24 * V[19]; + V[9] = (RHS9 - tmp9) / m_A22; double tmp8 = 0.0; - tmp8 += m_A34 * V[10]; - V[8] = (RHS8 - tmp8) / m_A33; + tmp8 += m_A20 * V[10]; + tmp8 += m_A21 * V[19]; + V[8] = (RHS8 - tmp8) / m_A19; double tmp7 = 0.0; - tmp7 += m_A28 * V[8]; - V[7] = (RHS7 - tmp7) / m_A27; - double tmp6 = 0.0; - tmp6 += m_A23 * V[9]; - tmp6 += m_A24 * V[10]; - V[6] = (RHS6 - tmp6) / m_A22; + tmp7 += m_A17 * V[15]; + tmp7 += m_A18 * V[18]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A14 * V[13]; + tmp6 += m_A15 * V[16]; + V[6] = (RHS6 - tmp6) / m_A13; double tmp5 = 0.0; - tmp5 += m_A18 * V[7]; - tmp5 += m_A19 * V[8]; - V[5] = (RHS5 - tmp5) / m_A17; - double tmp4 = 0.0; - tmp4 += m_A12 * V[6]; - tmp4 += m_A13 * V[9]; - tmp4 += m_A14 * V[10]; - V[4] = (RHS4 - tmp4) / m_A11; - double tmp3 = 0.0; - tmp3 += m_A9 * V[8]; - tmp3 += m_A10 * V[10]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A7 * V[6]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; - tmp1 += m_A4 * V[7]; - tmp1 += m_A5 * V[8]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// spacewar -static void nl_gcr_e0b492db40bba291_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; - m_A2 += gt[3]; - m_A3 += go[2]; - m_A4 += go[3]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; - m_A5 += gt[4]; - m_A5 += gt[5]; - m_A7 += go[4]; - m_A6 += go[5]; - double RHS2 = Idr[4]; - RHS2 += Idr[5]; - m_A9 += gt[6]; - m_A9 += gt[7]; - m_A9 += gt[8]; - m_A8 += go[6]; - double RHS3 = Idr[6]; - RHS3 += Idr[7]; - RHS3 += Idr[8]; - RHS3 -= go[7] * *cnV[7]; - RHS3 -= go[8] * *cnV[8]; - m_A15 += gt[9]; - m_A15 += gt[10]; - m_A15 += gt[11]; - m_A11 += go[9]; - m_A13 += go[10]; - m_A12 += go[11]; - double RHS4 = Idr[9]; - RHS4 += Idr[10]; - RHS4 += Idr[11]; - m_A19 += gt[12]; - m_A19 += gt[13]; - m_A19 += gt[14]; - m_A17 += go[12]; - double RHS5 = Idr[12]; - RHS5 += Idr[13]; - RHS5 += Idr[14]; - RHS5 -= go[13] * *cnV[13]; - RHS5 -= go[14] * *cnV[14]; - const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A11; - m_A15 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A8; - m_A9 += m_A3 * f1_3; - m_A10 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_4 = -f1 * m_A12; - m_A14 += m_A3 * f1_4; - m_A15 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A13; - m_A15 += m_A6 * f2_4; - m_A16 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A17; - m_A18 += m_A6 * f2_5; - m_A19 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A9; - const double f3_4 = -f3 * m_A14; - m_A15 += m_A10 * f3_4; - RHS4 += f3_4 * RHS3; - const double f4 = 1.0 / m_A15; - const double f4_5 = -f4 * m_A18; - m_A19 += m_A16 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A19; + tmp5 += m_A11 * V[11]; + tmp5 += m_A12 * V[14]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A16 * V[5]; - V[4] = (RHS4 - tmp4) / m_A15; + tmp4 += m_A9 * V[12]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A10 * V[4]; - V[3] = (RHS3 - tmp3) / m_A9; + tmp3 += m_A7 * V[10]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[5]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[15]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; - tmp1 += m_A4 * V[4]; + tmp1 += m_A3 * V[13]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[11]; V[0] = (RHS0 - tmp0) / m_A0; } -// speedfrk -static void nl_gcr_e4f2ffbf201a3d0c_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// astrob +static void nl_gcr_ee61dcaa355fc625_285_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -32073,6 +63635,254 @@ double m_A34(0.0); double m_A35(0.0); double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); + double m_A198(0.0); + double m_A199(0.0); + double m_A200(0.0); + double m_A201(0.0); + double m_A202(0.0); + double m_A203(0.0); + double m_A204(0.0); + double m_A205(0.0); + double m_A206(0.0); + double m_A207(0.0); + double m_A208(0.0); + double m_A209(0.0); + double m_A210(0.0); + double m_A211(0.0); + double m_A212(0.0); + double m_A213(0.0); + double m_A214(0.0); + double m_A215(0.0); + double m_A216(0.0); + double m_A217(0.0); + double m_A218(0.0); + double m_A219(0.0); + double m_A220(0.0); + double m_A221(0.0); + double m_A222(0.0); + double m_A223(0.0); + double m_A224(0.0); + double m_A225(0.0); + double m_A226(0.0); + double m_A227(0.0); + double m_A228(0.0); + double m_A229(0.0); + double m_A230(0.0); + double m_A231(0.0); + double m_A232(0.0); + double m_A233(0.0); + double m_A234(0.0); + double m_A235(0.0); + double m_A236(0.0); + double m_A237(0.0); + double m_A238(0.0); + double m_A239(0.0); + double m_A240(0.0); + double m_A241(0.0); + double m_A242(0.0); + double m_A243(0.0); + double m_A244(0.0); + double m_A245(0.0); + double m_A246(0.0); + double m_A247(0.0); + double m_A248(0.0); + double m_A249(0.0); + double m_A250(0.0); + double m_A251(0.0); + double m_A252(0.0); + double m_A253(0.0); + double m_A254(0.0); + double m_A255(0.0); + double m_A256(0.0); + double m_A257(0.0); + double m_A258(0.0); + double m_A259(0.0); + double m_A260(0.0); + double m_A261(0.0); + double m_A262(0.0); + double m_A263(0.0); + double m_A264(0.0); + double m_A265(0.0); + double m_A266(0.0); + double m_A267(0.0); + double m_A268(0.0); + double m_A269(0.0); + double m_A270(0.0); + double m_A271(0.0); + double m_A272(0.0); + double m_A273(0.0); + double m_A274(0.0); + double m_A275(0.0); + double m_A276(0.0); + double m_A277(0.0); + double m_A278(0.0); + double m_A279(0.0); + double m_A280(0.0); + double m_A281(0.0); + double m_A282(0.0); + double m_A283(0.0); + double m_A284(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -32163,445 +63973,1625 @@ RHS9 += Idr[29]; RHS9 -= go[28] * *cnV[28]; RHS9 -= go[29] * *cnV[29]; - m_A24 += gt[30]; - m_A24 += gt[31]; - m_A24 += gt[32]; - m_A24 += gt[33]; - m_A24 += gt[34]; - m_A25 += go[30]; - m_A23 += go[31]; - m_A22 += go[32]; - m_A21 += go[33]; - m_A20 += go[34]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A21 += go[30]; double RHS10 = Idr[30]; RHS10 += Idr[31]; RHS10 += Idr[32]; - RHS10 += Idr[33]; - RHS10 += Idr[34]; - m_A29 += gt[35]; - m_A29 += gt[36]; - m_A29 += gt[37]; - m_A29 += gt[38]; - m_A29 += gt[39]; - m_A30 += go[35]; - m_A28 += go[36]; - m_A27 += go[37]; - m_A26 += go[38]; - double RHS11 = Idr[35]; + RHS10 -= go[31] * *cnV[31]; + RHS10 -= go[32] * *cnV[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A22 += gt[37]; + m_A22 += gt[38]; + m_A22 += gt[39]; + m_A24 += go[33]; + m_A23 += go[34]; + double RHS11 = Idr[33]; + RHS11 += Idr[34]; + RHS11 += Idr[35]; RHS11 += Idr[36]; RHS11 += Idr[37]; RHS11 += Idr[38]; RHS11 += Idr[39]; + RHS11 -= go[35] * *cnV[35]; + RHS11 -= go[36] * *cnV[36]; + RHS11 -= go[37] * *cnV[37]; + RHS11 -= go[38] * *cnV[38]; RHS11 -= go[39] * *cnV[39]; - m_A36 += gt[40]; - m_A36 += gt[41]; - m_A36 += gt[42]; - m_A36 += gt[43]; - m_A36 += gt[44]; - m_A35 += go[40]; - m_A34 += go[41]; - m_A33 += go[42]; - m_A32 += go[43]; - m_A31 += go[44]; + m_A25 += gt[40]; + m_A25 += gt[41]; + m_A26 += go[40]; double RHS12 = Idr[40]; RHS12 += Idr[41]; - RHS12 += Idr[42]; - RHS12 += Idr[43]; - RHS12 += Idr[44]; + RHS12 -= go[41] * *cnV[41]; + m_A27 += gt[42]; + m_A27 += gt[43]; + m_A28 += go[42]; + double RHS13 = Idr[42]; + RHS13 += Idr[43]; + RHS13 -= go[43] * *cnV[43]; + m_A29 += gt[44]; + m_A29 += gt[45]; + m_A30 += go[44]; + double RHS14 = Idr[44]; + RHS14 += Idr[45]; + RHS14 -= go[45] * *cnV[45]; + m_A31 += gt[46]; + m_A31 += gt[47]; + m_A31 += gt[48]; + m_A32 += go[46]; + double RHS15 = Idr[46]; + RHS15 += Idr[47]; + RHS15 += Idr[48]; + RHS15 -= go[47] * *cnV[47]; + RHS15 -= go[48] * *cnV[48]; + m_A33 += gt[49]; + m_A33 += gt[50]; + m_A33 += gt[51]; + m_A34 += go[49]; + double RHS16 = Idr[49]; + RHS16 += Idr[50]; + RHS16 += Idr[51]; + RHS16 -= go[50] * *cnV[50]; + RHS16 -= go[51] * *cnV[51]; + m_A35 += gt[52]; + m_A35 += gt[53]; + m_A35 += gt[54]; + m_A36 += go[52]; + double RHS17 = Idr[52]; + RHS17 += Idr[53]; + RHS17 += Idr[54]; + RHS17 -= go[53] * *cnV[53]; + RHS17 -= go[54] * *cnV[54]; + m_A37 += gt[55]; + m_A37 += gt[56]; + m_A37 += gt[57]; + m_A38 += go[55]; + double RHS18 = Idr[55]; + RHS18 += Idr[56]; + RHS18 += Idr[57]; + RHS18 -= go[56] * *cnV[56]; + RHS18 -= go[57] * *cnV[57]; + m_A39 += gt[58]; + m_A39 += gt[59]; + m_A40 += go[58]; + double RHS19 = Idr[58]; + RHS19 += Idr[59]; + RHS19 -= go[59] * *cnV[59]; + m_A41 += gt[60]; + m_A41 += gt[61]; + m_A41 += gt[62]; + m_A41 += gt[63]; + m_A41 += gt[64]; + m_A41 += gt[65]; + m_A41 += gt[66]; + m_A42 += go[60]; + double RHS20 = Idr[60]; + RHS20 += Idr[61]; + RHS20 += Idr[62]; + RHS20 += Idr[63]; + RHS20 += Idr[64]; + RHS20 += Idr[65]; + RHS20 += Idr[66]; + RHS20 -= go[61] * *cnV[61]; + RHS20 -= go[62] * *cnV[62]; + RHS20 -= go[63] * *cnV[63]; + RHS20 -= go[64] * *cnV[64]; + RHS20 -= go[65] * *cnV[65]; + RHS20 -= go[66] * *cnV[66]; + m_A43 += gt[67]; + m_A43 += gt[68]; + m_A43 += gt[69]; + m_A44 += go[67]; + double RHS21 = Idr[67]; + RHS21 += Idr[68]; + RHS21 += Idr[69]; + RHS21 -= go[68] * *cnV[68]; + RHS21 -= go[69] * *cnV[69]; + m_A45 += gt[70]; + m_A45 += gt[71]; + m_A45 += gt[72]; + m_A45 += gt[73]; + m_A45 += gt[74]; + m_A45 += gt[75]; + m_A45 += gt[76]; + m_A46 += go[70]; + double RHS22 = Idr[70]; + RHS22 += Idr[71]; + RHS22 += Idr[72]; + RHS22 += Idr[73]; + RHS22 += Idr[74]; + RHS22 += Idr[75]; + RHS22 += Idr[76]; + RHS22 -= go[71] * *cnV[71]; + RHS22 -= go[72] * *cnV[72]; + RHS22 -= go[73] * *cnV[73]; + RHS22 -= go[74] * *cnV[74]; + RHS22 -= go[75] * *cnV[75]; + RHS22 -= go[76] * *cnV[76]; + m_A47 += gt[77]; + m_A47 += gt[78]; + m_A47 += gt[79]; + m_A48 += go[77]; + m_A49 += go[78]; + double RHS23 = Idr[77]; + RHS23 += Idr[78]; + RHS23 += Idr[79]; + RHS23 -= go[79] * *cnV[79]; + m_A50 += gt[80]; + m_A50 += gt[81]; + m_A50 += gt[82]; + m_A52 += go[80]; + m_A51 += go[81]; + double RHS24 = Idr[80]; + RHS24 += Idr[81]; + RHS24 += Idr[82]; + RHS24 -= go[82] * *cnV[82]; + m_A53 += gt[83]; + m_A53 += gt[84]; + m_A54 += go[83]; + double RHS25 = Idr[83]; + RHS25 += Idr[84]; + RHS25 -= go[84] * *cnV[84]; + m_A55 += gt[85]; + m_A55 += gt[86]; + m_A55 += gt[87]; + m_A55 += gt[88]; + m_A55 += gt[89]; + m_A55 += gt[90]; + m_A55 += gt[91]; + m_A55 += gt[92]; + m_A55 += gt[93]; + m_A55 += gt[94]; + m_A55 += gt[95]; + m_A55 += gt[96]; + m_A67 += go[85]; + m_A56 += go[86]; + m_A58 += go[87]; + m_A60 += go[88]; + m_A62 += go[89]; + m_A64 += go[90]; + m_A66 += go[91]; + m_A65 += go[92]; + m_A63 += go[93]; + m_A61 += go[94]; + m_A59 += go[95]; + m_A57 += go[96]; + double RHS26 = Idr[85]; + RHS26 += Idr[86]; + RHS26 += Idr[87]; + RHS26 += Idr[88]; + RHS26 += Idr[89]; + RHS26 += Idr[90]; + RHS26 += Idr[91]; + RHS26 += Idr[92]; + RHS26 += Idr[93]; + RHS26 += Idr[94]; + RHS26 += Idr[95]; + RHS26 += Idr[96]; + m_A69 += gt[97]; + m_A69 += gt[98]; + m_A69 += gt[99]; + m_A68 += go[97]; + m_A70 += go[98]; + double RHS27 = Idr[97]; + RHS27 += Idr[98]; + RHS27 += Idr[99]; + RHS27 -= go[99] * *cnV[99]; + m_A72 += gt[100]; + m_A72 += gt[101]; + m_A72 += gt[102]; + m_A71 += go[100]; + m_A73 += go[101]; + double RHS28 = Idr[100]; + RHS28 += Idr[101]; + RHS28 += Idr[102]; + RHS28 -= go[102] * *cnV[102]; + m_A75 += gt[103]; + m_A75 += gt[104]; + m_A75 += gt[105]; + m_A74 += go[103]; + m_A76 += go[104]; + double RHS29 = Idr[103]; + RHS29 += Idr[104]; + RHS29 += Idr[105]; + RHS29 -= go[105] * *cnV[105]; + m_A82 += gt[106]; + m_A82 += gt[107]; + m_A82 += gt[108]; + m_A82 += gt[109]; + m_A82 += gt[110]; + m_A82 += gt[111]; + m_A82 += gt[112]; + m_A81 += go[106]; + m_A80 += go[107]; + m_A79 += go[108]; + m_A78 += go[109]; + m_A77 += go[110]; + m_A83 += go[111]; + double RHS30 = Idr[106]; + RHS30 += Idr[107]; + RHS30 += Idr[108]; + RHS30 += Idr[109]; + RHS30 += Idr[110]; + RHS30 += Idr[111]; + RHS30 += Idr[112]; + RHS30 -= go[112] * *cnV[112]; + m_A84 += gt[113]; + m_A84 += gt[114]; + m_A86 += go[113]; + m_A85 += go[114]; + double RHS31 = Idr[113]; + RHS31 += Idr[114]; + m_A89 += gt[115]; + m_A89 += gt[116]; + m_A89 += gt[117]; + m_A89 += gt[118]; + m_A89 += gt[119]; + m_A87 += go[115]; + m_A91 += go[116]; + m_A88 += go[117]; + double RHS32 = Idr[115]; + RHS32 += Idr[116]; + RHS32 += Idr[117]; + RHS32 += Idr[118]; + RHS32 += Idr[119]; + RHS32 -= go[118] * *cnV[118]; + RHS32 -= go[119] * *cnV[119]; + m_A94 += gt[120]; + m_A94 += gt[121]; + m_A94 += gt[122]; + m_A94 += gt[123]; + m_A92 += go[120]; + m_A93 += go[121]; + double RHS33 = Idr[120]; + RHS33 += Idr[121]; + RHS33 += Idr[122]; + RHS33 += Idr[123]; + RHS33 -= go[122] * *cnV[122]; + RHS33 -= go[123] * *cnV[123]; + m_A109 += gt[124]; + m_A109 += gt[125]; + m_A107 += go[124]; + m_A106 += go[125]; + double RHS34 = Idr[124]; + RHS34 += Idr[125]; + m_A124 += gt[126]; + m_A124 += gt[127]; + m_A121 += go[126]; + m_A120 += go[127]; + double RHS35 = Idr[126]; + RHS35 += Idr[127]; + m_A139 += gt[128]; + m_A139 += gt[129]; + m_A135 += go[128]; + m_A134 += go[129]; + double RHS36 = Idr[128]; + RHS36 += Idr[129]; + m_A154 += gt[130]; + m_A154 += gt[131]; + m_A149 += go[130]; + m_A148 += go[131]; + double RHS37 = Idr[130]; + RHS37 += Idr[131]; + m_A169 += gt[132]; + m_A169 += gt[133]; + m_A163 += go[132]; + m_A162 += go[133]; + double RHS38 = Idr[132]; + RHS38 += Idr[133]; + m_A184 += gt[134]; + m_A184 += gt[135]; + m_A177 += go[134]; + m_A176 += go[135]; + double RHS39 = Idr[134]; + RHS39 += Idr[135]; + m_A199 += gt[136]; + m_A199 += gt[137]; + m_A191 += go[136]; + m_A190 += go[137]; + double RHS40 = Idr[136]; + RHS40 += Idr[137]; + m_A214 += gt[138]; + m_A214 += gt[139]; + m_A205 += go[138]; + m_A204 += go[139]; + double RHS41 = Idr[138]; + RHS41 += Idr[139]; + m_A229 += gt[140]; + m_A229 += gt[141]; + m_A219 += go[140]; + m_A218 += go[141]; + double RHS42 = Idr[140]; + RHS42 += Idr[141]; + m_A244 += gt[142]; + m_A244 += gt[143]; + m_A233 += go[142]; + m_A232 += go[143]; + double RHS43 = Idr[142]; + RHS43 += Idr[143]; + m_A263 += gt[144]; + m_A263 += gt[145]; + m_A263 += gt[146]; + m_A263 += gt[147]; + m_A263 += gt[148]; + m_A263 += gt[149]; + m_A263 += gt[150]; + m_A263 += gt[151]; + m_A263 += gt[152]; + m_A246 += go[144]; + m_A264 += go[145]; + m_A251 += go[146]; + m_A250 += go[147]; + m_A249 += go[148]; + m_A248 += go[149]; + m_A247 += go[150]; + double RHS44 = Idr[144]; + RHS44 += Idr[145]; + RHS44 += Idr[146]; + RHS44 += Idr[147]; + RHS44 += Idr[148]; + RHS44 += Idr[149]; + RHS44 += Idr[150]; + RHS44 += Idr[151]; + RHS44 += Idr[152]; + RHS44 -= go[151] * *cnV[151]; + RHS44 -= go[152] * *cnV[152]; + m_A270 += gt[153]; + m_A270 += gt[154]; + m_A270 += gt[155]; + m_A270 += gt[156]; + m_A270 += gt[157]; + m_A270 += gt[158]; + m_A270 += gt[159]; + m_A265 += go[153]; + m_A268 += go[154]; + m_A267 += go[155]; + m_A272 += go[156]; + m_A266 += go[157]; + double RHS45 = Idr[153]; + RHS45 += Idr[154]; + RHS45 += Idr[155]; + RHS45 += Idr[156]; + RHS45 += Idr[157]; + RHS45 += Idr[158]; + RHS45 += Idr[159]; + RHS45 -= go[158] * *cnV[158]; + RHS45 -= go[159] * *cnV[159]; + m_A277 += gt[160]; + m_A277 += gt[161]; + m_A277 += gt[162]; + m_A277 += gt[163]; + m_A273 += go[160]; + m_A274 += go[161]; + m_A275 += go[162]; + double RHS46 = Idr[160]; + RHS46 += Idr[161]; + RHS46 += Idr[162]; + RHS46 += Idr[163]; + RHS46 -= go[163] * *cnV[163]; + m_A284 += gt[164]; + m_A284 += gt[165]; + m_A284 += gt[166]; + m_A284 += gt[167]; + m_A284 += gt[168]; + m_A280 += go[164]; + m_A279 += go[165]; + m_A281 += go[166]; + m_A282 += go[167]; + double RHS47 = Idr[164]; + RHS47 += Idr[165]; + RHS47 += Idr[166]; + RHS47 += Idr[167]; + RHS47 += Idr[168]; + RHS47 -= go[168] * *cnV[168]; const double f0 = 1.0 / m_A0; - const double f0_10 = -f0 * m_A20; - m_A24 += m_A1 * f0_10; - RHS10 += f0_10 * RHS0; + const double f0_34 = -f0 * m_A106; + m_A109 += m_A1 * f0_34; + RHS34 += f0_34 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_10 = -f1 * m_A21; - m_A24 += m_A3 * f1_10; - RHS10 += f1_10 * RHS1; + const double f1_36 = -f1 * m_A134; + m_A139 += m_A3 * f1_36; + RHS36 += f1_36 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_10 = -f2 * m_A22; - m_A24 += m_A5 * f2_10; - RHS10 += f2_10 * RHS2; + const double f2_38 = -f2 * m_A162; + m_A169 += m_A5 * f2_38; + RHS38 += f2_38 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_11 = -f3 * m_A26; - m_A29 += m_A7 * f3_11; - RHS11 += f3_11 * RHS3; + const double f3_40 = -f3 * m_A190; + m_A199 += m_A7 * f3_40; + RHS40 += f3_40 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_12 = -f4 * m_A31; - m_A36 += m_A9 * f4_12; - RHS12 += f4_12 * RHS4; + const double f4_42 = -f4 * m_A218; + m_A229 += m_A9 * f4_42; + RHS42 += f4_42 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_10 = -f5 * m_A23; - m_A24 += m_A11 * f5_10; - RHS10 += f5_10 * RHS5; + const double f5_43 = -f5 * m_A232; + m_A244 += m_A11 * f5_43; + RHS43 += f5_43 * RHS5; const double f6 = 1.0 / m_A12; - const double f6_11 = -f6 * m_A27; - m_A29 += m_A13 * f6_11; - RHS11 += f6_11 * RHS6; + const double f6_41 = -f6 * m_A204; + m_A214 += m_A13 * f6_41; + RHS41 += f6_41 * RHS6; const double f7 = 1.0 / m_A14; - const double f7_12 = -f7 * m_A32; - m_A36 += m_A15 * f7_12; - RHS12 += f7_12 * RHS7; + const double f7_39 = -f7 * m_A176; + m_A184 += m_A15 * f7_39; + RHS39 += f7_39 * RHS7; const double f8 = 1.0 / m_A16; - const double f8_12 = -f8 * m_A33; - m_A36 += m_A17 * f8_12; - RHS12 += f8_12 * RHS8; + const double f8_37 = -f8 * m_A148; + m_A154 += m_A17 * f8_37; + RHS37 += f8_37 * RHS8; const double f9 = 1.0 / m_A18; - const double f9_11 = -f9 * m_A28; - m_A29 += m_A19 * f9_11; - RHS11 += f9_11 * RHS9; - const double f10 = 1.0 / m_A24; - const double f10_12 = -f10 * m_A34; - m_A36 += m_A25 * f10_12; - RHS12 += f10_12 * RHS10; - const double f11 = 1.0 / m_A29; - const double f11_12 = -f11 * m_A35; - m_A36 += m_A30 * f11_12; - RHS12 += f11_12 * RHS11; - V[12] = RHS12 / m_A36; + const double f9_35 = -f9 * m_A120; + m_A124 += m_A19 * f9_35; + RHS35 += f9_35 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_33 = -f10 * m_A92; + m_A94 += m_A21 * f10_33; + RHS33 += f10_33 * RHS10; + const double f11 = 1.0 / m_A22; + const double f11_44 = -f11 * m_A246; + m_A247 += m_A23 * f11_44; + m_A252 += m_A24 * f11_44; + RHS44 += f11_44 * RHS11; + const double f12 = 1.0 / m_A25; + const double f12_27 = -f12 * m_A68; + m_A69 += m_A26 * f12_27; + RHS27 += f12_27 * RHS12; + const double f13 = 1.0 / m_A27; + const double f13_28 = -f13 * m_A71; + m_A72 += m_A28 * f13_28; + RHS28 += f13_28 * RHS13; + const double f14 = 1.0 / m_A29; + const double f14_29 = -f14 * m_A74; + m_A75 += m_A30 * f14_29; + RHS29 += f14_29 * RHS14; + const double f15 = 1.0 / m_A31; + const double f15_30 = -f15 * m_A77; + m_A82 += m_A32 * f15_30; + RHS30 += f15_30 * RHS15; + const double f16 = 1.0 / m_A33; + const double f16_30 = -f16 * m_A78; + m_A82 += m_A34 * f16_30; + RHS30 += f16_30 * RHS16; + const double f17 = 1.0 / m_A35; + const double f17_30 = -f17 * m_A79; + m_A82 += m_A36 * f17_30; + RHS30 += f17_30 * RHS17; + const double f18 = 1.0 / m_A37; + const double f18_30 = -f18 * m_A80; + m_A82 += m_A38 * f18_30; + RHS30 += f18_30 * RHS18; + const double f19 = 1.0 / m_A39; + const double f19_30 = -f19 * m_A81; + m_A82 += m_A40 * f19_30; + RHS30 += f19_30 * RHS19; + const double f20 = 1.0 / m_A41; + const double f20_32 = -f20 * m_A87; + m_A88 += m_A42 * f20_32; + RHS32 += f20_32 * RHS20; + const double f21 = 1.0 / m_A43; + const double f21_47 = -f21 * m_A279; + m_A284 += m_A44 * f21_47; + RHS47 += f21_47 * RHS21; + const double f22 = 1.0 / m_A45; + const double f22_45 = -f22 * m_A265; + m_A267 += m_A46 * f22_45; + RHS45 += f22_45 * RHS22; + const double f23 = 1.0 / m_A47; + const double f23_32 = -f23 * m_A88; + m_A89 += m_A48 * f23_32; + m_A90 += m_A49 * f23_32; + RHS32 += f23_32 * RHS23; + const double f23_45 = -f23 * m_A266; + m_A269 += m_A48 * f23_45; + m_A270 += m_A49 * f23_45; + RHS45 += f23_45 * RHS23; + const double f24 = 1.0 / m_A50; + const double f24_45 = -f24 * m_A267; + m_A270 += m_A51 * f24_45; + m_A272 += m_A52 * f24_45; + RHS45 += f24_45 * RHS24; + const double f24_47 = -f24 * m_A280; + m_A282 += m_A51 * f24_47; + m_A284 += m_A52 * f24_47; + RHS47 += f24_47 * RHS24; + const double f25 = 1.0 / m_A53; + const double f25_46 = -f25 * m_A273; + m_A277 += m_A54 * f25_46; + RHS46 += f25_46 * RHS25; + const double f26 = 1.0 / m_A55; + const double f26_33 = -f26 * m_A93; + m_A94 += m_A56 * f26_33; + m_A95 += m_A57 * f26_33; + m_A96 += m_A58 * f26_33; + m_A97 += m_A59 * f26_33; + m_A98 += m_A60 * f26_33; + m_A99 += m_A61 * f26_33; + m_A100 += m_A62 * f26_33; + m_A101 += m_A63 * f26_33; + m_A102 += m_A64 * f26_33; + m_A103 += m_A65 * f26_33; + m_A104 += m_A66 * f26_33; + m_A105 += m_A67 * f26_33; + RHS33 += f26_33 * RHS26; + const double f26_34 = -f26 * m_A107; + m_A108 += m_A56 * f26_34; + m_A109 += m_A57 * f26_34; + m_A110 += m_A58 * f26_34; + m_A111 += m_A59 * f26_34; + m_A112 += m_A60 * f26_34; + m_A113 += m_A61 * f26_34; + m_A114 += m_A62 * f26_34; + m_A115 += m_A63 * f26_34; + m_A116 += m_A64 * f26_34; + m_A117 += m_A65 * f26_34; + m_A118 += m_A66 * f26_34; + m_A119 += m_A67 * f26_34; + RHS34 += f26_34 * RHS26; + const double f26_35 = -f26 * m_A121; + m_A122 += m_A56 * f26_35; + m_A123 += m_A57 * f26_35; + m_A124 += m_A58 * f26_35; + m_A125 += m_A59 * f26_35; + m_A126 += m_A60 * f26_35; + m_A127 += m_A61 * f26_35; + m_A128 += m_A62 * f26_35; + m_A129 += m_A63 * f26_35; + m_A130 += m_A64 * f26_35; + m_A131 += m_A65 * f26_35; + m_A132 += m_A66 * f26_35; + m_A133 += m_A67 * f26_35; + RHS35 += f26_35 * RHS26; + const double f26_36 = -f26 * m_A135; + m_A136 += m_A56 * f26_36; + m_A137 += m_A57 * f26_36; + m_A138 += m_A58 * f26_36; + m_A139 += m_A59 * f26_36; + m_A140 += m_A60 * f26_36; + m_A141 += m_A61 * f26_36; + m_A142 += m_A62 * f26_36; + m_A143 += m_A63 * f26_36; + m_A144 += m_A64 * f26_36; + m_A145 += m_A65 * f26_36; + m_A146 += m_A66 * f26_36; + m_A147 += m_A67 * f26_36; + RHS36 += f26_36 * RHS26; + const double f26_37 = -f26 * m_A149; + m_A150 += m_A56 * f26_37; + m_A151 += m_A57 * f26_37; + m_A152 += m_A58 * f26_37; + m_A153 += m_A59 * f26_37; + m_A154 += m_A60 * f26_37; + m_A155 += m_A61 * f26_37; + m_A156 += m_A62 * f26_37; + m_A157 += m_A63 * f26_37; + m_A158 += m_A64 * f26_37; + m_A159 += m_A65 * f26_37; + m_A160 += m_A66 * f26_37; + m_A161 += m_A67 * f26_37; + RHS37 += f26_37 * RHS26; + const double f26_38 = -f26 * m_A163; + m_A164 += m_A56 * f26_38; + m_A165 += m_A57 * f26_38; + m_A166 += m_A58 * f26_38; + m_A167 += m_A59 * f26_38; + m_A168 += m_A60 * f26_38; + m_A169 += m_A61 * f26_38; + m_A170 += m_A62 * f26_38; + m_A171 += m_A63 * f26_38; + m_A172 += m_A64 * f26_38; + m_A173 += m_A65 * f26_38; + m_A174 += m_A66 * f26_38; + m_A175 += m_A67 * f26_38; + RHS38 += f26_38 * RHS26; + const double f26_39 = -f26 * m_A177; + m_A178 += m_A56 * f26_39; + m_A179 += m_A57 * f26_39; + m_A180 += m_A58 * f26_39; + m_A181 += m_A59 * f26_39; + m_A182 += m_A60 * f26_39; + m_A183 += m_A61 * f26_39; + m_A184 += m_A62 * f26_39; + m_A185 += m_A63 * f26_39; + m_A186 += m_A64 * f26_39; + m_A187 += m_A65 * f26_39; + m_A188 += m_A66 * f26_39; + m_A189 += m_A67 * f26_39; + RHS39 += f26_39 * RHS26; + const double f26_40 = -f26 * m_A191; + m_A192 += m_A56 * f26_40; + m_A193 += m_A57 * f26_40; + m_A194 += m_A58 * f26_40; + m_A195 += m_A59 * f26_40; + m_A196 += m_A60 * f26_40; + m_A197 += m_A61 * f26_40; + m_A198 += m_A62 * f26_40; + m_A199 += m_A63 * f26_40; + m_A200 += m_A64 * f26_40; + m_A201 += m_A65 * f26_40; + m_A202 += m_A66 * f26_40; + m_A203 += m_A67 * f26_40; + RHS40 += f26_40 * RHS26; + const double f26_41 = -f26 * m_A205; + m_A206 += m_A56 * f26_41; + m_A207 += m_A57 * f26_41; + m_A208 += m_A58 * f26_41; + m_A209 += m_A59 * f26_41; + m_A210 += m_A60 * f26_41; + m_A211 += m_A61 * f26_41; + m_A212 += m_A62 * f26_41; + m_A213 += m_A63 * f26_41; + m_A214 += m_A64 * f26_41; + m_A215 += m_A65 * f26_41; + m_A216 += m_A66 * f26_41; + m_A217 += m_A67 * f26_41; + RHS41 += f26_41 * RHS26; + const double f26_42 = -f26 * m_A219; + m_A220 += m_A56 * f26_42; + m_A221 += m_A57 * f26_42; + m_A222 += m_A58 * f26_42; + m_A223 += m_A59 * f26_42; + m_A224 += m_A60 * f26_42; + m_A225 += m_A61 * f26_42; + m_A226 += m_A62 * f26_42; + m_A227 += m_A63 * f26_42; + m_A228 += m_A64 * f26_42; + m_A229 += m_A65 * f26_42; + m_A230 += m_A66 * f26_42; + m_A231 += m_A67 * f26_42; + RHS42 += f26_42 * RHS26; + const double f26_43 = -f26 * m_A233; + m_A234 += m_A56 * f26_43; + m_A235 += m_A57 * f26_43; + m_A236 += m_A58 * f26_43; + m_A237 += m_A59 * f26_43; + m_A238 += m_A60 * f26_43; + m_A239 += m_A61 * f26_43; + m_A240 += m_A62 * f26_43; + m_A241 += m_A63 * f26_43; + m_A242 += m_A64 * f26_43; + m_A243 += m_A65 * f26_43; + m_A244 += m_A66 * f26_43; + m_A245 += m_A67 * f26_43; + RHS43 += f26_43 * RHS26; + const double f26_44 = -f26 * m_A247; + m_A252 += m_A56 * f26_44; + m_A253 += m_A57 * f26_44; + m_A254 += m_A58 * f26_44; + m_A255 += m_A59 * f26_44; + m_A256 += m_A60 * f26_44; + m_A257 += m_A61 * f26_44; + m_A258 += m_A62 * f26_44; + m_A259 += m_A63 * f26_44; + m_A260 += m_A64 * f26_44; + m_A261 += m_A65 * f26_44; + m_A262 += m_A66 * f26_44; + m_A263 += m_A67 * f26_44; + RHS44 += f26_44 * RHS26; + const double f27 = 1.0 / m_A69; + const double f27_44 = -f27 * m_A248; + m_A263 += m_A70 * f27_44; + RHS44 += f27_44 * RHS27; + const double f28 = 1.0 / m_A72; + const double f28_44 = -f28 * m_A249; + m_A263 += m_A73 * f28_44; + RHS44 += f28_44 * RHS28; + const double f29 = 1.0 / m_A75; + const double f29_44 = -f29 * m_A250; + m_A263 += m_A76 * f29_44; + RHS44 += f29_44 * RHS29; + const double f30 = 1.0 / m_A82; + const double f30_44 = -f30 * m_A251; + m_A263 += m_A83 * f30_44; + RHS44 += f30_44 * RHS30; + const double f31 = 1.0 / m_A84; + const double f31_45 = -f31 * m_A268; + m_A270 += m_A85 * f31_45; + m_A271 += m_A86 * f31_45; + RHS45 += f31_45 * RHS31; + const double f31_46 = -f31 * m_A274; + m_A276 += m_A85 * f31_46; + m_A277 += m_A86 * f31_46; + RHS46 += f31_46 * RHS31; + const double f32 = 1.0 / m_A89; + const double f32_45 = -f32 * m_A269; + m_A270 += m_A90 * f32_45; + m_A272 += m_A91 * f32_45; + RHS45 += f32_45 * RHS32; + const double f32_47 = -f32 * m_A281; + m_A282 += m_A90 * f32_47; + m_A284 += m_A91 * f32_47; + RHS47 += f32_47 * RHS32; + const double f33 = 1.0 / m_A94; + const double f33_34 = -f33 * m_A108; + m_A109 += m_A95 * f33_34; + m_A110 += m_A96 * f33_34; + m_A111 += m_A97 * f33_34; + m_A112 += m_A98 * f33_34; + m_A113 += m_A99 * f33_34; + m_A114 += m_A100 * f33_34; + m_A115 += m_A101 * f33_34; + m_A116 += m_A102 * f33_34; + m_A117 += m_A103 * f33_34; + m_A118 += m_A104 * f33_34; + m_A119 += m_A105 * f33_34; + RHS34 += f33_34 * RHS33; + const double f33_35 = -f33 * m_A122; + m_A123 += m_A95 * f33_35; + m_A124 += m_A96 * f33_35; + m_A125 += m_A97 * f33_35; + m_A126 += m_A98 * f33_35; + m_A127 += m_A99 * f33_35; + m_A128 += m_A100 * f33_35; + m_A129 += m_A101 * f33_35; + m_A130 += m_A102 * f33_35; + m_A131 += m_A103 * f33_35; + m_A132 += m_A104 * f33_35; + m_A133 += m_A105 * f33_35; + RHS35 += f33_35 * RHS33; + const double f33_36 = -f33 * m_A136; + m_A137 += m_A95 * f33_36; + m_A138 += m_A96 * f33_36; + m_A139 += m_A97 * f33_36; + m_A140 += m_A98 * f33_36; + m_A141 += m_A99 * f33_36; + m_A142 += m_A100 * f33_36; + m_A143 += m_A101 * f33_36; + m_A144 += m_A102 * f33_36; + m_A145 += m_A103 * f33_36; + m_A146 += m_A104 * f33_36; + m_A147 += m_A105 * f33_36; + RHS36 += f33_36 * RHS33; + const double f33_37 = -f33 * m_A150; + m_A151 += m_A95 * f33_37; + m_A152 += m_A96 * f33_37; + m_A153 += m_A97 * f33_37; + m_A154 += m_A98 * f33_37; + m_A155 += m_A99 * f33_37; + m_A156 += m_A100 * f33_37; + m_A157 += m_A101 * f33_37; + m_A158 += m_A102 * f33_37; + m_A159 += m_A103 * f33_37; + m_A160 += m_A104 * f33_37; + m_A161 += m_A105 * f33_37; + RHS37 += f33_37 * RHS33; + const double f33_38 = -f33 * m_A164; + m_A165 += m_A95 * f33_38; + m_A166 += m_A96 * f33_38; + m_A167 += m_A97 * f33_38; + m_A168 += m_A98 * f33_38; + m_A169 += m_A99 * f33_38; + m_A170 += m_A100 * f33_38; + m_A171 += m_A101 * f33_38; + m_A172 += m_A102 * f33_38; + m_A173 += m_A103 * f33_38; + m_A174 += m_A104 * f33_38; + m_A175 += m_A105 * f33_38; + RHS38 += f33_38 * RHS33; + const double f33_39 = -f33 * m_A178; + m_A179 += m_A95 * f33_39; + m_A180 += m_A96 * f33_39; + m_A181 += m_A97 * f33_39; + m_A182 += m_A98 * f33_39; + m_A183 += m_A99 * f33_39; + m_A184 += m_A100 * f33_39; + m_A185 += m_A101 * f33_39; + m_A186 += m_A102 * f33_39; + m_A187 += m_A103 * f33_39; + m_A188 += m_A104 * f33_39; + m_A189 += m_A105 * f33_39; + RHS39 += f33_39 * RHS33; + const double f33_40 = -f33 * m_A192; + m_A193 += m_A95 * f33_40; + m_A194 += m_A96 * f33_40; + m_A195 += m_A97 * f33_40; + m_A196 += m_A98 * f33_40; + m_A197 += m_A99 * f33_40; + m_A198 += m_A100 * f33_40; + m_A199 += m_A101 * f33_40; + m_A200 += m_A102 * f33_40; + m_A201 += m_A103 * f33_40; + m_A202 += m_A104 * f33_40; + m_A203 += m_A105 * f33_40; + RHS40 += f33_40 * RHS33; + const double f33_41 = -f33 * m_A206; + m_A207 += m_A95 * f33_41; + m_A208 += m_A96 * f33_41; + m_A209 += m_A97 * f33_41; + m_A210 += m_A98 * f33_41; + m_A211 += m_A99 * f33_41; + m_A212 += m_A100 * f33_41; + m_A213 += m_A101 * f33_41; + m_A214 += m_A102 * f33_41; + m_A215 += m_A103 * f33_41; + m_A216 += m_A104 * f33_41; + m_A217 += m_A105 * f33_41; + RHS41 += f33_41 * RHS33; + const double f33_42 = -f33 * m_A220; + m_A221 += m_A95 * f33_42; + m_A222 += m_A96 * f33_42; + m_A223 += m_A97 * f33_42; + m_A224 += m_A98 * f33_42; + m_A225 += m_A99 * f33_42; + m_A226 += m_A100 * f33_42; + m_A227 += m_A101 * f33_42; + m_A228 += m_A102 * f33_42; + m_A229 += m_A103 * f33_42; + m_A230 += m_A104 * f33_42; + m_A231 += m_A105 * f33_42; + RHS42 += f33_42 * RHS33; + const double f33_43 = -f33 * m_A234; + m_A235 += m_A95 * f33_43; + m_A236 += m_A96 * f33_43; + m_A237 += m_A97 * f33_43; + m_A238 += m_A98 * f33_43; + m_A239 += m_A99 * f33_43; + m_A240 += m_A100 * f33_43; + m_A241 += m_A101 * f33_43; + m_A242 += m_A102 * f33_43; + m_A243 += m_A103 * f33_43; + m_A244 += m_A104 * f33_43; + m_A245 += m_A105 * f33_43; + RHS43 += f33_43 * RHS33; + const double f33_44 = -f33 * m_A252; + m_A253 += m_A95 * f33_44; + m_A254 += m_A96 * f33_44; + m_A255 += m_A97 * f33_44; + m_A256 += m_A98 * f33_44; + m_A257 += m_A99 * f33_44; + m_A258 += m_A100 * f33_44; + m_A259 += m_A101 * f33_44; + m_A260 += m_A102 * f33_44; + m_A261 += m_A103 * f33_44; + m_A262 += m_A104 * f33_44; + m_A263 += m_A105 * f33_44; + RHS44 += f33_44 * RHS33; + const double f34 = 1.0 / m_A109; + const double f34_35 = -f34 * m_A123; + m_A124 += m_A110 * f34_35; + m_A125 += m_A111 * f34_35; + m_A126 += m_A112 * f34_35; + m_A127 += m_A113 * f34_35; + m_A128 += m_A114 * f34_35; + m_A129 += m_A115 * f34_35; + m_A130 += m_A116 * f34_35; + m_A131 += m_A117 * f34_35; + m_A132 += m_A118 * f34_35; + m_A133 += m_A119 * f34_35; + RHS35 += f34_35 * RHS34; + const double f34_36 = -f34 * m_A137; + m_A138 += m_A110 * f34_36; + m_A139 += m_A111 * f34_36; + m_A140 += m_A112 * f34_36; + m_A141 += m_A113 * f34_36; + m_A142 += m_A114 * f34_36; + m_A143 += m_A115 * f34_36; + m_A144 += m_A116 * f34_36; + m_A145 += m_A117 * f34_36; + m_A146 += m_A118 * f34_36; + m_A147 += m_A119 * f34_36; + RHS36 += f34_36 * RHS34; + const double f34_37 = -f34 * m_A151; + m_A152 += m_A110 * f34_37; + m_A153 += m_A111 * f34_37; + m_A154 += m_A112 * f34_37; + m_A155 += m_A113 * f34_37; + m_A156 += m_A114 * f34_37; + m_A157 += m_A115 * f34_37; + m_A158 += m_A116 * f34_37; + m_A159 += m_A117 * f34_37; + m_A160 += m_A118 * f34_37; + m_A161 += m_A119 * f34_37; + RHS37 += f34_37 * RHS34; + const double f34_38 = -f34 * m_A165; + m_A166 += m_A110 * f34_38; + m_A167 += m_A111 * f34_38; + m_A168 += m_A112 * f34_38; + m_A169 += m_A113 * f34_38; + m_A170 += m_A114 * f34_38; + m_A171 += m_A115 * f34_38; + m_A172 += m_A116 * f34_38; + m_A173 += m_A117 * f34_38; + m_A174 += m_A118 * f34_38; + m_A175 += m_A119 * f34_38; + RHS38 += f34_38 * RHS34; + const double f34_39 = -f34 * m_A179; + m_A180 += m_A110 * f34_39; + m_A181 += m_A111 * f34_39; + m_A182 += m_A112 * f34_39; + m_A183 += m_A113 * f34_39; + m_A184 += m_A114 * f34_39; + m_A185 += m_A115 * f34_39; + m_A186 += m_A116 * f34_39; + m_A187 += m_A117 * f34_39; + m_A188 += m_A118 * f34_39; + m_A189 += m_A119 * f34_39; + RHS39 += f34_39 * RHS34; + const double f34_40 = -f34 * m_A193; + m_A194 += m_A110 * f34_40; + m_A195 += m_A111 * f34_40; + m_A196 += m_A112 * f34_40; + m_A197 += m_A113 * f34_40; + m_A198 += m_A114 * f34_40; + m_A199 += m_A115 * f34_40; + m_A200 += m_A116 * f34_40; + m_A201 += m_A117 * f34_40; + m_A202 += m_A118 * f34_40; + m_A203 += m_A119 * f34_40; + RHS40 += f34_40 * RHS34; + const double f34_41 = -f34 * m_A207; + m_A208 += m_A110 * f34_41; + m_A209 += m_A111 * f34_41; + m_A210 += m_A112 * f34_41; + m_A211 += m_A113 * f34_41; + m_A212 += m_A114 * f34_41; + m_A213 += m_A115 * f34_41; + m_A214 += m_A116 * f34_41; + m_A215 += m_A117 * f34_41; + m_A216 += m_A118 * f34_41; + m_A217 += m_A119 * f34_41; + RHS41 += f34_41 * RHS34; + const double f34_42 = -f34 * m_A221; + m_A222 += m_A110 * f34_42; + m_A223 += m_A111 * f34_42; + m_A224 += m_A112 * f34_42; + m_A225 += m_A113 * f34_42; + m_A226 += m_A114 * f34_42; + m_A227 += m_A115 * f34_42; + m_A228 += m_A116 * f34_42; + m_A229 += m_A117 * f34_42; + m_A230 += m_A118 * f34_42; + m_A231 += m_A119 * f34_42; + RHS42 += f34_42 * RHS34; + const double f34_43 = -f34 * m_A235; + m_A236 += m_A110 * f34_43; + m_A237 += m_A111 * f34_43; + m_A238 += m_A112 * f34_43; + m_A239 += m_A113 * f34_43; + m_A240 += m_A114 * f34_43; + m_A241 += m_A115 * f34_43; + m_A242 += m_A116 * f34_43; + m_A243 += m_A117 * f34_43; + m_A244 += m_A118 * f34_43; + m_A245 += m_A119 * f34_43; + RHS43 += f34_43 * RHS34; + const double f34_44 = -f34 * m_A253; + m_A254 += m_A110 * f34_44; + m_A255 += m_A111 * f34_44; + m_A256 += m_A112 * f34_44; + m_A257 += m_A113 * f34_44; + m_A258 += m_A114 * f34_44; + m_A259 += m_A115 * f34_44; + m_A260 += m_A116 * f34_44; + m_A261 += m_A117 * f34_44; + m_A262 += m_A118 * f34_44; + m_A263 += m_A119 * f34_44; + RHS44 += f34_44 * RHS34; + const double f35 = 1.0 / m_A124; + const double f35_36 = -f35 * m_A138; + m_A139 += m_A125 * f35_36; + m_A140 += m_A126 * f35_36; + m_A141 += m_A127 * f35_36; + m_A142 += m_A128 * f35_36; + m_A143 += m_A129 * f35_36; + m_A144 += m_A130 * f35_36; + m_A145 += m_A131 * f35_36; + m_A146 += m_A132 * f35_36; + m_A147 += m_A133 * f35_36; + RHS36 += f35_36 * RHS35; + const double f35_37 = -f35 * m_A152; + m_A153 += m_A125 * f35_37; + m_A154 += m_A126 * f35_37; + m_A155 += m_A127 * f35_37; + m_A156 += m_A128 * f35_37; + m_A157 += m_A129 * f35_37; + m_A158 += m_A130 * f35_37; + m_A159 += m_A131 * f35_37; + m_A160 += m_A132 * f35_37; + m_A161 += m_A133 * f35_37; + RHS37 += f35_37 * RHS35; + const double f35_38 = -f35 * m_A166; + m_A167 += m_A125 * f35_38; + m_A168 += m_A126 * f35_38; + m_A169 += m_A127 * f35_38; + m_A170 += m_A128 * f35_38; + m_A171 += m_A129 * f35_38; + m_A172 += m_A130 * f35_38; + m_A173 += m_A131 * f35_38; + m_A174 += m_A132 * f35_38; + m_A175 += m_A133 * f35_38; + RHS38 += f35_38 * RHS35; + const double f35_39 = -f35 * m_A180; + m_A181 += m_A125 * f35_39; + m_A182 += m_A126 * f35_39; + m_A183 += m_A127 * f35_39; + m_A184 += m_A128 * f35_39; + m_A185 += m_A129 * f35_39; + m_A186 += m_A130 * f35_39; + m_A187 += m_A131 * f35_39; + m_A188 += m_A132 * f35_39; + m_A189 += m_A133 * f35_39; + RHS39 += f35_39 * RHS35; + const double f35_40 = -f35 * m_A194; + m_A195 += m_A125 * f35_40; + m_A196 += m_A126 * f35_40; + m_A197 += m_A127 * f35_40; + m_A198 += m_A128 * f35_40; + m_A199 += m_A129 * f35_40; + m_A200 += m_A130 * f35_40; + m_A201 += m_A131 * f35_40; + m_A202 += m_A132 * f35_40; + m_A203 += m_A133 * f35_40; + RHS40 += f35_40 * RHS35; + const double f35_41 = -f35 * m_A208; + m_A209 += m_A125 * f35_41; + m_A210 += m_A126 * f35_41; + m_A211 += m_A127 * f35_41; + m_A212 += m_A128 * f35_41; + m_A213 += m_A129 * f35_41; + m_A214 += m_A130 * f35_41; + m_A215 += m_A131 * f35_41; + m_A216 += m_A132 * f35_41; + m_A217 += m_A133 * f35_41; + RHS41 += f35_41 * RHS35; + const double f35_42 = -f35 * m_A222; + m_A223 += m_A125 * f35_42; + m_A224 += m_A126 * f35_42; + m_A225 += m_A127 * f35_42; + m_A226 += m_A128 * f35_42; + m_A227 += m_A129 * f35_42; + m_A228 += m_A130 * f35_42; + m_A229 += m_A131 * f35_42; + m_A230 += m_A132 * f35_42; + m_A231 += m_A133 * f35_42; + RHS42 += f35_42 * RHS35; + const double f35_43 = -f35 * m_A236; + m_A237 += m_A125 * f35_43; + m_A238 += m_A126 * f35_43; + m_A239 += m_A127 * f35_43; + m_A240 += m_A128 * f35_43; + m_A241 += m_A129 * f35_43; + m_A242 += m_A130 * f35_43; + m_A243 += m_A131 * f35_43; + m_A244 += m_A132 * f35_43; + m_A245 += m_A133 * f35_43; + RHS43 += f35_43 * RHS35; + const double f35_44 = -f35 * m_A254; + m_A255 += m_A125 * f35_44; + m_A256 += m_A126 * f35_44; + m_A257 += m_A127 * f35_44; + m_A258 += m_A128 * f35_44; + m_A259 += m_A129 * f35_44; + m_A260 += m_A130 * f35_44; + m_A261 += m_A131 * f35_44; + m_A262 += m_A132 * f35_44; + m_A263 += m_A133 * f35_44; + RHS44 += f35_44 * RHS35; + const double f36 = 1.0 / m_A139; + const double f36_37 = -f36 * m_A153; + m_A154 += m_A140 * f36_37; + m_A155 += m_A141 * f36_37; + m_A156 += m_A142 * f36_37; + m_A157 += m_A143 * f36_37; + m_A158 += m_A144 * f36_37; + m_A159 += m_A145 * f36_37; + m_A160 += m_A146 * f36_37; + m_A161 += m_A147 * f36_37; + RHS37 += f36_37 * RHS36; + const double f36_38 = -f36 * m_A167; + m_A168 += m_A140 * f36_38; + m_A169 += m_A141 * f36_38; + m_A170 += m_A142 * f36_38; + m_A171 += m_A143 * f36_38; + m_A172 += m_A144 * f36_38; + m_A173 += m_A145 * f36_38; + m_A174 += m_A146 * f36_38; + m_A175 += m_A147 * f36_38; + RHS38 += f36_38 * RHS36; + const double f36_39 = -f36 * m_A181; + m_A182 += m_A140 * f36_39; + m_A183 += m_A141 * f36_39; + m_A184 += m_A142 * f36_39; + m_A185 += m_A143 * f36_39; + m_A186 += m_A144 * f36_39; + m_A187 += m_A145 * f36_39; + m_A188 += m_A146 * f36_39; + m_A189 += m_A147 * f36_39; + RHS39 += f36_39 * RHS36; + const double f36_40 = -f36 * m_A195; + m_A196 += m_A140 * f36_40; + m_A197 += m_A141 * f36_40; + m_A198 += m_A142 * f36_40; + m_A199 += m_A143 * f36_40; + m_A200 += m_A144 * f36_40; + m_A201 += m_A145 * f36_40; + m_A202 += m_A146 * f36_40; + m_A203 += m_A147 * f36_40; + RHS40 += f36_40 * RHS36; + const double f36_41 = -f36 * m_A209; + m_A210 += m_A140 * f36_41; + m_A211 += m_A141 * f36_41; + m_A212 += m_A142 * f36_41; + m_A213 += m_A143 * f36_41; + m_A214 += m_A144 * f36_41; + m_A215 += m_A145 * f36_41; + m_A216 += m_A146 * f36_41; + m_A217 += m_A147 * f36_41; + RHS41 += f36_41 * RHS36; + const double f36_42 = -f36 * m_A223; + m_A224 += m_A140 * f36_42; + m_A225 += m_A141 * f36_42; + m_A226 += m_A142 * f36_42; + m_A227 += m_A143 * f36_42; + m_A228 += m_A144 * f36_42; + m_A229 += m_A145 * f36_42; + m_A230 += m_A146 * f36_42; + m_A231 += m_A147 * f36_42; + RHS42 += f36_42 * RHS36; + const double f36_43 = -f36 * m_A237; + m_A238 += m_A140 * f36_43; + m_A239 += m_A141 * f36_43; + m_A240 += m_A142 * f36_43; + m_A241 += m_A143 * f36_43; + m_A242 += m_A144 * f36_43; + m_A243 += m_A145 * f36_43; + m_A244 += m_A146 * f36_43; + m_A245 += m_A147 * f36_43; + RHS43 += f36_43 * RHS36; + const double f36_44 = -f36 * m_A255; + m_A256 += m_A140 * f36_44; + m_A257 += m_A141 * f36_44; + m_A258 += m_A142 * f36_44; + m_A259 += m_A143 * f36_44; + m_A260 += m_A144 * f36_44; + m_A261 += m_A145 * f36_44; + m_A262 += m_A146 * f36_44; + m_A263 += m_A147 * f36_44; + RHS44 += f36_44 * RHS36; + const double f37 = 1.0 / m_A154; + const double f37_38 = -f37 * m_A168; + m_A169 += m_A155 * f37_38; + m_A170 += m_A156 * f37_38; + m_A171 += m_A157 * f37_38; + m_A172 += m_A158 * f37_38; + m_A173 += m_A159 * f37_38; + m_A174 += m_A160 * f37_38; + m_A175 += m_A161 * f37_38; + RHS38 += f37_38 * RHS37; + const double f37_39 = -f37 * m_A182; + m_A183 += m_A155 * f37_39; + m_A184 += m_A156 * f37_39; + m_A185 += m_A157 * f37_39; + m_A186 += m_A158 * f37_39; + m_A187 += m_A159 * f37_39; + m_A188 += m_A160 * f37_39; + m_A189 += m_A161 * f37_39; + RHS39 += f37_39 * RHS37; + const double f37_40 = -f37 * m_A196; + m_A197 += m_A155 * f37_40; + m_A198 += m_A156 * f37_40; + m_A199 += m_A157 * f37_40; + m_A200 += m_A158 * f37_40; + m_A201 += m_A159 * f37_40; + m_A202 += m_A160 * f37_40; + m_A203 += m_A161 * f37_40; + RHS40 += f37_40 * RHS37; + const double f37_41 = -f37 * m_A210; + m_A211 += m_A155 * f37_41; + m_A212 += m_A156 * f37_41; + m_A213 += m_A157 * f37_41; + m_A214 += m_A158 * f37_41; + m_A215 += m_A159 * f37_41; + m_A216 += m_A160 * f37_41; + m_A217 += m_A161 * f37_41; + RHS41 += f37_41 * RHS37; + const double f37_42 = -f37 * m_A224; + m_A225 += m_A155 * f37_42; + m_A226 += m_A156 * f37_42; + m_A227 += m_A157 * f37_42; + m_A228 += m_A158 * f37_42; + m_A229 += m_A159 * f37_42; + m_A230 += m_A160 * f37_42; + m_A231 += m_A161 * f37_42; + RHS42 += f37_42 * RHS37; + const double f37_43 = -f37 * m_A238; + m_A239 += m_A155 * f37_43; + m_A240 += m_A156 * f37_43; + m_A241 += m_A157 * f37_43; + m_A242 += m_A158 * f37_43; + m_A243 += m_A159 * f37_43; + m_A244 += m_A160 * f37_43; + m_A245 += m_A161 * f37_43; + RHS43 += f37_43 * RHS37; + const double f37_44 = -f37 * m_A256; + m_A257 += m_A155 * f37_44; + m_A258 += m_A156 * f37_44; + m_A259 += m_A157 * f37_44; + m_A260 += m_A158 * f37_44; + m_A261 += m_A159 * f37_44; + m_A262 += m_A160 * f37_44; + m_A263 += m_A161 * f37_44; + RHS44 += f37_44 * RHS37; + const double f38 = 1.0 / m_A169; + const double f38_39 = -f38 * m_A183; + m_A184 += m_A170 * f38_39; + m_A185 += m_A171 * f38_39; + m_A186 += m_A172 * f38_39; + m_A187 += m_A173 * f38_39; + m_A188 += m_A174 * f38_39; + m_A189 += m_A175 * f38_39; + RHS39 += f38_39 * RHS38; + const double f38_40 = -f38 * m_A197; + m_A198 += m_A170 * f38_40; + m_A199 += m_A171 * f38_40; + m_A200 += m_A172 * f38_40; + m_A201 += m_A173 * f38_40; + m_A202 += m_A174 * f38_40; + m_A203 += m_A175 * f38_40; + RHS40 += f38_40 * RHS38; + const double f38_41 = -f38 * m_A211; + m_A212 += m_A170 * f38_41; + m_A213 += m_A171 * f38_41; + m_A214 += m_A172 * f38_41; + m_A215 += m_A173 * f38_41; + m_A216 += m_A174 * f38_41; + m_A217 += m_A175 * f38_41; + RHS41 += f38_41 * RHS38; + const double f38_42 = -f38 * m_A225; + m_A226 += m_A170 * f38_42; + m_A227 += m_A171 * f38_42; + m_A228 += m_A172 * f38_42; + m_A229 += m_A173 * f38_42; + m_A230 += m_A174 * f38_42; + m_A231 += m_A175 * f38_42; + RHS42 += f38_42 * RHS38; + const double f38_43 = -f38 * m_A239; + m_A240 += m_A170 * f38_43; + m_A241 += m_A171 * f38_43; + m_A242 += m_A172 * f38_43; + m_A243 += m_A173 * f38_43; + m_A244 += m_A174 * f38_43; + m_A245 += m_A175 * f38_43; + RHS43 += f38_43 * RHS38; + const double f38_44 = -f38 * m_A257; + m_A258 += m_A170 * f38_44; + m_A259 += m_A171 * f38_44; + m_A260 += m_A172 * f38_44; + m_A261 += m_A173 * f38_44; + m_A262 += m_A174 * f38_44; + m_A263 += m_A175 * f38_44; + RHS44 += f38_44 * RHS38; + const double f39 = 1.0 / m_A184; + const double f39_40 = -f39 * m_A198; + m_A199 += m_A185 * f39_40; + m_A200 += m_A186 * f39_40; + m_A201 += m_A187 * f39_40; + m_A202 += m_A188 * f39_40; + m_A203 += m_A189 * f39_40; + RHS40 += f39_40 * RHS39; + const double f39_41 = -f39 * m_A212; + m_A213 += m_A185 * f39_41; + m_A214 += m_A186 * f39_41; + m_A215 += m_A187 * f39_41; + m_A216 += m_A188 * f39_41; + m_A217 += m_A189 * f39_41; + RHS41 += f39_41 * RHS39; + const double f39_42 = -f39 * m_A226; + m_A227 += m_A185 * f39_42; + m_A228 += m_A186 * f39_42; + m_A229 += m_A187 * f39_42; + m_A230 += m_A188 * f39_42; + m_A231 += m_A189 * f39_42; + RHS42 += f39_42 * RHS39; + const double f39_43 = -f39 * m_A240; + m_A241 += m_A185 * f39_43; + m_A242 += m_A186 * f39_43; + m_A243 += m_A187 * f39_43; + m_A244 += m_A188 * f39_43; + m_A245 += m_A189 * f39_43; + RHS43 += f39_43 * RHS39; + const double f39_44 = -f39 * m_A258; + m_A259 += m_A185 * f39_44; + m_A260 += m_A186 * f39_44; + m_A261 += m_A187 * f39_44; + m_A262 += m_A188 * f39_44; + m_A263 += m_A189 * f39_44; + RHS44 += f39_44 * RHS39; + const double f40 = 1.0 / m_A199; + const double f40_41 = -f40 * m_A213; + m_A214 += m_A200 * f40_41; + m_A215 += m_A201 * f40_41; + m_A216 += m_A202 * f40_41; + m_A217 += m_A203 * f40_41; + RHS41 += f40_41 * RHS40; + const double f40_42 = -f40 * m_A227; + m_A228 += m_A200 * f40_42; + m_A229 += m_A201 * f40_42; + m_A230 += m_A202 * f40_42; + m_A231 += m_A203 * f40_42; + RHS42 += f40_42 * RHS40; + const double f40_43 = -f40 * m_A241; + m_A242 += m_A200 * f40_43; + m_A243 += m_A201 * f40_43; + m_A244 += m_A202 * f40_43; + m_A245 += m_A203 * f40_43; + RHS43 += f40_43 * RHS40; + const double f40_44 = -f40 * m_A259; + m_A260 += m_A200 * f40_44; + m_A261 += m_A201 * f40_44; + m_A262 += m_A202 * f40_44; + m_A263 += m_A203 * f40_44; + RHS44 += f40_44 * RHS40; + const double f41 = 1.0 / m_A214; + const double f41_42 = -f41 * m_A228; + m_A229 += m_A215 * f41_42; + m_A230 += m_A216 * f41_42; + m_A231 += m_A217 * f41_42; + RHS42 += f41_42 * RHS41; + const double f41_43 = -f41 * m_A242; + m_A243 += m_A215 * f41_43; + m_A244 += m_A216 * f41_43; + m_A245 += m_A217 * f41_43; + RHS43 += f41_43 * RHS41; + const double f41_44 = -f41 * m_A260; + m_A261 += m_A215 * f41_44; + m_A262 += m_A216 * f41_44; + m_A263 += m_A217 * f41_44; + RHS44 += f41_44 * RHS41; + const double f42 = 1.0 / m_A229; + const double f42_43 = -f42 * m_A243; + m_A244 += m_A230 * f42_43; + m_A245 += m_A231 * f42_43; + RHS43 += f42_43 * RHS42; + const double f42_44 = -f42 * m_A261; + m_A262 += m_A230 * f42_44; + m_A263 += m_A231 * f42_44; + RHS44 += f42_44 * RHS42; + const double f43 = 1.0 / m_A244; + const double f43_44 = -f43 * m_A262; + m_A263 += m_A245 * f43_44; + RHS44 += f43_44 * RHS43; + const double f44 = 1.0 / m_A263; + const double f44_46 = -f44 * m_A275; + m_A277 += m_A264 * f44_46; + RHS46 += f44_46 * RHS44; + const double f45 = 1.0 / m_A270; + const double f45_46 = -f45 * m_A276; + m_A277 += m_A271 * f45_46; + m_A278 += m_A272 * f45_46; + RHS46 += f45_46 * RHS45; + const double f45_47 = -f45 * m_A282; + m_A283 += m_A271 * f45_47; + m_A284 += m_A272 * f45_47; + RHS47 += f45_47 * RHS45; + const double f46 = 1.0 / m_A277; + const double f46_47 = -f46 * m_A283; + m_A284 += m_A278 * f46_47; + RHS47 += f46_47 * RHS46; + V[47] = RHS47 / m_A284; + double tmp46 = 0.0; + tmp46 += m_A278 * V[47]; + V[46] = (RHS46 - tmp46) / m_A277; + double tmp45 = 0.0; + tmp45 += m_A271 * V[46]; + tmp45 += m_A272 * V[47]; + V[45] = (RHS45 - tmp45) / m_A270; + double tmp44 = 0.0; + tmp44 += m_A264 * V[46]; + V[44] = (RHS44 - tmp44) / m_A263; + double tmp43 = 0.0; + tmp43 += m_A245 * V[44]; + V[43] = (RHS43 - tmp43) / m_A244; + double tmp42 = 0.0; + tmp42 += m_A230 * V[43]; + tmp42 += m_A231 * V[44]; + V[42] = (RHS42 - tmp42) / m_A229; + double tmp41 = 0.0; + tmp41 += m_A215 * V[42]; + tmp41 += m_A216 * V[43]; + tmp41 += m_A217 * V[44]; + V[41] = (RHS41 - tmp41) / m_A214; + double tmp40 = 0.0; + tmp40 += m_A200 * V[41]; + tmp40 += m_A201 * V[42]; + tmp40 += m_A202 * V[43]; + tmp40 += m_A203 * V[44]; + V[40] = (RHS40 - tmp40) / m_A199; + double tmp39 = 0.0; + tmp39 += m_A185 * V[40]; + tmp39 += m_A186 * V[41]; + tmp39 += m_A187 * V[42]; + tmp39 += m_A188 * V[43]; + tmp39 += m_A189 * V[44]; + V[39] = (RHS39 - tmp39) / m_A184; + double tmp38 = 0.0; + tmp38 += m_A170 * V[39]; + tmp38 += m_A171 * V[40]; + tmp38 += m_A172 * V[41]; + tmp38 += m_A173 * V[42]; + tmp38 += m_A174 * V[43]; + tmp38 += m_A175 * V[44]; + V[38] = (RHS38 - tmp38) / m_A169; + double tmp37 = 0.0; + tmp37 += m_A155 * V[38]; + tmp37 += m_A156 * V[39]; + tmp37 += m_A157 * V[40]; + tmp37 += m_A158 * V[41]; + tmp37 += m_A159 * V[42]; + tmp37 += m_A160 * V[43]; + tmp37 += m_A161 * V[44]; + V[37] = (RHS37 - tmp37) / m_A154; + double tmp36 = 0.0; + tmp36 += m_A140 * V[37]; + tmp36 += m_A141 * V[38]; + tmp36 += m_A142 * V[39]; + tmp36 += m_A143 * V[40]; + tmp36 += m_A144 * V[41]; + tmp36 += m_A145 * V[42]; + tmp36 += m_A146 * V[43]; + tmp36 += m_A147 * V[44]; + V[36] = (RHS36 - tmp36) / m_A139; + double tmp35 = 0.0; + tmp35 += m_A125 * V[36]; + tmp35 += m_A126 * V[37]; + tmp35 += m_A127 * V[38]; + tmp35 += m_A128 * V[39]; + tmp35 += m_A129 * V[40]; + tmp35 += m_A130 * V[41]; + tmp35 += m_A131 * V[42]; + tmp35 += m_A132 * V[43]; + tmp35 += m_A133 * V[44]; + V[35] = (RHS35 - tmp35) / m_A124; + double tmp34 = 0.0; + tmp34 += m_A110 * V[35]; + tmp34 += m_A111 * V[36]; + tmp34 += m_A112 * V[37]; + tmp34 += m_A113 * V[38]; + tmp34 += m_A114 * V[39]; + tmp34 += m_A115 * V[40]; + tmp34 += m_A116 * V[41]; + tmp34 += m_A117 * V[42]; + tmp34 += m_A118 * V[43]; + tmp34 += m_A119 * V[44]; + V[34] = (RHS34 - tmp34) / m_A109; + double tmp33 = 0.0; + tmp33 += m_A95 * V[34]; + tmp33 += m_A96 * V[35]; + tmp33 += m_A97 * V[36]; + tmp33 += m_A98 * V[37]; + tmp33 += m_A99 * V[38]; + tmp33 += m_A100 * V[39]; + tmp33 += m_A101 * V[40]; + tmp33 += m_A102 * V[41]; + tmp33 += m_A103 * V[42]; + tmp33 += m_A104 * V[43]; + tmp33 += m_A105 * V[44]; + V[33] = (RHS33 - tmp33) / m_A94; + double tmp32 = 0.0; + tmp32 += m_A90 * V[45]; + tmp32 += m_A91 * V[47]; + V[32] = (RHS32 - tmp32) / m_A89; + double tmp31 = 0.0; + tmp31 += m_A85 * V[45]; + tmp31 += m_A86 * V[46]; + V[31] = (RHS31 - tmp31) / m_A84; + double tmp30 = 0.0; + tmp30 += m_A83 * V[44]; + V[30] = (RHS30 - tmp30) / m_A82; + double tmp29 = 0.0; + tmp29 += m_A76 * V[44]; + V[29] = (RHS29 - tmp29) / m_A75; + double tmp28 = 0.0; + tmp28 += m_A73 * V[44]; + V[28] = (RHS28 - tmp28) / m_A72; + double tmp27 = 0.0; + tmp27 += m_A70 * V[44]; + V[27] = (RHS27 - tmp27) / m_A69; + double tmp26 = 0.0; + tmp26 += m_A56 * V[33]; + tmp26 += m_A57 * V[34]; + tmp26 += m_A58 * V[35]; + tmp26 += m_A59 * V[36]; + tmp26 += m_A60 * V[37]; + tmp26 += m_A61 * V[38]; + tmp26 += m_A62 * V[39]; + tmp26 += m_A63 * V[40]; + tmp26 += m_A64 * V[41]; + tmp26 += m_A65 * V[42]; + tmp26 += m_A66 * V[43]; + tmp26 += m_A67 * V[44]; + V[26] = (RHS26 - tmp26) / m_A55; + double tmp25 = 0.0; + tmp25 += m_A54 * V[46]; + V[25] = (RHS25 - tmp25) / m_A53; + double tmp24 = 0.0; + tmp24 += m_A51 * V[45]; + tmp24 += m_A52 * V[47]; + V[24] = (RHS24 - tmp24) / m_A50; + double tmp23 = 0.0; + tmp23 += m_A48 * V[32]; + tmp23 += m_A49 * V[45]; + V[23] = (RHS23 - tmp23) / m_A47; + double tmp22 = 0.0; + tmp22 += m_A46 * V[24]; + V[22] = (RHS22 - tmp22) / m_A45; + double tmp21 = 0.0; + tmp21 += m_A44 * V[47]; + V[21] = (RHS21 - tmp21) / m_A43; + double tmp20 = 0.0; + tmp20 += m_A42 * V[23]; + V[20] = (RHS20 - tmp20) / m_A41; + double tmp19 = 0.0; + tmp19 += m_A40 * V[30]; + V[19] = (RHS19 - tmp19) / m_A39; + double tmp18 = 0.0; + tmp18 += m_A38 * V[30]; + V[18] = (RHS18 - tmp18) / m_A37; + double tmp17 = 0.0; + tmp17 += m_A36 * V[30]; + V[17] = (RHS17 - tmp17) / m_A35; + double tmp16 = 0.0; + tmp16 += m_A34 * V[30]; + V[16] = (RHS16 - tmp16) / m_A33; + double tmp15 = 0.0; + tmp15 += m_A32 * V[30]; + V[15] = (RHS15 - tmp15) / m_A31; + double tmp14 = 0.0; + tmp14 += m_A30 * V[29]; + V[14] = (RHS14 - tmp14) / m_A29; + double tmp13 = 0.0; + tmp13 += m_A28 * V[28]; + V[13] = (RHS13 - tmp13) / m_A27; + double tmp12 = 0.0; + tmp12 += m_A26 * V[27]; + V[12] = (RHS12 - tmp12) / m_A25; double tmp11 = 0.0; - tmp11 += m_A30 * V[12]; - V[11] = (RHS11 - tmp11) / m_A29; + tmp11 += m_A23 * V[26]; + tmp11 += m_A24 * V[33]; + V[11] = (RHS11 - tmp11) / m_A22; double tmp10 = 0.0; - tmp10 += m_A25 * V[12]; - V[10] = (RHS10 - tmp10) / m_A24; + tmp10 += m_A21 * V[33]; + V[10] = (RHS10 - tmp10) / m_A20; double tmp9 = 0.0; - tmp9 += m_A19 * V[11]; + tmp9 += m_A19 * V[35]; V[9] = (RHS9 - tmp9) / m_A18; double tmp8 = 0.0; - tmp8 += m_A17 * V[12]; + tmp8 += m_A17 * V[37]; V[8] = (RHS8 - tmp8) / m_A16; double tmp7 = 0.0; - tmp7 += m_A15 * V[12]; + tmp7 += m_A15 * V[39]; V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A13 * V[11]; + tmp6 += m_A13 * V[41]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[10]; + tmp5 += m_A11 * V[43]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[12]; + tmp4 += m_A9 * V[42]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[11]; + tmp3 += m_A7 * V[40]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[10]; + tmp2 += m_A5 * V[38]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[10]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[10]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// pongf -static void nl_gcr_e51b463cd890ef6d_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 -= go[4] * *cnV[4]; - m_A6 += gt[5]; - m_A6 += gt[6]; - m_A6 += gt[7]; - m_A5 += go[5]; - m_A4 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - RHS2 += Idr[7]; - RHS2 -= go[7] * *cnV[7]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[36]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// sundance -static void nl_gcr_e5b7711fac1ea80c_8_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[0] * *cnV[0]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A1 += gt[3]; - m_A1 += gt[4]; - m_A1 += gt[5]; - m_A1 += gt[6]; - m_A1 += gt[7]; - m_A1 += gt[8]; - m_A1 += gt[9]; - m_A2 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A4 += gt[12]; - m_A4 += gt[13]; - m_A3 += go[10]; - double RHS2 = Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[11] * *cnV[11]; - RHS2 -= go[12] * *cnV[12]; - RHS2 -= go[13] * *cnV[13]; - m_A7 += gt[14]; - m_A7 += gt[15]; - m_A7 += gt[16]; - m_A5 += go[14]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 -= go[15] * *cnV[15]; - RHS3 -= go[16] * *cnV[16]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A3; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A1; - const double f1_3 = -f1 * m_A5; - m_A6 += m_A2 * f1_3; - RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A6; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A7; - double tmp2 = 0.0; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A2 * V[2]; - V[1] = (RHS1 - tmp1) / m_A1; - double tmp0 = 0.0; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// ripoff -static void nl_gcr_e60314070a75e121_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; - m_A0 += gt[6]; - m_A2 += go[0]; - m_A2 += go[1]; - m_A1 += go[2]; - m_A1 += go[3]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; - RHS0 += Idr[6]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - RHS0 -= go[6] * *cnV[6]; - m_A3 += gt[7]; - m_A3 += gt[8]; - m_A4 += go[7]; - double RHS1 = Idr[7]; - RHS1 += Idr[8]; - RHS1 -= go[8] * *cnV[8]; - m_A6 += gt[9]; - m_A6 += gt[10]; - m_A6 += gt[11]; - m_A6 += gt[12]; - m_A7 += go[9]; - m_A5 += go[10]; - m_A5 += go[11]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 -= go[12] * *cnV[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A8 += gt[15]; - m_A8 += gt[16]; - m_A8 += gt[17]; - m_A9 += go[13]; - m_A9 += go[14]; - m_A10 += go[15]; - m_A10 += go[16]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 -= go[17] * *cnV[17]; - m_A13 += gt[18]; - m_A13 += gt[19]; - m_A13 += gt[20]; - m_A13 += gt[21]; - m_A12 += go[18]; - m_A12 += go[19]; - m_A14 += go[20]; - m_A11 += go[21]; - double RHS4 = Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 += Idr[21]; - m_A19 += gt[22]; - m_A19 += gt[23]; - m_A19 += gt[24]; - m_A19 += gt[25]; - m_A19 += gt[26]; - m_A19 += gt[27]; - m_A19 += gt[28]; - m_A19 += gt[29]; - m_A18 += go[22]; - m_A17 += go[23]; - m_A17 += go[24]; - m_A16 += go[25]; - m_A15 += go[26]; - m_A15 += go[27]; - double RHS5 = Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; - RHS5 += Idr[26]; - RHS5 += Idr[27]; - RHS5 += Idr[28]; - RHS5 += Idr[29]; - RHS5 -= go[28] * *cnV[28]; - RHS5 -= go[29] * *cnV[29]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A6 += m_A1 * f0_2; - m_A7 += m_A2 * f0_2; - RHS2 += f0_2 * RHS0; - const double f0_5 = -f0 * m_A15; - m_A16 += m_A1 * f0_5; - m_A19 += m_A2 * f0_5; - RHS5 += f0_5 * RHS0; - const double f1 = 1.0 / m_A3; - const double f1_4 = -f1 * m_A11; - m_A13 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A6; - const double f2_5 = -f2 * m_A16; - m_A19 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_4 = -f3 * m_A12; - m_A13 += m_A9 * f3_4; - m_A14 += m_A10 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A17; - m_A18 += m_A9 * f3_5; - m_A19 += m_A10 * f3_5; - RHS5 += f3_5 * RHS3; - const double f4 = 1.0 / m_A13; - const double f4_5 = -f4 * m_A18; - m_A19 += m_A14 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A19; - double tmp4 = 0.0; - tmp4 += m_A14 * V[5]; - V[4] = (RHS4 - tmp4) / m_A13; - double tmp3 = 0.0; - tmp3 += m_A9 * V[4]; - tmp3 += m_A10 * V[5]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A7 * V[5]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A4 * V[4]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - tmp0 += m_A2 * V[5]; + tmp0 += m_A1 * V[34]; V[0] = (RHS0 - tmp0) / m_A0; } -// cheekyms -static void nl_gcr_e75302e17c866419_150_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// starcrus +static void nl_gcr_ef2f49641f433a74_94_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -32700,864 +65690,2815 @@ double m_A91(0.0); double m_A92(0.0); double m_A93(0.0); - double m_A94(0.0); - double m_A95(0.0); - double m_A96(0.0); - double m_A97(0.0); - double m_A98(0.0); - double m_A99(0.0); - double m_A100(0.0); - double m_A101(0.0); - double m_A102(0.0); - double m_A103(0.0); - double m_A104(0.0); - double m_A105(0.0); - double m_A106(0.0); - double m_A107(0.0); - double m_A108(0.0); - double m_A109(0.0); - double m_A110(0.0); - double m_A111(0.0); - double m_A112(0.0); - double m_A113(0.0); - double m_A114(0.0); - double m_A115(0.0); - double m_A116(0.0); - double m_A117(0.0); - double m_A118(0.0); - double m_A119(0.0); - double m_A120(0.0); - double m_A121(0.0); - double m_A122(0.0); - double m_A123(0.0); - double m_A124(0.0); - double m_A125(0.0); - double m_A126(0.0); - double m_A127(0.0); - double m_A128(0.0); - double m_A129(0.0); - double m_A130(0.0); - double m_A131(0.0); - double m_A132(0.0); - double m_A133(0.0); - double m_A134(0.0); - double m_A135(0.0); - double m_A136(0.0); - double m_A137(0.0); - double m_A138(0.0); - double m_A139(0.0); - double m_A140(0.0); - double m_A141(0.0); - double m_A142(0.0); - double m_A143(0.0); - double m_A144(0.0); - double m_A145(0.0); - double m_A146(0.0); - double m_A147(0.0); - double m_A148(0.0); - double m_A149(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[2]; m_A2 += gt[3]; - m_A2 += gt[4]; - m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - m_A4 += gt[6]; - m_A4 += gt[7]; - m_A4 += gt[8]; - m_A6 += go[6]; - m_A5 += go[7]; - double RHS2 = Idr[6]; + m_A3 += go[2]; + m_A4 += go[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + m_A5 += gt[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A6 += go[4]; + m_A7 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; RHS2 += Idr[7]; RHS2 += Idr[8]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; RHS2 -= go[8] * *cnV[8]; - m_A7 += gt[9]; - m_A7 += gt[10]; - m_A7 += gt[11]; - m_A7 += gt[12]; - m_A7 += gt[13]; - m_A10 += go[9]; - m_A9 += go[10]; - m_A8 += go[11]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A8 += gt[11]; + m_A8 += gt[12]; + m_A9 += go[9]; + m_A10 += go[10]; + m_A10 += go[11]; double RHS3 = Idr[9]; RHS3 += Idr[10]; RHS3 += Idr[11]; RHS3 += Idr[12]; - RHS3 += Idr[13]; RHS3 -= go[12] * *cnV[12]; - RHS3 -= go[13] * *cnV[13]; + m_A11 += gt[13]; m_A11 += gt[14]; m_A11 += gt[15]; m_A11 += gt[16]; + m_A13 += go[13]; m_A12 += go[14]; - double RHS4 = Idr[14]; + m_A12 += go[15]; + double RHS4 = Idr[13]; + RHS4 += Idr[14]; RHS4 += Idr[15]; RHS4 += Idr[16]; - RHS4 -= go[15] * *cnV[15]; RHS4 -= go[16] * *cnV[16]; - m_A13 += gt[17]; - m_A13 += gt[18]; - m_A13 += gt[19]; - m_A13 += gt[20]; - m_A13 += gt[21]; - m_A13 += gt[22]; - m_A13 += gt[23]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; m_A15 += go[17]; - m_A14 += go[18]; + m_A15 += go[18]; + m_A16 += go[19]; + m_A16 += go[20]; double RHS5 = Idr[17]; RHS5 += Idr[18]; RHS5 += Idr[19]; RHS5 += Idr[20]; RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 -= go[19] * *cnV[19]; - RHS5 -= go[20] * *cnV[20]; + RHS5 += Idr[22]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A18 += go[23]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A21 += go[26]; + m_A20 += go[27]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 -= go[28] * *cnV[28]; + RHS7 -= go[29] * *cnV[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A24 += go[30]; + m_A23 += go[31]; + double RHS8 = Idr[30]; + RHS8 += Idr[31]; + m_A25 += gt[32]; + m_A25 += gt[33]; + m_A25 += gt[34]; + m_A25 += gt[35]; + m_A26 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 -= go[33] * *cnV[33]; + RHS9 -= go[34] * *cnV[34]; + RHS9 -= go[35] * *cnV[35]; + m_A28 += gt[36]; + m_A28 += gt[37]; + m_A27 += go[36]; + double RHS10 = Idr[36]; + RHS10 += Idr[37]; + RHS10 -= go[37] * *cnV[37]; + m_A31 += gt[38]; + m_A31 += gt[39]; + m_A31 += gt[40]; + m_A30 += go[38]; + double RHS11 = Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 -= go[39] * *cnV[39]; + RHS11 -= go[40] * *cnV[40]; + m_A37 += gt[41]; + m_A37 += gt[42]; + m_A37 += gt[43]; + m_A37 += gt[44]; + m_A35 += go[41]; + m_A34 += go[42]; + m_A38 += go[43]; + double RHS12 = Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 -= go[44] * *cnV[44]; + m_A42 += gt[45]; + m_A42 += gt[46]; + m_A42 += gt[47]; + m_A42 += gt[48]; + m_A42 += gt[49]; + m_A42 += gt[50]; + m_A41 += go[45]; + m_A41 += go[46]; + m_A40 += go[47]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 += Idr[48]; + RHS13 += Idr[49]; + RHS13 += Idr[50]; + RHS13 -= go[48] * *cnV[48]; + RHS13 -= go[49] * *cnV[49]; + RHS13 -= go[50] * *cnV[50]; + m_A48 += gt[51]; + m_A48 += gt[52]; + m_A48 += gt[53]; + m_A48 += gt[54]; + m_A48 += gt[55]; + m_A45 += go[51]; + m_A45 += go[52]; + m_A46 += go[53]; + double RHS14 = Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 += Idr[55]; + RHS14 -= go[54] * *cnV[54]; + RHS14 -= go[55] * *cnV[55]; + m_A54 += gt[56]; + m_A54 += gt[57]; + m_A54 += gt[58]; + m_A54 += gt[59]; + m_A54 += gt[60]; + m_A55 += go[56]; + m_A51 += go[57]; + m_A52 += go[58]; + double RHS15 = Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 += Idr[59]; + RHS15 += Idr[60]; + RHS15 -= go[59] * *cnV[59]; + RHS15 -= go[60] * *cnV[60]; + m_A58 += gt[61]; + m_A58 += gt[62]; + m_A58 += gt[63]; + m_A57 += go[61]; + m_A56 += go[62]; + double RHS16 = Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[63] * *cnV[63]; + m_A63 += gt[64]; + m_A63 += gt[65]; + m_A65 += go[64]; + m_A60 += go[65]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + m_A67 += gt[66]; + m_A67 += gt[67]; + m_A67 += gt[68]; + m_A67 += gt[69]; + m_A68 += go[66]; + m_A66 += go[67]; + m_A66 += go[68]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 -= go[69] * *cnV[69]; + m_A72 += gt[70]; + m_A72 += gt[71]; + m_A72 += gt[72]; + m_A72 += gt[73]; + m_A72 += gt[74]; + m_A74 += go[70]; + m_A74 += go[71]; + m_A69 += go[72]; + double RHS19 = Idr[70]; + RHS19 += Idr[71]; + RHS19 += Idr[72]; + RHS19 += Idr[73]; + RHS19 += Idr[74]; + RHS19 -= go[73] * *cnV[73]; + RHS19 -= go[74] * *cnV[74]; + m_A80 += gt[75]; + m_A80 += gt[76]; + m_A80 += gt[77]; + m_A80 += gt[78]; + m_A77 += go[75]; + m_A76 += go[76]; + m_A75 += go[77]; + double RHS20 = Idr[75]; + RHS20 += Idr[76]; + RHS20 += Idr[77]; + RHS20 += Idr[78]; + RHS20 -= go[78] * *cnV[78]; + m_A86 += gt[79]; + m_A86 += gt[80]; + m_A86 += gt[81]; + m_A86 += gt[82]; + m_A86 += gt[83]; + m_A86 += gt[84]; + m_A84 += go[79]; + m_A83 += go[80]; + m_A82 += go[81]; + m_A82 += go[82]; + double RHS21 = Idr[79]; + RHS21 += Idr[80]; + RHS21 += Idr[81]; + RHS21 += Idr[82]; + RHS21 += Idr[83]; + RHS21 += Idr[84]; + RHS21 -= go[83] * *cnV[83]; + RHS21 -= go[84] * *cnV[84]; + m_A93 += gt[85]; + m_A93 += gt[86]; + m_A93 += gt[87]; + m_A93 += gt[88]; + m_A93 += gt[89]; + m_A89 += go[85]; + m_A91 += go[86]; + m_A91 += go[87]; + m_A88 += go[88]; + double RHS22 = Idr[85]; + RHS22 += Idr[86]; + RHS22 += Idr[87]; + RHS22 += Idr[88]; + RHS22 += Idr[89]; + RHS22 -= go[89] * *cnV[89]; + const double f0 = 1.0 / m_A0; + const double f0_15 = -f0 * m_A51; + m_A54 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_10 = -f1 * m_A27; + m_A28 += m_A3 * f1_10; + m_A29 += m_A4 * f1_10; + RHS10 += f1_10 * RHS1; + const double f1_12 = -f1 * m_A34; + m_A36 += m_A3 * f1_12; + m_A38 += m_A4 * f1_12; + RHS12 += f1_12 * RHS1; + const double f1_15 = -f1 * m_A52; + m_A53 += m_A3 * f1_15; + m_A54 += m_A4 * f1_15; + RHS15 += f1_15 * RHS1; + const double f1_20 = -f1 * m_A75; + m_A77 += m_A3 * f1_20; + m_A79 += m_A4 * f1_20; + RHS20 += f1_20 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_11 = -f2 * m_A30; + m_A32 += m_A6 * f2_11; + m_A33 += m_A7 * f2_11; + RHS11 += f2_11 * RHS2; + const double f2_12 = -f2 * m_A35; + m_A37 += m_A6 * f2_12; + m_A39 += m_A7 * f2_12; + RHS12 += f2_12 * RHS2; + const double f2_20 = -f2 * m_A76; + m_A78 += m_A6 * f2_20; + m_A80 += m_A7 * f2_20; + RHS20 += f2_20 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_13 = -f3 * m_A40; + m_A42 += m_A9 * f3_13; + m_A43 += m_A10 * f3_13; + RHS13 += f3_13 * RHS3; + const double f3_14 = -f3 * m_A45; + m_A47 += m_A9 * f3_14; + m_A48 += m_A10 * f3_14; + RHS14 += f3_14 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_13 = -f4 * m_A41; + m_A42 += m_A12 * f4_13; + m_A44 += m_A13 * f4_13; + RHS13 += f4_13 * RHS4; + const double f4_17 = -f4 * m_A60; + m_A61 += m_A12 * f4_17; + m_A63 += m_A13 * f4_17; + RHS17 += f4_17 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_18 = -f5 * m_A66; + m_A67 += m_A15 * f5_18; + m_A68 += m_A16 * f5_18; + RHS18 += f5_18 * RHS5; + const double f5_21 = -f5 * m_A82; + m_A84 += m_A15 * f5_21; + m_A86 += m_A16 * f5_21; + RHS21 += f5_21 * RHS5; + const double f6 = 1.0 / m_A17; + const double f6_16 = -f6 * m_A56; + m_A58 += m_A18 * f6_16; + RHS16 += f6_16 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_14 = -f7 * m_A46; + m_A48 += m_A20 * f7_14; + m_A50 += m_A21 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_19 = -f7 * m_A69; + m_A70 += m_A20 * f7_19; + m_A72 += m_A21 * f7_19; + RHS19 += f7_19 * RHS7; + const double f8 = 1.0 / m_A22; + const double f8_16 = -f8 * m_A57; + m_A58 += m_A23 * f8_16; + m_A59 += m_A24 * f8_16; + RHS16 += f8_16 * RHS8; + const double f8_22 = -f8 * m_A88; + m_A90 += m_A23 * f8_22; + m_A93 += m_A24 * f8_22; + RHS22 += f8_22 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_22 = -f9 * m_A89; + m_A93 += m_A26 * f9_22; + RHS22 += f9_22 * RHS9; + const double f10 = 1.0 / m_A28; + const double f10_12 = -f10 * m_A36; + m_A38 += m_A29 * f10_12; + RHS12 += f10_12 * RHS10; + const double f10_15 = -f10 * m_A53; + m_A54 += m_A29 * f10_15; + RHS15 += f10_15 * RHS10; + const double f10_20 = -f10 * m_A77; + m_A79 += m_A29 * f10_20; + RHS20 += f10_20 * RHS10; + const double f12 = 1.0 / m_A37; + const double f12_20 = -f12 * m_A78; + m_A79 += m_A38 * f12_20; + m_A80 += m_A39 * f12_20; + RHS20 += f12_20 * RHS12; + const double f13 = 1.0 / m_A42; + const double f13_14 = -f13 * m_A47; + m_A48 += m_A43 * f13_14; + m_A49 += m_A44 * f13_14; + RHS14 += f13_14 * RHS13; + const double f13_17 = -f13 * m_A61; + m_A62 += m_A43 * f13_17; + m_A63 += m_A44 * f13_17; + RHS17 += f13_17 * RHS13; + const double f14 = 1.0 / m_A48; + const double f14_17 = -f14 * m_A62; + m_A63 += m_A49 * f14_17; + m_A64 += m_A50 * f14_17; + RHS17 += f14_17 * RHS14; + const double f14_19 = -f14 * m_A70; + m_A71 += m_A49 * f14_19; + m_A72 += m_A50 * f14_19; + RHS19 += f14_19 * RHS14; + const double f15 = 1.0 / m_A54; + const double f15_20 = -f15 * m_A79; + m_A81 += m_A55 * f15_20; + RHS20 += f15_20 * RHS15; + const double f16 = 1.0 / m_A58; + const double f16_22 = -f16 * m_A90; + m_A93 += m_A59 * f16_22; + RHS22 += f16_22 * RHS16; + const double f17 = 1.0 / m_A63; + const double f17_19 = -f17 * m_A71; + m_A72 += m_A64 * f17_19; + m_A73 += m_A65 * f17_19; + RHS19 += f17_19 * RHS17; + const double f17_21 = -f17 * m_A83; + m_A85 += m_A64 * f17_21; + m_A86 += m_A65 * f17_21; + RHS21 += f17_21 * RHS17; + const double f18 = 1.0 / m_A67; + const double f18_21 = -f18 * m_A84; + m_A86 += m_A68 * f18_21; + RHS21 += f18_21 * RHS18; + const double f19 = 1.0 / m_A72; + const double f19_21 = -f19 * m_A85; + m_A86 += m_A73 * f19_21; + m_A87 += m_A74 * f19_21; + RHS21 += f19_21 * RHS19; + const double f19_22 = -f19 * m_A91; + m_A92 += m_A73 * f19_22; + m_A93 += m_A74 * f19_22; + RHS22 += f19_22 * RHS19; + const double f21 = 1.0 / m_A86; + const double f21_22 = -f21 * m_A92; + m_A93 += m_A87 * f21_22; + RHS22 += f21_22 * RHS21; + V[22] = RHS22 / m_A93; + double tmp21 = 0.0; + tmp21 += m_A87 * V[22]; + V[21] = (RHS21 - tmp21) / m_A86; + double tmp20 = 0.0; + tmp20 += m_A81 * V[21]; + V[20] = (RHS20 - tmp20) / m_A80; + double tmp19 = 0.0; + tmp19 += m_A73 * V[21]; + tmp19 += m_A74 * V[22]; + V[19] = (RHS19 - tmp19) / m_A72; + double tmp18 = 0.0; + tmp18 += m_A68 * V[21]; + V[18] = (RHS18 - tmp18) / m_A67; + double tmp17 = 0.0; + tmp17 += m_A64 * V[19]; + tmp17 += m_A65 * V[21]; + V[17] = (RHS17 - tmp17) / m_A63; + double tmp16 = 0.0; + tmp16 += m_A59 * V[22]; + V[16] = (RHS16 - tmp16) / m_A58; + double tmp15 = 0.0; + tmp15 += m_A55 * V[21]; + V[15] = (RHS15 - tmp15) / m_A54; + double tmp14 = 0.0; + tmp14 += m_A49 * V[17]; + tmp14 += m_A50 * V[19]; + V[14] = (RHS14 - tmp14) / m_A48; + double tmp13 = 0.0; + tmp13 += m_A43 * V[14]; + tmp13 += m_A44 * V[17]; + V[13] = (RHS13 - tmp13) / m_A42; + double tmp12 = 0.0; + tmp12 += m_A38 * V[15]; + tmp12 += m_A39 * V[20]; + V[12] = (RHS12 - tmp12) / m_A37; + double tmp11 = 0.0; + tmp11 += m_A32 * V[12]; + tmp11 += m_A33 * V[20]; + V[11] = (RHS11 - tmp11) / m_A31; + double tmp10 = 0.0; + tmp10 += m_A29 * V[15]; + V[10] = (RHS10 - tmp10) / m_A28; + double tmp9 = 0.0; + tmp9 += m_A26 * V[22]; + V[9] = (RHS9 - tmp9) / m_A25; + double tmp8 = 0.0; + tmp8 += m_A23 * V[16]; + tmp8 += m_A24 * V[22]; + V[8] = (RHS8 - tmp8) / m_A22; + double tmp7 = 0.0; + tmp7 += m_A20 * V[14]; + tmp7 += m_A21 * V[19]; + V[7] = (RHS7 - tmp7) / m_A19; + double tmp6 = 0.0; + tmp6 += m_A18 * V[16]; + V[6] = (RHS6 - tmp6) / m_A17; + double tmp5 = 0.0; + tmp5 += m_A15 * V[18]; + tmp5 += m_A16 * V[21]; + V[5] = (RHS5 - tmp5) / m_A14; + double tmp4 = 0.0; + tmp4 += m_A12 * V[13]; + tmp4 += m_A13 * V[17]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A9 * V[13]; + tmp3 += m_A10 * V[14]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A6 * V[12]; + tmp2 += m_A7 * V[20]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[10]; + tmp1 += m_A4 * V[15]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[15]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// astrob +static void nl_gcr_efd052e6829c33e_9_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A2 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + m_A4 += gt[2]; + m_A4 += gt[3]; + m_A5 += go[2]; + m_A3 += go[3]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + m_A8 += gt[4]; + m_A8 += gt[5]; + m_A7 += go[4]; + m_A6 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + const double f0 = 1.0 / m_A0; + const double f0_1 = -f0 * m_A3; + m_A4 += m_A1 * f0_1; + m_A5 += m_A2 * f0_1; + RHS1 += f0_1 * RHS0; + const double f0_2 = -f0 * m_A6; + m_A7 += m_A1 * f0_2; + m_A8 += m_A2 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A4; + const double f1_2 = -f1 * m_A7; + m_A8 += m_A5 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A8; + double tmp1 = 0.0; + tmp1 += m_A5 * V[2]; + V[1] = (RHS1 - tmp1) / m_A4; + double tmp0 = 0.0; + tmp0 += m_A1 * V[1]; + tmp0 += m_A2 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// spacfury +static void nl_gcr_f365c3863b050e35_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A2 += gt[11]; + m_A3 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + m_A4 += gt[12]; + m_A4 += gt[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A6 += go[12]; + m_A6 += go[13]; + m_A5 += go[14]; + double RHS2 = Idr[12]; + RHS2 += Idr[13]; + RHS2 += Idr[14]; + RHS2 += Idr[15]; + RHS2 -= go[15] * *cnV[15]; + m_A7 += gt[16]; + m_A7 += gt[17]; + m_A8 += go[16]; + double RHS3 = Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[17] * *cnV[17]; + m_A9 += gt[18]; + m_A9 += gt[19]; + m_A10 += go[18]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 -= go[19] * *cnV[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A12 += go[20]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; RHS5 -= go[21] * *cnV[21]; - RHS5 -= go[22] * *cnV[22]; - RHS5 -= go[23] * *cnV[23]; - m_A16 += gt[24]; - m_A16 += gt[25]; - m_A16 += gt[26]; - m_A17 += go[24]; - double RHS6 = Idr[24]; - RHS6 += Idr[25]; - RHS6 += Idr[26]; - RHS6 -= go[25] * *cnV[25]; - RHS6 -= go[26] * *cnV[26]; - m_A18 += gt[27]; - m_A18 += gt[28]; - m_A19 += go[27]; - double RHS7 = Idr[27]; - RHS7 += Idr[28]; - RHS7 -= go[28] * *cnV[28]; - m_A20 += gt[29]; - m_A20 += gt[30]; - m_A20 += gt[31]; - m_A21 += go[29]; - m_A23 += go[30]; - m_A22 += go[31]; - double RHS8 = Idr[29]; - RHS8 += Idr[30]; - RHS8 += Idr[31]; - m_A24 += gt[32]; - m_A24 += gt[33]; - m_A24 += gt[34]; - m_A25 += go[32]; - double RHS9 = Idr[32]; - RHS9 += Idr[33]; - RHS9 += Idr[34]; - RHS9 -= go[33] * *cnV[33]; - RHS9 -= go[34] * *cnV[34]; - m_A26 += gt[35]; - m_A26 += gt[36]; - m_A26 += gt[37]; - m_A26 += gt[38]; - m_A27 += go[35]; - m_A28 += go[36]; - double RHS10 = Idr[35]; - RHS10 += Idr[36]; - RHS10 += Idr[37]; - RHS10 += Idr[38]; - RHS10 -= go[37] * *cnV[37]; - RHS10 -= go[38] * *cnV[38]; - m_A29 += gt[39]; - m_A29 += gt[40]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A14 += go[22]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + RHS6 -= go[23] * *cnV[23]; + m_A15 += gt[24]; + m_A15 += gt[25]; + m_A16 += go[24]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + RHS7 -= go[25] * *cnV[25]; + m_A17 += gt[26]; + m_A17 += gt[27]; + m_A18 += go[26]; + double RHS8 = Idr[26]; + RHS8 += Idr[27]; + RHS8 -= go[27] * *cnV[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A20 += go[28]; + double RHS9 = Idr[28]; + RHS9 += Idr[29]; + RHS9 -= go[29] * *cnV[29]; + m_A21 += gt[30]; + m_A21 += gt[31]; + m_A22 += go[30]; + double RHS10 = Idr[30]; + RHS10 += Idr[31]; + RHS10 -= go[31] * *cnV[31]; + m_A23 += gt[32]; + m_A23 += gt[33]; + m_A24 += go[32]; + double RHS11 = Idr[32]; + RHS11 += Idr[33]; + RHS11 -= go[33] * *cnV[33]; + m_A27 += gt[34]; + m_A27 += gt[35]; + m_A26 += go[34]; + m_A25 += go[35]; + double RHS12 = Idr[34]; + RHS12 += Idr[35]; + m_A32 += gt[36]; + m_A32 += gt[37]; + m_A32 += gt[38]; + m_A32 += gt[39]; + m_A32 += gt[40]; + m_A32 += gt[41]; + m_A29 += go[36]; + m_A33 += go[37]; + m_A30 += go[38]; m_A30 += go[39]; - double RHS11 = Idr[39]; - RHS11 += Idr[40]; - RHS11 -= go[40] * *cnV[40]; - m_A31 += gt[41]; - m_A31 += gt[42]; - m_A31 += gt[43]; - m_A31 += gt[44]; - m_A32 += go[41]; - m_A33 += go[42]; - double RHS12 = Idr[41]; - RHS12 += Idr[42]; - RHS12 += Idr[43]; - RHS12 += Idr[44]; - RHS12 -= go[43] * *cnV[43]; - RHS12 -= go[44] * *cnV[44]; - m_A34 += gt[45]; - m_A34 += gt[46]; - m_A34 += gt[47]; - m_A36 += go[45]; - m_A35 += go[46]; - double RHS13 = Idr[45]; - RHS13 += Idr[46]; - RHS13 += Idr[47]; - RHS13 -= go[47] * *cnV[47]; - m_A37 += gt[48]; - m_A37 += gt[49]; - m_A38 += go[48]; - double RHS14 = Idr[48]; + double RHS13 = Idr[36]; + RHS13 += Idr[37]; + RHS13 += Idr[38]; + RHS13 += Idr[39]; + RHS13 += Idr[40]; + RHS13 += Idr[41]; + RHS13 -= go[40] * *cnV[40]; + RHS13 -= go[41] * *cnV[41]; + m_A44 += gt[42]; + m_A44 += gt[43]; + m_A44 += gt[44]; + m_A44 += gt[45]; + m_A44 += gt[46]; + m_A44 += gt[47]; + m_A44 += gt[48]; + m_A44 += gt[49]; + m_A44 += gt[50]; + m_A44 += gt[51]; + m_A42 += go[42]; + m_A41 += go[43]; + m_A40 += go[44]; + m_A39 += go[45]; + m_A38 += go[46]; + m_A37 += go[47]; + m_A36 += go[48]; + m_A35 += go[49]; + m_A34 += go[50]; + m_A43 += go[51]; + double RHS14 = Idr[42]; + RHS14 += Idr[43]; + RHS14 += Idr[44]; + RHS14 += Idr[45]; + RHS14 += Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; RHS14 += Idr[49]; - RHS14 -= go[49] * *cnV[49]; - m_A39 += gt[50]; - m_A39 += gt[51]; - m_A40 += go[50]; - double RHS15 = Idr[50]; - RHS15 += Idr[51]; - RHS15 -= go[51] * *cnV[51]; - m_A41 += gt[52]; - m_A41 += gt[53]; - m_A42 += go[52]; - double RHS16 = Idr[52]; - RHS16 += Idr[53]; - RHS16 -= go[53] * *cnV[53]; - m_A43 += gt[54]; - m_A43 += gt[55]; - m_A43 += gt[56]; - m_A43 += gt[57]; - m_A43 += gt[58]; - m_A44 += go[54]; - m_A46 += go[55]; - m_A45 += go[56]; - double RHS17 = Idr[54]; - RHS17 += Idr[55]; - RHS17 += Idr[56]; - RHS17 += Idr[57]; - RHS17 += Idr[58]; - RHS17 -= go[57] * *cnV[57]; - RHS17 -= go[58] * *cnV[58]; - m_A47 += gt[59]; - m_A47 += gt[60]; - m_A47 += gt[61]; - m_A47 += gt[62]; - m_A47 += gt[63]; - m_A48 += go[59]; - m_A50 += go[60]; - m_A49 += go[61]; - double RHS18 = Idr[59]; - RHS18 += Idr[60]; - RHS18 += Idr[61]; - RHS18 += Idr[62]; - RHS18 += Idr[63]; - RHS18 -= go[62] * *cnV[62]; - RHS18 -= go[63] * *cnV[63]; - m_A51 += gt[64]; - m_A51 += gt[65]; - m_A52 += go[64]; - double RHS19 = Idr[64]; - RHS19 += Idr[65]; - RHS19 -= go[65] * *cnV[65]; - m_A55 += gt[66]; - m_A55 += gt[67]; - m_A54 += go[66]; - m_A53 += go[67]; - double RHS20 = Idr[66]; - RHS20 += Idr[67]; - m_A60 += gt[68]; - m_A60 += gt[69]; - m_A60 += gt[70]; - m_A58 += go[68]; - m_A57 += go[69]; - double RHS21 = Idr[68]; - RHS21 += Idr[69]; - RHS21 += Idr[70]; - RHS21 -= go[70] * *cnV[70]; - m_A63 += gt[71]; - m_A63 += gt[72]; - m_A64 += go[71]; - double RHS22 = Idr[71]; - RHS22 += Idr[72]; - RHS22 -= go[72] * *cnV[72]; - m_A65 += gt[73]; - m_A65 += gt[74]; - m_A65 += gt[75]; - m_A66 += go[73]; - double RHS23 = Idr[73]; - RHS23 += Idr[74]; - RHS23 += Idr[75]; - RHS23 -= go[74] * *cnV[74]; - RHS23 -= go[75] * *cnV[75]; - m_A69 += gt[76]; - m_A69 += gt[77]; - m_A69 += gt[78]; - m_A67 += go[76]; - m_A68 += go[77]; - double RHS24 = Idr[76]; - RHS24 += Idr[77]; - RHS24 += Idr[78]; - RHS24 -= go[78] * *cnV[78]; - m_A76 += gt[79]; - m_A76 += gt[80]; - m_A73 += go[79]; - m_A72 += go[80]; - double RHS25 = Idr[79]; - RHS25 += Idr[80]; - m_A81 += gt[81]; - m_A81 += gt[82]; - m_A80 += go[81]; - m_A79 += go[82]; - double RHS26 = Idr[81]; - RHS26 += Idr[82]; - m_A84 += gt[83]; - m_A84 += gt[84]; - m_A84 += gt[85]; - m_A85 += go[83]; - m_A83 += go[84]; - double RHS27 = Idr[83]; - RHS27 += Idr[84]; - RHS27 += Idr[85]; - RHS27 -= go[85] * *cnV[85]; - m_A88 += gt[86]; - m_A88 += gt[87]; - m_A87 += go[86]; - m_A86 += go[87]; - double RHS28 = Idr[86]; - RHS28 += Idr[87]; - m_A95 += gt[88]; - m_A95 += gt[89]; - m_A95 += gt[90]; - m_A95 += gt[91]; - m_A95 += gt[92]; - m_A90 += go[88]; - m_A92 += go[89]; - m_A91 += go[90]; - double RHS29 = Idr[88]; - RHS29 += Idr[89]; - RHS29 += Idr[90]; - RHS29 += Idr[91]; - RHS29 += Idr[92]; - RHS29 -= go[91] * *cnV[91]; - RHS29 -= go[92] * *cnV[92]; - m_A100 += gt[93]; - m_A100 += gt[94]; - m_A100 += gt[95]; - m_A100 += gt[96]; - m_A100 += gt[97]; - m_A100 += gt[98]; - m_A100 += gt[99]; - m_A98 += go[93]; - m_A101 += go[94]; - double RHS30 = Idr[93]; - RHS30 += Idr[94]; - RHS30 += Idr[95]; - RHS30 += Idr[96]; - RHS30 += Idr[97]; - RHS30 += Idr[98]; - RHS30 += Idr[99]; - RHS30 -= go[95] * *cnV[95]; - RHS30 -= go[96] * *cnV[96]; - RHS30 -= go[97] * *cnV[97]; - RHS30 -= go[98] * *cnV[98]; - RHS30 -= go[99] * *cnV[99]; - m_A103 += gt[100]; - m_A103 += gt[101]; - m_A103 += gt[102]; - m_A103 += gt[103]; - m_A103 += gt[104]; - m_A103 += gt[105]; - m_A104 += go[100]; - m_A104 += go[101]; - m_A102 += go[102]; - double RHS31 = Idr[100]; - RHS31 += Idr[101]; - RHS31 += Idr[102]; - RHS31 += Idr[103]; - RHS31 += Idr[104]; - RHS31 += Idr[105]; - RHS31 -= go[103] * *cnV[103]; - RHS31 -= go[104] * *cnV[104]; - RHS31 -= go[105] * *cnV[105]; - m_A110 += gt[106]; - m_A110 += gt[107]; - m_A110 += gt[108]; - m_A106 += go[106]; - m_A107 += go[107]; - m_A105 += go[108]; - double RHS32 = Idr[106]; - RHS32 += Idr[107]; - RHS32 += Idr[108]; - m_A114 += gt[109]; - m_A114 += gt[110]; - m_A114 += gt[111]; - m_A114 += gt[112]; - m_A114 += gt[113]; - m_A114 += gt[114]; - m_A114 += gt[115]; - m_A112 += go[109]; - m_A115 += go[110]; - double RHS33 = Idr[109]; - RHS33 += Idr[110]; - RHS33 += Idr[111]; - RHS33 += Idr[112]; - RHS33 += Idr[113]; - RHS33 += Idr[114]; - RHS33 += Idr[115]; - RHS33 -= go[111] * *cnV[111]; - RHS33 -= go[112] * *cnV[112]; - RHS33 -= go[113] * *cnV[113]; - RHS33 -= go[114] * *cnV[114]; - RHS33 -= go[115] * *cnV[115]; - m_A121 += gt[116]; - m_A121 += gt[117]; - m_A121 += gt[118]; - m_A121 += gt[119]; - m_A121 += gt[120]; - m_A121 += gt[121]; - m_A121 += gt[122]; - m_A118 += go[116]; - m_A116 += go[117]; - double RHS34 = Idr[116]; - RHS34 += Idr[117]; - RHS34 += Idr[118]; - RHS34 += Idr[119]; - RHS34 += Idr[120]; - RHS34 += Idr[121]; - RHS34 += Idr[122]; - RHS34 -= go[118] * *cnV[118]; - RHS34 -= go[119] * *cnV[119]; - RHS34 -= go[120] * *cnV[120]; - RHS34 -= go[121] * *cnV[121]; - RHS34 -= go[122] * *cnV[122]; - m_A125 += gt[123]; - m_A125 += gt[124]; - m_A125 += gt[125]; - m_A124 += go[123]; - m_A126 += go[124]; - m_A123 += go[125]; - double RHS35 = Idr[123]; - RHS35 += Idr[124]; - RHS35 += Idr[125]; - m_A132 += gt[126]; - m_A132 += gt[127]; - m_A132 += gt[128]; - m_A127 += go[126]; - m_A128 += go[127]; - m_A130 += go[128]; - double RHS36 = Idr[126]; - RHS36 += Idr[127]; - RHS36 += Idr[128]; - m_A149 += gt[129]; - m_A149 += gt[130]; - m_A149 += gt[131]; - m_A149 += gt[132]; - m_A149 += gt[133]; - m_A149 += gt[134]; - m_A149 += gt[135]; - m_A149 += gt[136]; - m_A149 += gt[137]; - m_A149 += gt[138]; - m_A149 += gt[139]; - m_A140 += go[129]; - m_A147 += go[130]; - m_A139 += go[131]; - m_A138 += go[132]; - m_A137 += go[133]; - m_A136 += go[134]; - m_A135 += go[135]; - m_A134 += go[136]; - m_A143 += go[137]; - m_A143 += go[138]; - double RHS37 = Idr[129]; - RHS37 += Idr[130]; - RHS37 += Idr[131]; - RHS37 += Idr[132]; - RHS37 += Idr[133]; - RHS37 += Idr[134]; - RHS37 += Idr[135]; - RHS37 += Idr[136]; - RHS37 += Idr[137]; - RHS37 += Idr[138]; - RHS37 += Idr[139]; - RHS37 -= go[139] * *cnV[139]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + const double f0 = 1.0 / m_A0; + const double f0_12 = -f0 * m_A25; + m_A27 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_13 = -f1 * m_A29; + m_A30 += m_A3 * f1_13; + RHS13 += f1_13 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_12 = -f2 * m_A26; + m_A27 += m_A5 * f2_12; + m_A28 += m_A6 * f2_12; + RHS12 += f2_12 * RHS2; + const double f2_13 = -f2 * m_A30; + m_A31 += m_A5 * f2_13; + m_A32 += m_A6 * f2_13; + RHS13 += f2_13 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_14 = -f3 * m_A34; + m_A44 += m_A8 * f3_14; + RHS14 += f3_14 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_14 = -f4 * m_A35; + m_A44 += m_A10 * f4_14; + RHS14 += f4_14 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_14 = -f5 * m_A36; + m_A44 += m_A12 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_14 = -f6 * m_A37; + m_A44 += m_A14 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_14 = -f7 * m_A38; + m_A44 += m_A16 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_14 = -f8 * m_A39; + m_A44 += m_A18 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_14 = -f9 * m_A40; + m_A44 += m_A20 * f9_14; + RHS14 += f9_14 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_14 = -f10 * m_A41; + m_A44 += m_A22 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A23; + const double f11_14 = -f11 * m_A42; + m_A44 += m_A24 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A27; + const double f12_13 = -f12 * m_A31; + m_A32 += m_A28 * f12_13; + RHS13 += f12_13 * RHS12; + const double f13 = 1.0 / m_A32; + const double f13_14 = -f13 * m_A43; + m_A44 += m_A33 * f13_14; + RHS14 += f13_14 * RHS13; + V[14] = RHS14 / m_A44; + double tmp13 = 0.0; + tmp13 += m_A33 * V[14]; + V[13] = (RHS13 - tmp13) / m_A32; + double tmp12 = 0.0; + tmp12 += m_A28 * V[13]; + V[12] = (RHS12 - tmp12) / m_A27; + double tmp11 = 0.0; + tmp11 += m_A24 * V[14]; + V[11] = (RHS11 - tmp11) / m_A23; + double tmp10 = 0.0; + tmp10 += m_A22 * V[14]; + V[10] = (RHS10 - tmp10) / m_A21; + double tmp9 = 0.0; + tmp9 += m_A20 * V[14]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A18 * V[14]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A16 * V[14]; + V[7] = (RHS7 - tmp7) / m_A15; + double tmp6 = 0.0; + tmp6 += m_A14 * V[14]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A12 * V[14]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A10 * V[14]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A8 * V[14]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[12]; + tmp2 += m_A6 * V[13]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[12]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// spacfury +static void nl_gcr_f3c9a6d53371d709_227_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + double m_A36(0.0); + double m_A37(0.0); + double m_A38(0.0); + double m_A39(0.0); + double m_A40(0.0); + double m_A41(0.0); + double m_A42(0.0); + double m_A43(0.0); + double m_A44(0.0); + double m_A45(0.0); + double m_A46(0.0); + double m_A47(0.0); + double m_A48(0.0); + double m_A49(0.0); + double m_A50(0.0); + double m_A51(0.0); + double m_A52(0.0); + double m_A53(0.0); + double m_A54(0.0); + double m_A55(0.0); + double m_A56(0.0); + double m_A57(0.0); + double m_A58(0.0); + double m_A59(0.0); + double m_A60(0.0); + double m_A61(0.0); + double m_A62(0.0); + double m_A63(0.0); + double m_A64(0.0); + double m_A65(0.0); + double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); + double m_A144(0.0); + double m_A145(0.0); + double m_A146(0.0); + double m_A147(0.0); + double m_A148(0.0); + double m_A149(0.0); + double m_A150(0.0); + double m_A151(0.0); + double m_A152(0.0); + double m_A153(0.0); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(0.0); + double m_A198(0.0); + double m_A199(0.0); + double m_A200(0.0); + double m_A201(0.0); + double m_A202(0.0); + double m_A203(0.0); + double m_A204(0.0); + double m_A205(0.0); + double m_A206(0.0); + double m_A207(0.0); + double m_A208(0.0); + double m_A209(0.0); + double m_A210(0.0); + double m_A211(0.0); + double m_A212(0.0); + double m_A213(0.0); + double m_A214(0.0); + double m_A215(0.0); + double m_A216(0.0); + double m_A217(0.0); + double m_A218(0.0); + double m_A219(0.0); + double m_A220(0.0); + double m_A221(0.0); + double m_A222(0.0); + double m_A223(0.0); + double m_A224(0.0); + double m_A225(0.0); + double m_A226(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A0 += gt[7]; + m_A0 += gt[8]; + m_A0 += gt[9]; + m_A0 += gt[10]; + m_A0 += gt[11]; + m_A0 += gt[12]; + m_A0 += gt[13]; + m_A2 += go[0]; + m_A1 += go[1]; + m_A1 += go[2]; + m_A0 += go[3]; + m_A0 += go[4]; + m_A0 += go[5]; + m_A0 += go[6]; + m_A3 += go[7]; + m_A3 += go[8]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 += Idr[7]; + RHS0 += Idr[8]; + RHS0 += Idr[9]; + RHS0 += Idr[10]; + RHS0 += Idr[11]; + RHS0 += Idr[12]; + RHS0 += Idr[13]; + RHS0 -= go[9] * *cnV[9]; + RHS0 -= go[10] * *cnV[10]; + RHS0 -= go[11] * *cnV[11]; + RHS0 -= go[12] * *cnV[12]; + RHS0 -= go[13] * *cnV[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A4 += gt[16]; + m_A4 += gt[17]; + m_A4 += gt[18]; + m_A4 += gt[19]; + m_A4 += gt[20]; + m_A4 += gt[21]; + m_A4 += gt[22]; + m_A4 += gt[23]; + m_A4 += gt[24]; + m_A4 += gt[25]; + m_A5 += go[14]; + m_A5 += go[15]; + m_A4 += go[16]; + m_A4 += go[17]; + m_A4 += go[18]; + m_A4 += go[19]; + double RHS1 = Idr[14]; + RHS1 += Idr[15]; + RHS1 += Idr[16]; + RHS1 += Idr[17]; + RHS1 += Idr[18]; + RHS1 += Idr[19]; + RHS1 += Idr[20]; + RHS1 += Idr[21]; + RHS1 += Idr[22]; + RHS1 += Idr[23]; + RHS1 += Idr[24]; + RHS1 += Idr[25]; + RHS1 -= go[20] * *cnV[20]; + RHS1 -= go[21] * *cnV[21]; + RHS1 -= go[22] * *cnV[22]; + RHS1 -= go[23] * *cnV[23]; + RHS1 -= go[24] * *cnV[24]; + RHS1 -= go[25] * *cnV[25]; + m_A6 += gt[26]; + m_A6 += gt[27]; + m_A6 += gt[28]; + m_A6 += gt[29]; + m_A6 += gt[30]; + m_A6 += gt[31]; + m_A6 += gt[32]; + m_A6 += gt[33]; + m_A6 += gt[34]; + m_A6 += gt[35]; + m_A6 += gt[36]; + m_A6 += gt[37]; + m_A6 += gt[38]; + m_A6 += gt[39]; + m_A9 += go[26]; + m_A7 += go[27]; + m_A7 += go[28]; + m_A6 += go[29]; + m_A6 += go[30]; + m_A6 += go[31]; + m_A6 += go[32]; + m_A8 += go[33]; + m_A8 += go[34]; + double RHS2 = Idr[26]; + RHS2 += Idr[27]; + RHS2 += Idr[28]; + RHS2 += Idr[29]; + RHS2 += Idr[30]; + RHS2 += Idr[31]; + RHS2 += Idr[32]; + RHS2 += Idr[33]; + RHS2 += Idr[34]; + RHS2 += Idr[35]; + RHS2 += Idr[36]; + RHS2 += Idr[37]; + RHS2 += Idr[38]; + RHS2 += Idr[39]; + RHS2 -= go[35] * *cnV[35]; + RHS2 -= go[36] * *cnV[36]; + RHS2 -= go[37] * *cnV[37]; + RHS2 -= go[38] * *cnV[38]; + RHS2 -= go[39] * *cnV[39]; + m_A10 += gt[40]; + m_A10 += gt[41]; + m_A10 += gt[42]; + m_A10 += gt[43]; + m_A10 += gt[44]; + m_A10 += gt[45]; + m_A10 += gt[46]; + m_A10 += gt[47]; + m_A10 += gt[48]; + m_A10 += gt[49]; + m_A10 += gt[50]; + m_A10 += gt[51]; + m_A11 += go[40]; + m_A11 += go[41]; + m_A10 += go[42]; + m_A10 += go[43]; + m_A10 += go[44]; + m_A10 += go[45]; + double RHS3 = Idr[40]; + RHS3 += Idr[41]; + RHS3 += Idr[42]; + RHS3 += Idr[43]; + RHS3 += Idr[44]; + RHS3 += Idr[45]; + RHS3 += Idr[46]; + RHS3 += Idr[47]; + RHS3 += Idr[48]; + RHS3 += Idr[49]; + RHS3 += Idr[50]; + RHS3 += Idr[51]; + RHS3 -= go[46] * *cnV[46]; + RHS3 -= go[47] * *cnV[47]; + RHS3 -= go[48] * *cnV[48]; + RHS3 -= go[49] * *cnV[49]; + RHS3 -= go[50] * *cnV[50]; + RHS3 -= go[51] * *cnV[51]; + m_A12 += gt[52]; + m_A12 += gt[53]; + m_A12 += gt[54]; + m_A13 += go[52]; + double RHS4 = Idr[52]; + RHS4 += Idr[53]; + RHS4 += Idr[54]; + RHS4 -= go[53] * *cnV[53]; + RHS4 -= go[54] * *cnV[54]; + m_A14 += gt[55]; + m_A14 += gt[56]; + m_A14 += gt[57]; + m_A14 += gt[58]; + m_A14 += gt[59]; + m_A14 += gt[60]; + m_A14 += gt[61]; + m_A14 += gt[62]; + m_A16 += go[55]; + m_A16 += go[56]; + m_A16 += go[57]; + m_A15 += go[58]; + m_A15 += go[59]; + m_A17 += go[60]; + m_A17 += go[61]; + m_A17 += go[62]; + double RHS5 = Idr[55]; + RHS5 += Idr[56]; + RHS5 += Idr[57]; + RHS5 += Idr[58]; + RHS5 += Idr[59]; + RHS5 += Idr[60]; + RHS5 += Idr[61]; + RHS5 += Idr[62]; + m_A18 += gt[63]; + m_A18 += gt[64]; + m_A18 += gt[65]; + m_A18 += gt[66]; + m_A18 += gt[67]; + m_A18 += gt[68]; + m_A18 += gt[69]; + m_A18 += gt[70]; + m_A18 += gt[71]; + m_A18 += gt[72]; + m_A18 += gt[73]; + m_A18 += gt[74]; + m_A18 += gt[75]; + m_A18 += gt[76]; + m_A20 += go[63]; + m_A18 += go[64]; + m_A18 += go[65]; + m_A18 += go[66]; + m_A18 += go[67]; + m_A19 += go[68]; + m_A19 += go[69]; + m_A19 += go[70]; + m_A19 += go[71]; + double RHS6 = Idr[63]; + RHS6 += Idr[64]; + RHS6 += Idr[65]; + RHS6 += Idr[66]; + RHS6 += Idr[67]; + RHS6 += Idr[68]; + RHS6 += Idr[69]; + RHS6 += Idr[70]; + RHS6 += Idr[71]; + RHS6 += Idr[72]; + RHS6 += Idr[73]; + RHS6 += Idr[74]; + RHS6 += Idr[75]; + RHS6 += Idr[76]; + RHS6 -= go[72] * *cnV[72]; + RHS6 -= go[73] * *cnV[73]; + RHS6 -= go[74] * *cnV[74]; + RHS6 -= go[75] * *cnV[75]; + RHS6 -= go[76] * *cnV[76]; + m_A21 += gt[77]; + m_A21 += gt[78]; + m_A21 += gt[79]; + m_A21 += gt[80]; + m_A21 += gt[81]; + m_A21 += gt[82]; + m_A21 += gt[83]; + m_A22 += go[77]; + double RHS7 = Idr[77]; + RHS7 += Idr[78]; + RHS7 += Idr[79]; + RHS7 += Idr[80]; + RHS7 += Idr[81]; + RHS7 += Idr[82]; + RHS7 += Idr[83]; + RHS7 -= go[78] * *cnV[78]; + RHS7 -= go[79] * *cnV[79]; + RHS7 -= go[80] * *cnV[80]; + RHS7 -= go[81] * *cnV[81]; + RHS7 -= go[82] * *cnV[82]; + RHS7 -= go[83] * *cnV[83]; + m_A23 += gt[84]; + m_A23 += gt[85]; + m_A23 += gt[86]; + m_A24 += go[84]; + double RHS8 = Idr[84]; + RHS8 += Idr[85]; + RHS8 += Idr[86]; + RHS8 -= go[85] * *cnV[85]; + RHS8 -= go[86] * *cnV[86]; + m_A25 += gt[87]; + m_A25 += gt[88]; + m_A25 += gt[89]; + m_A25 += gt[90]; + m_A26 += go[87]; + double RHS9 = Idr[87]; + RHS9 += Idr[88]; + RHS9 += Idr[89]; + RHS9 += Idr[90]; + RHS9 -= go[88] * *cnV[88]; + RHS9 -= go[89] * *cnV[89]; + RHS9 -= go[90] * *cnV[90]; + m_A27 += gt[91]; + m_A27 += gt[92]; + m_A27 += gt[93]; + m_A28 += go[91]; + double RHS10 = Idr[91]; + RHS10 += Idr[92]; + RHS10 += Idr[93]; + RHS10 -= go[92] * *cnV[92]; + RHS10 -= go[93] * *cnV[93]; + m_A29 += gt[94]; + m_A29 += gt[95]; + m_A31 += go[94]; + m_A30 += go[95]; + double RHS11 = Idr[94]; + RHS11 += Idr[95]; + m_A32 += gt[96]; + m_A32 += gt[97]; + m_A32 += gt[98]; + m_A32 += gt[99]; + m_A32 += gt[100]; + m_A33 += go[96]; + m_A34 += go[97]; + m_A35 += go[98]; + double RHS12 = Idr[96]; + RHS12 += Idr[97]; + RHS12 += Idr[98]; + RHS12 += Idr[99]; + RHS12 += Idr[100]; + RHS12 -= go[99] * *cnV[99]; + RHS12 -= go[100] * *cnV[100]; + m_A36 += gt[101]; + m_A36 += gt[102]; + m_A36 += gt[103]; + m_A36 += gt[104]; + m_A36 += gt[105]; + m_A36 += gt[106]; + m_A36 += gt[107]; + m_A37 += go[101]; + m_A38 += go[102]; + double RHS13 = Idr[101]; + RHS13 += Idr[102]; + RHS13 += Idr[103]; + RHS13 += Idr[104]; + RHS13 += Idr[105]; + RHS13 += Idr[106]; + RHS13 += Idr[107]; + RHS13 -= go[103] * *cnV[103]; + RHS13 -= go[104] * *cnV[104]; + RHS13 -= go[105] * *cnV[105]; + RHS13 -= go[106] * *cnV[106]; + RHS13 -= go[107] * *cnV[107]; + m_A39 += gt[108]; + m_A39 += gt[109]; + m_A39 += gt[110]; + m_A39 += gt[111]; + m_A39 += gt[112]; + m_A39 += gt[113]; + m_A39 += gt[114]; + m_A39 += gt[115]; + m_A39 += gt[116]; + m_A39 += gt[117]; + m_A39 += gt[118]; + m_A44 += go[108]; + m_A44 += go[109]; + m_A40 += go[110]; + m_A40 += go[111]; + m_A43 += go[112]; + m_A42 += go[113]; + m_A42 += go[114]; + m_A41 += go[115]; + m_A41 += go[116]; + m_A41 += go[117]; + double RHS14 = Idr[108]; + RHS14 += Idr[109]; + RHS14 += Idr[110]; + RHS14 += Idr[111]; + RHS14 += Idr[112]; + RHS14 += Idr[113]; + RHS14 += Idr[114]; + RHS14 += Idr[115]; + RHS14 += Idr[116]; + RHS14 += Idr[117]; + RHS14 += Idr[118]; + RHS14 -= go[118] * *cnV[118]; + m_A45 += gt[119]; + m_A45 += gt[120]; + m_A45 += gt[121]; + m_A47 += go[119]; + m_A46 += go[120]; + double RHS15 = Idr[119]; + RHS15 += Idr[120]; + RHS15 += Idr[121]; + RHS15 -= go[121] * *cnV[121]; + m_A49 += gt[122]; + m_A49 += gt[123]; + m_A49 += gt[124]; + m_A49 += gt[125]; + m_A49 += gt[126]; + m_A49 += gt[127]; + m_A49 += gt[128]; + m_A49 += gt[129]; + m_A50 += go[122]; + m_A50 += go[123]; + m_A50 += go[124]; + m_A48 += go[125]; + m_A48 += go[126]; + m_A51 += go[127]; + m_A51 += go[128]; + m_A51 += go[129]; + double RHS16 = Idr[122]; + RHS16 += Idr[123]; + RHS16 += Idr[124]; + RHS16 += Idr[125]; + RHS16 += Idr[126]; + RHS16 += Idr[127]; + RHS16 += Idr[128]; + RHS16 += Idr[129]; + m_A52 += gt[130]; + m_A52 += gt[131]; + m_A52 += gt[132]; + m_A52 += gt[133]; + m_A52 += gt[134]; + m_A52 += gt[135]; + m_A52 += gt[136]; + m_A52 += gt[137]; + m_A52 += gt[138]; + m_A52 += gt[139]; + m_A52 += gt[140]; + m_A52 += gt[141]; + m_A52 += gt[142]; + m_A52 += gt[143]; + m_A54 += go[130]; + m_A52 += go[131]; + m_A52 += go[132]; + m_A52 += go[133]; + m_A52 += go[134]; + m_A53 += go[135]; + m_A53 += go[136]; + m_A53 += go[137]; + m_A53 += go[138]; + double RHS17 = Idr[130]; + RHS17 += Idr[131]; + RHS17 += Idr[132]; + RHS17 += Idr[133]; + RHS17 += Idr[134]; + RHS17 += Idr[135]; + RHS17 += Idr[136]; + RHS17 += Idr[137]; + RHS17 += Idr[138]; + RHS17 += Idr[139]; + RHS17 += Idr[140]; + RHS17 += Idr[141]; + RHS17 += Idr[142]; + RHS17 += Idr[143]; + RHS17 -= go[139] * *cnV[139]; + RHS17 -= go[140] * *cnV[140]; + RHS17 -= go[141] * *cnV[141]; + RHS17 -= go[142] * *cnV[142]; + RHS17 -= go[143] * *cnV[143]; + m_A59 += gt[144]; + m_A59 += gt[145]; + m_A59 += gt[146]; + m_A59 += gt[147]; + m_A59 += gt[148]; + m_A59 += gt[149]; + m_A58 += go[144]; + m_A57 += go[145]; + m_A56 += go[146]; + m_A55 += go[147]; + double RHS18 = Idr[144]; + RHS18 += Idr[145]; + RHS18 += Idr[146]; + RHS18 += Idr[147]; + RHS18 += Idr[148]; + RHS18 += Idr[149]; + RHS18 -= go[148] * *cnV[148]; + RHS18 -= go[149] * *cnV[149]; + m_A61 += gt[150]; + m_A61 += gt[151]; + m_A61 += gt[152]; + m_A61 += gt[153]; + m_A61 += gt[154]; + m_A61 += gt[155]; + m_A63 += go[150]; + m_A62 += go[151]; + m_A62 += go[152]; + m_A64 += go[153]; + m_A64 += go[154]; + double RHS19 = Idr[150]; + RHS19 += Idr[151]; + RHS19 += Idr[152]; + RHS19 += Idr[153]; + RHS19 += Idr[154]; + RHS19 += Idr[155]; + RHS19 -= go[155] * *cnV[155]; + m_A65 += gt[156]; + m_A65 += gt[157]; + m_A65 += gt[158]; + m_A65 += gt[159]; + m_A65 += gt[160]; + m_A65 += gt[161]; + m_A65 += gt[162]; + m_A66 += go[156]; + double RHS20 = Idr[156]; + RHS20 += Idr[157]; + RHS20 += Idr[158]; + RHS20 += Idr[159]; + RHS20 += Idr[160]; + RHS20 += Idr[161]; + RHS20 += Idr[162]; + RHS20 -= go[157] * *cnV[157]; + RHS20 -= go[158] * *cnV[158]; + RHS20 -= go[159] * *cnV[159]; + RHS20 -= go[160] * *cnV[160]; + RHS20 -= go[161] * *cnV[161]; + RHS20 -= go[162] * *cnV[162]; + m_A68 += gt[163]; + m_A68 += gt[164]; + m_A68 += gt[165]; + m_A68 += gt[166]; + m_A68 += gt[167]; + m_A68 += gt[168]; + m_A68 += gt[169]; + m_A68 += gt[170]; + m_A68 += gt[171]; + m_A68 += gt[172]; + m_A68 += gt[173]; + m_A68 += gt[174]; + m_A68 += gt[175]; + m_A68 += gt[176]; + m_A69 += go[163]; + m_A68 += go[164]; + m_A68 += go[165]; + m_A68 += go[166]; + m_A68 += go[167]; + m_A67 += go[168]; + m_A67 += go[169]; + m_A70 += go[170]; + m_A70 += go[171]; + double RHS21 = Idr[163]; + RHS21 += Idr[164]; + RHS21 += Idr[165]; + RHS21 += Idr[166]; + RHS21 += Idr[167]; + RHS21 += Idr[168]; + RHS21 += Idr[169]; + RHS21 += Idr[170]; + RHS21 += Idr[171]; + RHS21 += Idr[172]; + RHS21 += Idr[173]; + RHS21 += Idr[174]; + RHS21 += Idr[175]; + RHS21 += Idr[176]; + RHS21 -= go[172] * *cnV[172]; + RHS21 -= go[173] * *cnV[173]; + RHS21 -= go[174] * *cnV[174]; + RHS21 -= go[175] * *cnV[175]; + RHS21 -= go[176] * *cnV[176]; + m_A72 += gt[177]; + m_A72 += gt[178]; + m_A72 += gt[179]; + m_A72 += gt[180]; + m_A72 += gt[181]; + m_A72 += gt[182]; + m_A71 += go[177]; + m_A74 += go[178]; + m_A73 += go[179]; + double RHS22 = Idr[177]; + RHS22 += Idr[178]; + RHS22 += Idr[179]; + RHS22 += Idr[180]; + RHS22 += Idr[181]; + RHS22 += Idr[182]; + RHS22 -= go[180] * *cnV[180]; + RHS22 -= go[181] * *cnV[181]; + RHS22 -= go[182] * *cnV[182]; + m_A76 += gt[183]; + m_A76 += gt[184]; + m_A75 += go[183]; + m_A77 += go[184]; + double RHS23 = Idr[183]; + RHS23 += Idr[184]; + m_A79 += gt[185]; + m_A79 += gt[186]; + m_A79 += gt[187]; + m_A79 += gt[188]; + m_A79 += gt[189]; + m_A79 += gt[190]; + m_A79 += gt[191]; + m_A79 += gt[192]; + m_A81 += go[185]; + m_A81 += go[186]; + m_A81 += go[187]; + m_A78 += go[188]; + m_A78 += go[189]; + m_A80 += go[190]; + m_A80 += go[191]; + m_A80 += go[192]; + double RHS24 = Idr[185]; + RHS24 += Idr[186]; + RHS24 += Idr[187]; + RHS24 += Idr[188]; + RHS24 += Idr[189]; + RHS24 += Idr[190]; + RHS24 += Idr[191]; + RHS24 += Idr[192]; + m_A86 += gt[193]; + m_A86 += gt[194]; + m_A86 += gt[195]; + m_A86 += gt[196]; + m_A86 += gt[197]; + m_A86 += gt[198]; + m_A82 += go[193]; + m_A91 += go[194]; + m_A91 += go[195]; + m_A84 += go[196]; + m_A84 += go[197]; + double RHS25 = Idr[193]; + RHS25 += Idr[194]; + RHS25 += Idr[195]; + RHS25 += Idr[196]; + RHS25 += Idr[197]; + RHS25 += Idr[198]; + RHS25 -= go[198] * *cnV[198]; + m_A96 += gt[199]; + m_A96 += gt[200]; + m_A96 += gt[201]; + m_A96 += gt[202]; + m_A96 += gt[203]; + m_A96 += gt[204]; + m_A96 += gt[205]; + m_A96 += gt[206]; + m_A96 += gt[207]; + m_A96 += gt[208]; + m_A96 += gt[209]; + m_A96 += gt[210]; + m_A96 += gt[211]; + m_A97 += go[199]; + m_A97 += go[200]; + m_A94 += go[201]; + m_A94 += go[202]; + m_A94 += go[203]; + m_A94 += go[204]; + m_A95 += go[205]; + m_A95 += go[206]; + m_A95 += go[207]; + m_A93 += go[208]; + m_A98 += go[209]; + m_A98 += go[210]; + double RHS26 = Idr[199]; + RHS26 += Idr[200]; + RHS26 += Idr[201]; + RHS26 += Idr[202]; + RHS26 += Idr[203]; + RHS26 += Idr[204]; + RHS26 += Idr[205]; + RHS26 += Idr[206]; + RHS26 += Idr[207]; + RHS26 += Idr[208]; + RHS26 += Idr[209]; + RHS26 += Idr[210]; + RHS26 += Idr[211]; + RHS26 -= go[211] * *cnV[211]; + m_A101 += gt[212]; + m_A101 += gt[213]; + m_A101 += gt[214]; + m_A101 += gt[215]; + m_A101 += gt[216]; + m_A101 += gt[217]; + m_A101 += gt[218]; + m_A101 += gt[219]; + m_A106 += go[212]; + m_A106 += go[213]; + m_A106 += go[214]; + m_A104 += go[215]; + m_A104 += go[216]; + m_A99 += go[217]; + m_A99 += go[218]; + m_A99 += go[219]; + double RHS27 = Idr[212]; + RHS27 += Idr[213]; + RHS27 += Idr[214]; + RHS27 += Idr[215]; + RHS27 += Idr[216]; + RHS27 += Idr[217]; + RHS27 += Idr[218]; + RHS27 += Idr[219]; + m_A116 += gt[220]; + m_A116 += gt[221]; + m_A116 += gt[222]; + m_A116 += gt[223]; + m_A116 += gt[224]; + m_A108 += go[220]; + m_A110 += go[221]; + m_A113 += go[222]; + m_A112 += go[223]; + m_A107 += go[224]; + double RHS28 = Idr[220]; + RHS28 += Idr[221]; + RHS28 += Idr[222]; + RHS28 += Idr[223]; + RHS28 += Idr[224]; + m_A124 += gt[225]; + m_A124 += gt[226]; + m_A124 += gt[227]; + m_A124 += gt[228]; + m_A124 += gt[229]; + m_A124 += gt[230]; + m_A124 += gt[231]; + m_A124 += gt[232]; + m_A124 += gt[233]; + m_A123 += go[225]; + m_A123 += go[226]; + m_A127 += go[227]; + m_A126 += go[228]; + m_A122 += go[229]; + m_A122 += go[230]; + double RHS29 = Idr[225]; + RHS29 += Idr[226]; + RHS29 += Idr[227]; + RHS29 += Idr[228]; + RHS29 += Idr[229]; + RHS29 += Idr[230]; + RHS29 += Idr[231]; + RHS29 += Idr[232]; + RHS29 += Idr[233]; + RHS29 -= go[231] * *cnV[231]; + RHS29 -= go[232] * *cnV[232]; + RHS29 -= go[233] * *cnV[233]; + m_A133 += gt[234]; + m_A133 += gt[235]; + m_A133 += gt[236]; + m_A133 += gt[237]; + m_A133 += gt[238]; + m_A133 += gt[239]; + m_A130 += go[234]; + m_A139 += go[235]; + m_A129 += go[236]; + m_A128 += go[237]; + double RHS30 = Idr[234]; + RHS30 += Idr[235]; + RHS30 += Idr[236]; + RHS30 += Idr[237]; + RHS30 += Idr[238]; + RHS30 += Idr[239]; + RHS30 -= go[238] * *cnV[238]; + RHS30 -= go[239] * *cnV[239]; + m_A142 += gt[240]; + m_A142 += gt[241]; + m_A142 += gt[242]; + m_A142 += gt[243]; + m_A142 += gt[244]; + m_A142 += gt[245]; + m_A142 += gt[246]; + m_A142 += gt[247]; + m_A142 += gt[248]; + m_A142 += gt[249]; + m_A142 += gt[250]; + m_A143 += go[240]; + m_A144 += go[241]; + m_A144 += go[242]; + m_A141 += go[243]; + m_A141 += go[244]; + m_A141 += go[245]; + m_A140 += go[246]; + m_A140 += go[247]; + double RHS31 = Idr[240]; + RHS31 += Idr[241]; + RHS31 += Idr[242]; + RHS31 += Idr[243]; + RHS31 += Idr[244]; + RHS31 += Idr[245]; + RHS31 += Idr[246]; + RHS31 += Idr[247]; + RHS31 += Idr[248]; + RHS31 += Idr[249]; + RHS31 += Idr[250]; + RHS31 -= go[248] * *cnV[248]; + RHS31 -= go[249] * *cnV[249]; + RHS31 -= go[250] * *cnV[250]; + m_A152 += gt[251]; + m_A152 += gt[252]; + m_A152 += gt[253]; + m_A152 += gt[254]; + m_A152 += gt[255]; + m_A152 += gt[256]; + m_A152 += gt[257]; + m_A152 += gt[258]; + m_A152 += gt[259]; + m_A152 += gt[260]; + m_A152 += gt[261]; + m_A148 += go[251]; + m_A146 += go[252]; + m_A147 += go[253]; + m_A145 += go[254]; + m_A145 += go[255]; + m_A145 += go[256]; + m_A156 += go[257]; + m_A156 += go[258]; + m_A149 += go[259]; + m_A149 += go[260]; + double RHS32 = Idr[251]; + RHS32 += Idr[252]; + RHS32 += Idr[253]; + RHS32 += Idr[254]; + RHS32 += Idr[255]; + RHS32 += Idr[256]; + RHS32 += Idr[257]; + RHS32 += Idr[258]; + RHS32 += Idr[259]; + RHS32 += Idr[260]; + RHS32 += Idr[261]; + RHS32 -= go[261] * *cnV[261]; + m_A164 += gt[262]; + m_A164 += gt[263]; + m_A164 += gt[264]; + m_A164 += gt[265]; + m_A164 += gt[266]; + m_A164 += gt[267]; + m_A164 += gt[268]; + m_A164 += gt[269]; + m_A164 += gt[270]; + m_A164 += gt[271]; + m_A164 += gt[272]; + m_A164 += gt[273]; + m_A164 += gt[274]; + m_A164 += gt[275]; + m_A168 += go[262]; + m_A164 += go[263]; + m_A164 += go[264]; + m_A164 += go[265]; + m_A164 += go[266]; + m_A160 += go[267]; + m_A160 += go[268]; + m_A158 += go[269]; + m_A158 += go[270]; + double RHS33 = Idr[262]; + RHS33 += Idr[263]; + RHS33 += Idr[264]; + RHS33 += Idr[265]; + RHS33 += Idr[266]; + RHS33 += Idr[267]; + RHS33 += Idr[268]; + RHS33 += Idr[269]; + RHS33 += Idr[270]; + RHS33 += Idr[271]; + RHS33 += Idr[272]; + RHS33 += Idr[273]; + RHS33 += Idr[274]; + RHS33 += Idr[275]; + RHS33 -= go[271] * *cnV[271]; + RHS33 -= go[272] * *cnV[272]; + RHS33 -= go[273] * *cnV[273]; + RHS33 -= go[274] * *cnV[274]; + RHS33 -= go[275] * *cnV[275]; + m_A176 += gt[276]; + m_A176 += gt[277]; + m_A176 += gt[278]; + m_A176 += gt[279]; + m_A176 += gt[280]; + m_A176 += gt[281]; + m_A176 += gt[282]; + m_A176 += gt[283]; + m_A176 += gt[284]; + m_A176 += gt[285]; + m_A176 += gt[286]; + m_A172 += go[276]; + m_A171 += go[277]; + m_A171 += go[278]; + m_A170 += go[279]; + m_A170 += go[280]; + m_A170 += go[281]; + m_A169 += go[282]; + m_A169 += go[283]; + double RHS34 = Idr[276]; + RHS34 += Idr[277]; + RHS34 += Idr[278]; + RHS34 += Idr[279]; + RHS34 += Idr[280]; + RHS34 += Idr[281]; + RHS34 += Idr[282]; + RHS34 += Idr[283]; + RHS34 += Idr[284]; + RHS34 += Idr[285]; + RHS34 += Idr[286]; + RHS34 -= go[284] * *cnV[284]; + RHS34 -= go[285] * *cnV[285]; + RHS34 -= go[286] * *cnV[286]; + m_A190 += gt[287]; + m_A190 += gt[288]; + m_A190 += gt[289]; + m_A190 += gt[290]; + m_A190 += gt[291]; + m_A190 += gt[292]; + m_A190 += gt[293]; + m_A190 += gt[294]; + m_A190 += gt[295]; + m_A182 += go[287]; + m_A182 += go[288]; + m_A181 += go[289]; + m_A186 += go[290]; + m_A180 += go[291]; + m_A180 += go[292]; + double RHS35 = Idr[287]; + RHS35 += Idr[288]; + RHS35 += Idr[289]; + RHS35 += Idr[290]; + RHS35 += Idr[291]; + RHS35 += Idr[292]; + RHS35 += Idr[293]; + RHS35 += Idr[294]; + RHS35 += Idr[295]; + RHS35 -= go[293] * *cnV[293]; + RHS35 -= go[294] * *cnV[294]; + RHS35 -= go[295] * *cnV[295]; + m_A203 += gt[296]; + m_A203 += gt[297]; + m_A203 += gt[298]; + m_A203 += gt[299]; + m_A203 += gt[300]; + m_A203 += gt[301]; + m_A203 += gt[302]; + m_A203 += gt[303]; + m_A203 += gt[304]; + m_A203 += gt[305]; + m_A203 += gt[306]; + m_A195 += go[296]; + m_A195 += go[297]; + m_A199 += go[298]; + m_A199 += go[299]; + m_A197 += go[300]; + m_A196 += go[301]; + m_A196 += go[302]; + m_A194 += go[303]; + m_A194 += go[304]; + m_A194 += go[305]; + double RHS36 = Idr[296]; + RHS36 += Idr[297]; + RHS36 += Idr[298]; + RHS36 += Idr[299]; + RHS36 += Idr[300]; + RHS36 += Idr[301]; + RHS36 += Idr[302]; + RHS36 += Idr[303]; + RHS36 += Idr[304]; + RHS36 += Idr[305]; + RHS36 += Idr[306]; + RHS36 -= go[306] * *cnV[306]; + m_A212 += gt[307]; + m_A212 += gt[308]; + m_A212 += gt[309]; + m_A212 += gt[310]; + m_A212 += gt[311]; + m_A212 += gt[312]; + m_A212 += gt[313]; + m_A212 += gt[314]; + m_A212 += gt[315]; + m_A212 += gt[316]; + m_A212 += gt[317]; + m_A212 += gt[318]; + m_A212 += gt[319]; + m_A213 += go[307]; + m_A213 += go[308]; + m_A207 += go[309]; + m_A207 += go[310]; + m_A207 += go[311]; + m_A207 += go[312]; + m_A208 += go[313]; + m_A208 += go[314]; + m_A208 += go[315]; + m_A206 += go[316]; + m_A209 += go[317]; + m_A209 += go[318]; + double RHS37 = Idr[307]; + RHS37 += Idr[308]; + RHS37 += Idr[309]; + RHS37 += Idr[310]; + RHS37 += Idr[311]; + RHS37 += Idr[312]; + RHS37 += Idr[313]; + RHS37 += Idr[314]; + RHS37 += Idr[315]; + RHS37 += Idr[316]; + RHS37 += Idr[317]; + RHS37 += Idr[318]; + RHS37 += Idr[319]; + RHS37 -= go[319] * *cnV[319]; + m_A226 += gt[320]; + m_A226 += gt[321]; + m_A226 += gt[322]; + m_A226 += gt[323]; + m_A226 += gt[324]; + m_A226 += gt[325]; + m_A226 += gt[326]; + m_A226 += gt[327]; + m_A226 += gt[328]; + m_A226 += gt[329]; + m_A226 += gt[330]; + m_A219 += go[320]; + m_A215 += go[321]; + m_A221 += go[322]; + m_A217 += go[323]; + m_A217 += go[324]; + m_A217 += go[325]; + m_A214 += go[326]; + m_A214 += go[327]; + m_A225 += go[328]; + m_A225 += go[329]; + double RHS38 = Idr[320]; + RHS38 += Idr[321]; + RHS38 += Idr[322]; + RHS38 += Idr[323]; + RHS38 += Idr[324]; + RHS38 += Idr[325]; + RHS38 += Idr[326]; + RHS38 += Idr[327]; + RHS38 += Idr[328]; + RHS38 += Idr[329]; + RHS38 += Idr[330]; + RHS38 -= go[330] * *cnV[330]; const double f0 = 1.0 / m_A0; - const double f0_31 = -f0 * m_A102; - m_A103 += m_A1 * f0_31; - RHS31 += f0_31 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_20 = -f1 * m_A53; - m_A55 += m_A3 * f1_20; - RHS20 += f1_20 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_20 = -f2 * m_A54; - m_A55 += m_A5 * f2_20; - m_A56 += m_A6 * f2_20; - RHS20 += f2_20 * RHS2; - const double f2_21 = -f2 * m_A57; - m_A59 += m_A5 * f2_21; - m_A60 += m_A6 * f2_21; - RHS21 += f2_21 * RHS2; - const double f2_34 = -f2 * m_A116; - m_A117 += m_A5 * f2_34; - m_A118 += m_A6 * f2_34; - RHS34 += f2_34 * RHS2; - const double f3 = 1.0 / m_A7; - const double f3_21 = -f3 * m_A58; - m_A60 += m_A8 * f3_21; - m_A61 += m_A9 * f3_21; - m_A62 += m_A10 * f3_21; - RHS21 += f3_21 * RHS3; - const double f3_25 = -f3 * m_A72; - m_A74 += m_A8 * f3_25; - m_A76 += m_A9 * f3_25; - m_A78 += m_A10 * f3_25; - RHS25 += f3_25 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_24 = -f4 * m_A67; - m_A69 += m_A12 * f4_24; - RHS24 += f4_24 * RHS4; - const double f5 = 1.0 / m_A13; - const double f5_29 = -f5 * m_A90; - m_A91 += m_A14 * f5_29; - m_A93 += m_A15 * f5_29; - RHS29 += f5_29 * RHS5; - const double f6 = 1.0 / m_A16; - const double f6_26 = -f6 * m_A79; - m_A81 += m_A17 * f6_26; + const double f0_16 = -f0 * m_A48; + m_A49 += m_A1 * f0_16; + m_A50 += m_A2 * f0_16; + m_A51 += m_A3 * f0_16; + RHS16 += f0_16 * RHS0; + const double f0_26 = -f0 * m_A93; + m_A95 += m_A1 * f0_26; + m_A96 += m_A2 * f0_26; + m_A98 += m_A3 * f0_26; + RHS26 += f0_26 * RHS0; + const double f0_34 = -f0 * m_A169; + m_A170 += m_A1 * f0_34; + m_A171 += m_A2 * f0_34; + m_A176 += m_A3 * f0_34; + RHS34 += f0_34 * RHS0; + const double f1 = 1.0 / m_A4; + const double f1_29 = -f1 * m_A122; + m_A124 += m_A5 * f1_29; + RHS29 += f1_29 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_24 = -f2 * m_A78; + m_A79 += m_A7 * f2_24; + m_A80 += m_A8 * f2_24; + m_A81 += m_A9 * f2_24; + RHS24 += f2_24 * RHS2; + const double f2_31 = -f2 * m_A140; + m_A141 += m_A7 * f2_31; + m_A142 += m_A8 * f2_31; + m_A144 += m_A9 * f2_31; + RHS31 += f2_31 * RHS2; + const double f2_37 = -f2 * m_A206; + m_A208 += m_A7 * f2_37; + m_A209 += m_A8 * f2_37; + m_A212 += m_A9 * f2_37; + RHS37 += f2_37 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_35 = -f3 * m_A180; + m_A190 += m_A11 * f3_35; + RHS35 += f3_35 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_18 = -f4 * m_A55; + m_A59 += m_A13 * f4_18; + RHS18 += f4_18 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_21 = -f5 * m_A67; + m_A68 += m_A15 * f5_21; + m_A69 += m_A16 * f5_21; + m_A70 += m_A17 * f5_21; + RHS21 += f5_21 * RHS5; + const double f5_32 = -f5 * m_A145; + m_A147 += m_A15 * f5_32; + m_A152 += m_A16 * f5_32; + m_A156 += m_A17 * f5_32; + RHS32 += f5_32 * RHS5; + const double f5_36 = -f5 * m_A194; + m_A196 += m_A15 * f5_36; + m_A199 += m_A16 * f5_36; + m_A203 += m_A17 * f5_36; + RHS36 += f5_36 * RHS5; + const double f6 = 1.0 / m_A18; + const double f6_26 = -f6 * m_A94; + m_A96 += m_A19 * f6_26; + m_A97 += m_A20 * f6_26; RHS26 += f6_26 * RHS6; - const double f7 = 1.0 / m_A18; - const double f7_27 = -f7 * m_A83; - m_A84 += m_A19 * f7_27; - RHS27 += f7_27 * RHS7; - const double f8 = 1.0 / m_A20; - const double f8_24 = -f8 * m_A68; - m_A69 += m_A21 * f8_24; - m_A70 += m_A22 * f8_24; - m_A71 += m_A23 * f8_24; - RHS24 += f8_24 * RHS8; - const double f8_25 = -f8 * m_A73; - m_A75 += m_A21 * f8_25; - m_A76 += m_A22 * f8_25; - m_A77 += m_A23 * f8_25; - RHS25 += f8_25 * RHS8; - const double f8_29 = -f8 * m_A91; - m_A93 += m_A21 * f8_29; - m_A94 += m_A22 * f8_29; - m_A95 += m_A23 * f8_29; - RHS29 += f8_29 * RHS8; - const double f9 = 1.0 / m_A24; - const double f9_28 = -f9 * m_A86; - m_A88 += m_A25 * f9_28; - RHS28 += f9_28 * RHS9; - const double f10 = 1.0 / m_A26; - const double f10_26 = -f10 * m_A80; - m_A81 += m_A27 * f10_26; - m_A82 += m_A28 * f10_26; - RHS26 += f10_26 * RHS10; - const double f10_33 = -f10 * m_A112; - m_A113 += m_A27 * f10_33; - m_A115 += m_A28 * f10_33; - RHS33 += f10_33 * RHS10; - const double f10_36 = -f10 * m_A127; - m_A129 += m_A27 * f10_36; - m_A132 += m_A28 * f10_36; - RHS36 += f10_36 * RHS10; + const double f6_32 = -f6 * m_A146; + m_A149 += m_A19 * f6_32; + m_A152 += m_A20 * f6_32; + RHS32 += f6_32 * RHS6; + const double f7 = 1.0 / m_A21; + const double f7_22 = -f7 * m_A71; + m_A74 += m_A22 * f7_22; + RHS22 += f7_22 * RHS7; + const double f8 = 1.0 / m_A23; + const double f8_18 = -f8 * m_A56; + m_A59 += m_A24 * f8_18; + RHS18 += f8_18 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_23 = -f9 * m_A75; + m_A76 += m_A26 * f9_23; + RHS23 += f9_23 * RHS9; + const double f10 = 1.0 / m_A27; + const double f10_18 = -f10 * m_A57; + m_A59 += m_A28 * f10_18; + RHS18 += f10_18 * RHS10; const double f11 = 1.0 / m_A29; - const double f11_32 = -f11 * m_A105; - m_A110 += m_A30 * f11_32; - RHS32 += f11_32 * RHS11; - const double f12 = 1.0 / m_A31; - const double f12_28 = -f12 * m_A87; - m_A88 += m_A32 * f12_28; - m_A89 += m_A33 * f12_28; - RHS28 += f12_28 * RHS12; - const double f12_30 = -f12 * m_A98; - m_A99 += m_A32 * f12_30; - m_A101 += m_A33 * f12_30; - RHS30 += f12_30 * RHS12; - const double f12_32 = -f12 * m_A106; - m_A108 += m_A32 * f12_32; - m_A110 += m_A33 * f12_32; - RHS32 += f12_32 * RHS12; - const double f13 = 1.0 / m_A34; - const double f13_29 = -f13 * m_A92; - m_A95 += m_A35 * f13_29; - m_A97 += m_A36 * f13_29; - RHS29 += f13_29 * RHS13; - const double f13_37 = -f13 * m_A134; - m_A141 += m_A35 * f13_37; - m_A149 += m_A36 * f13_37; - RHS37 += f13_37 * RHS13; - const double f14 = 1.0 / m_A37; - const double f14_35 = -f14 * m_A123; - m_A125 += m_A38 * f14_35; - RHS35 += f14_35 * RHS14; - const double f15 = 1.0 / m_A39; - const double f15_35 = -f15 * m_A124; - m_A125 += m_A40 * f15_35; - RHS35 += f15_35 * RHS15; - const double f16 = 1.0 / m_A41; - const double f16_37 = -f16 * m_A135; - m_A149 += m_A42 * f16_37; - RHS37 += f16_37 * RHS16; - const double f17 = 1.0 / m_A43; - const double f17_36 = -f17 * m_A128; - m_A131 += m_A44 * f17_36; - m_A132 += m_A45 * f17_36; - m_A133 += m_A46 * f17_36; - RHS36 += f17_36 * RHS17; - const double f17_37 = -f17 * m_A136; - m_A145 += m_A44 * f17_37; - m_A148 += m_A45 * f17_37; - m_A149 += m_A46 * f17_37; + const double f11_18 = -f11 * m_A58; + m_A59 += m_A30 * f11_18; + m_A60 += m_A31 * f11_18; + RHS18 += f11_18 * RHS11; + const double f11_28 = -f11 * m_A107; + m_A111 += m_A30 * f11_28; + m_A116 += m_A31 * f11_28; + RHS28 += f11_28 * RHS11; + const double f12 = 1.0 / m_A32; + const double f12_25 = -f12 * m_A82; + m_A83 += m_A33 * f12_25; + m_A86 += m_A34 * f12_25; + m_A88 += m_A35 * f12_25; + RHS25 += f12_25 * RHS12; + const double f12_28 = -f12 * m_A108; + m_A109 += m_A33 * f12_28; + m_A114 += m_A34 * f12_28; + m_A116 += m_A35 * f12_28; + RHS28 += f12_28 * RHS12; + const double f13 = 1.0 / m_A36; + const double f13_25 = -f13 * m_A83; + m_A85 += m_A37 * f13_25; + m_A88 += m_A38 * f13_25; + RHS25 += f13_25 * RHS13; + const double f13_28 = -f13 * m_A109; + m_A110 += m_A37 * f13_28; + m_A116 += m_A38 * f13_28; + RHS28 += f13_28 * RHS13; + const double f14 = 1.0 / m_A39; + const double f14_25 = -f14 * m_A84; + m_A86 += m_A40 * f14_25; + m_A87 += m_A41 * f14_25; + m_A90 += m_A42 * f14_25; + m_A91 += m_A43 * f14_25; + m_A92 += m_A44 * f14_25; + RHS25 += f14_25 * RHS14; + const double f14_27 = -f14 * m_A99; + m_A100 += m_A40 * f14_27; + m_A101 += m_A41 * f14_27; + m_A104 += m_A42 * f14_27; + m_A105 += m_A43 * f14_27; + m_A106 += m_A44 * f14_27; + RHS27 += f14_27 * RHS14; + const double f14_33 = -f14 * m_A158; + m_A159 += m_A40 * f14_33; + m_A160 += m_A41 * f14_33; + m_A164 += m_A42 * f14_33; + m_A166 += m_A43 * f14_33; + m_A168 += m_A44 * f14_33; + RHS33 += f14_33 * RHS14; + const double f14_35 = -f14 * m_A181; + m_A182 += m_A40 * f14_35; + m_A183 += m_A41 * f14_35; + m_A188 += m_A42 * f14_35; + m_A190 += m_A43 * f14_35; + m_A193 += m_A44 * f14_35; + RHS35 += f14_35 * RHS14; + const double f14_38 = -f14 * m_A214; + m_A216 += m_A40 * f14_38; + m_A217 += m_A41 * f14_38; + m_A221 += m_A42 * f14_38; + m_A223 += m_A43 * f14_38; + m_A226 += m_A44 * f14_38; + RHS38 += f14_38 * RHS14; + const double f15 = 1.0 / m_A45; + const double f15_25 = -f15 * m_A85; + m_A88 += m_A46 * f15_25; + m_A89 += m_A47 * f15_25; + RHS25 += f15_25 * RHS15; + const double f15_28 = -f15 * m_A110; + m_A116 += m_A46 * f15_28; + m_A117 += m_A47 * f15_28; + RHS28 += f15_28 * RHS15; + const double f15_30 = -f15 * m_A128; + m_A131 += m_A46 * f15_30; + m_A133 += m_A47 * f15_30; + RHS30 += f15_30 * RHS15; + const double f16 = 1.0 / m_A49; + const double f16_26 = -f16 * m_A95; + m_A96 += m_A50 * f16_26; + m_A98 += m_A51 * f16_26; + RHS26 += f16_26 * RHS16; + const double f16_34 = -f16 * m_A170; + m_A171 += m_A50 * f16_34; + m_A176 += m_A51 * f16_34; + RHS34 += f16_34 * RHS16; + const double f17 = 1.0 / m_A52; + const double f17_37 = -f17 * m_A207; + m_A212 += m_A53 * f17_37; + m_A213 += m_A54 * f17_37; RHS37 += f17_37 * RHS17; - const double f18 = 1.0 / m_A47; - const double f18_32 = -f18 * m_A107; - m_A109 += m_A48 * f18_32; - m_A110 += m_A49 * f18_32; - m_A111 += m_A50 * f18_32; - RHS32 += f18_32 * RHS18; - const double f18_37 = -f18 * m_A137; - m_A142 += m_A48 * f18_37; - m_A144 += m_A49 * f18_37; - m_A149 += m_A50 * f18_37; - RHS37 += f18_37 * RHS18; - const double f19 = 1.0 / m_A51; - const double f19_37 = -f19 * m_A138; - m_A149 += m_A52 * f19_37; - RHS37 += f19_37 * RHS19; - const double f20 = 1.0 / m_A55; - const double f20_21 = -f20 * m_A59; - m_A60 += m_A56 * f20_21; - RHS21 += f20_21 * RHS20; - const double f20_34 = -f20 * m_A117; - m_A118 += m_A56 * f20_34; - RHS34 += f20_34 * RHS20; - const double f21 = 1.0 / m_A60; - const double f21_25 = -f21 * m_A74; - m_A76 += m_A61 * f21_25; - m_A78 += m_A62 * f21_25; - RHS25 += f21_25 * RHS21; - const double f21_34 = -f21 * m_A118; - m_A119 += m_A61 * f21_34; - m_A121 += m_A62 * f21_34; - RHS34 += f21_34 * RHS21; - const double f22 = 1.0 / m_A63; - const double f22_37 = -f22 * m_A139; - m_A149 += m_A64 * f22_37; - RHS37 += f22_37 * RHS22; - const double f23 = 1.0 / m_A65; - const double f23_37 = -f23 * m_A140; - m_A149 += m_A66 * f23_37; - RHS37 += f23_37 * RHS23; - const double f24 = 1.0 / m_A69; - const double f24_25 = -f24 * m_A75; - m_A76 += m_A70 * f24_25; - m_A77 += m_A71 * f24_25; - RHS25 += f24_25 * RHS24; - const double f24_29 = -f24 * m_A93; - m_A94 += m_A70 * f24_29; - m_A95 += m_A71 * f24_29; - RHS29 += f24_29 * RHS24; - const double f25 = 1.0 / m_A76; - const double f25_29 = -f25 * m_A94; - m_A95 += m_A77 * f25_29; - m_A96 += m_A78 * f25_29; - RHS29 += f25_29 * RHS25; - const double f25_34 = -f25 * m_A119; - m_A120 += m_A77 * f25_34; - m_A121 += m_A78 * f25_34; - RHS34 += f25_34 * RHS25; - const double f26 = 1.0 / m_A81; - const double f26_33 = -f26 * m_A113; - m_A115 += m_A82 * f26_33; - RHS33 += f26_33 * RHS26; - const double f26_36 = -f26 * m_A129; - m_A132 += m_A82 * f26_36; - RHS36 += f26_36 * RHS26; - const double f27 = 1.0 / m_A84; - const double f27_36 = -f27 * m_A130; - m_A132 += m_A85 * f27_36; - RHS36 += f27_36 * RHS27; - const double f28 = 1.0 / m_A88; - const double f28_30 = -f28 * m_A99; - m_A101 += m_A89 * f28_30; + const double f17_38 = -f17 * m_A215; + m_A225 += m_A53 * f17_38; + m_A226 += m_A54 * f17_38; + RHS38 += f17_38 * RHS17; + const double f18 = 1.0 / m_A59; + const double f18_28 = -f18 * m_A111; + m_A116 += m_A60 * f18_28; + RHS28 += f18_28 * RHS18; + const double f19 = 1.0 / m_A61; + const double f19_29 = -f19 * m_A123; + m_A124 += m_A62 * f19_29; + m_A125 += m_A63 * f19_29; + m_A127 += m_A64 * f19_29; + RHS29 += f19_29 * RHS19; + const double f19_30 = -f19 * m_A129; + m_A132 += m_A62 * f19_30; + m_A133 += m_A63 * f19_30; + m_A138 += m_A64 * f19_30; + RHS30 += f19_30 * RHS19; + const double f19_36 = -f19 * m_A195; + m_A197 += m_A62 * f19_36; + m_A198 += m_A63 * f19_36; + m_A203 += m_A64 * f19_36; + RHS36 += f19_36 * RHS19; + const double f20 = 1.0 / m_A65; + const double f20_30 = -f20 * m_A130; + m_A139 += m_A66 * f20_30; + RHS30 += f20_30 * RHS20; + const double f21 = 1.0 / m_A68; + const double f21_32 = -f21 * m_A147; + m_A152 += m_A69 * f21_32; + m_A156 += m_A70 * f21_32; + RHS32 += f21_32 * RHS21; + const double f21_36 = -f21 * m_A196; + m_A199 += m_A69 * f21_36; + m_A203 += m_A70 * f21_36; + RHS36 += f21_36 * RHS21; + const double f22 = 1.0 / m_A72; + const double f22_28 = -f22 * m_A112; + m_A116 += m_A73 * f22_28; + m_A118 += m_A74 * f22_28; + RHS28 += f22_28 * RHS22; + const double f22_32 = -f22 * m_A148; + m_A150 += m_A73 * f22_32; + m_A152 += m_A74 * f22_32; + RHS32 += f22_32 * RHS22; + const double f23 = 1.0 / m_A76; + const double f23_28 = -f23 * m_A113; + m_A116 += m_A77 * f23_28; + RHS28 += f23_28 * RHS23; + const double f24 = 1.0 / m_A79; + const double f24_31 = -f24 * m_A141; + m_A142 += m_A80 * f24_31; + m_A144 += m_A81 * f24_31; + RHS31 += f24_31 * RHS24; + const double f24_37 = -f24 * m_A208; + m_A209 += m_A80 * f24_37; + m_A212 += m_A81 * f24_37; + RHS37 += f24_37 * RHS24; + const double f25 = 1.0 / m_A86; + const double f25_27 = -f25 * m_A100; + m_A101 += m_A87 * f25_27; + m_A102 += m_A88 * f25_27; + m_A103 += m_A89 * f25_27; + m_A104 += m_A90 * f25_27; + m_A105 += m_A91 * f25_27; + m_A106 += m_A92 * f25_27; + RHS27 += f25_27 * RHS25; + const double f25_28 = -f25 * m_A114; + m_A115 += m_A87 * f25_28; + m_A116 += m_A88 * f25_28; + m_A117 += m_A89 * f25_28; + m_A119 += m_A90 * f25_28; + m_A120 += m_A91 * f25_28; + m_A121 += m_A92 * f25_28; + RHS28 += f25_28 * RHS25; + const double f25_33 = -f25 * m_A159; + m_A160 += m_A87 * f25_33; + m_A161 += m_A88 * f25_33; + m_A162 += m_A89 * f25_33; + m_A164 += m_A90 * f25_33; + m_A166 += m_A91 * f25_33; + m_A168 += m_A92 * f25_33; + RHS33 += f25_33 * RHS25; + const double f25_35 = -f25 * m_A182; + m_A183 += m_A87 * f25_35; + m_A184 += m_A88 * f25_35; + m_A185 += m_A89 * f25_35; + m_A188 += m_A90 * f25_35; + m_A190 += m_A91 * f25_35; + m_A193 += m_A92 * f25_35; + RHS35 += f25_35 * RHS25; + const double f25_38 = -f25 * m_A216; + m_A217 += m_A87 * f25_38; + m_A218 += m_A88 * f25_38; + m_A219 += m_A89 * f25_38; + m_A221 += m_A90 * f25_38; + m_A223 += m_A91 * f25_38; + m_A226 += m_A92 * f25_38; + RHS38 += f25_38 * RHS25; + const double f26 = 1.0 / m_A96; + const double f26_32 = -f26 * m_A149; + m_A152 += m_A97 * f26_32; + m_A154 += m_A98 * f26_32; + RHS32 += f26_32 * RHS26; + const double f26_34 = -f26 * m_A171; + m_A174 += m_A97 * f26_34; + m_A176 += m_A98 * f26_34; + RHS34 += f26_34 * RHS26; + const double f27 = 1.0 / m_A101; + const double f27_28 = -f27 * m_A115; + m_A116 += m_A102 * f27_28; + m_A117 += m_A103 * f27_28; + m_A119 += m_A104 * f27_28; + m_A120 += m_A105 * f27_28; + m_A121 += m_A106 * f27_28; + RHS28 += f27_28 * RHS27; + const double f27_33 = -f27 * m_A160; + m_A161 += m_A102 * f27_33; + m_A162 += m_A103 * f27_33; + m_A164 += m_A104 * f27_33; + m_A166 += m_A105 * f27_33; + m_A168 += m_A106 * f27_33; + RHS33 += f27_33 * RHS27; + const double f27_35 = -f27 * m_A183; + m_A184 += m_A102 * f27_35; + m_A185 += m_A103 * f27_35; + m_A188 += m_A104 * f27_35; + m_A190 += m_A105 * f27_35; + m_A193 += m_A106 * f27_35; + RHS35 += f27_35 * RHS27; + const double f27_38 = -f27 * m_A217; + m_A218 += m_A102 * f27_38; + m_A219 += m_A103 * f27_38; + m_A221 += m_A104 * f27_38; + m_A223 += m_A105 * f27_38; + m_A226 += m_A106 * f27_38; + RHS38 += f27_38 * RHS27; + const double f28 = 1.0 / m_A116; + const double f28_30 = -f28 * m_A131; + m_A133 += m_A117 * f28_30; + m_A134 += m_A118 * f28_30; + m_A135 += m_A119 * f28_30; + m_A137 += m_A120 * f28_30; + m_A139 += m_A121 * f28_30; RHS30 += f28_30 * RHS28; - const double f28_32 = -f28 * m_A108; - m_A110 += m_A89 * f28_32; + const double f28_32 = -f28 * m_A150; + m_A151 += m_A117 * f28_32; + m_A152 += m_A118 * f28_32; + m_A153 += m_A119 * f28_32; + m_A155 += m_A120 * f28_32; + m_A157 += m_A121 * f28_32; RHS32 += f28_32 * RHS28; - const double f29 = 1.0 / m_A95; - const double f29_34 = -f29 * m_A120; - m_A121 += m_A96 * f29_34; - m_A122 += m_A97 * f29_34; + const double f28_33 = -f28 * m_A161; + m_A162 += m_A117 * f28_33; + m_A163 += m_A118 * f28_33; + m_A164 += m_A119 * f28_33; + m_A166 += m_A120 * f28_33; + m_A168 += m_A121 * f28_33; + RHS33 += f28_33 * RHS28; + const double f28_35 = -f28 * m_A184; + m_A185 += m_A117 * f28_35; + m_A187 += m_A118 * f28_35; + m_A188 += m_A119 * f28_35; + m_A190 += m_A120 * f28_35; + m_A193 += m_A121 * f28_35; + RHS35 += f28_35 * RHS28; + const double f28_38 = -f28 * m_A218; + m_A219 += m_A117 * f28_38; + m_A220 += m_A118 * f28_38; + m_A221 += m_A119 * f28_38; + m_A223 += m_A120 * f28_38; + m_A226 += m_A121 * f28_38; + RHS38 += f28_38 * RHS28; + const double f29 = 1.0 / m_A124; + const double f29_30 = -f29 * m_A132; + m_A133 += m_A125 * f29_30; + m_A136 += m_A126 * f29_30; + m_A138 += m_A127 * f29_30; + RHS30 += f29_30 * RHS29; + const double f29_34 = -f29 * m_A172; + m_A173 += m_A125 * f29_34; + m_A176 += m_A126 * f29_34; + m_A178 += m_A127 * f29_34; RHS34 += f29_34 * RHS29; - const double f29_37 = -f29 * m_A141; - m_A146 += m_A96 * f29_37; - m_A149 += m_A97 * f29_37; - RHS37 += f29_37 * RHS29; - const double f30 = 1.0 / m_A100; - const double f30_32 = -f30 * m_A109; - m_A110 += m_A101 * f30_32; + const double f29_36 = -f29 * m_A197; + m_A198 += m_A125 * f29_36; + m_A201 += m_A126 * f29_36; + m_A203 += m_A127 * f29_36; + RHS36 += f29_36 * RHS29; + const double f30 = 1.0 / m_A133; + const double f30_32 = -f30 * m_A151; + m_A152 += m_A134 * f30_32; + m_A153 += m_A135 * f30_32; + m_A154 += m_A136 * f30_32; + m_A155 += m_A137 * f30_32; + m_A156 += m_A138 * f30_32; + m_A157 += m_A139 * f30_32; RHS32 += f30_32 * RHS30; - const double f30_37 = -f30 * m_A142; - m_A144 += m_A101 * f30_37; - RHS37 += f30_37 * RHS30; - const double f31 = 1.0 / m_A103; - const double f31_37 = -f31 * m_A143; - m_A149 += m_A104 * f31_37; + const double f30_33 = -f30 * m_A162; + m_A163 += m_A134 * f30_33; + m_A164 += m_A135 * f30_33; + m_A165 += m_A136 * f30_33; + m_A166 += m_A137 * f30_33; + m_A167 += m_A138 * f30_33; + m_A168 += m_A139 * f30_33; + RHS33 += f30_33 * RHS30; + const double f30_34 = -f30 * m_A173; + m_A174 += m_A134 * f30_34; + m_A175 += m_A135 * f30_34; + m_A176 += m_A136 * f30_34; + m_A177 += m_A137 * f30_34; + m_A178 += m_A138 * f30_34; + m_A179 += m_A139 * f30_34; + RHS34 += f30_34 * RHS30; + const double f30_35 = -f30 * m_A185; + m_A187 += m_A134 * f30_35; + m_A188 += m_A135 * f30_35; + m_A189 += m_A136 * f30_35; + m_A190 += m_A137 * f30_35; + m_A191 += m_A138 * f30_35; + m_A193 += m_A139 * f30_35; + RHS35 += f30_35 * RHS30; + const double f30_36 = -f30 * m_A198; + m_A199 += m_A134 * f30_36; + m_A200 += m_A135 * f30_36; + m_A201 += m_A136 * f30_36; + m_A202 += m_A137 * f30_36; + m_A203 += m_A138 * f30_36; + m_A205 += m_A139 * f30_36; + RHS36 += f30_36 * RHS30; + const double f30_38 = -f30 * m_A219; + m_A220 += m_A134 * f30_38; + m_A221 += m_A135 * f30_38; + m_A222 += m_A136 * f30_38; + m_A223 += m_A137 * f30_38; + m_A224 += m_A138 * f30_38; + m_A226 += m_A139 * f30_38; + RHS38 += f30_38 * RHS30; + const double f31 = 1.0 / m_A142; + const double f31_35 = -f31 * m_A186; + m_A190 += m_A143 * f31_35; + m_A192 += m_A144 * f31_35; + RHS35 += f31_35 * RHS31; + const double f31_37 = -f31 * m_A209; + m_A210 += m_A143 * f31_37; + m_A212 += m_A144 * f31_37; RHS37 += f31_37 * RHS31; - const double f32 = 1.0 / m_A110; - const double f32_37 = -f32 * m_A144; - m_A149 += m_A111 * f32_37; - RHS37 += f32_37 * RHS32; - const double f33 = 1.0 / m_A114; - const double f33_36 = -f33 * m_A131; - m_A132 += m_A115 * f33_36; + const double f32 = 1.0 / m_A152; + const double f32_33 = -f32 * m_A163; + m_A164 += m_A153 * f32_33; + m_A165 += m_A154 * f32_33; + m_A166 += m_A155 * f32_33; + m_A167 += m_A156 * f32_33; + m_A168 += m_A157 * f32_33; + RHS33 += f32_33 * RHS32; + const double f32_34 = -f32 * m_A174; + m_A175 += m_A153 * f32_34; + m_A176 += m_A154 * f32_34; + m_A177 += m_A155 * f32_34; + m_A178 += m_A156 * f32_34; + m_A179 += m_A157 * f32_34; + RHS34 += f32_34 * RHS32; + const double f32_35 = -f32 * m_A187; + m_A188 += m_A153 * f32_35; + m_A189 += m_A154 * f32_35; + m_A190 += m_A155 * f32_35; + m_A191 += m_A156 * f32_35; + m_A193 += m_A157 * f32_35; + RHS35 += f32_35 * RHS32; + const double f32_36 = -f32 * m_A199; + m_A200 += m_A153 * f32_36; + m_A201 += m_A154 * f32_36; + m_A202 += m_A155 * f32_36; + m_A203 += m_A156 * f32_36; + m_A205 += m_A157 * f32_36; + RHS36 += f32_36 * RHS32; + const double f32_38 = -f32 * m_A220; + m_A221 += m_A153 * f32_38; + m_A222 += m_A154 * f32_38; + m_A223 += m_A155 * f32_38; + m_A224 += m_A156 * f32_38; + m_A226 += m_A157 * f32_38; + RHS38 += f32_38 * RHS32; + const double f33 = 1.0 / m_A164; + const double f33_34 = -f33 * m_A175; + m_A176 += m_A165 * f33_34; + m_A177 += m_A166 * f33_34; + m_A178 += m_A167 * f33_34; + m_A179 += m_A168 * f33_34; + RHS34 += f33_34 * RHS33; + const double f33_35 = -f33 * m_A188; + m_A189 += m_A165 * f33_35; + m_A190 += m_A166 * f33_35; + m_A191 += m_A167 * f33_35; + m_A193 += m_A168 * f33_35; + RHS35 += f33_35 * RHS33; + const double f33_36 = -f33 * m_A200; + m_A201 += m_A165 * f33_36; + m_A202 += m_A166 * f33_36; + m_A203 += m_A167 * f33_36; + m_A205 += m_A168 * f33_36; RHS36 += f33_36 * RHS33; - const double f33_37 = -f33 * m_A145; - m_A148 += m_A115 * f33_37; - RHS37 += f33_37 * RHS33; - const double f34 = 1.0 / m_A121; - const double f34_37 = -f34 * m_A146; - m_A149 += m_A122 * f34_37; - RHS37 += f34_37 * RHS34; - const double f35 = 1.0 / m_A125; - const double f35_37 = -f35 * m_A147; - m_A149 += m_A126 * f35_37; + const double f33_38 = -f33 * m_A221; + m_A222 += m_A165 * f33_38; + m_A223 += m_A166 * f33_38; + m_A224 += m_A167 * f33_38; + m_A226 += m_A168 * f33_38; + RHS38 += f33_38 * RHS33; + const double f34 = 1.0 / m_A176; + const double f34_35 = -f34 * m_A189; + m_A190 += m_A177 * f34_35; + m_A191 += m_A178 * f34_35; + m_A193 += m_A179 * f34_35; + RHS35 += f34_35 * RHS34; + const double f34_36 = -f34 * m_A201; + m_A202 += m_A177 * f34_36; + m_A203 += m_A178 * f34_36; + m_A205 += m_A179 * f34_36; + RHS36 += f34_36 * RHS34; + const double f34_38 = -f34 * m_A222; + m_A223 += m_A177 * f34_38; + m_A224 += m_A178 * f34_38; + m_A226 += m_A179 * f34_38; + RHS38 += f34_38 * RHS34; + const double f35 = 1.0 / m_A190; + const double f35_36 = -f35 * m_A202; + m_A203 += m_A191 * f35_36; + m_A204 += m_A192 * f35_36; + m_A205 += m_A193 * f35_36; + RHS36 += f35_36 * RHS35; + const double f35_37 = -f35 * m_A210; + m_A211 += m_A191 * f35_37; + m_A212 += m_A192 * f35_37; + m_A213 += m_A193 * f35_37; RHS37 += f35_37 * RHS35; - const double f36 = 1.0 / m_A132; - const double f36_37 = -f36 * m_A148; - m_A149 += m_A133 * f36_37; + const double f35_38 = -f35 * m_A223; + m_A224 += m_A191 * f35_38; + m_A225 += m_A192 * f35_38; + m_A226 += m_A193 * f35_38; + RHS38 += f35_38 * RHS35; + const double f36 = 1.0 / m_A203; + const double f36_37 = -f36 * m_A211; + m_A212 += m_A204 * f36_37; + m_A213 += m_A205 * f36_37; RHS37 += f36_37 * RHS36; - V[37] = RHS37 / m_A149; + const double f36_38 = -f36 * m_A224; + m_A225 += m_A204 * f36_38; + m_A226 += m_A205 * f36_38; + RHS38 += f36_38 * RHS36; + const double f37 = 1.0 / m_A212; + const double f37_38 = -f37 * m_A225; + m_A226 += m_A213 * f37_38; + RHS38 += f37_38 * RHS37; + V[38] = RHS38 / m_A226; + double tmp37 = 0.0; + tmp37 += m_A213 * V[38]; + V[37] = (RHS37 - tmp37) / m_A212; double tmp36 = 0.0; - tmp36 += m_A133 * V[37]; - V[36] = (RHS36 - tmp36) / m_A132; + tmp36 += m_A204 * V[37]; + tmp36 += m_A205 * V[38]; + V[36] = (RHS36 - tmp36) / m_A203; double tmp35 = 0.0; - tmp35 += m_A126 * V[37]; - V[35] = (RHS35 - tmp35) / m_A125; + tmp35 += m_A191 * V[36]; + tmp35 += m_A192 * V[37]; + tmp35 += m_A193 * V[38]; + V[35] = (RHS35 - tmp35) / m_A190; double tmp34 = 0.0; - tmp34 += m_A122 * V[37]; - V[34] = (RHS34 - tmp34) / m_A121; + tmp34 += m_A177 * V[35]; + tmp34 += m_A178 * V[36]; + tmp34 += m_A179 * V[38]; + V[34] = (RHS34 - tmp34) / m_A176; double tmp33 = 0.0; - tmp33 += m_A115 * V[36]; - V[33] = (RHS33 - tmp33) / m_A114; + tmp33 += m_A165 * V[34]; + tmp33 += m_A166 * V[35]; + tmp33 += m_A167 * V[36]; + tmp33 += m_A168 * V[38]; + V[33] = (RHS33 - tmp33) / m_A164; double tmp32 = 0.0; - tmp32 += m_A111 * V[37]; - V[32] = (RHS32 - tmp32) / m_A110; + tmp32 += m_A153 * V[33]; + tmp32 += m_A154 * V[34]; + tmp32 += m_A155 * V[35]; + tmp32 += m_A156 * V[36]; + tmp32 += m_A157 * V[38]; + V[32] = (RHS32 - tmp32) / m_A152; double tmp31 = 0.0; - tmp31 += m_A104 * V[37]; - V[31] = (RHS31 - tmp31) / m_A103; + tmp31 += m_A143 * V[35]; + tmp31 += m_A144 * V[37]; + V[31] = (RHS31 - tmp31) / m_A142; double tmp30 = 0.0; - tmp30 += m_A101 * V[32]; - V[30] = (RHS30 - tmp30) / m_A100; + tmp30 += m_A134 * V[32]; + tmp30 += m_A135 * V[33]; + tmp30 += m_A136 * V[34]; + tmp30 += m_A137 * V[35]; + tmp30 += m_A138 * V[36]; + tmp30 += m_A139 * V[38]; + V[30] = (RHS30 - tmp30) / m_A133; double tmp29 = 0.0; - tmp29 += m_A96 * V[34]; - tmp29 += m_A97 * V[37]; - V[29] = (RHS29 - tmp29) / m_A95; + tmp29 += m_A125 * V[30]; + tmp29 += m_A126 * V[34]; + tmp29 += m_A127 * V[36]; + V[29] = (RHS29 - tmp29) / m_A124; double tmp28 = 0.0; - tmp28 += m_A89 * V[32]; - V[28] = (RHS28 - tmp28) / m_A88; + tmp28 += m_A117 * V[30]; + tmp28 += m_A118 * V[32]; + tmp28 += m_A119 * V[33]; + tmp28 += m_A120 * V[35]; + tmp28 += m_A121 * V[38]; + V[28] = (RHS28 - tmp28) / m_A116; double tmp27 = 0.0; - tmp27 += m_A85 * V[36]; - V[27] = (RHS27 - tmp27) / m_A84; + tmp27 += m_A102 * V[28]; + tmp27 += m_A103 * V[30]; + tmp27 += m_A104 * V[33]; + tmp27 += m_A105 * V[35]; + tmp27 += m_A106 * V[38]; + V[27] = (RHS27 - tmp27) / m_A101; double tmp26 = 0.0; - tmp26 += m_A82 * V[36]; - V[26] = (RHS26 - tmp26) / m_A81; + tmp26 += m_A97 * V[32]; + tmp26 += m_A98 * V[34]; + V[26] = (RHS26 - tmp26) / m_A96; double tmp25 = 0.0; - tmp25 += m_A77 * V[29]; - tmp25 += m_A78 * V[34]; - V[25] = (RHS25 - tmp25) / m_A76; + tmp25 += m_A87 * V[27]; + tmp25 += m_A88 * V[28]; + tmp25 += m_A89 * V[30]; + tmp25 += m_A90 * V[33]; + tmp25 += m_A91 * V[35]; + tmp25 += m_A92 * V[38]; + V[25] = (RHS25 - tmp25) / m_A86; double tmp24 = 0.0; - tmp24 += m_A70 * V[25]; - tmp24 += m_A71 * V[29]; - V[24] = (RHS24 - tmp24) / m_A69; + tmp24 += m_A80 * V[31]; + tmp24 += m_A81 * V[37]; + V[24] = (RHS24 - tmp24) / m_A79; double tmp23 = 0.0; - tmp23 += m_A66 * V[37]; - V[23] = (RHS23 - tmp23) / m_A65; + tmp23 += m_A77 * V[28]; + V[23] = (RHS23 - tmp23) / m_A76; double tmp22 = 0.0; - tmp22 += m_A64 * V[37]; - V[22] = (RHS22 - tmp22) / m_A63; + tmp22 += m_A73 * V[28]; + tmp22 += m_A74 * V[32]; + V[22] = (RHS22 - tmp22) / m_A72; double tmp21 = 0.0; - tmp21 += m_A61 * V[25]; - tmp21 += m_A62 * V[34]; - V[21] = (RHS21 - tmp21) / m_A60; + tmp21 += m_A69 * V[32]; + tmp21 += m_A70 * V[36]; + V[21] = (RHS21 - tmp21) / m_A68; double tmp20 = 0.0; - tmp20 += m_A56 * V[21]; - V[20] = (RHS20 - tmp20) / m_A55; + tmp20 += m_A66 * V[38]; + V[20] = (RHS20 - tmp20) / m_A65; double tmp19 = 0.0; - tmp19 += m_A52 * V[37]; - V[19] = (RHS19 - tmp19) / m_A51; + tmp19 += m_A62 * V[29]; + tmp19 += m_A63 * V[30]; + tmp19 += m_A64 * V[36]; + V[19] = (RHS19 - tmp19) / m_A61; double tmp18 = 0.0; - tmp18 += m_A48 * V[30]; - tmp18 += m_A49 * V[32]; - tmp18 += m_A50 * V[37]; - V[18] = (RHS18 - tmp18) / m_A47; + tmp18 += m_A60 * V[28]; + V[18] = (RHS18 - tmp18) / m_A59; double tmp17 = 0.0; - tmp17 += m_A44 * V[33]; - tmp17 += m_A45 * V[36]; - tmp17 += m_A46 * V[37]; - V[17] = (RHS17 - tmp17) / m_A43; + tmp17 += m_A53 * V[37]; + tmp17 += m_A54 * V[38]; + V[17] = (RHS17 - tmp17) / m_A52; double tmp16 = 0.0; - tmp16 += m_A42 * V[37]; - V[16] = (RHS16 - tmp16) / m_A41; + tmp16 += m_A50 * V[26]; + tmp16 += m_A51 * V[34]; + V[16] = (RHS16 - tmp16) / m_A49; double tmp15 = 0.0; - tmp15 += m_A40 * V[35]; - V[15] = (RHS15 - tmp15) / m_A39; + tmp15 += m_A46 * V[28]; + tmp15 += m_A47 * V[30]; + V[15] = (RHS15 - tmp15) / m_A45; double tmp14 = 0.0; - tmp14 += m_A38 * V[35]; - V[14] = (RHS14 - tmp14) / m_A37; + tmp14 += m_A40 * V[25]; + tmp14 += m_A41 * V[27]; + tmp14 += m_A42 * V[33]; + tmp14 += m_A43 * V[35]; + tmp14 += m_A44 * V[38]; + V[14] = (RHS14 - tmp14) / m_A39; double tmp13 = 0.0; - tmp13 += m_A35 * V[29]; - tmp13 += m_A36 * V[37]; - V[13] = (RHS13 - tmp13) / m_A34; + tmp13 += m_A37 * V[15]; + tmp13 += m_A38 * V[28]; + V[13] = (RHS13 - tmp13) / m_A36; double tmp12 = 0.0; - tmp12 += m_A32 * V[28]; - tmp12 += m_A33 * V[32]; - V[12] = (RHS12 - tmp12) / m_A31; + tmp12 += m_A33 * V[13]; + tmp12 += m_A34 * V[25]; + tmp12 += m_A35 * V[28]; + V[12] = (RHS12 - tmp12) / m_A32; double tmp11 = 0.0; - tmp11 += m_A30 * V[32]; + tmp11 += m_A30 * V[18]; + tmp11 += m_A31 * V[28]; V[11] = (RHS11 - tmp11) / m_A29; double tmp10 = 0.0; - tmp10 += m_A27 * V[26]; - tmp10 += m_A28 * V[36]; - V[10] = (RHS10 - tmp10) / m_A26; + tmp10 += m_A28 * V[18]; + V[10] = (RHS10 - tmp10) / m_A27; double tmp9 = 0.0; - tmp9 += m_A25 * V[28]; - V[9] = (RHS9 - tmp9) / m_A24; + tmp9 += m_A26 * V[23]; + V[9] = (RHS9 - tmp9) / m_A25; double tmp8 = 0.0; - tmp8 += m_A21 * V[24]; - tmp8 += m_A22 * V[25]; - tmp8 += m_A23 * V[29]; - V[8] = (RHS8 - tmp8) / m_A20; + tmp8 += m_A24 * V[18]; + V[8] = (RHS8 - tmp8) / m_A23; double tmp7 = 0.0; - tmp7 += m_A19 * V[27]; - V[7] = (RHS7 - tmp7) / m_A18; + tmp7 += m_A22 * V[32]; + V[7] = (RHS7 - tmp7) / m_A21; double tmp6 = 0.0; - tmp6 += m_A17 * V[26]; - V[6] = (RHS6 - tmp6) / m_A16; + tmp6 += m_A19 * V[26]; + tmp6 += m_A20 * V[32]; + V[6] = (RHS6 - tmp6) / m_A18; double tmp5 = 0.0; - tmp5 += m_A14 * V[8]; - tmp5 += m_A15 * V[24]; - V[5] = (RHS5 - tmp5) / m_A13; + tmp5 += m_A15 * V[21]; + tmp5 += m_A16 * V[32]; + tmp5 += m_A17 * V[36]; + V[5] = (RHS5 - tmp5) / m_A14; double tmp4 = 0.0; - tmp4 += m_A12 * V[24]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A13 * V[18]; + V[4] = (RHS4 - tmp4) / m_A12; double tmp3 = 0.0; - tmp3 += m_A8 * V[21]; - tmp3 += m_A9 * V[25]; - tmp3 += m_A10 * V[34]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A11 * V[35]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A5 * V[20]; - tmp2 += m_A6 * V[21]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[24]; + tmp2 += m_A8 * V[31]; + tmp2 += m_A9 * V[37]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[20]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A5 * V[29]; + V[1] = (RHS1 - tmp1) / m_A4; double tmp0 = 0.0; - tmp0 += m_A1 * V[31]; + tmp0 += m_A1 * V[16]; + tmp0 += m_A2 * V[26]; + tmp0 += m_A3 * V[34]; V[0] = (RHS0 - tmp0) / m_A0; } -// spacewar -static void nl_gcr_e9e8211f43d8f4b3_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// barrier +static void nl_gcr_f425d4008ae1d2c6_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -33575,137 +68516,73 @@ double m_A10(0.0); double m_A11(0.0); double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); m_A0 += gt[0]; m_A0 += gt[1]; + m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; + RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - m_A2 += gt[2]; + RHS0 -= go[2] * *cnV[2]; m_A2 += gt[3]; m_A2 += gt[4]; - m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A3 += go[2]; - m_A4 += go[3]; - double RHS1 = Idr[2]; - RHS1 += Idr[3]; + m_A3 += go[3]; + double RHS1 = Idr[3]; RHS1 += Idr[4]; - RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; RHS1 -= go[4] * *cnV[4]; - RHS1 -= go[5] * *cnV[5]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - m_A5 += gt[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A7 += go[9]; - m_A6 += go[10]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[11] * *cnV[11]; - m_A8 += gt[12]; - m_A8 += gt[13]; - m_A9 += go[12]; - double RHS3 = Idr[12]; - RHS3 += Idr[13]; - RHS3 -= go[13] * *cnV[13]; - m_A12 += gt[14]; - m_A12 += gt[15]; - m_A12 += gt[16]; - m_A11 += go[14]; - m_A10 += go[15]; - double RHS4 = Idr[14]; - RHS4 += Idr[15]; - RHS4 += Idr[16]; - RHS4 -= go[16] * *cnV[16]; - m_A17 += gt[17]; - m_A17 += gt[18]; - m_A17 += gt[19]; - m_A17 += gt[20]; - m_A17 += gt[21]; - m_A17 += gt[22]; - m_A14 += go[17]; - m_A18 += go[18]; - m_A15 += go[19]; - double RHS5 = Idr[17]; - RHS5 += Idr[18]; - RHS5 += Idr[19]; - RHS5 += Idr[20]; - RHS5 += Idr[21]; - RHS5 += Idr[22]; - RHS5 -= go[20] * *cnV[20]; - RHS5 -= go[21] * *cnV[21]; - RHS5 -= go[22] * *cnV[22]; - m_A21 += gt[23]; - m_A21 += gt[24]; - m_A19 += go[23]; - m_A20 += go[24]; - double RHS6 = Idr[23]; - RHS6 += Idr[24]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[8] * *cnV[8]; + m_A12 += gt[9]; + m_A12 += gt[10]; + m_A12 += gt[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A11 += go[9]; + m_A10 += go[10]; + m_A9 += go[11]; + m_A8 += go[12]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[13] * *cnV[13]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A10; + const double f0_4 = -f0 * m_A8; m_A12 += m_A1 * f0_4; RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A14; - m_A15 += m_A3 * f1_5; - m_A16 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_4 = -f2 * m_A11; - m_A12 += m_A6 * f2_4; - m_A13 += m_A7 * f2_4; + const double f1_4 = -f1 * m_A9; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A15; - m_A16 += m_A6 * f2_5; - m_A17 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_6 = -f3 * m_A19; - m_A21 += m_A9 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A12; - const double f4_5 = -f4 * m_A16; - m_A17 += m_A13 * f4_5; - RHS5 += f4_5 * RHS4; - const double f5 = 1.0 / m_A17; - const double f5_6 = -f5 * m_A20; - m_A21 += m_A18 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A21; - double tmp5 = 0.0; - tmp5 += m_A18 * V[6]; - V[5] = (RHS5 - tmp5) / m_A17; - double tmp4 = 0.0; - tmp4 += m_A13 * V[5]; - V[4] = (RHS4 - tmp4) / m_A12; + const double f3 = 1.0 / m_A6; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A7 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; double tmp3 = 0.0; - tmp3 += m_A9 * V[6]; - V[3] = (RHS3 - tmp3) / m_A8; + tmp3 += m_A7 * V[4]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A6 * V[4]; - tmp2 += m_A7 * V[5]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[4]; + tmp1 += m_A3 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; tmp0 += m_A1 * V[4]; @@ -33713,7 +68590,7 @@ } // boxingb -static void nl_gcr_ea2b6e3a05e6ef0b_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +static void nl_gcr_f43cf2a28a5a5561_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -33744,99 +68621,96 @@ m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; m_A2 += gt[6]; m_A2 += gt[7]; m_A2 += gt[8]; - m_A2 += gt[9]; - m_A4 += go[4]; + m_A4 += go[3]; + m_A3 += go[4]; m_A3 += go[5]; - m_A3 += go[6]; - double RHS1 = Idr[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; RHS1 += Idr[5]; RHS1 += Idr[6]; RHS1 += Idr[7]; RHS1 += Idr[8]; - RHS1 += Idr[9]; + RHS1 -= go[6] * *cnV[6]; RHS1 -= go[7] * *cnV[7]; RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; + m_A5 += gt[9]; m_A5 += gt[10]; m_A5 += gt[11]; m_A5 += gt[12]; - m_A5 += gt[13]; - m_A7 += go[10]; + m_A7 += go[9]; + m_A6 += go[10]; m_A6 += go[11]; - m_A6 += go[12]; - double RHS2 = Idr[10]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; RHS2 += Idr[11]; RHS2 += Idr[12]; - RHS2 += Idr[13]; - RHS2 -= go[13] * *cnV[13]; + RHS2 -= go[12] * *cnV[12]; + m_A8 += gt[13]; m_A8 += gt[14]; - m_A8 += gt[15]; - m_A9 += go[14]; - double RHS3 = Idr[14]; - RHS3 += Idr[15]; - RHS3 -= go[15] * *cnV[15]; + m_A9 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A12 += gt[15]; m_A12 += gt[16]; m_A12 += gt[17]; m_A12 += gt[18]; m_A12 += gt[19]; m_A12 += gt[20]; - m_A12 += gt[21]; + m_A11 += go[15]; m_A11 += go[16]; - m_A11 += go[17]; - m_A10 += go[18]; - double RHS4 = Idr[16]; + m_A10 += go[17]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; RHS4 += Idr[17]; RHS4 += Idr[18]; RHS4 += Idr[19]; RHS4 += Idr[20]; - RHS4 += Idr[21]; + RHS4 -= go[18] * *cnV[18]; RHS4 -= go[19] * *cnV[19]; RHS4 -= go[20] * *cnV[20]; - RHS4 -= go[21] * *cnV[21]; + m_A17 += gt[21]; m_A17 += gt[22]; m_A17 += gt[23]; m_A17 += gt[24]; m_A17 += gt[25]; - m_A17 += gt[26]; + m_A15 += go[21]; m_A15 += go[22]; - m_A15 += go[23]; - m_A14 += go[24]; - double RHS5 = Idr[22]; + m_A14 += go[23]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; RHS5 += Idr[23]; RHS5 += Idr[24]; RHS5 += Idr[25]; - RHS5 += Idr[26]; + RHS5 -= go[24] * *cnV[24]; RHS5 -= go[25] * *cnV[25]; - RHS5 -= go[26] * *cnV[26]; + m_A22 += gt[26]; m_A22 += gt[27]; m_A22 += gt[28]; m_A22 += gt[29]; m_A22 += gt[30]; - m_A22 += gt[31]; - m_A20 += go[27]; - m_A19 += go[28]; - double RHS6 = Idr[27]; + m_A20 += go[26]; + m_A19 += go[27]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; RHS6 += Idr[28]; RHS6 += Idr[29]; RHS6 += Idr[30]; - RHS6 += Idr[31]; + RHS6 -= go[28] * *cnV[28]; RHS6 -= go[29] * *cnV[29]; RHS6 -= go[30] * *cnV[30]; - RHS6 -= go[31] * *cnV[31]; const double f0 = 1.0 / m_A0; const double f0_4 = -f0 * m_A10; m_A12 += m_A1 * f0_4; @@ -33894,9 +68768,9 @@ V[0] = (RHS0 - tmp0) / m_A0; } -// starcas -static void nl_gcr_ec4f6d2dad5961b9_64_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - +// spacfury +static void nl_gcr_f4da1503eabe16cf_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + { plib::unused_var(cnV); @@ -33916,463 +68790,103 @@ double m_A13(0.0); double m_A14(0.0); double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); - double m_A23(0.0); - double m_A24(0.0); - double m_A25(0.0); - double m_A26(0.0); - double m_A27(0.0); - double m_A28(0.0); - double m_A29(0.0); - double m_A30(0.0); - double m_A31(0.0); - double m_A32(0.0); - double m_A33(0.0); - double m_A34(0.0); - double m_A35(0.0); - double m_A36(0.0); - double m_A37(0.0); - double m_A38(0.0); - double m_A39(0.0); - double m_A40(0.0); - double m_A41(0.0); - double m_A42(0.0); - double m_A43(0.0); - double m_A44(0.0); - double m_A45(0.0); - double m_A46(0.0); - double m_A47(0.0); - double m_A48(0.0); - double m_A49(0.0); - double m_A50(0.0); - double m_A51(0.0); - double m_A52(0.0); - double m_A53(0.0); - double m_A54(0.0); - double m_A55(0.0); - double m_A56(0.0); - double m_A57(0.0); - double m_A58(0.0); - double m_A59(0.0); - double m_A60(0.0); - double m_A61(0.0); - double m_A62(0.0); - double m_A63(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; - m_A0 += gt[3]; - m_A0 += gt[4]; - m_A0 += gt[5]; m_A1 += go[0]; - m_A1 += go[1]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; - RHS0 += Idr[3]; - RHS0 += Idr[4]; - RHS0 += Idr[5]; + RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - RHS0 -= go[3] * *cnV[3]; - RHS0 -= go[4] * *cnV[4]; - RHS0 -= go[5] * *cnV[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A2 += gt[9]; - m_A3 += go[6]; - double RHS1 = Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 += Idr[9]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - RHS1 -= go[9] * *cnV[9]; - m_A4 += gt[10]; - m_A4 += gt[11]; - m_A5 += go[10]; - double RHS2 = Idr[10]; - RHS2 += Idr[11]; - RHS2 -= go[11] * *cnV[11]; - m_A6 += gt[12]; - m_A6 += gt[13]; - m_A6 += gt[14]; - m_A6 += gt[15]; - m_A6 += gt[16]; - m_A6 += gt[17]; - m_A6 += gt[18]; - m_A6 += gt[19]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; m_A9 += go[12]; - m_A7 += go[13]; - m_A7 += go[14]; - m_A8 += go[15]; - m_A8 += go[16]; - m_A10 += go[17]; - double RHS3 = Idr[12]; - RHS3 += Idr[13]; - RHS3 += Idr[14]; - RHS3 += Idr[15]; - RHS3 += Idr[16]; - RHS3 += Idr[17]; - RHS3 += Idr[18]; - RHS3 += Idr[19]; - RHS3 -= go[18] * *cnV[18]; - RHS3 -= go[19] * *cnV[19]; - m_A11 += gt[20]; - m_A11 += gt[21]; - m_A11 += gt[22]; - m_A11 += gt[23]; - m_A12 += go[20]; - double RHS4 = Idr[20]; - RHS4 += Idr[21]; - RHS4 += Idr[22]; - RHS4 += Idr[23]; - RHS4 -= go[21] * *cnV[21]; - RHS4 -= go[22] * *cnV[22]; - RHS4 -= go[23] * *cnV[23]; - m_A13 += gt[24]; - m_A13 += gt[25]; - m_A14 += go[24]; - double RHS5 = Idr[24]; - RHS5 += Idr[25]; - RHS5 -= go[25] * *cnV[25]; - m_A15 += gt[26]; - m_A15 += gt[27]; - m_A15 += gt[28]; - m_A15 += gt[29]; - m_A15 += gt[30]; - m_A15 += gt[31]; - m_A15 += gt[32]; - m_A15 += gt[33]; - m_A18 += go[26]; - m_A16 += go[27]; - m_A16 += go[28]; - m_A17 += go[29]; - m_A17 += go[30]; - m_A19 += go[31]; - double RHS6 = Idr[26]; - RHS6 += Idr[27]; - RHS6 += Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 += Idr[31]; - RHS6 += Idr[32]; - RHS6 += Idr[33]; - RHS6 -= go[32] * *cnV[32]; - RHS6 -= go[33] * *cnV[33]; - m_A21 += gt[34]; - m_A21 += gt[35]; - m_A21 += gt[36]; - m_A21 += gt[37]; - m_A21 += gt[38]; - m_A23 += go[34]; - m_A23 += go[35]; - m_A20 += go[36]; - m_A20 += go[37]; - double RHS7 = Idr[34]; - RHS7 += Idr[35]; - RHS7 += Idr[36]; - RHS7 += Idr[37]; - RHS7 += Idr[38]; - RHS7 -= go[38] * *cnV[38]; - m_A26 += gt[39]; - m_A26 += gt[40]; - m_A26 += gt[41]; - m_A26 += gt[42]; - m_A26 += gt[43]; - m_A28 += go[39]; - m_A28 += go[40]; - m_A25 += go[41]; - m_A25 += go[42]; - double RHS8 = Idr[39]; - RHS8 += Idr[40]; - RHS8 += Idr[41]; - RHS8 += Idr[42]; - RHS8 += Idr[43]; - RHS8 -= go[43] * *cnV[43]; - m_A33 += gt[44]; - m_A33 += gt[45]; - m_A33 += gt[46]; - m_A33 += gt[47]; - m_A33 += gt[48]; - m_A31 += go[44]; - m_A31 += go[45]; - m_A30 += go[46]; - m_A35 += go[47]; - m_A35 += go[48]; - double RHS9 = Idr[44]; - RHS9 += Idr[45]; - RHS9 += Idr[46]; - RHS9 += Idr[47]; - RHS9 += Idr[48]; - m_A39 += gt[49]; - m_A39 += gt[50]; - m_A39 += gt[51]; - m_A39 += gt[52]; - m_A39 += gt[53]; - m_A37 += go[49]; - m_A37 += go[50]; - m_A36 += go[51]; - m_A41 += go[52]; - m_A41 += go[53]; - double RHS10 = Idr[49]; - RHS10 += Idr[50]; - RHS10 += Idr[51]; - RHS10 += Idr[52]; - RHS10 += Idr[53]; - m_A46 += gt[54]; - m_A46 += gt[55]; - m_A46 += gt[56]; - m_A46 += gt[57]; - m_A46 += gt[58]; - m_A44 += go[54]; - m_A44 += go[55]; - m_A43 += go[56]; - m_A42 += go[57]; - double RHS11 = Idr[54]; - RHS11 += Idr[55]; - RHS11 += Idr[56]; - RHS11 += Idr[57]; - RHS11 += Idr[58]; - RHS11 -= go[58] * *cnV[58]; - m_A52 += gt[59]; - m_A52 += gt[60]; - m_A52 += gt[61]; - m_A52 += gt[62]; - m_A52 += gt[63]; - m_A50 += go[59]; - m_A50 += go[60]; - m_A49 += go[61]; - m_A48 += go[62]; - double RHS12 = Idr[59]; - RHS12 += Idr[60]; - RHS12 += Idr[61]; - RHS12 += Idr[62]; - RHS12 += Idr[63]; - RHS12 -= go[63] * *cnV[63]; - m_A63 += gt[64]; - m_A63 += gt[65]; - m_A63 += gt[66]; - m_A63 += gt[67]; - m_A63 += gt[68]; - m_A63 += gt[69]; - m_A63 += gt[70]; - m_A63 += gt[71]; - m_A63 += gt[72]; - m_A63 += gt[73]; - m_A63 += gt[74]; - m_A56 += go[64]; - m_A60 += go[65]; - m_A60 += go[66]; - m_A55 += go[67]; - m_A59 += go[68]; - m_A59 += go[69]; - m_A54 += go[70]; - m_A54 += go[71]; - double RHS13 = Idr[64]; - RHS13 += Idr[65]; - RHS13 += Idr[66]; - RHS13 += Idr[67]; - RHS13 += Idr[68]; - RHS13 += Idr[69]; - RHS13 += Idr[70]; - RHS13 += Idr[71]; - RHS13 += Idr[72]; - RHS13 += Idr[73]; - RHS13 += Idr[74]; - RHS13 -= go[72] * *cnV[72]; - RHS13 -= go[73] * *cnV[73]; - RHS13 -= go[74] * *cnV[74]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[13] * *cnV[13]; + m_A15 += gt[14]; + m_A15 += gt[15]; + m_A15 += gt[16]; + m_A15 += gt[17]; + m_A15 += gt[18]; + m_A14 += go[14]; + m_A13 += go[15]; + m_A12 += go[16]; + m_A11 += go[17]; + m_A10 += go[18]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; const double f0 = 1.0 / m_A0; - const double f0_13 = -f0 * m_A54; - m_A63 += m_A1 * f0_13; - RHS13 += f0_13 * RHS0; + const double f0_5 = -f0 * m_A10; + m_A15 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_9 = -f1 * m_A30; - m_A33 += m_A3 * f1_9; - RHS9 += f1_9 * RHS1; + const double f1_5 = -f1 * m_A11; + m_A15 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_11 = -f2 * m_A42; - m_A46 += m_A5 * f2_11; - RHS11 += f2_11 * RHS2; + const double f2_5 = -f2 * m_A12; + m_A15 += m_A5 * f2_5; + RHS5 += f2_5 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_7 = -f3 * m_A20; - m_A21 += m_A7 * f3_7; - m_A22 += m_A8 * f3_7; - m_A23 += m_A9 * f3_7; - m_A24 += m_A10 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_9 = -f3 * m_A31; - m_A32 += m_A7 * f3_9; - m_A33 += m_A8 * f3_9; - m_A34 += m_A9 * f3_9; - m_A35 += m_A10 * f3_9; - RHS9 += f3_9 * RHS3; - const double f3_11 = -f3 * m_A43; - m_A44 += m_A7 * f3_11; - m_A45 += m_A8 * f3_11; - m_A46 += m_A9 * f3_11; - m_A47 += m_A10 * f3_11; - RHS11 += f3_11 * RHS3; - const double f3_13 = -f3 * m_A55; - m_A57 += m_A7 * f3_13; - m_A59 += m_A8 * f3_13; - m_A61 += m_A9 * f3_13; - m_A63 += m_A10 * f3_13; - RHS13 += f3_13 * RHS3; - const double f4 = 1.0 / m_A11; - const double f4_10 = -f4 * m_A36; - m_A39 += m_A12 * f4_10; - RHS10 += f4_10 * RHS4; - const double f5 = 1.0 / m_A13; - const double f5_12 = -f5 * m_A48; - m_A52 += m_A14 * f5_12; - RHS12 += f5_12 * RHS5; - const double f6 = 1.0 / m_A15; - const double f6_8 = -f6 * m_A25; - m_A26 += m_A16 * f6_8; - m_A27 += m_A17 * f6_8; - m_A28 += m_A18 * f6_8; - m_A29 += m_A19 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_10 = -f6 * m_A37; - m_A38 += m_A16 * f6_10; - m_A39 += m_A17 * f6_10; - m_A40 += m_A18 * f6_10; - m_A41 += m_A19 * f6_10; - RHS10 += f6_10 * RHS6; - const double f6_12 = -f6 * m_A49; - m_A50 += m_A16 * f6_12; - m_A51 += m_A17 * f6_12; - m_A52 += m_A18 * f6_12; - m_A53 += m_A19 * f6_12; - RHS12 += f6_12 * RHS6; - const double f6_13 = -f6 * m_A56; - m_A58 += m_A16 * f6_13; - m_A60 += m_A17 * f6_13; - m_A62 += m_A18 * f6_13; - m_A63 += m_A19 * f6_13; - RHS13 += f6_13 * RHS6; - const double f7 = 1.0 / m_A21; - const double f7_9 = -f7 * m_A32; - m_A33 += m_A22 * f7_9; - m_A34 += m_A23 * f7_9; - m_A35 += m_A24 * f7_9; - RHS9 += f7_9 * RHS7; - const double f7_11 = -f7 * m_A44; - m_A45 += m_A22 * f7_11; - m_A46 += m_A23 * f7_11; - m_A47 += m_A24 * f7_11; - RHS11 += f7_11 * RHS7; - const double f7_13 = -f7 * m_A57; - m_A59 += m_A22 * f7_13; - m_A61 += m_A23 * f7_13; - m_A63 += m_A24 * f7_13; - RHS13 += f7_13 * RHS7; - const double f8 = 1.0 / m_A26; - const double f8_10 = -f8 * m_A38; - m_A39 += m_A27 * f8_10; - m_A40 += m_A28 * f8_10; - m_A41 += m_A29 * f8_10; - RHS10 += f8_10 * RHS8; - const double f8_12 = -f8 * m_A50; - m_A51 += m_A27 * f8_12; - m_A52 += m_A28 * f8_12; - m_A53 += m_A29 * f8_12; - RHS12 += f8_12 * RHS8; - const double f8_13 = -f8 * m_A58; - m_A60 += m_A27 * f8_13; - m_A62 += m_A28 * f8_13; - m_A63 += m_A29 * f8_13; - RHS13 += f8_13 * RHS8; - const double f9 = 1.0 / m_A33; - const double f9_11 = -f9 * m_A45; - m_A46 += m_A34 * f9_11; - m_A47 += m_A35 * f9_11; - RHS11 += f9_11 * RHS9; - const double f9_13 = -f9 * m_A59; - m_A61 += m_A34 * f9_13; - m_A63 += m_A35 * f9_13; - RHS13 += f9_13 * RHS9; - const double f10 = 1.0 / m_A39; - const double f10_12 = -f10 * m_A51; - m_A52 += m_A40 * f10_12; - m_A53 += m_A41 * f10_12; - RHS12 += f10_12 * RHS10; - const double f10_13 = -f10 * m_A60; - m_A62 += m_A40 * f10_13; - m_A63 += m_A41 * f10_13; - RHS13 += f10_13 * RHS10; - const double f11 = 1.0 / m_A46; - const double f11_13 = -f11 * m_A61; - m_A63 += m_A47 * f11_13; - RHS13 += f11_13 * RHS11; - const double f12 = 1.0 / m_A52; - const double f12_13 = -f12 * m_A62; - m_A63 += m_A53 * f12_13; - RHS13 += f12_13 * RHS12; - V[13] = RHS13 / m_A63; - double tmp12 = 0.0; - tmp12 += m_A53 * V[13]; - V[12] = (RHS12 - tmp12) / m_A52; - double tmp11 = 0.0; - tmp11 += m_A47 * V[13]; - V[11] = (RHS11 - tmp11) / m_A46; - double tmp10 = 0.0; - tmp10 += m_A40 * V[12]; - tmp10 += m_A41 * V[13]; - V[10] = (RHS10 - tmp10) / m_A39; - double tmp9 = 0.0; - tmp9 += m_A34 * V[11]; - tmp9 += m_A35 * V[13]; - V[9] = (RHS9 - tmp9) / m_A33; - double tmp8 = 0.0; - tmp8 += m_A27 * V[10]; - tmp8 += m_A28 * V[12]; - tmp8 += m_A29 * V[13]; - V[8] = (RHS8 - tmp8) / m_A26; - double tmp7 = 0.0; - tmp7 += m_A22 * V[9]; - tmp7 += m_A23 * V[11]; - tmp7 += m_A24 * V[13]; - V[7] = (RHS7 - tmp7) / m_A21; - double tmp6 = 0.0; - tmp6 += m_A16 * V[8]; - tmp6 += m_A17 * V[10]; - tmp6 += m_A18 * V[12]; - tmp6 += m_A19 * V[13]; - V[6] = (RHS6 - tmp6) / m_A15; - double tmp5 = 0.0; - tmp5 += m_A14 * V[12]; - V[5] = (RHS5 - tmp5) / m_A13; + const double f3_5 = -f3 * m_A13; + m_A15 += m_A7 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_5 = -f4 * m_A14; + m_A15 += m_A9 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A15; double tmp4 = 0.0; - tmp4 += m_A12 * V[10]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A9 * V[5]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[7]; - tmp3 += m_A8 * V[9]; - tmp3 += m_A9 * V[11]; - tmp3 += m_A10 * V[13]; + tmp3 += m_A7 * V[5]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[11]; + tmp2 += m_A5 * V[5]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[9]; + tmp1 += m_A3 * V[5]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[13]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// barrier -static void nl_gcr_ecf17036ce1c07cf_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// elim +static void nl_gcr_f4f4e2ee05cb584e_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -34387,77 +68901,99 @@ double m_A7(0.0); double m_A8(0.0); double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; + m_A0 += gt[3]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; RHS0 += Idr[2]; + RHS0 += Idr[3]; RHS0 -= go[1] * *cnV[1]; RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; + RHS0 -= go[3] * *cnV[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; + m_A3 += go[4]; + double RHS1 = Idr[4]; RHS1 += Idr[5]; - RHS1 -= go[4] * *cnV[4]; RHS1 -= go[5] * *cnV[5]; - m_A5 += gt[6]; - m_A5 += gt[7]; - m_A5 += gt[8]; - m_A5 += gt[9]; - m_A4 += go[6]; - m_A6 += go[7]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A5 += go[6]; double RHS2 = Idr[6]; RHS2 += Idr[7]; RHS2 += Idr[8]; RHS2 += Idr[9]; + RHS2 -= go[7] * *cnV[7]; RHS2 -= go[8] * *cnV[8]; RHS2 -= go[9] * *cnV[9]; - m_A9 += gt[10]; - m_A9 += gt[11]; - m_A9 += gt[12]; - m_A9 += gt[13]; - m_A9 += gt[14]; - m_A7 += go[10]; - m_A8 += go[11]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A8 += go[10]; + m_A6 += go[11]; double RHS3 = Idr[10]; RHS3 += Idr[11]; RHS3 += Idr[12]; RHS3 += Idr[13]; - RHS3 += Idr[14]; RHS3 -= go[12] * *cnV[12]; RHS3 -= go[13] * *cnV[13]; - RHS3 -= go[14] * *cnV[14]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A11 += go[14]; + m_A10 += go[15]; + m_A9 += go[16]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A5 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; + const double f0_4 = -f0 * m_A9; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; + const double f1_3 = -f1 * m_A6; + m_A7 += m_A3 * f1_3; RHS3 += f1_3 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A6 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A8 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; + double tmp3 = 0.0; + tmp3 += m_A8 * V[4]; + V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// armora -static void nl_gcr_ee2cacaa15d32491_67_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// konami2x +static void nl_gcr_f6900d3f36a91049_85_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -34529,6 +69065,24 @@ double m_A64(0.0); double m_A65(0.0); double m_A66(0.0); + double m_A67(0.0); + double m_A68(0.0); + double m_A69(0.0); + double m_A70(0.0); + double m_A71(0.0); + double m_A72(0.0); + double m_A73(0.0); + double m_A74(0.0); + double m_A75(0.0); + double m_A76(0.0); + double m_A77(0.0); + double m_A78(0.0); + double m_A79(0.0); + double m_A80(0.0); + double m_A81(0.0); + double m_A82(0.0); + double m_A83(0.0); + double m_A84(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -34561,330 +69115,430 @@ RHS4 -= go[9] * *cnV[9]; m_A10 += gt[10]; m_A10 += gt[11]; - m_A10 += gt[12]; - m_A12 += go[10]; - m_A11 += go[11]; + m_A11 += go[10]; double RHS5 = Idr[10]; RHS5 += Idr[11]; - RHS5 += Idr[12]; - RHS5 -= go[12] * *cnV[12]; - m_A13 += gt[13]; - m_A13 += gt[14]; - m_A13 += gt[15]; - m_A15 += go[13]; - m_A14 += go[14]; - double RHS6 = Idr[13]; - RHS6 += Idr[14]; - RHS6 += Idr[15]; - RHS6 -= go[15] * *cnV[15]; + RHS5 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A13 += go[12]; + double RHS6 = Idr[12]; + RHS6 += Idr[13]; + RHS6 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A15 += go[14]; + double RHS7 = Idr[14]; + RHS7 += Idr[15]; + RHS7 -= go[15] * *cnV[15]; m_A16 += gt[16]; m_A16 += gt[17]; - m_A16 += gt[18]; - m_A18 += go[16]; - m_A17 += go[17]; - double RHS7 = Idr[16]; - RHS7 += Idr[17]; - RHS7 += Idr[18]; - RHS7 -= go[18] * *cnV[18]; - m_A19 += gt[19]; - m_A19 += gt[20]; - m_A19 += gt[21]; - m_A19 += gt[22]; - m_A19 += gt[23]; - m_A19 += gt[24]; - m_A19 += gt[25]; - m_A21 += go[19]; - m_A20 += go[20]; - double RHS8 = Idr[19]; - RHS8 += Idr[20]; - RHS8 += Idr[21]; - RHS8 += Idr[22]; - RHS8 += Idr[23]; - RHS8 += Idr[24]; - RHS8 += Idr[25]; - RHS8 -= go[21] * *cnV[21]; - RHS8 -= go[22] * *cnV[22]; - RHS8 -= go[23] * *cnV[23]; - RHS8 -= go[24] * *cnV[24]; - RHS8 -= go[25] * *cnV[25]; - m_A22 += gt[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A23 += go[26]; - m_A24 += go[27]; - double RHS9 = Idr[26]; - RHS9 += Idr[27]; - RHS9 += Idr[28]; - RHS9 -= go[28] * *cnV[28]; + m_A17 += go[16]; + double RHS8 = Idr[16]; + RHS8 += Idr[17]; + RHS8 -= go[17] * *cnV[17]; + m_A18 += gt[18]; + m_A18 += gt[19]; + m_A19 += go[18]; + double RHS9 = Idr[18]; + RHS9 += Idr[19]; + RHS9 -= go[19] * *cnV[19]; + m_A20 += gt[20]; + m_A20 += gt[21]; + m_A21 += go[20]; + double RHS10 = Idr[20]; + RHS10 += Idr[21]; + RHS10 -= go[21] * *cnV[21]; + m_A22 += gt[22]; + m_A22 += gt[23]; + m_A23 += go[22]; + double RHS11 = Idr[22]; + RHS11 += Idr[23]; + RHS11 -= go[23] * *cnV[23]; + m_A24 += gt[24]; + m_A24 += gt[25]; + m_A25 += go[24]; + double RHS12 = Idr[24]; + RHS12 += Idr[25]; + RHS12 -= go[25] * *cnV[25]; + m_A26 += gt[26]; + m_A26 += gt[27]; + m_A26 += gt[28]; m_A26 += gt[29]; m_A26 += gt[30]; m_A26 += gt[31]; - m_A27 += go[29]; - m_A25 += go[30]; - double RHS10 = Idr[29]; - RHS10 += Idr[30]; - RHS10 += Idr[31]; - RHS10 -= go[31] * *cnV[31]; - m_A30 += gt[32]; - m_A30 += gt[33]; - m_A30 += gt[34]; - m_A29 += go[32]; - m_A28 += go[33]; - double RHS11 = Idr[32]; - RHS11 += Idr[33]; - RHS11 += Idr[34]; - RHS11 -= go[34] * *cnV[34]; - m_A33 += gt[35]; - m_A33 += gt[36]; - m_A33 += gt[37]; - m_A34 += go[35]; - m_A32 += go[36]; - double RHS12 = Idr[35]; - RHS12 += Idr[36]; - RHS12 += Idr[37]; - RHS12 -= go[37] * *cnV[37]; - m_A37 += gt[38]; - m_A37 += gt[39]; - m_A37 += gt[40]; - m_A36 += go[38]; - m_A35 += go[39]; - double RHS13 = Idr[38]; - RHS13 += Idr[39]; - RHS13 += Idr[40]; - RHS13 -= go[40] * *cnV[40]; - m_A41 += gt[41]; - m_A41 += gt[42]; - m_A41 += gt[43]; - m_A39 += go[41]; - m_A42 += go[42]; - double RHS14 = Idr[41]; - RHS14 += Idr[42]; - RHS14 += Idr[43]; - RHS14 -= go[43] * *cnV[43]; - m_A45 += gt[44]; - m_A45 += gt[45]; - m_A45 += gt[46]; - m_A44 += go[44]; - m_A43 += go[45]; - double RHS15 = Idr[44]; - RHS15 += Idr[45]; - RHS15 += Idr[46]; - RHS15 -= go[46] * *cnV[46]; - m_A49 += gt[47]; - m_A49 += gt[48]; - m_A49 += gt[49]; - m_A47 += go[47]; - m_A50 += go[48]; - double RHS16 = Idr[47]; - RHS16 += Idr[48]; - RHS16 += Idr[49]; - RHS16 -= go[49] * *cnV[49]; - m_A53 += gt[50]; - m_A53 += gt[51]; - m_A53 += gt[52]; - m_A51 += go[50]; - m_A52 += go[51]; - double RHS17 = Idr[50]; - RHS17 += Idr[51]; - RHS17 += Idr[52]; - RHS17 -= go[52] * *cnV[52]; - m_A57 += gt[53]; - m_A57 += gt[54]; - m_A57 += gt[55]; - m_A55 += go[53]; - m_A58 += go[54]; - double RHS18 = Idr[53]; - RHS18 += Idr[54]; - RHS18 += Idr[55]; - RHS18 -= go[55] * *cnV[55]; - m_A66 += gt[56]; - m_A66 += gt[57]; - m_A66 += gt[58]; - m_A66 += gt[59]; - m_A66 += gt[60]; - m_A66 += gt[61]; - m_A66 += gt[62]; - m_A66 += gt[63]; - m_A59 += go[56]; - m_A60 += go[57]; - m_A65 += go[58]; - m_A63 += go[59]; + m_A26 += gt[32]; + m_A27 += go[26]; + double RHS13 = Idr[26]; + RHS13 += Idr[27]; + RHS13 += Idr[28]; + RHS13 += Idr[29]; + RHS13 += Idr[30]; + RHS13 += Idr[31]; + RHS13 += Idr[32]; + RHS13 -= go[27] * *cnV[27]; + RHS13 -= go[28] * *cnV[28]; + RHS13 -= go[29] * *cnV[29]; + RHS13 -= go[30] * *cnV[30]; + RHS13 -= go[31] * *cnV[31]; + RHS13 -= go[32] * *cnV[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A29 += go[33]; + double RHS14 = Idr[33]; + RHS14 += Idr[34]; + RHS14 -= go[34] * *cnV[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A31 += go[35]; + double RHS15 = Idr[35]; + RHS15 += Idr[36]; + RHS15 -= go[36] * *cnV[36]; + m_A35 += gt[37]; + m_A35 += gt[38]; + m_A35 += gt[39]; + m_A35 += gt[40]; + m_A36 += go[37]; + m_A34 += go[38]; + m_A33 += go[39]; + m_A32 += go[40]; + double RHS16 = Idr[37]; + RHS16 += Idr[38]; + RHS16 += Idr[39]; + RHS16 += Idr[40]; + m_A37 += gt[41]; + m_A37 += gt[42]; + m_A38 += go[41]; + double RHS17 = Idr[41]; + RHS17 += Idr[42]; + RHS17 -= go[42] * *cnV[42]; + m_A39 += gt[43]; + m_A39 += gt[44]; + m_A40 += go[43]; + double RHS18 = Idr[43]; + RHS18 += Idr[44]; + RHS18 -= go[44] * *cnV[44]; + m_A41 += gt[45]; + m_A41 += gt[46]; + m_A42 += go[45]; + double RHS19 = Idr[45]; + RHS19 += Idr[46]; + RHS19 -= go[46] * *cnV[46]; + m_A43 += gt[47]; + m_A43 += gt[48]; + m_A44 += go[47]; + double RHS20 = Idr[47]; + RHS20 += Idr[48]; + RHS20 -= go[48] * *cnV[48]; + m_A46 += gt[49]; + m_A46 += gt[50]; + m_A46 += gt[51]; + m_A45 += go[49]; + m_A47 += go[50]; + double RHS21 = Idr[49]; + RHS21 += Idr[50]; + RHS21 += Idr[51]; + RHS21 -= go[51] * *cnV[51]; + m_A51 += gt[52]; + m_A51 += gt[53]; + m_A51 += gt[54]; + m_A51 += gt[55]; + m_A52 += go[52]; + m_A50 += go[53]; + m_A49 += go[54]; + m_A48 += go[55]; + double RHS22 = Idr[52]; + RHS22 += Idr[53]; + RHS22 += Idr[54]; + RHS22 += Idr[55]; + m_A56 += gt[56]; + m_A56 += gt[57]; + m_A56 += gt[58]; + m_A56 += gt[59]; + m_A57 += go[56]; + m_A55 += go[57]; + m_A54 += go[58]; + m_A53 += go[59]; + double RHS23 = Idr[56]; + RHS23 += Idr[57]; + RHS23 += Idr[58]; + RHS23 += Idr[59]; + m_A61 += gt[60]; + m_A61 += gt[61]; + m_A61 += gt[62]; + m_A61 += gt[63]; m_A62 += go[60]; - m_A61 += go[61]; - double RHS19 = Idr[56]; - RHS19 += Idr[57]; - RHS19 += Idr[58]; - RHS19 += Idr[59]; - RHS19 += Idr[60]; - RHS19 += Idr[61]; - RHS19 += Idr[62]; - RHS19 += Idr[63]; - RHS19 -= go[62] * *cnV[62]; - RHS19 -= go[63] * *cnV[63]; - const double f0 = 1.0 / m_A0; - const double f0_11 = -f0 * m_A28; - m_A30 += m_A1 * f0_11; - RHS11 += f0_11 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_13 = -f1 * m_A35; - m_A37 += m_A3 * f1_13; - RHS13 += f1_13 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_15 = -f2 * m_A43; - m_A45 += m_A5 * f2_15; - RHS15 += f2_15 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_10 = -f3 * m_A25; - m_A26 += m_A7 * f3_10; - RHS10 += f3_10 * RHS3; - const double f4 = 1.0 / m_A8; - const double f4_12 = -f4 * m_A32; - m_A33 += m_A9 * f4_12; - RHS12 += f4_12 * RHS4; - const double f5 = 1.0 / m_A10; - const double f5_11 = -f5 * m_A29; - m_A30 += m_A11 * f5_11; - m_A31 += m_A12 * f5_11; - RHS11 += f5_11 * RHS5; - const double f5_14 = -f5 * m_A39; - m_A40 += m_A11 * f5_14; - m_A41 += m_A12 * f5_14; - RHS14 += f5_14 * RHS5; - const double f6 = 1.0 / m_A13; - const double f6_13 = -f6 * m_A36; - m_A37 += m_A14 * f6_13; - m_A38 += m_A15 * f6_13; - RHS13 += f6_13 * RHS6; - const double f6_16 = -f6 * m_A47; - m_A48 += m_A14 * f6_16; - m_A49 += m_A15 * f6_16; - RHS16 += f6_16 * RHS6; - const double f7 = 1.0 / m_A16; - const double f7_15 = -f7 * m_A44; - m_A45 += m_A17 * f7_15; - m_A46 += m_A18 * f7_15; - RHS15 += f7_15 * RHS7; - const double f7_18 = -f7 * m_A55; - m_A56 += m_A17 * f7_18; - m_A57 += m_A18 * f7_18; - RHS18 += f7_18 * RHS7; - const double f8 = 1.0 / m_A19; - const double f8_19 = -f8 * m_A59; - m_A61 += m_A20 * f8_19; - m_A66 += m_A21 * f8_19; - RHS19 += f8_19 * RHS8; - const double f9 = 1.0 / m_A22; - const double f9_17 = -f9 * m_A51; - m_A53 += m_A23 * f9_17; - m_A54 += m_A24 * f9_17; - RHS17 += f9_17 * RHS9; - const double f9_19 = -f9 * m_A60; - m_A64 += m_A23 * f9_19; - m_A66 += m_A24 * f9_19; - RHS19 += f9_19 * RHS9; - const double f10 = 1.0 / m_A26; - const double f10_19 = -f10 * m_A61; - m_A66 += m_A27 * f10_19; - RHS19 += f10_19 * RHS10; - const double f11 = 1.0 / m_A30; - const double f11_14 = -f11 * m_A40; - m_A41 += m_A31 * f11_14; - RHS14 += f11_14 * RHS11; - const double f12 = 1.0 / m_A33; - const double f12_17 = -f12 * m_A52; - m_A53 += m_A34 * f12_17; - RHS17 += f12_17 * RHS12; - const double f13 = 1.0 / m_A37; - const double f13_16 = -f13 * m_A48; - m_A49 += m_A38 * f13_16; - RHS16 += f13_16 * RHS13; - const double f14 = 1.0 / m_A41; - const double f14_19 = -f14 * m_A62; - m_A66 += m_A42 * f14_19; - RHS19 += f14_19 * RHS14; - const double f15 = 1.0 / m_A45; - const double f15_18 = -f15 * m_A56; - m_A57 += m_A46 * f15_18; - RHS18 += f15_18 * RHS15; - const double f16 = 1.0 / m_A49; - const double f16_19 = -f16 * m_A63; - m_A66 += m_A50 * f16_19; - RHS19 += f16_19 * RHS16; - const double f17 = 1.0 / m_A53; - const double f17_19 = -f17 * m_A64; - m_A66 += m_A54 * f17_19; - RHS19 += f17_19 * RHS17; - const double f18 = 1.0 / m_A57; - const double f18_19 = -f18 * m_A65; - m_A66 += m_A58 * f18_19; - RHS19 += f18_19 * RHS18; - V[19] = RHS19 / m_A66; + m_A60 += go[61]; + m_A59 += go[62]; + m_A58 += go[63]; + double RHS24 = Idr[60]; + RHS24 += Idr[61]; + RHS24 += Idr[62]; + RHS24 += Idr[63]; + m_A66 += gt[64]; + m_A66 += gt[65]; + m_A66 += gt[66]; + m_A66 += gt[67]; + m_A67 += go[64]; + m_A65 += go[65]; + m_A64 += go[66]; + m_A63 += go[67]; + double RHS25 = Idr[64]; + RHS25 += Idr[65]; + RHS25 += Idr[66]; + RHS25 += Idr[67]; + m_A71 += gt[68]; + m_A71 += gt[69]; + m_A71 += gt[70]; + m_A71 += gt[71]; + m_A72 += go[68]; + m_A70 += go[69]; + m_A69 += go[70]; + m_A68 += go[71]; + double RHS26 = Idr[68]; + RHS26 += Idr[69]; + RHS26 += Idr[70]; + RHS26 += Idr[71]; + m_A75 += gt[72]; + m_A75 += gt[73]; + m_A75 += gt[74]; + m_A75 += gt[75]; + m_A75 += gt[76]; + m_A73 += go[72]; + m_A74 += go[73]; + m_A76 += go[74]; + double RHS27 = Idr[72]; + RHS27 += Idr[73]; + RHS27 += Idr[74]; + RHS27 += Idr[75]; + RHS27 += Idr[76]; + RHS27 -= go[75] * *cnV[75]; + RHS27 -= go[76] * *cnV[76]; + m_A84 += gt[77]; + m_A84 += gt[78]; + m_A84 += gt[79]; + m_A84 += gt[80]; + m_A84 += gt[81]; + m_A84 += gt[82]; + m_A84 += gt[83]; + m_A84 += gt[84]; + m_A83 += go[77]; + m_A80 += go[78]; + m_A82 += go[79]; + m_A81 += go[80]; + m_A79 += go[81]; + m_A78 += go[82]; + m_A77 += go[83]; + double RHS28 = Idr[77]; + RHS28 += Idr[78]; + RHS28 += Idr[79]; + RHS28 += Idr[80]; + RHS28 += Idr[81]; + RHS28 += Idr[82]; + RHS28 += Idr[83]; + RHS28 += Idr[84]; + RHS28 -= go[84] * *cnV[84]; + const double f0 = 1.0 / m_A0; + const double f0_16 = -f0 * m_A32; + m_A35 += m_A1 * f0_16; + RHS16 += f0_16 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_16 = -f1 * m_A33; + m_A35 += m_A3 * f1_16; + RHS16 += f1_16 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_16 = -f2 * m_A34; + m_A35 += m_A5 * f2_16; + RHS16 += f2_16 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_22 = -f3 * m_A48; + m_A51 += m_A7 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_22 = -f4 * m_A49; + m_A51 += m_A9 * f4_22; + RHS22 += f4_22 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_22 = -f5 * m_A50; + m_A51 += m_A11 * f5_22; + RHS22 += f5_22 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_23 = -f6 * m_A53; + m_A56 += m_A13 * f6_23; + RHS23 += f6_23 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_23 = -f7 * m_A54; + m_A56 += m_A15 * f7_23; + RHS23 += f7_23 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_23 = -f8 * m_A55; + m_A56 += m_A17 * f8_23; + RHS23 += f8_23 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_25 = -f9 * m_A63; + m_A66 += m_A19 * f9_25; + RHS25 += f9_25 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_26 = -f10 * m_A68; + m_A71 += m_A21 * f10_26; + RHS26 += f10_26 * RHS10; + const double f11 = 1.0 / m_A22; + const double f11_24 = -f11 * m_A58; + m_A61 += m_A23 * f11_24; + RHS24 += f11_24 * RHS11; + const double f12 = 1.0 / m_A24; + const double f12_24 = -f12 * m_A59; + m_A61 += m_A25 * f12_24; + RHS24 += f12_24 * RHS12; + const double f13 = 1.0 / m_A26; + const double f13_27 = -f13 * m_A73; + m_A76 += m_A27 * f13_27; + RHS27 += f13_27 * RHS13; + const double f14 = 1.0 / m_A28; + const double f14_24 = -f14 * m_A60; + m_A61 += m_A29 * f14_24; + RHS24 += f14_24 * RHS14; + const double f15 = 1.0 / m_A30; + const double f15_21 = -f15 * m_A45; + m_A46 += m_A31 * f15_21; + RHS21 += f15_21 * RHS15; + const double f16 = 1.0 / m_A35; + const double f16_28 = -f16 * m_A77; + m_A84 += m_A36 * f16_28; + RHS28 += f16_28 * RHS16; + const double f17 = 1.0 / m_A37; + const double f17_25 = -f17 * m_A64; + m_A66 += m_A38 * f17_25; + RHS25 += f17_25 * RHS17; + const double f18 = 1.0 / m_A39; + const double f18_25 = -f18 * m_A65; + m_A66 += m_A40 * f18_25; + RHS25 += f18_25 * RHS18; + const double f19 = 1.0 / m_A41; + const double f19_26 = -f19 * m_A69; + m_A71 += m_A42 * f19_26; + RHS26 += f19_26 * RHS19; + const double f20 = 1.0 / m_A43; + const double f20_26 = -f20 * m_A70; + m_A71 += m_A44 * f20_26; + RHS26 += f20_26 * RHS20; + const double f21 = 1.0 / m_A46; + const double f21_27 = -f21 * m_A74; + m_A75 += m_A47 * f21_27; + RHS27 += f21_27 * RHS21; + const double f22 = 1.0 / m_A51; + const double f22_28 = -f22 * m_A78; + m_A84 += m_A52 * f22_28; + RHS28 += f22_28 * RHS22; + const double f23 = 1.0 / m_A56; + const double f23_28 = -f23 * m_A79; + m_A84 += m_A57 * f23_28; + RHS28 += f23_28 * RHS23; + const double f24 = 1.0 / m_A61; + const double f24_28 = -f24 * m_A80; + m_A84 += m_A62 * f24_28; + RHS28 += f24_28 * RHS24; + const double f25 = 1.0 / m_A66; + const double f25_28 = -f25 * m_A81; + m_A84 += m_A67 * f25_28; + RHS28 += f25_28 * RHS25; + const double f26 = 1.0 / m_A71; + const double f26_28 = -f26 * m_A82; + m_A84 += m_A72 * f26_28; + RHS28 += f26_28 * RHS26; + const double f27 = 1.0 / m_A75; + const double f27_28 = -f27 * m_A83; + m_A84 += m_A76 * f27_28; + RHS28 += f27_28 * RHS27; + V[28] = RHS28 / m_A84; + double tmp27 = 0.0; + tmp27 += m_A76 * V[28]; + V[27] = (RHS27 - tmp27) / m_A75; + double tmp26 = 0.0; + tmp26 += m_A72 * V[28]; + V[26] = (RHS26 - tmp26) / m_A71; + double tmp25 = 0.0; + tmp25 += m_A67 * V[28]; + V[25] = (RHS25 - tmp25) / m_A66; + double tmp24 = 0.0; + tmp24 += m_A62 * V[28]; + V[24] = (RHS24 - tmp24) / m_A61; + double tmp23 = 0.0; + tmp23 += m_A57 * V[28]; + V[23] = (RHS23 - tmp23) / m_A56; + double tmp22 = 0.0; + tmp22 += m_A52 * V[28]; + V[22] = (RHS22 - tmp22) / m_A51; + double tmp21 = 0.0; + tmp21 += m_A47 * V[27]; + V[21] = (RHS21 - tmp21) / m_A46; + double tmp20 = 0.0; + tmp20 += m_A44 * V[26]; + V[20] = (RHS20 - tmp20) / m_A43; + double tmp19 = 0.0; + tmp19 += m_A42 * V[26]; + V[19] = (RHS19 - tmp19) / m_A41; double tmp18 = 0.0; - tmp18 += m_A58 * V[19]; - V[18] = (RHS18 - tmp18) / m_A57; + tmp18 += m_A40 * V[25]; + V[18] = (RHS18 - tmp18) / m_A39; double tmp17 = 0.0; - tmp17 += m_A54 * V[19]; - V[17] = (RHS17 - tmp17) / m_A53; + tmp17 += m_A38 * V[25]; + V[17] = (RHS17 - tmp17) / m_A37; double tmp16 = 0.0; - tmp16 += m_A50 * V[19]; - V[16] = (RHS16 - tmp16) / m_A49; + tmp16 += m_A36 * V[28]; + V[16] = (RHS16 - tmp16) / m_A35; double tmp15 = 0.0; - tmp15 += m_A46 * V[18]; - V[15] = (RHS15 - tmp15) / m_A45; + tmp15 += m_A31 * V[21]; + V[15] = (RHS15 - tmp15) / m_A30; double tmp14 = 0.0; - tmp14 += m_A42 * V[19]; - V[14] = (RHS14 - tmp14) / m_A41; + tmp14 += m_A29 * V[24]; + V[14] = (RHS14 - tmp14) / m_A28; double tmp13 = 0.0; - tmp13 += m_A38 * V[16]; - V[13] = (RHS13 - tmp13) / m_A37; + tmp13 += m_A27 * V[28]; + V[13] = (RHS13 - tmp13) / m_A26; double tmp12 = 0.0; - tmp12 += m_A34 * V[17]; - V[12] = (RHS12 - tmp12) / m_A33; + tmp12 += m_A25 * V[24]; + V[12] = (RHS12 - tmp12) / m_A24; double tmp11 = 0.0; - tmp11 += m_A31 * V[14]; - V[11] = (RHS11 - tmp11) / m_A30; + tmp11 += m_A23 * V[24]; + V[11] = (RHS11 - tmp11) / m_A22; double tmp10 = 0.0; - tmp10 += m_A27 * V[19]; - V[10] = (RHS10 - tmp10) / m_A26; + tmp10 += m_A21 * V[26]; + V[10] = (RHS10 - tmp10) / m_A20; double tmp9 = 0.0; - tmp9 += m_A23 * V[17]; - tmp9 += m_A24 * V[19]; - V[9] = (RHS9 - tmp9) / m_A22; + tmp9 += m_A19 * V[25]; + V[9] = (RHS9 - tmp9) / m_A18; double tmp8 = 0.0; - tmp8 += m_A20 * V[10]; - tmp8 += m_A21 * V[19]; - V[8] = (RHS8 - tmp8) / m_A19; + tmp8 += m_A17 * V[23]; + V[8] = (RHS8 - tmp8) / m_A16; double tmp7 = 0.0; - tmp7 += m_A17 * V[15]; - tmp7 += m_A18 * V[18]; - V[7] = (RHS7 - tmp7) / m_A16; + tmp7 += m_A15 * V[23]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A14 * V[13]; - tmp6 += m_A15 * V[16]; - V[6] = (RHS6 - tmp6) / m_A13; + tmp6 += m_A13 * V[23]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[11]; - tmp5 += m_A12 * V[14]; + tmp5 += m_A11 * V[22]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[12]; + tmp4 += m_A9 * V[22]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[10]; + tmp3 += m_A7 * V[22]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[15]; + tmp2 += m_A5 * V[16]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[13]; + tmp1 += m_A3 * V[16]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[11]; + tmp0 += m_A1 * V[16]; V[0] = (RHS0 - tmp0) / m_A0; } -// barrier -static void nl_gcr_f425d4008ae1d2c6_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// breakout +static void nl_gcr_f7dc4f87b5a8ba93_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -34896,12 +69550,6 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A0 += gt[2]; @@ -34917,66 +69565,31 @@ double RHS1 = Idr[3]; RHS1 += Idr[4]; RHS1 -= go[4] * *cnV[4]; - m_A4 += gt[5]; - m_A4 += gt[6]; + m_A6 += gt[5]; + m_A6 += gt[6]; m_A5 += go[5]; + m_A4 += go[6]; double RHS2 = Idr[5]; RHS2 += Idr[6]; - RHS2 -= go[6] * *cnV[6]; - m_A6 += gt[7]; - m_A6 += gt[8]; - m_A7 += go[7]; - double RHS3 = Idr[7]; - RHS3 += Idr[8]; - RHS3 -= go[8] * *cnV[8]; - m_A12 += gt[9]; - m_A12 += gt[10]; - m_A12 += gt[11]; - m_A12 += gt[12]; - m_A12 += gt[13]; - m_A11 += go[9]; - m_A10 += go[10]; - m_A9 += go[11]; - m_A8 += go[12]; - double RHS4 = Idr[9]; - RHS4 += Idr[10]; - RHS4 += Idr[11]; - RHS4 += Idr[12]; - RHS4 += Idr[13]; - RHS4 -= go[13] * *cnV[13]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A8; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A9; - m_A12 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; - const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A10; - m_A12 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; - const double f3 = 1.0 / m_A6; - const double f3_4 = -f3 * m_A11; - m_A12 += m_A7 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A12; - double tmp3 = 0.0; - tmp3 += m_A7 * V[4]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - V[2] = (RHS2 - tmp2) / m_A4; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; + tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// boxingb -static void nl_gcr_f43cf2a28a5a5561_23_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// fireone +static void nl_gcr_f8f6a951fd1af6bc_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -34988,174 +69601,52 @@ double m_A4(0.0); double m_A5(0.0); double m_A6(0.0); - double m_A7(0.0); - double m_A8(0.0); - double m_A9(0.0); - double m_A10(0.0); - double m_A11(0.0); - double m_A12(0.0); - double m_A13(0.0); - double m_A14(0.0); - double m_A15(0.0); - double m_A16(0.0); - double m_A17(0.0); - double m_A18(0.0); - double m_A19(0.0); - double m_A20(0.0); - double m_A21(0.0); - double m_A22(0.0); m_A0 += gt[0]; m_A0 += gt[1]; - m_A0 += gt[2]; m_A1 += go[0]; double RHS0 = Idr[0]; RHS0 += Idr[1]; - RHS0 += Idr[2]; RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[2]; m_A2 += gt[3]; m_A2 += gt[4]; m_A2 += gt[5]; - m_A2 += gt[6]; - m_A2 += gt[7]; - m_A2 += gt[8]; - m_A4 += go[3]; - m_A3 += go[4]; - m_A3 += go[5]; - double RHS1 = Idr[3]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; RHS1 += Idr[4]; RHS1 += Idr[5]; - RHS1 += Idr[6]; - RHS1 += Idr[7]; - RHS1 += Idr[8]; - RHS1 -= go[6] * *cnV[6]; - RHS1 -= go[7] * *cnV[7]; - RHS1 -= go[8] * *cnV[8]; - m_A5 += gt[9]; - m_A5 += gt[10]; - m_A5 += gt[11]; - m_A5 += gt[12]; - m_A7 += go[9]; - m_A6 += go[10]; - m_A6 += go[11]; - double RHS2 = Idr[9]; - RHS2 += Idr[10]; - RHS2 += Idr[11]; - RHS2 += Idr[12]; - RHS2 -= go[12] * *cnV[12]; - m_A8 += gt[13]; - m_A8 += gt[14]; - m_A9 += go[13]; - double RHS3 = Idr[13]; - RHS3 += Idr[14]; - RHS3 -= go[14] * *cnV[14]; - m_A12 += gt[15]; - m_A12 += gt[16]; - m_A12 += gt[17]; - m_A12 += gt[18]; - m_A12 += gt[19]; - m_A12 += gt[20]; - m_A11 += go[15]; - m_A11 += go[16]; - m_A10 += go[17]; - double RHS4 = Idr[15]; - RHS4 += Idr[16]; - RHS4 += Idr[17]; - RHS4 += Idr[18]; - RHS4 += Idr[19]; - RHS4 += Idr[20]; - RHS4 -= go[18] * *cnV[18]; - RHS4 -= go[19] * *cnV[19]; - RHS4 -= go[20] * *cnV[20]; - m_A17 += gt[21]; - m_A17 += gt[22]; - m_A17 += gt[23]; - m_A17 += gt[24]; - m_A17 += gt[25]; - m_A15 += go[21]; - m_A15 += go[22]; - m_A14 += go[23]; - double RHS5 = Idr[21]; - RHS5 += Idr[22]; - RHS5 += Idr[23]; - RHS5 += Idr[24]; - RHS5 += Idr[25]; - RHS5 -= go[24] * *cnV[24]; - RHS5 -= go[25] * *cnV[25]; - m_A22 += gt[26]; - m_A22 += gt[27]; - m_A22 += gt[28]; - m_A22 += gt[29]; - m_A22 += gt[30]; - m_A20 += go[26]; - m_A19 += go[27]; - double RHS6 = Idr[26]; - RHS6 += Idr[27]; - RHS6 += Idr[28]; - RHS6 += Idr[29]; - RHS6 += Idr[30]; - RHS6 -= go[28] * *cnV[28]; - RHS6 -= go[29] * *cnV[29]; - RHS6 -= go[30] * *cnV[30]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A5 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[8] * *cnV[8]; const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A10; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A11; - m_A12 += m_A3 * f1_4; - m_A13 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A14; - m_A16 += m_A3 * f1_5; - m_A17 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; - const double f2 = 1.0 / m_A5; - const double f2_5 = -f2 * m_A15; - m_A17 += m_A6 * f2_5; - m_A18 += m_A7 * f2_5; - RHS5 += f2_5 * RHS2; - const double f2_6 = -f2 * m_A19; - m_A21 += m_A6 * f2_6; - m_A22 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; - const double f3 = 1.0 / m_A8; - const double f3_6 = -f3 * m_A20; - m_A22 += m_A9 * f3_6; - RHS6 += f3_6 * RHS3; - const double f4 = 1.0 / m_A12; - const double f4_5 = -f4 * m_A16; - m_A17 += m_A13 * f4_5; - RHS5 += f4_5 * RHS4; - const double f5 = 1.0 / m_A17; - const double f5_6 = -f5 * m_A21; - m_A22 += m_A18 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A22; - double tmp5 = 0.0; - tmp5 += m_A18 * V[6]; - V[5] = (RHS5 - tmp5) / m_A17; - double tmp4 = 0.0; - tmp4 += m_A13 * V[5]; - V[4] = (RHS4 - tmp4) / m_A12; - double tmp3 = 0.0; - tmp3 += m_A9 * V[6]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A6 * V[5]; - tmp2 += m_A7 * V[6]; - V[2] = (RHS2 - tmp2) / m_A5; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - tmp1 += m_A4 * V[5]; + tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// konami2x -static void nl_gcr_f6900d3f36a91049_85_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) +// zektor +static void nl_gcr_fbff020f5f5d5a5_144_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) { @@ -35245,6 +69736,65 @@ double m_A82(0.0); double m_A83(0.0); double m_A84(0.0); + double m_A85(0.0); + double m_A86(0.0); + double m_A87(0.0); + double m_A88(0.0); + double m_A89(0.0); + double m_A90(0.0); + double m_A91(0.0); + double m_A92(0.0); + double m_A93(0.0); + double m_A94(0.0); + double m_A95(0.0); + double m_A96(0.0); + double m_A97(0.0); + double m_A98(0.0); + double m_A99(0.0); + double m_A100(0.0); + double m_A101(0.0); + double m_A102(0.0); + double m_A103(0.0); + double m_A104(0.0); + double m_A105(0.0); + double m_A106(0.0); + double m_A107(0.0); + double m_A108(0.0); + double m_A109(0.0); + double m_A110(0.0); + double m_A111(0.0); + double m_A112(0.0); + double m_A113(0.0); + double m_A114(0.0); + double m_A115(0.0); + double m_A116(0.0); + double m_A117(0.0); + double m_A118(0.0); + double m_A119(0.0); + double m_A120(0.0); + double m_A121(0.0); + double m_A122(0.0); + double m_A123(0.0); + double m_A124(0.0); + double m_A125(0.0); + double m_A126(0.0); + double m_A127(0.0); + double m_A128(0.0); + double m_A129(0.0); + double m_A130(0.0); + double m_A131(0.0); + double m_A132(0.0); + double m_A133(0.0); + double m_A134(0.0); + double m_A135(0.0); + double m_A136(0.0); + double m_A137(0.0); + double m_A138(0.0); + double m_A139(0.0); + double m_A140(0.0); + double m_A141(0.0); + double m_A142(0.0); + double m_A143(0.0); m_A0 += gt[0]; m_A0 += gt[1]; m_A1 += go[0]; @@ -35289,464 +69839,715 @@ RHS6 -= go[13] * *cnV[13]; m_A14 += gt[14]; m_A14 += gt[15]; - m_A15 += go[14]; + m_A14 += gt[16]; + m_A16 += go[14]; + m_A15 += go[15]; double RHS7 = Idr[14]; RHS7 += Idr[15]; - RHS7 -= go[15] * *cnV[15]; - m_A16 += gt[16]; - m_A16 += gt[17]; - m_A17 += go[16]; - double RHS8 = Idr[16]; - RHS8 += Idr[17]; - RHS8 -= go[17] * *cnV[17]; - m_A18 += gt[18]; - m_A18 += gt[19]; - m_A19 += go[18]; - double RHS9 = Idr[18]; - RHS9 += Idr[19]; - RHS9 -= go[19] * *cnV[19]; - m_A20 += gt[20]; - m_A20 += gt[21]; - m_A21 += go[20]; - double RHS10 = Idr[20]; - RHS10 += Idr[21]; - RHS10 -= go[21] * *cnV[21]; + RHS7 += Idr[16]; + RHS7 -= go[16] * *cnV[16]; + m_A17 += gt[17]; + m_A17 += gt[18]; + m_A18 += go[17]; + double RHS8 = Idr[17]; + RHS8 += Idr[18]; + RHS8 -= go[18] * *cnV[18]; + m_A19 += gt[19]; + m_A19 += gt[20]; + m_A19 += gt[21]; + m_A21 += go[19]; + m_A20 += go[20]; + double RHS9 = Idr[19]; + RHS9 += Idr[20]; + RHS9 += Idr[21]; + RHS9 -= go[21] * *cnV[21]; m_A22 += gt[22]; m_A22 += gt[23]; + m_A22 += gt[24]; m_A23 += go[22]; - double RHS11 = Idr[22]; - RHS11 += Idr[23]; - RHS11 -= go[23] * *cnV[23]; - m_A24 += gt[24]; + double RHS10 = Idr[22]; + RHS10 += Idr[23]; + RHS10 += Idr[24]; + RHS10 -= go[23] * *cnV[23]; + RHS10 -= go[24] * *cnV[24]; m_A24 += gt[25]; - m_A25 += go[24]; - double RHS12 = Idr[24]; - RHS12 += Idr[25]; - RHS12 -= go[25] * *cnV[25]; - m_A26 += gt[26]; + m_A24 += gt[26]; + m_A25 += go[25]; + double RHS11 = Idr[25]; + RHS11 += Idr[26]; + RHS11 -= go[26] * *cnV[26]; m_A26 += gt[27]; m_A26 += gt[28]; - m_A26 += gt[29]; - m_A26 += gt[30]; - m_A26 += gt[31]; - m_A26 += gt[32]; - m_A27 += go[26]; - double RHS13 = Idr[26]; - RHS13 += Idr[27]; - RHS13 += Idr[28]; - RHS13 += Idr[29]; + m_A27 += go[27]; + double RHS12 = Idr[27]; + RHS12 += Idr[28]; + RHS12 -= go[28] * *cnV[28]; + m_A28 += gt[29]; + m_A28 += gt[30]; + m_A28 += gt[31]; + m_A28 += gt[32]; + m_A30 += go[29]; + m_A29 += go[30]; + double RHS13 = Idr[29]; RHS13 += Idr[30]; RHS13 += Idr[31]; RHS13 += Idr[32]; - RHS13 -= go[27] * *cnV[27]; - RHS13 -= go[28] * *cnV[28]; - RHS13 -= go[29] * *cnV[29]; - RHS13 -= go[30] * *cnV[30]; RHS13 -= go[31] * *cnV[31]; RHS13 -= go[32] * *cnV[32]; - m_A28 += gt[33]; - m_A28 += gt[34]; - m_A29 += go[33]; + m_A31 += gt[33]; + m_A31 += gt[34]; + m_A31 += gt[35]; + m_A32 += go[33]; double RHS14 = Idr[33]; RHS14 += Idr[34]; + RHS14 += Idr[35]; RHS14 -= go[34] * *cnV[34]; - m_A30 += gt[35]; - m_A30 += gt[36]; - m_A31 += go[35]; - double RHS15 = Idr[35]; - RHS15 += Idr[36]; - RHS15 -= go[36] * *cnV[36]; - m_A35 += gt[37]; - m_A35 += gt[38]; - m_A35 += gt[39]; - m_A35 += gt[40]; - m_A36 += go[37]; - m_A34 += go[38]; - m_A33 += go[39]; - m_A32 += go[40]; - double RHS16 = Idr[37]; - RHS16 += Idr[38]; + RHS14 -= go[35] * *cnV[35]; + m_A33 += gt[36]; + m_A33 += gt[37]; + m_A34 += go[36]; + m_A35 += go[37]; + double RHS15 = Idr[36]; + RHS15 += Idr[37]; + m_A36 += gt[38]; + m_A36 += gt[39]; + m_A38 += go[38]; + m_A37 += go[39]; + double RHS16 = Idr[38]; RHS16 += Idr[39]; - RHS16 += Idr[40]; - m_A37 += gt[41]; - m_A37 += gt[42]; - m_A38 += go[41]; - double RHS17 = Idr[41]; + m_A39 += gt[40]; + m_A39 += gt[41]; + m_A39 += gt[42]; + m_A40 += go[40]; + double RHS17 = Idr[40]; + RHS17 += Idr[41]; RHS17 += Idr[42]; + RHS17 -= go[41] * *cnV[41]; RHS17 -= go[42] * *cnV[42]; - m_A39 += gt[43]; - m_A39 += gt[44]; - m_A40 += go[43]; + m_A41 += gt[43]; + m_A41 += gt[44]; + m_A41 += gt[45]; + m_A43 += go[43]; + m_A42 += go[44]; double RHS18 = Idr[43]; RHS18 += Idr[44]; - RHS18 -= go[44] * *cnV[44]; - m_A41 += gt[45]; - m_A41 += gt[46]; - m_A42 += go[45]; - double RHS19 = Idr[45]; - RHS19 += Idr[46]; - RHS19 -= go[46] * *cnV[46]; - m_A43 += gt[47]; - m_A43 += gt[48]; - m_A44 += go[47]; - double RHS20 = Idr[47]; - RHS20 += Idr[48]; - RHS20 -= go[48] * *cnV[48]; - m_A46 += gt[49]; - m_A46 += gt[50]; - m_A46 += gt[51]; - m_A45 += go[49]; - m_A47 += go[50]; - double RHS21 = Idr[49]; - RHS21 += Idr[50]; - RHS21 += Idr[51]; - RHS21 -= go[51] * *cnV[51]; - m_A51 += gt[52]; - m_A51 += gt[53]; - m_A51 += gt[54]; - m_A51 += gt[55]; - m_A52 += go[52]; - m_A50 += go[53]; - m_A49 += go[54]; - m_A48 += go[55]; - double RHS22 = Idr[52]; - RHS22 += Idr[53]; - RHS22 += Idr[54]; - RHS22 += Idr[55]; - m_A56 += gt[56]; - m_A56 += gt[57]; - m_A56 += gt[58]; - m_A56 += gt[59]; - m_A57 += go[56]; - m_A55 += go[57]; - m_A54 += go[58]; - m_A53 += go[59]; - double RHS23 = Idr[56]; - RHS23 += Idr[57]; - RHS23 += Idr[58]; - RHS23 += Idr[59]; - m_A61 += gt[60]; - m_A61 += gt[61]; - m_A61 += gt[62]; - m_A61 += gt[63]; - m_A62 += go[60]; - m_A60 += go[61]; - m_A59 += go[62]; - m_A58 += go[63]; - double RHS24 = Idr[60]; - RHS24 += Idr[61]; - RHS24 += Idr[62]; - RHS24 += Idr[63]; - m_A66 += gt[64]; - m_A66 += gt[65]; - m_A66 += gt[66]; - m_A66 += gt[67]; - m_A67 += go[64]; - m_A65 += go[65]; - m_A64 += go[66]; - m_A63 += go[67]; - double RHS25 = Idr[64]; - RHS25 += Idr[65]; - RHS25 += Idr[66]; - RHS25 += Idr[67]; - m_A71 += gt[68]; - m_A71 += gt[69]; - m_A71 += gt[70]; - m_A71 += gt[71]; - m_A72 += go[68]; - m_A70 += go[69]; - m_A69 += go[70]; - m_A68 += go[71]; - double RHS26 = Idr[68]; - RHS26 += Idr[69]; - RHS26 += Idr[70]; - RHS26 += Idr[71]; - m_A75 += gt[72]; - m_A75 += gt[73]; - m_A75 += gt[74]; - m_A75 += gt[75]; - m_A75 += gt[76]; - m_A73 += go[72]; - m_A74 += go[73]; - m_A76 += go[74]; - double RHS27 = Idr[72]; - RHS27 += Idr[73]; - RHS27 += Idr[74]; - RHS27 += Idr[75]; - RHS27 += Idr[76]; - RHS27 -= go[75] * *cnV[75]; - RHS27 -= go[76] * *cnV[76]; - m_A84 += gt[77]; - m_A84 += gt[78]; - m_A84 += gt[79]; - m_A84 += gt[80]; - m_A84 += gt[81]; - m_A84 += gt[82]; - m_A84 += gt[83]; - m_A84 += gt[84]; - m_A83 += go[77]; - m_A80 += go[78]; - m_A82 += go[79]; - m_A81 += go[80]; - m_A79 += go[81]; - m_A78 += go[82]; - m_A77 += go[83]; - double RHS28 = Idr[77]; - RHS28 += Idr[78]; - RHS28 += Idr[79]; - RHS28 += Idr[80]; - RHS28 += Idr[81]; + RHS18 += Idr[45]; + RHS18 -= go[45] * *cnV[45]; + m_A44 += gt[46]; + m_A44 += gt[47]; + m_A44 += gt[48]; + m_A44 += gt[49]; + m_A44 += gt[50]; + m_A44 += gt[51]; + m_A45 += go[46]; + m_A46 += go[47]; + double RHS19 = Idr[46]; + RHS19 += Idr[47]; + RHS19 += Idr[48]; + RHS19 += Idr[49]; + RHS19 += Idr[50]; + RHS19 += Idr[51]; + RHS19 -= go[48] * *cnV[48]; + RHS19 -= go[49] * *cnV[49]; + RHS19 -= go[50] * *cnV[50]; + RHS19 -= go[51] * *cnV[51]; + m_A47 += gt[52]; + m_A47 += gt[53]; + m_A47 += gt[54]; + m_A49 += go[52]; + m_A48 += go[53]; + double RHS20 = Idr[52]; + RHS20 += Idr[53]; + RHS20 += Idr[54]; + RHS20 -= go[54] * *cnV[54]; + m_A50 += gt[55]; + m_A50 += gt[56]; + m_A50 += gt[57]; + m_A50 += gt[58]; + m_A50 += gt[59]; + m_A50 += gt[60]; + m_A50 += gt[61]; + m_A52 += go[55]; + m_A51 += go[56]; + double RHS21 = Idr[55]; + RHS21 += Idr[56]; + RHS21 += Idr[57]; + RHS21 += Idr[58]; + RHS21 += Idr[59]; + RHS21 += Idr[60]; + RHS21 += Idr[61]; + RHS21 -= go[57] * *cnV[57]; + RHS21 -= go[58] * *cnV[58]; + RHS21 -= go[59] * *cnV[59]; + RHS21 -= go[60] * *cnV[60]; + RHS21 -= go[61] * *cnV[61]; + m_A53 += gt[62]; + m_A53 += gt[63]; + m_A53 += gt[64]; + m_A54 += go[62]; + m_A55 += go[63]; + double RHS22 = Idr[62]; + RHS22 += Idr[63]; + RHS22 += Idr[64]; + RHS22 -= go[64] * *cnV[64]; + m_A58 += gt[65]; + m_A58 += gt[66]; + m_A58 += gt[67]; + m_A57 += go[65]; + m_A56 += go[66]; + double RHS23 = Idr[65]; + RHS23 += Idr[66]; + RHS23 += Idr[67]; + RHS23 -= go[67] * *cnV[67]; + m_A61 += gt[68]; + m_A61 += gt[69]; + m_A61 += gt[70]; + m_A62 += go[68]; + m_A60 += go[69]; + double RHS24 = Idr[68]; + RHS24 += Idr[69]; + RHS24 += Idr[70]; + RHS24 -= go[70] * *cnV[70]; + m_A65 += gt[71]; + m_A65 += gt[72]; + m_A65 += gt[73]; + m_A63 += go[71]; + m_A66 += go[72]; + double RHS25 = Idr[71]; + RHS25 += Idr[72]; + RHS25 += Idr[73]; + RHS25 -= go[73] * *cnV[73]; + m_A69 += gt[74]; + m_A69 += gt[75]; + m_A69 += gt[76]; + m_A68 += go[74]; + m_A67 += go[75]; + double RHS26 = Idr[74]; + RHS26 += Idr[75]; + RHS26 += Idr[76]; + RHS26 -= go[76] * *cnV[76]; + m_A74 += gt[77]; + m_A74 += gt[78]; + m_A74 += gt[79]; + m_A74 += gt[80]; + m_A72 += go[77]; + m_A71 += go[78]; + m_A73 += go[79]; + double RHS27 = Idr[77]; + RHS27 += Idr[78]; + RHS27 += Idr[79]; + RHS27 += Idr[80]; + RHS27 -= go[80] * *cnV[80]; + m_A78 += gt[81]; + m_A78 += gt[82]; + m_A78 += gt[83]; + m_A77 += go[81]; + m_A76 += go[82]; + double RHS28 = Idr[81]; RHS28 += Idr[82]; RHS28 += Idr[83]; - RHS28 += Idr[84]; - RHS28 -= go[84] * *cnV[84]; + RHS28 -= go[83] * *cnV[83]; + m_A81 += gt[84]; + m_A81 += gt[85]; + m_A81 += gt[86]; + m_A82 += go[84]; + m_A80 += go[85]; + double RHS29 = Idr[84]; + RHS29 += Idr[85]; + RHS29 += Idr[86]; + RHS29 -= go[86] * *cnV[86]; + m_A85 += gt[87]; + m_A85 += gt[88]; + m_A85 += gt[89]; + m_A84 += go[87]; + m_A83 += go[88]; + double RHS30 = Idr[87]; + RHS30 += Idr[88]; + RHS30 += Idr[89]; + RHS30 -= go[89] * *cnV[89]; + m_A90 += gt[90]; + m_A90 += gt[91]; + m_A90 += gt[92]; + m_A90 += gt[93]; + m_A90 += gt[94]; + m_A88 += go[90]; + m_A87 += go[91]; + m_A92 += go[92]; + double RHS31 = Idr[90]; + RHS31 += Idr[91]; + RHS31 += Idr[92]; + RHS31 += Idr[93]; + RHS31 += Idr[94]; + RHS31 -= go[93] * *cnV[93]; + RHS31 -= go[94] * *cnV[94]; + m_A95 += gt[95]; + m_A95 += gt[96]; + m_A95 += gt[97]; + m_A95 += gt[98]; + m_A94 += go[95]; + m_A93 += go[96]; + double RHS32 = Idr[95]; + RHS32 += Idr[96]; + RHS32 += Idr[97]; + RHS32 += Idr[98]; + RHS32 -= go[97] * *cnV[97]; + RHS32 -= go[98] * *cnV[98]; + m_A99 += gt[99]; + m_A99 += gt[100]; + m_A99 += gt[101]; + m_A97 += go[99]; + m_A100 += go[100]; + double RHS33 = Idr[99]; + RHS33 += Idr[100]; + RHS33 += Idr[101]; + RHS33 -= go[101] * *cnV[101]; + m_A103 += gt[102]; + m_A103 += gt[103]; + m_A103 += gt[104]; + m_A102 += go[102]; + m_A101 += go[103]; + double RHS34 = Idr[102]; + RHS34 += Idr[103]; + RHS34 += Idr[104]; + RHS34 -= go[104] * *cnV[104]; + m_A107 += gt[105]; + m_A107 += gt[106]; + m_A107 += gt[107]; + m_A105 += go[105]; + m_A106 += go[106]; + double RHS35 = Idr[105]; + RHS35 += Idr[106]; + RHS35 += Idr[107]; + RHS35 -= go[107] * *cnV[107]; + m_A112 += gt[108]; + m_A112 += gt[109]; + m_A112 += gt[110]; + m_A112 += gt[111]; + m_A110 += go[108]; + m_A114 += go[109]; + m_A109 += go[110]; + double RHS36 = Idr[108]; + RHS36 += Idr[109]; + RHS36 += Idr[110]; + RHS36 += Idr[111]; + RHS36 -= go[111] * *cnV[111]; + m_A117 += gt[112]; + m_A117 += gt[113]; + m_A117 += gt[114]; + m_A115 += go[112]; + m_A118 += go[113]; + double RHS37 = Idr[112]; + RHS37 += Idr[113]; + RHS37 += Idr[114]; + RHS37 -= go[114] * *cnV[114]; + m_A127 += gt[115]; + m_A127 += gt[116]; + m_A127 += gt[117]; + m_A127 += gt[118]; + m_A127 += gt[119]; + m_A127 += gt[120]; + m_A124 += go[115]; + m_A121 += go[116]; + m_A120 += go[117]; + m_A122 += go[118]; + m_A119 += go[119]; + double RHS38 = Idr[115]; + RHS38 += Idr[116]; + RHS38 += Idr[117]; + RHS38 += Idr[118]; + RHS38 += Idr[119]; + RHS38 += Idr[120]; + RHS38 -= go[120] * *cnV[120]; + m_A131 += gt[121]; + m_A131 += gt[122]; + m_A131 += gt[123]; + m_A129 += go[121]; + m_A132 += go[122]; + double RHS39 = Idr[121]; + RHS39 += Idr[122]; + RHS39 += Idr[123]; + RHS39 -= go[123] * *cnV[123]; + m_A143 += gt[124]; + m_A143 += gt[125]; + m_A143 += gt[126]; + m_A143 += gt[127]; + m_A143 += gt[128]; + m_A143 += gt[129]; + m_A143 += gt[130]; + m_A143 += gt[131]; + m_A143 += gt[132]; + m_A143 += gt[133]; + m_A143 += gt[134]; + m_A133 += go[124]; + m_A134 += go[125]; + m_A142 += go[126]; + m_A140 += go[127]; + m_A137 += go[128]; + m_A136 += go[129]; + m_A135 += go[130]; + m_A139 += go[131]; + double RHS40 = Idr[124]; + RHS40 += Idr[125]; + RHS40 += Idr[126]; + RHS40 += Idr[127]; + RHS40 += Idr[128]; + RHS40 += Idr[129]; + RHS40 += Idr[130]; + RHS40 += Idr[131]; + RHS40 += Idr[132]; + RHS40 += Idr[133]; + RHS40 += Idr[134]; + RHS40 -= go[132] * *cnV[132]; + RHS40 -= go[133] * *cnV[133]; + RHS40 -= go[134] * *cnV[134]; const double f0 = 1.0 / m_A0; - const double f0_16 = -f0 * m_A32; - m_A35 += m_A1 * f0_16; - RHS16 += f0_16 * RHS0; + const double f0_29 = -f0 * m_A80; + m_A81 += m_A1 * f0_29; + RHS29 += f0_29 * RHS0; const double f1 = 1.0 / m_A2; - const double f1_16 = -f1 * m_A33; - m_A35 += m_A3 * f1_16; - RHS16 += f1_16 * RHS1; + const double f1_36 = -f1 * m_A109; + m_A112 += m_A3 * f1_36; + RHS36 += f1_36 * RHS1; const double f2 = 1.0 / m_A4; - const double f2_16 = -f2 * m_A34; - m_A35 += m_A5 * f2_16; - RHS16 += f2_16 * RHS2; + const double f2_30 = -f2 * m_A83; + m_A85 += m_A5 * f2_30; + RHS30 += f2_30 * RHS2; const double f3 = 1.0 / m_A6; - const double f3_22 = -f3 * m_A48; - m_A51 += m_A7 * f3_22; - RHS22 += f3_22 * RHS3; + const double f3_23 = -f3 * m_A56; + m_A58 += m_A7 * f3_23; + RHS23 += f3_23 * RHS3; const double f4 = 1.0 / m_A8; - const double f4_22 = -f4 * m_A49; - m_A51 += m_A9 * f4_22; - RHS22 += f4_22 * RHS4; + const double f4_26 = -f4 * m_A67; + m_A69 += m_A9 * f4_26; + RHS26 += f4_26 * RHS4; const double f5 = 1.0 / m_A10; - const double f5_22 = -f5 * m_A50; - m_A51 += m_A11 * f5_22; - RHS22 += f5_22 * RHS5; + const double f5_34 = -f5 * m_A101; + m_A103 += m_A11 * f5_34; + RHS34 += f5_34 * RHS5; const double f6 = 1.0 / m_A12; - const double f6_23 = -f6 * m_A53; - m_A56 += m_A13 * f6_23; - RHS23 += f6_23 * RHS6; + const double f6_24 = -f6 * m_A60; + m_A61 += m_A13 * f6_24; + RHS24 += f6_24 * RHS6; const double f7 = 1.0 / m_A14; - const double f7_23 = -f7 * m_A54; - m_A56 += m_A15 * f7_23; + const double f7_23 = -f7 * m_A57; + m_A58 += m_A15 * f7_23; + m_A59 += m_A16 * f7_23; RHS23 += f7_23 * RHS7; - const double f8 = 1.0 / m_A16; - const double f8_23 = -f8 * m_A55; - m_A56 += m_A17 * f8_23; - RHS23 += f8_23 * RHS8; - const double f9 = 1.0 / m_A18; - const double f9_25 = -f9 * m_A63; - m_A66 += m_A19 * f9_25; - RHS25 += f9_25 * RHS9; - const double f10 = 1.0 / m_A20; - const double f10_26 = -f10 * m_A68; - m_A71 += m_A21 * f10_26; - RHS26 += f10_26 * RHS10; - const double f11 = 1.0 / m_A22; - const double f11_24 = -f11 * m_A58; - m_A61 += m_A23 * f11_24; - RHS24 += f11_24 * RHS11; - const double f12 = 1.0 / m_A24; - const double f12_24 = -f12 * m_A59; - m_A61 += m_A25 * f12_24; - RHS24 += f12_24 * RHS12; - const double f13 = 1.0 / m_A26; + const double f7_25 = -f7 * m_A63; + m_A64 += m_A15 * f7_25; + m_A65 += m_A16 * f7_25; + RHS25 += f7_25 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_28 = -f8 * m_A76; + m_A78 += m_A18 * f8_28; + RHS28 += f8_28 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_26 = -f9 * m_A68; + m_A69 += m_A20 * f9_26; + m_A70 += m_A21 * f9_26; + RHS26 += f9_26 * RHS9; + const double f9_33 = -f9 * m_A97; + m_A98 += m_A20 * f9_33; + m_A99 += m_A21 * f9_33; + RHS33 += f9_33 * RHS9; + const double f10 = 1.0 / m_A22; + const double f10_27 = -f10 * m_A71; + m_A74 += m_A23 * f10_27; + RHS27 += f10_27 * RHS10; + const double f11 = 1.0 / m_A24; + const double f11_27 = -f11 * m_A72; + m_A74 += m_A25 * f11_27; + RHS27 += f11_27 * RHS11; + const double f12 = 1.0 / m_A26; + const double f12_32 = -f12 * m_A93; + m_A95 += m_A27 * f12_32; + RHS32 += f12_32 * RHS12; + const double f13 = 1.0 / m_A28; const double f13_27 = -f13 * m_A73; - m_A76 += m_A27 * f13_27; + m_A74 += m_A29 * f13_27; + m_A75 += m_A30 * f13_27; RHS27 += f13_27 * RHS13; - const double f14 = 1.0 / m_A28; - const double f14_24 = -f14 * m_A60; - m_A61 += m_A29 * f14_24; - RHS24 += f14_24 * RHS14; - const double f15 = 1.0 / m_A30; - const double f15_21 = -f15 * m_A45; - m_A46 += m_A31 * f15_21; - RHS21 += f15_21 * RHS15; - const double f16 = 1.0 / m_A35; + const double f13_38 = -f13 * m_A119; + m_A123 += m_A29 * f13_38; + m_A127 += m_A30 * f13_38; + RHS38 += f13_38 * RHS13; + const double f14 = 1.0 / m_A31; + const double f14_38 = -f14 * m_A120; + m_A127 += m_A32 * f14_38; + RHS38 += f14_38 * RHS14; + const double f15 = 1.0 / m_A33; + const double f15_31 = -f15 * m_A87; + m_A90 += m_A34 * f15_31; + m_A91 += m_A35 * f15_31; + RHS31 += f15_31 * RHS15; + const double f15_36 = -f15 * m_A110; + m_A111 += m_A34 * f15_36; + m_A112 += m_A35 * f15_36; + RHS36 += f15_36 * RHS15; + const double f16 = 1.0 / m_A36; const double f16_28 = -f16 * m_A77; - m_A84 += m_A36 * f16_28; + m_A78 += m_A37 * f16_28; + m_A79 += m_A38 * f16_28; RHS28 += f16_28 * RHS16; - const double f17 = 1.0 / m_A37; - const double f17_25 = -f17 * m_A64; - m_A66 += m_A38 * f17_25; - RHS25 += f17_25 * RHS17; - const double f18 = 1.0 / m_A39; - const double f18_25 = -f18 * m_A65; - m_A66 += m_A40 * f18_25; - RHS25 += f18_25 * RHS18; - const double f19 = 1.0 / m_A41; - const double f19_26 = -f19 * m_A69; - m_A71 += m_A42 * f19_26; - RHS26 += f19_26 * RHS19; - const double f20 = 1.0 / m_A43; - const double f20_26 = -f20 * m_A70; - m_A71 += m_A44 * f20_26; - RHS26 += f20_26 * RHS20; - const double f21 = 1.0 / m_A46; - const double f21_27 = -f21 * m_A74; - m_A75 += m_A47 * f21_27; - RHS27 += f21_27 * RHS21; - const double f22 = 1.0 / m_A51; - const double f22_28 = -f22 * m_A78; - m_A84 += m_A52 * f22_28; - RHS28 += f22_28 * RHS22; - const double f23 = 1.0 / m_A56; - const double f23_28 = -f23 * m_A79; - m_A84 += m_A57 * f23_28; - RHS28 += f23_28 * RHS23; + const double f16_31 = -f16 * m_A88; + m_A89 += m_A37 * f16_31; + m_A90 += m_A38 * f16_31; + RHS31 += f16_31 * RHS16; + const double f17 = 1.0 / m_A39; + const double f17_38 = -f17 * m_A121; + m_A127 += m_A40 * f17_38; + RHS38 += f17_38 * RHS17; + const double f18 = 1.0 / m_A41; + const double f18_30 = -f18 * m_A84; + m_A85 += m_A42 * f18_30; + m_A86 += m_A43 * f18_30; + RHS30 += f18_30 * RHS18; + const double f18_37 = -f18 * m_A115; + m_A116 += m_A42 * f18_37; + m_A117 += m_A43 * f18_37; + RHS37 += f18_37 * RHS18; + const double f19 = 1.0 / m_A44; + const double f19_32 = -f19 * m_A94; + m_A95 += m_A45 * f19_32; + m_A96 += m_A46 * f19_32; + RHS32 += f19_32 * RHS19; + const double f19_38 = -f19 * m_A122; + m_A125 += m_A45 * f19_38; + m_A127 += m_A46 * f19_38; + RHS38 += f19_38 * RHS19; + const double f20 = 1.0 / m_A47; + const double f20_34 = -f20 * m_A102; + m_A103 += m_A48 * f20_34; + m_A104 += m_A49 * f20_34; + RHS34 += f20_34 * RHS20; + const double f20_39 = -f20 * m_A129; + m_A130 += m_A48 * f20_39; + m_A131 += m_A49 * f20_39; + RHS39 += f20_39 * RHS20; + const double f21 = 1.0 / m_A50; + const double f21_40 = -f21 * m_A133; + m_A135 += m_A51 * f21_40; + m_A143 += m_A52 * f21_40; + RHS40 += f21_40 * RHS21; + const double f22 = 1.0 / m_A53; + const double f22_35 = -f22 * m_A105; + m_A107 += m_A54 * f22_35; + m_A108 += m_A55 * f22_35; + RHS35 += f22_35 * RHS22; + const double f22_40 = -f22 * m_A134; + m_A138 += m_A54 * f22_40; + m_A143 += m_A55 * f22_40; + RHS40 += f22_40 * RHS22; + const double f23 = 1.0 / m_A58; + const double f23_25 = -f23 * m_A64; + m_A65 += m_A59 * f23_25; + RHS25 += f23_25 * RHS23; const double f24 = 1.0 / m_A61; - const double f24_28 = -f24 * m_A80; - m_A84 += m_A62 * f24_28; - RHS28 += f24_28 * RHS24; - const double f25 = 1.0 / m_A66; - const double f25_28 = -f25 * m_A81; - m_A84 += m_A67 * f25_28; - RHS28 += f25_28 * RHS25; - const double f26 = 1.0 / m_A71; - const double f26_28 = -f26 * m_A82; - m_A84 += m_A72 * f26_28; - RHS28 += f26_28 * RHS26; - const double f27 = 1.0 / m_A75; - const double f27_28 = -f27 * m_A83; - m_A84 += m_A76 * f27_28; - RHS28 += f27_28 * RHS27; - V[28] = RHS28 / m_A84; + const double f24_40 = -f24 * m_A135; + m_A143 += m_A62 * f24_40; + RHS40 += f24_40 * RHS24; + const double f25 = 1.0 / m_A65; + const double f25_40 = -f25 * m_A136; + m_A143 += m_A66 * f25_40; + RHS40 += f25_40 * RHS25; + const double f26 = 1.0 / m_A69; + const double f26_33 = -f26 * m_A98; + m_A99 += m_A70 * f26_33; + RHS33 += f26_33 * RHS26; + const double f27 = 1.0 / m_A74; + const double f27_38 = -f27 * m_A123; + m_A127 += m_A75 * f27_38; + RHS38 += f27_38 * RHS27; + const double f28 = 1.0 / m_A78; + const double f28_31 = -f28 * m_A89; + m_A90 += m_A79 * f28_31; + RHS31 += f28_31 * RHS28; + const double f29 = 1.0 / m_A81; + const double f29_35 = -f29 * m_A106; + m_A107 += m_A82 * f29_35; + RHS35 += f29_35 * RHS29; + const double f30 = 1.0 / m_A85; + const double f30_37 = -f30 * m_A116; + m_A117 += m_A86 * f30_37; + RHS37 += f30_37 * RHS30; + const double f31 = 1.0 / m_A90; + const double f31_36 = -f31 * m_A111; + m_A112 += m_A91 * f31_36; + m_A113 += m_A92 * f31_36; + RHS36 += f31_36 * RHS31; + const double f31_38 = -f31 * m_A124; + m_A126 += m_A91 * f31_38; + m_A127 += m_A92 * f31_38; + RHS38 += f31_38 * RHS31; + const double f32 = 1.0 / m_A95; + const double f32_38 = -f32 * m_A125; + m_A127 += m_A96 * f32_38; + RHS38 += f32_38 * RHS32; + const double f33 = 1.0 / m_A99; + const double f33_40 = -f33 * m_A137; + m_A143 += m_A100 * f33_40; + RHS40 += f33_40 * RHS33; + const double f34 = 1.0 / m_A103; + const double f34_39 = -f34 * m_A130; + m_A131 += m_A104 * f34_39; + RHS39 += f34_39 * RHS34; + const double f35 = 1.0 / m_A107; + const double f35_40 = -f35 * m_A138; + m_A143 += m_A108 * f35_40; + RHS40 += f35_40 * RHS35; + const double f36 = 1.0 / m_A112; + const double f36_38 = -f36 * m_A126; + m_A127 += m_A113 * f36_38; + m_A128 += m_A114 * f36_38; + RHS38 += f36_38 * RHS36; + const double f36_40 = -f36 * m_A139; + m_A141 += m_A113 * f36_40; + m_A143 += m_A114 * f36_40; + RHS40 += f36_40 * RHS36; + const double f37 = 1.0 / m_A117; + const double f37_40 = -f37 * m_A140; + m_A143 += m_A118 * f37_40; + RHS40 += f37_40 * RHS37; + const double f38 = 1.0 / m_A127; + const double f38_40 = -f38 * m_A141; + m_A143 += m_A128 * f38_40; + RHS40 += f38_40 * RHS38; + const double f39 = 1.0 / m_A131; + const double f39_40 = -f39 * m_A142; + m_A143 += m_A132 * f39_40; + RHS40 += f39_40 * RHS39; + V[40] = RHS40 / m_A143; + double tmp39 = 0.0; + tmp39 += m_A132 * V[40]; + V[39] = (RHS39 - tmp39) / m_A131; + double tmp38 = 0.0; + tmp38 += m_A128 * V[40]; + V[38] = (RHS38 - tmp38) / m_A127; + double tmp37 = 0.0; + tmp37 += m_A118 * V[40]; + V[37] = (RHS37 - tmp37) / m_A117; + double tmp36 = 0.0; + tmp36 += m_A113 * V[38]; + tmp36 += m_A114 * V[40]; + V[36] = (RHS36 - tmp36) / m_A112; + double tmp35 = 0.0; + tmp35 += m_A108 * V[40]; + V[35] = (RHS35 - tmp35) / m_A107; + double tmp34 = 0.0; + tmp34 += m_A104 * V[39]; + V[34] = (RHS34 - tmp34) / m_A103; + double tmp33 = 0.0; + tmp33 += m_A100 * V[40]; + V[33] = (RHS33 - tmp33) / m_A99; + double tmp32 = 0.0; + tmp32 += m_A96 * V[38]; + V[32] = (RHS32 - tmp32) / m_A95; + double tmp31 = 0.0; + tmp31 += m_A91 * V[36]; + tmp31 += m_A92 * V[38]; + V[31] = (RHS31 - tmp31) / m_A90; + double tmp30 = 0.0; + tmp30 += m_A86 * V[37]; + V[30] = (RHS30 - tmp30) / m_A85; + double tmp29 = 0.0; + tmp29 += m_A82 * V[35]; + V[29] = (RHS29 - tmp29) / m_A81; + double tmp28 = 0.0; + tmp28 += m_A79 * V[31]; + V[28] = (RHS28 - tmp28) / m_A78; double tmp27 = 0.0; - tmp27 += m_A76 * V[28]; - V[27] = (RHS27 - tmp27) / m_A75; + tmp27 += m_A75 * V[38]; + V[27] = (RHS27 - tmp27) / m_A74; double tmp26 = 0.0; - tmp26 += m_A72 * V[28]; - V[26] = (RHS26 - tmp26) / m_A71; + tmp26 += m_A70 * V[33]; + V[26] = (RHS26 - tmp26) / m_A69; double tmp25 = 0.0; - tmp25 += m_A67 * V[28]; - V[25] = (RHS25 - tmp25) / m_A66; + tmp25 += m_A66 * V[40]; + V[25] = (RHS25 - tmp25) / m_A65; double tmp24 = 0.0; - tmp24 += m_A62 * V[28]; + tmp24 += m_A62 * V[40]; V[24] = (RHS24 - tmp24) / m_A61; double tmp23 = 0.0; - tmp23 += m_A57 * V[28]; - V[23] = (RHS23 - tmp23) / m_A56; + tmp23 += m_A59 * V[25]; + V[23] = (RHS23 - tmp23) / m_A58; double tmp22 = 0.0; - tmp22 += m_A52 * V[28]; - V[22] = (RHS22 - tmp22) / m_A51; + tmp22 += m_A54 * V[35]; + tmp22 += m_A55 * V[40]; + V[22] = (RHS22 - tmp22) / m_A53; double tmp21 = 0.0; - tmp21 += m_A47 * V[27]; - V[21] = (RHS21 - tmp21) / m_A46; + tmp21 += m_A51 * V[24]; + tmp21 += m_A52 * V[40]; + V[21] = (RHS21 - tmp21) / m_A50; double tmp20 = 0.0; - tmp20 += m_A44 * V[26]; - V[20] = (RHS20 - tmp20) / m_A43; + tmp20 += m_A48 * V[34]; + tmp20 += m_A49 * V[39]; + V[20] = (RHS20 - tmp20) / m_A47; double tmp19 = 0.0; - tmp19 += m_A42 * V[26]; - V[19] = (RHS19 - tmp19) / m_A41; + tmp19 += m_A45 * V[32]; + tmp19 += m_A46 * V[38]; + V[19] = (RHS19 - tmp19) / m_A44; double tmp18 = 0.0; - tmp18 += m_A40 * V[25]; - V[18] = (RHS18 - tmp18) / m_A39; + tmp18 += m_A42 * V[30]; + tmp18 += m_A43 * V[37]; + V[18] = (RHS18 - tmp18) / m_A41; double tmp17 = 0.0; - tmp17 += m_A38 * V[25]; - V[17] = (RHS17 - tmp17) / m_A37; - double tmp16 = 0.0; - tmp16 += m_A36 * V[28]; - V[16] = (RHS16 - tmp16) / m_A35; + tmp17 += m_A40 * V[38]; + V[17] = (RHS17 - tmp17) / m_A39; + double tmp16 = 0.0; + tmp16 += m_A37 * V[28]; + tmp16 += m_A38 * V[31]; + V[16] = (RHS16 - tmp16) / m_A36; double tmp15 = 0.0; - tmp15 += m_A31 * V[21]; - V[15] = (RHS15 - tmp15) / m_A30; + tmp15 += m_A34 * V[31]; + tmp15 += m_A35 * V[36]; + V[15] = (RHS15 - tmp15) / m_A33; double tmp14 = 0.0; - tmp14 += m_A29 * V[24]; - V[14] = (RHS14 - tmp14) / m_A28; + tmp14 += m_A32 * V[38]; + V[14] = (RHS14 - tmp14) / m_A31; double tmp13 = 0.0; - tmp13 += m_A27 * V[28]; - V[13] = (RHS13 - tmp13) / m_A26; + tmp13 += m_A29 * V[27]; + tmp13 += m_A30 * V[38]; + V[13] = (RHS13 - tmp13) / m_A28; double tmp12 = 0.0; - tmp12 += m_A25 * V[24]; - V[12] = (RHS12 - tmp12) / m_A24; + tmp12 += m_A27 * V[32]; + V[12] = (RHS12 - tmp12) / m_A26; double tmp11 = 0.0; - tmp11 += m_A23 * V[24]; - V[11] = (RHS11 - tmp11) / m_A22; + tmp11 += m_A25 * V[27]; + V[11] = (RHS11 - tmp11) / m_A24; double tmp10 = 0.0; - tmp10 += m_A21 * V[26]; - V[10] = (RHS10 - tmp10) / m_A20; + tmp10 += m_A23 * V[27]; + V[10] = (RHS10 - tmp10) / m_A22; double tmp9 = 0.0; - tmp9 += m_A19 * V[25]; - V[9] = (RHS9 - tmp9) / m_A18; + tmp9 += m_A20 * V[26]; + tmp9 += m_A21 * V[33]; + V[9] = (RHS9 - tmp9) / m_A19; double tmp8 = 0.0; - tmp8 += m_A17 * V[23]; - V[8] = (RHS8 - tmp8) / m_A16; + tmp8 += m_A18 * V[28]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; tmp7 += m_A15 * V[23]; + tmp7 += m_A16 * V[25]; V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A13 * V[23]; + tmp6 += m_A13 * V[24]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[22]; + tmp5 += m_A11 * V[34]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[22]; + tmp4 += m_A9 * V[26]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[22]; + tmp3 += m_A7 * V[23]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[16]; + tmp2 += m_A5 * V[30]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[16]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[16]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// breakout -static void nl_gcr_f7dc4f87b5a8ba93_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) - -{ - - plib::unused_var(cnV); - double m_A0(0.0); - double m_A1(0.0); - double m_A2(0.0); - double m_A3(0.0); - double m_A4(0.0); - double m_A5(0.0); - double m_A6(0.0); - m_A0 += gt[0]; - m_A0 += gt[1]; - m_A0 += gt[2]; - m_A1 += go[0]; - double RHS0 = Idr[0]; - RHS0 += Idr[1]; - RHS0 += Idr[2]; - RHS0 -= go[1] * *cnV[1]; - RHS0 -= go[2] * *cnV[2]; - m_A2 += gt[3]; - m_A2 += gt[4]; - m_A3 += go[3]; - double RHS1 = Idr[3]; - RHS1 += Idr[4]; - RHS1 -= go[4] * *cnV[4]; - m_A6 += gt[5]; - m_A6 += gt[6]; - m_A5 += go[5]; - m_A4 += go[6]; - double RHS2 = Idr[5]; - RHS2 += Idr[6]; - const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; - const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[36]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[29]; V[0] = (RHS0 - tmp0) / m_A0; } @@ -37140,8 +71941,482 @@ V[0] = (RHS0 - tmp0) / m_A0; } +// elim +static void nl_gcr_fcce97532ad2f49d_18_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A1 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A4 += go[5]; + m_A3 += go[6]; + m_A3 += go[7]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[8] * *cnV[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A5 += gt[11]; + m_A5 += gt[12]; + m_A6 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A7 += gt[13]; + m_A7 += gt[14]; + m_A8 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A10 += go[15]; + m_A10 += go[16]; + m_A9 += go[17]; + m_A9 += go[18]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A17 += gt[26]; + m_A15 += go[23]; + m_A14 += go[24]; + m_A13 += go[25]; + double RHS5 = Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[26] * *cnV[26]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A9; + m_A11 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A10; + m_A11 += m_A3 * f1_4; + m_A12 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A13; + m_A16 += m_A3 * f1_5; + m_A17 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_5 = -f2 * m_A14; + m_A17 += m_A6 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_5 = -f3 * m_A15; + m_A17 += m_A8 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_5 = -f4 * m_A16; + m_A17 += m_A12 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A17; + double tmp4 = 0.0; + tmp4 += m_A12 * V[5]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A8 * V[5]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A6 * V[5]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[4]; + tmp1 += m_A4 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// fireone +static void nl_gcr_fd2796828f1ebd00_36_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + double m_A7(0.0); + double m_A8(0.0); + double m_A9(0.0); + double m_A10(0.0); + double m_A11(0.0); + double m_A12(0.0); + double m_A13(0.0); + double m_A14(0.0); + double m_A15(0.0); + double m_A16(0.0); + double m_A17(0.0); + double m_A18(0.0); + double m_A19(0.0); + double m_A20(0.0); + double m_A21(0.0); + double m_A22(0.0); + double m_A23(0.0); + double m_A24(0.0); + double m_A25(0.0); + double m_A26(0.0); + double m_A27(0.0); + double m_A28(0.0); + double m_A29(0.0); + double m_A30(0.0); + double m_A31(0.0); + double m_A32(0.0); + double m_A33(0.0); + double m_A34(0.0); + double m_A35(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A0 += gt[5]; + m_A0 += gt[6]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + RHS0 -= go[5] * *cnV[5]; + RHS0 -= go[6] * *cnV[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A2 += gt[10]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A5 += go[11]; + double RHS2 = Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[12] * *cnV[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A7 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A9 += go[16]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A11 += go[20]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + RHS5 -= go[21] * *cnV[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A14 += go[22]; + m_A12 += go[23]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[24] * *cnV[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A16 += gt[27]; + m_A15 += go[25]; + m_A17 += go[26]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[27] * *cnV[27]; + m_A19 += gt[28]; + m_A19 += gt[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A20 += go[28]; + m_A18 += go[29]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A24 += gt[34]; + m_A24 += gt[35]; + m_A24 += gt[36]; + m_A23 += go[32]; + m_A26 += go[33]; + m_A25 += go[34]; + m_A22 += go[35]; + m_A21 += go[36]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + m_A29 += gt[37]; + m_A29 += gt[38]; + m_A28 += go[37]; + m_A27 += go[38]; + double RHS10 = Idr[37]; + RHS10 += Idr[38]; + m_A35 += gt[39]; + m_A35 += gt[40]; + m_A35 += gt[41]; + m_A35 += gt[42]; + m_A35 += gt[43]; + m_A30 += go[39]; + m_A31 += go[40]; + m_A33 += go[41]; + double RHS11 = Idr[39]; + RHS11 += Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A30; + m_A32 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A12; + m_A13 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_9 = -f2 * m_A21; + m_A25 += m_A5 * f2_9; + RHS9 += f2_9 * RHS2; + const double f2_10 = -f2 * m_A27; + m_A29 += m_A5 * f2_10; + RHS10 += f2_10 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_8 = -f3 * m_A18; + m_A20 += m_A7 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_9 = -f3 * m_A22; + m_A24 += m_A7 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_7 = -f4 * m_A15; + m_A16 += m_A9 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_9 = -f5 * m_A23; + m_A24 += m_A11 * f5_9; + RHS9 += f5_9 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_10 = -f6 * m_A28; + m_A29 += m_A14 * f6_10; + RHS10 += f6_10 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_11 = -f7 * m_A31; + m_A35 += m_A17 * f7_11; + RHS11 += f7_11 * RHS7; + const double f8 = 1.0 / m_A19; + const double f8_11 = -f8 * m_A32; + m_A33 += m_A20 * f8_11; + RHS11 += f8_11 * RHS8; + const double f9 = 1.0 / m_A24; + const double f9_11 = -f9 * m_A33; + m_A34 += m_A25 * f9_11; + m_A35 += m_A26 * f9_11; + RHS11 += f9_11 * RHS9; + const double f10 = 1.0 / m_A29; + const double f10_11 = -f10 * m_A34; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A35; + double tmp10 = 0.0; + V[10] = (RHS10 - tmp10) / m_A29; + double tmp9 = 0.0; + tmp9 += m_A25 * V[10]; + tmp9 += m_A26 * V[11]; + V[9] = (RHS9 - tmp9) / m_A24; + double tmp8 = 0.0; + tmp8 += m_A20 * V[9]; + V[8] = (RHS8 - tmp8) / m_A19; + double tmp7 = 0.0; + tmp7 += m_A17 * V[11]; + V[7] = (RHS7 - tmp7) / m_A16; + double tmp6 = 0.0; + tmp6 += m_A14 * V[10]; + V[6] = (RHS6 - tmp6) / m_A13; + double tmp5 = 0.0; + tmp5 += m_A11 * V[9]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[7]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[9]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[10]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[6]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[8]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// starfire +static void nl_gcr_feae15b80dd73620_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV) + +{ + + plib::unused_var(cnV); + double m_A0(0.0); + double m_A1(0.0); + double m_A2(0.0); + double m_A3(0.0); + double m_A4(0.0); + double m_A5(0.0); + double m_A6(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A2 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A4 += go[7]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + const double f0 = 1.0 / m_A0; + const double f0_1 = -f0 * m_A2; + m_A3 += m_A1 * f0_1; + RHS1 += f0_1 * RHS0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_2 = -f1 * m_A5; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[1]; + V[0] = (RHS0 - tmp0) / m_A0; +} + extern const plib::dynlib_static_sym nl_static_solver_syms[]; const plib::dynlib_static_sym nl_static_solver_syms[] = { +// elim + {"nl_gcr_11c2ae166b240b6e_10_double_double", reinterpret_cast(&nl_gcr_11c2ae166b240b6e_10_double_double)}, +// tankbatt + {"nl_gcr_124f7aa10f044582_16_double_double", reinterpret_cast(&nl_gcr_124f7aa10f044582_16_double_double)}, // armora {"nl_gcr_1250f340dea396ae_22_double_double", reinterpret_cast(&nl_gcr_1250f340dea396ae_22_double_double)}, // pongf @@ -37158,40 +72433,66 @@ {"nl_gcr_1f1086787c94f97c_40_double_double", reinterpret_cast(&nl_gcr_1f1086787c94f97c_40_double_double)}, // zac1b11142 {"nl_gcr_1fad5cda2646cf42_30_double_double", reinterpret_cast(&nl_gcr_1fad5cda2646cf42_30_double_double)}, +// sspeedr + {"nl_gcr_2294220d3c91e762_176_double_double", reinterpret_cast(&nl_gcr_2294220d3c91e762_176_double_double)}, // 280zzzap {"nl_gcr_24643c159711f292_95_double_double", reinterpret_cast(&nl_gcr_24643c159711f292_95_double_double)}, // zac1b11142 {"nl_gcr_287a160e7c36b5b0_96_double_double", reinterpret_cast(&nl_gcr_287a160e7c36b5b0_96_double_double)}, +// elim + {"nl_gcr_28b736fe552777a9_45_double_double", reinterpret_cast(&nl_gcr_28b736fe552777a9_45_double_double)}, // kidniki {"nl_gcr_294dde1e0ecca6d0_37_double_double", reinterpret_cast(&nl_gcr_294dde1e0ecca6d0_37_double_double)}, // ripoff {"nl_gcr_295cf2e2f3d489bf_12_double_double", reinterpret_cast(&nl_gcr_295cf2e2f3d489bf_12_double_double)}, +// spacfury + {"nl_gcr_2a153513d3e8e2cc_53_double_double", reinterpret_cast(&nl_gcr_2a153513d3e8e2cc_53_double_double)}, // boxingb {"nl_gcr_2f84bc98d737730b_22_double_double", reinterpret_cast(&nl_gcr_2f84bc98d737730b_22_double_double)}, +// astrob + {"nl_gcr_30fc51fe03b164cb_178_double_double", reinterpret_cast(&nl_gcr_30fc51fe03b164cb_178_double_double)}, +// tankbatt + {"nl_gcr_328d886b444b586b_137_double_double", reinterpret_cast(&nl_gcr_328d886b444b586b_137_double_double)}, +// astrob + {"nl_gcr_339c6b457f339538_159_double_double", reinterpret_cast(&nl_gcr_339c6b457f339538_159_double_double)}, // solarq {"nl_gcr_34e910fc1896999f_76_double_double", reinterpret_cast(&nl_gcr_34e910fc1896999f_76_double_double)}, +// sspeedr + {"nl_gcr_3e833834e5ce5aee_13_double_double", reinterpret_cast(&nl_gcr_3e833834e5ce5aee_13_double_double)}, +// astrob + {"nl_gcr_41c6441d98369158_20_double_double", reinterpret_cast(&nl_gcr_41c6441d98369158_20_double_double)}, // warrior {"nl_gcr_42a31ce5c187b308_12_double_double", reinterpret_cast(&nl_gcr_42a31ce5c187b308_12_double_double)}, // 280zzzap {"nl_gcr_42c57d523cac30d0_122_double_double", reinterpret_cast(&nl_gcr_42c57d523cac30d0_122_double_double)}, // ripoff {"nl_gcr_43188bf576854ae0_10_double_double", reinterpret_cast(&nl_gcr_43188bf576854ae0_10_double_double)}, +// destroyr + {"nl_gcr_4334c95878d1be92_399_double_double", reinterpret_cast(&nl_gcr_4334c95878d1be92_399_double_double)}, // kidniki {"nl_gcr_43f7ff9bc651cc7a_198_double_double", reinterpret_cast(&nl_gcr_43f7ff9bc651cc7a_198_double_double)}, // gamemachine {"nl_gcr_491f95430bfdfd05_19_double_double", reinterpret_cast(&nl_gcr_491f95430bfdfd05_19_double_double)}, +// sspeedr + {"nl_gcr_4a8e2b707bbac8a6_95_double_double", reinterpret_cast(&nl_gcr_4a8e2b707bbac8a6_95_double_double)}, // ripoff {"nl_gcr_4b5ecfbb8f9fa97b_29_double_double", reinterpret_cast(&nl_gcr_4b5ecfbb8f9fa97b_29_double_double)}, // gtrak10 {"nl_gcr_4c46fdf7c0037727_43_double_double", reinterpret_cast(&nl_gcr_4c46fdf7c0037727_43_double_double)}, // solarq {"nl_gcr_4cb524006206eb1a_25_double_double", reinterpret_cast(&nl_gcr_4cb524006206eb1a_25_double_double)}, +// spacfury + {"nl_gcr_4dbd0f2aec7ef707_110_double_double", reinterpret_cast(&nl_gcr_4dbd0f2aec7ef707_110_double_double)}, // solarq {"nl_gcr_4e4931ccbfb7a3c_70_double_double", reinterpret_cast(&nl_gcr_4e4931ccbfb7a3c_70_double_double)}, +// fireone + {"nl_gcr_4f2b2f3cdc384f75_41_double_double", reinterpret_cast(&nl_gcr_4f2b2f3cdc384f75_41_double_double)}, // boxingb {"nl_gcr_50f5194a994d56ec_16_double_double", reinterpret_cast(&nl_gcr_50f5194a994d56ec_16_double_double)}, // starhawk {"nl_gcr_528a27fe9ed07d67_45_double_double", reinterpret_cast(&nl_gcr_528a27fe9ed07d67_45_double_double)}, +// astrob + {"nl_gcr_536c3652eb3bc075_46_double_double", reinterpret_cast(&nl_gcr_536c3652eb3bc075_46_double_double)}, // boxingb {"nl_gcr_53e1117fdb16f546_23_double_double", reinterpret_cast(&nl_gcr_53e1117fdb16f546_23_double_double)}, // cheekyms @@ -37200,6 +72501,8 @@ {"nl_gcr_59cb6bf7cb9d17dc_7_double_double", reinterpret_cast(&nl_gcr_59cb6bf7cb9d17dc_7_double_double)}, // breakout {"nl_gcr_5a3419e2809520de_13_double_double", reinterpret_cast(&nl_gcr_5a3419e2809520de_13_double_double)}, +// segausb + {"nl_gcr_5b73834d5f313d38_12_double_double", reinterpret_cast(&nl_gcr_5b73834d5f313d38_12_double_double)}, // tailg {"nl_gcr_5ccf7da1202da2e5_31_double_double", reinterpret_cast(&nl_gcr_5ccf7da1202da2e5_31_double_double)}, // starcas @@ -37210,14 +72513,24 @@ {"nl_gcr_62612f71055b8fd4_303_double_double", reinterpret_cast(&nl_gcr_62612f71055b8fd4_303_double_double)}, // konami1x {"nl_gcr_62b99b9904a8c804_49_double_double", reinterpret_cast(&nl_gcr_62b99b9904a8c804_49_double_double)}, +// fireone + {"nl_gcr_643133e86b2b1628_73_double_double", reinterpret_cast(&nl_gcr_643133e86b2b1628_73_double_double)}, +// starfire + {"nl_gcr_649ebca7fa6793ed_27_double_double", reinterpret_cast(&nl_gcr_649ebca7fa6793ed_27_double_double)}, // armora {"nl_gcr_64e460d8f716cd89_58_double_double", reinterpret_cast(&nl_gcr_64e460d8f716cd89_58_double_double)}, +// flyball + {"nl_gcr_6622b53554e3776_291_double_double", reinterpret_cast(&nl_gcr_6622b53554e3776_291_double_double)}, // solarq {"nl_gcr_66496d6073aca98e_20_double_double", reinterpret_cast(&nl_gcr_66496d6073aca98e_20_double_double)}, // starhawk {"nl_gcr_67838e11f714c455_12_double_double", reinterpret_cast(&nl_gcr_67838e11f714c455_12_double_double)}, // ripoff {"nl_gcr_698d5dd47fb16d5_16_double_double", reinterpret_cast(&nl_gcr_698d5dd47fb16d5_16_double_double)}, +// astrob + {"nl_gcr_6c24726f30e8dc34_15_double_double", reinterpret_cast(&nl_gcr_6c24726f30e8dc34_15_double_double)}, +// spacfury + {"nl_gcr_6eae7b15cd376318_43_double_double", reinterpret_cast(&nl_gcr_6eae7b15cd376318_43_double_double)}, // barrier {"nl_gcr_6ef39a62161d596c_47_double_double", reinterpret_cast(&nl_gcr_6ef39a62161d596c_47_double_double)}, // starhawk @@ -37242,9 +72555,9 @@ {"nl_gcr_79e756c5892cf87d_31_double_double", reinterpret_cast(&nl_gcr_79e756c5892cf87d_31_double_double)}, // breakout {"nl_gcr_7a42b97d838ca073_7_double_double", reinterpret_cast(&nl_gcr_7a42b97d838ca073_7_double_double)}, -// 280zzzap - {"nl_gcr_7afaac594132b463_104_double_double", reinterpret_cast(&nl_gcr_7afaac594132b463_104_double_double)}, -// cheekyms +// fireone + {"nl_gcr_7aee4423e3fdbfda_128_double_double", reinterpret_cast(&nl_gcr_7aee4423e3fdbfda_128_double_double)}, +// astrob {"nl_gcr_7c86a9bc1c6aef4c_7_double_double", reinterpret_cast(&nl_gcr_7c86a9bc1c6aef4c_7_double_double)}, // solarq {"nl_gcr_7caaa135bff3d9f3_15_double_double", reinterpret_cast(&nl_gcr_7caaa135bff3d9f3_15_double_double)}, @@ -37254,6 +72567,8 @@ {"nl_gcr_8046625a0fe0959_21_double_double", reinterpret_cast(&nl_gcr_8046625a0fe0959_21_double_double)}, // mario {"nl_gcr_80b4b1e5cc58d303_29_double_double", reinterpret_cast(&nl_gcr_80b4b1e5cc58d303_29_double_double)}, +// elim + {"nl_gcr_81f40a54af2ca202_10_double_double", reinterpret_cast(&nl_gcr_81f40a54af2ca202_10_double_double)}, // sundance {"nl_gcr_8446e63d7842f6a6_70_double_double", reinterpret_cast(&nl_gcr_8446e63d7842f6a6_70_double_double)}, // dpatrol @@ -37274,10 +72589,22 @@ {"nl_gcr_8bec817b324dcc3_28_double_double", reinterpret_cast(&nl_gcr_8bec817b324dcc3_28_double_double)}, // cocoloco {"nl_gcr_8c0f7f2284333de5_16_double_double", reinterpret_cast(&nl_gcr_8c0f7f2284333de5_16_double_double)}, +// spacfury + {"nl_gcr_8c1dd4afcf0f8ea2_15_double_double", reinterpret_cast(&nl_gcr_8c1dd4afcf0f8ea2_15_double_double)}, +// fireone + {"nl_gcr_8c512fd6a6dabc50_35_double_double", reinterpret_cast(&nl_gcr_8c512fd6a6dabc50_35_double_double)}, +// segausb + {"nl_gcr_8cc4eb213eaeef9b_30_double_double", reinterpret_cast(&nl_gcr_8cc4eb213eaeef9b_30_double_double)}, +// starcrus + {"nl_gcr_8d7bddf33d942482_129_double_double", reinterpret_cast(&nl_gcr_8d7bddf33d942482_129_double_double)}, +// tank + {"nl_gcr_930b64361c2cdba8_328_double_double", reinterpret_cast(&nl_gcr_930b64361c2cdba8_328_double_double)}, // gamemachine {"nl_gcr_934712b55bb3b2b2_10_double_double", reinterpret_cast(&nl_gcr_934712b55bb3b2b2_10_double_double)}, // kidniki {"nl_gcr_9a5874c8e2da79d2_37_double_double", reinterpret_cast(&nl_gcr_9a5874c8e2da79d2_37_double_double)}, +// fireone + {"nl_gcr_9aa159329f86ca8b_70_double_double", reinterpret_cast(&nl_gcr_9aa159329f86ca8b_70_double_double)}, // warrior {"nl_gcr_9c975530a1a529d6_7_double_double", reinterpret_cast(&nl_gcr_9c975530a1a529d6_7_double_double)}, // kidniki @@ -37288,7 +72615,7 @@ {"nl_gcr_a0bf548977306172_25_double_double", reinterpret_cast(&nl_gcr_a0bf548977306172_25_double_double)}, // boxingb {"nl_gcr_a1132c8737d5d463_96_double_double", reinterpret_cast(&nl_gcr_a1132c8737d5d463_96_double_double)}, -// rebound +// astrob {"nl_gcr_a41a44bd5c424f88_13_double_double", reinterpret_cast(&nl_gcr_a41a44bd5c424f88_13_double_double)}, // tp1985 {"nl_gcr_a4540ffea06b4346_26_double_double", reinterpret_cast(&nl_gcr_a4540ffea06b4346_26_double_double)}, @@ -37298,16 +72625,26 @@ {"nl_gcr_a50a4b733e95414a_10_double_double", reinterpret_cast(&nl_gcr_a50a4b733e95414a_10_double_double)}, // starcas {"nl_gcr_a582a424cb61c678_62_double_double", reinterpret_cast(&nl_gcr_a582a424cb61c678_62_double_double)}, +// tank + {"nl_gcr_a63d1344e34bef4b_36_double_double", reinterpret_cast(&nl_gcr_a63d1344e34bef4b_36_double_double)}, // boxingb {"nl_gcr_a6b734322b3ea924_22_double_double", reinterpret_cast(&nl_gcr_a6b734322b3ea924_22_double_double)}, // armora {"nl_gcr_a6cfda6668b153c2_22_double_double", reinterpret_cast(&nl_gcr_a6cfda6668b153c2_22_double_double)}, // boxingb {"nl_gcr_a6f74be7f61e6db2_29_double_double", reinterpret_cast(&nl_gcr_a6f74be7f61e6db2_29_double_double)}, +// carpolo + {"nl_gcr_a8f1d076330f06b7_34_double_double", reinterpret_cast(&nl_gcr_a8f1d076330f06b7_34_double_double)}, // breakout {"nl_gcr_a971eeb2ef76f75f_13_double_double", reinterpret_cast(&nl_gcr_a971eeb2ef76f75f_13_double_double)}, // ripoff {"nl_gcr_aa07266ef5d420d1_11_double_double", reinterpret_cast(&nl_gcr_aa07266ef5d420d1_11_double_double)}, +// 280zzzap + {"nl_gcr_ab9144d965a37e4_113_double_double", reinterpret_cast(&nl_gcr_ab9144d965a37e4_113_double_double)}, +// sspeedr + {"nl_gcr_ac1e401ddf971e15_10_double_double", reinterpret_cast(&nl_gcr_ac1e401ddf971e15_10_double_double)}, +// starfire + {"nl_gcr_aceb6035dfb557c9_12_double_double", reinterpret_cast(&nl_gcr_aceb6035dfb557c9_12_double_double)}, // sundance {"nl_gcr_ad6dba01ff2425c3_12_double_double", reinterpret_cast(&nl_gcr_ad6dba01ff2425c3_12_double_double)}, // rebound @@ -37318,22 +72655,44 @@ {"nl_gcr_afce66fb47d3c5f3_62_double_double", reinterpret_cast(&nl_gcr_afce66fb47d3c5f3_62_double_double)}, // spacewar {"nl_gcr_b09deef9a25aecaf_24_double_double", reinterpret_cast(&nl_gcr_b09deef9a25aecaf_24_double_double)}, +// spacfury + {"nl_gcr_b1db23287df1da54_175_double_double", reinterpret_cast(&nl_gcr_b1db23287df1da54_175_double_double)}, +// segaspeech + {"nl_gcr_b22769fbf3159a8d_21_double_double", reinterpret_cast(&nl_gcr_b22769fbf3159a8d_21_double_double)}, // breakout {"nl_gcr_b66ff415b228d5f8_10_double_double", reinterpret_cast(&nl_gcr_b66ff415b228d5f8_10_double_double)}, // starcas {"nl_gcr_b7344e05aac90017_65_double_double", reinterpret_cast(&nl_gcr_b7344e05aac90017_65_double_double)}, +// starfire + {"nl_gcr_b75e0baeb501e907_23_double_double", reinterpret_cast(&nl_gcr_b75e0baeb501e907_23_double_double)}, +// spacfury + {"nl_gcr_b7b209d222c0a9a6_91_double_double", reinterpret_cast(&nl_gcr_b7b209d222c0a9a6_91_double_double)}, // boxingb {"nl_gcr_b8d6d148a50bdb8f_55_double_double", reinterpret_cast(&nl_gcr_b8d6d148a50bdb8f_55_double_double)}, // 280zzzap {"nl_gcr_bb501e6a23177009_57_double_double", reinterpret_cast(&nl_gcr_bb501e6a23177009_57_double_double)}, +// elim + {"nl_gcr_bb56fa5325163fc3_15_double_double", reinterpret_cast(&nl_gcr_bb56fa5325163fc3_15_double_double)}, +// starfire + {"nl_gcr_bd1514d7defd4062_9_double_double", reinterpret_cast(&nl_gcr_bd1514d7defd4062_9_double_double)}, // ripoff {"nl_gcr_be7c805100c522fd_59_double_double", reinterpret_cast(&nl_gcr_be7c805100c522fd_59_double_double)}, +// elim + {"nl_gcr_be831e5faa508573_150_double_double", reinterpret_cast(&nl_gcr_be831e5faa508573_150_double_double)}, // warrior {"nl_gcr_bff07f8d339f7cc4_89_double_double", reinterpret_cast(&nl_gcr_bff07f8d339f7cc4_89_double_double)}, +// fireone + {"nl_gcr_c1d22fe6e895255d_79_double_double", reinterpret_cast(&nl_gcr_c1d22fe6e895255d_79_double_double)}, +// starcrus + {"nl_gcr_c2e616f3de30f15b_31_double_double", reinterpret_cast(&nl_gcr_c2e616f3de30f15b_31_double_double)}, // tailg {"nl_gcr_c4cec7aed23b7b94_23_double_double", reinterpret_cast(&nl_gcr_c4cec7aed23b7b94_23_double_double)}, +// segausb + {"nl_gcr_c61e08cf5e35918_84_double_double", reinterpret_cast(&nl_gcr_c61e08cf5e35918_84_double_double)}, // popeye {"nl_gcr_c6f25bb06e161d1c_50_double_double", reinterpret_cast(&nl_gcr_c6f25bb06e161d1c_50_double_double)}, +// flyball + {"nl_gcr_c74b1a65978d7121_7_double_double", reinterpret_cast(&nl_gcr_c74b1a65978d7121_7_double_double)}, // stuntcyc {"nl_gcr_c924fe5960b1479e_20_double_double", reinterpret_cast(&nl_gcr_c924fe5960b1479e_20_double_double)}, // dpatrol @@ -37342,16 +72701,32 @@ {"nl_gcr_cb2aae3366e0ac1c_7_double_double", reinterpret_cast(&nl_gcr_cb2aae3366e0ac1c_7_double_double)}, // barrier {"nl_gcr_cc913f9c3f9293e7_19_double_double", reinterpret_cast(&nl_gcr_cc913f9c3f9293e7_19_double_double)}, +// fireone + {"nl_gcr_cca3d1a4219e2ec0_153_double_double", reinterpret_cast(&nl_gcr_cca3d1a4219e2ec0_153_double_double)}, // 1942 {"nl_gcr_ce766957cb26ff3e_90_double_double", reinterpret_cast(&nl_gcr_ce766957cb26ff3e_90_double_double)}, +// astrob + {"nl_gcr_cf1018e7ed626623_43_double_double", reinterpret_cast(&nl_gcr_cf1018e7ed626623_43_double_double)}, // zac1b11142 {"nl_gcr_cfd3bbf5fbba4765_71_double_double", reinterpret_cast(&nl_gcr_cfd3bbf5fbba4765_71_double_double)}, // gunfight {"nl_gcr_d05b3dbe370c7904_14_double_double", reinterpret_cast(&nl_gcr_d05b3dbe370c7904_14_double_double)}, // barrier {"nl_gcr_d06bd7ddbfd17b5e_15_double_double", reinterpret_cast(&nl_gcr_d06bd7ddbfd17b5e_15_double_double)}, +// elim + {"nl_gcr_d13f9c6838af6aeb_13_double_double", reinterpret_cast(&nl_gcr_d13f9c6838af6aeb_13_double_double)}, +// elim + {"nl_gcr_d190a0e3b8e1f4a7_7_double_double", reinterpret_cast(&nl_gcr_d190a0e3b8e1f4a7_7_double_double)}, +// elim + {"nl_gcr_d224211d1af6811d_12_double_double", reinterpret_cast(&nl_gcr_d224211d1af6811d_12_double_double)}, // armora {"nl_gcr_d27a39bc93616187_45_double_double", reinterpret_cast(&nl_gcr_d27a39bc93616187_45_double_double)}, +// elim + {"nl_gcr_d2ea3f267b959e8b_20_double_double", reinterpret_cast(&nl_gcr_d2ea3f267b959e8b_20_double_double)}, +// starfire + {"nl_gcr_d32effa2b0ea54a1_438_double_double", reinterpret_cast(&nl_gcr_d32effa2b0ea54a1_438_double_double)}, +// spacfury + {"nl_gcr_d4c34516ff6aa139_46_double_double", reinterpret_cast(&nl_gcr_d4c34516ff6aa139_46_double_double)}, // boxingb {"nl_gcr_d7d45dc58b08cab9_10_double_double", reinterpret_cast(&nl_gcr_d7d45dc58b08cab9_10_double_double)}, // kidniki @@ -37360,6 +72735,8 @@ {"nl_gcr_da598f43329e823_27_double_double", reinterpret_cast(&nl_gcr_da598f43329e823_27_double_double)}, // pongf {"nl_gcr_dbafc5ddaf7a08f8_35_double_double", reinterpret_cast(&nl_gcr_dbafc5ddaf7a08f8_35_double_double)}, +// fireone + {"nl_gcr_dcbecbc127c5868f_36_double_double", reinterpret_cast(&nl_gcr_dcbecbc127c5868f_36_double_double)}, // sundance {"nl_gcr_e02a162cb515a958_100_double_double", reinterpret_cast(&nl_gcr_e02a162cb515a958_100_double_double)}, // speedfrk @@ -37368,6 +72745,8 @@ {"nl_gcr_e081f90c2e0313f6_45_double_double", reinterpret_cast(&nl_gcr_e081f90c2e0313f6_45_double_double)}, // spacewar {"nl_gcr_e0b492db40bba291_20_double_double", reinterpret_cast(&nl_gcr_e0b492db40bba291_20_double_double)}, +// flyball + {"nl_gcr_e15d9316d59cdad9_7_double_double", reinterpret_cast(&nl_gcr_e15d9316d59cdad9_7_double_double)}, // speedfrk {"nl_gcr_e4f2ffbf201a3d0c_37_double_double", reinterpret_cast(&nl_gcr_e4f2ffbf201a3d0c_37_double_double)}, // pongf @@ -37378,6 +72757,12 @@ {"nl_gcr_e60314070a75e121_20_double_double", reinterpret_cast(&nl_gcr_e60314070a75e121_20_double_double)}, // cheekyms {"nl_gcr_e75302e17c866419_150_double_double", reinterpret_cast(&nl_gcr_e75302e17c866419_150_double_double)}, +// elim + {"nl_gcr_e76692c10e79997e_36_double_double", reinterpret_cast(&nl_gcr_e76692c10e79997e_36_double_double)}, +// fireone + {"nl_gcr_e7fb484f621b3ab9_7_double_double", reinterpret_cast(&nl_gcr_e7fb484f621b3ab9_7_double_double)}, +// elim + {"nl_gcr_e8aeb165b69427ec_18_double_double", reinterpret_cast(&nl_gcr_e8aeb165b69427ec_18_double_double)}, // spacewar {"nl_gcr_e9e8211f43d8f4b3_22_double_double", reinterpret_cast(&nl_gcr_e9e8211f43d8f4b3_22_double_double)}, // boxingb @@ -37388,17 +72773,41 @@ {"nl_gcr_ecf17036ce1c07cf_10_double_double", reinterpret_cast(&nl_gcr_ecf17036ce1c07cf_10_double_double)}, // armora {"nl_gcr_ee2cacaa15d32491_67_double_double", reinterpret_cast(&nl_gcr_ee2cacaa15d32491_67_double_double)}, +// astrob + {"nl_gcr_ee61dcaa355fc625_285_double_double", reinterpret_cast(&nl_gcr_ee61dcaa355fc625_285_double_double)}, +// starcrus + {"nl_gcr_ef2f49641f433a74_94_double_double", reinterpret_cast(&nl_gcr_ef2f49641f433a74_94_double_double)}, +// astrob + {"nl_gcr_efd052e6829c33e_9_double_double", reinterpret_cast(&nl_gcr_efd052e6829c33e_9_double_double)}, +// spacfury + {"nl_gcr_f365c3863b050e35_45_double_double", reinterpret_cast(&nl_gcr_f365c3863b050e35_45_double_double)}, +// spacfury + {"nl_gcr_f3c9a6d53371d709_227_double_double", reinterpret_cast(&nl_gcr_f3c9a6d53371d709_227_double_double)}, // barrier {"nl_gcr_f425d4008ae1d2c6_13_double_double", reinterpret_cast(&nl_gcr_f425d4008ae1d2c6_13_double_double)}, // boxingb {"nl_gcr_f43cf2a28a5a5561_23_double_double", reinterpret_cast(&nl_gcr_f43cf2a28a5a5561_23_double_double)}, +// spacfury + {"nl_gcr_f4da1503eabe16cf_16_double_double", reinterpret_cast(&nl_gcr_f4da1503eabe16cf_16_double_double)}, +// elim + {"nl_gcr_f4f4e2ee05cb584e_13_double_double", reinterpret_cast(&nl_gcr_f4f4e2ee05cb584e_13_double_double)}, // konami2x {"nl_gcr_f6900d3f36a91049_85_double_double", reinterpret_cast(&nl_gcr_f6900d3f36a91049_85_double_double)}, // breakout {"nl_gcr_f7dc4f87b5a8ba93_7_double_double", reinterpret_cast(&nl_gcr_f7dc4f87b5a8ba93_7_double_double)}, +// fireone + {"nl_gcr_f8f6a951fd1af6bc_7_double_double", reinterpret_cast(&nl_gcr_f8f6a951fd1af6bc_7_double_double)}, +// zektor + {"nl_gcr_fbff020f5f5d5a5_144_double_double", reinterpret_cast(&nl_gcr_fbff020f5f5d5a5_144_double_double)}, // kidniki {"nl_gcr_fc02559fdbfb0e10_67_double_double", reinterpret_cast(&nl_gcr_fc02559fdbfb0e10_67_double_double)}, // 280zzzap {"nl_gcr_fc9971724787b82b_149_double_double", reinterpret_cast(&nl_gcr_fc9971724787b82b_149_double_double)}, +// elim + {"nl_gcr_fcce97532ad2f49d_18_double_double", reinterpret_cast(&nl_gcr_fcce97532ad2f49d_18_double_double)}, +// fireone + {"nl_gcr_fd2796828f1ebd00_36_double_double", reinterpret_cast(&nl_gcr_fd2796828f1ebd00_36_double_double)}, +// starfire + {"nl_gcr_feae15b80dd73620_7_double_double", reinterpret_cast(&nl_gcr_feae15b80dd73620_7_double_double)}, {"", nullptr} }; diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,126 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud -#include "netlist/nl_setup.h" -#include "netlist/devices/net_lib.h" -#include "nlm_base.h" - -/* ---------------------------------------------------------------------------- - * Diode Models - * ---------------------------------------------------------------------------*/ - -static NETLIST_START(diode_models) - NET_MODEL("D _(IS=1e-15 N=1 NBV=3 IBV=0.001 BV=1E9)") - - NET_MODEL("1N914 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") - // FIXME: 1N916 currently only a copy of 1N914! - NET_MODEL("1N916 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") - NET_MODEL("1N4001 D(Is=14.11n N=1.984 Rs=33.89m Ikf=94.81 Xti=3 Eg=1.11 Cjo=25.89p M=.44 Vj=.3245 Fc=.5 Bv=75 Ibv=10u Tt=5.7u Iave=1 Vpk=50 mfg=GI type=silicon)") - NET_MODEL("1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") - NET_MODEL("1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75)") - - NET_MODEL("1N34A D( Bv=75 Cjo=0.5e-12 Eg=0.67 Ibv=18e-3 Is=2e-7 Rs=7 N=1.3 Vj=0.1 M=0.27 type=germanium)") - - NET_MODEL("LedRed D(IS=93.2p RS=42M N=3.73 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)") - NET_MODEL("LedGreen D(IS=93.2p RS=42M N=4.61 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)") - NET_MODEL("LedBlue D(IS=93.2p RS=42M N=7.47 BV=5 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=5 type=LED)") - NET_MODEL("LedWhite D(Is=0.27n Rs=5.65 N=6.79 Cjo=42p Iave=30m Vpk=5 type=LED)") - -NETLIST_END() - -/* ---------------------------------------------------------------------------- - * Mosfet Models - * ---------------------------------------------------------------------------*/ - -static NETLIST_START(mosfet_models) - //NET_MODEL("NMOS _(VTO=0.0 N=1.0 IS=1E-14 KP=2E-5 UO=600 PHI=0.6 LD=0.0 L=1.0 TOX=1E-7 W=1.0 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0)") - //NET_MODEL("PMOS _(VTO=0.0 N=1.0 IS=1E-14 KP=2E-5 UO=600 PHI=0.6 LD=0.0 L=1.0 TOX=1E-7 W=1.0 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0)") - - // NMOS_DEFAULT and PMOS_DEFAULT are created in nl_setup.cpp - NET_MODEL("NMOS NMOS_DEFAULT(VTO=0.0 N=1.0 IS=1E-14 KP=0.0 UO=600 PHI=0.0 LD=0.0 L=100e-6 TOX=1E-7 W=100e-6 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0 CGSO=0 CGDO=0 CGBO=0)") - NET_MODEL("PMOS PMOS_DEFAULT(VTO=0.0 N=1.0 IS=1E-14 KP=0.0 UO=600 PHI=0.0 LD=0.0 L=100e-6 TOX=1E-7 W=100e-6 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0 CGSO=0 CGDO=0 CGBO=0)") -NETLIST_END() - -/* ---------------------------------------------------------------------------- - * BJT Models - * ---------------------------------------------------------------------------*/ - -static NETLIST_START(bjt_models) - NET_MODEL("NPN _(IS=1e-15 BF=100 NF=1 BR=1 NR=1 CJE=0 CJC=0)") - NET_MODEL("PNP _(IS=1e-15 BF=100 NF=1 BR=1 NR=1 CJE=0 CJC=0)") - - NET_MODEL("2SA1015 PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=110 Xtb=1.5 Br=10.45 Rc=15 Cjc=66.2p Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n VCEO=45V ICrating=150M MFG=Toshiba)") - NET_MODEL("2SC1815 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)") - - NET_MODEL("2N3565 NPN(IS=5.911E-15 ISE=5.911E-15 ISC=0 XTI=3 BF=697.1 BR=1.297 IKF=0.01393 IKR=0 XTB=1.5 VAF=62.37 VAR=21.5 VJE=0.65 VJC=0.65 RE=0.15 RC=1.61 RB=10 CJE=4.973E-12 CJC=4.017E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.342 NC=2 MJE=0.4146 MJC=0.3174 TF=820.4E-12 TR=4.687E-9 ITF=0.35 VTF=4 XTF=7 EG=1.11 KF=1E-9 AF=1 VCEO=25 ICRATING=500m MFG=NSC)") - NET_MODEL("2N3643 NPN(IS=14.34E-15 ISE=14.34E-15 ISC=0 XTI=3 BF=255.9 BR=6.092 IKF=0.2847 IKR=0 XTB=1.5 VAF=74.03 VAR=28 VJE=0.65 VJC=0.65 RE=0.1 RC=1 RB=10 CJE=22.01E-12 CJC=7.306E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.307 NC=2 MJE=0.377 MJC=0.3416 TF=411.1E-12 TR=46.91E-9 ITF=0.6 VTF=1.7 XTF=3 EG=1.11 KF=0 AF=1 VCEO=30 ICRATING=500m MFG=NSC)") - NET_MODEL("2N3645 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)") - // 3644 = 3645 Difference between 3644 and 3645 is voltage rating. 3644: VCBO=45, 3645: VCBO=60 - NET_MODEL("2N3644 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)") - // 2N5190 = BC817-25 - NET_MODEL("2N5190 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)") - - NET_MODEL("2N4401 NPN(IS=26.03f XTI=3 EG=1.11 VAF=90.7 BF=4.292K NE=1.244 ISE=26.03f IKF=0.2061 XTB=1.5 BR=1.01 NC=2 ISC=0 IKR=0 RC=0.5 CJC=11.01p MJC=0.3763 VJC=0.75 FC=0.5 CJE=24.07p MJE=0.3641 VJE=0.75 TR=233.7n TF=466.5p ITF=0 VTF=0 XTF=0 RB=10 VCEO=40)") - NET_MODEL("2SC945 NPN(IS=3.577E-14 BF=2.382E+02 NF=1.01 VAF=1.206E+02 IKF=3.332E-01 ISE=3.038E-16 NE=1.205 BR=1.289E+01 NR=1.015 VAR=1.533E+01 IKR=2.037E-01 ISC=3.972E-14 NC=1.115 RB=3.680E+01 IRB=1.004E-04 RBM=1 RE=8.338E-01 RC=1.557E+00 CJE=1.877E-11 VJE=7.211E-01 MJE=3.486E-01 TF=4.149E-10 XTF=1.000E+02 VTF=9.956 ITF=5.118E-01 PTF=0 CJC=6.876p VJC=3.645E-01 MJC=3.074E-01 TR=5.145E-08 XTB=1.5 EG=1.11 XTI=3 FC=0.5 Vceo=50 Icrating=100m MFG=NEC)") - - NET_MODEL("BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45 ICRATING=100M MFG=ZETEX)") - NET_MODEL("BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)") - NET_MODEL("BC548C NPN(IS=1.95E-14 ISE=1.31E-15 ISC=1.0E-13 XTI=3 BF=466 BR=2.42 IKF=0.18 IKR=1 XTB=1.5 VAF=91.7 VAR=24.7 VJE=0.632 VJC=0.339 RE=1 RC=1.73 RB=26.5 RBM=10 IRB=10 CJE=1.33E-11 CJC=5.17E-12 XCJC=1 FC=0.9 NF=0.993 NR=1.2 NE=1.32 NC=2.00 MJE=0.326 MJC=0.319 TF=6.52E-10 TR=0 PTF=0 ITF=1.03 VTF=1.65 XTF=100 EG=1.11 KF=1E-9 AF=1 VCEO=40 ICrating=800M MFG=Siemens)") - NET_MODEL("BC817-25 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)") - - NET_MODEL("9013 NPN(IS=3.40675E-14 BF=166 VAF=67 IKF=1.164 ISE=12.37e-15 NE=2 BR=15.17 VAR=40.84 IKR=0.261352 ISC=1.905E-15 NC=1.066 RB=63.2 IRB=5.62E-6 RBM=22.1 RE=0.02 RC=0.7426 CJE=3.53E-11 VJE=0.808 MJE=0.372 CJC=1.74E-11 VJC=0.614 MJC=0.388 XCJC=0.349 XTB=1.4025 EG=1.0999 XTI=3 VC=0.5 VCEO=20)") -NETLIST_END() - -/* ---------------------------------------------------------------------------- - * Family models - * ---------------------------------------------------------------------------*/ - -static NETLIST_START(family_models) - - // FAMILIES always need a type. UNKNOWN below will break - NET_MODEL("FAMILY _(TYPE=UNKNOWN IVL=0.16 IVH=0.4 OVL=0.1 OVH=1.0 ORL=1.0 ORH=130.0)") - NET_MODEL("OPAMP _()") - NET_MODEL("SCHMITT_TRIGGER _()") - - NET_MODEL("74XX FAMILY(TYPE=TTL IVL=0.16 IVH=0.4 OVL=0.1 OVH=1.0 ORL=1.0 ORH=130)") - - // CMOS - // low input 1.5 , high input trigger 3.5 at 5V supply - // output offsets, low for CMOS, thus 0.05 - // output currents: see https://www.classe.cornell.edu/~ib38/teaching/p360/lectures/wk09/l26/EE2301Exp3F10.pdf - // typical CMOS may sink 0.4mA while output stays <= 0.4V - NET_MODEL("CD4XXX FAMILY(TYPE=CMOS IVL=0.3 IVH=0.7 OVL=0.05 OVH=0.05 ORL=500 ORH=500)") - - NET_MODEL("74XXOC FAMILY(TYPE=TTL IVL=0.16 IVH=0.4 OVL=0.1 OVH=0.05 ORL=10.0 ORH=1.0e8)") -NETLIST_END() - -/* ---------------------------------------------------------------------------- - * Always included - * ---------------------------------------------------------------------------*/ - -NETLIST_START(base) - NET_REGISTER_DEV(GNDA, GND) - NET_REGISTER_DEV(PARAMETER, NETLIST) - - LOCAL_SOURCE(diode_models) - LOCAL_SOURCE(bjt_models) - LOCAL_SOURCE(mosfet_models) - LOCAL_SOURCE(family_models) - - LOCAL_SOURCE(TTL74XX_lib) - LOCAL_SOURCE(CD4XXX_lib) - LOCAL_SOURCE(OPAMP_lib) - LOCAL_SOURCE(otheric_lib) - LOCAL_SOURCE(ROMS_lib) - - INCLUDE(diode_models) - INCLUDE(bjt_models) - INCLUDE(mosfet_models) - INCLUDE(family_models) - INCLUDE(TTL74XX_lib) - INCLUDE(CD4XXX_lib) - INCLUDE(OPAMP_lib) - INCLUDE(otheric_lib) - INCLUDE(ROMS_lib) - -NETLIST_END() - diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud -#ifndef NLM_BASE_H_ -#define NLM_BASE_H_ - -/// \file nlm_base.h -/// - -/* - * Provide base environment for netlist - * - */ - -#ifndef __PLIB_PREPROCESSOR__ - -#include "netlist/nl_setup.h" - -/* ---------------------------------------------------------------------------- - * Netlist Macros - * ---------------------------------------------------------------------------*/ - -/* ---------------------------------------------------------------------------- - * DIP only macros - * ---------------------------------------------------------------------------*/ - -/* ---------------------------------------------------------------------------- - * External declarations - * ---------------------------------------------------------------------------*/ - -NETLIST_EXTERNAL(base) - -#endif - -#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base_lib.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base_lib.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base_lib.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base_lib.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,138 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +#include "netlist/devices/net_lib.h" + +/* ---------------------------------------------------------------------------- + * External declarations + * ---------------------------------------------------------------------------*/ + +NETLIST_EXTERNAL(cd4xxx_lib) +NETLIST_EXTERNAL(opamp_lib) +NETLIST_EXTERNAL(otheric_lib) +NETLIST_EXTERNAL(ttl74xx_lib) +NETLIST_EXTERNAL(roms_lib) + +/* ---------------------------------------------------------------------------- + * Diode Models + * ---------------------------------------------------------------------------*/ + +static NETLIST_START(diode_models) + NET_MODEL("D _(IS=1e-15 N=1 NBV=3 IBV=0.001 BV=1E9)") + + NET_MODEL("1N914 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") + // FIXME: 1N916 currently only a copy of 1N914! + NET_MODEL("1N916 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") + NET_MODEL("1N4001 D(Is=14.11n N=1.984 Rs=33.89m Ikf=94.81 Xti=3 Eg=1.11 Cjo=25.89p M=.44 Vj=.3245 Fc=.5 Bv=75 Ibv=10u Tt=5.7u Iave=1 Vpk=50 mfg=GI type=silicon)") + NET_MODEL("1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") + NET_MODEL("1N4154 D(Is=0.1n Rs=4 N=1.67 Cjo=2p M=.333 tt=3n Iave=150m Vpk=35 Bv=60 Ibv=0.1p mfg=Vishay type=silicon)") + NET_MODEL("1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75)") + + NET_MODEL("1N34A D( Bv=75 Cjo=0.5e-12 Eg=0.67 Ibv=18e-3 Is=2e-7 Rs=7 N=1.3 Vj=0.1 M=0.27 type=germanium)") + + NET_MODEL("LedRed D(IS=93.2p RS=42M N=3.73 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)") + NET_MODEL("LedGreen D(IS=93.2p RS=42M N=4.61 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)") + NET_MODEL("LedBlue D(IS=93.2p RS=42M N=7.47 BV=5 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=5 type=LED)") + NET_MODEL("LedWhite D(Is=0.27n Rs=5.65 N=6.79 Cjo=42p Iave=30m Vpk=5 type=LED)") + +NETLIST_END() + +/* ---------------------------------------------------------------------------- + * Mosfet Models + * ---------------------------------------------------------------------------*/ + +static NETLIST_START(mosfet_models) + //NET_MODEL("NMOS _(VTO=0.0 N=1.0 IS=1E-14 KP=2E-5 UO=600 PHI=0.6 LD=0.0 L=1.0 TOX=1E-7 W=1.0 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0)") + //NET_MODEL("PMOS _(VTO=0.0 N=1.0 IS=1E-14 KP=2E-5 UO=600 PHI=0.6 LD=0.0 L=1.0 TOX=1E-7 W=1.0 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0)") + + // NMOS_DEFAULT and PMOS_DEFAULT are created in nl_setup.cpp + NET_MODEL("NMOS NMOS_DEFAULT(VTO=0.0 N=1.0 IS=1E-14 KP=0.0 UO=600 PHI=0.0 LD=0.0 L=100e-6 TOX=1E-7 W=100e-6 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0 CGSO=0 CGDO=0 CGBO=0)") + NET_MODEL("PMOS PMOS_DEFAULT(VTO=0.0 N=1.0 IS=1E-14 KP=0.0 UO=600 PHI=0.0 LD=0.0 L=100e-6 TOX=1E-7 W=100e-6 NSUB=0.0 GAMMA=0.0 RD=0.0 RS=0.0 LAMBDA=0.0 CGSO=0 CGDO=0 CGBO=0)") +NETLIST_END() + +/* ---------------------------------------------------------------------------- + * BJT Models + * ---------------------------------------------------------------------------*/ + +static NETLIST_START(bjt_models) + NET_MODEL("NPN _(IS=1e-15 BF=100 NF=1 BR=1 NR=1 CJE=0 CJC=0)") + NET_MODEL("PNP _(IS=1e-15 BF=100 NF=1 BR=1 NR=1 CJE=0 CJC=0)") + + NET_MODEL("2SA1015 PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=110 Xtb=1.5 Br=10.45 Rc=15 Cjc=66.2p Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n VCEO=45V ICrating=150M MFG=Toshiba)") + NET_MODEL("2SC1815 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)") + + NET_MODEL("2N3565 NPN(IS=5.911E-15 ISE=5.911E-15 ISC=0 XTI=3 BF=697.1 BR=1.297 IKF=0.01393 IKR=0 XTB=1.5 VAF=62.37 VAR=21.5 VJE=0.65 VJC=0.65 RE=0.15 RC=1.61 RB=10 CJE=4.973E-12 CJC=4.017E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.342 NC=2 MJE=0.4146 MJC=0.3174 TF=820.4E-12 TR=4.687E-9 ITF=0.35 VTF=4 XTF=7 EG=1.11 KF=1E-9 AF=1 VCEO=25 ICRATING=500m MFG=NSC)") + NET_MODEL("2N3643 NPN(IS=14.34E-15 ISE=14.34E-15 ISC=0 XTI=3 BF=255.9 BR=6.092 IKF=0.2847 IKR=0 XTB=1.5 VAF=74.03 VAR=28 VJE=0.65 VJC=0.65 RE=0.1 RC=1 RB=10 CJE=22.01E-12 CJC=7.306E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.307 NC=2 MJE=0.377 MJC=0.3416 TF=411.1E-12 TR=46.91E-9 ITF=0.6 VTF=1.7 XTF=3 EG=1.11 KF=0 AF=1 VCEO=30 ICRATING=500m MFG=NSC)") + NET_MODEL("2N3645 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)") + // 3644 = 3645 Difference between 3644 and 3645 is voltage rating. 3644: VCBO=45, 3645: VCBO=60 + NET_MODEL("2N3644 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)") + // 2N5190 = BC817-25 + NET_MODEL("2N5190 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)") + + NET_MODEL("2N4401 NPN(IS=26.03f XTI=3 EG=1.11 VAF=90.7 BF=4.292K NE=1.244 ISE=26.03f IKF=0.2061 XTB=1.5 BR=1.01 NC=2 ISC=0 IKR=0 RC=0.5 CJC=11.01p MJC=0.3763 VJC=0.75 FC=0.5 CJE=24.07p MJE=0.3641 VJE=0.75 TR=233.7n TF=466.5p ITF=0 VTF=0 XTF=0 RB=10 VCEO=40)") + NET_MODEL("2N4124 NPN(IS=6.734f XTI=3 EG=1.11 VAF=74.03 BF=495 NE=1.28 ISE=6.734f IKF=69.35m XTB=1.5 BR=0.7214 NC=2 ISC=0 IKR=0 RC=1 CJC=3.638p MJC=0.3085 VJC=0.75 FC=0.5 CJE=4.493p MJE=0.2593 VJE=0.75 TR=238.3n TF=301.3p ITF=.4 VTF=4 XTF=2 RB=10 VCEO=25)") + NET_MODEL("2N4126 PNP(IS=1.41f XTI=3 EG=1.11 VAF=18.7 BF=203.7 NE=1.5 ISE=0 IKF=80m XTB=1.5 BR=4.924 NC=2 ISC=0 IKR=0 RC=2.5 CJC=9.728p MJC=0.5776 VJC=0.75 FC=0.5 CJE=8.063p MJE=0.3677 VJE=0.75 TR=33.23n TF=179.3p ITF=.4 VTF=4 XTF=6 RB=10 VCEO=25)") + NET_MODEL("2SC945 NPN(IS=3.577E-14 BF=2.382E+02 NF=1.01 VAF=1.206E+02 IKF=3.332E-01 ISE=3.038E-16 NE=1.205 BR=1.289E+01 NR=1.015 VAR=1.533E+01 IKR=2.037E-01 ISC=3.972E-14 NC=1.115 RB=3.680E+01 IRB=1.004E-04 RBM=1 RE=8.338E-01 RC=1.557E+00 CJE=1.877E-11 VJE=7.211E-01 MJE=3.486E-01 TF=4.149E-10 XTF=1.000E+02 VTF=9.956 ITF=5.118E-01 PTF=0 CJC=6.876p VJC=3.645E-01 MJC=3.074E-01 TR=5.145E-08 XTB=1.5 EG=1.11 XTI=3 FC=0.5 Vceo=50 Icrating=100m MFG=NEC)") + + NET_MODEL("BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45 ICRATING=100M MFG=ZETEX)") + NET_MODEL("BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)") + NET_MODEL("BC548C NPN(IS=1.95E-14 ISE=1.31E-15 ISC=1.0E-13 XTI=3 BF=466 BR=2.42 IKF=0.18 IKR=1 XTB=1.5 VAF=91.7 VAR=24.7 VJE=0.632 VJC=0.339 RE=1 RC=1.73 RB=26.5 RBM=10 IRB=10 CJE=1.33E-11 CJC=5.17E-12 XCJC=1 FC=0.9 NF=0.993 NR=1.2 NE=1.32 NC=2.00 MJE=0.326 MJC=0.319 TF=6.52E-10 TR=0 PTF=0 ITF=1.03 VTF=1.65 XTF=100 EG=1.11 KF=1E-9 AF=1 VCEO=40 ICrating=800M MFG=Siemens)") + NET_MODEL("BC817-25 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)") + + NET_MODEL("9013 NPN(IS=3.40675E-14 BF=166 VAF=67 IKF=1.164 ISE=12.37e-15 NE=2 BR=15.17 VAR=40.84 IKR=0.261352 ISC=1.905E-15 NC=1.066 RB=63.2 IRB=5.62E-6 RBM=22.1 RE=0.02 RC=0.7426 CJE=3.53E-11 VJE=0.808 MJE=0.372 CJC=1.74E-11 VJC=0.614 MJC=0.388 XCJC=0.349 XTB=1.4025 EG=1.0999 XTI=3 VC=0.5 VCEO=20)") +NETLIST_END() + +/* ---------------------------------------------------------------------------- + * Family models + * ---------------------------------------------------------------------------*/ + +static NETLIST_START(family_models) + + // FAMILIES always need a type. UNKNOWN below will break + NET_MODEL("FAMILY _(TYPE=UNKNOWN IVL=0.16 IVH=0.4 OVL=0.1 OVH=1.0 ORL=1.0 ORH=130.0)") + NET_MODEL("OPAMP _()") + NET_MODEL("SCHMITT_TRIGGER _()") + + NET_MODEL("74XX FAMILY(TYPE=TTL IVL=0.16 IVH=0.4 OVL=0.1 OVH=1.0 ORL=1.0 ORH=130)") + + // CMOS + // low input 1.5 , high input trigger 3.5 at 5V supply + // output offsets, low for CMOS, thus 0.05 + // output currents: see https://www.classe.cornell.edu/~ib38/teaching/p360/lectures/wk09/l26/EE2301Exp3F10.pdf + // typical CMOS may sink 0.4mA while output stays <= 0.4V + NET_MODEL("CD4XXX FAMILY(TYPE=CMOS IVL=0.3 IVH=0.7 OVL=0.05 OVH=0.05 ORL=500 ORH=500)") + + NET_MODEL("74XXOC FAMILY(TYPE=TTL IVL=0.16 IVH=0.4 OVL=0.1 OVH=0.05 ORL=10.0 ORH=1.0e8)") +NETLIST_END() + +/* ---------------------------------------------------------------------------- + * Always included + * ---------------------------------------------------------------------------*/ + +NETLIST_START(base_lib) + NET_REGISTER_DEV(GNDA, GND) + NET_REGISTER_DEV(PARAMETER, NETLIST) + + LOCAL_SOURCE(diode_models) + LOCAL_SOURCE(bjt_models) + LOCAL_SOURCE(mosfet_models) + LOCAL_SOURCE(family_models) + + EXTERNAL_SOURCE(ttl74xx_lib) + EXTERNAL_SOURCE(cd4xxx_lib) + EXTERNAL_SOURCE(opamp_lib) + EXTERNAL_SOURCE(otheric_lib) + EXTERNAL_SOURCE(roms_lib) + + INCLUDE(diode_models) + INCLUDE(bjt_models) + INCLUDE(mosfet_models) + INCLUDE(family_models) + + INCLUDE(ttl74xx_lib) + INCLUDE(cd4xxx_lib) + INCLUDE(opamp_lib) + INCLUDE(otheric_lib) + INCLUDE(roms_lib) + +NETLIST_END() + diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base_lib.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base_lib.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_base_lib.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_base_lib.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,34 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +#ifndef NLM_BASE_H_ +#define NLM_BASE_H_ + +/// \file nlm_base.h +/// + +/* + * Provide base environment for netlist + * + */ + +#ifndef __PLIB_PREPROCESSOR__ + +#include "netlist/nl_setup.h" + +/* ---------------------------------------------------------------------------- + * Netlist Macros + * ---------------------------------------------------------------------------*/ + +/* ---------------------------------------------------------------------------- + * DIP only macros + * ---------------------------------------------------------------------------*/ + +/* ---------------------------------------------------------------------------- + * External declarations + * ---------------------------------------------------------------------------*/ + +NETLIST_EXTERNAL(base_lib) + +#endif + +#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,348 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#include "netlist/devices/net_lib.h" - -/* - * CD4001BC: Quad 2-Input NOR Buffered B Series Gate - * - * +--------------+ - * A1 |1 ++ 14| VDD - * B1 |2 13| A6 - * A2 |3 12| Y6 - * Y2 |4 4001 11| A5 - * A3 |5 10| Y5 - * Y3 |6 9| A4 - * VSS |7 8| Y4 - * +--------------+ - * - */ - -static NETLIST_START(CD4001_DIP) - CD4001_GATE(s1) - CD4001_GATE(s2) - CD4001_GATE(s3) - CD4001_GATE(s4) - - NET_C(s1.VDD, s2.VDD, s3.VDD, s4.VDD) - NET_C(s1.VSS, s2.VSS, s3.VSS, s4.VSS) - DIPPINS( /* +--------------+ */ - s1.A, /* A1 |1 ++ 14| VDD */ s1.VDD, - s1.B, /* B1 |2 13| A6 */ s4.B, - s1.Q, /* A2 |3 12| Y6 */ s4.A, - s2.Q, /* Y2 |4 4001 11| A5 */ s4.Q, - s2.A, /* A3 |5 10| Y5 */ s3.Q, - s2.B, /* Y3 |6 9| A4 */ s3.B, - s1.VSS, /* VSS |7 8| Y4 */ s3.A - /* +--------------+ */ - ) - -NETLIST_END() - -/* CD4020: 14-Stage Ripple Carry Binary Counters - * - * +--------------+ - * Q12 |1 ++ 16| VDD - * Q13 |2 15| Q11 - * Q14 |3 14| Q10 - * Q6 |4 4020 13| Q8 - * Q5 |5 12| Q9 - * Q7 |6 11| RESET - * Q4 |7 10| IP (Input pulses) - * VSS |8 9| Q1 - * +--------------+ - * - * Naming conventions follow Texas Instruments datasheet - * - * FIXME: Timing depends on VDD-VSS - * This needs a cmos d-a/a-d proxy implementation. - */ - -static NETLIST_START(CD4020_DIP) - - CD4020(s1) - DIPPINS( /* +--------------+ */ - s1.Q12, /* Q12 |1 ++ 16| VDD */ s1.VDD, - s1.Q13, /* Q13 |2 15| Q11 */ s1.Q11, - s1.Q14, /* Q14 |3 14| Q10 */ s1.Q10, - s1.Q6, /* Q6 |4 4020 13| Q8 */ s1.Q8, - s1.Q5, /* Q5 |5 12| Q9 */ s1.Q9, - s1.Q7, /* Q7 |6 11| RESET */ s1.RESET, - s1.Q4, /* Q4 |7 10| IP */ s1.IP, - s1.VSS, /* VSS |8 9| Q1 */ s1.Q1 - /* +--------------+ */ - ) - /* - * IP = (Input pulses) - */ - -NETLIST_END() - -/* CD4066: Quad Bilateral Switch - * - * +--------------+ - * INOUTA |1 ++ 14| VDD - * OUTINA |2 13| CONTROLA - * OUTINB |3 12| CONTROLD - * INOUTB |4 4066 11| INOUTD - * CONTROLB |5 10| OUTIND - * CONTROLC |6 9| OUTINC - * VSS |7 8| INOUTC - * +--------------+ - * - * FIXME: These devices are slow (~125 ns). THis is currently not reflected - * - * Naming conventions follow National semiconductor datasheet - * - */ - -static NETLIST_START(CD4066_DIP) - CD4066_GATE(A) - CD4066_GATE(B) - CD4066_GATE(C) - CD4066_GATE(D) - - NET_C(A.VDD, B.VDD, C.VDD, D.VDD) - NET_C(A.VSS, B.VSS, C.VSS, D.VSS) - - PARAM(A.BASER, 270.0) - PARAM(B.BASER, 270.0) - PARAM(C.BASER, 270.0) - PARAM(D.BASER, 270.0) - - DIPPINS( /* +--------------+ */ - A.R.1, /* INOUTA |1 ++ 14| VDD */ A.VDD, - A.R.2, /* OUTINA |2 13| CONTROLA */ A.CTL, - B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL, - B.R.2, /* INOUTB |4 4066 11| INOUTD */ D.R.1, - B.CTL, /* CONTROLB |5 10| OUTIND */ D.R.2, - C.CTL, /* CONTROLC |6 9| OUTINC */ C.R.1, - A.VSS, /* VSS |7 8| INOUTC */ C.R.2 - /* +--------------+ */ - ) -NETLIST_END() - -static NETLIST_START(CD4016_DIP) - CD4066_GATE(A) - CD4066_GATE(B) - CD4066_GATE(C) - CD4066_GATE(D) - - NET_C(A.VDD, B.VDD, C.VDD, D.VDD) - NET_C(A.VSS, B.VSS, C.VSS, D.VSS) - - PARAM(A.BASER, 1000.0) - PARAM(B.BASER, 1000.0) - PARAM(C.BASER, 1000.0) - PARAM(D.BASER, 1000.0) - - DIPPINS( /* +--------------+ */ - A.R.1, /* INOUTA |1 ++ 14| VDD */ A.VDD, - A.R.2, /* OUTINA |2 13| CONTROLA */ A.CTL, - B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL, - B.R.2, /* INOUTB |4 4016 11| INOUTD */ D.R.1, - B.CTL, /* CONTROLB |5 10| OUTIND */ D.R.2, - C.CTL, /* CONTROLC |6 9| OUTINC */ C.R.1, - A.VSS, /* VSS |7 8| INOUTC */ C.R.2 - /* +--------------+ */ - ) -NETLIST_END() - -/* - * CD4069: Hex Inverter - * _ - * Y = A - * +---++---+ - * | A || Y | - * +===++===+ - * | 0 || 1 | - * | 1 || 0 | - * +---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(CD4069_DIP) - CD4069_GATE(A) - CD4069_GATE(B) - CD4069_GATE(C) - CD4069_GATE(D) - CD4069_GATE(E) - CD4069_GATE(F) - - NET_C(A.VDD, B.VDD, C.VDD, D.VDD, E.VDD, E.VDD) - NET_C(A.VSS, B.VSS, C.VSS, D.VSS, E.VSS, F.VSS) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VDD */ A.VDD, - A.Q, /* Y1 |2 13| A6 */ F.A, - B.A, /* A2 |3 12| Y6 */ F.Q, - B.Q, /* Y2 |4 4069 11| A5 */ E.A, - C.A, /* A3 |5 10| Y5 */ E.Q, - C.Q, /* Y3 |6 9| A4 */ D.A, - A.VSS,/* VSS |7 8| Y4 */ D.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * CD4070: Quad 2-Input Exclusive-OR Gates - * - * Y = A+B - * +---+---++---+ - * | A | B || Y | - * +===+===++===+ - * | 0 | 0 || 0 | - * | 0 | 1 || 1 | - * | 1 | 0 || 1 | - * | 1 | 1 || 0 | - * +---+---++---+ - * - */ - -static NETLIST_START(CD4070_DIP) - CD4070_GATE(A) - CD4070_GATE(B) - CD4070_GATE(C) - CD4070_GATE(D) - - NET_C(A.VDD, B.VDD, C.VDD, D.VDD) - NET_C(A.VSS, B.VSS, C.VSS, D.VSS) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VDD */ A.VDD, - A.B, /* B1 |2 13| B4 */ D.B, - A.Q, /* Y1 |3 12| A4 */ D.A, - B.Q, /* Y2 |4 4070 11| Y4 */ D.Q, - B.A, /* A2 |5 10| Y3 */ C.Q, - B.B, /* B2 |6 9| B3 */ C.B, - A.VSS,/* VSS |7 8| A3 */ C.A - /* +--------------+ */ - ) -NETLIST_END() - - -static NETLIST_START(CD4316_DIP) - CD4316_GATE(A) - CD4316_GATE(B) - CD4316_GATE(C) - CD4316_GATE(D) - - NET_C(A.E, B.E, C.E, D.E) - NET_C(A.VDD, B.VDD, C.VDD, D.VDD) - NET_C(A.VSS, B.VSS, C.VSS, D.VSS) - - PARAM(A.BASER, 45.0) - PARAM(B.BASER, 45.0) - PARAM(C.BASER, 45.0) - PARAM(D.BASER, 45.0) - - DIPPINS( /* +--------------+ */ - A.R.2, /* 1Z |1 ++ 16| VCC */ A.VDD, - A.R.1, /* 1Y |2 15| 1S */ A.S, - B.R.1, /* 2Y |3 14| 4S */ D.S, - B.R.2, /* 2Z |4 4316 13| 4Z */ D.R.2, - B.S, /* 2S |5 12| 4Y */ D.R.1, - C.S, /* 3S |6 11| 3Y */ C.R.1, - A.E, /* /E |7 10| 3Z */ C.R.2, - A.VSS, /* GND |8 9| VEE */ VEE - /* +--------------+ */ - ) - -NETLIST_END() - -//- Identifier: CD4538_DIP -//- Title: CD4538BC Dual Precision Monostable -//- Description: The CD4538BC is a dual, precision monostable multivibrator with -//- independent trigger and reset controls. The device -//- is retriggerable and resettable, and the control inputs are -//- internally latched. Two trigger inputs are provided to allow -//- either rising or falling edge triggering. The reset inputs are -//- active LOW and prevent triggering while active. Precise -//- control of output pulse-width has been achieved using linear -//- CMOS techniques. The pulse duration and accuracy -//- are determined by external components RX and CX. The -//- device does not allow the timing capacitor to discharge -//- through the timing pin on power-down condition. For this -//- reason, no external protection resistor is required in series -//- with the timing pin. Input protection from static discharge is -//- provided on all pins. -//- -//- Pinalias: C1,RC1,CLRQ1,B1,A1,Q1,QQ1,GND,QQ2,Q2,A2,B2,CLRQ2,RC2,C2,VCC -//- Package: DIP -//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet -//- Limitations: -//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet -//- -//- Example: 74123.cpp,74123_example -//- -//- FunctionTable: -//- https://pdf1.alldatasheet.com/datasheet-pdf/view/50871/FAIRCHILD/CD4538.html -//- -static NETLIST_START(CD4538_DIP) - - CD4538(A) - CD4538(B) - - ALIAS(1, A.C) // C1 - ALIAS(2, A.RC) // RC1 - ALIAS(3, A.CLRQ) - ALIAS(4, A.A) - ALIAS(5, A.B) - ALIAS(6, A.Q) - ALIAS(7, A.QQ) - ALIAS(8, A.VSS) - - ALIAS(9, B.QQ) - ALIAS(10, B.Q) - ALIAS(11, B.B) - ALIAS(12, B.A) - ALIAS(13, B.CLRQ) - ALIAS(14, B.RC) // RC2 - ALIAS(15, B.C) // C2 - ALIAS(16, A.VDD) - - NET_C(A.VDD, B.VDD) - NET_C(A.VSS, B.VSS) -NETLIST_END() - - -NETLIST_START(CD4XXX_lib) - - TRUTHTABLE_START(CD4001_GATE, 2, 1, "") - TT_HEAD("A , B | Q ") - TT_LINE("0,0|1|110") - TT_LINE("X,1|0|120") - TT_LINE("1,X|0|120") - TT_FAMILY("CD4XXX") - TRUTHTABLE_END() - - TRUTHTABLE_START(CD4069_GATE, 1, 1, "") - TT_HEAD("A|Q ") - TT_LINE("0|1|55") - TT_LINE("1|0|55") - TT_FAMILY("CD4XXX") - TRUTHTABLE_END() - - TRUTHTABLE_START(CD4070_GATE, 2, 1, "") - TT_HEAD("A,B|Q ") - TT_LINE("0,0|0|15") - TT_LINE("0,1|1|22") - TT_LINE("1,0|1|22") - TT_LINE("1,1|0|15") - TT_FAMILY("CD4XXX") - TRUTHTABLE_END() - - LOCAL_LIB_ENTRY(CD4001_DIP) - LOCAL_LIB_ENTRY(CD4069_DIP) - LOCAL_LIB_ENTRY(CD4070_DIP) - - /* DIP ONLY */ - LOCAL_LIB_ENTRY(CD4020_DIP) - LOCAL_LIB_ENTRY(CD4016_DIP) - LOCAL_LIB_ENTRY(CD4066_DIP) - LOCAL_LIB_ENTRY(CD4316_DIP) - LOCAL_LIB_ENTRY(CD4538_DIP) - -NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud -#ifndef NLD_CD4XXX_H_ -#define NLD_CD4XXX_H_ - -/// \file nlm_cd4xxx.h -/// - -#include "netlist/nl_setup.h" - -/* - * Devices: - * - * CD4001_NOR : single gate - * CD4001_DIP : dip package - * CD4020_DIP : dip package (device model in core) - * CD4016_DIP : dip package (device model in core) - * CD4066_DIP : dip package (device model in core) - * - */ - -#ifndef __PLIB_PREPROCESSOR__ - -/* ---------------------------------------------------------------------------- - * Netlist Macros - * ---------------------------------------------------------------------------*/ - -#if !NL_AUTO_DEVICES - -#define CD4001_GATE(name) \ - NET_REGISTER_DEV(CD4001_GATE, name) - -#define CD4001_DIP(name) \ - NET_REGISTER_DEV(CD4001_DIP, name) - -#define CD4069_GATE(name) \ - NET_REGISTER_DEV(CD4069_GATE, name) - -#define CD4069_DIP(name) \ - NET_REGISTER_DEV(CD4069_DIP, name) - -#define CD4070_GATE(name) \ - NET_REGISTER_DEV(CD4070_GATE, name) - -#define CD4070_DIP(name) \ - NET_REGISTER_DEV(CD4070_DIP, name) - -/* ---------------------------------------------------------------------------- - * DIP only macros - * ---------------------------------------------------------------------------*/ - -#define CD4020_DIP(name) \ - NET_REGISTER_DEV(CD4020_DIP, name) - -#define CD4066_DIP(name) \ - NET_REGISTER_DEV(CD4066_DIP, name) - -#define CD4016_DIP(name) \ - NET_REGISTER_DEV(CD4016_DIP, name) - -#define CD4316_DIP(name) \ - NET_REGISTER_DEV(CD4016_DIP, name) - -#define CD4538_DIP(name) \ - NET_REGISTER_DEV(CD4538_DIP, name) - -#endif -/* ---------------------------------------------------------------------------- - * External declarations - * ---------------------------------------------------------------------------*/ - -NETLIST_EXTERNAL(CD4XXX_lib) - -#endif - -#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,607 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#include "netlist/devices/net_lib.h" + +//- Identifier: CD4001_DIP +//- Title: CD4001BM/CD4001BC Quad 2-Input NOR Buffered B Series Gate +//- Description: These quad gates are monolithic complementary MOS (CMOS) integrated circuits constructed with N- and P-channel enhancement mode transistors. +//- They have equal source and sink current capabilities and conform to standard B series output drive. +//- The devices also have buffered outputs which improve transfer characteristics by providing very high gain. +//- All inputs are protected against static discharge with diodes to VDD and VSS. +//- Pinalias: A1,B1,Y1,Y2,A2,B2,VSS,A3,B3,Y3,Y4,A4,B4,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/166/108518_DS.pdf +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 1 | +//- | X | 1 || 0 | +//- | 1 | X || 0 | +//- +---+---++---+ +//- +static NETLIST_START(CD4001_DIP) + CD4001_GATE(A) + CD4001_GATE(B) + CD4001_GATE(C) + CD4001_GATE(D) + + NET_C(A.VDD, B.VDD, C.VDD, D.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VDD */ A.VDD, + A.B, /* B1 |2 13| B4 */ D.B, + A.Q, /* Y1 |3 12| A4 */ D.A, + B.Q, /* Y2 |4 4001 11| Y4 */ D.Q, + B.A, /* A2 |5 10| Y3 */ C.Q, + B.B, /* B2 |6 9| B3 */ C.B, + A.VSS, /* VSS |7 8| A3 */ C.A + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4006_DIP +//- Title: CD4006BM/CD4006BC 18-Stage Static Shift Register +//- Description: The CD4006BM/CD4006BC 18-stage static shift register is comprised of four separate shift register sections, two sections of four stages and two sections of five stages. +//- Each section has an independent data input. +//- Outputs are available at the fourth stage and the fifth stage of each section. +//- A common clock signal is used for all stages. +//- Data is shifted to the next stage on the negative-going transition of the clock. +//- Through appropriate connections of inputs and outputs, multiple register sections of 4, 5, 8, and 9 stages, or single register sections of 10, 12, 13, 14, 16, 17, and 18 stages can be implemented using one package. +//- Pinalias: D1,NC,CLOCK,D2,D3,D4,VSS,D4P4,D4P5,D3P4,D2P4,D2P5,D1P4,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS005942.PDF +//- +static NETLIST_START(CD4006_DIP) + CD4006(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.D1, /* D1 |1 ++ 14| VDD */ A.VDD, + NC.I, /* NC |2 13| D1+4 */ A.D1P4, + A.CLOCK, /* CLOCK |3 12| D2+5 */ A.D2P5, + A.D2, /* D2 |4 4006 11| D2+4 */ A.D2P4, + A.D3, /* D3 |5 10| D3+4 */ A.D3P4, + A.D4, /* D4 |6 9| D4+5 */ A.D4P5, + A.VSS, /* VSS |7 8| D4+4 */ A.D4P4 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4011_DIP +//- Title: CD4011BM/CD4011BC Quad 2-Input NAND Buffered B Series Gate +//- Description: These quad gates are monolithic complementary MOS (CMOS) integrated circuits constructed with N- and P-channel enhancement mode transistors. +//- They have equal source and sink current capabilities and conform to standard B series output drive. +//- The devices also have buffered outputs which improve transfer characteristics by providing very high gain. +//- All inputs are protected against static discharge with diodes to VDD and VSS. +//- Pinalias: A1,B1,Y1,Y2,A2,B2,VSS,A3,B3,Y3,Y4,A4,B4,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/166/108518_DS.pdf +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | X | 0 || 1 | +//- | 0 | X || 1 | +//- | 1 | 1 || 0 | +//- +---+---++---+ +//- +static NETLIST_START(CD4011_DIP) + CD4011_GATE(A) + CD4011_GATE(B) + CD4011_GATE(C) + CD4011_GATE(D) + + NET_C(A.VDD, B.VDD, C.VDD, D.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS) + + DIPPINS( /* +--------------+ */ + A.A, /* A |1 ++ 14| VDD */ A.VDD, + A.B, /* B |2 13| H */ D.B, + A.Q, /* J |3 12| G */ D.A, + B.Q, /* K |4 4011 11| M */ D.Q, + B.A, /* C |5 10| L */ C.Q, + B.B, /* D |6 9| F */ C.B, + A.VSS, /* VSS |7 8| E */ C.A + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4013_DIP +//- Title: CD4013BM/CD4013BC Dual D Flip-Flop +//- Description: The CD4013B dual D flip-flop is a monolithic complementary MOS (CMOS) integrated circuit constructed with N- and P-channel enhancement mode transistors. +//- Each flip-flop has independent data, set, reset, and clock inputs and Q and QQ outputs. +//- These devices can be used for shift register applications, and by connecting Q output to the data input, for counter and toggle applications. +//- The logic levelpresent at the D input is transferred to the Q output during the positive-going transition of the clock pulse. +//- Setting or resetting is independent of the clock and is accomplished by a high level on the set or reset line respectively. +//- Pinalias: Q1,QQ1,CLOCK1,RESET1,DATA1,SET1,VSS,SET2,DATA2,RESET2,CLOCK2,QQ2,Q2,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/150/108670_DS.pdf +//- +//- +-----+---+---+---++---+----+ +//- | CLK | D | R | S || Q | QQ | +//- +=====+===+===+===++===+====+ +//- | 0-1 | 0 | 0 | 0 || 0 | 1 | +//- | 0-1 | 1 | 0 | 0 || 1 | 0 | +//- | 1-0 | X | 0 | 0 || Q | QQ | +//- | X | X | 1 | 0 || 0 | 1 | +//- | X | X | 0 | 1 || 1 | 0 | +//- | X | X | 1 | 1 || 1 | 1 | +//- +-----+---+---+---++---+----+ +//- +static NETLIST_START(CD4013_DIP) + CD4013(A) + CD4013(B) + + NET_C(A.VDD, B.VDD) + NET_C(A.VSS, B.VSS) + + DIPPINS( /* +--------------+ */ + A.Q, /* Q1 |1 ++ 14| VDD */ A.VDD, + A.QQ, /* Q1Q |2 13| Q2 */ B.Q, + A.CLOCK, /* CLOCK1 |3 12| Q2Q */ B.QQ, + A.RESET, /* RESET1 |4 4013 11| CLOCK2 */ B.CLOCK, + A.DATA, /* DATA1 |5 10| RESET2 */ B.RESET, + A.SET, /* SET1 |6 9| DATA2 */ B.DATA, + A.VSS, /* VSS |7 8| SET2 */ B.SET + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4016_DIP +//- Title: CD4016BM/CD4016BC Quad Bilateral Switch +//- Description: The CD4016BM/CD4016BC is a quad bilateral switch intended for the transmission or multiplexing of analog or digital signals. +//- It is pin-for-pin compatible with CD4066BM/CD4066BC. +//- Pinalias: INOUTA,OUTINA,OUTINB,INOUTB,CONTROLB,CONTROLC,VSS,INOUTC,OUTINC,OUTIND,INOUTD,CONTROLD,CONTROLA,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/185/108711_DS.pdf +//- +static NETLIST_START(CD4016_DIP) + CD4066_GATE(A) + CD4066_GATE(B) + CD4066_GATE(C) + CD4066_GATE(D) + + NET_C(A.VDD, B.VDD, C.VDD, D.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS) + + PARAM(A.BASER, 1000.0) + PARAM(B.BASER, 1000.0) + PARAM(C.BASER, 1000.0) + PARAM(D.BASER, 1000.0) + + DIPPINS( /* +--------------+ */ + A.R.1, /* INOUTA |1 ++ 14| VDD */ A.VDD, + A.R.2, /* OUTINA |2 13| CONTROLA */ A.CTL, + B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL, + B.R.2, /* INOUTB |4 4016 11| INOUTD */ D.R.1, + B.CTL, /* CONTROLB |5 10| OUTIND */ D.R.2, + C.CTL, /* CONTROLC |6 9| OUTINC */ C.R.1, + A.VSS, /* VSS |7 8| INOUTC */ C.R.2 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4017_DIP +//- Title: CD4017BM/CD4017BC Decade Counter/Divider with 10 Decoded Outputs +//- Description: The CD4017BM/CD4017BC is a 5-stage divide-by-10 Johnson counter with 10 decoded outputs and a carry out bit. +//- These counters are cleared to their zero count by a logical 1 on their reset line. +//- These counters are advanced on the positive edge of the clock signal when the clock enable signal is in the logical 0 state. +//- The configuration of the CD4017BM/CD4017BC permits medium speed operation and assures a hazard free counting sequence. +//- The 10 decoded outputs are normally in the logical 0 state and go to the logical 1 state only at their respective time slot. +//- Each decoded output remains high for 1 full clock cycle. +//- The carry-out signal completes a full cycle for every 10 clock input cycles and is used as a ripple carry signal to any succeeding stages. +//- Pinalias: Q5,Q1,Q0,Q2,Q6,Q7,Q3,VSS,Q8,Q4,Q9,CARRY_OUT,CLOCK_ENABLE,CLOCK,RESET,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/166/108736_DS.pdf +//- +static NETLIST_START(CD4017_DIP) + CD4017(A) + + DIPPINS( /* +--------------+ */ + A.Q5, /* Q5 |1 ++ 16| VDD */ A.VDD, + A.Q1, /* Q1 |2 15| RESET */ A.RESET, + A.Q0, /* Q0 |3 14| CLOCK */ A.CLK, + A.Q2, /* Q2 |4 4017 13| CLOCK ENABLE */ A.CLKEN, + A.Q6, /* Q6 |5 12| CARRY OUT */ A.CO, + A.Q7, /* Q7 |6 11| Q9 */ A.Q9, + A.Q3, /* Q3 |7 10| Q4 */ A.Q4, + A.VSS, /* VSS |8 9| Q8 */ A.Q8 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4020_DIP +//- Title: CD4020BC 14-Stage Ripple Carry Binary Counters +//- Description: The CD4020BC is a 14-stage ripple carry binary counter. +//- The counters are advanced one count on the negative transition of each clock pulse. +//- The counters are reset to the zero state by a logical 1 at the reset input independent of clock. +//- Pinalias: Q12,Q13,Q14,Q6,Q5,Q7,Q4,VSS,Q1,PHI1,RESET,Q9,Q8,Q10,Q11,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/90/109006_DS.pdf +//- +static NETLIST_START(CD4020_DIP) + CD4020(A) + + DIPPINS( /* +--------------+ */ + A.Q12, /* Q12 |1 ++ 16| VDD */ A.VDD, + A.Q13, /* Q13 |2 15| Q11 */ A.Q11, + A.Q14, /* Q14 |3 14| Q10 */ A.Q10, + A.Q6, /* Q6 |4 4020 13| Q8 */ A.Q8, + A.Q5, /* Q5 |5 12| Q9 */ A.Q9, + A.Q7, /* Q7 |6 11| RESET */ A.RESET, + A.Q4, /* Q4 |7 10| PHI1 */ A.IP, + A.VSS, /* VSS |8 9| Q1 */ A.Q1 + /* +--------------+ */) +NETLIST_END() + +//- Identifier: CD4022_DIP +//- Title: CD4022BM/CD4022BC Divide-by-8 Counter/Divider with 8 Decoded Outputs +//- Description: The CD4022BM/CD4022BC is a 4-stage divide-by-8 Johnson counter with 8 decoded outputs and a carry-out bit. +//- These counters are cleared to their zero count by a logical 1 on their reset line. +//- These counters are advanced on the positive edge of the clock signal when the clock enable signal is in the logical 0 state. +//- The configuration of the CD4022BM/CD4022BC permits medium speed operation and assures a hazard free counting sequence. +//- The 8 decoded outputs are normally in the logical 0 state and go to the logical 1 state only at their respective time slot. +//- Each decoded output remains high for 1 full clock cycle. +//- The carry-out signal completes a full cycle for every 8 clock input cycles and is used as a ripple carry signal to any succeeding stages +//- Pinalias: Q1,Q0,Q2,Q5,Q6,NC,Q3,VSS,NC,Q7,Q4,CARRY_OUT,CLOCK_ENABLE,CLOCK,RESET,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/166/108736_DS.pdf +//- +static NETLIST_START(CD4022_DIP) + CD4022(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.Q1, /* Q1 |1 ++ 16| VDD */ A.VDD, + A.Q0, /* Q0 |2 15| RESET */ A.RESET, + A.Q2, /* Q2 |3 14| CLOCK */ A.CLK, + A.Q5, /* Q5 |4 4022 13| CLOCK ENABLE */ A.CLKEN, + A.Q6, /* Q6 |5 12| CARRY OUT */ A.CO, + NC.I, /* NC |6 11| Q4 */ A.Q4, + A.Q3, /* Q3 |7 10| Q7 */ A.Q7, + A.VSS, /* VSS |8 9| NC */ NC.I + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4024_DIP +//- Title: CD4024BM/CD4024BC 7-Stage Ripple Carry Binary Counter +//- Description: The CD4024BM/CD4024BC is a 7-stage ripple-carry binary counter. +//- Buffered outputs are externally available from stages 1 through 7. +//- The counter is reset to its logical 0 stage by a logical 1 on the reset input. +//- The counter is advanced one count on the negative transition of each clock pulse. +//- Pinalias: IP,RESET,Q7,Q6,Q5,Q4,VSS,NC,Q3,NC,Q2,Q1,NC,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/120/108894_DS.pdf +//- +static NETLIST_START(CD4024_DIP) + CD4024(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.IP, /* IP |1 ++ 14| VDD */ A.VDD, + A.RESET, /* RESET |2 13| NC */ NC.I, + A.Q7, /* Q7 |3 12| Q1 */ A.Q1, + A.Q6, /* Q6 |4 4024 11| Q2 */ A.Q2, + A.Q5, /* Q5 |5 10| NC */ NC.I, + A.Q4, /* Q4 |6 9| Q3 */ A.Q3, + A.VSS, /* VSS |7 8| NC */ NC.I + /* +--------------+ */) +NETLIST_END() + +//- Identifier: CD4053_DIP +//- Title: CD4053BM/CD4053BC Triple 2-Channel AnalogMultiplexer/Demultiplexer +//- Description: These analog multiplexers/demultiplexers are digitally controlled analog switches having low ON impedance andvery low OFF leakage currents. +//- Control of analog signalsup to 15V(p-p) can be achieved by digital signal amplitudes of 3–15V. +//- For example, if VDD=5V, VSS=0V and VEE=-5V, analog signals from -5V to +5V can be controlled by digital inputs of 0–5V. +//- The multiplexer circuits dissipate extremely low quiescent power over the full VDD-VSS and VDD-VEE supply voltage ranges, independent of the logic state of the control signals. +//- When a logical 1 is present atthe inhibit input terminal all channels are OFF. +//- CD4053BM/CD4053BC is a triple 2-channel multiplexer having three separate digital control inputs, A, B, and C, and an inhibit input. +//- Each control input selects one of a pair of channels which are connected in a single-pole double-throw configuration. +//- Pinalias: INOUTBY,INOUTBX,INOUTCY,OUTINC,INOUTCX,INH,VEE,VSS,C,B,A,INOUTAX,INOUTAY,OUTINA,OUTINB,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS005662.PDF +//- +static NETLIST_START(CD4053_DIP) + CD4053_GATE(A) + CD4053_GATE(B) + CD4053_GATE(C) + + NET_C(A.VEE, B.VEE, C.VEE) + NET_C(A.VDD, B.VDD, C.VDD) + NET_C(A.VSS, B.VSS, C.VSS) + NET_C(A.INH, B.INH, C.INH) + + PARAM(A.BASER, 270.0) + PARAM(B.BASER, 270.0) + PARAM(C.BASER, 270.0) + + DIPPINS( /* +--------------+ */ + B.Y, /* INOUTBY |1 ++ 16| VDD */ A.VDD, + B.X, /* INOUTBX |2 15| OUTINB */ B.XY, + C.Y, /* INOUTCY |3 14| OUTINA */ A.XY, + C.XY, /* OUTINC |4 4053 13| INOUTAY */ A.Y, + C.X, /* INOUTCX |5 12| INOUTAX */ A.X, + A.INH, /* INH |6 11| A */ A.S, + A.VEE, /* VEE |7 10| B */ B.S, + A.VSS, /* VSS |8 9| C */ C.S + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4066_DIP +//- Title: CD4066BM/CD4066BC Quad Bilateral Switch +//- Description: The CD4066BM/CD4066BC is a quad bilateral switch intended for the transmission or multiplexing of analog or digital signals. +//- It is pin-for-pin compatible with CD4016BM/CD4016BC, but has a much lower ON resistance, and ON resistance is relatively constant over the input-signal range. +//- Pinalias: INOUTA,OUTINA,OUTINB,INOUTB,CONTROLB,CONTROLC,VSS,INOUTC,OUTINC,OUTIND,INOUTD,CONTROLD,CONTROLA,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS005665.PDF +//- +static NETLIST_START(CD4066_DIP) + CD4066_GATE(A) + CD4066_GATE(B) + CD4066_GATE(C) + CD4066_GATE(D) + + NET_C(A.VDD, B.VDD, C.VDD, D.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS) + + PARAM(A.BASER, 270.0) + PARAM(B.BASER, 270.0) + PARAM(C.BASER, 270.0) + PARAM(D.BASER, 270.0) + + DIPPINS( /* +--------------+ */ + A.R.1, /* INOUTA |1 ++ 14| VDD */ A.VDD, + A.R.2, /* OUTINA |2 13| CONTROLA */ A.CTL, + B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL, + B.R.2, /* INOUTB |4 4066 11| INOUTD */ D.R.1, + B.CTL, /* CONTROLB |5 10| OUTIND */ D.R.2, + C.CTL, /* CONTROLC |6 9| OUTINC */ C.R.1, + A.VSS, /* VSS |7 8| INOUTC */ C.R.2 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4069_DIP +//- Title: CD4069UBM/CD4069UBC Inverter Circuits +//- Description: The CD4069UB consists of six inverter circuits and is manufactured using complementary MOS (CMOS) to achieve wide power supply operating range, low power consumption, high noise immunity, and symmetric controlled rise and fall times. +//- This device is intended for all general purpose inverter applications where the special characteristics of the MM74C901, MM74C903, MM74C907, and CD4049A Hex Inverter/Buffers are not required. +//- In those applications requiring larger noise immunity the MM74C14 or MM74C914 Hex Schmitt Trigger is suggested. +//- All inputs are protected from damage due to static discharge by diode clamps to VDD and VSS. +//- Pinalias: A1,Y1,A2,Y2,A3,Y3,VSS,Y4,A4,Y5,A5,Y6,A6,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/150/206783_DS.pdf +//- +static NETLIST_START(CD4069_DIP) + CD4069_GATE(A) + CD4069_GATE(B) + CD4069_GATE(C) + CD4069_GATE(D) + CD4069_GATE(E) + CD4069_GATE(F) + + NET_C(A.VDD, B.VDD, C.VDD, D.VDD, E.VDD, F.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS, E.VSS, F.VSS) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VDD */ A.VDD, + A.Q, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Q, + B.Q, /* Y2 |4 4069 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Q, + C.Q, /* Y3 |6 9| A4 */ D.A, + A.VSS, /* VSS |7 8| Y4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4070_DIP +//- Title: CD4070BM/CD4070BC Quad 2-Input EXCLUSIVE-OR Gate +//- Description: Employing complementary MOS (CMOS) transistors to achieve wide power supply operating range, low power consumption, and high noise margin, the CD4070BM/BC provides basic functions used in the implementation of digital integrated circuit systems. +//- The N- and P-channel enhancement mode transistors provide a symmetrical circuit with output swing essentially equal to the supply voltage. +//- No DC power other than that caused by leakage current is consumed during static condition. +//- All inputs are protected from damage due to static discharge by diode clamps to VDD and VSS. +//- Pinalias: A,B,J,K,C,D,VSS,E,F,L,M,G,H,VDD +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/150/206783_DS.pdf +//- +static NETLIST_START(CD4070_DIP) + CD4070_GATE(A) + CD4070_GATE(B) + CD4070_GATE(C) + CD4070_GATE(D) + + NET_C(A.VDD, B.VDD, C.VDD, D.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS) + + DIPPINS( /* +--------------+ */ + A.A, /* A |1 ++ 14| VDD */ A.VDD, + A.B, /* B |2 13| H */ D.B, + A.Q, /* J |3 12| G */ D.A, + B.Q, /* K |4 4070 11| M */ D.Q, + B.A, /* C |5 10| L */ C.Q, + B.B, /* D |6 9| F */ C.B, + A.VSS, /* VSS |7 8| E */ C.A + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4316_DIP +//- Title: 74HC/HCT4316 Quad bilateral switches +//- Description: The 74HC/HCT4316 are high-speed Si-gate CMOS devices. +//- They are specified in compliance with JEDEC standard no. 7A. +//- The 74HC/HCT4316 have four independent analog switches. +//- Each switch has two input/output terminals (nY, nZ) and an active HIGH select input (nS). +//- When the enable input (E) is HIGH, all four analog switches are turned off. +//- Current through a switch will not cause additional VCC current provided the voltage at the terminals of the switch is maintained within the supply voltage range; VCC >> (VY, VZ) >> VEE. +//- Inputs nY and nZ are electrically equivalent terminals. +//- VCC and GND are the supply voltage pins for the digital control inputs (EQ and nS). +//- The VCC to GND ranges are 2.0 to 10.0V for HC and 4.5 to 5.5V for HCT. +//- The analog inputs/outputs (nY and nZ) can swing between VCC as a positive limit and VEE as a negative limit. +//- VCC−VEE may not exceed 10.0 V +//- Pinalias: 1Z,1Y,2Y,2Z,2S,3S,EQ,GND,VEE,3Z,3Y,4Y,4Z,4S,1S,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Philips datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/philips/74HCT4316.pdf +//- +static NETLIST_START(CD4316_DIP) + CD4316_GATE(A) + CD4316_GATE(B) + CD4316_GATE(C) + CD4316_GATE(D) + + NET_C(A.E, B.E, C.E, D.E) + NET_C(A.VDD, B.VDD, C.VDD, D.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS) + + PARAM(A.BASER, 45.0) + PARAM(B.BASER, 45.0) + PARAM(C.BASER, 45.0) + PARAM(D.BASER, 45.0) + + DIPPINS( /* +--------------+ */ + A.R.2, /* 1Z |1 ++ 16| VCC */ A.VDD, + A.R.1, /* 1Y |2 15| 1S */ A.S, + B.R.1, /* 2Y |3 14| 4S */ D.S, + B.R.2, /* 2Z |4 4316 13| 4Z */ D.R.2, + B.S, /* 2S |5 12| 4Y */ D.R.1, + C.S, /* 3S |6 11| 3Y */ C.R.1, + A.E, /* EQ |7 10| 3Z */ C.R.2, + A.VSS, /* GND |8 9| VEE */ VEE + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: CD4538_DIP +//- Title: CD4538BC Dual Precision Monostable +//- Description: The CD4538BC is a dual, precision monostable multivibrator with +//- independent trigger and reset controls. The device +//- is retriggerable and resettable, and the control inputs are +//- internally latched. Two trigger inputs are provided to allow +//- either rising or falling edge triggering. The reset inputs are +//- active LOW and prevent triggering while active. Precise +//- control of output pulse-width has been achieved using linear +//- CMOS techniques. The pulse duration and accuracy +//- are determined by external components RX and CX. The +//- device does not allow the timing capacitor to discharge +//- through the timing pin on power-down condition. For this +//- reason, no external protection resistor is required in series +//- with the timing pin. Input protection from static discharge is +//- provided on all pins. +//- +//- Pinalias: C1,RC1,CLRQ1,B1,A1,Q1,QQ1,GND,QQ2,Q2,A2,B2,CLRQ2,RC2,C2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet +//- Limitations: +//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet +//- +//- Example: 74123.cpp,74123_example +//- +//- FunctionTable: +//- https://pdf1.alldatasheet.com/datasheet-pdf/view/50871/FAIRCHILD/CD4538.html +//- +static NETLIST_START(CD4538_DIP) + CD4538(A) + CD4538(B) + + NET_C(A.VDD, B.VDD) + NET_C(A.VSS, B.VSS) + + DIPPINS( /* +--------------+ */ + A.C, /* 1Z |1 ++ 16| VCC */ A.VDD, + A.RC, /* 1Y |2 15| 1S */ B.C, + A.CLRQ, /* 2Y |3 14| 4S */ B.RC, + A.A, /* 2Z |4 4316 13| 4Z */ B.CLRQ, + A.B, /* 2S |5 12| 4Y */ B.A, + A.Q, /* 3S |6 11| 3Y */ B.B, + A.QQ, /* EQ |7 10| 3Z */ B.Q, + A.VSS, /* GND |8 9| VEE */ B.QQ + /* +--------------+ */ + ) +NETLIST_END() + + +NETLIST_START(cd4xxx_lib) + + TRUTHTABLE_START(CD4001_GATE, 2, 1, "") + TT_HEAD("A , B | Q ") + TT_LINE("0,0|1|110") + TT_LINE("X,1|0|120") + TT_LINE("1,X|0|120") + TT_FAMILY("CD4XXX") + TRUTHTABLE_END() + + TRUTHTABLE_START(CD4011_GATE, 2, 1, "") + TT_HEAD("A,B|Q ") + TT_LINE("0,X|1|100") + TT_LINE("X,0|1|100") + TT_LINE("1,1|0|100") + TT_FAMILY("CD4XXX") + TRUTHTABLE_END() + + TRUTHTABLE_START(CD4069_GATE, 1, 1, "") + TT_HEAD("A|Q ") + TT_LINE("0|1|55") + TT_LINE("1|0|55") + TT_FAMILY("CD4XXX") + TRUTHTABLE_END() + + TRUTHTABLE_START(CD4070_GATE, 2, 1, "") + TT_HEAD("A,B|Q ") + TT_LINE("0,0|0|15") + TT_LINE("0,1|1|22") + TT_LINE("1,0|1|22") + TT_LINE("1,1|0|15") + TT_FAMILY("CD4XXX") + TRUTHTABLE_END() + + LOCAL_LIB_ENTRY(CD4001_DIP) + LOCAL_LIB_ENTRY(CD4011_DIP) + LOCAL_LIB_ENTRY(CD4069_DIP) + LOCAL_LIB_ENTRY(CD4070_DIP) + + /* DIP ONLY */ + LOCAL_LIB_ENTRY(CD4006_DIP) + LOCAL_LIB_ENTRY(CD4013_DIP) + LOCAL_LIB_ENTRY(CD4017_DIP) + LOCAL_LIB_ENTRY(CD4022_DIP) + LOCAL_LIB_ENTRY(CD4020_DIP) + LOCAL_LIB_ENTRY(CD4024_DIP) + LOCAL_LIB_ENTRY(CD4053_DIP) + LOCAL_LIB_ENTRY(CD4066_DIP) + LOCAL_LIB_ENTRY(CD4016_DIP) + LOCAL_LIB_ENTRY(CD4316_DIP) + LOCAL_LIB_ENTRY(CD4538_DIP) + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_cd4xxx_lib.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,104 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +#ifndef NLD_CD4XXX_H_ +#define NLD_CD4XXX_H_ + +/// \file nlm_cd4xxx.h +/// + +#include "netlist/nl_setup.h" + +/* + * Devices: + * + * CD4001_NOR : single gate + * CD4001_DIP : dip package + * CD4013_DIP : dip package (device model in core) + * CD4020_DIP : dip package (device model in core) + * CD4024_DIP : dip package (device model in core) + * CD4016_DIP : dip package (device model in core) + * CD4053_DIP : dip package (device model in core) + * CD4066_DIP : dip package (device model in core) + * + */ + +#ifndef __PLIB_PREPROCESSOR__ + +/* ---------------------------------------------------------------------------- + * Netlist Macros + * ---------------------------------------------------------------------------*/ + +#if !NL_AUTO_DEVICES + +#define CD4001_GATE(name) \ + NET_REGISTER_DEV(CD4001_GATE, name) + +#define CD4001_DIP(name) \ + NET_REGISTER_DEV(CD4001_DIP, name) + +#define CD4011_GATE(name) \ + NET_REGISTER_DEV(CD4011_GATE, name) + +#define CD4011_DIP(name) \ + NET_REGISTER_DEV(CD4011_DIP, name) + +#define CD4069_GATE(name) \ + NET_REGISTER_DEV(CD4069_GATE, name) + +#define CD4069_DIP(name) \ + NET_REGISTER_DEV(CD4069_DIP, name) + +#define CD4070_GATE(name) \ + NET_REGISTER_DEV(CD4070_GATE, name) + +#define CD4070_DIP(name) \ + NET_REGISTER_DEV(CD4070_DIP, name) + +/* ---------------------------------------------------------------------------- + * DIP only macros + * ---------------------------------------------------------------------------*/ + +#define CD4006_DIP(name) \ + NET_REGISTER_DEV(CD4006_DIP, name) + +#define CD4013_DIP(name) \ + NET_REGISTER_DEV(CD4013_DIP, name) + +#define CD4017_DIP(name) \ + NET_REGISTER_DEV(CD4017_DIP, name) + +#define CD4022_DIP(name) \ + NET_REGISTER_DEV(CD4022_DIP, name) + +#define CD4020_DIP(name) \ + NET_REGISTER_DEV(CD4020_DIP, name) + +#define CD4024_DIP(name) \ + NET_REGISTER_DEV(CD4024_DIP, name) + +#define CD4053_DIP(name) \ + NET_REGISTER_DEV(CD4053_DIP, name) + +#define CD4066_DIP(name) \ + NET_REGISTER_DEV(CD4066_DIP, name) + +#define CD4016_DIP(name) \ + NET_REGISTER_DEV(CD4016_DIP, name) + +#define CD4316_DIP(name) \ + NET_REGISTER_DEV(CD4016_DIP, name) + +#define CD4538_DIP(name) \ + NET_REGISTER_DEV(CD4538_DIP, name) + +#endif // !NL_AUTO_DEVICES + +/* ---------------------------------------------------------------------------- + * External declarations + * ---------------------------------------------------------------------------*/ + +// moved to net_lib.h + +#endif + +#endif // NLD_CD4XXX_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,428 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#include "netlist/devices/net_lib.h" - -/* - * 0 = Basic hack (Norton with just amplification, no voltage cutting) - * 1 = Model from LTSPICE mailing list - slow! - * 2 = Simplified model using diode inputs and netlist - * 3 = Model according to datasheet - * 4 = Faster model by Colin Howell - * - * For Money Money 1 and 3 delivery comparable results. - * 3 is simpler (less BJTs) and converges a lot faster. - * - * Model 4 uses a lot less resources and pn-junctions. The preferred new normal. - */ -#define USE_LM3900_MODEL (4) - -/* - * Generic layout with 4 opamps, VCC on pin 4 and GND on pin 11 - */ - -static NETLIST_START(opamp_layout_4_4_11) - DIPPINS( /* +--------------+ */ - A.OUT, /* |1 ++ 14| */ D.OUT, - A.MINUS, /* |2 13| */ D.MINUS, - A.PLUS, /* |3 12| */ D.PLUS, - A.VCC, /* |4 11| */ A.GND, - B.PLUS, /* |5 10| */ C.PLUS, - B.MINUS, /* |6 9| */ C.MINUS, - B.OUT, /* |7 8| */ C.OUT - /* +--------------+ */ - ) - NET_C(A.GND, B.GND, C.GND, D.GND) - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) -NETLIST_END() - -/* - * Generic layout with 2 opamps, VCC on pin 8 and GND on pin 4 - */ - -static NETLIST_START(opamp_layout_2_8_4) - DIPPINS( /* +--------------+ */ - A.OUT, /* |1 ++ 8| */ A.VCC, - A.MINUS, /* |2 7| */ B.OUT, - A.PLUS, /* |3 6| */ B.MINUS, - A.GND, /* |4 5| */ B.PLUS - /* +--------------+ */ - ) - NET_C(A.GND, B.GND) - NET_C(A.VCC, B.VCC) -NETLIST_END() - -/* - * Generic layout with 2 opamps, VCC+ on pins 9/13, VCC- on pin 4 and compensation - */ - -static NETLIST_START(opamp_layout_2_13_9_4) - DIPPINS( /* +--------------+ */ - A.MINUS, /* |1 ++ 14| */ A.N2, - A.PLUS, /* |2 13| */ A.VCC, - A.N1, /* |3 12| */ A.OUT, - A.GND, /* |4 11| */ NC, - B.N1, /* |5 10| */ B.OUT, - B.PLUS, /* |6 9| */ B.VCC, - B.MINUS, /* |7 8| */ B.N2 - /* +--------------+ */ - ) - NET_C(A.GND, B.GND) -NETLIST_END() - -/* - * Generic layout with 1 opamp, VCC+ on pin 7, VCC- on pin 4 and compensation - * // FIXME: Offset inputs are not supported! - */ - -static NETLIST_START(opamp_layout_1_7_4) - DIPPINS( /* +--------------+ */ - NC /* OFFSET */, /* |1 ++ 8| */ NC, - A.MINUS, /* |2 7| */ A.VCC, - A.PLUS, /* |3 6| */ A.OUT, - A.GND, /* |4 5| */ NC /* OFFSET */ - /* +--------------+ */ - ) -NETLIST_END() - -/* - * Generic layout with 1 opamp, VCC+ on pin 8, VCC- on pin 5 and compensation - */ - -static NETLIST_START(opamp_layout_1_8_5) - DIPPINS( /* +--------------+ */ - NC.1, /* |1 10| */ NC.3, - OFFSET.N1, /* |2 9| */ NC.2, - MINUS, /* |3 8| */ VCC.PLUS, - PLUS, /* |4 7| */ OUT, - VCC.MINUS, /* |5 6| */ OFFSET.N2 - /* +--------------+ */ - ) - NET_C(A.GND, VCC.MINUS) - NET_C(A.VCC, VCC.PLUS) - NET_C(A.MINUS, MINUS) - NET_C(A.PLUS, PLUS) - NET_C(A.OUT, OUT) -NETLIST_END() - -/* - * Generic layout with 1 opamp, VCC+ on pin 11, VCC- on pin 6 and compensation - */ - -static NETLIST_START(opamp_layout_1_11_6) - DIPPINS( /* +--------------+ */ - NC.1, /* |1 ++ 14| */ NC.7, - NC.2, /* |2 13| */ NC.6, - OFFSET.N1, /* |3 12| */ NC.5, - MINUS, /* |4 11| */ VCC.PLUS, - PLUS, /* |5 10| */ OUT, - VCC.MINUS, /* |6 9| */ OFFSET.N2, - NC.3, /* |7 8| */ NC.4 - /* +--------------+ */ - ) - NET_C(A.GND, VCC.MINUS) - NET_C(A.VCC, VCC.PLUS) - NET_C(A.MINUS, MINUS) - NET_C(A.PLUS, PLUS) - NET_C(A.OUT, OUT) -NETLIST_END() - -static NETLIST_START(MB3614_DIP) - OPAMP(A, "MB3614") - OPAMP(B, "MB3614") - OPAMP(C, "MB3614") - OPAMP(D, "MB3614") - - INCLUDE(opamp_layout_4_4_11) - -NETLIST_END() - -static NETLIST_START(TL081_DIP) - OPAMP(A, "TL084") - - INCLUDE(opamp_layout_1_7_4) - -NETLIST_END() - -static NETLIST_START(TL084_DIP) - OPAMP(A, "TL084") - OPAMP(B, "TL084") - OPAMP(C, "TL084") - OPAMP(D, "TL084") - - INCLUDE(opamp_layout_4_4_11) - -NETLIST_END() - -static NETLIST_START(LM324_DIP) - OPAMP(A, "LM324") - OPAMP(B, "LM324") - OPAMP(C, "LM324") - OPAMP(D, "LM324") - - INCLUDE(opamp_layout_4_4_11) - -NETLIST_END() - -static NETLIST_START(LM2902_DIP) - // Same datasheet and mostly same characteristics as LM324 - OPAMP(A, "LM324") - OPAMP(B, "LM324") - OPAMP(C, "LM324") - OPAMP(D, "LM324") - - INCLUDE(opamp_layout_4_4_11) - -NETLIST_END() - -static NETLIST_START(LM358_DIP) - OPAMP(A, "LM358") - OPAMP(B, "LM358") - - INCLUDE(opamp_layout_2_8_4) - -NETLIST_END() - -static NETLIST_START(UA741_DIP8) - OPAMP(A, "UA741") - - INCLUDE(opamp_layout_1_7_4) - -NETLIST_END() - -static NETLIST_START(UA741_DIP10) - OPAMP(A, "UA741") - - INCLUDE(opamp_layout_1_8_5) - -NETLIST_END() - -static NETLIST_START(UA741_DIP14) - OPAMP(A, "UA741") - - INCLUDE(opamp_layout_1_11_6) - -NETLIST_END() - -static NETLIST_START(LM747_DIP) - OPAMP(A, "LM747") - OPAMP(B, "LM747") - - INCLUDE(opamp_layout_2_13_9_4) - NET_C(A.VCC, B.VCC) - -NETLIST_END() - -static NETLIST_START(LM747A_DIP) - OPAMP(A, "LM747A") - OPAMP(B, "LM747A") - - INCLUDE(opamp_layout_2_13_9_4) - NET_C(A.VCC, B.VCC) - -NETLIST_END() - -#if USE_LM3900_MODEL == 0 -static NETLIST_START(LM3900) - - /* - * Fast norton opamp model without bandwidth - */ - - /* Terminal definitions for calling netlists */ - - ALIAS(PLUS, R1.1) // Positive input - ALIAS(MINUS, R2.1) // Negative input - ALIAS(OUT, G1.OP) // Opamp output ... - ALIAS(GND, G1.ON) // V- terminal - ALIAS(VCC, DUMMY.1) // V+ terminal - - RES(DUMMY, RES_K(1)) - NET_C(DUMMY.2, GND) - - /* The opamp model */ - - RES(R1, 1) - RES(R2, 1) - NET_C(R1.1, G1.IP) - NET_C(R2.1, G1.IN) - NET_C(R1.2, R2.2, G1.ON) - VCVS(G1, 10000000) - //PARAM(G1.RI, 1) - PARAM(G1.RO, RES_K(8)) - -NETLIST_END() -#endif - -#if USE_LM3900_MODEL == 1 -// LTSPICE MODEL OF LM3900 FROM NATIONAL SEMICONDUCTOR -// MADE BY HELMUT SENNEWALD, 8/6/2004 -// THE LM3900 IS A SO CALLED NORTON AMPLIFIER. -// -// PIN ORDER: IN+ IN- VCC VSS OUT -static NETLIST_START(LM3900) - PARAM(E1.G, 0.5) - //ALIAS(IN+, Q2.B) - //ALIAS(IN-, Q2.C) - //ALIAS(VCC, Q10.C) - //ALIAS(VSS, Q2.E) - - ALIAS(PLUS, Q2.B) - ALIAS(MINUS, Q2.C) - ALIAS(VCC, Q10.C) - ALIAS(GND, Q2.E) - ALIAS(OUT, Q6.C) - - //CS(B1/*I=LIMIT(0, V(VCC,VSS)/10K, 0.2m)*/) - CS(B1, 2e-4) - CAP(C1, CAP_P(6.000000)) - VCVS(E1, 1) - QBJT_EB(Q1, "LM3900_NPN1") - QBJT_EB(Q10, "LM3900_NPN1") - QBJT_EB(Q11, "LM3900_NPN1") - QBJT_EB(Q12, "LM3900_NPN1") - QBJT_EB(Q2, "LM3900_NPN1") - QBJT_EB(Q3, "LM3900_NPN1") - QBJT_EB(Q4, "LM3900_PNP1") - QBJT_EB(Q5, "LM3900_PNP1") - QBJT_EB(Q6, "LM3900_PNP1") - QBJT_EB(Q7, "LM3900_PNP1") - QBJT_EB(Q8, "LM3900_NPN1") - QBJT_EB(Q9, "LM3900_NPN1") - RES(R1, RES_K(2.000000)) - RES(R6, RES_K(1.600000)) - NET_C(Q11.B, Q12.B, R6.2) - NET_C(Q5.C, Q5.B, B1.P, Q4.B) - NET_C(Q8.C, Q8.B, B1.N, R1.1, E1.IP) - NET_C(Q9.B, R1.2) - NET_C(R6.1, E1.OP) - NET_C(Q10.C, Q5.E, Q4.E, Q11.C, Q12.C) - NET_C(Q2.C, Q3.B, Q12.E) - NET_C(Q2.E, Q3.E, Q9.E, C1.2, Q1.E, Q8.E, E1.ON, E1.IN, Q7.C) - NET_C(Q3.C, Q6.B, C1.1, Q7.B) - NET_C(Q6.E, Q10.B, Q4.C) - NET_C(Q6.C, Q10.E, Q9.C, Q7.E) - NET_C(Q2.B, Q1.C, Q1.B, Q11.E) -NETLIST_END() -#endif - -#if USE_LM3900_MODEL == 2 -static NETLIST_START(LM3900) - OPAMP(A, "LM3900") - - DIODE(D1, "D(IS=1e-15 N=1)") - CCCS(CS1, 1) // Current Mirror - - ALIAS(VCC, A.VCC) - ALIAS(GND, A.GND) - ALIAS(PLUS, A.PLUS) - ALIAS(MINUS, A.MINUS) - ALIAS(OUT, A.OUT) - - NET_C(A.PLUS, CS1.IP) - NET_C(D1.A, CS1.IN) - NET_C(CS1.ON, A.MINUS) - NET_C(CS1.OP, A.GND, D1.K) - -NETLIST_END() -#endif - -#if USE_LM3900_MODEL == 3 -static NETLIST_START(LM3900) - - ALIAS(VCC, Q5.C) - ALIAS(GND, Q1.E) - ALIAS(PLUS, Q1.B) - ALIAS(MINUS, Q1.C) - ALIAS(OUT, Q5.E) - - CAP(C1, CAP_P(6.000000)) - CS(I1, 1.300000e-3) - CS(I2, 200e-6) - QBJT_EB(Q1, "NPN") - QBJT_EB(Q2, "NPN") - QBJT_EB(Q3, "PNP") - QBJT_EB(Q4, "PNP") - QBJT_EB(Q5, "NPN") - QBJT_EB(Q6, "NPN") - NET_C(Q3.E, Q5.B, I2.2) - NET_C(Q3.C, Q4.E, Q5.E, I1.1) - NET_C(Q5.C, I2.1) - NET_C(Q1.B, Q6.C, Q6.B) - NET_C(Q1.E, Q2.E, Q4.C, C1.2, I1.2, Q6.E) - NET_C(Q1.C, Q2.B) - NET_C(Q2.C, Q3.B, Q4.B, C1.1) -NETLIST_END() -#endif - -#if USE_LM3900_MODEL == 4 -static NETLIST_START(LM3900) - OPAMP(A, "OPAMP(TYPE=3 VLH=0.5 VLL=0.03 FPF=2k UGF=2.5M SLEW=1M RI=10M RO=100 DAB=0.0015)") - - DIODE(D1, "D(IS=6e-15 N=1)") - DIODE(D2, "D(IS=6e-15 N=1)") - CCCS(CS1, 1) // Current Mirror - - ALIAS(VCC, A.VCC) - ALIAS(GND, A.GND) - ALIAS(OUT, A.OUT) - - ALIAS(PLUS, CS1.IP) - NET_C(D1.A, CS1.IN) - NET_C(A.GND, D1.K) - - CS(CS_BIAS, 10e-6) - NET_C(A.VCC, CS_BIAS.P) - - ALIAS(MINUS, CS1.OP) - NET_C(CS1.ON, A.GND) - - CCVS(VS1, 200000) // current-to-voltage gain - NET_C(CS1.OP, VS1.IP) - NET_C(VS1.IN, CS_BIAS.N, D2.A) - NET_C(D2.K, A.GND) - NET_C(VS1.OP, A.MINUS) - NET_C(VS1.ON, A.PLUS, A.GND) -NETLIST_END() -#endif - -NETLIST_START(OPAMP_lib) - LOCAL_LIB_ENTRY(opamp_layout_4_4_11) - LOCAL_LIB_ENTRY(opamp_layout_2_8_4) - LOCAL_LIB_ENTRY(opamp_layout_2_13_9_4) - LOCAL_LIB_ENTRY(opamp_layout_1_7_4) - LOCAL_LIB_ENTRY(opamp_layout_1_8_5) - LOCAL_LIB_ENTRY(opamp_layout_1_11_6) - - // FIXME: JFET Opamp may need better model - // VLL and VHH for +-6V RI=10^12 (for numerical stability 10^9 is used below - // RO from data sheet - NET_MODEL("TL084 OPAMP(TYPE=3 VLH=0.75 VLL=0.75 FPF=10 UGF=3000k SLEW=13M RI=1000M RO=192 DAB=0.0014)") - - NET_MODEL("LM324 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") - NET_MODEL("LM358 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.001)") - NET_MODEL("MB3614 OPAMP(TYPE=3 VLH=1.4 VLL=0.02 FPF=3 UGF=1000k SLEW=0.6M RI=1000k RO=100 DAB=0.002)") - NET_MODEL("UA741 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=75 DAB=0.0017)") - NET_MODEL("LM747 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=50 DAB=0.0017)") - NET_MODEL("LM747A OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=1000k SLEW=0.7M RI=6000k RO=50 DAB=0.0015)") - // TI and Motorola Datasheets differ - below are Motorola values, SLEW is average of LH and HL - NET_MODEL("LM3900 OPAMP(TYPE=3 VLH=1.0 VLL=0.03 FPF=2k UGF=4M SLEW=10M RI=10M RO=2k DAB=0.0015)") - -#if USE_LM3900_MODEL == 1 - NET_MODEL("LM3900_NPN1 NPN(IS=1E-14 BF=150 TF=1E-9 CJC=1E-12 CJE=1E-12 VAF=150 RB=100 RE=5 IKF=0.002)") - NET_MODEL("LM3900_PNP1 PNP(IS=1E-14 BF=40 TF=1E-7 CJC=1E-12 CJE=1E-12 VAF=150 RB=100 RE=5)") -#endif - LOCAL_LIB_ENTRY(MB3614_DIP) - LOCAL_LIB_ENTRY(TL081_DIP) - LOCAL_LIB_ENTRY(TL084_DIP) - LOCAL_LIB_ENTRY(LM324_DIP) - LOCAL_LIB_ENTRY(LM358_DIP) - LOCAL_LIB_ENTRY(LM2902_DIP) - LOCAL_LIB_ENTRY(UA741_DIP8) - LOCAL_LIB_ENTRY(UA741_DIP10) - LOCAL_LIB_ENTRY(UA741_DIP14) - LOCAL_LIB_ENTRY(LM747_DIP) - LOCAL_LIB_ENTRY(LM747A_DIP) - LOCAL_LIB_ENTRY(LM3900) - -NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#ifndef NLM_OPAMP_H_ -#define NLM_OPAMP_H_ - -/// -/// \file nlm_opamp.h -/// - -#include "netlist/nl_setup.h" - -#ifndef __PLIB_PREPROCESSOR__ - -/* ---------------------------------------------------------------------------- - * Netlist Macros - * ---------------------------------------------------------------------------*/ - -#if !NL_AUTO_DEVICES - -#define MB3614_DIP(name) \ - NET_REGISTER_DEV(MB3614_DIP, name) - -#define LM324_DIP(name) \ - NET_REGISTER_DEV(LM324_DIP, name) - -#define TL081_DIP(name) \ - NET_REGISTER_DEV(TL081_DIP, name) - -#define TL084_DIP(name) \ - NET_REGISTER_DEV(TL084_DIP, name) - -#define LM2902_DIP(name) \ - NET_REGISTER_DEV(LM2902_DIP, name) - -#define LM358_DIP(name) \ - NET_REGISTER_DEV(LM358_DIP, name) - -#define LM3900(name) \ - NET_REGISTER_DEV(LM3900, name) - -#define UA741_DIP8(name) \ - NET_REGISTER_DEV(UA741_DIP8, name) - -#define UA741_DIP10(name) \ - NET_REGISTER_DEV(UA741_DIP10, name) - -#define UA741_DIP14(name) \ - NET_REGISTER_DEV(UA741_DIP14, name) - -#define LM747_DIP(name) \ - NET_REGISTER_DEV(LM747_DIP, name) - -#define LM747A_DIP(name) \ - NET_REGISTER_DEV(LM747A_DIP, name) - -#endif // NL_AUTO_DEVICES - -/* ---------------------------------------------------------------------------- - * External declarations - * ---------------------------------------------------------------------------*/ - -NETLIST_EXTERNAL(OPAMP_lib) - -#endif // __PLIB_PREPROCESSOR__ - -#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,653 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#include "netlist/devices/net_lib.h" + +/* + * 0 = Basic hack (Norton with just amplification, no voltage cutting) + * 1 = Model from LTSPICE mailing list - slow! + * 2 = Simplified model using diode inputs and netlist + * 3 = Model according to datasheet + * 4 = Faster model by Colin Howell + * + * For Money Money 1 and 3 delivery comparable results. + * 3 is simpler (less BJTs) and converges a lot faster. + * + * Model 4 uses a lot less resources and pn-junctions. The preferred new normal. + */ +#define USE_LM3900_MODEL (4) + +/* + * Generic layout with 4 opamps, VCC on pin 4 and GND on pin 11 + */ + +static NETLIST_START(opamp_layout_4_4_11) + DIPPINS( /* +--------------+ */ + A.OUT, /* |1 ++ 14| */ D.OUT, + A.MINUS, /* |2 13| */ D.MINUS, + A.PLUS, /* |3 12| */ D.PLUS, + A.VCC, /* |4 11| */ A.GND, + B.PLUS, /* |5 10| */ C.PLUS, + B.MINUS, /* |6 9| */ C.MINUS, + B.OUT, /* |7 8| */ C.OUT + /* +--------------+ */ + ) + NET_C(A.GND, B.GND, C.GND, D.GND) + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) +NETLIST_END() + +/* + * Generic layout with 2 opamps, VCC on pin 8 and GND on pin 4 + */ + +static NETLIST_START(opamp_layout_2_8_4) + DIPPINS( /* +--------------+ */ + A.OUT, /* |1 ++ 8| */ A.VCC, + A.MINUS, /* |2 7| */ B.OUT, + A.PLUS, /* |3 6| */ B.MINUS, + A.GND, /* |4 5| */ B.PLUS + /* +--------------+ */ + ) + NET_C(A.GND, B.GND) + NET_C(A.VCC, B.VCC) +NETLIST_END() + +/* + * Generic layout with 2 opamps, VCC+ on pins 9/13, VCC- on pin 4 and compensation + */ + +static NETLIST_START(opamp_layout_2_13_9_4) + DIPPINS( /* +--------------+ */ + A.MINUS, /* |1 ++ 14| */ A.N2, + A.PLUS, /* |2 13| */ A.VCC, + A.N1, /* |3 12| */ A.OUT, + A.GND, /* |4 11| */ NC, + B.N1, /* |5 10| */ B.OUT, + B.PLUS, /* |6 9| */ B.VCC, + B.MINUS, /* |7 8| */ B.N2 + /* +--------------+ */ + ) + NET_C(A.GND, B.GND) +NETLIST_END() + +/* + * Generic layout with 1 opamp, VCC+ on pin 7, VCC- on pin 4 and compensation + * // FIXME: Offset inputs are not supported! + */ + +static NETLIST_START(opamp_layout_1_7_4) + DIPPINS( /* +--------------+ */ + NC /* OFFSET */, /* |1 ++ 8| */ NC, + A.MINUS, /* |2 7| */ A.VCC, + A.PLUS, /* |3 6| */ A.OUT, + A.GND, /* |4 5| */ NC /* OFFSET */ + /* +--------------+ */ + ) +NETLIST_END() + +/* + * Generic layout with 1 opamp, VCC+ on pin 8, VCC- on pin 5 and compensation + */ + +static NETLIST_START(opamp_layout_1_8_5) + DIPPINS( /* +--------------+ */ + NC.1, /* |1 10| */ NC.3, + OFFSET.N1, /* |2 9| */ NC.2, + MINUS, /* |3 8| */ VCC.PLUS, + PLUS, /* |4 7| */ OUT, + VCC.MINUS, /* |5 6| */ OFFSET.N2 + /* +--------------+ */ + ) + NET_C(A.GND, VCC.MINUS) + NET_C(A.VCC, VCC.PLUS) + NET_C(A.MINUS, MINUS) + NET_C(A.PLUS, PLUS) + NET_C(A.OUT, OUT) +NETLIST_END() + +/* + * Generic layout with 1 opamp, VCC+ on pin 11, VCC- on pin 6 and compensation + */ + +static NETLIST_START(opamp_layout_1_11_6) + DIPPINS( /* +--------------+ */ + NC.1, /* |1 ++ 14| */ NC.7, + NC.2, /* |2 13| */ NC.6, + OFFSET.N1, /* |3 12| */ NC.5, + MINUS, /* |4 11| */ VCC.PLUS, + PLUS, /* |5 10| */ OUT, + VCC.MINUS, /* |6 9| */ OFFSET.N2, + NC.3, /* |7 8| */ NC.4 + /* +--------------+ */ + ) + NET_C(A.GND, VCC.MINUS) + NET_C(A.VCC, VCC.PLUS) + NET_C(A.MINUS, MINUS) + NET_C(A.PLUS, PLUS) + NET_C(A.OUT, OUT) +NETLIST_END() + +static NETLIST_START(MB3614_DIP) + OPAMP(A, "MB3614") + OPAMP(B, "MB3614") + OPAMP(C, "MB3614") + OPAMP(D, "MB3614") + + INCLUDE(opamp_layout_4_4_11) + +NETLIST_END() + +static NETLIST_START(MC3340_DIP) + // A netlist description of the Motorola MC3340 Electronic Attenuator + // IC, a voltage-controlled amplifier/attenuator. It amplifies or + // attenuates an input signal according to the voltage of a second, + // control signal, with a maximum gain of about 12-13 dB (about a + // factor of 4 in voltage), and higher control voltages giving greater + // attenuation, which scales logarithmically. + + // The netlist here is based on the circuit schematic given in + // Motorola's own data books, especially the most recent ones + // published in the 1990s (e.g. _Motorola Analog/Interface ICs Device + // Data, Vol. II_ (1996), p. 9-67), which are the only schematics that + // include resistor values. However, the 1990s schematics are missing + // one crossover connection which is present in older schematics + // published in the 1970s (e.g. _Motorola Linear Integrated Circuits_ + // (1979), p. 5-130). This missing connection is clearly an error + // which has been fixed in this netlist; without it, the circuit won't + // amplify properly, generating only a very weak output signal. + + // The 1990s schematics also omit a couple of diodes which are present + // in the 1970s schematics. Both of these diodes have been included + // here. One raises the minimum control voltage at which signal + // attenuation starts, so it makes the netlist's profile of + // attenuation vs. control voltage better match Motorola's charts for + // the device. The other affects the level of the input "midpoint", + // and including it makes the engine sound closer to that on real + // 280-ZZZAP machines. + + // The Motorola schematics do not label components, so I've created my + // own labeling scheme based on numbering components on the schematics + // from top to bottom, left to right, with resistors also getting + // their value (expressed European-style to avoid decimal points) as + // part of the name. The netlist is also listed following the + // schematics in roughly top-to-bottom, left-to-right order. + + // A very simple model is used for the transistors here, based on the + // generic NPN default but with a larger scale current. Again, this + // was chosen to better match the netlist's attenuation vs. control + // voltage profile to that given in Motorola's charts for the device. + + // The MC3340 has the same circuit internally as an older Motorola + // device, the MFC6040, which was replaced by the MC3340 in the + // mid-1970s. The two chips differ only in packaging. Older arcade + // games which use the MFC6040 may also benefit from this netlist + // implementation. + + RES(R1_5K1, RES_K(5.1)) + + DIODE(D1, "D(IS=1e-15 N=1)") + + RES(R2_4K7, RES_K(4.7)) + + QBJT_EB(Q1, "NPN(IS=1E-13 BF=100)") + + RES(R3_750, RES_R(750)) + RES(R4_10K, RES_K(10)) + + QBJT_EB(Q2, "NPN(IS=1E-13 BF=100)") + + RES(R5_750, RES_R(750)) + RES(R6_3K9, RES_K(3.9)) + + RES(R7_5K1, RES_K(5.1)) + RES(R8_20K, RES_K(20)) + + DIODE(D2, "D(IS=1e-15 N=1)") + + RES(R9_510, RES_R(510)) + + QBJT_EB(Q3, "NPN(IS=1E-13 BF=100)") + + QBJT_EB(Q4, "NPN(IS=1E-13 BF=100)") + + QBJT_EB(Q5, "NPN(IS=1E-13 BF=100)") + + RES(R10_1K3, RES_K(1.3)) + + QBJT_EB(Q6, "NPN(IS=1E-13 BF=100)") + + RES(R11_5K1, RES_K(5.1)) + + QBJT_EB(Q7, "NPN(IS=1E-13 BF=100)") + + QBJT_EB(Q8, "NPN(IS=1E-13 BF=100)") + + RES(R12_1K5, RES_K(1.5)) + + RES(R13_6K2, RES_K(6.2)) + + QBJT_EB(Q9, "NPN(IS=1E-13 BF=100)") + + RES(R14_5K1, RES_K(5.1)) + + QBJT_EB(Q10, "NPN(IS=1E-13 BF=100)") + + RES(R15_5K1, RES_K(5.1)) + + RES(R16_200, RES_R(200)) + + RES(R17_5K1, RES_K(5.1)) + + DIODE(D3, "D(IS=1e-15 N=1)") + + RES(R18_510, RES_R(510)) + + ALIAS(VCC, R1_5K1.1) + NET_C(R1_5K1.1, Q1.C, Q2.C, R7_5K1.1, Q3.C, Q4.C, Q7.C, + R13_6K2.1, Q10.C, R17_5K1.1) + // Location of first diode present on 1970s schematics but omitted on + // 1990s ones. Including it raises the control voltage threshold for + // attenuation significantly. + NET_C(R1_5K1.2, D1.A, Q1.B) + NET_C(D1.K, R2_4K7.1) + NET_C(R2_4K7.2, GND) + + NET_C(Q1.E, R3_750.1, R5_750.1) + NET_C(R3_750.2, R4_10K.1, Q2.B) + NET_C(R4_10K.2, GND) + + NET_C(R5_750.2, R6_3K9.1, Q3.B) + ALIAS(CONTROL, R6_3K9.2) + + ALIAS(INPUT, Q5.B) + + NET_C(INPUT, R8_20K.1) + // Location of second diode present on 1970s schematics but omitted on + // 1990s ones. Including it is critical to making the tone of the + // output engine sound match that of real 280-ZZZAP machines. + NET_C(R7_5K1.2, R8_20K.2, D2.A) + NET_C(D2.K, R9_510.1) + NET_C(R9_510.2, GND) + + NET_C(Q4.E, Q6.E, Q5.C) + NET_C(Q5.E, R10_1K3.1) + NET_C(R10_1K3.2, GND) + + NET_C(Q6.B, Q7.B, Q2.E, R11_5K1.1) + NET_C(R11_5K1.2, GND) + + NET_C(Q7.E, Q9.E, Q8.C) + NET_C(Q8.E, R12_1K5.1) + NET_C(R12_1K5.2, GND) + + NET_C(Q4.B, Q9.B, Q3.E, R14_5K1.1) + NET_C(R14_5K1.2, GND) + + // This is where the cross-connection is erroneously omitted from + // 1990s schematics. + NET_C(Q6.C, R13_6K2.2, Q9.C, Q10.B) + + // Connection for external frequency compensation capacitor; unused + // here. + ALIAS(ROLLOFF, Q10.B) + + NET_C(Q10.E, R16_200.1, R15_5K1.1) + NET_C(R15_5K1.2, GND) + ALIAS(OUTPUT, R16_200.2) + + NET_C(R17_5K1.2, D3.A, Q8.B) + NET_C(D3.K, R18_510.1) + ALIAS(GND, R18_510.2) + + ALIAS(1, INPUT) + ALIAS(2, CONTROL) + ALIAS(3, GND) + ALIAS(6, ROLLOFF) + ALIAS(7, OUTPUT) + ALIAS(8, VCC) +NETLIST_END() + +static NETLIST_START(TL081_DIP) + OPAMP(A, "TL084") + + INCLUDE(opamp_layout_1_7_4) + +NETLIST_END() + +static NETLIST_START(TL082_DIP) + OPAMP(A, "TL084") + OPAMP(B, "TL084") + + INCLUDE(opamp_layout_2_8_4) + +NETLIST_END() + +static NETLIST_START(TL084_DIP) + OPAMP(A, "TL084") + OPAMP(B, "TL084") + OPAMP(C, "TL084") + OPAMP(D, "TL084") + + INCLUDE(opamp_layout_4_4_11) + +NETLIST_END() + +static NETLIST_START(LM324_DIP) + OPAMP(A, "LM324") + OPAMP(B, "LM324") + OPAMP(C, "LM324") + OPAMP(D, "LM324") + + INCLUDE(opamp_layout_4_4_11) + +NETLIST_END() + +static NETLIST_START(LM2902_DIP) + // Same datasheet and mostly same characteristics as LM324 + OPAMP(A, "LM324") + OPAMP(B, "LM324") + OPAMP(C, "LM324") + OPAMP(D, "LM324") + + INCLUDE(opamp_layout_4_4_11) + +NETLIST_END() + +static NETLIST_START(LM358_DIP) + OPAMP(A, "LM358") + OPAMP(B, "LM358") + + INCLUDE(opamp_layout_2_8_4) + +NETLIST_END() + +static NETLIST_START(UA741_DIP8) + OPAMP(A, "UA741") + + INCLUDE(opamp_layout_1_7_4) + +NETLIST_END() + +static NETLIST_START(UA741_DIP10) + OPAMP(A, "UA741") + + INCLUDE(opamp_layout_1_8_5) + +NETLIST_END() + +static NETLIST_START(UA741_DIP14) + OPAMP(A, "UA741") + + INCLUDE(opamp_layout_1_11_6) + +NETLIST_END() + +static NETLIST_START(MC1558_DIP) + OPAMP(A, "UA741") + OPAMP(B, "UA741") + + INCLUDE(opamp_layout_2_8_4) + +NETLIST_END() + +static NETLIST_START(LM747_DIP) + OPAMP(A, "LM747") + OPAMP(B, "LM747") + + INCLUDE(opamp_layout_2_13_9_4) + NET_C(A.VCC, B.VCC) + +NETLIST_END() + +static NETLIST_START(LM747A_DIP) + OPAMP(A, "LM747A") + OPAMP(B, "LM747A") + + INCLUDE(opamp_layout_2_13_9_4) + NET_C(A.VCC, B.VCC) + +NETLIST_END() + +//- Identifier: AN6551_SIL +//- Title: AN6551 Dual Operational Amplifier +//- Description: The AN6551 is a dual operational Amplifier with a +//- phase compensation circuit built-in. It is suitable for application to +//- various electronic circuits such as active filters and +//- audio pre-amplifiers +//- +//- Features: Phase compensation circuit, High gain, low noise, +//- Output short-circuit protection, Two circuits symmetrically arranged in 9-pin SIL plastic package +//- Pinalias: VCC,A.OUT,A-,A+,GND,B+,B-,B.OUT,VCC +//- Package: SIL +//- NamingConvention: Naming conventions follow Panasonic datasheet +//- FunctionTable: +//- https://datasheetspdf.com/pdf-file/182163/PanasonicSemiconductor/AN6551/1 +//- +static NETLIST_START(AN6551_SIL) + OPAMP(A, "AN6551") + OPAMP(B, "AN6551") + + NET_C(A.GND, B.GND) + + ALIAS(1, A.VCC) + ALIAS(2, A.OUT) + ALIAS(3, A.MINUS) + ALIAS(4, A.PLUS) + ALIAS(5, A.GND) + ALIAS(6, B.PLUS) + ALIAS(7, B.MINUS) + ALIAS(8, B.OUT) + ALIAS(9, B.VCC) +NETLIST_END() + +#if USE_LM3900_MODEL == 0 +static NETLIST_START(LM3900) + + /* + * Fast norton opamp model without bandwidth + */ + + /* Terminal definitions for calling netlists */ + + ALIAS(PLUS, R1.1) // Positive input + ALIAS(MINUS, R2.1) // Negative input + ALIAS(OUT, G1.OP) // Opamp output ... + ALIAS(GND, G1.ON) // V- terminal + ALIAS(VCC, DUMMY.1) // V+ terminal + + RES(DUMMY, RES_K(1)) + NET_C(DUMMY.2, GND) + + /* The opamp model */ + + RES(R1, 1) + RES(R2, 1) + NET_C(R1.1, G1.IP) + NET_C(R2.1, G1.IN) + NET_C(R1.2, R2.2, G1.ON) + VCVS(G1, 10000000) + //PARAM(G1.RI, 1) + PARAM(G1.RO, RES_K(8)) + +NETLIST_END() +#endif + +#if USE_LM3900_MODEL == 1 +// LTSPICE MODEL OF LM3900 FROM NATIONAL SEMICONDUCTOR +// MADE BY HELMUT SENNEWALD, 8/6/2004 +// THE LM3900 IS A SO CALLED NORTON AMPLIFIER. +// +// PIN ORDER: IN+ IN- VCC VSS OUT +static NETLIST_START(LM3900) + PARAM(E1.G, 0.5) + //ALIAS(IN+, Q2.B) + //ALIAS(IN-, Q2.C) + //ALIAS(VCC, Q10.C) + //ALIAS(VSS, Q2.E) + + ALIAS(PLUS, Q2.B) + ALIAS(MINUS, Q2.C) + ALIAS(VCC, Q10.C) + ALIAS(GND, Q2.E) + ALIAS(OUT, Q6.C) + + //CS(B1/*I=LIMIT(0, V(VCC,VSS)/10K, 0.2m)*/) + CS(B1, 2e-4) + CAP(C1, CAP_P(6.000000)) + VCVS(E1, 1) + QBJT_EB(Q1, "LM3900_NPN1") + QBJT_EB(Q10, "LM3900_NPN1") + QBJT_EB(Q11, "LM3900_NPN1") + QBJT_EB(Q12, "LM3900_NPN1") + QBJT_EB(Q2, "LM3900_NPN1") + QBJT_EB(Q3, "LM3900_NPN1") + QBJT_EB(Q4, "LM3900_PNP1") + QBJT_EB(Q5, "LM3900_PNP1") + QBJT_EB(Q6, "LM3900_PNP1") + QBJT_EB(Q7, "LM3900_PNP1") + QBJT_EB(Q8, "LM3900_NPN1") + QBJT_EB(Q9, "LM3900_NPN1") + RES(R1, RES_K(2.000000)) + RES(R6, RES_K(1.600000)) + NET_C(Q11.B, Q12.B, R6.2) + NET_C(Q5.C, Q5.B, B1.P, Q4.B) + NET_C(Q8.C, Q8.B, B1.N, R1.1, E1.IP) + NET_C(Q9.B, R1.2) + NET_C(R6.1, E1.OP) + NET_C(Q10.C, Q5.E, Q4.E, Q11.C, Q12.C) + NET_C(Q2.C, Q3.B, Q12.E) + NET_C(Q2.E, Q3.E, Q9.E, C1.2, Q1.E, Q8.E, E1.ON, E1.IN, Q7.C) + NET_C(Q3.C, Q6.B, C1.1, Q7.B) + NET_C(Q6.E, Q10.B, Q4.C) + NET_C(Q6.C, Q10.E, Q9.C, Q7.E) + NET_C(Q2.B, Q1.C, Q1.B, Q11.E) +NETLIST_END() +#endif + +#if USE_LM3900_MODEL == 2 +static NETLIST_START(LM3900) + OPAMP(A, "LM3900") + + DIODE(D1, "D(IS=1e-15 N=1)") + CCCS(CS1, 1) // Current Mirror + + ALIAS(VCC, A.VCC) + ALIAS(GND, A.GND) + ALIAS(PLUS, A.PLUS) + ALIAS(MINUS, A.MINUS) + ALIAS(OUT, A.OUT) + + NET_C(A.PLUS, CS1.IP) + NET_C(D1.A, CS1.IN) + NET_C(CS1.ON, A.MINUS) + NET_C(CS1.OP, A.GND, D1.K) + +NETLIST_END() +#endif + +#if USE_LM3900_MODEL == 3 +static NETLIST_START(LM3900) + + ALIAS(VCC, Q5.C) + ALIAS(GND, Q1.E) + ALIAS(PLUS, Q1.B) + ALIAS(MINUS, Q1.C) + ALIAS(OUT, Q5.E) + + CAP(C1, CAP_P(6.000000)) + CS(I1, 1.300000e-3) + CS(I2, 200e-6) + QBJT_EB(Q1, "NPN") + QBJT_EB(Q2, "NPN") + QBJT_EB(Q3, "PNP") + QBJT_EB(Q4, "PNP") + QBJT_EB(Q5, "NPN") + QBJT_EB(Q6, "NPN") + NET_C(Q3.E, Q5.B, I2.2) + NET_C(Q3.C, Q4.E, Q5.E, I1.1) + NET_C(Q5.C, I2.1) + NET_C(Q1.B, Q6.C, Q6.B) + NET_C(Q1.E, Q2.E, Q4.C, C1.2, I1.2, Q6.E) + NET_C(Q1.C, Q2.B) + NET_C(Q2.C, Q3.B, Q4.B, C1.1) +NETLIST_END() +#endif + +#if USE_LM3900_MODEL == 4 +static NETLIST_START(LM3900) + OPAMP(A, "OPAMP(TYPE=3 VLH=0.5 VLL=0.03 FPF=2k UGF=2.5M SLEW=1M RI=10M RO=100 DAB=0.0015)") + + DIODE(D1, "D(IS=6e-15 N=1)") + DIODE(D2, "D(IS=6e-15 N=1)") + CCCS(CS1, 1) // Current Mirror + + ALIAS(VCC, A.VCC) + ALIAS(GND, A.GND) + ALIAS(OUT, A.OUT) + + ALIAS(PLUS, CS1.IP) + NET_C(D1.A, CS1.IN) + NET_C(A.GND, D1.K) + + CS(CS_BIAS, 10e-6) + NET_C(A.VCC, CS_BIAS.P) + + ALIAS(MINUS, CS1.OP) + NET_C(CS1.ON, A.GND) + + CCVS(VS1, 200000) // current-to-voltage gain + NET_C(CS1.OP, VS1.IP) + NET_C(VS1.IN, CS_BIAS.N, D2.A) + NET_C(D2.K, A.GND) + NET_C(VS1.OP, A.MINUS) + NET_C(VS1.ON, A.PLUS, A.GND) +NETLIST_END() +#endif + +NETLIST_START(opamp_lib) + LOCAL_LIB_ENTRY(opamp_layout_4_4_11) + LOCAL_LIB_ENTRY(opamp_layout_2_8_4) + LOCAL_LIB_ENTRY(opamp_layout_2_13_9_4) + LOCAL_LIB_ENTRY(opamp_layout_1_7_4) + LOCAL_LIB_ENTRY(opamp_layout_1_8_5) + LOCAL_LIB_ENTRY(opamp_layout_1_11_6) + + // FIXME: JFET Opamp may need better model + // VLL and VHH for +-6V RI=10^12 (for numerical stability 10^9 is used below + // RO from data sheet + NET_MODEL("TL084 OPAMP(TYPE=3 VLH=0.75 VLL=0.75 FPF=10 UGF=3000k SLEW=13M RI=1000M RO=192 DAB=0.0014)") + + NET_MODEL("LM324 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") + NET_MODEL("LM358 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.001)") + NET_MODEL("MB3614 OPAMP(TYPE=3 VLH=1.4 VLL=0.02 FPF=3 UGF=1000k SLEW=0.6M RI=1000k RO=100 DAB=0.002)") + NET_MODEL("UA741 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=75 DAB=0.0017)") + NET_MODEL("LM747 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=50 DAB=0.0017)") + NET_MODEL("LM747A OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=1000k SLEW=0.7M RI=6000k RO=50 DAB=0.0015)") + // FIXME: LM748 values are calculated based on a documented schematic of the part and may be wrong. + // TI and Motorola Datasheets differ - below are Motorola values, SLEW is average of LH and HL + NET_MODEL("LM3900 OPAMP(TYPE=3 VLH=1.0 VLL=0.03 FPF=2k UGF=4M SLEW=10M RI=10M RO=2k DAB=0.0015)") + + NET_MODEL("AN6551 OPAMP(TYPE=3 VLH=1.0 VLL=0.03 FPF=20 UGF=2M SLEW=1M RI=10M RO=200 DAB=0.0015)") + + #if USE_LM3900_MODEL == 1 + NET_MODEL("LM3900_NPN1 NPN(IS=1E-14 BF=150 TF=1E-9 CJC=1E-12 CJE=1E-12 VAF=150 RB=100 RE=5 IKF=0.002)") + NET_MODEL("LM3900_PNP1 PNP(IS=1E-14 BF=40 TF=1E-7 CJC=1E-12 CJE=1E-12 VAF=150 RB=100 RE=5)") +#endif + LOCAL_LIB_ENTRY(MB3614_DIP) + LOCAL_LIB_ENTRY(MC3340_DIP) + LOCAL_LIB_ENTRY(TL081_DIP) + LOCAL_LIB_ENTRY(TL082_DIP) + LOCAL_LIB_ENTRY(TL084_DIP) + LOCAL_LIB_ENTRY(LM324_DIP) + LOCAL_LIB_ENTRY(LM358_DIP) + LOCAL_LIB_ENTRY(LM2902_DIP) + LOCAL_LIB_ENTRY(UA741_DIP8) + LOCAL_LIB_ENTRY(UA741_DIP10) + LOCAL_LIB_ENTRY(UA741_DIP14) + LOCAL_LIB_ENTRY(MC1558_DIP) + LOCAL_LIB_ENTRY(LM747_DIP) + LOCAL_LIB_ENTRY(LM747A_DIP) + LOCAL_LIB_ENTRY(LM3900) + LOCAL_LIB_ENTRY(AN6551_SIL) + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_opamp_lib.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,79 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#ifndef NLM_OPAMP_H_ +#define NLM_OPAMP_H_ + +/// +/// \file nlm_opamp.h +/// + +#include "netlist/nl_setup.h" + +#ifndef __PLIB_PREPROCESSOR__ + +/* ---------------------------------------------------------------------------- + * Netlist Macros + * ---------------------------------------------------------------------------*/ + +#if !NL_AUTO_DEVICES + +#define MB3614_DIP(name) \ + NET_REGISTER_DEV(MB3614_DIP, name) + +#define LM324_DIP(name) \ + NET_REGISTER_DEV(LM324_DIP, name) + +#define TL081_DIP(name) \ + NET_REGISTER_DEV(TL081_DIP, name) + +#define TL082_DIP(name) \ + NET_REGISTER_DEV(TL082_DIP, name) + +#define TL084_DIP(name) \ + NET_REGISTER_DEV(TL084_DIP, name) + +#define LM2902_DIP(name) \ + NET_REGISTER_DEV(LM2902_DIP, name) + +#define LM358_DIP(name) \ + NET_REGISTER_DEV(LM358_DIP, name) + +#define LM3900(name) \ + NET_REGISTER_DEV(LM3900, name) + +#define UA741_DIP8(name) \ + NET_REGISTER_DEV(UA741_DIP8, name) + +#define UA741_DIP10(name) \ + NET_REGISTER_DEV(UA741_DIP10, name) + +#define UA741_DIP14(name) \ + NET_REGISTER_DEV(UA741_DIP14, name) + +#define MC1558_DIP(name) \ + NET_REGISTER_DEV(MC1558_DIP, name) + +#define LM747_DIP(name) \ + NET_REGISTER_DEV(LM747_DIP, name) + +#define LM747A_DIP(name) \ + NET_REGISTER_DEV(LM747A_DIP, name) + +#define MC3340_DIP(name) \ + NET_REGISTER_DEV(MC3340_DIP, name) + +#define AN6551_SIL(name) \ + NET_REGISTER_DEV(AN6551_SIL, name) + +#endif // NL_AUTO_DEVICES + +/* ---------------------------------------------------------------------------- + * External declarations + * ---------------------------------------------------------------------------*/ + +// moved to net_lib.h + +#endif // __PLIB_PREPROCESSOR__ + +#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_other.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_other.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_other.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_other.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,168 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#include "netlist/devices/net_lib.h" - -/* - * MC14584B: Hex Schmitt Trigger - * ON Semiconductor - * - * +--------------+ - * A1 |1 ++ 14| VCC - * Y1 |2 13| A6 - * A2 |3 12| Y6 - * Y2 |4 MC14584B 11| A5 - * A3 |5 10| Y5 - * Y3 |6 9| A4 - * GND |7 8| Y4 - * +--------------+ - * - */ - -static NETLIST_START(MC14584B_DIP) - MC14584B_GATE(A) - MC14584B_GATE(B) - MC14584B_GATE(C) - MC14584B_GATE(D) - MC14584B_GATE(E) - MC14584B_GATE(F) - - NET_C(A.VDD, B.VDD, C.VDD, D.VDD, E.VDD, F.VDD) - NET_C(A.VSS, B.VSS, C.VSS, D.VSS, E.VSS, F.VSS) - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VDD */ A.VDD, - A.Q, /* Y1 |2 13| A6 */ F.A, - B.A, /* A2 |3 12| Y6 */ F.Q, - B.Q, /* Y2 |4 MC14584B 11| A5 */ E.A, - C.A, /* A3 |5 10| Y5 */ E.Q, - C.Q, /* Y3 |6 9| A4 */ D.A, - A.VSS,/* VSS |7 8| Y4 */ D.Q - /* +--------------+ */ - ) -NETLIST_END() - -//- Identifier: NE566_DIP -//- Title: NE566 Voltage Controlled Oscillator -//- Description: The LM566CN is a general purpose voltage controlled oscillator -//- which may be used to generate square and triangula waves, the frequency -//- of which is a very linear function of a control voltage. The frequency -//- is also a function of an external resistor and capacitor. -//- -//- The LM566CN is specified for operation over the 0°C to a 70°C -//- temperature range. -//- -//- Applications -//- -//- - FM modulation -//- - Signal generation -//- - Function generation -//- - Frequency shift keying -//- - Tone generation -//- -//- Features -//- - Wide supply voltage range: 10V to 24V -//- - Very linear modulation characteristics -//- - High temperature stability -//- - Excellent supply voltage rejection -//- - 10 to 1 frequency range with fixed capacitor -//- - Frequency programmable by means of current, voltage, resistor or capacitor -//- -//. -//- Pinalias: GND,NC,SQUARE,TRIANGLE,MODULATION,R1,C1,VCC -//- Package: DIP -//- NamingConvention: Naming conventions follow National Semiconductor datasheet -//- Limitations: -//- This implementation is focused on performance. There may be edge cases -//- which lead to issues and ringing. -//. -//- Example: ne566.cpp,ne566_example -//- FunctionTable: -//- https://www.egr.msu.edu/eceshop/Parts_Inventory/datasheets/lm566.pdf -//- -//. - -static NETLIST_START(NE566_DIP) - - VCVS(VI, 1) - CCCS(CI1, -1) - CCCS(CI2, 1) - SYS_COMPD(COMP) - SYS_DSW2(SW) - VCVS(VO, 1) - DIODE(DC, "D") - DIODE(DM, "D") - RES(ROD, 5200) - RES(ROU, 200) - - PARAM(VO.RO, 50) - PARAM(COMP.MODEL, "FAMILY(TYPE=CUSTOM IVL=0.16 IVH=0.4 OVL=0.1 OVH=0.1 ORL=50 ORH=50)") - PARAM(SW.GOFF, 0) // This has to be zero to block current sources - - NET_C(CI2.IN, VI.OP) - NET_C(CI2.IP, CI1.IN) - NET_C(COMP.Q, SW.I) - NET_C(SW.1, CI1.OP) - NET_C(SW.3, CI2.OP) - NET_C(SW.2, VO.IP) - NET_C(VO.OP, COMP.IN) - - // Avoid singular Matrix due to G=0 switch - RES(RX1, 1e10) - RES(RX2, 1e10) - NET_C(RX1.1, SW.1) - NET_C(RX2.1, SW.3) - - NET_C(COMP.GND, RX1.2, RX2.2) - - // Block if VC < V+ - ~4 - VS(VM, 3) - PARAM(VM.RI, 10) - NET_C(VM.1, COMP.VCC) - NET_C(VM.2, DM.A) - NET_C(DM.K, VI.OP) - - // Block if VC > V+ - NET_C(COMP.GND, DC.A) - NET_C(SW.2, DC.K) - - RES(R1, 5000) - RES(R2, 1800) - RES(R3, 6000) - - // Square output wave - AFUNC(FO, 2, "min(A1-1,A0 + 5)") - NET_C(COMP.QQ, FO.A0) - NET_C(FO.Q, ROU.1) - NET_C(ROU.2, ROD.1) - - NET_C(COMP.GND, SW.GND, VI.ON, VI.IN, CI1.ON, CI2.ON, VO.IN, VO.ON, R2.2, ROD.2) - NET_C(COMP.VCC, SW.VCC, R1.2) - NET_C(COMP.IP, R1.1, R2.1, R3.1) - NET_C(COMP.Q, R3.2) - - ALIAS(1, VI.ON) // GND - ALIAS(3, ROD.1) // Square out - ALIAS(4, VO.OP) // Diag out - ALIAS(5, VI.IP) // VC - ALIAS(6, CI1.IP) // R1 - ALIAS(7, SW.2) // C1 - ALIAS(8, COMP.VCC) // V+ - - NET_C(COMP.VCC, FO.A1) - - -NETLIST_END() - -NETLIST_START(otheric_lib) - TRUTHTABLE_START(MC14584B_GATE, 1, 1, "") - TT_HEAD(" A | Q ") - TT_LINE(" 0 | 1 |100") - TT_LINE(" 1 | 0 |100") - // 2.1V negative going and 2.7V positive going at 5V - TT_FAMILY("FAMILY(TYPE=CMOS IVL=0.42 IVH=0.54 OVL=0.05 OVH=0.05 ORL=10.0 ORH=10.0)") - TRUTHTABLE_END() - - LOCAL_LIB_ENTRY(MC14584B_DIP) - LOCAL_LIB_ENTRY(NE566_DIP) -NETLIST_END() - diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_other.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_other.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_other.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_other.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#ifndef NLM_OTHER_H_ -#define NLM_OTHER_H_ - -/// -/// \file nlm_other.h -/// -/// -#include "netlist/nl_setup.h" - -#ifndef __PLIB_PREPROCESSOR__ - -/* ---------------------------------------------------------------------------- - * Netlist Macros - * ---------------------------------------------------------------------------*/ - -#if !NL_AUTO_DEVICES - -#define MC14584B_GATE(name) \ - NET_REGISTER_DEV(MC14584B_GATE, name) - -#define MC14584B_DIP(name) \ - NET_REGISTER_DEV(MC14584B_DIP, name) - -#define NE566_DIP(name) \ - NET_REGISTER_DEV(NE566_DIP, name) - -#endif - -/* ---------------------------------------------------------------------------- - * External declarations - * ---------------------------------------------------------------------------*/ - -NETLIST_EXTERNAL(otheric_lib) - -#endif - -#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,168 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#include "netlist/devices/net_lib.h" + +/* + * MC14584B: Hex Schmitt Trigger + * ON Semiconductor + * + * +--------------+ + * A1 |1 ++ 14| VCC + * Y1 |2 13| A6 + * A2 |3 12| Y6 + * Y2 |4 MC14584B 11| A5 + * A3 |5 10| Y5 + * Y3 |6 9| A4 + * GND |7 8| Y4 + * +--------------+ + * + */ + +static NETLIST_START(MC14584B_DIP) + MC14584B_GATE(A) + MC14584B_GATE(B) + MC14584B_GATE(C) + MC14584B_GATE(D) + MC14584B_GATE(E) + MC14584B_GATE(F) + + NET_C(A.VDD, B.VDD, C.VDD, D.VDD, E.VDD, F.VDD) + NET_C(A.VSS, B.VSS, C.VSS, D.VSS, E.VSS, F.VSS) + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VDD */ A.VDD, + A.Q, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Q, + B.Q, /* Y2 |4 MC14584B 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Q, + C.Q, /* Y3 |6 9| A4 */ D.A, + A.VSS,/* VSS |7 8| Y4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: NE566_DIP +//- Title: NE566 Voltage Controlled Oscillator +//- Description: The LM566CN is a general purpose voltage controlled oscillator +//- which may be used to generate square and triangula waves, the frequency +//- of which is a very linear function of a control voltage. The frequency +//- is also a function of an external resistor and capacitor. +//- +//- The LM566CN is specified for operation over the 0°C to a 70°C +//- temperature range. +//- +//- Applications +//- +//- - FM modulation +//- - Signal generation +//- - Function generation +//- - Frequency shift keying +//- - Tone generation +//- +//- Features +//- - Wide supply voltage range: 10V to 24V +//- - Very linear modulation characteristics +//- - High temperature stability +//- - Excellent supply voltage rejection +//- - 10 to 1 frequency range with fixed capacitor +//- - Frequency programmable by means of current, voltage, resistor or capacitor +//- +//. +//- Pinalias: GND,NC,SQUARE,TRIANGLE,MODULATION,R1,C1,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: +//- This implementation is focused on performance. There may be edge cases +//- which lead to issues and ringing. +//. +//- Example: ne566.cpp,ne566_example +//- FunctionTable: +//- https://www.egr.msu.edu/eceshop/Parts_Inventory/datasheets/lm566.pdf +//- +//. + +static NETLIST_START(NE566_DIP) + + VCVS(VI, 1) + CCCS(CI1, -1) + CCCS(CI2, 1) + SYS_COMPD(COMP) + SYS_DSW2(SW) + VCVS(VO, 1) + DIODE(DC, "D") + DIODE(DM, "D") + RES(ROD, 5200) + RES(ROU, 200) + + PARAM(VO.RO, 50) + PARAM(COMP.MODEL, "FAMILY(TYPE=CUSTOM IVL=0.16 IVH=0.4 OVL=0.1 OVH=0.1 ORL=50 ORH=50)") + PARAM(SW.GOFF, 0) // This has to be zero to block current sources + + NET_C(CI2.IN, VI.OP) + NET_C(CI2.IP, CI1.IN) + NET_C(COMP.Q, SW.I) + NET_C(SW.1, CI1.OP) + NET_C(SW.3, CI2.OP) + NET_C(SW.2, VO.IP) + NET_C(VO.OP, COMP.IN) + + // Avoid singular Matrix due to G=0 switch + RES(RX1, 1e10) + RES(RX2, 1e10) + NET_C(RX1.1, SW.1) + NET_C(RX2.1, SW.3) + + NET_C(COMP.GND, RX1.2, RX2.2) + + // Block if VC < V+ - ~4 + VS(VM, 3) + PARAM(VM.RI, 10) + NET_C(VM.1, COMP.VCC) + NET_C(VM.2, DM.A) + NET_C(DM.K, VI.OP) + + // Block if VC > V+ + NET_C(COMP.GND, DC.A) + NET_C(SW.2, DC.K) + + RES(R1, 5000) + RES(R2, 1800) + RES(R3, 6000) + + // Square output wave + AFUNC(FO, 2, "min(A1-1,A0 + 5)") + NET_C(COMP.QQ, FO.A0) + NET_C(FO.Q, ROU.1) + NET_C(ROU.2, ROD.1) + + NET_C(COMP.GND, SW.GND, VI.ON, VI.IN, CI1.ON, CI2.ON, VO.IN, VO.ON, R2.2, ROD.2) + NET_C(COMP.VCC, SW.VCC, R1.2) + NET_C(COMP.IP, R1.1, R2.1, R3.1) + NET_C(COMP.Q, R3.2) + + ALIAS(1, VI.ON) // GND + ALIAS(3, ROD.1) // Square out + ALIAS(4, VO.OP) // Diag out + ALIAS(5, VI.IP) // VC + ALIAS(6, CI1.IP) // R1 + ALIAS(7, SW.2) // C1 + ALIAS(8, COMP.VCC) // V+ + + NET_C(COMP.VCC, FO.A1) + + +NETLIST_END() + +NETLIST_START(otheric_lib) + TRUTHTABLE_START(MC14584B_GATE, 1, 1, "") + TT_HEAD(" A | Q ") + TT_LINE(" 0 | 1 |100") + TT_LINE(" 1 | 0 |100") + // 2.1V negative going and 2.7V positive going at 5V + TT_FAMILY("FAMILY(TYPE=CMOS IVL=0.42 IVH=0.54 OVL=0.05 OVH=0.05 ORL=10.0 ORH=10.0)") + TRUTHTABLE_END() + + LOCAL_LIB_ENTRY(MC14584B_DIP) + LOCAL_LIB_ENTRY(NE566_DIP) +NETLIST_END() + diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_otheric_lib.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,40 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#ifndef NLM_OTHER_H_ +#define NLM_OTHER_H_ + +/// +/// \file nlm_other.h +/// +/// +#include "netlist/nl_setup.h" + +#ifndef __PLIB_PREPROCESSOR__ + +/* ---------------------------------------------------------------------------- + * Netlist Macros + * ---------------------------------------------------------------------------*/ + +#if !NL_AUTO_DEVICES + +#define MC14584B_GATE(name) \ + NET_REGISTER_DEV(MC14584B_GATE, name) + +#define MC14584B_DIP(name) \ + NET_REGISTER_DEV(MC14584B_DIP, name) + +#define NE566_DIP(name) \ + NET_REGISTER_DEV(NE566_DIP, name) + +#endif + +/* ---------------------------------------------------------------------------- + * External declarations + * ---------------------------------------------------------------------------*/ + +// moved to net_lib.h + +#endif + +#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,275 +0,0 @@ -// license:CC0 -// copyright-holders:Couriersud - -#include "netlist/devices/net_lib.h" - - -//- Identifier: PROM_82S126_DIP -//- Title: 82S126 1K-bit TTL bipolar PROM -//- Description: The 82S126 and 82S129 are field programmable, which means that -//- custom patterns are immediately available by following the Signetics -//- Generic I fusing procedure. The 82S126 and 82S129 devices are supplied -//- with all outputs at logical Low. Outputs are programmed to a logic High -//- level at any specified address by fusing the Ni-Cr link matrix. -//- -//- These devices include on-chip decoding and 2 Chip Enable inputs for ease -//- of memory expansion. They feature either open collector or 3-State outputs -//- for optimization of word expansion in bused organizations. -//- -//. -//- Pinalias: A6,A5,A4,A3,A0,A1,A2,GND,O4,O3,O2,O1,CE1Q,CE2Q,A7,VCC -//- Package: DIP -//- Param: ROM -//- The name of the source to load the rom content from -//- Param: FORCE_TRISTATE_LOGIC -//- Set this parameter to 1 force tristate outputs into logic mode. -//- This should be done only if the device enable inputs are connected -//- in a way which always enables the device. -//- Param: MODEL -//- Overwrite the default model of the device. Use with care. -//- NamingConvention: Naming conventions follow Philips Components-Signetics datasheet -//- Limitations: -//- Currently OC is not supported. -//- -//- Example: 82S126.cpp,82S126_example -//- FunctionTable: -//- http://pdf.datasheetcatalog.com/datasheet/philips/82S129.pdf -//- - -static NETLIST_START(PROM_82S126_DIP) - - PROM_82S126(A) - - DEFPARAM(ROM, "unknown") - DEFPARAM(FORCE_TRISTATE_LOGIC, 0) - DEFPARAM(MODEL, "$(@.A.MODEL)") - PARAM(A.ROM, "$(@.ROM)") - PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A.MODEL, "$(@.MODEL)") - ALIAS(1, A.A6) - ALIAS(2, A.A5) - ALIAS(3, A.A4) - ALIAS(4, A.A3) - ALIAS(5, A.A0) - ALIAS(6, A.A1) - ALIAS(7, A.A2) - ALIAS(8, A.GND) - ALIAS(9, A.O4) - ALIAS(10, A.O3) - ALIAS(11, A.O2) - ALIAS(12, A.O1) - ALIAS(13, A.CE1Q) - ALIAS(14, A.CE2Q) - ALIAS(15, A.A7) - ALIAS(16, A.VCC) -NETLIST_END() - -//- Identifier: PROM_74S287_DIP -//- Title: 74S287 (256 x 4) 1024-Bit TTL PROM -//- Description: This Schottky memory is organized in the popular 256 words by -//- 4 bits configuration. Memory enable inputs are provided to control the -//- output states. When the device is enabled, the outputs represent the -//- contents of the selected word. When disabled, the 4 outputs go to the -//- or high impedance state. -//- -//- PROMs are shipped from the factory with lows in all locations. A high -//- may be programmed into any selected location by following the -//- programming instructions. -//- -//. -//- Pinalias: A6,A5,A4,A3,A0,A1,A2,GND,O3,O2,O1,O0,CE1Q,CE2Q,A7,VCC -//- Package: DIP -//- Param: ROM -//- The name of the source to load the rom content from -//- Param: FORCE_TRISTATE_LOGIC -//- Set this parameter to 1 force tristate outputs into logic mode. -//- This should be done only if the device enable inputs are connected -//- in a way which always enables the device. -//- Param: MODEL -//- Overwrite the default model of the device. Use with care. -//- NamingConvention: Naming conventions follow National Semiconductor datasheet -//- Limitations: -//- None. -//- -//- Example: 74S287.cpp,74S287_example -//- FunctionTable: -//- http://pdf.datasheetcatalog.com/datasheet_pdf/national-semiconductor/DM54S287AJ_to_DM74S287V.pdf -//- - -static NETLIST_START(PROM_74S287_DIP) - - PROM_74S287(A) - - DEFPARAM(ROM, "unknown") - DEFPARAM(FORCE_TRISTATE_LOGIC, 0) - DEFPARAM(MODEL, "$(@.A.MODEL)") - PARAM(A.ROM, "$(@.ROM)") - PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A.MODEL, "$(@.MODEL)") - ALIAS(1, A.A6) - ALIAS(2, A.A5) - ALIAS(3, A.A4) - ALIAS(4, A.A3) - ALIAS(5, A.A0) - ALIAS(6, A.A1) - ALIAS(7, A.A2) - ALIAS(8, A.GND) - ALIAS(9, A.O3) - ALIAS(10, A.O2) - ALIAS(11, A.O1) - ALIAS(12, A.O0) - ALIAS(13, A.CE1Q) - ALIAS(14, A.CE2Q) - ALIAS(15, A.A7) - ALIAS(16, A.VCC) -NETLIST_END() - -//- Identifier: PROM_82S123_DIP -//- Title: 82S123 256 bit TTL bipolar PROM -//- Description: The 82S123 and 82S23 are field programmable, which means that -//- custom patterns are immediately available by following the Signetics -//- Generic I fusing procedure. The 82S123 and 82S23 devices are supplied -//- with all outputs at logical Low. Outputs are programmed to a logic High -//- level at any specified address by fusing the Ni-Cr link matrix. -//- -//- These devices include on-chip decoding and 1 Chip Enable inputs for -//- memory expansion. They feature either open collector or 3-State outputs -//- for optimization of word expansion in bused organizations. -//- -//- -//- Pinalias: O1,O2,O3,O4,O5,O6,O7,GND,O8,A0,A1,A2,A3,A4,CEQ,VCC -//- Package: DIP -//- Param: ROM -//- The name of the source to load the rom content from -//- Param: FORCE_TRISTATE_LOGIC -//- Set this parameter to 1 force tristate outputs into logic mode. -//- This should be done only if the device enable inputs are connected -//- in a way which always enables the device. -//- Param: MODEL -//- Overwrite the default model of the device. Use with care. -//- NamingConvention: Naming conventions follow Philips Components-Signetics datasheet -//- Limitations: -//- Currently OC is not supported. -//- -//- Example: 82S123.cpp,82S123_example -//- FunctionTable: -//- http://pdf.datasheetcatalog.com/datasheet/philips/82S123.pdf -//- - -static NETLIST_START(PROM_82S123_DIP) - - PROM_82S123(A) - - DEFPARAM(ROM, "unknown") - DEFPARAM(FORCE_TRISTATE_LOGIC, 0) - DEFPARAM(MODEL, "$(@.A.MODEL)") - PARAM(A.ROM, "$(@.ROM)") - PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A.MODEL, "$(@.MODEL)") - ALIAS(1, A.O0) - ALIAS(2, A.O1) - ALIAS(3, A.O2) - ALIAS(4, A.O3) - ALIAS(5, A.O4) - ALIAS(6, A.O5) - ALIAS(7, A.O6) - ALIAS(8, A.GND) - - ALIAS(9, A.O7) - ALIAS(10, A.A0) - ALIAS(11, A.A1) - ALIAS(12, A.A2) - ALIAS(13, A.A3) - ALIAS(14, A.A4) - ALIAS(15, A.CEQ) - ALIAS(16, A.VCC) -NETLIST_END() - -//- Identifier: EPROM_2716_DIP -//- Title: 2716 16K (2K x 8) UV ERASABLE PROM -//- Description: The Intel®2716 is a 16,384-bit ultraviolet erasable and -//- electrically programmable read-only memory (EPROM). The 2716 operates -//- from a single 5-volt power supply, has a static standby mode, and -//- features fast single address location programming. It makes designing -//- with EPROMs faster, easier and more economical. -//- -//- The 2716, with its single 5-volt supply and with an access time up -//- to 350 ns, is ideal for use with the newer high performance -//- +5V microprocessors such as Intel's 8085 and 8086. A selected -//- 2716-5 and 2716-6 is available for slower speed applications. -//- The 2716 is also the first EPROM with a static standby mode which reduces -//- the power dissipation without increasing access time. The maximum -//- active power dissipation is 525 mW while the maximum standby power -//- dissipation is only 132 mW, a 75% savings. -//- -//- The 2716 has the simplest and fastest method yet devised for -//- programming EPROMs - single pulse TTL level programming. No need for high -//- voltage pulsing because all programming controls are handled by -//- TTL signals. Program any location at any time-either individually, -//- sequentially or at random, with the 2716's single address location -//- programming. Total programming time for all 16,384 bits is only 100 seconds -//- -//- Pinalias: A7,A6,A6,A4,A4,A2,A1,A0,O0,O1,O2,GND,O3,O4,O5,O6,O7,CE1Q/CE,A10,CE2Q/OE,VPP,A9,A8,VCC -//- Package: DIP -//- Param: ROM -//- The name of the source to load the rom content from -//- Param: FORCE_TRISTATE_LOGIC -//- Set this parameter to 1 force tristate outputs into logic mode. -//- This should be done only if the device enable inputs are connected -//- in a way which always enables the device. -//- Param: MODEL -//- Overwrite the default model of the device. Use with care. -//- NamingConvention: Naming conventions follow Intel datasheet -//- Limitations: -//- Currently OC is not supported. -//- -//- Example: 2716.cpp,2716_example -//- FunctionTable: -//- http://pdf.datasheetcatalog.com/datasheets/400/500340_DS.pdf -//- -static NETLIST_START(EPROM_2716_DIP) - - EPROM_2716(A) - - DEFPARAM(ROM, "unknown") - DEFPARAM(FORCE_TRISTATE_LOGIC, 0) - DEFPARAM(MODEL, "$(@.A.MODEL)") - PARAM(A.ROM, "$(@.ROM)") - PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A.MODEL, "$(@.MODEL)") - ALIAS(1, A.A7) - ALIAS(2, A.A6) - ALIAS(3, A.A5) - ALIAS(4, A.A4) - ALIAS(5, A.A3) - ALIAS(6, A.A2) - ALIAS(7, A.A1) - ALIAS(8, A.A0) - ALIAS(9, A.D0) - ALIAS(10, A.D1) - ALIAS(11, A.D2) - ALIAS(12, A.GND) - - ALIAS(13, A.D3) - ALIAS(14, A.D4) - ALIAS(15, A.D5) - ALIAS(16, A.D6) - ALIAS(17, A.D7) - ALIAS(18, A.CE1Q) // CEQ - ALIAS(19, A.A10) - ALIAS(20, A.CE2Q) // OEQ - ALIAS(22, A.A9) - ALIAS(23, A.A8) - ALIAS(24, A.VCC) -NETLIST_END() - - -NETLIST_START(ROMS_lib) - - LOCAL_LIB_ENTRY(PROM_82S123_DIP) - LOCAL_LIB_ENTRY(PROM_82S126_DIP) - LOCAL_LIB_ENTRY(PROM_74S287_DIP) - LOCAL_LIB_ENTRY(EPROM_2716_DIP) - - NETLIST_END() - diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#ifndef NLM_ROMS_H_ -#define NLM_ROMS_H_ - -/// -/// \file nlm_roms.h -/// - -#include "netlist/nl_setup.h" - -#ifndef __PLIB_PREPROCESSOR__ - -/* ---------------------------------------------------------------------------- - * Netlist Macros - * ---------------------------------------------------------------------------*/ - -#if !NL_AUTO_DEVICES - -#define PROM_82S126_DIP(name) \ - NET_REGISTER_DEV(PROM_82S126_DIP, name) - -#define PROM_82S123_DIP(name) \ - NET_REGISTER_DEV(PROM_82S123_DIP, name) - -#define PROM_74S287_DIP(name) \ - NET_REGISTER_DEV(PROM_74S287_DIP, name) - -#define EPROM_2716_DIP(name) \ - NET_REGISTER_DEV(EPROM_2716_DIP, name) - -#endif // NL_AUTO_DEVICES - - -/* ---------------------------------------------------------------------------- - * External declarations - * ---------------------------------------------------------------------------*/ - -NETLIST_EXTERNAL(ROMS_lib) - -#endif // __PLIB_PREPROCESSOR__ - -#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,447 @@ +// license:CC0 +// copyright-holders:Couriersud + +#include "netlist/devices/net_lib.h" + + +//- Identifier: PROM_82S126_DIP +//- Title: 82S126 1K-bit TTL bipolar PROM +//- Description: The 82S126 and 82S129 are field programmable, which means that +//- custom patterns are immediately available by following the Signetics +//- Generic I fusing procedure. The 82S126 and 82S129 devices are supplied +//- with all outputs at logical Low. Outputs are programmed to a logic High +//- level at any specified address by fusing the Ni-Cr link matrix. +//- +//- These devices include on-chip decoding and 2 Chip Enable inputs for ease +//- of memory expansion. They feature either open collector or 3-State outputs +//- for optimization of word expansion in bused organizations. +//- +//. +//- Pinalias: A6,A5,A4,A3,A0,A1,A2,GND,O4,O3,O2,O1,CE1Q,CE2Q,A7,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow Philips Components-Signetics datasheet +//- Limitations: +//- Currently OC is not supported. +//- +//- Example: 82S126.cpp,82S126_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/philips/82S129.pdf +//- + +static NETLIST_START(PROM_82S126_DIP) + + PROM_82S126(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.A6) + ALIAS(2, A.A5) + ALIAS(3, A.A4) + ALIAS(4, A.A3) + ALIAS(5, A.A0) + ALIAS(6, A.A1) + ALIAS(7, A.A2) + ALIAS(8, A.GND) + ALIAS(9, A.O4) + ALIAS(10, A.O3) + ALIAS(11, A.O2) + ALIAS(12, A.O1) + ALIAS(13, A.CE1Q) + ALIAS(14, A.CE2Q) + ALIAS(15, A.A7) + ALIAS(16, A.VCC) +NETLIST_END() + +//- Identifier: PROM_74S287_DIP +//- Title: 74S287 (256 x 4) 1024-Bit TTL PROM +//- Description: This Schottky memory is organized in the popular 256 words by +//- 4 bits configuration. Memory enable inputs are provided to control the +//- output states. When the device is enabled, the outputs represent the +//- contents of the selected word. When disabled, the 4 outputs go to the +//- or high impedance state. +//- +//- PROMs are shipped from the factory with lows in all locations. A high +//- may be programmed into any selected location by following the +//- programming instructions. +//- +//. +//- Pinalias: A6,A5,A4,A3,A0,A1,A2,GND,O3,O2,O1,O0,CE1Q,CE2Q,A7,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: +//- None. +//- +//- Example: 74S287.cpp,74S287_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet_pdf/national-semiconductor/DM54S287AJ_to_DM74S287V.pdf +//- + +static NETLIST_START(PROM_74S287_DIP) + + PROM_74S287(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.A6) + ALIAS(2, A.A5) + ALIAS(3, A.A4) + ALIAS(4, A.A3) + ALIAS(5, A.A0) + ALIAS(6, A.A1) + ALIAS(7, A.A2) + ALIAS(8, A.GND) + ALIAS(9, A.O3) + ALIAS(10, A.O2) + ALIAS(11, A.O1) + ALIAS(12, A.O0) + ALIAS(13, A.CE1Q) + ALIAS(14, A.CE2Q) + ALIAS(15, A.A7) + ALIAS(16, A.VCC) +NETLIST_END() + +//- Identifier: PROM_82S123_DIP +//- Title: 82S123 256 bit TTL bipolar PROM +//- Description: The 82S123 and 82S23 are field programmable, which means that +//- custom patterns are immediately available by following the Signetics +//- Generic I fusing procedure. The 82S123 and 82S23 devices are supplied +//- with all outputs at logical Low. Outputs are programmed to a logic High +//- level at any specified address by fusing the Ni-Cr link matrix. +//- +//- These devices include on-chip decoding and 1 Chip Enable inputs for +//- memory expansion. They feature either open collector or 3-State outputs +//- for optimization of word expansion in bused organizations. +//- +//- +//- Pinalias: O1,O2,O3,O4,O5,O6,O7,GND,O8,A0,A1,A2,A3,A4,CEQ,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow Philips Components-Signetics datasheet +//- Limitations: +//- Currently OC is not supported. +//- +//- Example: 82S123.cpp,82S123_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/philips/82S123.pdf +//- + +static NETLIST_START(PROM_82S123_DIP) + + PROM_82S123(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.O0) + ALIAS(2, A.O1) + ALIAS(3, A.O2) + ALIAS(4, A.O3) + ALIAS(5, A.O4) + ALIAS(6, A.O5) + ALIAS(7, A.O6) + ALIAS(8, A.GND) + + ALIAS(9, A.O7) + ALIAS(10, A.A0) + ALIAS(11, A.A1) + ALIAS(12, A.A2) + ALIAS(13, A.A3) + ALIAS(14, A.A4) + ALIAS(15, A.CEQ) + ALIAS(16, A.VCC) +NETLIST_END() + +/* + * nld_82S16.h + * + * DM82S16: 256 Bit bipolar ram + * + * +--------------+ + * A1 |1 ++ 16| VCC + * A0 |2 15| A2 + * CE1Q |3 14| A3 + * CE2Q |4 82S16 13| DIN + * CE3Q |5 12| WEQ + * DOUTQ |6 11| A7 + * A4 |7 10| A6 + * GND |8 9| A5 + * +--------------+ + * + * + * Naming conventions follow Signetics datasheet + */ + + +//- Identifier: EPROM_2716_DIP +//- Title: 2716 16K (2K x 8) UV ERASABLE PROM +//- Description: The Intel®2716 is a 16,384-bit ultraviolet erasable and +//- electrically programmable read-only memory (EPROM). The 2716 operates +//- from a single 5-volt power supply, has a static standby mode, and +//- features fast single address location programming. It makes designing +//- with EPROMs faster, easier and more economical. +//- +//- The 2716, with its single 5-volt supply and with an access time up +//- to 350 ns, is ideal for use with the newer high performance +//- +5V microprocessors such as Intel's 8085 and 8086. A selected +//- 2716-5 and 2716-6 is available for slower speed applications. +//- The 2716 is also the first EPROM with a static standby mode which reduces +//- the power dissipation without increasing access time. The maximum +//- active power dissipation is 525 mW while the maximum standby power +//- dissipation is only 132 mW, a 75% savings. +//- +//- The 2716 has the simplest and fastest method yet devised for +//- programming EPROMs - single pulse TTL level programming. No need for high +//- voltage pulsing because all programming controls are handled by +//- TTL signals. Program any location at any time-either individually, +//- sequentially or at random, with the 2716's single address location +//- programming. Total programming time for all 16,384 bits is only 100 seconds +//- +//- Pinalias: A7,A6,A6,A4,A4,A2,A1,A0,O0,O1,O2,GND,O3,O4,O5,O6,O7,CE1Q/CE,A10,CE2Q/OE,VPP,A9,A8,VCC +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- Param: MODEL +//- Overwrite the default model of the device. Use with care. +//- NamingConvention: Naming conventions follow Intel datasheet +//- Limitations: +//- Currently OC is not supported. +//- +//- Example: 2716.cpp,2716_example +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/400/500340_DS.pdf +//- +static NETLIST_START(EPROM_2716_DIP) + + EPROM_2716(A) + + DEFPARAM(ROM, "unknown") + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + DEFPARAM(MODEL, "$(@.A.MODEL)") + PARAM(A.ROM, "$(@.ROM)") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(A.MODEL, "$(@.MODEL)") + ALIAS(1, A.A7) + ALIAS(2, A.A6) + ALIAS(3, A.A5) + ALIAS(4, A.A4) + ALIAS(5, A.A3) + ALIAS(6, A.A2) + ALIAS(7, A.A1) + ALIAS(8, A.A0) + ALIAS(9, A.D0) + ALIAS(10, A.D1) + ALIAS(11, A.D2) + ALIAS(12, A.GND) + + ALIAS(13, A.D3) + ALIAS(14, A.D4) + ALIAS(15, A.D5) + ALIAS(16, A.D6) + ALIAS(17, A.D7) + ALIAS(18, A.CE1Q) // CEQ + ALIAS(19, A.A10) + ALIAS(20, A.CE2Q) // OEQ + ALIAS(22, A.A9) + ALIAS(23, A.A8) + ALIAS(24, A.VCC) +NETLIST_END() + +/* DM82S16: 256 Bit bipolar ram + * + * +--------------+ + * A1 |1 ++ 16| VCC + * A0 |2 15| A2 + * CE1Q |3 14| A3 + * CE2Q |4 82S16 13| DIN + * CE3Q |5 12| WEQ + * DOUTQ |6 11| A7 + * A4 |7 10| A6 + * GND |8 9| A5 + * +--------------+ + * + * Naming conventions follow Signetics datasheet + */ + +static NETLIST_START(TTL_82S16_DIP) + TTL_82S16(A) + + DIPPINS( /* +--------------+ */ + A.A1, /* A1 |1 ++ 16| VCC */ A.VCC, + A.A0, /* A0 |2 15| A2 */ A.A2, + A.CE1Q, /* CE1Q |3 14| A3 */ A.A3, + A.CE2Q, /* CE2Q |4 82S16 13| DIN */ A.DIN, + A.CE3Q, /* CE3Q |5 12| WEQ */ A.WEQ, + A.DOUTQ, /* DOUTQ |6 11| A7 */ A.A7, + A.A4, /* A4 |7 10| A6 */ A.A6, + A.GND, /* GND |8 9| A5 */ A.A5 + /* +--------------+ */ + ) +NETLIST_END() + +/* 82S115: 4K-bit TTL bipolar PROM (512 x 8) + * + * +--------------+ + * A3 |1 ++ 24| VCC + * A4 |2 23| A2 + * A5 |3 22| A1 + * A6 |4 82S115 21| A0 + * A7 |5 20| CE1Q + * A8 |6 19| CE2 + * O1 |7 18| STROBE + * O2 |8 17| O8 + * O3 |9 16| O7 + * O4 |10 15| O6 + * FE2 |11 14| O5 + * GND |12 13| FE1 + * +--------------+ + */ + +static NETLIST_START(PROM_82S115_DIP) + PROM_82S115(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.A3, /* A3 |1 ++ 24| VCC */ A.VCC, + A.A4, /* A4 |2 23| A2 */ A.A2, + A.A5, /* A5 |3 22| A1 */ A.A1, + A.A6, /* A6 |4 82S115 21| A0 */ A.A0, + A.A7, /* A7 |5 20| CE1Q */ A.CE1Q, + A.A8, /* A8 |6 19| CE2 */ A.CE2, + A.O1, /* O1 |7 18| STROBE */ A.STROBE, + A.O2, /* O2 |8 17| O8 */ A.O8, + A.O3, /* O3 |9 16| O7 */ A.O7, + A.O4, /* O4 |10 15| O6 */ A.O6, + NC.I, /* FE2 |11 14| O5 */ A.O5, + A.GND, /* GND |12 13| FE1 */ NC.I + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: PROM_MK28000_DIP +//- Title: MK28000 (2048 x 8 or 4096 x 4) 16384-Bit TTL PROM +//- Description: This dynamic ROM is organized internally as 2048 x 8 bits, +//- but has separate enables for the upper and lower nybbles, permitting +//- use as 4096 x 4 as well. +//. +//- Pinalias: VCC,A1,A2,A3,A4,A5,A6,A10,GND,A9,A8,A7,ARQ,OE2,A11,O8,O7,O6,O5,O4,O3,O2,O1,OE1 +//- Package: DIP +//- Param: ROM +//- The name of the source to load the rom content from +//- NamingConvention: Naming conventions follow Mostek datasheet +//- Limitations: +//- None. + +static NETLIST_START(PROM_MK28000_DIP) + + PROM_MK28000(A) + + DEFPARAM(ROM, "unknown") + PARAM(A.ROM, "$(@.ROM)") + ALIAS(1, A.VCC) + ALIAS(2, A.A1) + ALIAS(3, A.A2) + ALIAS(4, A.A3) + ALIAS(5, A.A4) + ALIAS(6, A.A5) + ALIAS(7, A.A6) + ALIAS(8, A.A10) + ALIAS(9, A.GND) + ALIAS(10, A.A9) + ALIAS(11, A.A8) + ALIAS(12, A.A7) + ALIAS(13, A.ARQ) + ALIAS(14, A.OE2) + ALIAS(15, A.A11) + ALIAS(16, A.O8) + ALIAS(17, A.O7) + ALIAS(18, A.O6) + ALIAS(19, A.O5) + ALIAS(20, A.O4) + ALIAS(21, A.O3) + ALIAS(22, A.O2) + ALIAS(23, A.O1) + ALIAS(24, A.OE1) +NETLIST_END() + +/* 2102: 1024 x 1-bit Static RAM + * + * +--------------+ + * A6 |1 ++ 16| A7 + * A5 |2 15| A8 + * RWQ |3 14| A9 + * A1 |4 82S16 13| CEQ + * A2 |5 12| DO + * A3 |6 11| DI + * A4 |7 10| VCC + * A0 |8 9| GND + * +--------------+ + */ + + static NETLIST_START(RAM_2102A_DIP) + RAM_2102A(A) + + DIPPINS( /* +--------------+ */ + A.A6, /* A6 |1 ++ 16| A7 */ A.A7, + A.A5, /* A5 |2 15| A8 */ A.A8, + A.RWQ, /* RWQ |3 14| A9 */ A.A9, + A.A1, /* A1 |4 82S16 13| CEQ */ A.CEQ, + A.A2, /* A2 |5 12| DO */ A.DO, + A.A3, /* A3 |6 11| DI */ A.DI, + A.A4, /* A4 |7 10| VCC */ A.VCC, + A.A0, /* A0 |8 9| GND */ A.GND + /* +--------------+ */ + ) +NETLIST_END() + + +NETLIST_START(roms_lib) + + LOCAL_LIB_ENTRY(PROM_82S123_DIP) + LOCAL_LIB_ENTRY(PROM_82S126_DIP) + LOCAL_LIB_ENTRY(PROM_74S287_DIP) + LOCAL_LIB_ENTRY(EPROM_2716_DIP) + LOCAL_LIB_ENTRY(TTL_82S16_DIP) + LOCAL_LIB_ENTRY(PROM_82S115_DIP) + LOCAL_LIB_ENTRY(PROM_MK28000_DIP) + LOCAL_LIB_ENTRY(RAM_2102A_DIP) + + NETLIST_END() + diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_roms_lib.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,57 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#ifndef NLM_ROMS_H_ +#define NLM_ROMS_H_ + +/// +/// \file nlm_roms.h +/// + +#include "netlist/nl_setup.h" + +#ifndef __PLIB_PREPROCESSOR__ + +/* ---------------------------------------------------------------------------- + * Netlist Macros + * ---------------------------------------------------------------------------*/ + +#if !NL_AUTO_DEVICES + +#define PROM_82S115_DIP(name) \ + NET_REGISTER_DEV(PROM_82S115_DIP, name) + +#define PROM_82S126_DIP(name) \ + NET_REGISTER_DEV(PROM_82S126_DIP, name) + +#define PROM_82S123_DIP(name) \ + NET_REGISTER_DEV(PROM_82S123_DIP, name) + +#define PROM_74S287_DIP(name) \ + NET_REGISTER_DEV(PROM_74S287_DIP, name) + +#define PROM_MK28000_DIP(name) \ + NET_REGISTER_DEV(PROM_MK28000_DIP, name) + +#define EPROM_2716_DIP(name) \ + NET_REGISTER_DEV(EPROM_2716_DIP, name) + +// usage : TTL_82S16_DIP(name) +#define TTL_82S16_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_82S16_DIP, __VA_ARGS__) + +#define RAM_2102A_DIP(name) \ + NET_REGISTER_DEV(RAM_2102A_DIP, name) + +#endif // NL_AUTO_DEVICES + + +/* ---------------------------------------------------------------------------- + * External declarations + * ---------------------------------------------------------------------------*/ + +// moved to net_lib.h + +#endif // __PLIB_PREPROCESSOR__ + +#endif diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,1917 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#include "netlist/devices/net_lib.h" - -/* - * DM7400: Quad 2-Input NAND Gates - * - * _ - * Y = AB - * +---+---++---+ - * | A | B || Y | - * +===+===++===+ - * | 0 | 0 || 1 | - * | 0 | 1 || 1 | - * | 1 | 0 || 1 | - * | 1 | 1 || 0 | - * +---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7400_DIP) - TTL_7400_GATE(A) - TTL_7400_GATE(B) - TTL_7400_GATE(C) - TTL_7400_GATE(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| B4 */ D.B, - A.Q, /* Y1 |3 12| A4 */ D.A, - B.A, /* A2 |4 7400 11| Y4 */ D.Q, - B.B, /* B2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7402: Quad 2-Input NOR Gates - * - * Y = A+B - * +---+---++---+ - * | A | B || Y | - * +===+===++===+ - * | 0 | 0 || 1 | - * | 0 | 1 || 0 | - * | 1 | 0 || 0 | - * | 1 | 1 || 0 | - * +---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7402_DIP) - TTL_7402_GATE(A) - TTL_7402_GATE(B) - TTL_7402_GATE(C) - TTL_7402_GATE(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.Q, /* Y1 |1 ++ 14| VCC */ A.VCC, - A.A, /* A1 |2 13| Y4 */ D.Q, - A.B, /* B1 |3 12| B4 */ D.B, - B.Q, /* Y2 |4 7402 11| A4 */ D.A, - B.A, /* A2 |5 10| Y3 */ C.Q, - B.B, /* B2 |6 9| B3 */ C.B, - A.GND,/* GND |7 8| A3 */ C.A - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7404: Hex Inverting Gates - * - * Y = A - * +---++---+ - * | A || Y | - * +===++===+ - * | 0 || 1 | - * | 1 || 0 | - * +---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7404_DIP) - TTL_7404_GATE(A) - TTL_7404_GATE(B) - TTL_7404_GATE(C) - TTL_7404_GATE(D) - TTL_7404_GATE(E) - TTL_7404_GATE(F) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.Q, /* Y1 |2 13| A6 */ F.A, - B.A, /* A2 |3 12| Y6 */ F.Q, - B.Q, /* Y2 |4 7404 11| A5 */ E.A, - C.A, /* A3 |5 10| Y5 */ E.Q, - C.Q, /* Y3 |6 9| A4 */ D.A, - A.GND,/* GND |7 8| Y4 */ D.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7406: Hex Inverting Buffers with - * High Voltage Open-Collector Outputs - * - * Naming conventions follow Fairchild Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7406_DIP) - TTL_7406_GATE(A) - TTL_7406_GATE(B) - TTL_7406_GATE(C) - TTL_7406_GATE(D) - TTL_7406_GATE(E) - TTL_7406_GATE(F) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.Y, /* Y1 |2 13| A6 */ F.A, - B.A, /* A2 |3 12| Y6 */ F.Y, - B.Y, /* Y2 |4 7406 11| A5 */ E.A, - C.A, /* A3 |5 10| Y5 */ E.Y, - C.Y, /* Y3 |6 9| A4 */ D.A, - A.GND,/* GND |7 8| Y4 */ D.Y - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7408: Quad 2-Input AND Gates - * - * - * Y = AB - * +---+---++---+ - * | A | B || Y | - * +===+===++===+ - * | 0 | 0 || 0 | - * | 0 | 1 || 0 | - * | 1 | 0 || 0 | - * | 1 | 1 || 1 | - * +---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7408_DIP) - TTL_7408_GATE(A) - TTL_7408_GATE(B) - TTL_7408_GATE(C) - TTL_7408_GATE(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| B4 */ D.B, - A.Q, /* Y1 |3 12| A4 */ D.A, - B.A, /* A2 |4 7400 11| Y4 */ D.Q, - B.B, /* B2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7410: Triple 3-Input NAND Gates - * __ - * Y = ABC - * +---+---+---++---+ - * | A | B | C || Y | - * +===+===+===++===+ - * | X | X | 0 || 1 | - * | X | 0 | X || 1 | - * | 0 | X | X || 1 | - * | 1 | 1 | 1 || 0 | - * +---+---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7410_DIP) - TTL_7410_GATE(A) - TTL_7410_GATE(B) - TTL_7410_GATE(C) - - NET_C(A.VCC, B.VCC, C.VCC) - NET_C(A.GND, B.GND, C.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| C1 */ A.C, - B.A, /* A2 |3 12| Y1 */ A.Q, - B.B, /* B2 |4 7410 11| C3 */ C.C, - B.C, /* C2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7411: Triple 3-Input AND Gates - * - * Y = ABC - * +---+---+---++---+ - * | A | B | C || Y | - * +===+===+===++===+ - * | X | X | 0 || 0 | - * | X | 0 | X || 0 | - * | 0 | X | X || 0 | - * | 1 | 1 | 1 || 1 | - * +---+---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7411_DIP) - TTL_7411_GATE(A) - TTL_7411_GATE(B) - TTL_7411_GATE(C) - - NET_C(A.VCC, B.VCC, C.VCC) - NET_C(A.GND, B.GND, C.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| C1 */ A.C, - B.A, /* A2 |3 12| Y1 */ A.Q, - B.B, /* B2 |4 7411 11| C3 */ C.C, - B.C, /* C2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7414/DM74LS14: Hex Inverter with - * Schmitt Trigger Inputs - * - */ - -static NETLIST_START(TTL_7414_GATE) - SCHMITT_TRIGGER(X, "DM7414") - ALIAS(A, X.A) - ALIAS(Q, X.Q) - ALIAS(GND, X.GND) - ALIAS(VCC, X.VCC) -NETLIST_END() - -static NETLIST_START(TTL_74LS14_GATE) - SCHMITT_TRIGGER(X, "DM74LS14") - ALIAS(A, X.A) - ALIAS(Q, X.Q) - ALIAS(GND, X.GND) - ALIAS(VCC, X.VCC) -NETLIST_END() - -static NETLIST_START(TTL_7414_DIP) - SCHMITT_TRIGGER(A, "DM7414") - SCHMITT_TRIGGER(B, "DM7414") - SCHMITT_TRIGGER(C, "DM7414") - SCHMITT_TRIGGER(D, "DM7414") - SCHMITT_TRIGGER(E, "DM7414") - SCHMITT_TRIGGER(F, "DM7414") - - NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) - NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.Q, /* Y1 |2 13| A6 */ F.A, - B.A, /* A2 |3 12| Y6 */ F.Q, - B.Q, /* Y2 |4 7414 11| A5 */ E.A, - C.A, /* A3 |5 10| Y5 */ E.Q, - C.Q, /* Y3 |6 9| A4 */ D.A, - A.GND, /* GND |7 8| Y4 */ D.Q - /* +--------------+ */ - ) -NETLIST_END() - -static NETLIST_START(TTL_74LS14_DIP) - SCHMITT_TRIGGER(A, "DM74LS14") - SCHMITT_TRIGGER(B, "DM74LS14") - SCHMITT_TRIGGER(C, "DM74LS14") - SCHMITT_TRIGGER(D, "DM74LS14") - SCHMITT_TRIGGER(E, "DM74LS14") - SCHMITT_TRIGGER(F, "DM74LS14") - - NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) - NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.Q, /* Y1 |2 13| A6 */ F.A, - B.A, /* A2 |3 12| Y6 */ F.Q, - B.Q, /* Y2 |4 74LS14 11| A5 */ E.A, - C.A, /* A3 |5 10| Y5 */ E.Q, - C.Q, /* Y3 |6 9| A4 */ D.A, - A.GND, /* GND |7 8| Y4 */ D.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7416: Hex Inverting Buffers with - * High Voltage Open-Collector Outputs - * - */ - -static NETLIST_START(TTL_7416_DIP) - TTL_7416_GATE(A) - TTL_7416_GATE(B) - TTL_7416_GATE(C) - TTL_7416_GATE(D) - TTL_7416_GATE(E) - TTL_7416_GATE(F) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.Q, /* Y1 |2 13| A6 */ F.A, - B.A, /* A2 |3 12| Y6 */ F.Q, - B.Q, /* Y2 |4 7416 11| A5 */ E.A, - C.A, /* A3 |5 10| Y5 */ E.Q, - C.Q, /* Y3 |6 9| A4 */ D.A, - A.GND,/* GND |7 8| Y4 */ D.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7420: Dual 4-Input NAND Gates - * - * ___ - * Y = ABCD - * +---+---+---+---++---+ - * | A | B | C | D || Y | - * +===+===+===+===++===+ - * | X | X | X | 0 || 1 | - * | X | X | 0 | X || 1 | - * | X | 0 | X | X || 1 | - * | 0 | X | X | X || 1 | - * | 1 | 1 | 1 | 1 || 0 | - * +---+---+---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet * - */ - -static NETLIST_START(TTL_7420_DIP) - TTL_7420_GATE(A) - TTL_7420_GATE(B) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) - NC_PIN(NC) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| D2 */ B.D, - NC.I, /* NC |3 12| C2 */ B.C, - A.C, /* C1 |4 7420 11| NC */ NC.I, - A.D, /* D1 |5 10| B2 */ B.B, - A.Q, /* Y1 |6 9| A2 */ B.A, - A.GND,/* GND |7 8| Y2 */ B.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7421: Dual 4-Input AND Gates - * - * ___ - * Y = ABCD - * +---+---+---+---++---+ - * | A | B | C | D || Y | - * +===+===+===+===++===+ - * | X | X | X | 0 || 0 | - * | X | X | 0 | X || 0 | - * | X | 0 | X | X || 0 | - * | 0 | X | X | X || 0 | - * | 1 | 1 | 1 | 1 || 1 | - * +---+---+---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet * - */ - -static NETLIST_START(TTL_7421_DIP) - TTL_7421_GATE(A) - TTL_7421_GATE(B) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) - NC_PIN(NC) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| D2 */ B.D, - NC.I, /* NC |3 12| C2 */ B.C, - A.C, /* C1 |4 7420 11| NC */ NC.I, - A.D, /* D1 |5 10| B2 */ B.B, - A.Q, /* Y1 |6 9| A2 */ B.A, - A.GND,/* GND |7 8| Y2 */ B.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7425: Dual 4-Input NOR Gates - * - * ______ - * Y = A+B+C+D - * +---+---+---+---+---++---+ - * | A | B | C | D | X || Y | - * +===+===+===+===+===++===+ - * | X | X | X | X | 0 || Z | - * | 0 | 0 | 0 | 0 | 1 || 1 | - * | X | X | X | 1 | 1 || 0 | - * | X | X | 1 | X | 1 || 0 | - * | X | 1 | X | X | 1 || 0 | - * | 1 | X | X | X | 1 || 0 | - * +---+---+---+---+---++---+ - * - * FIXME: The "X" input and high impedance output are currently not simulated. - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7425_DIP) - TTL_7425_GATE(A) - TTL_7425_GATE(B) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) - NC_PIN(XA) // FIXME: Functionality needs to be implemented - NC_PIN(XB) // FIXME: Functionality needs to be implemented - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| D2 */ B.D, - XA.I, /* X1 |3 12| C2 */ B.C, - A.C, /* C1 |4 7425 11| X2 */ XB.I, - A.D, /* D1 |5 10| B2 */ B.B, - A.Q, /* Y1 |6 9| A2 */ B.A, - A.GND,/* GND |7 8| Y2 */ B.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7427: Triple 3-Input NOR Gates - * - * ____ - * Y = A+B+C - * +---+---+---++---+ - * | A | B | C || Y | - * +===+===+===++===+ - * | X | X | 1 || 0 | - * | X | 1 | X || 0 | - * | 1 | X | X || 0 | - * | 0 | 0 | 0 || 1 | - * +---+---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7427_DIP) - TTL_7427_GATE(A) - TTL_7427_GATE(B) - TTL_7427_GATE(C) - - NET_C(A.VCC, B.VCC, C.VCC) - NET_C(A.GND, B.GND, C.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| C1 */ A.C, - B.A, /* A2 |3 12| Y1 */ A.Q, - B.B, /* B2 |4 7427 11| C3 */ C.C, - B.C, /* C2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7430: 8-Input NAND Gate - * - * _______ - * Y = ABCDEFGH - * +---+---+---+---+---+---+---+---++---+ - * | A | B | C | D | E | F | G | H || Y | - * +===+===+===+===+===+===+===+===++===+ - * | X | X | X | X | X | X | X | 0 || 1 | - * | X | X | X | X | X | X | 0 | X || 1 | - * | X | X | X | X | X | 0 | X | X || 1 | - * | X | X | X | X | 0 | X | X | X || 1 | - * | X | X | X | 0 | X | X | X | X || 1 | - * | X | X | 0 | X | X | X | X | X || 1 | - * | X | 0 | X | X | X | X | X | X || 1 | - * | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 0 | - * +---+---+---+---+---+---+---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - */ - -static NETLIST_START(TTL_7430_DIP) - TTL_7430_GATE(A) - - NC_PIN(NC9) - NC_PIN(NC10) - NC_PIN(NC13) - - DIPPINS( /* +--------------+ */ - A.A, /* A |1 ++ 14| VCC */ A.VCC, - A.B, /* B |2 13| NC */ NC13.I, - A.C, /* C |3 12| H */ A.H, - A.D, /* D |4 7430 11| G */ A.G, - A.E, /* E |5 10| NC */ NC10.I, - A.F, /* F |6 9| NC */ NC9.I, - A.GND,/* GND |7 8| Y */ A.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7432: Quad 2-Input OR Gates - * - * __ - * Y = A+B - * +---+---++---+ - * | A | B || Y | - * +===+===++===+ - * | 0 | 0 || 0 | - * | 0 | 1 || 1 | - * | 1 | 0 || 1 | - * | 1 | 1 || 1 | - * +---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7432_DIP) - TTL_7432_GATE(A) - TTL_7432_GATE(B) - TTL_7432_GATE(C) - TTL_7432_GATE(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| B4 */ D.B, - A.Q, /* Y1 |3 12| A4 */ D.A, - B.A, /* A2 |4 7400 11| Y4 */ D.Q, - B.B, /* B2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - - -/* - * DM7437: Quad 2-Input NAND Gates - * - * _ - * Y = AB - * +---+---++---+ - * | A | B || Y | - * +===+===++===+ - * | 0 | 0 || 1 | - * | 0 | 1 || 1 | - * | 1 | 0 || 1 | - * | 1 | 1 || 0 | - * +---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - * NOTE: Same as 7400, but drains higher output currents. - * Netlist currently does not model over currents (should it ever?) - */ - -static NETLIST_START(TTL_7437_DIP) - TTL_7437_GATE(A) - TTL_7437_GATE(B) - TTL_7437_GATE(C) - TTL_7437_GATE(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| B4 */ D.B, - A.Q, /* Y1 |3 12| A4 */ D.A, - B.A, /* A2 |4 7400 11| Y4 */ D.Q, - B.B, /* B2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM7486: Quad 2-Input Exclusive-OR Gates - * - * Y = A+B - * +---+---++---+ - * | A | B || Y | - * +===+===++===+ - * | 0 | 0 || 0 | - * | 0 | 1 || 1 | - * | 1 | 0 || 1 | - * | 1 | 1 || 0 | - * +---+---++---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_7486_DIP) - TTL_7486_GATE(A) - TTL_7486_GATE(B) - TTL_7486_GATE(C) - TTL_7486_GATE(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.A, /* A1 |1 ++ 14| VCC */ A.VCC, - A.B, /* B1 |2 13| B4 */ D.B, - A.Q, /* Y1 |3 12| A4 */ D.A, - B.A, /* A2 |4 7486 11| Y4 */ D.Q, - B.B, /* B2 |5 10| B3 */ C.B, - B.Q, /* Y2 |6 9| A3 */ C.A, - A.GND,/* GND |7 8| Y3 */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -#if (NL_USE_TRUTHTABLE_74107) -#ifndef __PLIB_PREPROCESSOR__ -#define TTL_74107_TT(name) \ - NET_REGISTER_DEV(TTL_74107, name) -#endif - -static NETLIST_START(TTL_74107_DIP) - TTL_74107_TT(A) - TTL_74107_TT(B) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) - - DIPPINS( /* +--------------+ */ - A.J, /* 1J |1 ++ 14| VCC */ A.VCC, - A.QQ, /* 1QQ |2 13| 1CLRQ */ A.CLRQ, - A.Q, /* 1Q |3 12| 1CLK */ A.CLK, - A.K, /* 1K |4 74107 11| 2K */ B.K, - B.Q, /* 2Q |5 10| 2CLRQ */ B.CLRQ, - B.QQ, /* 2QQ |6 9| 2CLK */ B.CLK, - B.GND, /* GND |7 8| 2J */ B.J - /* +--------------+ */ - ) - -NETLIST_END() -#endif - -//- Identifier: TTL_74121_DIP -//- Title: DM74121 One-Shot with Clear and Complementary Outputs -//- Description: The DM74121 is a monostable multivibrator featuring both -//- positive and negative edge triggering with complementary -//- outputs. An internal 2kΩ timing resistor is provided for -//- design convenience minimizing component count and layout problems. this device can be used with a single external capacitor. Inputs (A) are active-LOW trigger transition -//- inputs and input (B) is and active-HIGH transition Schmitttrigger input that allows jitter-free triggering from inputs with -//- transition rates as slow as 1 volt/second. A high immunity -//- to VCC noise of typically 1.5V is also provided by internal -//- circuitry at the input stage. -//- To obtain optimum and trouble free operation please read -//- operating rules and one-shot application notes carefully -//- and observe recommendations. -//- -//- Pinalias: QQ,NC,A1,A2,B,Q,GND,NC,RINT,C,RC,NC,NC,VCC -//- Package: DIP -//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet -//- Limitations: -//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet -//- -//- Example: 74123.cpp,74123_example -//- -//- FunctionTable: -//- https://pdf1.alldatasheet.com/datasheet-pdf/view/50894/FAIRCHILD/74121.html -//- -static NETLIST_START(TTL_74121_DIP) - - TTL_74121(A) - RES(RINT, RES_K(2)) - RES(RD, RES_M(1000)) - - ALIAS(1, A.QQ) - //ALIAS(2", ); NC - ALIAS(3, A.A1) - ALIAS(4, A.A2) - ALIAS(5, A.B) - ALIAS(6, A.Q) - ALIAS(7, A.GND) - - //ALIAS(8", ); NC - ALIAS(9, RINT.1) // RINT - ALIAS(10, A.C) // CEXT - ALIAS(11, A.RC) // REXT - //ALIAS(12", ); NC - //ALIAS(13", ); NC - ALIAS(14, A.VCC) - - NET_C(RINT.2, A.RC) - - // Avoid error messages if RINT is not used. - NET_C(RINT.1, RD.2) - NET_C(RD.1, A.GND) - -NETLIST_END() - -//- Identifier: TTL_74123_DIP -//- Title: DM74123 Dual Retriggerable One-Shot with Clear and Complementary Outputs -//- Description: The DM74123 is a dual retriggerable monostable multivibrator -//- capable of generating output pulses from a few -//- nano-seconds to extremely long duration up to 100% duty -//- cycle. Each device has three inputs permitting the choice of -//- either leading-edge or trailing edge triggering. Pin (A) is an -//- active-LOW transition trigger input and pin (B) is an activeHIGH transition trigger input. A LOW at the clear (CLR) -//- input terminates the output pulse: which also inhibits triggering. An internal connection from CLR to the input gate -//- makes it possible to trigger the circuit by a positive-going -//- signal on CLR as shown in the Truth Table. -//- -//- To obtain the best and trouble free operation from this -//- device please read the Operating Rules as well as the -//- One–Shot Application Notes carefully and observe recommendations. -//- -//- Pinalias: A1,B1,CLRQ1,QQ1,Q2,C2,RC2,GND,A2,B2,CLRQ2,QQ2,Q1,C1,RC1,VCC -//- Package: DIP -//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet -//- Limitations: -//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet -//- -//- Example: 74123.cpp,74123_example -//- -//- FunctionTable: -//- https://pdf1.alldatasheet.com/datasheet-pdf/view/50893/FAIRCHILD/DM74123.html -//- -static NETLIST_START(TTL_74123_DIP) - - TTL_74123(A) - TTL_74123(B) - - ALIAS(1, A.A) - ALIAS(2, A.B) - ALIAS(3, A.CLRQ) - ALIAS(4, A.QQ) - ALIAS(5, B.Q) - ALIAS(6, B.C) // CEXT - ALIAS(7, B.RC) // REXT - ALIAS(8, A.GND) - - ALIAS(9, B.A) - ALIAS(10, B.B) - ALIAS(11, B.CLRQ) - ALIAS(12, B.QQ) - ALIAS(13, A.Q) - ALIAS(14, A.C) // CEXT - ALIAS(15, A.RC) // REXT - ALIAS(16, A.VCC) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) -NETLIST_END() - -//- Identifier: TTL_9602_DIP -//- Title: DM9602 Dual Retriggerable, Resettable One Shots -//- Description: These dual resettable, retriggerable one shots have two -//- inputs per function; one which is active HIGH, and one -//- which is active LOW. This allows the designer to employ -//- either leading-edge or trailing-edge triggering, which is -//- independent of input transition times. When input conditions for triggering are met, a new cycle starts and the -//- external capacitor is allowed to rapidly discharge and then -//- charge again. The retriggerable feature permits output -//- pulse widths to be extended. In fact a continuous true output can be maintained by having an input cycle time which -//- is shorter than the output cycle time. The output pulse may -//- then be terminated at any time by applying a LOW logic -//- level to the RESET pin. Retriggering may be inhibited by -//- either connecting the Q output to an active HIGH input, or -//- the Q output to an active LOW input. -//- The DM74123 is a dual retriggerable monostable multivibrator -//- -//- Pinalias: C1,RC1,CLRQ1,B1,A1,Q1,QQ1,GND,QQ2,Q2,A2,B2,CLRQ2,RC2,C2,VCC -//- Package: DIP -//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet -//- Limitations: -//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet -//- -//- Example: 74123.cpp,74123_example -//- -//- FunctionTable: -//- https://pdf1.alldatasheet.com/datasheet-pdf/view/51137/FAIRCHILD/DM9602.html -//- -static NETLIST_START(TTL_9602_DIP) - - TTL_9602(A) - TTL_9602(B) - - ALIAS(1, A.C) // C1 - ALIAS(2, A.RC) // RC1 - ALIAS(3, A.CLRQ) - ALIAS(4, A.B) - ALIAS(5, A.A) - ALIAS(6, A.Q) - ALIAS(7, A.QQ) - ALIAS(8, A.GND) - - ALIAS(9, B.QQ) - ALIAS(10, B.Q) - ALIAS(11, B.A) - ALIAS(12, B.B) - ALIAS(13, B.CLRQ) - ALIAS(14, B.RC) // RC2 - ALIAS(15, B.C) // C2 - ALIAS(16, A.VCC) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) -NETLIST_END() - -//- Identifier: TTL_74125_DIP -//- Title: SN74125 QUADRUPLE BUS BUFFERS WITH 3-STATE OUTPUTS -//- Description: These bus buffers feature three-state outputs -//- that, when enabled, have the low impedance characteristics of a -//- TTL output with additional drive capability at high logic levels -//- to permit driving heavily loaded bus lines without external -//- pullup resistors. When disabled, both output transistors are turned -//- off, presenting a high-impedance state to the bus so the output will -//- act neither as a significant load nor as a driver. The ’125 and -//- ’LS125A devices’ outputs are disabled when G is high. -//- The ’126 and ’LS126A devices’ outputs are disabled when G is low -//- -//- Pinalias: 1GQ,1A,1Y,2GQ,2A,2Y,GND,3Y,3A,3GQ,4Y,4A,4GQ,VCC -//- Package: DIP -//- Param: FORCE_TRISTATE_LOGIC -//- Set this parameter to 1 force tristate outputs into logic mode. -//- This should be done only if the device enable inputs are connected -//- in a way which always enables the device. -//- NamingConvention: Naming conventions follow Texas instruments datasheet -//- Limitations: -//- No limitations -//- -//- Example: 74125.cpp,74125_example -//- -//- FunctionTable: -//- -//- | GQ | A | Y | -//- |:---:|:--:|:--:| -//- | L | L | L | -//- | L | H | H | -//- | H | X | Z | -//- - -static NETLIST_START(TTL_74125_DIP) - - TTL_74125_GATE(A1) - TTL_74125_GATE(A2) - TTL_74125_GATE(A3) - TTL_74125_GATE(A4) - - DEFPARAM(FORCE_TRISTATE_LOGIC, "$(@.A1.FORCE_TRISTATE_LOGIC") - - PARAM(A1.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A2.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A3.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A4.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - - ALIAS(1, A1.GQ) - ALIAS(2, A1.A) - ALIAS(3, A1.Y) - ALIAS(4, A2.GQ) - ALIAS(5, A2.A) - ALIAS(6, A2.Y) - ALIAS(7, A1.GND) - - ALIAS(8, A3.Y) - ALIAS(9, A3.A) - ALIAS(10, A3.GQ) - ALIAS(11, A4.Y) - ALIAS(12, A4.A) - ALIAS(13, A4.GQ) - ALIAS(14, A1.VCC) - - NET_C(A1.VCC, A2.VCC, A3.VCC, A4.VCC) - NET_C(A1.GND, A2.GND, A3.GND, A4.GND) -NETLIST_END() - -static NETLIST_START(TTL_74126_DIP) - - TTL_74126_GATE(A1) - TTL_74126_GATE(A2) - TTL_74126_GATE(A3) - TTL_74126_GATE(A4) - - DEFPARAM(FORCE_TRISTATE_LOGIC, 0) - PARAM(A1.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A2.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A3.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - PARAM(A4.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") - - ALIAS(1, A1.G) - ALIAS(2, A1.A) - ALIAS(3, A1.Y) - ALIAS(4, A2.G) - ALIAS(5, A2.A) - ALIAS(6, A2.Y) - ALIAS(7, A1.GND) - - ALIAS(8, A3.Y) - ALIAS(9, A3.A) - ALIAS(10, A3.G) - ALIAS(11, A4.Y) - ALIAS(12, A4.A) - ALIAS(13, A4.G) - ALIAS(14, A1.VCC) - - NET_C(A1.VCC, A2.VCC, A3.VCC, A4.VCC) - NET_C(A1.GND, A2.GND, A3.GND, A4.GND) -NETLIST_END() - -/* - * DM74155/DM74156: Dual 2-Line to 4-Line Decoders/Demultiplexers - * - * +-----+-------++-----------------+ - * | B A | G1 C1 || 1Y0 1Y1 1Y2 1Y3 | - * +=====+=======++=================+ - * | X X | 1 X || 1 1 1 1 | - * | 0 0 | 0 1 || 0 1 1 1 | - * | 0 1 | 0 1 || 1 0 1 1 | - * | 1 0 | 0 1 || 1 1 0 1 | - * | 1 1 | 0 1 || 1 1 1 0 | - * | X X | X 0 || 1 1 1 1 | - * +-----+-------++-----------------+ - * - * +-----+-------++-----------------+ - * | B A | G2 C2 || 2Y0 2Y1 2Y2 2Y3 | - * +=====+=======++=================+ - * | X X | 1 X || 1 1 1 1 | - * | 0 0 | 0 0 || 0 1 1 1 | - * | 0 1 | 0 0 || 1 0 1 1 | - * | 1 0 | 0 0 || 1 1 0 1 | - * | 1 1 | 0 0 || 1 1 1 0 | - * | X X | X 1 || 1 1 1 1 | - * +-----+-------++-----------------+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -static NETLIST_START(TTL_74155_DIP) - NET_REGISTER_DEV(TTL_74155A_GATE, A) - NET_REGISTER_DEV(TTL_74155B_GATE, B) - - NET_C(A.A, B.A) - NET_C(A.B, B.B) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) - - DIPPINS( /* +--------------+ */ - A.C, /* C1 |1 ++ 16| VCC */ A.VCC, - A.G, /* G1 |2 15| B4 */ B.C, - A.B, /* B |3 14| B4 */ B.G, - A.3, /* 1Y3 |4 74155 13| A4 */ B.A, - B.2, /* 1Y2 |5 12| Y4 */ B.3, - B.1, /* 1Y1 |6 11| B3 */ B.2, - B.0, /* 1Y0 |7 10| A3 */ B.1, - A.GND,/* GND |8 9| Y3 */ B.0 - /* +--------------+ */ - ) -NETLIST_END() - -static NETLIST_START(TTL_74156_DIP) - NET_REGISTER_DEV(TTL_74156A_GATE, A) - NET_REGISTER_DEV(TTL_74156B_GATE, B) - - NET_C(A.A, B.A) - NET_C(A.B, B.B) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) - - DIPPINS( /* +--------------+ */ - A.C, /* C1 |1 ++ 16| VCC */ A.VCC, - A.G, /* G1 |2 15| B4 */ B.C, - A.B, /* B |3 14| B4 */ B.G, - A.3, /* 1Y3 |4 74156 13| A4 */ B.A, - B.2, /* 1Y2 |5 12| Y4 */ B.3, - B.1, /* 1Y1 |6 11| B3 */ B.2, - B.0, /* 1Y0 |7 10| A3 */ B.1, - A.GND,/* GND |8 9| Y3 */ B.0 - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM74157: Quad 2-Input Multiplexor - * - * +---+---+-------+---+ - * | E | S | I0 I1 | Z | - * +===+===+=======+===+ - * | 1 | X | X X | 0 | - * | 0 | 1 | X 0 | 0 | - * | 0 | 1 | X 1 | 1 | - * | 0 | 0 | 0 X | 0 | - * | 0 | 0 | 1 X | 1 | - * +---+---+-------+---+ - * - * Naming conventions follow TI datasheet - * - */ - -static NETLIST_START(TTL_74157_DIP) - NET_REGISTER_DEV(TTL_74157_GATE, A) - NET_REGISTER_DEV(TTL_74157_GATE, B) - NET_REGISTER_DEV(TTL_74157_GATE, C) - NET_REGISTER_DEV(TTL_74157_GATE, D) - - NET_C(A.E, B.E, C.E, D.E) - NET_C(A.S, B.S, C.S, D.S) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.S, /* S |1 ++ 16| VCC */ A.VCC, - A.I, /* I0a |2 15| /E */ A.E, - A.J, /* I1a |3 14| I0c */ C.I, - A.O, /* Za |4 74157 13| I1c */ C.J, - B.I, /* I0b |5 12| Zc */ C.O, - B.J, /* I1b |6 11| I0d */ D.I, - B.O, /* Zb |7 10| I1d */ D.J, - A.GND,/* GND |8 9| Zd */ D.O - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM74260: Dual 5-Input NOR Gates - * _________ - * Y = A+B+C+D+E - * +---+---+---+---+---++---+ - * | A | B | B | B | B || Y | - * +===+===+===+===+===++===+ - * | 0 | 0 | 0 | 0 | 0 || 1 | - * | 0 | 0 | 0 | 0 | 1 || 0 | - * | 0 | 0 | 0 | 1 | 0 || 0 | - * | 0 | 0 | 1 | 0 | 0 || 0 | - * | 0 | 1 | 0 | 0 | 0 || 0 | - * | 1 | 0 | 0 | 0 | 0 || 0 | - * +---+---+---+---+---++---+ - * - * Naming conventions follow Texas Instruments datasheet - * - */ - -static NETLIST_START(TTL_74260_DIP) - TTL_74260_GATE(A) - TTL_74260_GATE(B) - - NET_C(A.VCC, B.VCC) - NET_C(A.GND, B.GND) - - DIPPINS( /* +--------------+ */ - A.C, /* C1 |1 ++ 14| VCC */ A.VCC, - A.D, /* D1 |2 13| B1 */ A.B, - A.E, /* E1 |3 12| A1 */ A.A, - B.E, /* E2 |4 74260 11| D2 */ B.D, - A.Q, /* Y1 |5 10| C2 */ B.C, - B.Q, /* Y2 |6 9| B2 */ B.B, - A.GND,/* GND |7 8| A2 */ B.A - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM74279: Quad S-R Latch - * - * +---+---+---++---+ - * |S1 |S2 | R || Q | - * +===+===+===++===+ - * | 0 | 0 | 0 || 1 | - * | 0 | 1 | 1 || 1 | - * | 1 | 0 | 1 || 1 | - * | 1 | 1 | 0 || 0 | - * | 1 | 1 | 1 ||QP | - * +---+---+---++---+ - * - * QP: Previous Q - * - * Naming conventions follow Fairchild Semiconductor datasheet - * - */ - -#if !NL_AUTO_DEVICES -#ifndef __PLIB_PREPROCESSOR__ -#define TTL_74279A(name) \ - NET_REGISTER_DEV(TTL_74279A, name) -#define TTL_74279B(name) \ - NET_REGISTER_DEV(TTL_74279B, name) -#endif -#endif - -static NETLIST_START(TTL_74279_DIP) - TTL_74279B(A) - TTL_74279A(B) - TTL_74279B(C) - TTL_74279A(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - - DIPPINS( /* +--------------+ */ - A.R, /* 1R |1 ++ 16| VCC */ A.VCC, - A.S1, /* 1S1 |2 15| 4S */ D.S, - A.S2, /* 1S2 |3 14| 4R */ D.R, - A.Q, /* 1Q |4 74279 13| 4Q */ D.Q, - B.R, /* 2R |5 12| 3S2 */ C.S2, - B.S, /* 2S |6 11| 3S1 */ C.S1, - B.Q, /* 2Q |7 10| 3R */ C.R, - A.GND, /* GND |8 9| 3Q */ C.Q - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM74377: Octal D Flip-Flop With Enable - * DM74378: Hex D Flip-Flop With Enable - * DM74379: 4-bit D Flip-Flop With Enable - * - */ - -static NETLIST_START(TTL_74377_DIP) - TTL_74377_GATE(A) - TTL_74377_GATE(B) - TTL_74377_GATE(C) - TTL_74377_GATE(D) - TTL_74377_GATE(E) - TTL_74377_GATE(F) - TTL_74377_GATE(G) - TTL_74377_GATE(H) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC, G.VCC, H.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND, G.GND, H.GND) - NET_C(A.CP, B.CP, C.CP, D.CP, E.CP, F.CP, G.CP, H.CP) - NET_C(A.E, B.E, C.E, D.E, E.E, F.E, G.E, H.E) - - HINT(A.QQ, NC) - HINT(B.QQ, NC) - HINT(C.QQ, NC) - HINT(D.QQ, NC) - HINT(E.QQ, NC) - HINT(F.QQ, NC) - HINT(G.QQ, NC) - HINT(H.QQ, NC) - - DIPPINS( /* +--------------+ */ - A.E, /* /E |1 ++ 20| VCC */ A.VCC, - A.Q, /* Q0 |2 19| Q7 */ H.Q, - A.D, /* D0 |3 18| D7 */ H.D, - B.D, /* D1 |4 74377 17| D6 */ G.D, - B.Q, /* Q1 |5 16| Q6 */ G.Q, - C.Q, /* Q2 |6 15| Q5 */ F.Q, - C.D, /* D2 |7 14| D5 */ F.D, - D.D, /* D3 |8 13| D4 */ E.D, - D.Q, /* Q3 |9 12| Q4 */ E.Q, - A.GND,/* GND |10 11| CP */ A.CP - /* +--------------+ */ - ) -NETLIST_END() - -static NETLIST_START(TTL_74378_DIP) - TTL_74377_GATE(A) - TTL_74377_GATE(B) - TTL_74377_GATE(C) - TTL_74377_GATE(D) - TTL_74377_GATE(E) - TTL_74377_GATE(F) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) - NET_C(A.CP, B.CP, C.CP, D.CP, E.CP, F.CP) - NET_C(A.E, B.E, C.E, D.E, E.E, F.E) - - DIPPINS( /* +--------------+ */ - A.E, /* /E |1 ++ 16| VCC */ A.VCC, - A.Q, /* Q0 |2 15| Q5 */ F.Q, - A.D, /* D0 |3 14| D5 */ F.D, - B.D, /* D1 |4 74378 13| D4 */ E.D, - B.Q, /* Q1 |5 12| Q4 */ E.Q, - C.D, /* D2 |6 11| D3 */ D.D, - C.Q, /* Q2 |7 10| Q3 */ D.Q, - A.GND,/* GND |8 9| CP */ A.CP - /* +--------------+ */ - ) -NETLIST_END() - -static NETLIST_START(TTL_74379_DIP) - TTL_74377_GATE(A) - TTL_74377_GATE(B) - TTL_74377_GATE(C) - TTL_74377_GATE(D) - - NET_C(A.VCC, B.VCC, C.VCC, D.VCC) - NET_C(A.GND, B.GND, C.GND, D.GND) - NET_C(A.CP, B.CP, C.CP, D.CP) - NET_C(A.E, B.E, C.E, D.E) - - DIPPINS( /* +--------------+ */ - A.E, /* /E |1 ++ 16| VCC */ A.VCC, - A.Q, /* Q0 |2 15| Q3 */ D.Q, - A.QQ, /* /Q0 |3 14| /Q3 */ D.QQ, - A.D, /* D0 |4 74379 13| D3 */ D.D, - B.D, /* D1 |5 12| D2 */ C.D, - B.QQ, /* /Q1 |6 11| /Q2 */ C.QQ, - B.Q, /* Q1 |7 10| Q2 */ C.Q, - A.GND,/* GND |8 9| CP */ A.CP - /* +--------------+ */ - ) -NETLIST_END() - -/* - * DM9312: One of Eight Line Data Selectors/Multiplexers - * - * +--------------+ - * D0 |1 ++ 16| VCC - * D1 |2 15| Y - * D2 |3 14| YQ - * D3 |4 9312 13| C - * D4 |5 12| B - * D5 |6 11| A - * D6 |7 10| G Strobe - * GND |8 9| D7 - * +--------------+ - * __ - * +---+---+---+---++---+---+ - * | C | B | A | G || Y | YQ| - * +===+===+===+===++===+===+ - * | X | X | X | 1 || 0| 1 | - * | 0 | 0 | 0 | 0 || D0|D0Q| - * | 0 | 0 | 1 | 0 || D1|D1Q| - * | 0 | 1 | 0 | 0 || D2|D2Q| - * | 0 | 1 | 1 | 0 || D3|D3Q| - * | 1 | 0 | 0 | 0 || D4|D4Q| - * | 1 | 0 | 1 | 0 || D5|D5Q| - * | 1 | 1 | 0 | 0 || D6|D6Q| - * | 1 | 1 | 1 | 0 || D7|D7Q| - * +---+---+---+---++---+---+ - * - * Naming conventions follow National Semiconductor datasheet - * - */ - -#ifndef __PLIB_PREPROCESSOR__ -#define DM9312_TT(name) \ - NET_REGISTER_DEV(DM9312, name) -#endif - -static NETLIST_START(DM9312_DIP) - DM9312_TT(s) - - DIPPINS( /* +--------------+ */ - s.D0, /* D0 |1 ++ 16| VCC */ s.VCC, - s.D1, /* D1 |2 15| Y */ s.Y, - s.D2, /* D2 |3 14| YQ */ s.YQ, - s.D3, /* D3 |4 9312 13| C */ s.C, - s.D4, /* D4 |5 12| B */ s.B, - s.D5, /* D5 |6 11| A */ s.A, - s.D6, /* D6 |7 10| G */ s.G, //Strobe - s.GND, /* GND |8 9| D7 */ s.D7 - /* +--------------+ */ - ) -NETLIST_END() - -#if (NL_USE_TRUTHTABLE_7448) - -/* - * DM7448: BCD to 7-Segment decoders/drivers - * - * +--------------+ - * B |1 ++ 16| VCC - * C |2 15| f - * LAMP TEST |3 14| g - * BI/RBQ |4 7448 13| a - * RBI |5 12| b - * D |6 11| c - * A |7 10| d - * GND |8 9| e - * +--------------+ - * - * - * Naming conventions follow National Semiconductor datasheet - * - */ -#ifndef __PLIB_PREPROCESSOR__ -#define TTL_7448_TT(name) \ - NET_REGISTER_DEV(TTL_7448_TT, name) -#endif - -static NETLIST_START(TTL_7448_DIP) - TTL_7448_TT(s) - - DIPPINS( /* +--------------+ */ - s.B, /* B |1 ++ 16| VCC */ s.VCC, - s.C, /* C |2 15| f */ s.f, - s.LTQ, /* LTQ |3 14| g */ s.g, - s.BIQ, /* BIQ |4 7448 13| a */ s.a, - s.RBIQ, /* RBIQ |5 12| b */ s.b, - s.D, /* D |6 11| c */ s.c, - s.A, /* A |7 10| d */ s.d, - s.GND, /* GND |8 9| e */ s.e - /* +--------------+ */ - ) -NETLIST_END() -#endif - -NETLIST_START(TTL74XX_lib) - NET_MODEL("DM7414 SCHMITT_TRIGGER(VTP=1.7 VTM=0.9 VI=4.35 RI=6.15k VOH=3.5 ROH=120 VOL=0.1 ROL=37.5 TPLH=15 TPHL=15)") - NET_MODEL("TTL_7414_GATE SCHMITT_TRIGGER(VTP=1.7 VTM=0.9 VI=4.35 RI=6.15k VOH=3.5 ROH=120 VOL=0.1 ROL=37.5 TPLH=15 TPHL=15)") - NET_MODEL("DM74LS14 SCHMITT_TRIGGER(VTP=1.6 VTM=0.8 VI=4.4 RI=19.3k VOH=3.45 ROH=130 VOL=0.1 ROL=31.2 TPLH=15 TPHL=15)") - //NET_MODEL("DM7414 FAMILY(IVL=0.16 IVH=0.4 OVL=0.1 OVH=0.05 ORL=10.0 ORH=1.0e8)") - - - TRUTHTABLE_START(TTL_7400_GATE, 2, 1, "") - TT_HEAD("A,B|Q ") - TT_LINE("0,X|1|22") - TT_LINE("X,0|1|22") - TT_LINE("1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7400_NAND, 2, 1, "+A,+B,@VCC,@GND") - TT_HEAD("A,B|Q ") - TT_LINE("0,X|1|22") - TT_LINE("X,0|1|22") - TT_LINE("1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7402_GATE, 2, 1, "") - TT_HEAD("A,B|Q ") - TT_LINE("0,0|1|22") - TT_LINE("X,1|0|15") - TT_LINE("1,X|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7402_NOR, 2, 1, "+A,+B,@VCC,@GND") - TT_HEAD("A,B|Q ") - TT_LINE("0,0|1|22") - TT_LINE("X,1|0|15") - TT_LINE("1,X|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7404_GATE, 1, 1, "") - TT_HEAD(" A | Q ") - TT_LINE(" 0 | 1 |22") - TT_LINE(" 1 | 0 |15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7404_INVERT, 1, 1, "+A,@VCC,@GND") - TT_HEAD(" A | Q ") - TT_LINE(" 0 | 1 |22") - TT_LINE(" 1 | 0 |15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7406_GATE, 1, 1, "") - TT_HEAD("A|Y ") - TT_LINE("0|1|15") - TT_LINE("1|0|23") - /* Open Collector */ - TT_FAMILY("74XXOC") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7408_GATE, 2, 1, "") - TT_HEAD("A,B|Q ") - TT_LINE("0,X|0|15") - TT_LINE("X,0|0|15") - TT_LINE("1,1|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7408_AND, 2, 1, "+A,+B,@VCC,@GND") - TT_HEAD("A,B|Q ") - TT_LINE("0,X|0|15") - TT_LINE("X,0|0|15") - TT_LINE("1,1|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7410_NAND, 3, 1, "+A,+B,+C,@VCC,@GND") - TT_HEAD("A,B,C|Q ") - TT_LINE("0,X,X|1|22") - TT_LINE("X,0,X|1|22") - TT_LINE("X,X,0|1|22") - TT_LINE("1,1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7410_GATE, 3, 1, "") - TT_HEAD("A,B,C|Q ") - TT_LINE("0,X,X|1|22") - TT_LINE("X,0,X|1|22") - TT_LINE("X,X,0|1|22") - TT_LINE("1,1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7411_AND, 3, 1, "+A,+B,+C,@VCC,@GND") - TT_HEAD("A,B,C|Q ") - TT_LINE("0,X,X|0|15") - TT_LINE("X,0,X|0|15") - TT_LINE("X,X,0|0|15") - TT_LINE("1,1,1|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7411_GATE, 3, 1, "") - TT_HEAD("A,B,C|Q ") - TT_LINE("0,X,X|0|15") - TT_LINE("X,0,X|0|15") - TT_LINE("X,X,0|0|15") - TT_LINE("1,1,1|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7416_GATE, 1, 1, "") - TT_HEAD(" A | Q ") - TT_LINE(" 0 | 1 |15") - TT_LINE(" 1 | 0 |23") - /* Open Collector */ - TT_FAMILY("74XXOC") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7420_GATE, 4, 1, "") - TT_HEAD("A,B,C,D|Q ") - TT_LINE("0,X,X,X|1|22") - TT_LINE("X,0,X,X|1|22") - TT_LINE("X,X,0,X|1|22") - TT_LINE("X,X,X,0|1|22") - TT_LINE("1,1,1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7420_NAND, 4, 1, "+A,+B,+C,+D,@VCC,@GND") - TT_HEAD("A,B,C,D|Q ") - TT_LINE("0,X,X,X|1|22") - TT_LINE("X,0,X,X|1|22") - TT_LINE("X,X,0,X|1|22") - TT_LINE("X,X,X,0|1|22") - TT_LINE("1,1,1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7421_GATE, 4, 1, "") - TT_HEAD("A,B,C,D|Q ") - TT_LINE("0,X,X,X|0|22") - TT_LINE("X,0,X,X|0|22") - TT_LINE("X,X,0,X|0|22") - TT_LINE("X,X,X,0|0|22") - TT_LINE("1,1,1,1|1|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7421_AND, 4, 1, "+A,+B,+C,+D,@VCC,@GND") - TT_HEAD("A,B,C,D|Q ") - TT_LINE("0,X,X,X|0|22") - TT_LINE("X,0,X,X|0|22") - TT_LINE("X,X,0,X|0|22") - TT_LINE("X,X,X,0|0|22") - TT_LINE("1,1,1,1|1|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7425_GATE, 4, 1, "") - TT_HEAD("A,B,C,D|Q ") - TT_LINE("1,X,X,X|0|15") - TT_LINE("X,1,X,X|0|15") - TT_LINE("X,X,1,X|0|15") - TT_LINE("X,X,X,1|0|15") - TT_LINE("0,0,0,0|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7425_NOR, 4, 1, "+A,+B,+C,+D,@VCC,@GND") - TT_HEAD("A,B,C,D|Q ") - TT_LINE("1,X,X,X|0|15") - TT_LINE("X,1,X,X|0|15") - TT_LINE("X,X,1,X|0|15") - TT_LINE("X,X,X,1|0|15") - TT_LINE("0,0,0,0|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7427_GATE, 3, 1, "") - TT_HEAD("A,B,C|Q ") - TT_LINE("1,X,X|0|15") - TT_LINE("X,1,X|0|15") - TT_LINE("X,X,1|0|15") - TT_LINE("0,0,0|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7427_NOR, 3, 1, "+A,+B,+C,@VCC,@GND") - TT_HEAD("A,B,C|Q ") - TT_LINE("1,X,X|0|15") - TT_LINE("X,1,X|0|15") - TT_LINE("X,X,1|0|15") - TT_LINE("0,0,0|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7430_GATE, 8, 1, "") - TT_HEAD("A,B,C,D,E,F,G,H|Q ") - TT_LINE("0,X,X,X,X,X,X,X|1|22") - TT_LINE("X,0,X,X,X,X,X,X|1|22") - TT_LINE("X,X,0,X,X,X,X,X|1|22") - TT_LINE("X,X,X,0,X,X,X,X|1|22") - TT_LINE("X,X,X,X,0,X,X,X|1|22") - TT_LINE("X,X,X,X,X,0,X,X|1|22") - TT_LINE("X,X,X,X,X,X,0,X|1|22") - TT_LINE("X,X,X,X,X,X,X,0|1|22") - TT_LINE("1,1,1,1,1,1,1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7430_NAND, 8, 1, "+A,+B,+C,+D,+E,+F,+G,+H,@VCC,@GND") - TT_HEAD("A,B,C,D,E,F,G,H|Q ") - TT_LINE("0,X,X,X,X,X,X,X|1|22") - TT_LINE("X,0,X,X,X,X,X,X|1|22") - TT_LINE("X,X,0,X,X,X,X,X|1|22") - TT_LINE("X,X,X,0,X,X,X,X|1|22") - TT_LINE("X,X,X,X,0,X,X,X|1|22") - TT_LINE("X,X,X,X,X,0,X,X|1|22") - TT_LINE("X,X,X,X,X,X,0,X|1|22") - TT_LINE("X,X,X,X,X,X,X,0|1|22") - TT_LINE("1,1,1,1,1,1,1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7432_GATE, 2, 1, "") - TT_HEAD("A,B|Q ") - TT_LINE("1,X|1|22") - TT_LINE("X,1|1|22") - TT_LINE("0,0|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7432_OR, 2, 1, "+A,+B,@VCC,@GND") - TT_HEAD("A,B|Q ") - TT_LINE("1,X|1|22") - TT_LINE("X,1|1|22") - TT_LINE("0,0|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - /* FIXME: Same as 7400, but drains higher output currents. - * Netlist currently does not model over currents (should it ever?) - */ - - TRUTHTABLE_START(TTL_7437_GATE, 2, 1, "") - TT_HEAD("A,B|Q ") - TT_LINE("0,X|1|22") - TT_LINE("X,0|1|22") - TT_LINE("1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - -#if (NL_USE_TRUTHTABLE_7448) - TRUTHTABLE_START(TTL_7448, 7, 7, "+A,+B,+C,+D,+LTQ,+BIQ,+RBIQ,@VCC,@GND") - TT_HEAD(" LTQ,BIQ,RBIQ, A , B , C , D | a, b, c, d, e, f, g") - - TT_LINE(" 1, 1, 1, 0, 0, 0, 0 | 1, 1, 1, 1, 1, 1, 0|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 0, 0 | 0, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 0, 0 | 1, 1, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 0, 0 | 1, 1, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 0, 1, 0 | 0, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 1, 0 | 1, 0, 1, 1, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 1, 0 | 0, 0, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 1, 0 | 1, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 0, 0, 1 | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 0, 1 | 1, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 0, 1 | 0, 0, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 0, 1 | 0, 0, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 0, 1, 1 | 0, 1, 0, 0, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 1, 1 | 1, 0, 0, 1, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 1, 1 | 0, 0, 0, 1, 1, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 1, 1 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") - - // BI/RBO is input output. In the next case it is used as an input will go low. - TT_LINE(" 1, 1, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // RBI - - TT_LINE(" 0, 1, X, X, X, X, X | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") // LT - - // This condition has precedence - TT_LINE(" X, 0, X, X, X, X, X | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // BI - TT_FAMILY("74XX") - - TRUTHTABLE_END() - - // FIXME: We need a more elegant solution than defining twice - TRUTHTABLE_START(TTL_7448_TT, 7, 7, "") - TT_HEAD(" LTQ,BIQ,RBIQ, A , B , C , D | a, b, c, d, e, f, g") - - TT_LINE(" 1, 1, 1, 0, 0, 0, 0 | 1, 1, 1, 1, 1, 1, 0|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 0, 0 | 0, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 0, 0 | 1, 1, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 0, 0 | 1, 1, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 0, 1, 0 | 0, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 1, 0 | 1, 0, 1, 1, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 1, 0 | 0, 0, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 1, 0 | 1, 1, 1, 0, 0, 0, 0|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 0, 0, 1 | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 0, 1 | 1, 1, 1, 0, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 0, 1 | 0, 0, 0, 1, 1, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 0, 1 | 0, 0, 1, 1, 0, 0, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 0, 1, 1 | 0, 1, 0, 0, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 0, 1, 1 | 1, 0, 0, 1, 0, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 0, 1, 1, 1 | 0, 0, 0, 1, 1, 1, 1|100,100,100,100,100,100,100") - TT_LINE(" 1, 1, X, 1, 1, 1, 1 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") - - // BI/RBO is input output. In the next case it is used as an input will go low. - TT_LINE(" 1, 1, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // RBI - - TT_LINE(" 0, 1, X, X, X, X, X | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100") // LT - - // This condition has precedence - TT_LINE(" X, 0, X, X, X, X, X | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100") // BI - TT_FAMILY("74XX") - - TRUTHTABLE_END() - -#endif - - TRUTHTABLE_START(TTL_7437_NAND, 2, 1, "+A,+B") - TT_HEAD("A,B|Q ") - TT_LINE("0,X|1|22") - TT_LINE("X,0|1|22") - TT_LINE("1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7486_GATE, 2, 1, "") - TT_HEAD("A,B|Q ") - TT_LINE("0,0|0|15") - TT_LINE("0,1|1|22") - TT_LINE("1,0|1|22") - TT_LINE("1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_7486_XOR, 2, 1, "+A,+B,@VCC,@GND") - TT_HEAD("A,B|Q ") - TT_LINE("0,0|0|15") - TT_LINE("0,1|1|22") - TT_LINE("1,0|1|22") - TT_LINE("1,1|0|15") - TT_FAMILY("74XX") - TRUTHTABLE_END() - -#if (NL_USE_TRUTHTABLE_74107) - /* - * +-----+-----+-----+---++---+-----+ - * | CLRQ| CLK | J | K || Q | QQ | - * +=====+=====+=====+===++===+=====+ - * | 0 | X | X | X || 0 | 1 | - * | 1 | * | 0 | 0 || Q0| Q0Q | - * | 1 | * | 1 | 0 || 1 | 0 | - * | 1 | * | 0 | 1 || 0 | 1 | - * | 1 | * | 1 | 1 || TOGGLE | - * +-----+-----+-----+---++---+-----+ - */ - TRUTHTABLE_START(TTL_74107, 6, 4, "+CLK,+J,+K,+CLRQ,@VCC,@GND") - TT_HEAD("CLRQ, CLK, _CO, J, K,_QX | Q, QQ, CO, QX") - TT_LINE(" 0, 0, X, X, X, X | 0, 1, 0, 0 | 16, 25, 1, 1") - TT_LINE(" 0, 1, X, X, X, X | 0, 1, 1, 0 | 16, 25, 1, 1") - - TT_LINE(" 1, 0, X, 0, 0, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 1, X, 0, 0, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 0, X, 0, 0, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") - TT_LINE(" 1, 1, X, 0, 0, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") - - TT_LINE(" 1, 0, 1, 1, 0, X | 1, 0, 0, 1 | 25, 16, 1, 1") - TT_LINE(" 1, 0, 0, 1, 0, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 0, 0, 1, 0, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") - TT_LINE(" 1, 1, X, 1, 0, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 1, X, 1, 0, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") - - TT_LINE(" 1, 0, 1, 0, 1, X | 0, 1, 0, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 0, 0, 0, 1, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 0, 0, 0, 1, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") - TT_LINE(" 1, 1, X, 0, 1, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 1, X, 0, 1, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") - - // Toggle - TT_LINE(" 1, 0, 0, 1, 1, 0 | 0, 1, 0, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 0, 0, 1, 1, 1 | 1, 0, 0, 1 | 25, 16, 1, 1") - TT_LINE(" 1, 1, 0, 1, 1, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 1, 0, 1, 1, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") - TT_LINE(" 1, 1, 1, 1, 1, 0 | 0, 1, 1, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 1, 1, 1, 1, 1 | 1, 0, 1, 1 | 25, 16, 1, 1") - - TT_LINE(" 1, 0, 1, 1, 1, 1 | 0, 1, 0, 0 | 16, 25, 1, 1") - TT_LINE(" 1, 0, 1, 1, 1, 0 | 1, 0, 0, 1 | 25, 16, 1, 1") - TRUTHTABLE_END() -#endif - - TRUTHTABLE_START(TTL_74155A_GATE, 4, 4, "") - TT_HEAD("B,A,G,C|0,1,2,3") - TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") - TT_LINE("X,X,0,0|1,1,1,1|13,13,13,13") - TT_LINE("0,0,0,1|0,1,1,1|13,13,13,13") - TT_LINE("0,1,0,1|1,0,1,1|13,13,13,13") - TT_LINE("1,0,0,1|1,1,0,1|13,13,13,13") - TT_LINE("1,1,0,1|1,1,1,0|13,13,13,13") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_74155B_GATE, 4, 4, "") - TT_HEAD("B,A,G,C|0,1,2,3") - TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") - TT_LINE("X,X,0,1|1,1,1,1|13,13,13,13") - TT_LINE("0,0,0,0|0,1,1,1|13,13,13,13") - TT_LINE("0,1,0,0|1,0,1,1|13,13,13,13") - TT_LINE("1,0,0,0|1,1,0,1|13,13,13,13") - TT_LINE("1,1,0,0|1,1,1,0|13,13,13,13") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_74156A_GATE, 4, 4, "") - TT_HEAD("B,A,G,C|0,1,2,3") - TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") - TT_LINE("X,X,0,0|1,1,1,1|13,13,13,13") - TT_LINE("0,0,0,1|0,1,1,1|13,13,13,13") - TT_LINE("0,1,0,1|1,0,1,1|13,13,13,13") - TT_LINE("1,0,0,1|1,1,0,1|13,13,13,13") - TT_LINE("1,1,0,1|1,1,1,0|13,13,13,13") - TT_FAMILY("74XXOC") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_74156B_GATE, 4, 4, "") - TT_HEAD("B,A,G,C|0,1,2,3") - TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") - TT_LINE("X,X,0,1|1,1,1,1|13,13,13,13") - TT_LINE("0,0,0,0|0,1,1,1|13,13,13,13") - TT_LINE("0,1,0,0|1,0,1,1|13,13,13,13") - TT_LINE("1,0,0,0|1,1,0,1|13,13,13,13") - TT_LINE("1,1,0,0|1,1,1,0|13,13,13,13") - TT_FAMILY("74XXOC") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_74157_GATE, 4, 4, "") - TT_HEAD("E,S,I,J|O") - TT_LINE("1,X,X,X|0|14") - TT_LINE("0,1,X,0|0|14") - TT_LINE("0,1,X,1|1|14") - TT_LINE("0,0,0,X|0|14") - TT_LINE("0,0,1,X|1|14") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_74260_GATE, 5, 1, "") - TT_HEAD("A,B,C,D,E|Q ") - TT_LINE("0,0,0,0,0|1|10") - TT_LINE("X,X,X,X,1|0|12") - TT_LINE("X,X,X,1,X|0|12") - TT_LINE("X,X,1,X,X|0|12") - TT_LINE("X,1,X,X,X|0|12") - TT_LINE("1,X,X,X,X|0|12") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_74260_NOR, 5, 1, "+A,+B,+C,+D,+E,@VCC,@GND") - TT_HEAD("A,B,C,D,E|Q") - TT_LINE("0,0,0,0,0|1|10") - TT_LINE("X,X,X,X,1|0|12") - TT_LINE("X,X,X,1,X|0|12") - TT_LINE("X,X,1,X,X|0|12") - TT_LINE("X,1,X,X,X|0|12") - TT_LINE("1,X,X,X,X|0|12") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - // FIXME: We need "private" devices - TRUTHTABLE_START(TTL_74279A, 3, 1, "") - TT_HEAD("S,R,_Q|Q") - TT_LINE("0,X,X|1|22") - TT_LINE("1,0,X|0|27") - TT_LINE("1,1,0|0|27") - TT_LINE("1,1,1|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(TTL_74279B, 4, 1, "") - TT_HEAD("S1,S2,R,_Q|Q") - TT_LINE("0,X,X,X|1|22") - TT_LINE("X,0,X,X|1|22") - TT_LINE("1,1,0,X|0|27") - TT_LINE("1,1,1,0|0|27") - TT_LINE("1,1,1,1|1|22") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - TRUTHTABLE_START(DM9312, 12, 2, "+A,+B,+C,+G,+D0,+D1,+D2,+D3,+D4,+D5,+D6,+D7,@VCC,@GND") - TT_HEAD(" C, B, A, G,D0,D1,D2,D3,D4,D5,D6,D7| Y,YQ") - TT_LINE(" X, X, X, 1, X, X, X, X, X, X, X, X| 0, 1|33,19") - TT_LINE(" 0, 0, 0, 0, 0, X, X, X, X, X, X, X| 0, 1|33,28") - TT_LINE(" 0, 0, 0, 0, 1, X, X, X, X, X, X, X| 1, 0|33,28") - TT_LINE(" 0, 0, 1, 0, X, 0, X, X, X, X, X, X| 0, 1|33,28") - TT_LINE(" 0, 0, 1, 0, X, 1, X, X, X, X, X, X| 1, 0|33,28") - TT_LINE(" 0, 1, 0, 0, X, X, 0, X, X, X, X, X| 0, 1|33,28") - TT_LINE(" 0, 1, 0, 0, X, X, 1, X, X, X, X, X| 1, 0|33,28") - TT_LINE(" 0, 1, 1, 0, X, X, X, 0, X, X, X, X| 0, 1|33,28") - TT_LINE(" 0, 1, 1, 0, X, X, X, 1, X, X, X, X| 1, 0|33,28") - TT_LINE(" 1, 0, 0, 0, X, X, X, X, 0, X, X, X| 0, 1|33,28") - TT_LINE(" 1, 0, 0, 0, X, X, X, X, 1, X, X, X| 1, 0|33,28") - TT_LINE(" 1, 0, 1, 0, X, X, X, X, X, 0, X, X| 0, 1|33,28") - TT_LINE(" 1, 0, 1, 0, X, X, X, X, X, 1, X, X| 1, 0|33,28") - TT_LINE(" 1, 1, 0, 0, X, X, X, X, X, X, 0, X| 0, 1|33,28") - TT_LINE(" 1, 1, 0, 0, X, X, X, X, X, X, 1, X| 1, 0|33,28") - TT_LINE(" 1, 1, 1, 0, X, X, X, X, X, X, X, 0| 0, 1|33,28") - TT_LINE(" 1, 1, 1, 0, X, X, X, X, X, X, X, 1| 1, 0|33,28") - TT_FAMILY("74XX") - TRUTHTABLE_END() - - LOCAL_LIB_ENTRY(TTL_7400_DIP) - LOCAL_LIB_ENTRY(TTL_7402_DIP) - LOCAL_LIB_ENTRY(TTL_7404_DIP) - LOCAL_LIB_ENTRY(TTL_7406_DIP) - LOCAL_LIB_ENTRY(TTL_7408_DIP) - LOCAL_LIB_ENTRY(TTL_7410_DIP) - LOCAL_LIB_ENTRY(TTL_7411_DIP) - LOCAL_LIB_ENTRY(TTL_7414_GATE) - LOCAL_LIB_ENTRY(TTL_74LS14_GATE) - LOCAL_LIB_ENTRY(TTL_7414_DIP) - LOCAL_LIB_ENTRY(TTL_74LS14_DIP) - LOCAL_LIB_ENTRY(TTL_7416_DIP) - LOCAL_LIB_ENTRY(TTL_7420_DIP) - LOCAL_LIB_ENTRY(TTL_7421_DIP) - LOCAL_LIB_ENTRY(TTL_7425_DIP) - LOCAL_LIB_ENTRY(TTL_7427_DIP) - LOCAL_LIB_ENTRY(TTL_7430_DIP) - LOCAL_LIB_ENTRY(TTL_7432_DIP) - LOCAL_LIB_ENTRY(TTL_7437_DIP) -#if (NL_USE_TRUTHTABLE_7448) - LOCAL_LIB_ENTRY(TTL_7448_DIP) -#endif - LOCAL_LIB_ENTRY(TTL_7486_DIP) - LOCAL_LIB_ENTRY(TTL_74121_DIP) - LOCAL_LIB_ENTRY(TTL_74123_DIP) - LOCAL_LIB_ENTRY(TTL_9602_DIP) - LOCAL_LIB_ENTRY(TTL_74125_DIP) - LOCAL_LIB_ENTRY(TTL_74126_DIP) -#if (NL_USE_TRUTHTABLE_74107) - LOCAL_LIB_ENTRY(TTL_74107_DIP) -#endif - LOCAL_LIB_ENTRY(TTL_74155_DIP) - LOCAL_LIB_ENTRY(TTL_74156_DIP) - LOCAL_LIB_ENTRY(TTL_74157_DIP) - LOCAL_LIB_ENTRY(TTL_74260_DIP) - LOCAL_LIB_ENTRY(TTL_74279_DIP) - LOCAL_LIB_ENTRY(TTL_74377_DIP) - LOCAL_LIB_ENTRY(TTL_74378_DIP) - LOCAL_LIB_ENTRY(TTL_74379_DIP) - LOCAL_LIB_ENTRY(DM9312_DIP) -NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,367 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud - -#ifndef NLM_TTL74XX_H_ -#define NLM_TTL74XX_H_ - -/// -/// \file nlm_ttl74xx.h -/// - -#include "netlist/nl_setup.h" - -#ifndef __PLIB_PREPROCESSOR__ - -/* ---------------------------------------------------------------------------- - * Netlist Macros - * ---------------------------------------------------------------------------*/ - -#if !NL_AUTO_DEVICES - -#define TTL_7400_GATE(name) \ - NET_REGISTER_DEV(TTL_7400_GATE, name) - -#define TTL_7400_NAND(name, cA, cB) \ - NET_REGISTER_DEV(TTL_7400_NAND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) - -#define TTL_7400_DIP(name) \ - NET_REGISTER_DEV(TTL_7400_DIP, name) - - -#define TTL_7402_GATE(name) \ - NET_REGISTER_DEV(TTL_7402_GATE, name) - -#define TTL_7402_NOR(name, cI1, cI2) \ - NET_REGISTER_DEV(TTL_7402_NOR, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) - -#define TTL_7402_DIP(name) \ - NET_REGISTER_DEV(TTL_7402_DIP, name) - -#define TTL_7404_GATE(name) \ - NET_REGISTER_DEV(TTL_7404_GATE, name) - -#define TTL_7404_INVERT(name, cA) \ - NET_REGISTER_DEV(TTL_7404_INVERT, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA) - -#define TTL_7404_DIP(name) \ - NET_REGISTER_DEV(TTL_7404_DIP, name) - - -#define TTL_7406_GATE(name) \ - NET_REGISTER_DEV(TTL_7406_GATE, name) - -#define TTL_7406_DIP(name) \ - NET_REGISTER_DEV(TTL_7406_DIP, name) - - -#define TTL_7408_GATE(name) \ - NET_REGISTER_DEV(TTL_7408_GATE, name) - -#define TTL_7408_AND(name, cA, cB) \ - NET_REGISTER_DEV(TTL_7408_AND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) - -#define TTL_7408_DIP(name) \ - NET_REGISTER_DEV(TTL_7408_DIP, name) - -#define TTL_7410_GATE(name) \ - NET_REGISTER_DEV(TTL_7410_GATE, name) - -#define TTL_7410_NAND(name, cI1, cI2, cI3) \ - NET_REGISTER_DEV(TTL_7410_NAND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) \ - NET_CONNECT(name, C, cI3) - -#define TTL_7410_DIP(name) \ - NET_REGISTER_DEV(TTL_7410_DIP, name) - - -#define TTL_7411_GATE(name) \ - NET_REGISTER_DEV(TTL_7411_GATE, name) - -#define TTL_7411_AND(name, cI1, cI2, cI3) \ - NET_REGISTER_DEV(TTL_7411_AND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) \ - NET_CONNECT(name, C, cI3) - -#define TTL_7411_DIP(name) \ - NET_REGISTER_DEV(TTL_7411_DIP, name) - -#define TTL_7414_GATE(name) \ - NET_REGISTER_DEV(TTL_7414_GATE, name) - -#define TTL_7414_DIP(name) \ - NET_REGISTER_DEV(TTL_7414_DIP, name) - - -#define TTL_74LS14_GATE(name) \ - NET_REGISTER_DEV(TTL_74LS14_GATE, name) - -#define TTL_74LS14_DIP(name) \ - NET_REGISTER_DEV(TTL_74LS14_DIP, name) - - -#define TTL_7416_GATE(name) \ - NET_REGISTER_DEV(TTL_7416_GATE, name) - -#define TTL_7416_DIP(name) \ - NET_REGISTER_DEV(TTL_7416_DIP, name) - - -#define TTL_7420_GATE(name) \ - NET_REGISTER_DEV(TTL_7420_GATE, name) - -#define TTL_7420_NAND(name, cI1, cI2, cI3, cI4) \ - NET_REGISTER_DEV(TTL_7420_NAND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) \ - NET_CONNECT(name, C, cI3) \ - NET_CONNECT(name, D, cI4) - -#define TTL_7420_DIP(name) \ - NET_REGISTER_DEV(TTL_7420_DIP, name) - - -#define TTL_7421_GATE(name) \ - NET_REGISTER_DEV(TTL_7421_GATE, name) - -#define TTL_7421_AND(name, cI1, cI2, cI3, cI4) \ - NET_REGISTER_DEV(TTL_7421_AND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) \ - NET_CONNECT(name, C, cI3) \ - NET_CONNECT(name, D, cI4) - -#define TTL_7421_DIP(name) \ - NET_REGISTER_DEV(TTL_7421_DIP, name) - - -#define TTL_7425_GATE(name) \ - NET_REGISTER_DEV(TTL_7425_GATE, name) - -#define TTL_7425_NOR(name, cI1, cI2, cI3, cI4) \ - NET_REGISTER_DEV(TTL_7425_NOR, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) \ - NET_CONNECT(name, C, cI3) \ - NET_CONNECT(name, D, cI4) - -#define TTL_7425_DIP(name) \ - NET_REGISTER_DEV(TTL_7425_DIP, name) - - -#define TTL_7427_GATE(name) \ - NET_REGISTER_DEV(TTL_7427_GATE, name) - -#define TTL_7427_NOR(name, cI1, cI2, cI3) \ - NET_REGISTER_DEV(TTL_7427_NOR, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) \ - NET_CONNECT(name, C, cI3) - -#define TTL_7427_DIP(name) \ - NET_REGISTER_DEV(TTL_7427_DIP, name) - - -#define TTL_7430_GATE(name) \ - NET_REGISTER_DEV(TTL_7430_GATE, name) - -#define TTL_7430_NAND(name, cI1, cI2, cI3, cI4, cI5, cI6, cI7, cI8)\ - NET_REGISTER_DEV(TTL_7430_NAND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) \ - NET_CONNECT(name, C, cI3) \ - NET_CONNECT(name, D, cI4) \ - NET_CONNECT(name, E, cI5) \ - NET_CONNECT(name, F, cI6) \ - NET_CONNECT(name, G, cI7) \ - NET_CONNECT(name, H, cI8) - -#define TTL_7430_DIP(name) \ - NET_REGISTER_DEV(TTL_7430_DIP, name) - - -#define TTL_7432_GATE(name) \ - NET_REGISTER_DEV(TTL_7432_OR, name) - -#define TTL_7432_OR(name, cI1, cI2) \ - NET_REGISTER_DEV(TTL_7432_OR, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cI1) \ - NET_CONNECT(name, B, cI2) - -#define TTL_7432_DIP(name) \ - NET_REGISTER_DEV(TTL_7432_DIP, name) - -#define TTL_7437_GATE(name) \ - NET_REGISTER_DEV(TTL_7437_GATE, name) - -#define TTL_7437_NAND(name, cA, cB) \ - NET_REGISTER_DEV(TTL_7437_NAND, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) - -#define TTL_7437_DIP(name) \ - NET_REGISTER_DEV(TTL_7437_DIP, name) - - -#if (NL_USE_TRUTHTABLE_7448) -#define TTL_7448(name, cA0, cA1, cA2, cA3, cLTQ, cBIQ, cRBIQ) \ - NET_REGISTER_DEV(TTL_7448, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA0) \ - NET_CONNECT(name, B, cA1) \ - NET_CONNECT(name, C, cA2) \ - NET_CONNECT(name, D, cA3) \ - NET_CONNECT(name, LTQ, cLTQ) \ - NET_CONNECT(name, BIQ, cBIQ) \ - NET_CONNECT(name, RBIQ, cRBIQ) - -#define TTL_7448_DIP(name) \ - NET_REGISTER_DEV(TTL_7448_DIP, name) - -#endif - -#define TTL_7486_GATE(name) \ - NET_REGISTER_DEV(TTL_7486_GATE, name) - -#define TTL_7486_XOR(name, cA, cB) \ - NET_REGISTER_DEV(TTL_7486_XOR, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) - -#define TTL_7486_DIP(name) \ - NET_REGISTER_DEV(TTL_7486_DIP, name) - -#if (NL_USE_TRUTHTABLE_74107) -#define TTL_74107(name, cCLK, cJ, cK, cCLRQ) \ - NET_REGISTER_DEV(TTL_74107, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, CLK, cCLK) \ - NET_CONNECT(name, J, cJ) \ - NET_CONNECT(name, K, cK) \ - NET_CONNECT(name, CLRQ, cCLRQ) - -#define TTL_74107_DIP(name) \ - NET_REGISTER_DEV(TTL_74107_DIP, name) - -#endif - -#define TTL_74121_DIP(name) \ - NET_REGISTER_DEV(TTL_74121_DIP, name) - -#define TTL_74123_DIP(name) \ - NET_REGISTER_DEV(TTL_74123_DIP, name) - -#define TTL_9602_DIP(name) \ - NET_REGISTER_DEV(TTL_9602_DIP, name) - -#define TTL_74125_DIP(name) \ - NET_REGISTER_DEV(TTL_74125_DIP, name) - -#define TTL_74155_DIP(name) \ - NET_REGISTER_DEV(TTL_74155_DIP, name) - -#define TTL_74156_DIP(name) \ - NET_REGISTER_DEV(TTL_74156_DIP, name) - -#define TTL_74157_DIP(name) \ - NET_REGISTER_DEV(TTL_74157_DIP, name) - -#define TTL_74260_GATE(name) \ - NET_REGISTER_DEV(TTL_74260_GATE, name) - -#define TTL_74260_NOR(name, cA, cB, cC, cD, cE) \ - NET_REGISTER_DEV(TTL_74260_NOR, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) \ - NET_CONNECT(name, C, cC) \ - NET_CONNECT(name, D, cD) \ - NET_CONNECT(name, E, cE) - -#define TTL_74260_DIP(name) \ - NET_REGISTER_DEV(TTL_74260_DIP, name) - -#define TTL_74279_DIP(name) \ - NET_REGISTER_DEV(TTL_74279_DIP, name) - -#define TTL_74377_DIP(name) \ - NET_REGISTER_DEV(TTL_74377_DIP, name) - -#define TTL_74378_DIP(name) \ - NET_REGISTER_DEV(TTL_74378_DIP, name) - -#define TTL_74379_DIP(name) \ - NET_REGISTER_DEV(TTL_74379_DIP, name) - -#define DM9312(name, cA, cB, cC, cSTROBE, cD0, cD1, cD2, cD3, cD4, cD5, cD6, cD7) \ - NET_REGISTER_DEV(DM9312, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) \ - NET_CONNECT(name, C, cC) \ - NET_CONNECT(name, G, cSTROBE) \ - NET_CONNECT(name, D0, cD0) \ - NET_CONNECT(name, D1, cD1) \ - NET_CONNECT(name, D2, cD2) \ - NET_CONNECT(name, D3, cD3) \ - NET_CONNECT(name, D4, cD4) \ - NET_CONNECT(name, D5, cD5) \ - NET_CONNECT(name, D6, cD6) \ - NET_CONNECT(name, D7, cD7) - -#define DM9312_DIP(name) \ - NET_REGISTER_DEV(DM9312_DIP, name) - -#endif // NL_AUTO_DEVICES - -/* ---------------------------------------------------------------------------- - * External declarations - * ---------------------------------------------------------------------------*/ - -NETLIST_EXTERNAL(TTL74XX_lib) - -#endif // __PLIB_PREPROCESSOR__ - - -#endif // NLM_TTL74XX diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,3419 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#include "netlist/devices/net_lib.h" + +//- Identifier: TTL_7400_DIP +//- Title: 5400/DM5400/DM7400 Quad 2-Input NAND Gates +//- Description: This device contains four independent gates each of which performs the logic NAND function. +//- Pinalias: A1,B1,Y1,A2,B2,Y2,GND,Y3,A3,B3,Y4,A4,B4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006613.PDF +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 1 | +//- | 0 | 1 || 1 | +//- | 1 | 0 || 1 | +//- | 1 | 1 || 0 | +//- +---+---++---+ +//- +static NETLIST_START(TTL_7400_DIP) + TTL_7400_NAND(A) + TTL_7400_NAND(B) + TTL_7400_NAND(C) + TTL_7400_NAND(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| B4 */ D.B, + A.Q, /* Y1 |3 12| A4 */ D.A, + B.A, /* A2 |4 7400 11| Y4 */ D.Q, + B.B, /* B2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7402_DIP +//- Title: 5402/DM5402/DM7402 Quad 2-Input NOR Gates +//- Description: This device contains four independent gates each of which performs the logic NOR function. +//- Pinalias: Y1,A1,B1,Y2,A2,B2,GND,A3,B3,Y3,A4,B4,Y4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006492.PDF +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 1 | +//- | 0 | 1 || 0 | +//- | 1 | 0 || 0 | +//- | 1 | 1 || 0 | +//- +---+---++---+ +//- +static NETLIST_START(TTL_7402_DIP) + TTL_7402_NOR(A) + TTL_7402_NOR(B) + TTL_7402_NOR(C) + TTL_7402_NOR(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.Q, /* Y1 |1 ++ 14| VCC */ A.VCC, + A.A, /* A1 |2 13| Y4 */ D.Q, + A.B, /* B1 |3 12| B4 */ D.B, + B.Q, /* Y2 |4 7402 11| A4 */ D.A, + B.A, /* A2 |5 10| Y3 */ C.Q, + B.B, /* B2 |6 9| B3 */ C.B, + A.GND, /* GND |7 8| A3 */ C.A + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7404_DIP +//- Title: 5404/DM5404/DM7404 Hex Inverting Gates +//- Description: This device contains six independent gates each of which performs the logic INVERT function. +//- Pinalias: A1,Y1,A2,Y2,A3,Y3,GND,Y4,A4,Y5,A5,Y6,A6,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006494.PDF +//- +//- +---++---+ +//- | A || Y | +//- +===++===+ +//- | 0 || 1 | +//- | 1 || 0 | +//- +---++---+ +//- +static NETLIST_START(TTL_7404_DIP) + TTL_7404_INVERT(A) + TTL_7404_INVERT(B) + TTL_7404_INVERT(C) + TTL_7404_INVERT(D) + TTL_7404_INVERT(E) + TTL_7404_INVERT(F) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.Q, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Q, + B.Q, /* Y2 |4 7404 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Q, + C.Q, /* Y3 |6 9| A4 */ D.A, + A.GND, /* GND |7 8| Y4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7406_DIP +//- Title: DM5406/DM7406 Hex Inverting Buffers with High Voltage Open-Collector Outputs +//- Description: This device contains six independent buffers each of which performs the logic INVERT function. +//- The open-collector outputs require external pull-up resistors for proper logical operation. +//- Pinalias: A1,Y1,A2,Y2,A3,Y3,GND,Y4,A4,Y5,A5,Y6,A6,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: Open collector behavior currently not simulated. +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006496.PDF +//- +//- +---++---+ +//- | A || Y | +//- +===++===+ +//- | 0 || 1 | +//- | 1 || 0 | +//- +---++---+ +//- +static NETLIST_START(TTL_7406_DIP) + TTL_7406_GATE(A) + TTL_7406_GATE(B) + TTL_7406_GATE(C) + TTL_7406_GATE(D) + TTL_7406_GATE(E) + TTL_7406_GATE(F) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.Y, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Y, + B.Y, /* Y2 |4 7406 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Y, + C.Y, /* Y3 |6 9| A4 */ D.A, + A.GND, /* GND |7 8| Y4 */ D.Y + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7407_DIP +//- Title: DM5407/DM7407 Hex Buffers with High Voltage Open-Collector Outputs +//- Description: This device contains six independent gates each of which performs a buffer function. +//- The open-collector outputs re-quire external pull-up resistors for proper logical operation. +//- Pinalias: A1,Y1,A2,Y2,A3,Y3,GND,Y4,A4,Y5,A5,Y6,A6,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: Open collector behavior currently not simulated. +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006497.PDF +//- +//- +---++---+ +//- | A || Y | +//- +===++===+ +//- | 0 || 0 | +//- | 1 || 1 | +//- +---++---+ +//- +static NETLIST_START(TTL_7407_DIP) + TTL_7407_GATE(A) + TTL_7407_GATE(B) + TTL_7407_GATE(C) + TTL_7407_GATE(D) + TTL_7407_GATE(E) + TTL_7407_GATE(F) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.Y, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Y, + B.Y, /* Y2 |4 7407 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Y, + C.Y, /* Y3 |6 9| A4 */ D.A, + A.GND,/* GND |7 8| Y4 */ D.Y + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7408_DIP +//- Title: 5408/DM5408/DM7408 Quad 2-Input AND Gates +//- Description: This device contains four independent gates each of which performs the logic AND function. +//- Pinalias: A1,B1,Y1,A2,B2,Y2,GND,Y3,A3,B3,Y4,A4,B4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006498.PDF +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 0 | +//- | 0 | 1 || 0 | +//- | 1 | 0 || 0 | +//- | 1 | 1 || 1 | +//- +---+---++---+ +//- +static NETLIST_START(TTL_7408_DIP) + TTL_7408_AND(A) + TTL_7408_AND(B) + TTL_7408_AND(C) + TTL_7408_AND(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| B4 */ D.B, + A.Q, /* Y1 |3 12| A4 */ D.A, + B.A, /* A2 |4 7408 11| Y4 */ D.Q, + B.B, /* B2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7410_DIP +//- Title: 5410/DM5410/DM7410 Triple 3-Input NAND Gates +//- Description: This device contains three independent gates each of which performs the logic NAND function. +//- Pinalias: A1,B1,A2,B2,C2,Y2,GND,Y3,A3,B3,C3,Y1,C1,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006500.PDF +//- +//- +---+---+---++---+ +//- | A | B | C || Y | +//- +===+===+===++===+ +//- | X | X | 0 || 1 | +//- | X | 0 | X || 1 | +//- | 0 | X | X || 1 | +//- | 1 | 1 | 1 || 0 | +//- +---+---+---++---+ +//- +static NETLIST_START(TTL_7410_DIP) + TTL_7410_NAND(A) + TTL_7410_NAND(B) + TTL_7410_NAND(C) + + NET_C(A.VCC, B.VCC, C.VCC) + NET_C(A.GND, B.GND, C.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| C1 */ A.C, + B.A, /* A2 |3 12| Y1 */ A.Q, + B.B, /* B2 |4 7410 11| C3 */ C.C, + B.C, /* C2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7411_DIP +//- Title: DM7411 Triple 3-Input AND Gate +//- Description: This device contains three independent gates with three data inputs each which perform the logic AND function. +//- Pinalias: A1,B1,A2,B2,C2,Y2,GND,Y3,A3,B3,C3,Y1,C1,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009774.PDF +//- +//- +---+---+---++---+ +//- | A | B | C || Y | +//- +===+===+===++===+ +//- | X | X | 0 || 0 | +//- | X | 0 | X || 0 | +//- | 0 | X | X || 0 | +//- | 1 | 1 | 1 || 1 | +//- +---+---+---++---+ +//- +static NETLIST_START(TTL_7411_DIP) + TTL_7411_AND(A) + TTL_7411_AND(B) + TTL_7411_AND(C) + + NET_C(A.VCC, B.VCC, C.VCC) + NET_C(A.GND, B.GND, C.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| C1 */ A.C, + B.A, /* A2 |3 12| Y1 */ A.Q, + B.B, /* B2 |4 7411 11| C3 */ C.C, + B.C, /* C2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7414_DIP +//- Title: DM5414/DM7414 Hex Inverter withSchmitt Trigger Inputs +//- Description: This device contains six independent gates each of whichperforms the logic INVERT function. +//- Each input has hysteresis which increases the noise immunity and transforms a slowly changing input +//- signal to a fast changing, jitter free output. +//- Pinalias: A1,Y1,A2,Y2,A3,Y3,GND,Y4,A4,Y5,A5,Y6,A6,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006503.PDF +//- +//- +---++---+ +//- | A || Y | +//- +===++===+ +//- | 0 || 1 | +//- | 1 || 0 | +//- +---++---+ +//- +static NETLIST_START(TTL_7414_GATE) + SCHMITT_TRIGGER(X, "DM7414") + ALIAS(A, X.A) + ALIAS(Q, X.Q) + ALIAS(GND, X.GND) + ALIAS(VCC, X.VCC) +NETLIST_END() + +static NETLIST_START(TTL_74LS14_GATE) + SCHMITT_TRIGGER(X, "DM74LS14") + ALIAS(A, X.A) + ALIAS(Q, X.Q) + ALIAS(GND, X.GND) + ALIAS(VCC, X.VCC) +NETLIST_END() + +static NETLIST_START(TTL_7414_DIP) + SCHMITT_TRIGGER(A, "DM7414") + SCHMITT_TRIGGER(B, "DM7414") + SCHMITT_TRIGGER(C, "DM7414") + SCHMITT_TRIGGER(D, "DM7414") + SCHMITT_TRIGGER(E, "DM7414") + SCHMITT_TRIGGER(F, "DM7414") + + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.Q, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Q, + B.Q, /* Y2 |4 7414 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Q, + C.Q, /* Y3 |6 9| A4 */ D.A, + A.GND, /* GND |7 8| Y4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +static NETLIST_START(TTL_74LS14_DIP) + SCHMITT_TRIGGER(A, "DM74LS14") + SCHMITT_TRIGGER(B, "DM74LS14") + SCHMITT_TRIGGER(C, "DM74LS14") + SCHMITT_TRIGGER(D, "DM74LS14") + SCHMITT_TRIGGER(E, "DM74LS14") + SCHMITT_TRIGGER(F, "DM74LS14") + + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.Q, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Q, + B.Q, /* Y2 |4 74LS14 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Q, + C.Q, /* Y3 |6 9| A4 */ D.A, + A.GND, /* GND |7 8| Y4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7416_DIP +//- Title: DM5416/DM7416 Hex Inverting Buffers with High Voltage Open-Collector Outputs +//- Description: This device contains six independent gates each of which performs the logic INVERT function. +//- The open-collector outputs require external pull-up resistors for proper logical operation. +//- Pinalias: A1,Y1,A2,Y2,A3,Y3,GND,Y4,A4,Y5,A5,Y6,A6,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006504.PDF +//- +//- +---++---+ +//- | A || Y | +//- +===++===+ +//- | 0 || 1 | +//- | 1 || 0 | +//- +---++---+ +//- +static NETLIST_START(TTL_7416_DIP) + TTL_7416_GATE(A) + TTL_7416_GATE(B) + TTL_7416_GATE(C) + TTL_7416_GATE(D) + TTL_7416_GATE(E) + TTL_7416_GATE(F) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.Q, /* Y1 |2 13| A6 */ F.A, + B.A, /* A2 |3 12| Y6 */ F.Q, + B.Q, /* Y2 |4 7416 11| A5 */ E.A, + C.A, /* A3 |5 10| Y5 */ E.Q, + C.Q, /* Y3 |6 9| A4 */ D.A, + A.GND, /* GND |7 8| Y4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7420_DIP +//- Title: 5420/DM5420/DM7420 Dual 4-Input NAND Gates +//- Description: This device contains two independent gates each of which performs the logic NAND function. +//- Pinalias: A1,B1,NC,C1,D1,Y1,GND,Y2,A2,B2,NC,C2,D2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006506.PDF +//- +//- +---+---+---+---++---+ +//- | A | B | C | D || Y | +//- +===+===+===+===++===+ +//- | X | X | X | 0 || 1 | +//- | X | X | 0 | X || 1 | +//- | X | 0 | X | X || 1 | +//- | 0 | X | X | X || 1 | +//- | 1 | 1 | 1 | 1 || 0 | +//- +---+---+---+---++---+ +//- +static NETLIST_START(TTL_7420_DIP) + TTL_7420_NAND(A) + TTL_7420_NAND(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| D2 */ B.D, + NC.I, /* NC |3 12| C2 */ B.C, + A.C, /* C1 |4 7420 11| NC */ NC.I, + A.D, /* D1 |5 10| B2 */ B.B, + A.Q, /* Y1 |6 9| A2 */ B.A, + A.GND, /* GND |7 8| Y2 */ B.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7421_DIP +//- Title: 54LS21/DM54LS21/DM74LS21 Dual 4-Input AND Gates +//- Description: This device contains two independent 4-input gates each of which performs the logic AND function. +//- Pinalias: A1,B1,NC,C1,D1,Y1,GND,Y2,A2,B2,NC,C2,D2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006356.PDF +//- +//- +---+---+---+---++---+ +//- | A | B | C | D || Y | +//- +===+===+===+===++===+ +//- | X | X | X | 0 || 1 | +//- | X | X | 0 | X || 1 | +//- | X | 0 | X | X || 1 | +//- | 0 | X | X | X || 1 | +//- | 1 | 1 | 1 | 1 || 0 | +//- +---+---+---+---++---+ +//- +static NETLIST_START(TTL_7421_DIP) + TTL_7421_AND(A) + TTL_7421_AND(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| D2 */ B.D, + NC.I, /* NC |3 12| C2 */ B.C, + A.C, /* C1 |4 7421 11| NC */ NC.I, + A.D, /* D1 |5 10| B2 */ B.B, + A.Q, /* Y1 |6 9| A2 */ B.A, + A.GND, /* GND |7 8| Y2 */ B.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7425_DIP +//- Title: 5425/DM7425 Dual 4-Input NOR Gate (with Strobe) +//- Description: This device contains 2, 4-input gates that perform the logical NOR function. +//- The output of each NOR gate is gated (strobed) by pin 3 and 11 by positive true logic, i.e., logic "1" equals output on. +//- Pinalias: A1,B1,X1,C1,D1,Y1,GND,Y2,A2,B2,X2,C2,D2 +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: The "X" input and high impedance output are currently not simulated. +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet_pdf/national-semiconductor/5425DMQB_to_DM7425N.pdf +//- +//- +---+---+---+---+---++---+ +//- | A | B | C | D | X || Y | +//- +===+===+===+===+===++===+ +//- | X | X | X | X | 0 || Z | +//- | 0 | 0 | 0 | 0 | 1 || 1 | +//- | X | X | X | 1 | 1 || 0 | +//- | X | X | 1 | X | 1 || 0 | +//- | X | 1 | X | X | 1 || 0 | +//- | 1 | X | X | X | 1 || 0 | +//- +---+---+---+---+---++---+ +//- +static NETLIST_START(TTL_7425_DIP) + TTL_7425_NOR(A) + TTL_7425_NOR(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + NC_PIN(XA) // FIXME: Functionality needs to be implemented + NC_PIN(XB) // FIXME: Functionality needs to be implemented + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| D2 */ B.D, + XA.I, /* X1 |3 12| C2 */ B.C, + A.C, /* C1 |4 7425 11| X2 */ XB.I, + A.D, /* D1 |5 10| B2 */ B.B, + A.Q, /* Y1 |6 9| A2 */ B.A, + A.GND, /* GND |7 8| Y2 */ B.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7427_DIP +//- Title: DM7427 Triple 3-Input NOR Gates +//- Description: This device contains three independent gates each of which performs the logic NOR function. +//- Pinalias: A1,B1,A2,B2,C2,Y2,GND,Y3,A3,B3,C3,Y1,C1,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006509.PDF +//- +//- +---+---+---++---+ +//- | A | B | C || Y | +//- +===+===+===++===+ +//- | X | X | 1 || 0 | +//- | X | 1 | X || 0 | +//- | 1 | X | X || 0 | +//- | 0 | 0 | 0 || 1 | +//- +---+---+---++---+ +//- +static NETLIST_START(TTL_7427_DIP) + TTL_7427_NOR(A) + TTL_7427_NOR(B) + TTL_7427_NOR(C) + + NET_C(A.VCC, B.VCC, C.VCC) + NET_C(A.GND, B.GND, C.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| C1 */ A.C, + B.A, /* A2 |3 12| Y1 */ A.Q, + B.B, /* B2 |4 7427 11| C3 */ C.C, + B.C, /* C2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7430_DIP +//- Title: 5430/DM5430/DM7430 8-Input NAND Gate +//- Description: This device contains a single gate which performs the logic NAND function. +//- Pinalias: A,B,C,D,E,F,GND,Y,NC,NC,G,H,NC,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006510.PDF +//- +//- +---+---+---+---+---+---+---+---++---+ +//- | A | B | C | D | E | F | G | H || Y | +//- +===+===+===+===+===+===+===+===++===+ +//- | X | X | X | X | X | X | X | 0 || 1 | +//- | X | X | X | X | X | X | 0 | X || 1 | +//- | X | X | X | X | X | 0 | X | X || 1 | +//- | X | X | X | X | 0 | X | X | X || 1 | +//- | X | X | X | 0 | X | X | X | X || 1 | +//- | X | X | 0 | X | X | X | X | X || 1 | +//- | X | 0 | X | X | X | X | X | X || 1 | +//- | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 0 | +//- +---+---+---+---+---+---+---+---++---+ +//- +static NETLIST_START(TTL_7430_DIP) + TTL_7430_NAND(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.A, /* A |1 ++ 14| VCC */ A.VCC, + A.B, /* B |2 13| NC */ NC.I, + A.C, /* C |3 12| H */ A.H, + A.D, /* D |4 7430 11| G */ A.G, + A.E, /* E |5 10| NC */ NC.I, + A.F, /* F |6 9| NC */ NC.I, + A.GND, /* GND |7 8| Y */ A.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7432_DIP +//- Title: 5432/DM5432/DM7432 Quad 2-Input OR Gates +//- Description: This device contains four independent gates each of whichperforms the logic OR function. +//- Pinalias: A1,B1,Y1,A2,B2,Y2,GND,Y3,A3,B3,Y4,A4,B4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006511.PDF +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 0 | +//- | 0 | 1 || 1 | +//- | 1 | 0 || 1 | +//- | 1 | 1 || 1 | +//- +---+---++---+ +//- +static NETLIST_START(TTL_7432_DIP) + TTL_7432_OR(A) + TTL_7432_OR(B) + TTL_7432_OR(C) + TTL_7432_OR(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| B4 */ D.B, + A.Q, /* Y1 |3 12| A4 */ D.A, + B.A, /* A2 |4 7432 11| Y4 */ D.Q, + B.B, /* B2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7437_DIP +//- Title: 5437/DM5437/DM7437 Quad 2-Input NAND Buffers +//- Description: This device contains four independent gates each of whichperforms the logic OR function. +//- Pinalias: A1,B1,Y1,A2,B2,Y2,GND,Y3,A3,B3,Y4,A4,B4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: Same as 7400, but drains higher output currents. Netlist currently does not model over currents (should it ever?) +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/105/236976_DS.pdf +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 1 | +//- | 0 | 1 || 1 | +//- | 1 | 0 || 1 | +//- | 1 | 1 || 0 | +//- +---+---++---+ +//- +static NETLIST_START(TTL_7437_DIP) + TTL_7437_NAND(A) + TTL_7437_NAND(B) + TTL_7437_NAND(C) + TTL_7437_NAND(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| B4 */ D.B, + A.Q, /* Y1 |3 12| A4 */ D.A, + B.A, /* A2 |4 7437 11| Y4 */ D.Q, + B.B, /* B2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7442_DIP +//- Title: 5442A/DM5442A/DM7442A BCD to Decimal Decoders +//- Description: These BCD-to-decimal decoders consist of eight inverters +//- and ten, four-input NAND gates. The inverters are +//- connected in pairs to make BCD input data available for +//- decoding by the NAND gates. Full decoding of input +//- logic ensures that all outputs remain off for all invalid +//- (10-15) input conditions. +//- Pinalias: 0,1,2,3,4,5,6,GND,7,8,9,D,C,B,A,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006516.PDF +//- +//- +---+---+---+---++---+---+---+---+---+---+---+---+---+---+ +//- | D | C | B | A || 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +//- +===+===+===+===++===+===+===+===+===+===+===+===+===+===+ +//- | 0 | 0 | 0 | 0 || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 0 | 0 | 1 || 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 0 | 1 | 0 || 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 0 | 1 | 1 || 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 1 | 0 | 0 || 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 1 | 0 | 1 || 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | +//- | 0 | 1 | 1 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | +//- | 0 | 1 | 1 | 1 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | +//- | 1 | 0 | 0 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | +//- | 1 | 0 | 0 | 1 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | +//- | 1 | 0 | 1 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 1 | 0 | 1 | 1 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 1 | 1 | 0 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 1 | 1 | 0 | 1 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 1 | 1 | 1 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 1 | 1 | 1 | 1 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- +---+---+---+---++---+---+---+---+---+---+---+---+---+---+ +//- +static NETLIST_START(TTL_7442_DIP) + NET_REGISTER_DEV(TTL_7442, A) + + DIPPINS( /* +--------------+ */ + A.Q0, /* 0 |1 ++ 16| VCC */ A.VCC, + A.Q1, /* 1 |2 15| A */ A.A, + A.Q2, /* 2 |3 14| B */ A.B, + A.Q3, /* 3 |4 13| C */ A.C, + A.Q4, /* 4 |5 7442 12| D */ A.D, + A.Q5, /* 5 |6 11| 9 */ A.Q9, + A.Q6, /* 6 |7 10| 8 */ A.Q8, + A.GND, /* GND |8 9| 7 */ A.Q7 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7448_DIP +//- Title: DM5448/DM48LS48/DM7448/DM74LS48 BCD to 7-Segment Decoder +//- Description: The 48 and LS48 feature active-high outputs for +//- driving lamp buffers or common-cathode LED's. +//- These circuits have full ripple-blanking input/output controls +//- and a lamp test input. Display patterns +//- for BCD input counts above nine are unique symbols +//- to authenticate input conditions. +//- These circuits incorporate automatic +//- leading and/or trailing-edge, zero-blanking control +//- (RBI and RBO). Lamp test (LT) of these devices may +//- be performed at any time when the BI/RBO node is at +//- a high logic level. They contain +//- an overriding blanking input (BI) which can be used +//- to control the lamp intensity (by pulsing), or to inhibit +//- the outputs. +//- Pinalias: A1,A2,LTQ,BIQ,RBIQ,A3,A0,GND,e,d,c,b,a,g,f,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS010172.PDF +//- +//- +-----+------+----+----+----+----++-----+---+---+---+---+---+---+---+ +//- | LTQ | RBIQ | A3 | A2 | A1 | A0 || BIQ | a | b | c | d | e | f | g | +//- +=====+======+====+====+====+====++=====+===+===+===+===+===+===+===+ +//- | 1 | 1 | 0 | 0 | 0 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | +//- | 1 | X | 0 | 0 | 0 | 1 || 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | +//- | 1 | X | 0 | 0 | 1 | 0 || 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | +//- | 1 | X | 0 | 0 | 1 | 1 || 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | +//- | 1 | X | 0 | 1 | 0 | 0 || 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | +//- | 1 | X | 0 | 1 | 0 | 1 || 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | +//- | 1 | X | 0 | 1 | 1 | 0 || 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | +//- | 1 | X | 0 | 1 | 1 | 1 || 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | +//- | 1 | X | 1 | 0 | 0 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 1 | X | 1 | 0 | 0 | 1 || 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | +//- | 1 | X | 1 | 0 | 1 | 0 || 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | +//- | 1 | X | 1 | 0 | 1 | 1 || 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | +//- | 1 | X | 1 | 1 | 0 | 0 || 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | +//- | 1 | X | 1 | 1 | 0 | 1 || 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | +//- | 1 | X | 1 | 1 | 1 | 0 || 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | +//- | 1 | X | 1 | 1 | 1 | 1 || 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +//- | X | X | X | X | X | X || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +//- | 1 | 0 | 0 | 0 | 0 | 0 || 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +//- | 0 | X | X | X | X | X || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- +-----+------+----+----+----+----++-----+---+---+---+---+---+---+---+ +//- +static NETLIST_START(TTL_7448_DIP) + + TTL_7448(A) + + DIPPINS( /* +--------------+ */ + A.B, /* B |1 ++ 16| VCC */ A.VCC, + A.C, /* C |2 15| f */ A.f, + A.LTQ, /* LTQ |3 14| g */ A.g, + A.BIQ, /* BIQ |4 7448 13| a */ A.a, + A.RBIQ, /* RBIQ |5 12| b */ A.b, + A.D, /* D |6 11| c */ A.c, + A.A, /* A |7 10| d */ A.d, + A.GND, /* GND |8 9| e */ A.e + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7450_DIP +//- Title: DM7450 Expandable Dual 2-Wide 2-Input AND-OR-INVERT Gate +//- Description: This device contains two independent combinations of gates, each of which perform the logic AND-OR-INVERT function. +//- One set of gates has an expander node. +//- Pinalias: A1,B1,Y1,A2,B2,Y2,GND,Y3,A3,B3,Y4,A4,B4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- Limitations: Expander signal is not implemented +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/105/236976_DS.pdf +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 1 | +//- | 0 | 1 || 1 | +//- | 1 | 0 || 1 | +//- | 1 | 1 || 0 | +//- +---+---++---+ +//- +static NETLIST_START(TTL_7450_DIP) + TTL_7450_ANDORINVERT(A) + TTL_7450_ANDORINVERT(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.A, /* 1A |1 ++ 14| VCC */ A.VCC, + B.A, /* 2A |2 13| 1B */ A.B, + B.B, /* 2B |3 12| 1XQ */ NC.I, + B.C, /* 2C |4 7450 11| 1X */ NC.I, + B.D, /* 2D |5 10| 1D */ A.D, + B.Q, /* 2Y |6 9| 1C */ A.C, + A.GND, /* GND |7 8| 1Y */ A.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7473_DIP +//- Title: 5473/DM5473/DM7473 Dual Master-Slave J-K Flip-Flops with Clear and Complementary Outputs +//- Description: This device contains two independent positive pulse triggered J-K flip-flops with complementary outputs. +//- The J and K data is processed by the flip-flops after a complete clock pulse. +//- While the clock is low the slave is isolated from the master. +//- On the positive transition of the clock, the data from the J and K inputs is transferred to teh master. +//- While the clock is high the J and K inputs are disabled. +//- On the negative transition of the clock, the data from the master is transferred to the slave. +//- The logic states of the J and K inputs must not be allowed to change while the clock is high. +//- Data transfers to the outputs on the falling edge of the clock pulse. +//- A low logic level on the clear input will reset the outputs regardless of the logic states of the other inputs. +//- Pinalias: CLK1,CLR1,K1,VCC,CLK2,CLR2,J2,QQ2,Q2,K2,GND,Q1,QQ1,J1 +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet_pdf/national-semiconductor/5473DMQB_to_DM7473N.pdf +//- +//- +-----+-------+---+---++---+----+ +//- | CLR | CLK | J | K || Q | QQ | +//- +=====+=======+===+===++===+====+ +//- | 0 | X | X | X || 0 | 1 | +//- | 1 | 0-1-0 | 0 | 0 || Q | QQ | +//- | 1 | 0-1-0 | 1 | 0 || 1 | 0 | +//- | 1 | 0-1-0 | 0 | 1 || 0 | 1 | +//- | 1 | 0-1-0 | 1 | 1 || Toggle | +//- +-----+-------+---+---++---+----+ +//- +static NETLIST_START(TTL_7473_DIP) + TTL_7473(A) + TTL_7473(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.CLK, /* CLK1 |1 ++ 14| J1 */ A.J, + A.CLRQ, /* CLR1 |2 13| QQ1 */ A.QQ, + A.K, /* K1 |3 12| Q1 */ A.Q, + A.VCC, /* VCC |4 7473 11| GND */ A.GND, + B.CLK, /* CLK2 |5 10| K2 */ B.K, + B.CLRQ, /* CLR2 |6 9| Q2 */ B.Q, + B.J, /* J2 |7 8| QQ2 */ B.QQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7473A_DIP +//- Title: DM54LS73A/DM74LS73A Dual Negative-Edge-Triggered Master-Slave J-K Flip-Flops with Clear and Complementary Outputs +//- Description: This device contains two independent negative-edge-triggered J-K flip-flops with complementary outputs. +//- The J and K data is processed by the flip-flops on the falling edge of the clock pulse. +//- The clock triggering occurs at a voltage level and is not directly related to the transition time of the negative going edge of the clock pulse. +//- The data on the J and K inputs is allowed to change while the clock is high or low without affecting the outputs as long as setup and hold times are not violated. +//- A low logic level on the clear input will reset the outputs regardless of the levels of the other inputs. +//- Pinalias: CLK1,CLR1,K1,VCC,CLK2,CLR2,J2,QQ2,Q2,K2,GND,Q1,QQ1,J1 +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semicouductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006372.PDF +//- +//- +-----+-----+---+---++---+----+ +//- | CLR | CLK | J | K || Q | QQ | +//- +=====+=====+===+===++===+====+ +//- | 0 | X | X | X || 0 | 1 | +//- | 1 | 1-0 | 0 | 0 || Q | QQ | +//- | 1 | 1-0 | 1 | 0 || 1 | 0 | +//- | 1 | 1-0 | 0 | 1 || 0 | 1 | +//- | 1 | 1-0 | 1 | 1 || Toggle | +//- | 1 | 1 | X | X || Q | QQ | +//- +-----+-----+---+---++---+----+ +//- +static NETLIST_START(TTL_7473A_DIP) + TTL_7473A(A) + TTL_7473A(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.CLK, /* CLK1 |1 ++ 14| J1 */ A.J, + A.CLRQ, /* CLR1 |2 13| QQ1 */ A.QQ, + A.K, /* K1 |3 12| Q1 */ A.Q, + A.VCC, /* VCC |4 7473A 11| GND */ A.GND, + B.CLK, /* CLK2 |5 10| K2 */ B.K, + B.CLRQ, /* CLR2 |6 9| Q2 */ B.Q, + B.J, /* J2 |7 8| QQ2 */ B.QQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7474_DIP +//- Title: 5474/DM5474/DM7474 Dual Positive-Edge-Triggered D Flip-Flops with Preset, Clear and Complementary Outputs +//- Description: This device contains two independent positive-edge-triggered D flip-flops with complementary outputs. +//- The information on the D input is accepted by the flip-flops on the positive going edge of the clock pulse. +//- The triggering occurs at a voltage level and is not directly related to the transition time of the rising edge of the clock. +//- The data on the D input may be changed while the clock is low or high without affecting the outputs as long as the data setup and hold times are not violated. +//- A low logic level on the preset or clear inputs will set or reset the outputs regardless of the logic levels of the other inputs. +//- Pinalias: CLR1,D1,CLK1,PR1,Q1,QQ1,GND,QQ2,Q2,PR2,CLK2,D2,CLR2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006526.PDF +//- +//- +----+-----+-----+---++---+----+ +//- | PR | CLR | CLK | D || Q | QQ | +//- +====+=====+=====+===++===+====+ +//- | 0 | 1 | X | X || 1 | 0 | +//- | 1 | 0 | X | X || 0 | 1 | +//- | 0 | 0 | X | X || 1 | 1 | (unstable) +//- | 1 | 1 | 0-1 | 1 || 1 | 0 | +//- | 1 | 1 | 0-1 | 0 || 0 | 1 | +//- | 1 | 1 | 0 | X || Q | QQ | +//- +----+-----+-----+---++---+----+ +//- +static NETLIST_START(TTL_7474_DIP) + TTL_7474(A) + TTL_7474(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* CLR1 |1 ++ 14| VCC */ A.VCC, + A.D, /* D1 |2 13| CLR2 */ B.CLRQ, + A.CLK, /* CLK1 |3 12| D2 */ B.D, + A.PREQ, /* PR1 |4 7474 11| CLK2 */ B.CLK, + A.Q, /* Q1 |5 10| PR2 */ B.PREQ, + A.QQ, /* QQ1 |6 9| Q2 */ B.Q, + A.GND, /* GND |7 8| QQ2 */ B.QQ + /* +-------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7475_DIP +//- Title: DM5475/DM7475/DM7475A/DM74LS75 4-bit D Latch +//- Description: These latches are ideally suited for use as temporary +//- storage for binary information between processing units +//- and input/output or indicator units. Information present +//- at a data (D) input is transferred to the Q output when +//- the enable (G) is high, and the Q output will follow +//- the data input as long as the enable remains high. When +//- the enable goes low, the information (that was present +//- at the data input at the time the transition occurred) is +//- retained at the Q output until the enable is permitted +//- to go high. +//- +//- The DM5475/DM7475, DM54L75A/DM74L75A, and +//- DM54LS75/DM74LS75 feature complementary Q and +//- QQ outputs from a 4-bit latch, and are available in 16-pin +//- packages. +//- Pinalias: QQ1,D1,D2,E34,VCC,D3,D4,QQ4,Q4,Q3,QQ3,GND,E12,QQ2,Q2,Q1 +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- https://ia800608.us.archive.org/5/items/bitsavers_nationaldaTTLDatabook_40452765/1976_National_TTL_Databook.pdf +//- +//- +---+---++---+----+ +//- | D | G || Q | QQ | +//- +===+===++===+====+ +//- | 0 | 1 || 0 | 1 | +//- | 1 | 1 || 1 | 0 | +//- | X | 0 || Q | QQ | +//- +---+---++---+----+ +//- +static NETLIST_START(TTL_7475_DIP) + TTL_7475_GATE(A) + TTL_7475_GATE(B) + TTL_7475_GATE(C) + TTL_7475_GATE(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + NET_C(A.CLK, B.CLK) + NET_C(C.CLK, D.CLK) + + DIPPINS( /* +--------------+ */ + A.QQ, /* QQ1 |1 ++ 16| Q1 */ A.Q, + A.D, /* D1 |2 15| Q2 */ B.Q, + B.D, /* D2 |3 14| QQ2 */ B.QQ, + C.CLK, /* E34 |4 7475 13| E12 */ A.CLK, + A.VCC, /* VCC |5 12| GND */ A.GND, + C.D, /* D3 |6 11| QQ3 */ C.QQ, + D.D, /* D4 |7 10| Q3 */ C.Q, + D.QQ, /* QQ4 |8 9| Q4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7477_DIP +//- Title: DM74LS77 4-bit D Latch +//- Description: These latches are ideally suited for use as temporary +//- storage for binary information between processing units +//- and input/output or indicator units. Information present +//- at a data (D) input is transferred to the Q output when +//- the enable (G) is high, and the Q output will follow +//- the data input as long as the enable remains high. When +//- the enable goes low, the information (that was present +//- at the data input at the time the transition occurred) is +//- retained at the Q output until the enable is permitted +//- to go high. +//- Pinalias: D1,D2,E34,VCC,D3,D4,NC,Q4,Q3,NC,GND,E12,Q2,Q1 +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- https://ia800608.us.archive.org/5/items/bitsavers_nationaldaTTLDatabook_40452765/1976_National_TTL_Databook.pdf +//- +//- +---+---++---+----+ +//- | D | G || Q | QQ | +//- +===+===++===+====+ +//- | 0 | 1 || 0 | 1 | +//- | 1 | 1 || 1 | 0 | +//- | X | 0 || Q | QQ | +//- +---+---++---+----+ +//- +static NETLIST_START(TTL_7477_DIP) + TTL_7477_GATE(A) + TTL_7477_GATE(B) + TTL_7477_GATE(C) + TTL_7477_GATE(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + NET_C(A.CLK, B.CLK) + NET_C(C.CLK, D.CLK) + + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.D, /* D1 |1 ++ 14| Q1 */ A.Q, + B.D, /* D2 |2 13| Q2 */ B.Q, + C.CLK, /* E34 |3 12| E12 */ A.CLK, + A.VCC, /* VCC |4 7477 11| GND */ A.GND, + C.D, /* D3 |5 10| NC */ NC.I, + D.D, /* D4 |6 9| Q3 */ C.Q, + NC.I, /* NC |7 8| Q4 */ D.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7483_DIP +//- Title: DM5483/DM7483/DM74LS83A 4-bit Binary Adders With Fast Carry +//- Description: These full adders perform the addition of two 4-bit +//- binary numbers. The sum (S) outputs are provided for +//- each bit and the resultant carry (C4) is obtained from +//- the fourth bit. These adders feature full internal look +//- ahead across all four bits. This provides the system +//- designer with partial look-ahead performance at the +//- economy and reduced package count of a ripple-carry +//- implementation. +//- +//- The adder logic, including the carry, is implemented in +//- its true form meaning that the end-around carry can be +//- accomplished without the need for logic or level inversion. +//- Pinalias: A4,S3,A3,B3,VCC,S2,B2,A2,S1,A1,B1,GND,C0,C4,S4,B4 +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006378.PDF +//- +static NETLIST_START(TTL_7483_DIP) + TTL_7483(A) + + DIPPINS( /* +--------------+ */ + A.A4, /* A4 |1 ++ 16| B4 */ A.B4, + A.S3, /* S3 |2 15| S4 */ A.S4, + A.A3, /* A3 |3 14| C4 */ A.C4, + A.B3, /* B3 |4 7483 13| C0 */ A.C0, + A.VCC, /* VCC |5 12| GND */ A.GND, + A.S2, /* S2 |6 11| B1 */ A.B1, + A.B2, /* B2 |7 10| A1 */ A.A1, + A.A2, /* A2 |8 9| S1 */ A.S1 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7485_DIP +//- Title: DM5485/DM7485/DM74L85/DM74LS85 4-Bit Magnitude Comparators +//- Description: These four-bit magnitude comparators perform comparison +//- of straight binary or BCD codes. Three +//- fully-decoded decisions about two, 4-bit words (A, B) +//- are made and are externally available at three outputs. +//- These devices are fully expandable to any number of +//- bits without external gates. Words of greater length may +//- be compared by connecting comparators in cascade. The +//- A > B, A < B, and A = B outputs of a stage handling +//- less-significant bits are connected to the corresponding +//- inputs of the next stage handling more-significant bits. +//- The stage handling the least-significant bits must have a +//- high-level voltage applied to the A = B input and in +//- addition for the L85, low-level voltages applied to the +//- A> B and A < B inputs. The cascading paths of the 85, +//- and LS85 are implemented with only a two-gate-Ievel +//- delay to reduce overall comparison times for long words. +//- Pinalias: B3,LTIN,EQIN,GTIN,GTOUT,EQOUT,LTOUT,GND,B0,A0,B1,A1,A2,B2,A3,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006379.PDF +//- +static NETLIST_START(TTL_7485_DIP) + TTL_7485(A) + + DIPPINS( /* +--------------+ */ + A.B3, /* B3 |1 ++ 16| VCC */ A.VCC, + A.LTIN, /* LTIN |2 15| A3 */ A.A3, + A.EQIN, /* EQIN |3 14| B2 */ A.B2, + A.GTIN, /* GTIN |4 7485 13| A2 */ A.A2, + A.GTOUT, /* GTOUT |5 12| A1 */ A.A1, + A.EQOUT, /* EQOUT |6 11| B1 */ A.B1, + A.LTOUT, /* LTOUT |7 10| A0 */ A.A0, + A.GND, /* GND |8 9| B0 */ A.B0 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7486_DIP +//- Title: 5486/DM5486/DM7486 Quad 2-Input Exclusive-OR Gates +//- Description: This device contains four independent gates each of which performs the logic exclusive-OR function. +//- Pinalias: A1,B1,Y1,A2,B2,Y2,GND,Y3,A3,B3,Y4,A4,B4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006531.PDF +//- +//- +---+---++---+ +//- | A | B || Y | +//- +===+===++===+ +//- | 0 | 0 || 0 | +//- | 0 | 1 || 1 | +//- | 1 | 0 || 1 | +//- | 1 | 1 || 0 | +//- +---+---++---+ +//- +static NETLIST_START(TTL_7486_DIP) + TTL_7486_XOR(A) + TTL_7486_XOR(B) + TTL_7486_XOR(C) + TTL_7486_XOR(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 14| VCC */ A.VCC, + A.B, /* B1 |2 13| B4 */ D.B, + A.Q, /* Y1 |3 12| A4 */ D.A, + B.A, /* A2 |4 7486 11| Y4 */ D.Q, + B.B, /* B2 |5 10| B3 */ C.B, + B.Q, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7490_DIP +//- Title: DM5490/DM7490A Decade Counter +//- Description: These monolithic counters contain four +//- master-slave flip-flops and additional gating to provide +//- a divide-by-two counter and a three-stage binary counter +//- for which the count cycle length is divide-by-five. +//- +//- These counters have a gated zero reset and +//- also have gated set-to-nine inputs +//- for use in BCD nine's complement applications. +//- +//- To use their maximum count length (decade), the B input is connected +//- to the QA output. The input count pulses are applied to +//- input A and the outputs are as described in the appropriate +//- truth table. A symmetrical divide-by-ten count can be +//- obtained from the by connecting the QD output to +//- the A input and applying the input count to the B input +//- which gives a divide-by-ten square wave at output QA. +//- Pinalias: B,R01,R02,NC,VCC,R91,R92,QC,QB,GND,QD,QA,NC,A +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006533.PDF +//- +//- BCD Count Sequence BCD Bi-Quinary +//- +-------++----+----+----+----+ +-------++----+----+----+----+ +//- | Count || QD | QC | QB | QA | | Count || QD | QC | QB | QA | +//- +=======++====+====+====+====+ +=======++====+====+====+====+ +//- | 0 || 0 | 0 | 0 | 0 | | 0 || 0 | 0 | 0 | 0 | +//- | 1 || 0 | 0 | 0 | 1 | | 1 || 0 | 0 | 0 | 1 | +//- | 2 || 0 | 0 | 1 | 0 | | 2 || 0 | 0 | 1 | 0 | +//- | 3 || 0 | 0 | 1 | 1 | | 3 || 0 | 0 | 1 | 1 | +//- | 4 || 0 | 1 | 0 | 0 | | 4 || 0 | 1 | 0 | 0 | +//- | 5 || 0 | 1 | 0 | 1 | | 5 || 1 | 0 | 0 | 0 | +//- | 6 || 0 | 1 | 1 | 0 | | 6 || 1 | 0 | 0 | 1 | +//- | 7 || 0 | 1 | 1 | 1 | | 7 || 1 | 0 | 1 | 0 | +//- | 8 || 1 | 0 | 0 | 0 | | 8 || 1 | 0 | 1 | 1 | +//- | 9 || 1 | 0 | 0 | 1 | | 9 || 1 | 1 | 0 | 0 | +//- +-------++----+----+----+----+ +-------++----+----+----+----+ +//- +//- Reset/Count Function Table +//- +-----+-----+-----+-----++----+----+----+----+ +//- | R01 | R02 | R91 | R92 || QD | QC | QB | QA | +//- +=====+=====+=====+=====++====+====+====+====+ +//- | 1 | 1 | 0 | X || 0 | 0 | 0 | 0 | +//- | 1 | 1 | X | 0 || 0 | 0 | 0 | 0 | +//- | X | X | 1 | 1 || 1 | 0 | 0 | 1 | +//- | X | 0 | X | 0 || COUNT | +//- | 0 | X | 0 | X || COUNT | +//- | 0 | X | X | 0 || COUNT | +//- | X | 0 | 0 | X || COUNT | +//- +-----+-----+-----+-----++----+----+----+----+ +//- +static NETLIST_START(TTL_7490_DIP) + TTL_7490(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.B, /* B |1 ++ 14| A */ A.A, + A.R1, /* R01 |2 13| NC */ NC.I, + A.R2, /* R02 |3 12| QA */ A.QA, + NC.I, /* NC |4 7490 11| QD */ A.QD, + A.VCC, /* VCC |5 10| GND */ A.GND, + A.R91, /* R91 |6 9| QB */ A.QB, + A.R92, /* R92 |7 8| QC */ A.QC + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7492_DIP +//- Title: SN5492A, SN54LS92, SN7492A, SN74LS92 Divide-By-Twelve Counter +//- Description: These monolithic counters contains four +//- master-slave flip-flops and additional gating to provide +//- a divide-by-two counter and a three-stage binary counter +//- for which the count cycle length is divide-by-six. +//- +//- These counters have a gated zero reset. +//- +//- To use their maximum count length (divide-by- +//- twelve), the B input is connected +//- to the QA output. The input count pulses are applied to +//- input A and the outputs are as described in the appropriate +//- truth table. +//- Pinalias: CKB,NC,NC,NC,VCC,R01,R02,QD,QC,GND,QB,QA,NC,CLKA +//- Package: DIP +//- NamingConvention: Naming conventions follow Texas Instruments datasheet +//- FunctionTable: +//- https://pdf1.alldatasheet.com/datasheet-pdf/view/27430/TI/SN7492A.html +//- +//- Count Sequence +//- +-------++----+----+----+----+ +//- | Count || QD | QC | QB | QA | +//- +=======++====+====+====+====+ +//- | 0 || 0 | 0 | 0 | 0 | +//- | 1 || 0 | 0 | 0 | 1 | +//- | 2 || 0 | 0 | 1 | 0 | +//- | 3 || 0 | 0 | 1 | 1 | +//- | 4 || 0 | 1 | 0 | 0 | +//- | 5 || 0 | 1 | 0 | 1 | +//- | 6 || 1 | 0 | 0 | 0 | +//- | 7 || 1 | 0 | 0 | 1 | +//- | 8 || 1 | 0 | 1 | 0 | +//- | 9 || 1 | 0 | 1 | 1 | +//- | 10 || 1 | 1 | 0 | 0 | +//- | 11 || 1 | 1 | 0 | 1 | +//- +-------++----+----+----+----+ +//- +//- Reset/Count Function Table +//- +-----+-----++----+----+----+----+ +//- | R01 | R02 || QD | QC | QB | QA | +//- +=====+=====++====+====+====+====+ +//- | 1 | 1 || 0 | 0 | 0 | 0 | +//- | 0 | X || COUNT | +//- | X | 0 || COUNT | +//- +-----+-----++----+----+----+----+ +//- + static NETLIST_START(TTL_7492_DIP) + TTL_7492(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.B, /* CLKB |1 ++ 14| CLKA */ A.A, + NC.I, /* NC |2 13| NC */ NC.I, + NC.I, /* NC |3 12| QA */ A.QA, + NC.I, /* NC |4 7492 11| QD */ A.QD, + A.VCC, /* VCC |5 10| GND */ A.GND, + A.R1, /* R01 |6 9| QB */ A.QB, + A.R2, /* R02 |7 8| QC */ A.QC + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7493_DIP +//- Title: DM7493A Binary Counter +//- Description: These monolithic counters contains four +//- master-slave flip-flops and additional gating to provide +//- a divide-by-two counter and a three-stage binary counter +//- for which the count cycle length is divide-by-eight. +//- +//- These counters have a gated zero reset. +//- +//- To use their maximum count length (four-bit binary), the B input is connected +//- to the QA output. The input count pulses are applied to +//- input A and the outputs are as described in the appropriate +//- truth table. +//- Pinalias: B,R01,R02,NC,VCC,NC,NC,QC,QB,GND,QD,QA,NC,A +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006533.PDF +//- +//- Count Sequence +//- +-------++----+----+----+----+ +//- | Count || QD | QC | QB | QA | +//- +=======++====+====+====+====+ +//- | 0 || 0 | 0 | 0 | 0 | +//- | 1 || 0 | 0 | 0 | 1 | +//- | 2 || 0 | 0 | 1 | 0 | +//- | 3 || 0 | 0 | 1 | 1 | +//- | 4 || 0 | 1 | 0 | 0 | +//- | 5 || 0 | 1 | 0 | 1 | +//- | 6 || 0 | 1 | 1 | 0 | +//- | 7 || 0 | 1 | 1 | 1 | +//- | 8 || 1 | 0 | 0 | 0 | +//- | 9 || 1 | 0 | 0 | 1 | +//- | 10 || 1 | 0 | 1 | 0 | +//- | 11 || 1 | 0 | 1 | 1 | +//- | 12 || 1 | 1 | 0 | 0 | +//- | 13 || 1 | 1 | 0 | 1 | +//- | 14 || 1 | 1 | 1 | 0 | +//- | 15 || 1 | 1 | 1 | 1 | +//- +-------++----+----+----+----+ +//- +//- Reset/Count Function Table +//- +-----+-----++----+----+----+----+ +//- | R01 | R02 || QD | QC | QB | QA | +//- +=====+=====++====+====+====+====+ +//- | 1 | 1 || 0 | 0 | 0 | 0 | +//- | 0 | X || COUNT | +//- | X | 0 || COUNT | +//- +-----+-----++----+----+----+----+ +//- + static NETLIST_START(TTL_7493_DIP) + TTL_7493(A) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + A.CLKB, /* CLKB |1 ++ 14| CLKA */ A.CLKA, + A.R1, /* R01 |2 13| NC */ NC.I, + A.R2, /* R02 |3 12| QA */ A.QA, + NC.I, /* NC |4 7493 11| QD */ A.QD, + A.VCC, /* VCC |5 10| GND */ A.GND, + NC.I, /* NC |6 9| QB */ A.QB, + NC.I, /* NC |7 8| QC */ A.QC + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_7497_DIP +//- Title: 5497/DM7497 Synchronous Modulo-64 Bit Rate Multiplier +//- Description: The ’97 contains a synchronous 6-stage binary counter and six decoding gates that serve to gate the clock through to the output at a sub-multiple of the input frequency. +//- The output pulse rate, relative to the clock frequency, is determined by signals applied to the Select (S0–S5) inputs. +//- Both true and complement outputs are available, along with an enable input for each. +//- A Count Enable input and a Terminal Count output are provided for cascading two or more packages. +//- An asynchronous Master Reset input prevents counting and resets the counter. +//- Pinalias: S1,S4,S5,S0,ZQ,Y,TCQ,GND,CP,EZQ,CEQ,EY,MR,S2,S3,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009780.PDF +//- +static NETLIST_START(TTL_7497_DIP) + TTL_7497(A) + + DIPPINS( /* +--------------+ */ + A.B1, /* S1 |1 ++ 16| VCC */ A.VCC, + A.B4, /* S4 |2 15| S3 */ A.B3, + A.B5, /* S5 |3 14| S2 */ A.B2, + A.B0, /* S0 |4 7497 13| MR */ A.CLR, + A.ZQ, /* ZQ |5 12| EY */ A.UNITYQ, + A.Y, /* Y |6 11| CEQ */ A.ENQ, + A.ENOUTQ, /* TCQ |7 10| EZQ */ A.STRBQ, + A.GND, /* GND |8 9| CP */ A.CLK + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74107_DIP +//- Title: SN54107, SN74107 Dual J-K Flip-Flops With Clear +//- Description: The '107 contains two independent J-K flip-flops with individual J-K, clock, and direct clear inputs. +//- The '107 is a positive pulse-triggered flip-flop. +//- The J-K input data is loaded into the master while the clock is high and transferred to teh slave and the outputs on the high-to-low clock transition. +//- For these devices the J and K inputs must be stable while the clock is high. +//- Pinalias: 1J,1QQ,1Q,1K,2Q,2QQ,GND,2J,2CLK,2CLRQ,2K,1CLK,1CLRQ,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Texas Instruments datasheet +//- FunctionTable: +//- https://pdf1.alldatasheet.com/datasheet-pdf/view/840452/TI1/SN74107.html +//- +//- +------+-------+---+---++---+----+ +//- | CLRQ | CLK | J | K || Q | QQ | +//- +======+=======+===+===++===+====+ +//- | 0 | X | X | X || 0 | 1 | +//- | 1 | 0-1-0 | 0 | 0 || Q | QQ | +//- | 1 | 0-1-0 | 1 | 0 || 1 | 0 | +//- | 1 | 0-1-0 | 0 | 1 || 0 | 1 | +//- | 1 | 0-1-0 | 1 | 1 || TOGGLE | +//- +------+-------+---+---++---+----+ +//- +static NETLIST_START(TTL_74107_DIP) + TTL_74107(A) + TTL_74107(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.J, /* 1J |1 ++ 14| VCC */ A.VCC, + A.QQ, /* 1QQ |2 13| 1CLRQ */ A.CLRQ, + A.Q, /* 1Q |3 12| 1CLK */ A.CLK, + A.K, /* 1K |4 74107 11| 2K */ B.K, + B.Q, /* 2Q |5 10| 2CLRQ */ B.CLRQ, + B.QQ, /* 2QQ |6 9| 2CLK */ B.CLK, + B.GND, /* GND |7 8| 2J */ B.J + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74107A_DIP +//- Title: DM54LS107A/DM74LS107A Dual Negative-Edge-Triggered Master-Slave J-K Flip-Flops withClear and Complementary Outputs +//- Description: This device contains two independent negative-edge-triggered J-K flip-flops with complementary outputs. +//- The J and K data is processed by the flip-flops on the falling edge of the clock pulse. +//- The clock triggering occurs at a voltage level and is not directly related to the transition time of the negative going edge of the clock pulse. +//- The data on the J and K inputs may change while the clock is high or low without affecting the outputs as long as setup and hold times are not violated. +//- A low logic level on the clear input will reset the outputs regardless of the logic levels of the other inputs. +//- Pinalias: J1,QQ1,Q1,K1,Q2,QQ2,GND,J2,CLK2,CLRQ2,K2,CLK1,CLRQ1,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006367.PDF +//- +//- +------+-----+---+---++---+----+ +//- | CLRQ | CLK | J | K || Q | QQ | +//- +======+=====+===+===++===+====+ +//- | 0 | X | X | X || 0 | 1 | +//- | 1 | 1-0 | 0 | 0 || Q | QQ | +//- | 1 | 1-0 | 1 | 0 || 1 | 0 | +//- | 1 | 1-0 | 0 | 1 || 0 | 1 | +//- | 1 | 1-0 | 1 | 1 || TOGGLE | +//- | 1 | 1 | X | X || Q | QQ | +//- +------+-----+---+---++---+----+ +//- +static NETLIST_START(TTL_74107A_DIP) + TTL_74107A(A) + TTL_74107A(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.J, /* J1 |1 ++ 14| VCC */ A.VCC, + A.QQ, /* QQ1 |2 13| CLRQ1 */ A.CLRQ, + A.Q, /* Q1 |3 12| CLK1 */ A.CLK, + A.K, /* K1 |4 74107A 11| K2 */ B.K, + B.Q, /* Q2 |5 10| CLRQ2 */ B.CLRQ, + B.QQ, /* QQ2 |6 9| CLK2 */ B.CLK, + B.GND, /* GND |7 8| J2 */ B.J + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74113_DIP +//- Title: DM54S113/DM74S113 Dual Negative-Edge-Triggered Master-Slave J-K Flip-Flops with Preset and Complementary Outputs +//- Description: This device contains two independent negative-edge-triggered J-K flip-flops with complementary outputs. +//- The J and K data is processed by the flip-flops on the falling edge of the clock pulse. +//- The clock triggering occurs at a voltage level and is not directly related to the transition time of the negative going edge of the clock pulse. +//- Data on the J and K inputs may be changed while the clock is high or low without affecting the outputs as long as setup and hold times are not violated. +//- A low logic level on the preset input will set the outputs regardless of the logic levels of the other inputs. +//- Pinalias: CLK1,K1,J1,PRQ1,Q1,QQ1,GND,QQ2,Q2,PRQ2,J2,K2,CLK2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Texas Instruments datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006460.PDF +//- +//- +-----+-----+---+---++---+----+ +//- | PRQ | CLK | J | K || Q | QQ | +//- +=====+=====+===+===++===+====+ +//- | 0 | X | X | X || 1 | 0 | +//- | 1 | 1-0 | 0 | 0 || Q | QQ | +//- | 1 | 1-0 | 1 | 0 || 1 | 0 | +//- | 1 | 1-0 | 0 | 1 || 0 | 1 | +//- | 1 | 1-0 | 1 | 1 || TOGGLE | +//- | 1 | 1 | X | X || Q | QQ | +//- +-----+-----+---+---++---+----+ +//- +static NETLIST_START(TTL_74113_DIP) + TTL_74113(A) + TTL_74113(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.CLK, /* CLK1 |1 ++ 14| VCC */ A.VCC, + A.K, /* K1 |2 13| CLK2 */ B.CLK, + A.J, /* J1 |3 12| K2 */ B.K, + A.SETQ, /* PRQ1 |4 74113 11| J2 */ B.J, + A.Q, /* Q1 |5 10| PRQ2 */ B.SETQ, + A.QQ, /* QQ1 |6 9| Q2 */ B.Q, + A.GND, /* GND |7 8| QQ2 */ B.QQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74113A_DIP +//- Title: DM54S113/DM74S113 Dual Negative-Edge-Triggered Master-Slave J-K Flip-Flops with Preset and Complementary Outputs +//- Description: This device contains two independent negative-edge-triggered J-K flip-flops with complementary outputs. +//- The J and K data is processed by the flip-flops on the falling edge of the clock pulse. +//- The clock triggering occurs at a voltage level and is not directly related to the transition time of the negative going edge of the clock pulse. +//- Data on the J and K inputs may be changed while the clock is high or low without affecting the outputs as long as setup and hold times are not violated. +//- A low logic level on the preset input will set the outputs regardless of the logic levels of the other inputs. +//- Pinalias: CLK1,K1,J1,PRQ1,Q1,QQ1,GND,QQ2,Q2,PRQ2,J2,K2,CLK2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Texas Instruments datasheet +//- FunctionTable: +//- https://pdf1.alldatasheet.com/datasheet-pdf/view/131122/TI/SN74LS113A.html +//- +//- +------+-----+---+---++---+----+ +//- | PREQ | CLK | J | K || Q | QQ | +//- +======+=====+===+===++===+====+ +//- | 0 | X | X | X || 1 | 0 | +//- | 1 | 1-0 | 0 | 0 || Q | QQ | +//- | 1 | 1-0 | 1 | 0 || 1 | 0 | +//- | 1 | 1-0 | 0 | 1 || 0 | 1 | +//- | 1 | 1-0 | 1 | 1 || TOGGLE | +//- | 1 | 1 | X | X || Q | QQ | +//- +------+-----+---+---++---+----+ +//- +static NETLIST_START(TTL_74113A_DIP) + TTL_74113A(A) + TTL_74113A(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.CLK, /* CLK1 |1 ++ 14| VCC */ A.VCC, + A.K, /* K1 |2 13| CLK2 */ B.CLK, + A.J, /* J1 |3 12| K2 */ B.K, + A.SETQ, /* PRQ1 |4 74113A 11| J2 */ B.J, + A.Q, /* Q1 |5 10| PRQ2 */ B.SETQ, + A.QQ, /* QQ1 |6 9| Q2 */ B.Q, + A.GND, /* GND |7 8| QQ2 */ B.QQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74121_DIP +//- Title: DM74121 One-Shot with Clear and Complementary Outputs +//- Description: The DM74121 is a monostable multivibrator featuring both +//- positive and negative edge triggering with complementary +//- outputs. An internal 2kΩ timing resistor is provided for +//- design convenience minimizing component count and layout problems. this device can be used with a single external capacitor. Inputs (A) are active-LOW trigger transition +//- inputs and input (B) is and active-HIGH transition Schmitttrigger input that allows jitter-free triggering from inputs with +//- transition rates as slow as 1 volt/second. A high immunity +//- to VCC noise of typically 1.5V is also provided by internal +//- circuitry at the input stage. +//- To obtain optimum and trouble free operation please read +//- operating rules and one-shot application notes carefully +//- and observe recommendations. +//- +//- Pinalias: QQ,NC,A1,A2,B,Q,GND,NC,RINT,C,RC,NC,NC,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet +//- Limitations: +//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet +//- +//- Example: 74123.cpp,74123_example +//- +//- FunctionTable: +//- https://pdf1.alldatasheet.com/datasheet-pdf/view/50894/FAIRCHILD/74121.html +//- +static NETLIST_START(TTL_74121_DIP) + TTL_74121(A) + NC_PIN(NC) + RES(RINT, RES_K(2)) + RES(RD, RES_M(1000)) + + NET_C(RINT.2, A.RC) + // Avoid error messages if RINT is not used. + NET_C(RINT.1, RD.2) + NET_C(RD.1, A.GND) + + DIPPINS( /* +--------------+ */ + A.QQ, /* QQ |1 ++ 14| VCC */ A.VCC, + NC.I, /* NC |2 13| NC */ NC.I, + A.A1, /* A1 |3 12| NC */ NC.I, + A.A2, /* A2 |4 74121 11| REXT/CEXT */ A.RC, + A.B, /* B |5 10| CEXT */ A.C, + A.Q, /* Q |6 9| RINT */ RINT.1, + A.GND, /* GND |7 8| NC */ NC.I + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74123_DIP +//- Title: DM74123 Dual Retriggerable One-Shot with Clear and Complementary Outputs +//- Description: The DM74123 is a dual retriggerable monostable multivibrator +//- capable of generating output pulses from a few +//- nano-seconds to extremely long duration up to 100% duty +//- cycle. Each device has three inputs permitting the choice of +//- either leading-edge or trailing edge triggering. Pin (A) is an +//- active-LOW transition trigger input and pin (B) is an activeHIGH transition trigger input. A LOW at the clear (CLR) +//- input terminates the output pulse: which also inhibits triggering. An internal connection from CLR to the input gate +//- makes it possible to trigger the circuit by a positive-going +//- signal on CLR as shown in the Truth Table. +//- +//- To obtain the best and trouble free operation from this +//- device please read the Operating Rules as well as the +//- One–Shot Application Notes carefully and observe recommendations. +//- +//- Pinalias: A1,B1,CLRQ1,QQ1,Q2,C2,RC2,GND,A2,B2,CLRQ2,QQ2,Q1,C1,RC1,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet +//- Limitations: +//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet +//- +//- Example: 74123.cpp,74123_example +//- +//- FunctionTable: +//- https://pdf1.alldatasheet.com/datasheet-pdf/view/50893/FAIRCHILD/DM74123.html +//- +static NETLIST_START(TTL_74123_DIP) + TTL_74123(A) + TTL_74123(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.A, /* A1 |1 ++ 16| VCC */ A.VCC, + A.B, /* B1 |2 15| RC1 */ A.RC, + A.CLRQ, /* CLRQ1 |3 14| C1 */ A.C, + A.QQ, /* QQ1 |4 74123 13| Q1 */ A.Q, + B.Q, /* Q2 |5 12| QQ2 */ B.QQ, + B.C, /* C2 |6 11| CLRQ */ B.CLRQ, + B.RC, /* RC2 |7 10| B2 */ B.B, + A.GND, /* GND |8 9| A2 */ B.A + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74125_DIP +//- Title: SN74125 QUADRUPLE BUS BUFFERS WITH 3-STATE OUTPUTS +//- Description: These bus buffers feature three-state outputs +//- that, when enabled, have the low impedance characteristics of a +//- TTL output with additional drive capability at high logic levels +//- to permit driving heavily loaded bus lines without external +//- pullup resistors. When disabled, both output transistors are turned +//- off, presenting a high-impedance state to the bus so the output will +//- act neither as a significant load nor as a driver. The ’125 and +//- ’LS125A devices’ outputs are disabled when G is high. +//- The ’126 and ’LS126A devices’ outputs are disabled when G is low +//- +//- Pinalias: 1GQ,1A,1Y,2GQ,2A,2Y,GND,3Y,3A,3GQ,4Y,4A,4GQ,VCC +//- Package: DIP +//- Param: FORCE_TRISTATE_LOGIC +//- Set this parameter to 1 force tristate outputs into logic mode. +//- This should be done only if the device enable inputs are connected +//- in a way which always enables the device. +//- NamingConvention: Naming conventions follow Texas instruments datasheet +//- Limitations: +//- No limitations +//- +//- Example: 74125.cpp,74125_example +//- +//- FunctionTable: +//- +//- | GQ | A | Y | +//- |:---:|:--:|:--:| +//- | L | L | L | +//- | L | H | H | +//- | H | X | Z | +//- +static NETLIST_START(TTL_74125_DIP) + TTL_74125_GATE(A) + TTL_74125_GATE(B) + TTL_74125_GATE(C) + TTL_74125_GATE(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DEFPARAM(FORCE_TRISTATE_LOGIC, "$(@.A.FORCE_TRISTATE_LOGIC") + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(B.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(C.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(D.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + + DIPPINS( /* +--------------+ */ + A.GQ, /* 1GQ |1 ++ 14| VCC */ A.VCC, + A.A, /* 1A |2 13| 4GQ */ D.GQ, + A.Y, /* 1Y |3 12| 4A */ D.A, + B.GQ, /* 2GQ |4 74125 11| 4Y */ D.Y, + B.A, /* 2A |5 10| 3GQ */ C.GQ, + B.Y, /* 2Y |6 9| 3A */ C.A, + A.GND, /* GND |7 8| 3Y */ C.Y + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74126_DIP +//- Title: DM74LS126A Quad 3-STATE Buffer +//- Description: This device contains four independent gates each of which performs a non-inverting buffer function. +//- The outputs have the 3-STATE feature. +//- When enabled, the outputs exhibit the low impedance characteristics of a standard LS output with additional drive capability to permit the driving of buslines without external resistors. +//- When disabled, both the output transistors are turned OFF presenting a high-impedance state to the bus line. +//- Thus the output will act neither as a significant load nor as a driver. +//- To minimize the possibility that two outputs will attempt to take a common bus to opposite logic levels, the disable time is shorter than the enable time of the outputs. +//- Pinalias: C1,A1,Y1,C2,A2,Y2,GND,Y3,A3,C3,Y4,A4,C4,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/50/232293_DS.pdf +//- +//- +---+---++------+ +//- | A | C || Y | +//- +===+===++======+ +//- | 0 | 1 || 0 | +//- | 1 | 1 || 1 | +//- | X | 0 || Hi-Z | +//- +---+---++------+ +//- +static NETLIST_START(TTL_74126_DIP) + TTL_74126_GATE(A) + TTL_74126_GATE(B) + TTL_74126_GATE(C) + TTL_74126_GATE(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DEFPARAM(FORCE_TRISTATE_LOGIC, 0) + PARAM(A.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(B.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(C.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + PARAM(D.FORCE_TRISTATE_LOGIC, "$(@.FORCE_TRISTATE_LOGIC)") + + DIPPINS( /* +--------------+ */ + A.G, /* C1 |1 ++ 14| VCC */ A.VCC, + A.A, /* A1 |2 13| C4 */ D.G, + A.Y, /* Y1 |3 12| A4 */ D.A, + B.G, /* C2 |4 74126 11| Y4 */ D.Y, + B.A, /* A2 |5 10| C3 */ C.G, + B.Y, /* Y2 |6 9| A3 */ C.A, + A.GND, /* GND |7 8| Y3 */ C.Y + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74139_DIP +//- Title: 54LS139/DM54LS139/DM74LS139 Decoders/Demultiplexers +//- Description: These Schottky-clamped circuits are designed to be used in high-performance memory-decoding or data-routing applications, requiring very short propagation delay times. +//- In high-performance memory systems these decoders can be used to minimize the effects of system decoding. +//- When used with high-speed memories, the delay times of these decoders are usually less than the typical access time of the memory. +//- This means that the effective system delay introduced by the decoder is negligible. +//- The LS139 comprises two separate two-line-to-four-line decoders in a single package. +//- The active-low enable input can be used as a data line in demultiplexing applications. +//- All of these decoders/demultiplexers feature fully buffered inputs, presenting only one normalized load to its driving circuit. +// All inputs are clamped with high-performance Schottky diodes to suppress line-ringing and simplify system design. +//- Pinalias: G1,A1,B1,1Y0,1Y1,1Y2,1Y3,GND,2Y3,2Y2,2Y1,2Y0,B2,A2,G2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- pdf.datasheetcatalog.com/datasheets/166/375388_DS.pdf +//- +//- +---+-------+-------------+ +//- | E | A0 A1 | O0 O1 O2 O3 | +//- +===+=======+=============+ +//- | 1 | X X | 1 1 1 1 | +//- | 0 | 0 0 | 0 1 1 1 | +//- | 0 | 1 0 | 1 0 1 1 | +//- | 0 | 0 1 | 1 1 0 1 | +//- | 0 | 1 1 | 1 1 1 0 | +//- +---+-------+-------------+ +//- +static NETLIST_START(TTL_74139_DIP) + NET_REGISTER_DEV(TTL_74139_GATE, A) + NET_REGISTER_DEV(TTL_74139_GATE, B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.E, /* /Ea |1 ++ 16| VCC */ A.VCC, + A.A, /* A0a |2 15| /Eb */ B.E, + A.B, /* A1a |3 14| A0b */ B.A, + A.0, /* /O0a |4 74139 13| A1b */ B.B, + A.1, /* /O1a |5 12| /O0b */ B.0, + A.2, /* /O2a |6 11| /O1b */ B.1, + A.3, /* /O3a |7 10| /O2b */ B.2, + A.GND,/* GND |8 9| /O3b */ B.3 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74153_DIP +//- Title: 54153/DM54153/DM74153 Dual 4-Line to 1-LineData Selectors/Multiplexers +//- Description: Each of these data selectors/multiplexers contains inverters and drivers to supply fully complementary, on-chip, binary decoding data selection to the AND-OR-invert gates. +//- Separate strobe inputs are provided for each of the two four-line sections. +//- Pinalias: G1,B,1C3,1C2,1C1,1C0,Y1,GND,Y2,2C0,2C1,2C2,2C3,A,G2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006547.PDF +//- +//- +---+---+----+----+----+----+---++---+ +//- | B | A | C0 | C1 | C2 | C3 | G || Y | +//- +===+===+====+====+====+====+===++===+ +//- | X | X | X | X | X | X | 1 || 0 | +//- | 0 | 0 | 0 | X | X | X | 0 || 0 | +//- | 0 | 0 | 1 | X | X | X | 0 || 1 | +//- | 0 | 1 | X | 0 | X | X | 0 || 0 | +//- | 0 | 1 | X | 1 | X | X | 0 || 1 | +//- | 1 | 0 | X | X | 0 | X | 0 || 0 | +//- | 1 | 0 | X | X | 1 | X | 0 || 1 | +//- | 1 | 1 | X | X | X | 0 | 0 || 0 | +//- | 1 | 1 | X | X | X | 1 | 0 || 1 | +//- +---+---+----+----+----+----+---++---+ +//- +static NETLIST_START(TTL_74153_DIP) + NET_REGISTER_DEV(TTL_74153, A) + NET_REGISTER_DEV(TTL_74153, B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + NET_C(A.A, B.A) + NET_C(A.B, B.B) + + DIPPINS( /* +--------------+ */ + A.G, /* G1 |1 ++ 16| VCC */ A.VCC, + A.B, /* B |2 15| G2 */ B.G, + A.C3, /* 1C3 |3 14| A */ A.A, + A.C2, /* 1C2 |4 74153 13| 2C3 */ B.C3, + A.C1, /* 1C1 |5 12| 2C2 */ B.C2, + A.C0, /* 1C0 |6 11| 2C1 */ B.C1, + A.AY, /* Y1 |7 10| 2C0 */ B.C0, + A.GND, /* GND |8 9| Y2 */ B.AY + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74155_DIP +//- Title: 54LS155/DM54LS155/DM74LS155 Dual 2-Line to 4-Line Decoders/Demultiplexers +//- Description: These TTL circuits feature dual 1-line-to-4-line demultiplexers with individual strobes and common binary-address inputs in a single 16-pin package. +//- When both sections are enabled by the strobes, the common address inputs sequentially select and route associated input data to the appropriate output of each section. +//- The individual strobes permit activating or inhibiting each of the 4-bit sections as desired. +//- Data applied to input C1 is inverted at its outputs anddata applied at C2 is true through its outputs. +//- The inverter following the C1 data input permits use as a 3-to-8-line decoder, or 1-to-8-line demultiplexer, without external gating. +//- Input clamping diodes are provided on these circuits to minimize transmission-line effects and simplify system design. +//- Pinalias: C1,G1,B,1Y3,1Y2,1Y1,1Y0,GND,2Y0,2Y1,2Y2,2Y3,A,G2,C2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006395.PDF +//- +//- 2-line-to-4-line decoder 2-line-to-4-line decoder +//- +---+---+----+----++-----+-----+-----+-----+ +---+---+----+----++-----+-----+-----+-----+ +//- | B | A | G1 | C1 || 1Y0 | 1Y1 | 1Y2 | 1Y3 | | B | A | G2 | C2 || 2Y0 | 2Y1 | 2Y2 | 2Y3 | +//- +===+===+====+====++=====+=====+=====+=====+ +===+===+====+====++=====+=====+=====+=====+ +//- | X | X | 1 | X || 1 | 1 | 1 | 1 | | X | X | 1 | X || 1 | 1 | 1 | 1 | +//- | 0 | 0 | 0 | 1 || 0 | 1 | 1 | 1 | | 0 | 0 | 0 | 0 || 0 | 1 | 1 | 1 | +//- | 0 | 1 | 0 | 1 || 1 | 0 | 1 | 1 | | 0 | 1 | 0 | 0 || 1 | 0 | 1 | 1 | +//- | 1 | 0 | 0 | 1 || 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 || 1 | 1 | 0 | 1 | +//- | 1 | 1 | 0 | 1 || 1 | 1 | 1 | 0 | | 1 | 1 | 0 | 0 || 1 | 1 | 1 | 0 | +//- | X | X | X | 0 || 1 | 1 | 1 | 1 | | X | X | X | 1 || 1 | 1 | 1 | 1 | +//- +---+---+----+----++-----+-----+-----+-----+ +---+---+----+----++-----+-----+-----+-----+ +//- +//- 3-line-to-8-line decoder +//- +---+---+---+---++-----+-----+-----+-----+-----+-----+-----+-----+ +//- | C | B | A | G || 2Y0 | 2Y1 | 2Y2 | 2Y3 | 1Y0 | 1Y1 | 1Y2 | 1Y3 | +//- +===+===+===+===++=====+=====+=====+=====+=====+=====+=====+=====+ +//- | X | X | X | 1 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 0 | 0 | 0 || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 0 | 1 | 0 || 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 1 | 0 | 0 || 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 1 | 1 | 0 || 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | +//- | 1 | 0 | 0 | 0 || 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | +//- | 1 | 0 | 1 | 0 || 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | +//- | 1 | 1 | 0 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | +//- | 1 | 1 | 1 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | +//- +---+---+---+---++-----+-----+-----+-----+-----+-----+-----+-----+ +//- +static NETLIST_START(TTL_74155_DIP) + NET_REGISTER_DEV(TTL_74155A_GATE, A) + NET_REGISTER_DEV(TTL_74155B_GATE, B) + + NET_C(A.A, B.A) + NET_C(A.B, B.B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.C, /* C1 |1 ++ 16| VCC */ A.VCC, + A.G, /* G1 |2 15| B4 */ B.C, + A.B, /* B |3 14| B4 */ B.G, + A.3, /* 1Y3 |4 74155 13| A4 */ B.A, + B.2, /* 1Y2 |5 12| Y4 */ B.3, + B.1, /* 1Y1 |6 11| B3 */ B.2, + B.0, /* 1Y0 |7 10| A3 */ B.1, + A.GND, /* GND |8 9| Y3 */ B.0 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74156_DIP +//- Title: 54LS156/DM54LS156/DM74LS156 Dual 2-Line to 4-Line Decoders/Demultiplexers with Open-Collector Outputs +//- Description: These TTL circuits feature dual 1-line-to-4-line demultiplexers with individual strobes and common binary-address inputs in a single 16-pin package. +//- When both sections are enabled by the strobes, the common address inputs sequentially select and route associated input data to the appropriate output of each section. +//- The individual strobes permit activating or inhibiting each of the 4-bit sections as desired. +//- Data applied to input C1 is inverted at its outputs anddata applied at C2 is true through its outputs. +//- The inverter following the C1 data input permits use as a 3-to-8-line decoder, or 1-to-8-line demultiplexer, without external gating. +//- Input clamping diodes are provided on these circuits to minimize transmission-line effects and simplify system design. +//- Pinalias: C1,G1,B,1Y3,1Y2,1Y1,1Y0,GND,2Y0,2Y1,2Y2,2Y3,A,G2,C2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006395.PDF +//- +//- 2-line-to-4-line decoder 2-line-to-4-line decoder +//- +---+---+----+----++-----+-----+-----+-----+ +---+---+----+----++-----+-----+-----+-----+ +//- | B | A | G1 | C1 || 1Y0 | 1Y1 | 1Y2 | 1Y3 | | B | A | G2 | C2 || 2Y0 | 2Y1 | 2Y2 | 2Y3 | +//- +===+===+====+====++=====+=====+=====+=====+ +===+===+====+====++=====+=====+=====+=====+ +//- | X | X | 1 | X || 1 | 1 | 1 | 1 | | X | X | 1 | X || 1 | 1 | 1 | 1 | +//- | 0 | 0 | 0 | 1 || 0 | 1 | 1 | 1 | | 0 | 0 | 0 | 0 || 0 | 1 | 1 | 1 | +//- | 0 | 1 | 0 | 1 || 1 | 0 | 1 | 1 | | 0 | 1 | 0 | 0 || 1 | 0 | 1 | 1 | +//- | 1 | 0 | 0 | 1 || 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 || 1 | 1 | 0 | 1 | +//- | 1 | 1 | 0 | 1 || 1 | 1 | 1 | 0 | | 1 | 1 | 0 | 0 || 1 | 1 | 1 | 0 | +//- | X | X | X | 0 || 1 | 1 | 1 | 1 | | X | X | X | 1 || 1 | 1 | 1 | 1 | +//- +---+---+----+----++-----+-----+-----+-----+ +---+---+----+----++-----+-----+-----+-----+ +//- +//- 3-line-to-8-line decoder +//- +---+---+---+---++-----+-----+-----+-----+-----+-----+-----+-----+ +//- | C | B | A | G || 2Y0 | 2Y1 | 2Y2 | 2Y3 | 1Y0 | 1Y1 | 1Y2 | 1Y3 | +//- +===+===+===+===++=====+=====+=====+=====+=====+=====+=====+=====+ +//- | X | X | X | 1 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 0 | 0 | 0 || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 0 | 1 | 0 || 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 1 | 0 | 0 || 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | +//- | 0 | 1 | 1 | 0 || 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | +//- | 1 | 0 | 0 | 0 || 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | +//- | 1 | 0 | 1 | 0 || 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | +//- | 1 | 1 | 0 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | +//- | 1 | 1 | 1 | 0 || 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | +//- +---+---+---+---++-----+-----+-----+-----+-----+-----+-----+-----+ +//- +static NETLIST_START(TTL_74156_DIP) + NET_REGISTER_DEV(TTL_74156A_GATE, A) + NET_REGISTER_DEV(TTL_74156B_GATE, B) + + NET_C(A.A, B.A) + NET_C(A.B, B.B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.C, /* C1 |1 ++ 16| VCC */ A.VCC, + A.G, /* G1 |2 15| B4 */ B.C, + A.B, /* B |3 14| B4 */ B.G, + A.3, /* 1Y3 |4 74156 13| A4 */ B.A, + B.2, /* 1Y2 |5 12| Y4 */ B.3, + B.1, /* 1Y1 |6 11| B3 */ B.2, + B.0, /* 1Y0 |7 10| A3 */ B.1, + A.GND, /* GND |8 9| Y3 */ B.0 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74157_DIP +//- Title: 54157/DM54157/DM74157 Quad 2-Line to 1-Line Data Selectors/Multiplexers +//- Description: These data selectors/multiplexers contain inverters and drivers to supply full on-chip data selection to the four output gates. +//- A separate strobe input is provided. +//- A 4-bit word is selected from one of two sources and is routed to the four outputs. +//- Pinalias: S,A1,B1,Y1,A2,B2,Y2,GND,Y3,B3,A3,Y4,B4,A4,G,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/120/236599_DS.pdf +//- +//- +---+---+---+---++---+ +//- | G | S | A | B || Y | +//- +===+===+===+===++===+ +//- | 1 | X | X | X || 0 | +//- | 0 | 0 | 0 | X || 0 | +//- | 0 | 0 | 1 | X || 1 | +//- | 0 | 1 | X | 0 || 0 | +//- | 0 | 1 | X | 1 || 1 | +//- +---+---+---+---++---+ +//- +static NETLIST_START(TTL_74157_DIP) + NET_REGISTER_DEV(TTL_74157_GATE, A) + NET_REGISTER_DEV(TTL_74157_GATE, B) + NET_REGISTER_DEV(TTL_74157_GATE, C) + NET_REGISTER_DEV(TTL_74157_GATE, D) + + NET_C(A.E, B.E, C.E, D.E) + NET_C(A.S, B.S, C.S, D.S) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.S, /* S |1 ++ 16| VCC */ A.VCC, + A.I, /* A1 |2 15| G */ A.E, + A.J, /* B1 |3 14| A4 */ D.I, + A.O, /* Y1 |4 74157 13| B4 */ D.J, + B.I, /* A2 |5 12| Y4 */ D.O, + B.J, /* B2 |6 11| A3 */ C.I, + B.O, /* Y2 |7 10| B3 */ C.J, + A.GND, /* GND |8 9| Y3 */ C.O + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74161_DIP +//- Title: DM54161/DM74161 Synchronous 4-Bit Counter +//- Description: These synchronous, presettable counters feature an internal carry look-ahead for application in high-speed counting designs. +//- The 161 is a 4-bit binary counter. +//- The carry output is decoded by means of a NOR gate, thus preventing spikes during the normal counting mode of operation. +//- Synchronous operation is provided by having all flip-flops clocked simultaneously so that the outputs change co-incident with each other when so instructed by the count-enable inputs and internal gating. +//- This mode of operation eliminates the output counting spikes which are normally associated with asynchronous (ripple clock) counters. +//- A buffered clock input triggers the four flip-flops on the rising (positive-going) edge of the clock input waveform. +//- These counters are fully programmable; that is, the outputs may be preset to either level. +//- As presetting is synchronous, setting up a low level at the load input disables the counter and causes the outputs to agree with the setup data after the next clock pulse, regardless of the levels of the enable input. +//- The clear function for the 161 is asynchronous; and a low level at the clear input sets all four of the flip-flop outputs low, regardless of the levels of clock, load, or enable inputs. +//- The carry look-ahead circuitry provides for cascading counters for n-bit synchronous applications without additional gating. +//- Instrumental in accomplishing this function are two count-enable inputs and a ripple carry output. +//- Both count-enable inputs (P and T) must be high to count, and input T is fed forward to enable the ripple carry output. +//- The ripple carry output thus enabled will produce a high-level output pulse with a duration approximately equal to the high-level portion of the QA output. +//- This high-level overflow ripple carry pulse can be used to enable successive cascaded stages. +//- High-to-low-level transitions at the enable P or T inputs of the 161 may occur, regardless of the logic level on the clock. +//- Pinalias: CLRQ,CLK,A,B,C,D,ENP,GND,LOADQ,ENT,QD,QC,QB,QA,RC,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006551.PDF +//- +static NETLIST_START(TTL_74161_DIP) + TTL_74161(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 74161 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| /LOAD */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74163_DIP +//- Title: DM74163 Synchronous 4-Bit Counter +//- Description: These synchronous, presettable counters feature an internal carry look-ahead for application in high-speed counting designs. +//- The 163 is a 4-bit binary counter. +//- The carry output is decoded by means of a NOR gate, thus preventing spikes during the normal counting mode of operation. +//- Synchronous operation is provided by having all flip-flops clocked simultaneously so that the outputs change co-incident with each other when so instructed by the count-enable inputs and internal gating. +//- This mode of operation eliminates the output counting spikes which are normally associated with asynchronous (ripple clock) counters. +//- A buffered clock input triggers the four flip-flops on the rising (positive-going) edge of the clock input waveform. +//- These counters are fully programmable; that is, the outputs may be preset to either level. +//- As presetting is synchronous, setting up a low level at the load input disables the counter and causes the outputs to agree with the setup data after the next clock pulse, regardless of the levels of the enable input. +//- The clear function for the 163 is synchronous; and a low level at the clear input sets all four of the flip-flop outputs low after the next clock pulse, regardless of the levels of the enable inputs. +//- This synchronous clear allows the count length to be modified easily, as decoding the maximum count desired can be accomplished with one external NAND gate. +//- The gate output is connected to the clear input to synchronously clear the counter to all low outputs. +//- Low-to-high transitions at the clear input of the 163 are also permissible, regardless of the logic levels on the clock,enable, or load inputs. +//- The carry look-ahead circuitry provides for cascading counters for n-bit synchronous applications without additional gating. +//- Instrumental in accomplishing this function are two count-enable inputs and a ripple carry output. +//- Both count-enable inputs (P and T) must be high to count, and input T is fed forward to enable the ripple carry output. +//- The ripple carry output thus enabled will produce a high-level output pulse with a duration approximately equal to the high-level portion of the QA output. +//- This high-level overflow ripple carry pulse can be used to enable successive cascaded stages. +//- High-to-low-level transitions at the enable P or T inputs of the 163 may occur, regardless of the logic level on the clock. +//- Pinalias: CLRQ,CLK,A,B,C,D,ENP,GND,LOADQ,ENT,QD,QC,QB,QA,RC,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006551.PDF +//- +static NETLIST_START(TTL_74163_DIP) + TTL_74163(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 74163 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| /LOAD */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74164_DIP +//- Title: DM74164 8-Bit Serial In/Parallel Out Shift Registers +//- Description: These 8-bit shift registers feature gated serial inputs and an asynchronous clear. +//- A LOW logic level at either serial input inhibits entry of the new data, and resets the first flip-flop to the LOW level at the next clock pulse, thus providing complete control over incoming data. +//- A HIGH logic level on either input enables the other input, which will then determine the state of the first flip-flop. +//- Data at the serial inputs may be changed while the clock is HIGH or LOW, but only information meeting the setup and hold time requirements will be entered. +//- Clocking occurs on the LOW-to-HIGH level transition of the clock input. +//- All inputs are diode-clamped to minimize transmission-line effects +//- Pinalias: A,B,QA,QB,QC,QD,GND,CLOCK,CLEAR,QE,QF,QG,QH,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/fairchild/DM74164.pdf +//- +//- +-------+-------+---+---++----+----+-----+----+ +//- | CLEAR | CLOCK | A | B || QA | QB | ... | QH | +//- +=======+=======+===+===++====+====+=====+====+ +//- | 0 | X | X | X || 0 | 0 | ... | 0 | +//- | 1 | 0 | X | X || QA | QB | ... | QH | +//- | 1 | 0-1 | 1 | 1 || 1 | QA | ... | QG | +//- | 1 | 0-1 | 0 | X || 0 | QA | ... | QG | +//- | 1 | 0-1 | X | 0 || 0 | QA | ... | QG | +//- +-------+-------+---+---++----+----+-----+----+ +//- +static NETLIST_START(TTL_74164_DIP) + TTL_74164(A) + + DIPPINS( /* +--------------+ */ + A.A, /* A |1 ++ 14| VCC */ A.VCC, + A.B, /* B |2 13| QH */ A.QH, + A.QA, /* QA |3 12| QG */ A.QG, + A.QB, /* QB |4 74164 11| QF */ A.QF, + A.QC, /* QC |5 10| QE */ A.QE, + A.QD, /* QD |6 9| CLRQ */ A.CLRQ, + A.GND, /* GND |7 8| CLK */ A.CLK + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74165_DIP +//- Title: 54165/DM74165 8-Bit Parallel-to-Serial Converter +//- Description: The ’165 is an 8-bit parallel load or serial-in register with complementary outputs available from the last stage. +//- Parallel inputting occurs asynchronously when the Parallel Load (PL) input is LOW. +//- With PL HIGH, serial shifting occurs on the rising edge of the clock; new data enters via the Serial Data (DS) input. +//- The 2-input OR clock can be used to combine two independent clock sources, or one input can act as an active LOW clock enable. +//- Pinalias: PLQ,CP1,P4,P5,P6,P7,QQ7,GND,Q7,DS,P0,P1,P2,P3,CP2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009782.PDF +//- +//- +-----+-----+-----++----+----+----+----+----+----+----+----+ +//- | PLQ | CP1 | CP2 || Q0 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | +//- +=====+=====+=====++====+====+====+====+====+====+====+====+ +//- | 0 | X | X || P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | +//- | 1 | 0 | 0-1 || DS | Q0 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | +//- | 1 | 1 | 0-1 || Q0 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | +//- | 1 | 0-1 | 0 || DS | Q0 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | +//- | 1 | 0-1 | 1 || Q0 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | +//- +-----+-----+-----++----+----+----+----+----+----+----+----+ +//- +static NETLIST_START(TTL_74165_DIP) + TTL_74165(A) + + DIPPINS( /* +--------------+ */ + A.SH_LDQ, /* PLQ |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CP1 |2 15| CP2 */ A.CLKINH, + A.E, /* P4 |3 14| P3 */ A.D, + A.F, /* P5 |4 74165 13| P2 */ A.C, + A.G, /* P6 |5 12| P1 */ A.B, + A.H, /* P7 |6 11| P0 */ A.A, + A.QHQ, /* QQ7 |7 10| DS */ A.SER, + A.GND, /* GND |8 9| Q7 */ A.QH + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74166_DIP +//- Title: DM74LS166 8-Bit Parallel-In/Serial-Out Shift Registers +//- Description: These parallel-in or serial-in, serial-out shift registers feature gated clock inputs and an overriding clear input. +//- All inputs are buffered to lower the drive requirements to one normalized load, and input clamping diodes minimize switching transients to simplify system design. +//- The load mode is established by the shift/load input. +//- When high, this input enables the serial data input and couples the eight flip-flops for serial shifting with each clock pulse. +//- When low, the parallel (broadside) data inputs are enabled and synchronous loading occurs on the next clock pulse. +//- During parallel loading, serial data flow is inhibited. +//- Clocking is accomplished on the low-to-high-level edge of the clock pulse through a two-input NOR gate, permitting one input to be used as a clock-enable or clock-inhibit function. +//- Holding either of the clock inputs high inhibits clocking; holding either low enables the other clock input. +//- This allows the system clock to be free running, and the register can be stopped on command with the other clock input. +//- The clock-inhibit input should be changed to the high level only while the clock input is high. +//- A buffered, direct clear input overrides all other inputs, including the clock, and sets all flip-flops to zero. +//- Pinalias: SER,A,B,C,D,CLKINH,CLK,GND,CLRQ,E,F,G,QH,H,SH/LDQ,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006400.PDF +//- +//- +------+--------+--------+-----+-----+------++----+----+-----+----+ +//- | CLRQ | SH/LDQ | CLKINH | CLK | SER | A..H || QA | QB | ... | QH | +//- +======+========+========+=====+=====+======++====+====+=====+====+ +//- | 0 | X | X | X | X | X || 0 | 0 | ... | 0 | +//- | 1 | X | 0 | 0 | X | X || QA | QB | ... | QH | +//- | 1 | 0 | 0 | 0-1 | X | a..h || a | b | ... | h | +//- | 1 | 1 | 0 | 0-1 | 1 | X || 1 | QA | ... | QG | +//- | 1 | 1 | 0 | 0-1 | 0 | X || 0 | QA | ... | QG | +//- | 1 | X | 1 | 0-1 | X | X || QA | QB | ... | QH | +//- +------+--------+--------+-----+-----+------++----+----+-----+----+ +//- +static NETLIST_START(TTL_74166_DIP) + TTL_74166(A) + + DIPPINS( /* +--------------+ */ + A.SER, /* SER |1 ++ 16| VCC */ A.VCC, + A.A, /* A |2 15| SH/LDQ */ A.SH_LDQ, + A.B, /* B |3 14| H */ A.H, + A.C, /* C |4 74166 13| QH */ A.QH, + A.D, /* D |5 12| G */ A.G, + A.CLKINH, /* CLKINH |6 11| F */ A.F, + A.CLK, /* CLK |7 10| E */ A.E, + A.GND, /* GND |8 9| CLRQ */ A.CLRQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74174_DIP +//- Title: DM74174 Hex/Quad D-Type Flip-Flop with Clear +//- Description: These positive-edge triggered flip-flops utilize TTL circuitry to implement D-type flip-flop logic. +//- All have a direct clear input. +//- Information at the D inputs meeting the setup and hold time requirements is transferred to the Q outputs on the positive-going edge of the clock pulse. +//- Clock triggering occurs at a particular voltage level and is not directly related to the transition time of the positive-going pulse. +//- When the clock input is at either the HIGH or LOW level, the D input signal has no effect at the output. +//- Pinalias: CLRQ,Q1,D1,D2,Q2,D3,Q3,GND,CLK,Q4,D4,Q5,D5,Q6,D6,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/fairchild/DM74174.pdf +//- +//- +------+-----+---++---+ +//- | CLRQ | CLK | D || Q | +//- +======+=====+===++===+ +//- | 0 | X | X || 0 | +//- | 1 | 0-1 | 1 || 1 | +//- | 1 | 0-1 | 0 || 0 | +//- | 1 | 0 | X || Q | +//- +------+-----+---++---+ +//- +static NETLIST_START(TTL_74174_DIP) + TTL_74174(A) + TTL_74174(B) + TTL_74174(C) + TTL_74174(D) + TTL_74174(E) + TTL_74174(F) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* CLRQ |1 ++ 16| VCC */ A.VCC, + A.Q, /* Q1 |2 15| Q6 */ F.Q, + A.D, /* D1 |3 14| D6 */ F.D, + B.D, /* D2 |4 74174 13| D5 */ E.D, + B.Q, /* Q2 |5 12| Q5 */ E.Q, + C.D, /* D3 |6 11| D4 */ D.D, + C.Q, /* Q3 |7 10| Q4 */ D.Q, + A.GND, /* GND |8 9| CLK */ A.CLK + /* +--------------+ */ + ) +NETLIST_END() + +//FIXME: add documentation +static NETLIST_START(TTL_74175_DIP) + TTL_74175(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* CLRQ |1 ++ 16| VCC */ A.VCC, + A.Q1, /* Q1 |2 15| Q4 */ A.Q4, + A.Q1Q, /* Q1Q |3 14| Q4Q */ A.Q4Q, + A.D1, /* D1 |4 74175 13| D4 */ A.D4, + A.D2, /* D2 |5 12| D3 */ A.D3, + A.Q2Q, /* Q2Q |6 11| Q3Q */ A.Q3Q, + A.Q2, /* Q2 |7 10| Q3 */ A.Q3, + A.GND, /* GND |8 9| CLK */ A.CLK + /* +--------------+ */ + ) +NETLIST_END() + +//FIXME: add documentation +static NETLIST_START(TTL_74192_DIP) + TTL_74192(A) + + DIPPINS( /* +--------------+ */ + A.B, /* B |1 ++ 16| VCC */ A.VCC, + A.QB, /* QB |2 15| A */ A.A, + A.QA, /* QA |3 14| CLEAR */ A.CLEAR, + A.CD, /* CD |4 74192 13| BORROWQ*/ A.BORROWQ, + A.CU, /* CU |5 12| CARRYQ */ A.CARRYQ, + A.QC, /* QC |6 11| LOADQ */ A.LOADQ, + A.QD, /* QD |7 10| C */ A.C, + A.GND, /* GND |8 9| D */ A.D + /* +--------------+ */ + ) +NETLIST_END() + +//FIXME: add documentation +static NETLIST_START(TTL_74193_DIP) + TTL_74193(A) + + DIPPINS( /* +--------------+ */ + A.B, /* B |1 ++ 16| VCC */ A.VCC, + A.QB, /* QB |2 15| A */ A.A, + A.QA, /* QA |3 14| CLEAR */ A.CLEAR, + A.CD, /* CD |4 74192 13| BORROWQ*/ A.BORROWQ, + A.CU, /* CU |5 12| CARRYQ */ A.CARRYQ, + A.QC, /* QC |6 11| LOADQ */ A.LOADQ, + A.QD, /* QD |7 10| C */ A.C, + A.GND, /* GND |8 9| D */ A.D + /* +--------------+ */ + ) +NETLIST_END() + +//FIXME: add documentation +static NETLIST_START(TTL_74194_DIP) + TTL_74194(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* CLRQ |1 ++ 16| VCC */ A.VCC, + A.SRIN, /* SRIN |2 15| QA */ A.QA, + A.A, /* A |3 14| QB */ A.QB, + A.B, /* B |4 74194 13| QC */ A.QC, + A.C, /* C |5 12| QD */ A.QD, + A.D, /* D |6 11| CLK */ A.CLK, + A.SLIN, /* SLIN |7 10| S1 */ A.S1, + A.GND, /* GND |8 9| S0 */ A.S0 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74260_DIP +//- Title: DM54LS260/DM74LS260 Dual 5-Input NOR Gate +//- Description: This device contains two individual five input gates, each of which perform the logic NOR function. +//- Pinalias: A1,B1,C1,A2,Q1,Q2,GND,B2,C2,D2,E2,D1,E1,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009824.PDF +//- +//- +---+---+---+---+---++---+ +//- | A | B | C | D | E || Y | +//- +===+===+===+===+===++===+ +//- | 0 | 0 | 0 | 0 | 0 || 1 | +//- | X | X | X | X | 1 || 0 | +//- | X | X | X | 1 | X || 0 | +//- | X | X | 1 | X | X || 0 | +//- | X | 1 | X | X | X || 0 | +//- | 1 | X | X | X | X || 0 | +//- +---+---+---+---+---++---+ +//- +static NETLIST_START(TTL_74260_DIP) + TTL_74260_NOR(A) + TTL_74260_NOR(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.C, /* C1 |1 ++ 14| VCC */ A.VCC, + A.D, /* D1 |2 13| B1 */ A.B, + A.E, /* E1 |3 12| A1 */ A.A, + B.E, /* E2 |4 74260 11| D2 */ B.D, + A.Q, /* Y1 |5 10| C2 */ B.C, + B.Q, /* Y2 |6 9| B2 */ B.B, + A.GND, /* GND |7 8| A2 */ B.A + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74279_DIP +//- Title: 54279/DM74279 Quad Set-Reset Latch +//- Description: These latches are ideaily suited ·for use as temporary +//- storage of bfnary information between processing units +//- and I/O units. When either one of the data inputs is at +//- a low logic level, the output will follow the level of the +//- R input. When both data inputs are high, the output will +//- remain latched in its previous state. When both inputs +//- are low, the output will .go high. However, this high +//- level may not persist when either one of the data inputs +//- returns to the high state. +//- Pinalias: 1RQ,1S1Q,1S2Q,1Q,2RQ,2SQ,2Q,GND,3Q,3RQ,3S1Q,3S2Q,4Q,4RQ,4SQ,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009785.PDF +//- +//- +-----+-----+----++---+ +//- | S1Q | S2Q | RQ || Q | +//- +=====+=====+====++===+ +//- | 0 | 0 | 0 || 1 | (as long as SQ1 or SQ2 are low) +//- | 0 | X | 1 || 1 | +//- | X | 0 | 1 || 1 | +//- | 1 | 1 | 0 || 0 | +//- | 1 | 1 | 1 || Q | +//- +-----+-----+----++---+ +//- +#ifndef __PLIB_PREPROCESSOR__ +#if !NL_AUTO_DEVICES +#define TTL_74279A(name) \ + NET_REGISTER_DEV(TTL_74279A, name) +#define TTL_74279B(name) \ + NET_REGISTER_DEV(TTL_74279B, name) +#endif +#endif + +static NETLIST_START(TTL_74279_DIP) + TTL_74279B(A) + TTL_74279A(B) + TTL_74279B(C) + TTL_74279A(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + + DIPPINS( /* +--------------+ */ + A.R, /* 1RQ |1 ++ 16| VCC */ A.VCC, + A.S1, /* 1S1Q |2 15| 4SQ */ D.S, + A.S2, /* 1S2Q |3 14| 4RQ */ D.R, + A.Q, /* 1Q |4 74279 13| 4Q */ D.Q, + B.R, /* 2RQ |5 12| 3S2Q */ C.S2, + B.S, /* 2SQ |6 11| 3S1Q */ C.S1, + B.Q, /* 2Q |7 10| 3RQ */ C.R, + A.GND, /* GND |8 9| 3Q */ C.Q + /* +--------------+ */ + ) +NETLIST_END() + +// FIXME: Documentation +static NETLIST_START(TTL_74365_DIP) + TTL_74365(A) + + DIPPINS( /* +--------------+ */ + A.G1Q, /* G1Q |1 ++ 16| VCC */ A.VCC, + A.A1, /* A1 |2 15| G2Q */ A.G2Q, + A.Y1, /* Y1 |3 14| A6 */ A.A6, + A.A2, /* A2 |4 74365 13| Y6 */ A.Y6, + A.Y2, /* Y2 |5 12| A5 */ A.A5, + A.A3, /* A3 |6 11| Y5 */ A.Y5, + A.Y3, /* Y3 |7 10| A4 */ A.A4, + A.GND, /* GND |8 9| Y4 */ A.Y4 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74377_DIP +//- Title: DM54LS377/DM74LS377 Octal D Flip-Flop with Common Enable and Clock +//- Description: The ’LS377 is an 8-bit register built using advanced low power Schottky technology. +//- This register consists of eight D-type flip-flops with a buffered common clock and a buffered common input enable. +//- The device is packaged in the space-saving (0.3 inch row spacing) 20-pin package. +//- Pinalias: EQ,Q0,D0,D1,Q1,Q2,D2,D3,Q3,GND,CP,Q4,D4,D5,Q5,Q6,D6,D7,Q7,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009785.PDF +//- +//- +----+-----+----++----+ +//- | EQ | CP | Dn || Qn | +//- +====+=====+====++====+ +//- | 1 | X | X || Qn | +//- | 0 | 0-1 | 1 || 1 | +//- | 0 | 0-1 | 0 || 0 | +//- +----+-----+----++----+ +//- +static NETLIST_START(TTL_74377_DIP) + TTL_74377_GATE(A) + TTL_74377_GATE(B) + TTL_74377_GATE(C) + TTL_74377_GATE(D) + TTL_74377_GATE(E) + TTL_74377_GATE(F) + TTL_74377_GATE(G) + TTL_74377_GATE(H) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC, G.VCC, H.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND, G.GND, H.GND) + NET_C(A.CP, B.CP, C.CP, D.CP, E.CP, F.CP, G.CP, H.CP) + NET_C(A.E, B.E, C.E, D.E, E.E, F.E, G.E, H.E) + + HINT(A.QQ, NC) + HINT(B.QQ, NC) + HINT(C.QQ, NC) + HINT(D.QQ, NC) + HINT(E.QQ, NC) + HINT(F.QQ, NC) + HINT(G.QQ, NC) + HINT(H.QQ, NC) + + DIPPINS( /* +--------------+ */ + A.E, /* EQ |1 ++ 20| VCC */ A.VCC, + A.Q, /* Q0 |2 19| Q7 */ H.Q, + A.D, /* D0 |3 18| D7 */ H.D, + B.D, /* D1 |4 74377 17| D6 */ G.D, + B.Q, /* Q1 |5 16| Q6 */ G.Q, + C.Q, /* Q2 |6 15| Q5 */ F.Q, + C.D, /* D2 |7 14| D5 */ F.D, + D.D, /* D3 |8 13| D4 */ E.D, + D.Q, /* Q3 |9 12| Q4 */ E.Q, + A.GND, /* GND |10 11| CP */ A.CP + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74378_DIP +//- Title: DM54LS378/DM74LS378 Parallel D Register with Enable +//- Description: The ’LS378 is a 6-bit register with a buffered common enable. +//- This device is similar to the ’LS174, but with common Enable rather than common Master Reset. +//- Pinalias: EQ,Q0,D0,D1,Q1,D2,Q2,GND,CP,Q3,D3,Q4,D4,D5,Q6,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009832.PDF +//- +//- +----+-----+----++----+ +//- | EQ | CP | Dn || Qn | +//- +====+=====+====++====+ +//- | 1 | X | X || Qn | +//- | 0 | 0-1 | 1 || 1 | +//- | 0 | 0-1 | 0 || 0 | +//- +----+-----+----++----+ +//- +static NETLIST_START(TTL_74378_DIP) + TTL_74377_GATE(A) + TTL_74377_GATE(B) + TTL_74377_GATE(C) + TTL_74377_GATE(D) + TTL_74377_GATE(E) + TTL_74377_GATE(F) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC, E.VCC, F.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND, E.GND, F.GND) + NET_C(A.CP, B.CP, C.CP, D.CP, E.CP, F.CP) + NET_C(A.E, B.E, C.E, D.E, E.E, F.E) + + DIPPINS( /* +--------------+ */ + A.E, /* EQ |1 ++ 16| VCC */ A.VCC, + A.Q, /* Q0 |2 15| Q5 */ F.Q, + A.D, /* D0 |3 14| D5 */ F.D, + B.D, /* D1 |4 74378 13| D4 */ E.D, + B.Q, /* Q1 |5 12| Q4 */ E.Q, + C.D, /* D2 |6 11| D3 */ D.D, + C.Q, /* Q2 |7 10| Q3 */ D.Q, + A.GND, /* GND |8 9| CP */ A.CP + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74379_DIP +//- Title: 54LS379/DM74LS379 Quad Parallel Register with Enable +//- Description: The LS379 is a 4-bit register with buffered common Enable. +//- This device is similar to the LS175 but features the common Enable rather than common Master Reset. +//- Pinalias: EEQ,Q0,QQ0,D0,QQ1,Q1,GND,CP,Q2,QQ2,D2,D3,QQ3,Q3,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS009832.PDF +//- +//- +----+-----+----++----+-----+ +//- | EQ | CP | Dn || Qn | QQn | +//- +====+=====+====++====+=====+ +//- | 1 | X | X || Qn | QQn | +//- | 0 | 0-1 | 1 || 1 | 0 | +//- | 0 | 0-1 | 0 || 0 | 1 | +//- +----+-----+----++----+-----+ +//- +static NETLIST_START(TTL_74379_DIP) + TTL_74377_GATE(A) + TTL_74377_GATE(B) + TTL_74377_GATE(C) + TTL_74377_GATE(D) + + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) + NET_C(A.GND, B.GND, C.GND, D.GND) + NET_C(A.CP, B.CP, C.CP, D.CP) + NET_C(A.E, B.E, C.E, D.E) + + DIPPINS( /* +--------------+ */ + A.E, /* EQ |1 ++ 16| VCC */ A.VCC, + A.Q, /* Q0 |2 15| Q3 */ D.Q, + A.QQ, /* QQ0 |3 14| QQ3 */ D.QQ, + A.D, /* D0 |4 74379 13| D3 */ D.D, + B.D, /* D1 |5 12| D2 */ C.D, + B.QQ, /* QQ1 |6 11| QQ2 */ C.QQ, + B.Q, /* Q1 |7 10| Q2 */ C.Q, + A.GND, /* GND |8 9| CP */ A.CP + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_74393_DIP +//- Title: Dual 4-Bit Binary Counter +//- Description: DM74LS393 Each of these monolithic circuits contains eight master-slave flip-flops and additional gating to implement two individual four-bit counters in a single package. +//- The ’LS393 comprises two independent four-bit binary counters each having a clear and a clock input. +//- N-bit binary counters can be implemented with each package providing the capability of divide-by-256. +//- The LS393 has parallel outputs from each counter stage so that any submultiple of the input count freqency is available for system-timing signals. +//- Pinalias: 1A,1CLR,1QA,1QB,1QC,1QD,GND,2QD,2QC,2QB,2QA,2CLR,2A,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006434.PDF +//- +static NETLIST_START(TTL_74393_DIP) + TTL_74393(A) + TTL_74393(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.CP, /* 1A |1 ++ 14| VCC */ A.VCC, + A.MR, /* 1CLR |2 13| 2A */ B.CP, + A.Q0, /* 1QA |3 12| 2CLR */ B.MR, + A.Q1, /* 1QB |4 74393 11| 2QA */ B.Q0, + A.Q2, /* 1QC |5 10| 2QB */ B.Q1, + A.Q3, /* 1QD |6 9| 2QC */ B.Q2, + A.GND, /* GND |7 8| 2QD */ B.Q3 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: SN74LS629_DIP +//- Title: SN74LS629 VOLTAGE-CONTROLLED OSCILLATORS +//- Description: Please add a detailed description +//- FIXME: Missing description +//- +//- Pinalias: 2FC,1FC,1RNG,1CX1,1CX2,1ENQ,1Y,OSC_GND,GND,2Y,2ENQ,2CX2,2CX1,2RNG,OSC_VCC,VCC +//- Package: DIP +//- Param: A.CAP +//- Capacitor value of capacitor connected to 1CX1 and 1CX2 pins +//- Param: B.CAP +//- Capacitor value of capacitor connected to 2CX1 and 2CX2 pins +//- Limitations: +//- The capacitor inputs are NC. Capacitor values need to be specified as +//- ``` +//- SN74LS629_DIP(X) +//- PARAM(X.A.CAP, CAP_U(1)) +//- PARAM(X.B.CAP, CAP_U(2)) +//- ``` +//- +//- Example: 74ls629.cpp,74ls629_example +//- +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheets/400/335051_DS.pdf +//- +static NETLIST_START(SN74LS629_DIP) + SN74LS629(A, CAP_U(1)) + SN74LS629(B, CAP_U(1)) + + NET_C(A.GND, B.GND) + NET_C(A.VCC, B.VCC) + NET_C(A.OSCGND, B.OSCGND) + NET_C(A.OSCVCC, B.OSCVCC) + NC_PIN(NC) + + DIPPINS( /* +--------------+ */ + B.FC, /* 2FC |1 ++ 16| VCC */ A.VCC, + A.FC, /* 1FC |2 15| OSC VCC */ A.OSCVCC, + A.RNG, /* 1RNG |3 14| 2RNG */ B.RNG, + NC.I, /* 1CX1 |4 74LS629 13| 2CX1 */ NC.I, + NC.I, /* 1CX2 |5 12| 2CX2 */ NC.I, + A.ENQ, /* 1ENQ |6 11| 2ENQ */ B.ENQ, + B.Y, /* 1Y |7 10| 2Y */ B.Y, + A.OSCGND, /* OSC GND |8 9| GND */ A.GND + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_9310_DIP +//- Title: DM9310/DM8310 Synchronous 4-Bit Decade Counter +//- Description: These synchronous, presettable counters feature an +//- internal carry look-ahead for application in high-speed +//- counting designs. The DM9310/DM8310 are decade +//- counters. The carry output is decoded by means of a +//- NOR gate, thus preventing spikes during the normal +//- counting mode of operation. Synchronous operation +//- is provided by having all flip-flops clocked simultaneously +//- so that the outputs change coincident with each +//- other when so instructed by the count-enable inputs +//- and internal gating. This mode of operation eliminates +//- the output counting spikes which are normally +//- associated with asynchronous (ripple clock) counters. +//- A buffered clock input triggers the four flip-flops on +//- the rising (positive-going) edge of the clock input +//- waveform. +//- +//- These counters are fully programmable; that is, the +//- outputs may be preset to either level. As presetting is +//- synchronous, setting up a low level at the load input +//- disables the counter and causes the outputs to agree +//- with the setup data after the next clock pulse regardless +//- of the levels of the enable input. Low-to-high transitions +//- at the· load input are perfectly acceptable regardless of +//- the logic levels on the clock or enable inputs. The clear +//- function is asynchronous and a low level at the clear +//- input sets all four of the flip-flop outputs low regardless +//- of the levels of clock, load, or enable inputs. +//- +//- The carry look-ahead circuitry provides for cascading +//- counters for n-bit synchronous applications without +//- additional gating. Instrumental in accomplishing this +//- function are two count-enable inputs and a ripple carry +//- output. Both count-enable inputs (P and T) must be +//- high to count, and input T is fed-forward to enable the +//- ripple carry output. The ripple carry output thus +//- enabled will produce a high-level output pulse with a +//- duration approximately equal to the high-level portion +//- of the QA output. This high-level overflow ripply carry +//- pulse can be used to enable successive cascaded stages. +//- High-to-Low level transitions at the enable P or T inputs +//- may occur regardless of the logic level in the clock. +//- Pinalias: CLEARQ,CLOCK,A,B,C,D,ENABLEP,GND,LOADQ,ENABLET,QD,QC,QB,QA,RC,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- https://ia800608.us.archive.org/5/items/bitsavers_nationaldaTTLDatabook_40452765/1976_National_TTL_Databook.pdf +//- +static NETLIST_START(TTL_9310_DIP) + TTL_9310(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 9310 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| /LOAD */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_9312_DIP +//- Title: DM9312/DM8312 One of Eight Line Data Selectors/Multiplexers +//- Description: These data selectors/multiplexers contain inverter/ +//- drivers to supply full complementary, on-chip, binary +//- decoded data selection to the AND-OR-INVERT gates. +//- +//- The DM9312/8312 is a single 8-bit multiplexer with +//- complementary outputs and a strobe control. When the +//- strobe is low, the function is enabled. When a high logic +//- level is applied to the strobe, the outputs are latched. +//- Pinalias: D0,D1,D2,D3,D4,D5,D6,GND,D7,G,A,B,C,YQ,Y,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DM9312.pdf +//- +//- +---+---+---+---++----+-----+ +//- | C | B | A | G || Y | YQ | +//- +===+===+===+===++====+=====+ +//- | X | X | X | 1 || 0 | 1 | +//- | 0 | 0 | 0 | 0 || D0 | D0Q | +//- | 0 | 0 | 1 | 0 || D1 | D1Q | +//- | 0 | 1 | 0 | 0 || D2 | D2Q | +//- | 0 | 1 | 1 | 0 || D3 | D3Q | +//- | 1 | 0 | 0 | 0 || D4 | D4Q | +//- | 1 | 0 | 1 | 0 || D5 | D5Q | +//- | 1 | 1 | 0 | 0 || D6 | D6Q | +//- | 1 | 1 | 1 | 0 || D7 | D7Q | +//- +---+---+---+---++----+-----+ +//- +static NETLIST_START(TTL_9312_DIP) + TTL_9312(A) + + DIPPINS( /* +--------------+ */ + A.D0, /* D0 |1 ++ 16| VCC */ A.VCC, + A.D1, /* D1 |2 15| Y */ A.Y, + A.D2, /* D2 |3 14| YQ */ A.YQ, + A.D3, /* D3 |4 9312 13| C */ A.C, + A.D4, /* D4 |5 12| B */ A.B, + A.D5, /* D5 |6 11| A */ A.A, + A.D6, /* D6 |7 10| G */ A.G, //Strobe + A.GND, /* GND |8 9| D7 */ A.D7 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_9316_DIP +//- Title: DM9316/DM8316 Synchronous 4-Bit Counters +//- Description: These synchronous, presettable counters feature an +//- internal carry look-ahead for application in high-speed +//- counting designs. The DM9316/DM8316 are 4-bit binary +//- counters. The carry output is decoded by means of a +//- NOR gate, thus preventing spikes during the normal +//- counting mode of operation. Synchronous operation +//- is provided by having all flip-flops clocked simultaneously +//- so that the outputs change coincident with each +//- other when so instructed by the count-enable inputs +//- and internal gating. This mode of operation eliminates +//- the output counting spikes which are normally +//- associated with asynchronous (ripple clock) counters. +//- A buffered clock input triggers the four flip-flops on +//- the rising (positive-going) edge of the clock input +//- waveform. +//- +//- These counters are fully programmable; that is, the +//- outputs may be preset to either level. As presetting is +//- synchronous, setting up a low level at the load input +//- disables the counter and causes the outputs to agree +//- with the setup data after the next clock pulse regardless +//- of the levels of the enable input. Low-to-high transitions +//- at the· load input are perfectly acceptable regardless of +//- the logic levels on the clock or enable inputs. The clear +//- function is asynchronous and a low level at the clear +//- input sets all four of the flip-flop outputs low regardless +//- of the levels of clock, load, or enable inputs. +//- +//- The carry look-ahead circuitry provides for cascading +//- counters for n-bit synchronous applications without +//- additional gating. Instrumental in accomplishing this +//- function are two count-enable inputs and a ripple carry +//- output. Both count-enable inputs (P and T) must be +//- high to count, and input T is fed-forward to enable the +//- ripple carry output. The ripple carry output thus +//- enabled will produce a high-level output pulse with a +//- duration approximately equal to the high-level portion +//- of the QA output. This high-level overflow ripply carry +//- pulse can be used to enable successive cascaded stages. +//- High-to-Low level transitions at the enable P or T inputs +//- may occur regardless of the logic level in the clock. +//- Pinalias: CLEARQ,CLOCK,A,B,C,D,ENABLEP,GND,LOADQ,ENABLET,QD,QC,QB,QA,RC,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006606.PDF +//- +static NETLIST_START(TTL_9316_DIP) + TTL_9316(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* CLEARQ |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 9316 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| LOADQ */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_9322_DIP +//- Title: DM9322/DM8322 Quad 2-Line to 1-Line Data Selectors/Multiplexers +//- Description: These data selectors/multiplexers contain inverters and +//- drivers to supply full on-chip data selection to the four +//- output gates. A separate strobe input is provided. A +//- 4-bit word is selected from one of two sources and is +//- routed to the four outputs. True data is presented +//- at the outputs. +//- Pinalias: SELECT,A1,B1,Y1,A2,B2,Y2,GND,Y3,B3,A3,Y4,B4,A4,STROBE,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- FunctionTable: +//- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006606.PDF +//- +static NETLIST_START(TTL_9322_DIP) + TTL_9322(A) + + DIPPINS( /* +--------------+ */ + A.SELECT, /* SELECT |1 ++ 16| VCC */ A.VCC, + A.A1, /* A1 |2 15| STROBE */ A.STROBE, + A.B1, /* B1 |3 14| A4 */ A.A4, + A.Y1, /* Y1 |4 9322 13| B4 */ A.B4, + A.A2, /* A2 |5 12| Y4 */ A.Y4, + A.B2, /* B2 |6 11| A3 */ A.A3, + A.Y2, /* Y2 |7 10| B3 */ A.B3, + A.GND, /* GND |8 9| Y3 */ A.Y3 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_9321_DIP +//- Title: DM9321/DM8321 Dual 4-Line to 1-Line Data Selectors/Multiplexers +//- Pinalias: AE,AA0,AA1,AD0,AD1,AD2,AD3,GND,BD3,BD2,BD1,BD0,BA1,BA0,BE,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow National Semiconductor datasheet +//- +static NETLIST_START(TTL_9321_DIP) + TTL_9321(A) + TTL_9321(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.E, /* /E |1 ++ 16| VCC */ A.VCC, + A.A0, /* A0 |2 15| /E */ B.E, + A.A1, /* A1 |3 14| A0 */ B.A0, + A.D0, /* /D0 |4 9321 13| A1 */ B.A1, + A.D1, /* /D1 |5 12| /D0 */ B.D0, + A.D2, /* /D2 |6 11| /D1 */ B.D1, + A.D3, /* /D3 |7 10| /D2 */ B.D2, + A.GND, /* GND |8 9| /D3 */ B.D3 + /* +--------------+ */ + ) +NETLIST_END() + +//- Identifier: TTL_9602_DIP +//- Title: DM9602/DM6802 Dual Retriggerable, Resettable One Shots +//- Description: These dual resettable, retriggerable one shots have two +//- inputs per function; one which is active high, and one +//- which is active low. This allows the designer to employ +//- either leading-edge or trailing-edge triggering, which is +//- independent of input transition times. When input con· +//- ditions for triggering are met, a new cycle starts and the +//- external capacitor is allowed to rapidly discharge and +//- then charge again. The retriggerable feature permits +//- output pulse widths to be extended. In fact a continuous +//- true output can be maintained by having an input cycle +//- time which is shorter than the output cycle time. The +//- output pulse may then be terminated at any time by +//- applying a low logic level to the RESET pin. Retriggering +//- may be inhibited by either connecting the Q output to +//- an active high input, or the Q output to an active +//- low input. +//- Pinalias: C1,RC1,CLRQ1,B1,A1,Q1,QQ1,GND,QQ2,Q2,A2,B2,CLRQ2,RC2,C2,VCC +//- Package: DIP +//- NamingConvention: Naming conventions follow Fairchild Semiconductor datasheet +//- Limitations: +//- Timing inaccuracies may occur for capacitances < 1nF. Please consult datasheet +//- +//- Example: 74123.cpp,74123_example +//- +//- FunctionTable: +//- https://pdf1.alldatasheet.com/datasheet-pdf/view/51137/FAIRCHILD/DM9602.html +//- +static NETLIST_START(TTL_9602_DIP) + TTL_9602(A) + TTL_9602(B) + + NET_C(A.VCC, B.VCC) + NET_C(A.GND, B.GND) + + DIPPINS( /* +--------------+ */ + A.C, /* C1 |1 ++ 16| VCC */ A.VCC, + A.RC, /* RC1 |2 15| C2 */ B.C, + A.CLRQ, /* CLRQ1 |3 14| RC2 */ B.RC, + A.B, /* B1 |4 9602 13| CLRQ2 */ B.CLRQ, + A.A, /* A1 |5 12| B2 */ B.B, + A.Q, /* Q1 |6 11| A2 */ B.A, + A.QQ, /* QQ1 |7 10| Q2 */ B.Q, + A.GND, /* GND |8 9| QQ2 */ B.QQ + /* +--------------+ */ + ) +NETLIST_END() + + +NETLIST_START(ttl74xx_lib) + NET_MODEL("DM7414 SCHMITT_TRIGGER(VTP=1.7 VTM=0.9 VI=4.35 RI=6.15k VOH=3.5 ROH=120 VOL=0.1 ROL=37.5 TPLH=15 TPHL=15)") + NET_MODEL("TTL_7414_GATE SCHMITT_TRIGGER(VTP=1.7 VTM=0.9 VI=4.35 RI=6.15k VOH=3.5 ROH=120 VOL=0.1 ROL=37.5 TPLH=15 TPHL=15)") + NET_MODEL("DM74LS14 SCHMITT_TRIGGER(VTP=1.6 VTM=0.8 VI=4.4 RI=19.3k VOH=3.45 ROH=130 VOL=0.1 ROL=31.2 TPLH=15 TPHL=15)") + //NET_MODEL("DM7414 FAMILY(IVL=0.16 IVH=0.4 OVL=0.1 OVH=0.05 ORL=10.0 ORH=1.0e8)") + + + TRUTHTABLE_START(TTL_7400_NAND, 2, 1, "+A,+B,@VCC,@GND") + TT_HEAD("A,B|Q ") + TT_LINE("0,X|1|22") + TT_LINE("X,0|1|22") + TT_LINE("1,1|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7402_NOR, 2, 1, "+A,+B,@VCC,@GND") + TT_HEAD("A,B|Q ") + TT_LINE("0,0|1|22") + TT_LINE("X,1|0|15") + TT_LINE("1,X|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7404_INVERT, 1, 1, "+A,@VCC,@GND") + TT_HEAD(" A | Q ") + TT_LINE(" 0 | 1 |22") + TT_LINE(" 1 | 0 |15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7406_GATE, 1, 1, "") + TT_HEAD("A|Y ") + TT_LINE("0|1|15") + TT_LINE("1|0|23") + /* Open Collector */ + TT_FAMILY("74XXOC") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7407_GATE, 1, 1, "") + TT_HEAD("A|Y ") + TT_LINE("0|0|15") + TT_LINE("1|1|23") + /* Open Collector */ + TT_FAMILY("74XXOC") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7408_GATE, 2, 1, "") + TT_HEAD("A,B|Q ") + TT_LINE("0,X|0|15") + TT_LINE("X,0|0|15") + TT_LINE("1,1|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7408_AND, 2, 1, "+A,+B,@VCC,@GND") + TT_HEAD("A,B|Q ") + TT_LINE("0,X|0|15") + TT_LINE("X,0|0|15") + TT_LINE("1,1|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7410_NAND, 3, 1, "+A,+B,+C,@VCC,@GND") + TT_HEAD("A,B,C|Q ") + TT_LINE("0,X,X|1|22") + TT_LINE("X,0,X|1|22") + TT_LINE("X,X,0|1|22") + TT_LINE("1,1,1|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7410_GATE, 3, 1, "") + TT_HEAD("A,B,C|Q ") + TT_LINE("0,X,X|1|22") + TT_LINE("X,0,X|1|22") + TT_LINE("X,X,0|1|22") + TT_LINE("1,1,1|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7411_AND, 3, 1, "+A,+B,+C,@VCC,@GND") + TT_HEAD("A,B,C|Q ") + TT_LINE("0,X,X|0|15") + TT_LINE("X,0,X|0|15") + TT_LINE("X,X,0|0|15") + TT_LINE("1,1,1|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7411_GATE, 3, 1, "") + TT_HEAD("A,B,C|Q ") + TT_LINE("0,X,X|0|15") + TT_LINE("X,0,X|0|15") + TT_LINE("X,X,0|0|15") + TT_LINE("1,1,1|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7416_GATE, 1, 1, "") + TT_HEAD(" A | Q ") + TT_LINE(" 0 | 1 |15") + TT_LINE(" 1 | 0 |23") + /* Open Collector */ + TT_FAMILY("74XXOC") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7420_NAND, 4, 1, "+A,+B,+C,+D,@VCC,@GND") + TT_HEAD("A,B,C,D|Q ") + TT_LINE("0,X,X,X|1|22") + TT_LINE("X,0,X,X|1|22") + TT_LINE("X,X,0,X|1|22") + TT_LINE("X,X,X,0|1|22") + TT_LINE("1,1,1,1|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7421_AND, 4, 1, "+A,+B,+C,+D,@VCC,@GND") + TT_HEAD("A,B,C,D|Q ") + TT_LINE("0,X,X,X|0|22") + TT_LINE("X,0,X,X|0|22") + TT_LINE("X,X,0,X|0|22") + TT_LINE("X,X,X,0|0|22") + TT_LINE("1,1,1,1|1|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7425_NOR, 4, 1, "+A,+B,+C,+D,@VCC,@GND") + TT_HEAD("A,B,C,D|Q ") + TT_LINE("1,X,X,X|0|15") + TT_LINE("X,1,X,X|0|15") + TT_LINE("X,X,1,X|0|15") + TT_LINE("X,X,X,1|0|15") + TT_LINE("0,0,0,0|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7427_NOR, 3, 1, "+A,+B,+C,@VCC,@GND") + TT_HEAD("A,B,C|Q ") + TT_LINE("1,X,X|0|15") + TT_LINE("X,1,X|0|15") + TT_LINE("X,X,1|0|15") + TT_LINE("0,0,0|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7430_NAND, 8, 1, "+A,+B,+C,+D,+E,+F,+G,+H,@VCC,@GND") + TT_HEAD("A,B,C,D,E,F,G,H|Q ") + TT_LINE("0,X,X,X,X,X,X,X|1|22") + TT_LINE("X,0,X,X,X,X,X,X|1|22") + TT_LINE("X,X,0,X,X,X,X,X|1|22") + TT_LINE("X,X,X,0,X,X,X,X|1|22") + TT_LINE("X,X,X,X,0,X,X,X|1|22") + TT_LINE("X,X,X,X,X,0,X,X|1|22") + TT_LINE("X,X,X,X,X,X,0,X|1|22") + TT_LINE("X,X,X,X,X,X,X,0|1|22") + TT_LINE("1,1,1,1,1,1,1,1|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7432_OR, 2, 1, "+A,+B,@VCC,@GND") + TT_HEAD("A,B|Q ") + TT_LINE("1,X|1|22") + TT_LINE("X,1|1|22") + TT_LINE("0,0|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7442, 4, 10, "") + TT_HEAD("D,C,B,A|0,1,2,3,4,5,6,7,8,9") + TT_LINE("0,0,0,0|0,1,1,1,1,1,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("0,0,0,1|1,0,1,1,1,1,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("0,0,1,0|1,1,0,1,1,1,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("0,0,1,1|1,1,1,0,1,1,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("0,1,0,0|1,1,1,1,0,1,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("0,1,0,1|1,1,1,1,1,0,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("0,1,1,0|1,1,1,1,1,1,0,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("0,1,1,1|1,1,1,1,1,1,1,0,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("1,0,0,0|1,1,1,1,1,1,1,1,0,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("1,0,0,1|1,1,1,1,1,1,1,1,1,0|30,30,30,30,30,30,30,30,30,30") + TT_LINE("1,0,1,X|1,1,1,1,1,1,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TT_LINE("1,1,X,X|1,1,1,1,1,1,1,1,1,1|30,30,30,30,30,30,30,30,30,30") + TRUTHTABLE_END() + + /* FIXME: Same as 7400, but drains higher output currents. + * Netlist currently does not model over currents (should it ever?) + */ + + TRUTHTABLE_START(TTL_7437_NAND, 2, 1, "+A,+B") + TT_HEAD("A,B|Q ") + TT_LINE("0,X|1|22") + TT_LINE("X,0|1|22") + TT_LINE("1,1|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_7486_XOR, 2, 1, "+A,+B,@VCC,@GND") + TT_HEAD("A,B|Q ") + TT_LINE("0,0|0|15") + TT_LINE("0,1|1|22") + TT_LINE("1,0|1|22") + TT_LINE("1,1|0|15") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + + TRUTHTABLE_START(TTL_74139_GATE, 3, 4, "") + TT_HEAD("E,A,B|0,1,2,3") + TT_LINE("1,X,X|1,1,1,1|14") + TT_LINE("0,0,0|0,1,1,1|14") + TT_LINE("0,0,1|1,0,1,1|14") + TT_LINE("0,1,0|1,1,0,1|14") + TT_LINE("0,1,1|1,1,1,0|14") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74155A_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,0|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,1|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,1|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,1|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,1|1,1,1,0|13,13,13,13") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74155B_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,1|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,0|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,0|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,0|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,0|1,1,1,0|13,13,13,13") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74156A_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,0|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,1|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,1|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,1|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,1|1,1,1,0|13,13,13,13") + TT_FAMILY("74XXOC") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74156B_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,1|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,0|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,0|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,0|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,0|1,1,1,0|13,13,13,13") + TT_FAMILY("74XXOC") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74157_GATE, 4, 4, "") + TT_HEAD("E,S,I,J|O") + TT_LINE("1,X,X,X|0|14") + TT_LINE("0,1,X,0|0|14") + TT_LINE("0,1,X,1|1|14") + TT_LINE("0,0,0,X|0|14") + TT_LINE("0,0,1,X|1|14") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74260_NOR, 5, 1, "+A,+B,+C,+D,+E,@VCC,@GND") + TT_HEAD("A,B,C,D,E|Q") + TT_LINE("0,0,0,0,0|1|10") + TT_LINE("X,X,X,X,1|0|12") + TT_LINE("X,X,X,1,X|0|12") + TT_LINE("X,X,1,X,X|0|12") + TT_LINE("X,1,X,X,X|0|12") + TT_LINE("1,X,X,X,X|0|12") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + // FIXME: We need "private" devices + TRUTHTABLE_START(TTL_74279A, 3, 1, "") + TT_HEAD("S,R,_Q|Q") + TT_LINE("0,X,X|1|22") + TT_LINE("1,0,X|0|27") + TT_LINE("1,1,0|0|27") + TT_LINE("1,1,1|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74279B, 4, 1, "") + TT_HEAD("S1,S2,R,_Q|Q") + TT_LINE("0,X,X,X|1|22") + TT_LINE("X,0,X,X|1|22") + TT_LINE("1,1,0,X|0|27") + TT_LINE("1,1,1,0|0|27") + TT_LINE("1,1,1,1|1|22") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_9312, 12, 2, "+A,+B,+C,+G,+D0,+D1,+D2,+D3,+D4,+D5,+D6,+D7,@VCC,@GND") + TT_HEAD(" C, B, A, G,D0,D1,D2,D3,D4,D5,D6,D7| Y,YQ") + TT_LINE(" X, X, X, 1, X, X, X, X, X, X, X, X| 0, 1|33,19") + TT_LINE(" 0, 0, 0, 0, 0, X, X, X, X, X, X, X| 0, 1|33,28") + TT_LINE(" 0, 0, 0, 0, 1, X, X, X, X, X, X, X| 1, 0|33,28") + TT_LINE(" 0, 0, 1, 0, X, 0, X, X, X, X, X, X| 0, 1|33,28") + TT_LINE(" 0, 0, 1, 0, X, 1, X, X, X, X, X, X| 1, 0|33,28") + TT_LINE(" 0, 1, 0, 0, X, X, 0, X, X, X, X, X| 0, 1|33,28") + TT_LINE(" 0, 1, 0, 0, X, X, 1, X, X, X, X, X| 1, 0|33,28") + TT_LINE(" 0, 1, 1, 0, X, X, X, 0, X, X, X, X| 0, 1|33,28") + TT_LINE(" 0, 1, 1, 0, X, X, X, 1, X, X, X, X| 1, 0|33,28") + TT_LINE(" 1, 0, 0, 0, X, X, X, X, 0, X, X, X| 0, 1|33,28") + TT_LINE(" 1, 0, 0, 0, X, X, X, X, 1, X, X, X| 1, 0|33,28") + TT_LINE(" 1, 0, 1, 0, X, X, X, X, X, 0, X, X| 0, 1|33,28") + TT_LINE(" 1, 0, 1, 0, X, X, X, X, X, 1, X, X| 1, 0|33,28") + TT_LINE(" 1, 1, 0, 0, X, X, X, X, X, X, 0, X| 0, 1|33,28") + TT_LINE(" 1, 1, 0, 0, X, X, X, X, X, X, 1, X| 1, 0|33,28") + TT_LINE(" 1, 1, 1, 0, X, X, X, X, X, X, X, 0| 0, 1|33,28") + TT_LINE(" 1, 1, 1, 0, X, X, X, X, X, X, X, 1| 1, 0|33,28") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + LOCAL_LIB_ENTRY(TTL_7400_DIP) + LOCAL_LIB_ENTRY(TTL_7402_DIP) + LOCAL_LIB_ENTRY(TTL_7404_DIP) + LOCAL_LIB_ENTRY(TTL_7406_DIP) + LOCAL_LIB_ENTRY(TTL_7407_DIP) + LOCAL_LIB_ENTRY(TTL_7408_DIP) + LOCAL_LIB_ENTRY(TTL_7410_DIP) + LOCAL_LIB_ENTRY(TTL_7411_DIP) + LOCAL_LIB_ENTRY(TTL_7414_GATE) + LOCAL_LIB_ENTRY(TTL_74LS14_GATE) + LOCAL_LIB_ENTRY(TTL_7414_DIP) + LOCAL_LIB_ENTRY(TTL_74LS14_DIP) + LOCAL_LIB_ENTRY(TTL_7416_DIP) + LOCAL_LIB_ENTRY(TTL_7420_DIP) + LOCAL_LIB_ENTRY(TTL_7421_DIP) + LOCAL_LIB_ENTRY(TTL_7425_DIP) + LOCAL_LIB_ENTRY(TTL_7427_DIP) + LOCAL_LIB_ENTRY(TTL_7430_DIP) + LOCAL_LIB_ENTRY(TTL_7432_DIP) + LOCAL_LIB_ENTRY(TTL_7437_DIP) + LOCAL_LIB_ENTRY(TTL_7442_DIP) + LOCAL_LIB_ENTRY(TTL_7448_DIP) + LOCAL_LIB_ENTRY(TTL_7450_DIP) + LOCAL_LIB_ENTRY(TTL_7473_DIP) + LOCAL_LIB_ENTRY(TTL_7473A_DIP) + LOCAL_LIB_ENTRY(TTL_7474_DIP) + LOCAL_LIB_ENTRY(TTL_7475_DIP) + LOCAL_LIB_ENTRY(TTL_7477_DIP) + LOCAL_LIB_ENTRY(TTL_7483_DIP) + LOCAL_LIB_ENTRY(TTL_7485_DIP) + LOCAL_LIB_ENTRY(TTL_7486_DIP) + LOCAL_LIB_ENTRY(TTL_7490_DIP) + LOCAL_LIB_ENTRY(TTL_7492_DIP) + LOCAL_LIB_ENTRY(TTL_7493_DIP) + LOCAL_LIB_ENTRY(TTL_7497_DIP) + LOCAL_LIB_ENTRY(TTL_74107_DIP) + LOCAL_LIB_ENTRY(TTL_74107A_DIP) + LOCAL_LIB_ENTRY(TTL_74113_DIP) + LOCAL_LIB_ENTRY(TTL_74113A_DIP) + LOCAL_LIB_ENTRY(TTL_74121_DIP) + LOCAL_LIB_ENTRY(TTL_74123_DIP) + LOCAL_LIB_ENTRY(TTL_9602_DIP) + LOCAL_LIB_ENTRY(TTL_74125_DIP) + LOCAL_LIB_ENTRY(TTL_74126_DIP) + LOCAL_LIB_ENTRY(TTL_74139_DIP) + LOCAL_LIB_ENTRY(TTL_74153_DIP) + LOCAL_LIB_ENTRY(TTL_74155_DIP) + LOCAL_LIB_ENTRY(TTL_74156_DIP) + LOCAL_LIB_ENTRY(TTL_74157_DIP) + LOCAL_LIB_ENTRY(TTL_74161_DIP) + LOCAL_LIB_ENTRY(TTL_74163_DIP) + LOCAL_LIB_ENTRY(TTL_74164_DIP) + LOCAL_LIB_ENTRY(TTL_74165_DIP) + LOCAL_LIB_ENTRY(TTL_74166_DIP) + LOCAL_LIB_ENTRY(TTL_74174_DIP) + LOCAL_LIB_ENTRY(TTL_74175_DIP) + LOCAL_LIB_ENTRY(TTL_74192_DIP) + LOCAL_LIB_ENTRY(TTL_74193_DIP) + LOCAL_LIB_ENTRY(TTL_74194_DIP) + LOCAL_LIB_ENTRY(TTL_74260_DIP) + LOCAL_LIB_ENTRY(TTL_74279_DIP) + LOCAL_LIB_ENTRY(TTL_74365_DIP) + LOCAL_LIB_ENTRY(TTL_74377_DIP) + LOCAL_LIB_ENTRY(TTL_74378_DIP) + LOCAL_LIB_ENTRY(TTL_74379_DIP) + LOCAL_LIB_ENTRY(TTL_74393_DIP) + LOCAL_LIB_ENTRY(SN74LS629_DIP) + LOCAL_LIB_ENTRY(TTL_9312_DIP) + LOCAL_LIB_ENTRY(TTL_9310_DIP) + LOCAL_LIB_ENTRY(TTL_9316_DIP) + LOCAL_LIB_ENTRY(TTL_9321_DIP) + LOCAL_LIB_ENTRY(TTL_9322_DIP) +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.h mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.h --- mame-0.223+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/macro/nlm_ttl74xx_lib.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,316 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#ifndef NLM_TTL74XX_H_ +#define NLM_TTL74XX_H_ + +/// +/// \file nlm_ttl74xx.h +/// + +#include "netlist/nl_setup.h" + +#ifndef __PLIB_PREPROCESSOR__ + +/* ---------------------------------------------------------------------------- + * Netlist Macros + * ---------------------------------------------------------------------------*/ + +#if !NL_AUTO_DEVICES + +#define TTL_7400_NAND(...) \ + NET_REGISTER_DEVEXT(TTL_7400_NAND, __VA_ARGS__) + +#define TTL_7400_DIP(name) \ + NET_REGISTER_DEV(TTL_7400_DIP, name) + + +#define TTL_7402_NOR(...) \ + NET_REGISTER_DEVEXT(TTL_7402_NOR, __VA_ARGS__) + +#define TTL_7402_DIP(name) \ + NET_REGISTER_DEV(TTL_7402_DIP, name) + +#define TTL_7404_INVERT(...) \ + NET_REGISTER_DEVEXT(TTL_7404_INVERT, __VA_ARGS__) + +#define TTL_7404_DIP(name) \ + NET_REGISTER_DEV(TTL_7404_DIP, name) + + +#define TTL_7406_GATE(name) \ + NET_REGISTER_DEV(TTL_7406_GATE, name) + +#define TTL_7406_DIP(name) \ + NET_REGISTER_DEV(TTL_7406_DIP, name) + + +#define TTL_7407_GATE(name) \ + NET_REGISTER_DEV(TTL_7407_GATE, name) + +#define TTL_7407_DIP(name) \ + NET_REGISTER_DEV(TTL_7407_DIP, name) + + +#define TTL_7408_AND(...) \ + NET_REGISTER_DEVEXT(TTL_7408_AND, __VA_ARGS__) + +#define TTL_7408_DIP(name) \ + NET_REGISTER_DEV(TTL_7408_DIP, name) + + +#define TTL_7410_NAND(...) \ + NET_REGISTER_DEVEXT(TTL_7410_NAND, __VA_ARGS__) + +#define TTL_7410_DIP(name) \ + NET_REGISTER_DEV(TTL_7410_DIP, name) + + +#define TTL_7411_AND(...) \ + NET_REGISTER_DEVEXT(TTL_7411_AND, __VA_ARGS__) + +#define TTL_7411_DIP(name) \ + NET_REGISTER_DEV(TTL_7411_DIP, name) + + +#define TTL_7414_GATE(name) \ + NET_REGISTER_DEV(TTL_7414_GATE, name) + +#define TTL_7414_DIP(name) \ + NET_REGISTER_DEV(TTL_7414_DIP, name) + + +#define TTL_74LS14_GATE(name) \ + NET_REGISTER_DEV(TTL_74LS14_GATE, name) + +#define TTL_74LS14_DIP(name) \ + NET_REGISTER_DEV(TTL_74LS14_DIP, name) + + +#define TTL_7416_GATE(name) \ + NET_REGISTER_DEV(TTL_7416_GATE, name) + +#define TTL_7416_DIP(name) \ + NET_REGISTER_DEV(TTL_7416_DIP, name) + + +#define TTL_7420_NAND(...) \ + NET_REGISTER_DEVEXT(TTL_7420_NAND, __VA_ARGS__) + +#define TTL_7420_DIP(name) \ + NET_REGISTER_DEV(TTL_7420_DIP, name) + + +#define TTL_7421_AND(...) \ + NET_REGISTER_DEVEXT(TTL_7421_AND, __VA_ARGS__) + +#define TTL_7421_DIP(name) \ + NET_REGISTER_DEV(TTL_7421_DIP, name) + + +#define TTL_7425_NOR(...) \ + NET_REGISTER_DEVEXT(TTL_7425_NOR, __VA_ARGS__) + +#define TTL_7425_DIP(name) \ + NET_REGISTER_DEV(TTL_7425_DIP, name) + + +#define TTL_7427_NOR(...) \ + NET_REGISTER_DEVEXT(TTL_7427_NOR, __VA_ARGS__) + +#define TTL_7427_DIP(name) \ + NET_REGISTER_DEV(TTL_7427_DIP, name) + + +#define TTL_7430_NAND(...) \ + NET_REGISTER_DEVEXT(TTL_7430_NAND, __VA_ARGS__) + +#define TTL_7430_DIP(name) \ + NET_REGISTER_DEV(TTL_7430_DIP, name) + + +#define TTL_7432_OR(...) \ + NET_REGISTER_DEVEXT(TTL_7432_OR, __VA_ARGS__) + +#define TTL_7432_DIP(name) \ + NET_REGISTER_DEV(TTL_7432_DIP, name) + + +#define TTL_7437_NAND(...) \ + NET_REGISTER_DEVEXT(TTL_7437_NAND, __VA_ARGS__) + +#define TTL_7437_DIP(name) \ + NET_REGISTER_DEV(TTL_7437_DIP, name) + + +#define TTL_7442_DIP(name) \ + NET_REGISTER_DEV(TTL_7442_DIP, name) + +#define TTL_7448_DIP(name) \ + NET_REGISTER_DEV(TTL_7448_DIP, name) + +#define TTL_7450_DIP(name) \ + NET_REGISTER_DEV(TTL_7450_DIP, name) + +#define TTL_7473_DIP(name) \ + NET_REGISTER_DEV(TTL_7473_DIP, name) + +#define TTL_7473A_DIP(name) \ + NET_REGISTER_DEV(TTL_7473A_DIP, name) + +#define TTL_7474_DIP(name) \ + NET_REGISTER_DEV(TTL_7474_DIP, name) + +#define TTL_7475_DIP(name) \ + NET_REGISTER_DEV(TTL_7475_DIP, name) + +#define TTL_7477_DIP(name) \ + NET_REGISTER_DEV(TTL_7477_DIP, name) + +#define TTL_7483_DIP(name) \ + NET_REGISTER_DEV(TTL_7483_DIP, name) + +#define TTL_7485_DIP(name) \ + NET_REGISTER_DEV(TTL_7485_DIP, name) + +#define TTL_7486_XOR(...) \ + NET_REGISTER_DEVEXT(TTL_7486_XOR, __VA_ARGS__) + +#define TTL_7486_DIP(name) \ + NET_REGISTER_DEV(TTL_7486_DIP, name) + +#define TTL_7490_DIP(name) \ + NET_REGISTER_DEV(TTL_7490_DIP, name) + +#define TTL_7492_DIP(name) \ + NET_REGISTER_DEV(TTL_7492_DIP, name) + +#define TTL_7493_DIP(name) \ + NET_REGISTER_DEV(TTL_7493_DIP, name) + +#define TTL_7497_DIP(name) \ + NET_REGISTER_DEV(TTL_7497_DIP, name) + +#define TTL_74107_DIP(name) \ + NET_REGISTER_DEV(TTL_74107_DIP, name) + +#define TTL_74107A_DIP(name) \ + NET_REGISTER_DEV(TTL_74107A_DIP, name) + +#define TTL_74113_DIP(name) \ + NET_REGISTER_DEV(TTL_74113_DIP, name) + +#define TTL_74113A_DIP(name) \ + NET_REGISTER_DEV(TTL_74113A_DIP, name) + +#define TTL_74121_DIP(name) \ + NET_REGISTER_DEV(TTL_74121_DIP, name) + +#define TTL_74123_DIP(name) \ + NET_REGISTER_DEV(TTL_74123_DIP, name) + +#define TTL_9602_DIP(name) \ + NET_REGISTER_DEV(TTL_9602_DIP, name) + +#define TTL_74125_DIP(name) \ + NET_REGISTER_DEV(TTL_74125_DIP, name) + +#define TTL_74139_DIP(name) \ + NET_REGISTER_DEV(TTL_74139_DIP, name) + +#define TTL_74153_DIP(name) \ + NET_REGISTER_DEV(TTL_74153_DIP, name) + +#define TTL_74155_DIP(name) \ + NET_REGISTER_DEV(TTL_74155_DIP, name) + +#define TTL_74156_DIP(name) \ + NET_REGISTER_DEV(TTL_74156_DIP, name) + +#define TTL_74157_DIP(name) \ + NET_REGISTER_DEV(TTL_74157_DIP, name) + +#define TTL_74161_DIP(name) \ + NET_REGISTER_DEV(TTL_74161_DIP, name) + +#define TTL_74163_DIP(name) \ + NET_REGISTER_DEV(TTL_74163_DIP, name) + +#define TTL_74164_DIP(name) \ + NET_REGISTER_DEV(TTL_74164_DIP, name) + +#define TTL_74165_DIP(name) \ + NET_REGISTER_DEV(TTL_74165_DIP, name) + +#define TTL_74166_DIP(name) \ + NET_REGISTER_DEV(TTL_74166_DIP, name) + +#define TTL_74174_DIP(name) \ + NET_REGISTER_DEV(TTL_74174_DIP, name) + +#define TTL_74175_DIP(name) \ + NET_REGISTER_DEV(TTL_74175_DIP, name) + +#define TTL_74192_DIP(name) \ + NET_REGISTER_DEV(TTL_74192_DIP, name) + +#define TTL_74193_DIP(name) \ + NET_REGISTER_DEV(TTL_74193_DIP, name) + +#define TTL_74194_DIP(name) \ + NET_REGISTER_DEV(TTL_74194_DIP, name) + +#define TTL_74260_NOR(...) \ + NET_REGISTER_DEVEXT(TTL_74260_NOR, __VA_ARGS__) + +#define TTL_74260_DIP(name) \ + NET_REGISTER_DEV(TTL_74260_DIP, name) + +#define TTL_74279_DIP(name) \ + NET_REGISTER_DEV(TTL_74279_DIP, name) + +#define TTL_74365_DIP(name) \ + NET_REGISTER_DEV(TTL_74365_DIP, name) + +#define TTL_74377_DIP(name) \ + NET_REGISTER_DEV(TTL_74377_DIP, name) + +#define TTL_74378_DIP(name) \ + NET_REGISTER_DEV(TTL_74378_DIP, name) + +#define TTL_74379_DIP(name) \ + NET_REGISTER_DEV(TTL_74379_DIP, name) + +#define TTL_74393_DIP(name) \ + NET_REGISTER_DEV(TTL_74393_DIP, name) + +#define TTL_9312(...) \ + NET_REGISTER_DEVEXT(TTL_9312, __VA_ARGS__) + +#define TTL_9312_DIP(name) \ + NET_REGISTER_DEV(TTL_9312_DIP, name) + +#define TTL_9310_DIP(name) \ + NET_REGISTER_DEV(TTL_9310_DIP, name) + +#define TTL_9316_DIP(name) \ + NET_REGISTER_DEV(TTL_9316_DIP, name) + +#define TTL_9321_DIP(name) \ + NET_REGISTER_DEV(TTL_9321_DIP, name) + +#define TTL_9322_DIP(name) \ + NET_REGISTER_DEV(TTL_9322_DIP, name) + +#endif // NL_AUTO_DEVICES + +/* ---------------------------------------------------------------------------- + * External declarations + * ---------------------------------------------------------------------------*/ + +// moved to net_lib.h + +#endif // __PLIB_PREPROCESSOR__ + + +#endif // NLM_TTL74XX diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_base.cpp mame-0.224+dfsg.1/src/lib/netlist/nl_base.cpp --- mame-0.223+dfsg.1/src/lib/netlist/nl_base.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_base.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,6 +1,7 @@ // license:GPL-2.0+ // copyright-holders:Couriersud +#include "macro/nlm_base_lib.h" #include "solver/nld_matrix_solver.h" #include "solver/nld_solver.h" @@ -12,8 +13,6 @@ #include "core/setup.h" #include "devices/nlid_proxy.h" -#include "devices/nlid_system.h" // netlist_params -#include "macro/nlm_base.h" #include "nl_base.h" #include "nl_errstr.h" @@ -115,7 +114,6 @@ , m_extended_validation(false) , m_dummy_version(1) { - m_lib = m_callbacks->static_solver_lib(); m_setup = plib::make_unique(*this); @@ -130,7 +128,6 @@ devices::initialize_factory(m_setup->parser().factory()); // Add default include file - using a = plib::psource_str_t; const pstring content = "#define RES_R(res) (res) \n" "#define RES_K(res) ((res) * 1e3) \n" @@ -141,8 +138,26 @@ "#define IND_U(ind) ((ind) * 1e-6) \n" "#define IND_N(ind) ((ind) * 1e-9) \n" "#define IND_P(ind) ((ind) * 1e-12) \n"; - m_setup->parser().add_include("netlist/devices/net_lib.h", content); - NETLIST_NAME(base)(m_setup->parser()); + m_setup->parser().add_include("netlist/devices/net_lib.h", content); +#if 1 + NETLIST_NAME(base_lib)(m_setup->parser()); +#else + // FIXME: This is very slow - need optimized parsing scanning +#if 1 + m_setup->parser().register_source("src/lib/netlist/macro/nlm_{1}.cpp"); + m_setup->parser().include("base_lib"); +#else + pstring dir = "src/lib/netlist/macro/"; + //m_setup->parser().register_source("src/lib/netlist/macro/nlm_{}.cpp"); + m_setup->parser().register_source(dir + "nlm_base_lib.cpp"); + m_setup->parser().register_source(dir + "nlm_opamp_lib.cpp"); + m_setup->parser().register_source(dir + "nlm_roms_lib.cpp"); + m_setup->parser().register_source(dir + "nlm_cd4xxx_lib.cpp"); + m_setup->parser().register_source(dir + "nlm_otheric_lib.cpp"); + m_setup->parser().register_source(dir + "nlm_ttl74xx_lib.cpp"); + m_setup->parser().include("base_lib"); +#endif +#endif } @@ -194,7 +209,6 @@ ENTRY(NL_USE_MEMPOOL) ENTRY(NL_USE_QUEUE_STATS) ENTRY(NL_USE_COPY_INSTEAD_OF_REFERENCE) - ENTRY(NL_USE_TRUTHTABLE_7448) ENTRY(NL_AUTO_DEVICES) ENTRY(NL_USE_FLOAT128) ENTRY(NL_USE_FLOAT_MATRIX) @@ -318,9 +332,10 @@ std::vector t; log().verbose("Using default startup strategy"); for (auto &n : m_nets) + { + n->update_inputs(); // only used if USE_COPY_INSTEAD_OF_REFERENCE == 1 for (auto & term : n->core_terms()) { - n->update_inputs(); // only used if USE_COPY_INSTEAD_OF_REFERENCE == 1 if (!plib::container::contains(t, &term->delegate())) { t.push_back(&term->delegate()); @@ -331,6 +346,7 @@ if (!plib::container::contains(devices_called, dev)) devices_called.push_back(dev); } + } log().verbose("Devices not yet updated:"); for (auto &dev : m_devices) if (!plib::container::contains(devices_called, dev.second.get())) @@ -733,8 +749,6 @@ nldelegate delegate) : logic_t(dev, aname, STATE_INP_ACTIVE, delegate) { - if (!delegate.is_set()) - throw nl_exception("delegate not set for {1}", this->name()); state().setup().register_term(*this); } @@ -759,6 +773,16 @@ net().initial(val); } + // ----------------------------------------------------------------------------- + // tristate_output_t + // ----------------------------------------------------------------------------- + tristate_output_t::tristate_output_t(device_t &dev, const pstring &aname, bool force_logic) + : logic_output_t(dev, aname) + , m_last_logic(dev, name() + "." + "m_last_logic", 1) // force change + , m_tristate(dev, name() + "." + "m_tristate", force_logic ? 0 : 2) // force change + , m_force_logic(force_logic) + {} + // ---------------------------------------------------------------------------------------- // analog_input_t // ---------------------------------------------------------------------------------------- @@ -881,7 +905,7 @@ } - std::unique_ptr param_data_t::stream() + plib::psource_t::stream_ptr param_data_t::stream() { return device().state().parser().get_data_stream(str()); } @@ -939,6 +963,94 @@ nlparse_t &netlist_state_t::parser() { return m_setup->parser(); } const nlparse_t &netlist_state_t::parser() const { return m_setup->parser(); } + void netlist_state_t::remove_device(core_device_t *dev) + { + for (auto it = m_devices.begin(); it != m_devices.end(); it++) + if (it->second.get() == dev) + { + m_state.remove_save_items(dev); + m_devices.erase(it); + return; + } + } + + // ---------------------------------------------------------------------------------------- + // netlist_t + // + // Hot section + // + // Any changes below will impact performance. + // ----------------------------------------------------------------------------- + + template + void netlist_t::process_queue_stats(const netlist_time_ext delta) noexcept + { + netlist_time_ext stop(m_time + delta); + + qpush(stop, nullptr); + + if (m_mainclock == nullptr) + { + m_time = m_queue.top().exec_time(); + detail::net_t *obj(m_queue.top().object()); + m_queue.pop(); + + while (obj != nullptr) + { + obj->template update_devs(); + if (KEEP_STATS) + m_perf_out_processed.inc(); + const detail::queue_t::entry_t *top = &m_queue.top(); + m_time = top->exec_time(); + obj = top->object(); + m_queue.pop(); + } + } + else + { + logic_net_t &mc_net(m_mainclock->m_Q.net()); + const netlist_time inc(m_mainclock->m_inc); + netlist_time_ext mc_time(mc_net.next_scheduled_time()); + + do + { + const detail::queue_t::entry_t *top = &m_queue.top(); + while (top->exec_time() > mc_time) + { + m_time = mc_time; + mc_net.toggle_new_Q(); + mc_net.update_devs(); + top = &m_queue.top(); + mc_time += inc; + } + + m_time = top->exec_time(); + auto *const obj(top->object()); + m_queue.pop(); + if (obj != nullptr) + obj->template update_devs(); + else + break; + if (KEEP_STATS) + m_perf_out_processed.inc(); + } while (true); + + mc_net.set_next_scheduled_time(mc_time); + } + } + + void netlist_t::process_queue(netlist_time_ext delta) noexcept + { + if (!m_use_stats) + process_queue_stats(delta); + else + { + auto sm_guard(m_stat_mainloop.guard()); + process_queue_stats(delta); + } + } + + template struct state_var; template struct state_var; template struct state_var; diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_base.h mame-0.224+dfsg.1/src/lib/netlist/nl_base.h --- mame-0.223+dfsg.1/src/lib/netlist/nl_base.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_base.h 2020-08-26 08:57:19.000000000 +0000 @@ -12,195 +12,19 @@ #error "nl_base.h included. Please correct." #endif +#include "core/analog.h" #include "core/base_objects.h" -#include "core/param.h" -#include "core/state_var.h" +#include "core/device.h" +#include "core/logic.h" #include "core/logic_family.h" +#include "core/netlist_state.h" #include "core/nets.h" - -#include "plib/palloc.h" // owned_ptr -#include "plib/pfunction.h" -#include "plib/plists.h" -#include "plib/pmempool.h" -#include "plib/ppmf.h" -#include "plib/pstate.h" -#include "plib/pstream.h" -#include "plib/ptimed_queue.h" -#include "plib/ptypes.h" - -#include "nl_errstr.h" -#include "nl_factory.h" -#include "nltypes.h" - -#include -#include -#include - -//============================================================ -// MACROS / New Syntax -//============================================================ - -/// \brief Construct a netlist device name -/// -#define NETLIB_NAME(chip) nld_ ## chip - -/// \brief Start a netlist device class. -/// -/// Used to start defining a netlist device class. -/// The simplest device without inputs or outputs would look like this: -/// -/// NETLIB_OBJECT(some_object) -/// { -/// public: -/// NETLIB_CONSTRUCTOR(some_object) { } -/// }; -/// -/// Also refer to #NETLIB_CONSTRUCTOR. -#define NETLIB_OBJECT(name) \ -class NETLIB_NAME(name) : public delegator_t - -/// \brief Start a derived netlist device class. -/// -/// Used to define a derived device class based on plcass. -/// The simplest device without inputs or outputs would look like this: -/// -/// NETLIB_OBJECT_DERIVED(some_object, parent_object) -/// { -/// public: -/// NETLIB_CONSTRUCTOR(some_object) { } -/// }; -/// -/// Also refer to #NETLIB_CONSTRUCTOR. -#define NETLIB_OBJECT_DERIVED(name, pclass) \ -class NETLIB_NAME(name) : public delegator_t - - - -// Only used for analog objects like diodes and resistors - -#define NETLIB_BASE_OBJECT(name) \ -class NETLIB_NAME(name) : public delegator_t - -#define NETLIB_CONSTRUCTOR_PASS(cname, ...) \ - using this_type = NETLIB_NAME(cname); \ - public: template NETLIB_NAME(cname)(CLASS &owner, const pstring &name) \ - : base_type(owner, name, __VA_ARGS__) - -/// \brief Used to define the constructor of a netlist device. -/// -/// Use this to define the constructor of a netlist device. Please refer to -/// #NETLIB_OBJECT for an example. -#define NETLIB_CONSTRUCTOR(cname) \ - using this_type = NETLIB_NAME(cname); \ - public: template NETLIB_NAME(cname)(CLASS &owner, const pstring &name)\ - : base_type(owner, name) - -/// \brief Used to define the constructor of a netlist device and define a default model. -/// -/// -/// NETLIB_CONSTRUCTOR_MODEL(some_object, "TTL") -/// { -/// public: -/// NETLIB_CONSTRUCTOR(some_object) { } -/// }; -/// -#define NETLIB_CONSTRUCTOR_MODEL(cname, cmodel) \ - using this_type = NETLIB_NAME(cname); \ - public: template NETLIB_NAME(cname)(CLASS &owner, const pstring &name) \ - : base_type(owner, name, cmodel) - -/// \brief Define an extended constructor and add further parameters to it. -/// The macro allows to add further parameters to a device constructor. This is -/// normally used for sub-devices and system devices only. -#define NETLIB_CONSTRUCTOR_EX(cname, ...) \ - using this_type = NETLIB_NAME(cname); \ - public: template NETLIB_NAME(cname)(CLASS &owner, const pstring &name, __VA_ARGS__) \ - : base_type(owner, name) - -/// \brief Used to define the destructor of a netlist device. -/// The use of a destructor for netlist device should normally not be necessary. -#define NETLIB_DESTRUCTOR(name) public: virtual ~NETLIB_NAME(name)() noexcept override - -/// \brief Add this to a device definition to mark the device as dynamic. -/// -/// If NETLIB_IS_DYNAMIC(true) is added to the device definition the device -/// is treated as an analog dynamic device, i.e. \ref NETLIB_UPDATE_TERMINALSI -/// is called on a each step of the Newton-Raphson step -/// of solving the linear equations. -/// -/// You may also use e.g. NETLIB_IS_DYNAMIC(m_func() != "") to only make the -/// device a dynamic device if parameter m_func is set. -/// -/// \param expr boolean expression -/// -#define NETLIB_IS_DYNAMIC(expr) \ - public: virtual bool is_dynamic() const noexcept override { return expr; } - -/// \brief Add this to a device definition to mark the device as a time-stepping device. -/// -/// You have to implement NETLIB_TIMESTEP in this case as well. Currently, only -/// the capacitor and inductor devices uses this. -/// -/// You may also use e.g. NETLIB_IS_TIMESTEP(m_func() != "") to only make the -/// device a dynamic device if parameter m_func is set. This is used by the -/// Voltage Source element. -/// -/// Example: -/// -/// \code -/// NETLIB_TIMESTEP_IS_TIMESTEP() -/// NETLIB_TIMESTEPI() -/// { -/// // Gpar should support convergence -/// const nl_fptype G = m_C.Value() / step + m_GParallel; -/// const nl_fptype I = -G/// deltaV(); -/// set(G, 0.0, I); -/// } -/// \endcode - -#define NETLIB_IS_TIMESTEP(expr) \ - public: virtual bool is_timestep() const noexcept override { return expr; } - -/// \brief Used to implement the time stepping code. -/// -/// Please see \ref NETLIB_IS_TIMESTEP for an example. - -#define NETLIB_TIMESTEPI() \ - public: virtual void timestep(timestep_type ts_type, nl_fptype step) noexcept override - -/// \brief Used to implement the body of the time stepping code. -/// -/// Used when the implementation is outside the class definition -/// -/// Please see \ref NETLIB_IS_TIMESTEP for an example. -/// -/// \param cname Name of object as given to \ref NETLIB_OBJECT -/// -#define NETLIB_TIMESTEP(cname) \ - void NETLIB_NAME(cname) :: timestep(timestep_type ts_type, nl_fptype step) noexcept - -#define NETLIB_DELEGATE(name) nldelegate(&this_type :: name, this) - -#define NETLIB_UPDATE_TERMINALSI() virtual void update_terminals() noexcept override -#define NETLIB_HANDLERI(name) void name() noexcept -#define NETLIB_UPDATE_PARAMI() virtual void update_param() noexcept override -#define NETLIB_RESETI() virtual void reset() override - -#define NETLIB_SUB(chip) nld_ ## chip -#define NETLIB_SUB_UPTR(ns, chip) device_arena::unique_ptr< ns :: nld_ ## chip > - -#define NETLIB_HANDLER(chip, name) void NETLIB_NAME(chip) :: name() noexcept - -#if 0 -#define NETLIB_UPDATEI() virtual void update() noexcept override -#define NETLIB_UPDATE(chip) NETLIB_HANDLER(chip, update) -#endif - -#define NETLIB_RESET(chip) void NETLIB_NAME(chip) :: reset(void) - -#define NETLIB_UPDATE_PARAM(chip) void NETLIB_NAME(chip) :: update_param() noexcept - -#define NETLIB_UPDATE_TERMINALS(chip) void NETLIB_NAME(chip) :: update_terminals() noexcept +#include "core/object_array.h" +#include "core/param.h" +#include "core/state_var.h" +#include "core/exec.h" +#include "core/device_macros.h" +#include "core/devices.h" //============================================================ // Namespace starts @@ -209,1402 +33,6 @@ namespace netlist { - - - // ----------------------------------------------------------------------------- - // analog_t - // ----------------------------------------------------------------------------- - - class analog_t : public detail::core_terminal_t - { - public: - - analog_t(core_device_t &dev, const pstring &aname, state_e state, - nldelegate delegate); - - const analog_net_t & net() const noexcept; - analog_net_t & net() noexcept; - - solver::matrix_solver_t *solver() const noexcept; - }; - - /// \brief Base clase for terminals. - /// - /// Each \ref nld_twoterm object consists of two terminals. Terminals - /// are at the core of analog netlists and provide. \ref net_t objects - /// connect terminals. - /// - class terminal_t : public analog_t - { - public: - - /// \brief constructor - /// - /// @param dev core_devict_t object owning the terminal - /// @param aname name of this terminal - /// @param otherterm pointer to the sibling terminal - terminal_t(core_device_t &dev, const pstring &aname, terminal_t *otherterm, nldelegate delegate); - - /// \brief Returns voltage of connected net - /// - /// @return voltage of net this terminal is connected to - nl_fptype operator ()() const noexcept; - - /// @brief sets conductivity value of this terminal - /// - /// @param G Conductivity - void set_conductivity(nl_fptype G) const noexcept - { - set_go_gt_I(-G, G, nlconst::zero()); - } - - void set_go_gt(nl_fptype GO, nl_fptype GT) const noexcept - { - set_go_gt_I(GO, GT, nlconst::zero()); - } - - void set_go_gt_I(nl_fptype GO, nl_fptype GT, nl_fptype I) const noexcept - { - // Check for rail nets ... - if (m_go != nullptr) - { - *m_Idr = I; - *m_go = GO; - *m_gt = GT; - } - } - - void set_ptrs(nl_fptype *gt, nl_fptype *go, nl_fptype *Idr) noexcept(false); - - private: - nl_fptype *m_Idr; ///< drive current - nl_fptype *m_go; ///< conductance for Voltage from other term - nl_fptype *m_gt; ///< conductance for total conductance - - }; - - - // ----------------------------------------------------------------------------- - // logic_t - // ----------------------------------------------------------------------------- - - class logic_t : public detail::core_terminal_t, public logic_family_t - { - public: - logic_t(device_t &dev, const pstring &aname, - state_e terminal_state, nldelegate delegate); - - logic_net_t & net() noexcept; - const logic_net_t & net() const noexcept; - }; - - // ----------------------------------------------------------------------------- - // logic_input_t - // ----------------------------------------------------------------------------- - - class logic_input_t : public logic_t - { - public: - logic_input_t(device_t &dev, const pstring &aname, - nldelegate delegate); - - inline netlist_sig_t operator()() const noexcept; - - void inactivate() noexcept; - void activate() noexcept; - void activate_hl() noexcept; - void activate_lh() noexcept; - }; - - // ----------------------------------------------------------------------------- - // analog_input_t - // ----------------------------------------------------------------------------- - - /// \brief terminal providing analog input voltage. - /// - /// This terminal class provides a voltage measurement. The conductance against - /// ground is infinite. - - class analog_input_t : public analog_t - { - public: - /// \brief Constructor - analog_input_t(core_device_t &dev, ///< owning device - const pstring &aname, ///< name of terminal - nldelegate delegate ///< delegate - ); - - /// \brief returns voltage at terminal. - /// \returns voltage at terminal. - nl_fptype operator()() const noexcept { return Q_Analog(); } - - /// \brief returns voltage at terminal. - /// \returns voltage at terminal. - nl_fptype Q_Analog() const noexcept; - }; - - // ----------------------------------------------------------------------------- - // logic_output_t - // ----------------------------------------------------------------------------- - - class logic_output_t : public logic_t - { - public: - - /// \brief logic output constructor - /// - /// The third parameter does nothing. It is provided only for - /// compatibility with tristate_output_t in templatized device models - /// - /// \param dev Device owning this output - /// \param aname The name of this output - /// \param dummy Dummy parameter to allow construction like tristate output - /// - logic_output_t(device_t &dev, const pstring &aname, bool dummy = false); - - void initial(netlist_sig_t val) noexcept; - - inline void push(const netlist_sig_t &newQ, const netlist_time &delay) noexcept - { - m_my_net.set_Q_and_push(newQ, delay); // take the shortcut - } - - inline void set_Q_time(const netlist_sig_t &newQ, const netlist_time_ext &at) noexcept - { - m_my_net.set_Q_time(newQ, at); // take the shortcut - } - - /// \brief Dummy implementation for templatized generic devices - /// - /// This function shall never be called. It is defined here so that - /// templatized generic device models do not have to do tons of - /// template magic. - /// - /// This function terminates if actually called. - /// - [[noreturn]] static void set_tristate(netlist_sig_t v, - netlist_time ts_off_on, netlist_time ts_on_off) - { - plib::unused_var(v, ts_off_on, ts_on_off); - plib::terminate("set_tristate on logic_output should never be called!"); - } - private: - logic_net_t m_my_net; - }; - - // ----------------------------------------------------------------------------- - // tristate_output_t - // ----------------------------------------------------------------------------- - - /// \brief Tristate output - /// - /// In a lot of applications tristate enable inputs are just connected to - /// VCC/GND to permanently enable the outputs. In this case a pure - /// implementation using analog outputs would not perform well. - /// - /// For this object during creation it can be decided if a logic output or - /// a tristate output is used. Generally the owning device uses parameter - /// FORCE_TRISTATE_LOGIC to determine this. - /// - /// This is the preferred way to implement tristate outputs. - /// - - class tristate_output_t : public logic_output_t - { - public: - - tristate_output_t(device_t &dev, const pstring &aname, bool force_logic) - : logic_output_t(dev, aname) - , m_last_logic(dev, name() + "." + "m_last_logic", 1) // force change - , m_tristate(dev, name() + "." + "m_tristate", force_logic ? 0 : 2) // force change - , m_force_logic(force_logic) - {} - - void push(netlist_sig_t newQ, netlist_time delay) noexcept - { - if (!m_tristate) - logic_output_t::push(newQ, delay); - m_last_logic = newQ; - } - - void set_tristate(netlist_sig_t v, - netlist_time ts_off_on, netlist_time ts_on_off) noexcept - { - if (!m_force_logic) - if (v != m_tristate) - { - logic_output_t::push((v != 0) ? OUT_TRISTATE() : m_last_logic, v ? ts_off_on : ts_on_off); - m_tristate = v; - } - } - - bool is_force_logic() const noexcept - { - return m_force_logic; - } - - private: - using logic_output_t::initial; - using logic_output_t::set_Q_time; - state_var m_last_logic; - state_var m_tristate; - bool m_force_logic; - }; - - - // ----------------------------------------------------------------------------- - // analog_output_t - // ----------------------------------------------------------------------------- - - class analog_output_t : public analog_t - { - public: - analog_output_t(core_device_t &dev, const pstring &aname); - - void push(nl_fptype val) noexcept; - void initial(nl_fptype val) noexcept; - - private: - analog_net_t m_my_net; - }; - - - // ----------------------------------------------------------------------------- - // base_device_t - // ----------------------------------------------------------------------------- - - class base_device_t : public core_device_t - { - public: - base_device_t(netlist_state_t &owner, const pstring &name); - base_device_t(base_device_t &owner, const pstring &name); - - PCOPYASSIGNMOVE(base_device_t, delete) - - ~base_device_t() noexcept override = default; - - template - void create_and_register_subdevice(O& owner, const pstring &name, device_arena::unique_ptr &dev, Args&&... args); - - void register_subalias(const pstring &name, const detail::core_terminal_t &term); - void register_subalias(const pstring &name, const pstring &aliased); - - void connect(const pstring &t1, const pstring &t2); - void connect(const detail::core_terminal_t &t1, const detail::core_terminal_t &t2); - protected: - - //NETLIB_UPDATE_TERMINALSI() { } - - private: - }; - - // ----------------------------------------------------------------------------- - // device_t - // ----------------------------------------------------------------------------- - - class device_t : public base_device_t, - public logic_family_t - { - public: - device_t(netlist_state_t &owner, const pstring &name); - device_t(netlist_state_t &owner, const pstring &name, - const pstring &model); - // only needed by proxies - device_t(netlist_state_t &owner, const pstring &name, - const logic_family_desc_t *desc); - - device_t(device_t &owner, const pstring &name); - // pass in a default model - this may be overwritten by PARAM(DEVICE.MODEL, "XYZ(...)") - device_t(device_t &owner, const pstring &name, - const pstring &model); - - PCOPYASSIGNMOVE(device_t, delete) - - ~device_t() noexcept override = default; - - protected: - - //NETLIB_UPDATE_TERMINALSI() { } - - private: - param_model_t m_model; - }; - - namespace detail { - // Use timed_queue_heap to use stdc++ heap functions instead of linear processing. - // This slows down processing by about 25% on a Kaby Lake. - // template - // using timed_queue = plib::timed_queue_heap; - - template - using timed_queue = plib::timed_queue_linear; - - // ----------------------------------------------------------------------------- - // queue_t - // ----------------------------------------------------------------------------- - - // We don't need a thread-safe queue currently. Parallel processing of - // solvers will update inputs after parallel processing. - - template - class queue_base : - public timed_queue, false>, - public plib::state_manager_t::callback_t - { - public: - using entry_t = plib::pqentry_t; - using base_queue = timed_queue; - using id_delegate = plib::pmfp; - using obj_delegate = plib::pmfp; - - explicit queue_base(std::size_t size, id_delegate get_id, obj_delegate get_obj) - : timed_queue, false>(size) - , m_qsize(0) - , m_times(size) - , m_net_ids(size) - , m_get_id(get_id) - , m_obj_by_id(get_obj) - { - } - - ~queue_base() noexcept override = default; - - queue_base(const queue_base &) = delete; - queue_base(queue_base &&) = delete; - queue_base &operator=(const queue_base &) = delete; - queue_base &operator=(queue_base &&) = delete; - - protected: - - void register_state(plib::state_manager_t &manager, const pstring &module) override - { - manager.save_item(this, m_qsize, module + "." + "qsize"); - manager.save_item(this, &m_times[0], module + "." + "times", m_times.size()); - manager.save_item(this, &m_net_ids[0], module + "." + "names", m_net_ids.size()); - } - void on_pre_save(plib::state_manager_t &manager) override - { - plib::unused_var(manager); - m_qsize = this->size(); - for (std::size_t i = 0; i < m_qsize; i++ ) - { - m_times[i] = this->listptr()[i].exec_time().as_raw(); - m_net_ids[i] = m_get_id(this->listptr()[i].object()); - } - } - void on_post_load(plib::state_manager_t &manager) override - { - plib::unused_var(manager); - this->clear(); - for (std::size_t i = 0; i < m_qsize; i++ ) - { - O *n = m_obj_by_id(m_net_ids[i]); - this->template push(entry_t(netlist_time_ext::from_raw(m_times[i]),n)); - } - } - - private: - std::size_t m_qsize; - std::vector m_times; - std::vector m_net_ids; - id_delegate m_get_id; - obj_delegate m_obj_by_id; - }; - - using queue_t = queue_base; - - } // namespace detail - - // ----------------------------------------------------------------------------- - // netlist_state__t - // ----------------------------------------------------------------------------- - - class netlist_state_t - { - public: - - using nets_collection_type = std::vector>; - using family_collection_type = std::unordered_map>; - - // need to preserve order of device creation ... - using devices_collection_type = std::vector>>; - netlist_state_t(const pstring &name, host_arena::unique_ptr &&callbacks); - - PCOPYASSIGNMOVE(netlist_state_t, delete) - - /// \brief Destructor - /// - /// The destructor is virtual to allow implementation specific devices - /// to connect to the outside world. For examples see MAME netlist.cpp. - /// - virtual ~netlist_state_t() noexcept = default; - - template - static bool check_class(core_device_t *p) noexcept - { - return dynamic_cast(p) != nullptr; - } - - core_device_t *get_single_device(const pstring &classname, bool (*cc)(core_device_t *)) const noexcept(false); - - /// \brief Get single device filtered by class and name - /// - /// \tparam C Device class for which devices will be returned - /// \param name Name of the device - /// - /// \return pointers to device - - template - C *get_single_device(const pstring &name) const - { - return dynamic_cast(get_single_device(name, check_class)); - } - - /// \brief Get vector of devices - /// - /// \tparam C Device class for which devices will be returned - /// - /// \return vector with pointers to devices - - template - inline std::vector get_device_list() const - { - std::vector tmp; - for (const auto &d : m_devices) - { - auto * const dev = dynamic_cast(d.second.get()); - if (dev != nullptr) - tmp.push_back(dev); - } - return tmp; - } - - // logging - - log_type & log() noexcept { return m_log; } - const log_type &log() const noexcept { return m_log; } - - plib::dynlib_base &lib() const noexcept { return *m_lib; } - - netlist_t &exec() noexcept { return *m_netlist; } - const netlist_t &exec() const noexcept { return *m_netlist; } - - // state handling - plib::state_manager_t &run_state_manager() noexcept { return m_state; } - - template - void save(O &owner, C &state, const pstring &module, const pstring &stname) - { - this->run_state_manager().save_item(static_cast(&owner), state, module + "." + stname); - } - - template - void save(O &owner, C *state, const pstring &module, const pstring &stname, const std::size_t count) - { - this->run_state_manager().save_state_ptr(static_cast(&owner), module + "." + stname, plib::state_manager_t::dtype(), count, state); - } - - // FIXME: only used by queue_t save state - std::size_t find_net_id(const detail::net_t *net) const; - detail::net_t *net_by_id(std::size_t id) const; - - template - void register_net(device_arena::owned_ptr &&net) { m_nets.push_back(std::move(net)); } - - /// \brief Get device pointer by name - /// - /// - /// \param name Name of the device - /// - /// \return core_device_t pointer if device exists, else nullptr - - core_device_t *find_device(const pstring &name) const - { - for (const auto & d : m_devices) - if (d.first == name) - return d.second.get(); - return nullptr; - } - - /// \brief Register device using owned_ptr - /// - /// Used to register owned devices. These are devices declared as objects - /// in another devices. - /// - /// \param name Name of the device - /// \param dev Device to be registered - - template - void register_device(const pstring &name, device_arena::owned_ptr &&dev) noexcept(false) - { - for (auto & d : m_devices) - if (d.first == name) - { - dev.release(); - log().fatal(MF_DUPLICATE_NAME_DEVICE_LIST(name)); - throw nl_exception(MF_DUPLICATE_NAME_DEVICE_LIST(name)); - } - //m_devices.push_back(std::move(dev)); - m_devices.insert(m_devices.end(), { name, std::move(dev) }); - } - - /// \brief Register device using unique_ptr - /// - /// Used to register devices. - /// - /// \param name Name of the device - /// \param dev Device to be registered - - template - void register_device(const pstring &name, device_arena::unique_ptr &&dev) - { - register_device(name, device_arena::owned_ptr(dev.release(), true, dev.get_deleter())); - } - - /// \brief Remove device - /// - /// Care needs to be applied if this is called to remove devices with - /// sub-devices which may have registered state. - /// - /// \param dev Device to be removed - - void remove_device(core_device_t *dev) - { - for (auto it = m_devices.begin(); it != m_devices.end(); it++) - if (it->second.get() == dev) - { - m_state.remove_save_items(dev); - m_devices.erase(it); - return; - } - } - - setup_t &setup() noexcept { return *m_setup; } - const setup_t &setup() const noexcept { return *m_setup; } - - nlparse_t &parser(); - const nlparse_t &parser() const; - - // FIXME: make a postload member and include code there - void rebuild_lists(); // must be called after post_load ! - - static void compile_defines(std::vector> &defs); - static pstring version(); - static pstring version_patchlevel(); - - nets_collection_type & nets() noexcept { return m_nets; } - const nets_collection_type & nets() const noexcept { return m_nets; } - - devices_collection_type & devices() noexcept { return m_devices; } - const devices_collection_type & devices() const noexcept { return m_devices; } - - family_collection_type &family_cache() { return m_family_cache; } - - template - device_arena::unique_ptr make_pool_object(Args&&... args) - { - return plib::make_unique(m_pool, std::forward(args)...); - } - // memory pool - still needed in some places - device_arena &pool() noexcept { return m_pool; } - const device_arena &pool() const noexcept { return m_pool; } - - /// \brief set extended validation mode. - /// - /// The extended validation mode is not intended for running. - /// The intention is to identify power pins which are not properly - /// connected. The downside is that this mode creates a netlist which - /// is different (and not able to run). - /// - /// Extended validation is supported by nltool validate option. - /// - /// \param val Boolean value enabling/disabling extended validation mode - void set_extended_validation(bool val) { m_extended_validation = val; } - - /// \brief State of extended validation mode. - /// - /// \returns boolean value indicating if extended validation mode is - /// turned on. - bool is_extended_validation() const { return m_extended_validation; } - - struct stats_info - { - const detail::queue_t &m_queue;// performance - const plib::pperftime_t &m_stat_mainloop; - const plib::pperfcount_t &m_perf_out_processed; - }; - - /// \brief print statistics gathered during run - /// - void print_stats(stats_info &si) const; - - /// \brief call reset on all netlist components - /// - void reset(); - - /// \brief prior to running free no longer needed resources - /// - void free_setup_resources(); - - private: - - device_arena m_pool; // must be deleted last! - - device_arena::unique_ptr m_netlist; - std::unique_ptr m_lib; - plib::state_manager_t m_state; - host_arena::unique_ptr m_callbacks; - log_type m_log; - - // FIXME: should only be available during device construcion - host_arena::unique_ptr m_setup; - - nets_collection_type m_nets; - // sole use is to manage lifetime of net objects - devices_collection_type m_devices; - // sole use is to manage lifetime of family objects - family_collection_type m_family_cache; - bool m_extended_validation; - - // dummy version - int m_dummy_version; - }; - - namespace devices - { - // ----------------------------------------------------------------------------- - // mainclock - // ----------------------------------------------------------------------------- - - NETLIB_OBJECT(mainclock) - { - NETLIB_CONSTRUCTOR(mainclock) - , m_Q(*this, "Q") - , m_freq(*this, "FREQ", nlconst::magic(7159000.0 * 5)) - { - m_inc = netlist_time::from_fp(plib::reciprocal(m_freq()*nlconst::two())); - } - - NETLIB_RESETI(); - - NETLIB_UPDATE_PARAMI() - { - m_inc = netlist_time::from_fp(plib::reciprocal(m_freq()*nlconst::two())); - } - - public: - logic_output_t m_Q; // NOLINT: needed in core - netlist_time m_inc; // NOLINT: needed in core - private: - param_fp_t m_freq; - }; - } // namespace devices - - // ----------------------------------------------------------------------------- - // netlist_t - // ----------------------------------------------------------------------------- - - class netlist_t // NOLINT(clang-analyzer-optin.performance.Padding) - { - public: - - explicit netlist_t(netlist_state_t &state, const pstring &aname); - - PCOPYASSIGNMOVE(netlist_t, delete) - - virtual ~netlist_t() noexcept = default; - - // run functions - - netlist_time_ext time() const noexcept { return m_time; } - - void process_queue(netlist_time_ext delta) noexcept; - void abort_current_queue_slice() noexcept - { - if (!NL_USE_QUEUE_STATS || !m_use_stats) - m_queue.retime(detail::queue_t::entry_t(m_time, nullptr)); - else - m_queue.retime(detail::queue_t::entry_t(m_time, nullptr)); - } - - const detail::queue_t &queue() const noexcept { return m_queue; } - - template - void qpush(Args&&...args) noexcept - { - if (!NL_USE_QUEUE_STATS || !m_use_stats) - m_queue.emplace(std::forward(args)...); // NOLINT(performance-move-const-arg) - else - m_queue.emplace(std::forward(args)...); // NOLINT(performance-move-const-arg) - } - - template - void qremove(const R &elem) noexcept - { - if (!NL_USE_QUEUE_STATS || !m_use_stats) - m_queue.remove(elem); - else - m_queue.remove(elem); - } - - // Control functions - - void stop(); - void reset(); - - // only used by nltool to create static c-code - devices::NETLIB_NAME(solver) *solver() const noexcept { return m_solver; } - - // force late type resolution - template - nl_fptype gmin(X *solv = nullptr) const noexcept - { - plib::unused_var(solv); - return static_cast(m_solver)->gmin(); - } - - netlist_state_t &nlstate() noexcept { return m_state; } - const netlist_state_t &nlstate() const noexcept { return m_state; } - - log_type & log() noexcept { return m_state.log(); } - const log_type &log() const noexcept { return m_state.log(); } - - void print_stats() const; - bool use_stats() const { return m_use_stats; } - - bool stats_enabled() const noexcept { return m_use_stats; } - void enable_stats(bool val) noexcept { m_use_stats = val; } - - private: - - template - void process_queue_stats(netlist_time_ext delta) noexcept; - - netlist_state_t & m_state; - devices::NETLIB_NAME(solver) * m_solver; - - // mostly rw - //PALIGNAS(16) - netlist_time_ext m_time; - devices::NETLIB_NAME(mainclock) * m_mainclock; - - //PALIGNAS_CACHELINE() - //PALIGNAS(16) - detail::queue_t m_queue; - bool m_use_stats; - // performance - plib::pperftime_t m_stat_mainloop; - plib::pperfcount_t m_perf_out_processed; - }; - - // ----------------------------------------------------------------------------- - // Support classes for devices - // ----------------------------------------------------------------------------- - - template - class object_array_base_t : public plib::static_vector - { - public: - template - //object_array_base_t(D &dev, const std::initializer_list &names, Args&&... args) - object_array_base_t(D &dev, std::array &&names, Args&&... args) - { - for (std::size_t i = 0; iemplace_back(dev, pstring(names[i]), std::forward(args)...); - } - - template - object_array_base_t(D &dev, const pstring &fmt) - { - for (std::size_t i = 0; iemplace_back(dev, formatted(fmt, i)); - } - - template - object_array_base_t(D &dev, std::size_t offset, const pstring &fmt, Args&&... args) - { - for (std::size_t i = 0; iemplace_back(dev, formatted(fmt, i+offset), std::forward(args)...); - } - - template - object_array_base_t(D &dev, std::size_t offset, const pstring &fmt, nldelegate delegate) - { - for (std::size_t i = 0; iemplace_back(dev, formatted(fmt, i+offset), delegate); - } - - template - object_array_base_t(D &dev, std::size_t offset, std::size_t qmask, const pstring &fmt) - { - for (std::size_t i = 0; i> i) & 1) - name += "Q"; - this->emplace(i, dev, name); - } - } - protected: - object_array_base_t() = default; - - static pstring formatted(const pstring &fmt, std::size_t n) - { - if (N != 1) - return plib::pfmt(fmt)(n); - return plib::pfmt(fmt)(""); - } - }; - - - template - class object_array_t : public object_array_base_t - { - public: - using base_type = object_array_base_t; - using base_type::base_type; - }; - - template - class object_array_t : public object_array_base_t - { - public: - using base_type = object_array_base_t; - using base_type::base_type; - - template - object_array_t(D &dev, std::size_t offset, std::size_t qmask, - const pstring &fmt, std::array &&delegates) - { - static_assert(N <= ND, "initializer_list size mismatch"); - std::size_t i = 0; - for (auto &e : delegates) - { - if (i < N) - { - pstring name(this->formatted(fmt, i+offset)); - if ((qmask >> i) & 1) - name += "Q"; - this->emplace_back(dev, name, e); - } - i++; - } - } - - //using value_type = typename plib::fast_type_for_bits::type; - using value_type = std::uint32_t; - value_type operator ()() - { - if (N == 1) return e<0>() ; - if (N == 2) return e<0>() | (e<1>() << 1); - if (N == 3) return e<0>() | (e<1>() << 1) | (e<2>() << 2); - if (N == 4) return e<0>() | (e<1>() << 1) | (e<2>() << 2) | (e<3>() << 3); - if (N == 5) return e<0>() | (e<1>() << 1) | (e<2>() << 2) | (e<3>() << 3) - | (e<4>() << 4); - if (N == 6) return e<0>() | (e<1>() << 1) | (e<2>() << 2) | (e<3>() << 3) - | (e<4>() << 4) | (e<5>() << 5); - if (N == 7) return e<0>() | (e<1>() << 1) | (e<2>() << 2) | (e<3>() << 3) - | (e<4>() << 4) | (e<5>() << 5) | (e<6>() << 6); - if (N == 8) return e<0>() | (e<1>() << 1) | (e<2>() << 2) | (e<3>() << 3) - | (e<4>() << 4) | (e<5>() << 5) | (e<6>() << 6) | (e<7>() << 7); - - value_type r(0); - for (std::size_t i = 0; i < N; i++) - r = static_cast((*this)[i]() << (N-1)) | (r >> 1); - return r; - } - - private: - template - inline constexpr value_type e() const { return (*this)[P](); } - }; - - template - class object_array_t : public object_array_base_t - { - public: - using base_type = object_array_base_t; - using base_type::base_type; - - template - inline void push(const T &v, const netlist_time &t) - { - if (N >= 1) (*this)[0].push((v >> 0) & 1, t); - if (N >= 2) (*this)[1].push((v >> 1) & 1, t); - if (N >= 3) (*this)[2].push((v >> 2) & 1, t); - if (N >= 4) (*this)[3].push((v >> 3) & 1, t); - if (N >= 5) (*this)[4].push((v >> 4) & 1, t); - if (N >= 6) (*this)[5].push((v >> 5) & 1, t); - if (N >= 7) (*this)[6].push((v >> 6) & 1, t); - if (N >= 8) (*this)[7].push((v >> 7) & 1, t); - for (std::size_t i = 8; i < N; i++) - (*this)[i].push((v >> i) & 1, t); - } - - template - void push(const T &v, const netlist_time * t) - { - if (N >= 1) (*this)[0].push((v >> 0) & 1, t[0]); - if (N >= 2) (*this)[1].push((v >> 1) & 1, t[1]); - if (N >= 3) (*this)[2].push((v >> 2) & 1, t[2]); - if (N >= 4) (*this)[3].push((v >> 3) & 1, t[3]); - if (N >= 5) (*this)[4].push((v >> 4) & 1, t[4]); - if (N >= 6) (*this)[5].push((v >> 5) & 1, t[5]); - if (N >= 7) (*this)[6].push((v >> 6) & 1, t[6]); - if (N >= 8) (*this)[7].push((v >> 7) & 1, t[7]); - for (std::size_t i = 8; i < N; i++) - (*this)[i].push((v >> i) & 1, t[i]); - } - - template - void push(const T &v, const std::array &t) - { - static_assert(NT >= N, "Not enough timing entries provided"); - - push(v, t.data()); - } - - void set_tristate(netlist_sig_t v, - netlist_time ts_off_on, netlist_time ts_on_off) noexcept - { - for (std::size_t i = 0; i < N; i++) - (*this)[i].set_tristate(v, ts_off_on, ts_on_off); - } - }; - - template - class object_array_t : public object_array_base_t - { - public: - using base_type = object_array_base_t; - using base_type::base_type; - - template - inline void push(const T &v, const netlist_time &t) - { - if (N >= 1) (*this)[0].push((v >> 0) & 1, t); - if (N >= 2) (*this)[1].push((v >> 1) & 1, t); - if (N >= 3) (*this)[2].push((v >> 2) & 1, t); - if (N >= 4) (*this)[3].push((v >> 3) & 1, t); - if (N >= 5) (*this)[4].push((v >> 4) & 1, t); - if (N >= 6) (*this)[5].push((v >> 5) & 1, t); - if (N >= 7) (*this)[6].push((v >> 6) & 1, t); - if (N >= 8) (*this)[7].push((v >> 7) & 1, t); - for (std::size_t i = 8; i < N; i++) - (*this)[i].push((v >> i) & 1, t); - } - - void set_tristate(netlist_sig_t v, - netlist_time ts_off_on, netlist_time ts_on_off) noexcept - { - for (std::size_t i = 0; i < N; i++) - (*this)[i].set_tristate(v, ts_off_on, ts_on_off); - } - }; - - // ----------------------------------------------------------------------------- - // power pins - not a device, but a helper - // ----------------------------------------------------------------------------- - - /// \brief Power pins class. - /// - /// Power Pins are passive inputs. Delegate noop will silently ignore any - /// updates. - - class nld_power_pins - { - public: - using this_type = nld_power_pins; - - explicit nld_power_pins(device_t &owner) - : m_VCC(owner, owner.logic_family()->vcc_pin(), NETLIB_DELEGATE(noop)) - , m_GND(owner, owner.logic_family()->gnd_pin(), NETLIB_DELEGATE(noop)) - { - } - - const analog_input_t &VCC() const noexcept - { - return m_VCC; - } - const analog_input_t &GND() const noexcept - { - return m_GND; - } - - private: - void noop() { } - analog_input_t m_VCC; - analog_input_t m_GND; - }; - - namespace devices - { - inline NETLIB_RESET(mainclock) - { - m_Q.net().set_next_scheduled_time(exec().time()); - } - } // namespace devices - - // ----------------------------------------------------------------------------- - // Hot section - // - // Any changes below will impact performance. - // ----------------------------------------------------------------------------- - - // ----------------------------------------------------------------------------- - // logic_input_t - // ----------------------------------------------------------------------------- - - inline void logic_input_t::inactivate() noexcept - { - if (!is_state(STATE_INP_PASSIVE)) - { - set_state(STATE_INP_PASSIVE); - net().remove_from_active_list(*this); - } - } - - inline void logic_input_t::activate() noexcept - { - if (is_state(STATE_INP_PASSIVE)) - { - net().add_to_active_list(*this); - set_state(STATE_INP_ACTIVE); - } - } - - inline void logic_input_t::activate_hl() noexcept - { - if (is_state(STATE_INP_PASSIVE)) - { - net().add_to_active_list(*this); - set_state(STATE_INP_HL); - } - } - - inline void logic_input_t::activate_lh() noexcept - { - if (is_state(STATE_INP_PASSIVE)) - { - net().add_to_active_list(*this); - set_state(STATE_INP_LH); - } - } - - inline void detail::net_t::push_to_queue(const netlist_time &delay) noexcept - { - if (has_connections()) - { - if (!!is_queued()) - exec().qremove(this); - - const auto nst(exec().time() + delay); - m_next_scheduled_time = nst; - - if (!m_list_active.empty()) - { - m_in_queue = queue_status::QUEUED; - exec().qpush(nst, this); - } - else - { - m_in_queue = queue_status::DELAYED_DUE_TO_INACTIVE; - update_inputs(); - } - } - } - - inline void detail::net_t::add_to_active_list(core_terminal_t &term) noexcept - { - if (!m_list_active.empty()) - { - term.set_copied_input(m_cur_Q); - m_list_active.push_front(&term); - } - else - { - m_list_active.push_front(&term); - railterminal().device().do_inc_active(); - if (m_in_queue == queue_status::DELAYED_DUE_TO_INACTIVE) - { - if (m_next_scheduled_time > exec().time()) - { - m_in_queue = queue_status::QUEUED; // pending - exec().qpush(m_next_scheduled_time, this); - } - else - { - m_in_queue = queue_status::DELIVERED; - m_cur_Q = m_new_Q; - } - update_inputs(); - } - else - term.set_copied_input(m_cur_Q); - } - } - - inline void detail::net_t::remove_from_active_list(core_terminal_t &term) noexcept - { - gsl_Expects(!m_list_active.empty()); - m_list_active.remove(&term); - if (m_list_active.empty()) - railterminal().device().do_dec_active(); - } - - inline const analog_net_t & analog_t::net() const noexcept - { - return plib::downcast(core_terminal_t::net()); - } - - inline analog_net_t & analog_t::net() noexcept - { - return plib::downcast(core_terminal_t::net()); - } - - inline nl_fptype terminal_t::operator ()() const noexcept { return net().Q_Analog(); } - - inline logic_net_t & logic_t::net() noexcept - { - return plib::downcast(core_terminal_t::net()); - } - - inline const logic_net_t & logic_t::net() const noexcept - { - return plib::downcast(core_terminal_t::net()); - } - - inline netlist_sig_t logic_input_t::operator()() const noexcept - { - nl_assert(terminal_state() != STATE_INP_PASSIVE); -#if NL_USE_COPY_INSTEAD_OF_REFERENCE - return m_Q; -#else - return net().Q(); -#endif - } - - inline nl_fptype analog_input_t::Q_Analog() const noexcept - { - return net().Q_Analog(); - } - - inline void analog_output_t::push(nl_fptype val) noexcept - { - if (val != m_my_net.Q_Analog()) - { - m_my_net.set_Q_Analog(val); - m_my_net.toggle_and_push_to_queue(netlist_time::quantum()); - } - } - - inline netlist_t &detail::device_object_t::exec() noexcept - { - return m_device->exec(); - } - - inline const netlist_t &detail::device_object_t::exec() const noexcept - { - return m_device->exec(); - } - - template - inline void detail::net_t::process(T mask, const S &sig) noexcept - { - m_cur_Q = sig; - - if (KEEP_STATS) - { - for (auto & p : m_list_active) - { - p.set_copied_input(sig); - auto *stats(p.device().stats()); - stats->m_stat_call_count.inc(); - if ((p.terminal_state() & mask)) - { - auto g(stats->m_stat_total_time.guard()); - p.run_delegate(); - } - } - } - else - { - for (auto &p : m_list_active) - { - p.set_copied_input(sig); - if ((p.terminal_state() & mask) != 0) - p.run_delegate(); - } - } - } - - template - inline void detail::net_t::update_devs() noexcept - { - nl_assert(this->is_rail_net()); - - m_in_queue = queue_status::DELIVERED; // mark as taken ... - if (m_new_Q ^ m_cur_Q) - { - process((m_new_Q << core_terminal_t::INP_LH_SHIFT) - | (m_cur_Q << core_terminal_t::INP_HL_SHIFT), m_new_Q); - } - } - - template - inline void netlist_t::process_queue_stats(const netlist_time_ext delta) noexcept - { - netlist_time_ext stop(m_time + delta); - - qpush(stop, nullptr); - - if (m_mainclock == nullptr) - { - m_time = m_queue.top().exec_time(); - detail::net_t *obj(m_queue.top().object()); - m_queue.pop(); - - while (obj != nullptr) - { - obj->template update_devs(); - if (KEEP_STATS) - m_perf_out_processed.inc(); - const detail::queue_t::entry_t *top = &m_queue.top(); - m_time = top->exec_time(); - obj = top->object(); - m_queue.pop(); - } - } - else - { - logic_net_t &mc_net(m_mainclock->m_Q.net()); - const netlist_time inc(m_mainclock->m_inc); - netlist_time_ext mc_time(mc_net.next_scheduled_time()); - - do - { - const detail::queue_t::entry_t *top = &m_queue.top(); - while (top->exec_time() > mc_time) - { - m_time = mc_time; - mc_net.toggle_new_Q(); - mc_net.update_devs(); - top = &m_queue.top(); - mc_time += inc; - } - - m_time = top->exec_time(); - auto *const obj(top->object()); - m_queue.pop(); - if (obj != nullptr) - obj->template update_devs(); - else - break; - if (KEEP_STATS) - m_perf_out_processed.inc(); - } while (true); - - mc_net.set_next_scheduled_time(mc_time); - } - } - - inline void netlist_t::process_queue(netlist_time_ext delta) noexcept - { - if (!m_use_stats) - process_queue_stats(delta); - else - { - auto sm_guard(m_stat_mainloop.guard()); - process_queue_stats(delta); - } - } - - - - // ----------------------------------------------------------------------------- - // inline implementations - cold - // ----------------------------------------------------------------------------- - - template - inline device_arena::unique_ptr detail::netlist_object_t::make_pool_object(Args&&... args) - { - return state().make_pool_object(std::forward(args)...); - } - - inline void param_t::update_param() noexcept - { - device().update_param(); - } - - template - param_num_t::param_num_t(core_device_t &device, const pstring &name, const T val) - : param_t(device, name) - , m_param(val) - { - bool found = false; - pstring p = this->get_initial(&device, &found); - if (found) - { - plib::pfunction func; - func.compile_infix(p, {}); - auto valx = func.evaluate(); - if (plib::is_integral::value) - if (plib::abs(valx - plib::trunc(valx)) > nlconst::magic(1e-6)) - throw nl_exception(MF_INVALID_NUMBER_CONVERSION_1_2(device.name() + "." + name, p)); - m_param = plib::narrow_cast(valx); - } - - device.state().save(*this, m_param, this->name(), "m_param"); - } - - template - param_enum_t::param_enum_t(core_device_t &device, const pstring &name, const T val) - : param_t(device, name) - , m_param(val) - { - bool found = false; - pstring p = this->get_initial(&device, &found); - if (found) - { - T temp(val); - bool ok = temp.set_from_string(p); - if (!ok) - { - device.state().log().fatal(MF_INVALID_ENUM_CONVERSION_1_2(name, p)); - throw nl_exception(MF_INVALID_ENUM_CONVERSION_1_2(name, p)); - } - m_param = temp; - } - - device.state().save(*this, m_param, this->name(), "m_param"); - } - - template - param_rom_t::param_rom_t(core_device_t &device, const pstring &name) - : param_data_t(device, name) - { - auto f = stream(); - if (f != nullptr) - { - plib::istream_read(*f, m_data.data(), 1< - void base_device_t::create_and_register_subdevice(O &owner, const pstring &name, device_arena::unique_ptr &dev, Args&&... args) - { - dev = state().make_pool_object(owner, name, std::forward(args)...); - } - - inline solver::matrix_solver_t *analog_t::solver() const noexcept - { - return (this->has_net() ? net().solver() : nullptr); - } - - extern template struct state_var; extern template struct state_var; extern template struct state_var; @@ -1652,14 +80,4 @@ } // namespace netlist -namespace plib -{ - template - struct ptype_traits> : ptype_traits - { - }; -} // namespace plib - - - #endif // NLBASE_H_ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_config.h mame-0.224+dfsg.1/src/lib/netlist/nl_config.h --- mame-0.223+dfsg.1/src/lib/netlist/nl_config.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_config.h 2020-08-26 08:57:19.000000000 +0000 @@ -111,27 +111,6 @@ #define NL_USE_BACKWARD_EULER (1) #endif -/// \brief Use the truthtable implementation of 7448 instead of the coded device -/// -/// FIXME: Using truthtable is a lot slower than the explicit device -/// in breakout. Performance drops by 20%. This can be fixed by -/// setting param USE_DEACTIVATE for the device. - -#ifndef NL_USE_TRUTHTABLE_7448 -#define NL_USE_TRUTHTABLE_7448 (0) -#endif - -/// \brief Use the truthtable implementation of 74107 instead of the coded device -/// -/// FIXME: The truthtable implementation of 74107 (JK-Flipflop) -/// is included for educational purposes to demonstrate how -/// to implement state holding devices as truthtables. -/// It will completely nuke performance for pong. - -#ifndef NL_USE_TRUTHTABLE_74107 -#define NL_USE_TRUTHTABLE_74107 (0) -#endif - /// \brief Use the __float128 type for matrix calculations. /// /// Defaults to \ref PUSE_FLOAT128 @@ -223,11 +202,11 @@ /// \brief Maximum queue size /// - using MAX_QUEUE_SIZE = std::integral_constant; // NOLINT + using MAX_QUEUE_SIZE = std::integral_constant; // NOLINT /// \brief Maximum queue size for solvers /// - using MAX_SOLVER_QUEUE_SIZE = std::integral_constant; // NOLINT + using MAX_SOLVER_QUEUE_SIZE = std::integral_constant; // NOLINT using use_float_matrix = std::integral_constant; using use_long_double_matrix = std::integral_constant; diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_errstr.h mame-0.224+dfsg.1/src/lib/netlist/nl_errstr.h --- mame-0.223+dfsg.1/src/lib/netlist/nl_errstr.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_errstr.h 2020-08-26 08:57:19.000000000 +0000 @@ -24,7 +24,7 @@ PERRMSGV(MF_NULLPTR_FAMILY, 2, "Unable to determine family for device {1} from model {2}") PERRMSGV(MF_REMOVE_TERMINAL_1_FROM_NET_2, 2, "Can not remove terminal {1} from net {2}.") PERRMSGV(MF_UNKNOWN_PARAM_TYPE, 1, "Can not determine param_type for {1}") - PERRMSGV(MF_ERROR_CONNECTING_1_TO_2, 2, "Error connecting {1} to {2}") + //PERRMSGV(MF_ERROR_CONNECTING_1_TO_2, 2, "Error connecting {1} to {2}") PERRMSGV(ME_HND_VAL_NOT_SUPPORTED, 1, "HINT_NO_DEACTIVATE value not supported: <{1}>") PERRMSGV(MW_ROM_NOT_FOUND, 1, "Rom {1} not found") @@ -43,20 +43,25 @@ PERRMSGV(MF_UNEXPECTED_NETLIST_END, 0, "Unexpected NETLIST_END") PERRMSGV(MF_UNEXPECTED_END_OF_FILE, 0, "Unexpected end of file, missing NETLIST_END") PERRMSGV(MF_UNEXPECTED_NETLIST_START, 0, "Unexpected NETLIST_START") + PERRMSGV(MF_UNEXPECTED_NETLIST_EXTERNAL, 0, "Unexpected NETLIST_EXTERNAL within a netlist") + PERRMSGV(MF_EXPECTED_NETLIST_START_1, 1, "Expected NETLIST_START but got {1}") PERRMSGV(MF_EXPECTED_IDENTIFIER_GOT_1, 1, "Expected an identifier, but got {1}") PERRMSGV(MF_EXPECTED_COMMA_OR_RP_1, 1, "Expected comma or right parenthesis but found <{1}>") PERRMSGV(MF_DIPPINS_EQUAL_NUMBER_1, 1, "DIPPINS requires equal number of pins to DIPPINS, first pin is {}") PERRMSGV(MF_PARAM_NOT_FP_1, 1, "Parameter value <{1}> not floating point") PERRMSGV(MF_TT_LINE_WITHOUT_HEAD, 0, "TT_LINE found without TT_HEAD") + PERRMSGV(MF_LOCAL_SOURCE_NOT_FOUND_1, 1, "Local source not found: <{1}>") // nl_setup.cpp PERRMSGV(MF_UNABLE_TO_PARSE_MODEL_1, 1, "Unable to parse model: {1}") - PERRMSGV(MF_MODEL_ALREADY_EXISTS_1, 1, "Model already exists: {1}") + // FIXME: Add an directive MODEL_OVERWRITE to netlist language + //PERRMSGV(MF_MODEL_ALREADY_EXISTS_1, 1, "Model already exists: {1}") + PERRMSGV(MI_MODEL_OVERWRITE_1, 2, "Model already exists, overwriting {1} with {2}") PERRMSGV(MF_DEVICE_ALREADY_EXISTS_1, 1, "Device already exists: {1}") PERRMSGV(MF_UNUSED_HINT_1, 1, "Error hint {1} is not used") PERRMSGV(MF_ADDING_HINT_1, 1, "Error adding hint {1} to hint list") - PERRMSGV(MF_ADDING_ALI1_TO_ALIAS_LIST, 1, "Error adding alias {1} to alias list") + PERRMSGV(MF_ALIAS_ALREAD_EXISTS_1, 1, "Alias already exists: {1}") PERRMSGV(MF_DIP_PINS_MUST_BE_AN_EQUAL_NUMBER_OF_PINS_1, 1,"You must pass an equal number of pins to DIPPINS {1}") PERRMSGV(MF_PARAM_COUNT_MISMATCH_2, 2, "Parameter count mismatch for {1} - only found {2}") PERRMSGV(MF_PARAM_COUNT_EXCEEDED_2, 2, "Parameter count exceed for {1} - found {2}") @@ -111,7 +116,7 @@ "but has been forced to act as a logic output. Parameter " " FORCE_TRISTATE_LOGIC for device {2} needs to be disabled!.") - PERRMSGV(MI_REMOVE_DEVICE_1_CONNECTED_ONLY_TO_RAILS_2_3, 3, "Found device {1} connected only to railterminals {2}/{3}. Will be removed") + PERRMSGV(MI_REMOVE_DEVICE_1_CONNECTED_ONLY_TO_RAILS_2_3, 3, "Found device {1} connected only to railterminals {2}/{3}. Please consider commenting those out.") PERRMSGV(MW_DATA_1_NOT_FOUND, 1, "unable to find data {1} in sources collection") diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_factory.h mame-0.224+dfsg.1/src/lib/netlist/nl_factory.h --- mame-0.223+dfsg.1/src/lib/netlist/nl_factory.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_factory.h 2020-08-26 08:57:19.000000000 +0000 @@ -129,6 +129,7 @@ const pstring &name, std::tuple& args, std::index_sequence) { return plib::make_unique(pool, anetlist, name, std::forward(std::get(args))...); + //return anetlist.make_pool_object(anetlist, name, std::forward(std::get(args))...); } dev_uptr make_device(device_arena &pool, diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_interface.h mame-0.224+dfsg.1/src/lib/netlist/nl_interface.h --- mame-0.223+dfsg.1/src/lib/netlist/nl_interface.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_interface.h 2020-08-26 08:57:19.000000000 +0000 @@ -119,34 +119,32 @@ /// \brief Set parameters to buffers contents at regular intervals /// - /// This devices will set up to N parameters from buffers passed to the device. + /// This device will update a parameter from a buffers passed to the device. /// It is the responsibility of the controlling application to ensure that - /// buffers filled at regular intervals. + /// the buffer is filled at regular intervals. /// /// \tparam T The buffer type /// \tparam N Maximum number of supported buffers /// - template + template NETLIB_OBJECT(buffered_param_setter) { public: - static const int MAX_INPUT_CHANNELS = N; - NETLIB_CONSTRUCTOR(buffered_param_setter) , m_sample_time(netlist_time::zero()) , m_feedback(*this, "FB", NETLIB_DELEGATE(feedback)) // clock part , m_Q(*this, "Q") , m_pos(0) , m_samples(0) - , m_num_channels(0) - , m_param_names(*this, 0, "CHAN{}", "") - , m_param_mults(*this, 0, "MULT{}", 1.0) - , m_param_offsets(*this, 0, "OFFSET{}", 0.0) + , m_param_name(*this, "CHAN", "") + , m_param_mult(*this, "MULT", 1.0) + , m_param_offset(*this, "OFFSET", 0.0) + , m_param(nullptr) + , m_id(*this, "ID", 0) { connect(m_feedback, m_Q); - for (auto & elem : m_buffers) - elem = nullptr; + m_buffer = nullptr; } protected: @@ -158,13 +156,13 @@ { if (m_pos < m_samples) { - for (std::size_t i=0; iset(v * m_param_mults[i]() + m_param_offsets[i]()); - } + // check if called outside of stream_update + if (m_buffer != nullptr) + { + const nl_fptype v = (*m_buffer)[m_pos]; + //m_params[i]->set(v * m_param_mults[i]() + m_param_offsets[i]()); + m_param_setter(v * m_param_mult() + m_param_offset()); + } } else { @@ -187,34 +185,35 @@ { m_pos = 0; m_sample_time = sample_time; - for (std::size_t i = 0; i < MAX_INPUT_CHANNELS; i++) + if (m_param_name() != pstring("")) { - if (m_param_names[i]() != pstring("")) - { - if (i != m_num_channels) - state().log().fatal("sound input numbering has to be sequential!"); - m_num_channels++; - m_params[i] = dynamic_cast( - &state().setup().find_param(m_param_names[i]()).param() - ); - } + param_t *p = &state().setup().find_param(m_param_name()).param(); + m_param = p; + if (dynamic_cast(p) != nullptr) + m_param_setter = setter_t(&NETLIB_NAME(buffered_param_setter)::setter, this); + else if (dynamic_cast(p) != nullptr) + m_param_setter = setter_t(&NETLIB_NAME(buffered_param_setter)::setter, this); } } - void buffer_reset(netlist_time sample_time, std::size_t num_samples, T **inputs) + void buffer_reset(netlist_time sample_time, std::size_t num_samples, T *inputs) { m_samples = num_samples; m_sample_time = sample_time; m_pos = 0; - for (std::size_t i=0; i < m_num_channels; i++) - { - m_buffers[i] = inputs[i]; - } + m_buffer = inputs; } - int num_channels() { return m_num_channels; } - + std::size_t id() const { return m_id; } private: + using setter_t = plib::pmfp; + + template + void setter(nl_fptype v) + { + static_cast(m_param)->set(v); + } + netlist_time m_sample_time; logic_input_t m_feedback; @@ -222,13 +221,14 @@ std::size_t m_pos; std::size_t m_samples; - std::size_t m_num_channels; - object_array_t m_param_names; - object_array_t m_param_mults; - object_array_t m_param_offsets; - std::array m_params; - std::array m_buffers; + param_str_t m_param_name; + param_fp_t m_param_mult; + param_fp_t m_param_offset; + param_t * m_param; + setter_t m_param_setter; + T * m_buffer; + param_num_t m_id; }; } // namespace interface diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_parser.cpp mame-0.224+dfsg.1/src/lib/netlist/nl_parser.cpp --- mame-0.223+dfsg.1/src/lib/netlist/nl_parser.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_parser.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,6 +3,7 @@ #include "nl_parser.h" #include "nl_base.h" +#include "nl_setup.h" #include "nl_errstr.h" #include "nl_factory.h" @@ -18,47 +19,74 @@ throw nl_exception(plib::pfmt("{1}")(msg)); } -bool parser_t::parse(const pstring &nlname) +parser_t::parser_t(nlparse_t &setup) + : m_setup(setup) + , m_cur_local(nullptr) { - this->identifier_chars("abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_.-$@") + m_tokenizer.identifier_chars("abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_.-$@") .number_chars(".0123456789", "0123456789eE-.") //FIXME: processing of numbers .whitespace(pstring("") + ' ' + static_cast(9) + static_cast(10) + static_cast(13)) .comment("/*", "*/", "//"); - m_tok_paren_left = register_token("("); - m_tok_paren_right = register_token(")"); - m_tok_comma = register_token(","); - - m_tok_ALIAS = register_token("ALIAS"); - m_tok_DIPPINS = register_token("DIPPINS"); - m_tok_NET_C = register_token("NET_C"); - m_tok_FRONTIER = register_token("OPTIMIZE_FRONTIER"); - m_tok_PARAM = register_token("PARAM"); - m_tok_DEFPARAM = register_token("DEFPARAM"); - m_tok_HINT = register_token("HINT"); - m_tok_NET_MODEL = register_token("NET_MODEL"); - m_tok_INCLUDE = register_token("INCLUDE"); - m_tok_LOCAL_SOURCE = register_token("LOCAL_SOURCE"); - m_tok_LOCAL_LIB_ENTRY = register_token("LOCAL_LIB_ENTRY"); - m_tok_SUBMODEL = register_token("SUBMODEL"); - m_tok_NETLIST_START = register_token("NETLIST_START"); - m_tok_NETLIST_END = register_token("NETLIST_END"); - m_tok_TRUTHTABLE_START = register_token("TRUTHTABLE_START"); - m_tok_TRUTHTABLE_END = register_token("TRUTHTABLE_END"); - m_tok_TT_HEAD = register_token("TT_HEAD"); - m_tok_TT_LINE = register_token("TT_LINE"); - m_tok_TT_FAMILY = register_token("TT_FAMILY"); - - register_token("RES_R"); - register_token("RES_K"); - register_token("RES_M"); - register_token("CAP_U"); - register_token("CAP_N"); - register_token("CAP_P"); + m_tok_paren_left = m_tokenizer.register_token("("); + m_tok_paren_right = m_tokenizer.register_token(")"); + m_tok_comma = m_tokenizer.register_token(","); + + m_tok_static = m_tokenizer.register_token("static"); + m_tok_ALIAS = m_tokenizer.register_token("ALIAS"); + m_tok_DIPPINS = m_tokenizer.register_token("DIPPINS"); + m_tok_NET_C = m_tokenizer.register_token("NET_C"); + m_tok_FRONTIER = m_tokenizer.register_token("OPTIMIZE_FRONTIER"); + m_tok_PARAM = m_tokenizer.register_token("PARAM"); + m_tok_DEFPARAM = m_tokenizer.register_token("DEFPARAM"); + m_tok_HINT = m_tokenizer.register_token("HINT"); + m_tok_NET_MODEL = m_tokenizer.register_token("NET_MODEL"); + m_tok_NET_REGISTER_DEV = m_tokenizer.register_token("NET_REGISTER_DEV"); + m_tok_INCLUDE = m_tokenizer.register_token("INCLUDE"); + m_tok_LOCAL_SOURCE = m_tokenizer.register_token("LOCAL_SOURCE"); + m_tok_LOCAL_LIB_ENTRY = m_tokenizer.register_token("LOCAL_LIB_ENTRY"); + m_tok_SUBMODEL = m_tokenizer.register_token("SUBMODEL"); + m_tok_NETLIST_START = m_tokenizer.register_token("NETLIST_START"); + m_tok_NETLIST_END = m_tokenizer.register_token("NETLIST_END"); + m_tok_NETLIST_EXTERNAL = m_tokenizer.register_token("NETLIST_EXTERNAL"); + m_tok_EXTERNAL_SOURCE = m_tokenizer.register_token("EXTERNAL_SOURCE"); + m_tok_TRUTHTABLE_START = m_tokenizer.register_token("TRUTHTABLE_START"); + m_tok_TRUTHTABLE_END = m_tokenizer.register_token("TRUTHTABLE_END"); + m_tok_TT_HEAD = m_tokenizer.register_token("TT_HEAD"); + m_tok_TT_LINE = m_tokenizer.register_token("TT_LINE"); + m_tok_TT_FAMILY = m_tokenizer.register_token("TT_FAMILY"); + + m_tokenizer.register_token("RES_R"); + m_tokenizer.register_token("RES_K"); + m_tokenizer.register_token("RES_M"); + m_tokenizer.register_token("CAP_U"); + m_tokenizer.register_token("CAP_N"); + m_tokenizer.register_token("CAP_P"); + +} + +bool parser_t::parse(plib::psource_t::stream_ptr &&strm, const pstring &nlname) +{ + token_store tokstor; + parse_tokens(std::move(strm), tokstor); + return parse(tokstor, nlname); +} + +void parser_t::parse_tokens(plib::psource_t::stream_ptr &&strm, token_store &tokstor) +{ + plib::putf8_reader u8reader(strm.release_stream()); + m_tokenizer.append_to_store(&u8reader, tokstor); +} + +bool parser_t::parse(const token_store &tokstor, const pstring &nlname) +{ + set_token_source(&tokstor); bool in_nl = false; while (true) { + // FIXME: line numbers in cached local netlists are wrong + // need to process raw tokens here. token_t token = get_token(); if (token.is_type(token_type::ENDOFFILE)) { @@ -75,6 +103,11 @@ in_nl = false; } require_token(m_tok_paren_right); + + m_cur_local->push_back(token); + m_cur_local->push_back(token_t(m_tok_paren_left)); + m_cur_local->push_back(token_t(m_tok_paren_right)); + } else if (token.is(m_tok_NETLIST_START)) { @@ -89,8 +122,37 @@ return true; } + // create a new cached local store + m_local.emplace(name.str(), token_store()); + m_cur_local = &m_local[name.str()]; + m_cur_local->push_back(token_t(token_type::LINEMARKER)); + auto sl = sourceloc(); + auto num = plib::pfmt("{1}")(sl.line()); + m_cur_local->push_back(token_t(token_type::NUMBER, num)); + m_cur_local->push_back(token_t(token_type::STRING, sl.file_name())); + m_cur_local->push_back(token_t(m_tok_NETLIST_START)); + m_cur_local->push_back(token_t(m_tok_paren_left)); + m_cur_local->push_back(name); + m_cur_local->push_back(token_t(m_tok_paren_right)); in_nl = true; } + else if (token.is(m_tok_NETLIST_EXTERNAL)) + { + if (in_nl) + error (MF_UNEXPECTED_NETLIST_EXTERNAL()); + require_token(m_tok_paren_left); + token_t name = get_token(); + require_token(m_tok_paren_right); + } + else if (!in_nl) + { + if (!token.is(m_tok_static)) + error(MF_EXPECTED_NETLIST_START_1(token.str())); + } + else + { + m_cur_local->push_back(token); + } } } @@ -127,15 +189,23 @@ net_include(); else if (token.is(m_tok_LOCAL_SOURCE)) net_local_source(); + else if (token.is(m_tok_EXTERNAL_SOURCE)) + net_external_source(); else if (token.is(m_tok_TRUTHTABLE_START)) net_truthtable_start(nlname); else if (token.is(m_tok_LOCAL_LIB_ENTRY)) { require_token(m_tok_paren_left); + pstring name(get_identifier()); + register_local_as_source(name); // FIXME: Need to pass in parameter definition FIXME: get line number right - m_setup.register_lib_entry(get_identifier(), "", plib::source_location("parser: " + nlname, 1)); + m_setup.register_lib_entry(name, "", plib::source_location("parser: " + nlname, 1)); require_token(m_tok_paren_right); } + else if (token.is(m_tok_NET_REGISTER_DEV)) + { + net_register_dev(); + } else if (token.is(m_tok_NETLIST_END)) { netdev_netlist_end(); @@ -199,7 +269,7 @@ require_token(m_tok_paren_left); require_token(m_tok_paren_right); // FIXME: proper location - m_setup.truthtable_create(desc, "+" + def_param, plib::source_location(nlname, 1)); + m_setup.truthtable_create(desc, def_param, plib::source_location(nlname, 1)); return; } } @@ -265,6 +335,27 @@ pstring name(get_identifier()); require_token(m_tok_paren_right); + register_local_as_source(name); +} + +void parser_t::register_local_as_source(const pstring &name) +{ + auto p = m_local.find(name); + if (p != m_local.end()) + { + m_setup.register_source(name, p->second); + } + else + error(MF_LOCAL_SOURCE_NOT_FOUND_1(name)); +} + +void parser_t::net_external_source() +{ + // This directive is only for hardcoded netlists. Ignore it here. + require_token(m_tok_paren_left); + pstring name(get_identifier()); + require_token(m_tok_paren_right); + } void parser_t::net_alias() @@ -382,6 +473,17 @@ require_token(m_tok_paren_right); } +void parser_t::net_register_dev() +{ + require_token(m_tok_paren_left); + pstring type(get_identifier()); + require_token(m_tok_comma); + pstring name(get_identifier()); + require_token(m_tok_paren_right); + + m_setup.register_dev(type, name); +} + void parser_t::device(const pstring &dev_type) { std::vector params; diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_parser.h mame-0.224+dfsg.1/src/lib/netlist/nl_parser.h --- mame-0.223+dfsg.1/src/lib/netlist/nl_parser.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_parser.h 2020-08-26 08:57:19.000000000 +0000 @@ -8,22 +8,26 @@ #ifndef NL_PARSER_H_ #define NL_PARSER_H_ -#include "nl_setup.h" +#include "nltypes.h" // for setup_t #include "plib/ptokenizer.h" +#include + namespace netlist { - class parser_t : public plib::ptokenizer + class parser_t : public plib::ptoken_reader { public: - template - parser_t(T &&strm, nlparse_t &setup) - : plib::ptokenizer(std::forward(strm)) - , m_setup(setup) - { - } - - bool parse(const pstring &nlname = ""); + using token_t = plib::ptokenizer::token_t; + using token_type = plib::ptokenizer::token_type; + using token_id_t = plib::ptokenizer::token_id_t; + using token_store = plib::ptokenizer::token_store; + + parser_t(nlparse_t &setup); + + bool parse(plib::psource_t::stream_ptr &&strm, const pstring &nlname); + bool parse(const token_store &tokstor, const pstring &nlname); + void parse_tokens(plib::psource_t::stream_ptr &&strm, token_store &tokstor); protected: void parse_netlist(const pstring &nlname); @@ -40,14 +44,20 @@ void net_submodel(); void net_include(); void net_local_source(); + void net_external_source(); + void net_register_dev(); void net_truthtable_start(const pstring &nlname); void verror(const pstring &msg) override; private: + void register_local_as_source(const pstring &name); + pstring stringify_expression(token_t &tok); + token_id_t m_tok_paren_left; token_id_t m_tok_paren_right; token_id_t m_tok_comma; + token_id_t m_tok_static; token_id_t m_tok_ALIAS; token_id_t m_tok_NET_C; token_id_t m_tok_DIPPINS; @@ -56,10 +66,13 @@ token_id_t m_tok_DEFPARAM; token_id_t m_tok_HINT; token_id_t m_tok_NET_MODEL; + token_id_t m_tok_NET_REGISTER_DEV; token_id_t m_tok_NETLIST_START; token_id_t m_tok_NETLIST_END; + token_id_t m_tok_NETLIST_EXTERNAL; token_id_t m_tok_SUBMODEL; token_id_t m_tok_INCLUDE; + token_id_t m_tok_EXTERNAL_SOURCE; token_id_t m_tok_LOCAL_SOURCE; token_id_t m_tok_LOCAL_LIB_ENTRY; token_id_t m_tok_TRUTHTABLE_START; @@ -68,7 +81,11 @@ token_id_t m_tok_TT_LINE; token_id_t m_tok_TT_FAMILY; + plib::ptokenizer m_tokenizer; nlparse_t &m_setup; + + std::unordered_map m_local; + token_store *m_cur_local; }; } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_setup.cpp mame-0.224+dfsg.1/src/lib/netlist/nl_setup.cpp --- mame-0.223+dfsg.1/src/lib/netlist/nl_setup.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_setup.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -5,7 +5,6 @@ #include "analog/nld_twoterm.h" #include "core/setup.h" #include "devices/nlid_proxy.h" -#include "devices/nlid_system.h" #include "devices/nlid_truthtable.h" #include "nl_base.h" #include "nl_factory.h" @@ -13,9 +12,12 @@ #include "nl_setup.h" #include "plib/penum.h" #include "plib/putil.h" +#include "plib/pstonum.h" #include "solver/nld_solver.h" +#include + namespace netlist { // ---------------------------------------------------------------------------------------- @@ -85,8 +87,8 @@ pstring key = build_fqn(name); if (device_exists(key)) { - log().fatal(MF_DEVICE_ALREADY_EXISTS_1(name)); - throw nl_exception(MF_DEVICE_ALREADY_EXISTS_1(name)); + log().fatal(MF_DEVICE_ALREADY_EXISTS_1(key)); + throw nl_exception(MF_DEVICE_ALREADY_EXISTS_1(key)); } m_abstract.m_device_factory.insert(m_abstract.m_device_factory.end(), {key, f}); @@ -110,7 +112,7 @@ //break; } pstring output_name = *ptok; - log().debug("Link: {1} {2}\n", tp, output_name); + log().debug("Link: {1} {2}", tp, output_name); register_link(name + "." + tp.substr(1), output_name); ++ptok; @@ -118,7 +120,7 @@ else if (plib::startsWith(tp, "@")) { pstring term = tp.substr(1); - log().debug("Link: {1} {2}\n", tp, term); + log().debug("Link: {1} {2}", tp, term); register_link(name + "." + term, term); } @@ -330,8 +332,8 @@ { if (!m_abstract.m_alias.insert({alias, out}).second) { - log().fatal(MF_ADDING_ALI1_TO_ALIAS_LIST(alias)); - throw nl_exception(MF_ADDING_ALI1_TO_ALIAS_LIST(alias)); + log().fatal(MF_ALIAS_ALREAD_EXISTS_1(alias)); + throw nl_exception(MF_ALIAS_ALREAD_EXISTS_1(alias)); } } @@ -350,12 +352,47 @@ return false; } + bool nlparse_t::parse_tokens(const parser_t::token_store &tokens, const pstring &name) + { + parser_t parser(*this); + return parser.parse(tokens, name); + } + bool nlparse_t::parse_stream(plib::psource_t::stream_ptr &&istrm, const pstring &name) { - auto y = std::make_unique(m_includes, &m_defines); - y->process(std::move(istrm)); - return parser_t(std::move(y), *this).parse(name); - //return parser_t(std::move(plib::ppreprocessor(&m_defines).process(std::move(istrm))), *this).parse(name); +#if 0 + auto key = istrm.filename(); + + if (m_source_cache.find(key) != m_source_cache.end()) + { + return parser_t(*this).parse(m_source_cache[key], name); + } + else + { + //printf("searching %s\n", name.c_str()); + plib::ppreprocessor y(m_includes, &m_defines); + y.process(std::move(istrm), istrm.filename()); + + auto abc = std::make_unique(); + plib::copystream(*abc, y); + + parser_t::token_store &st = m_source_cache[key]; + parser_t parser(*this); + parser.parse_tokens(plib::psource_t::stream_ptr(std::move(abc), key), st); + return parser.parse(st, name); + } +#else + plib::ppreprocessor y(m_includes, &m_defines); + y.process(std::move(istrm), istrm.filename()); + + auto abc = std::make_unique(); + plib::copystream(*abc, y); + + parser_t::token_store st; + parser_t parser(*this); + parser.parse_tokens(plib::psource_t::stream_ptr(std::move(abc), istrm.filename()), st); + return parser.parse(st, name); +#endif } void nlparse_t::add_define(const pstring &defstr) @@ -411,7 +448,12 @@ pstring model = plib::ucase(plib::trim(plib::left(model_in, pos))); pstring def = plib::trim(model_in.substr(pos + 1)); if (!m_abstract.m_models.insert({model, def}).second) - throw nl_exception(MF_MODEL_ALREADY_EXISTS_1(model_in)); + { + // FIXME: Add an directive MODEL_OVERWRITE to netlist language + //throw nl_exception(MF_MODEL_ALREADY_EXISTS_1(model_in)); + log().info(MI_MODEL_OVERWRITE_1(model, model_in)); + m_abstract.m_models[model] = def; + } } @@ -422,10 +464,10 @@ plib::psource_t::stream_ptr nlparse_t::get_data_stream(const pstring &name) { auto strm = m_sources.get_stream(name); - if (strm) + if (!strm.empty()) return strm; log().warning(MW_DATA_1_NOT_FOUND(name)); - return plib::psource_t::stream_ptr(nullptr); + return plib::psource_t::stream_ptr(); } // ---------------------------------------------------------------------------------------- @@ -733,9 +775,8 @@ return iter_proxy->second; log().debug("connect_terminal_input: connecting proxy\n"); - pstring x = plib::pfmt("proxy_ad_{1}_{2}")(inp.name())(m_proxy_cnt); - auto new_proxy = incast.logic_family()->create_a_d_proxy(m_nlstate, x, &incast); - //auto new_proxy = plib::owned_ptr::Create(netlist(), x, &incast); + auto new_proxy = incast.logic_family()->create_a_d_proxy(m_nlstate, + plib::pfmt("proxy_ad_{1}_{2}")(inp.name())(m_proxy_cnt), &incast); auto *ret(new_proxy.get()); @@ -748,20 +789,25 @@ if (inp.has_net()) { - for (auto & p : inp.net().core_terms()) + for (detail::core_terminal_t * p : inp.net().core_terms()) { - p->clear_net(); // de-link from all nets ... - if (!connect(ret->proxy_term(), *p)) + // inp may already belongs to the logic net. Thus skip it here. + // It will be removed by the clear further down. + if (p != &inp) { - log().fatal(MF_CONNECTING_1_TO_2( - ret->proxy_term().name(), (*p).name())); - throw nl_exception(MF_CONNECTING_1_TO_2( - ret->proxy_term().name(), (*p).name())); - + p->clear_net(); // de-link from all nets ... + if (!connect(ret->proxy_term(), *p)) + { + log().fatal(MF_CONNECTING_1_TO_2( + ret->proxy_term().name(), (*p).name())); + throw nl_exception(MF_CONNECTING_1_TO_2( + ret->proxy_term().name(), (*p).name())); + } } } inp.net().core_terms().clear(); // clear the list } + inp.clear_net(); add_terminal(ret->out().net(), inp); m_nlstate.register_device(new_proxy->name(), std::move(new_proxy)); return ret; @@ -1012,7 +1058,9 @@ ret = connect_input_input(t1, t2); } else + { ret = false; + } return ret; } @@ -1580,6 +1628,7 @@ // resolve inputs resolve_inputs(); +#if 0 log().verbose("looking for two terms connected to rail nets ..."); for (auto & t : m_nlstate.get_device_list()) { @@ -1587,11 +1636,15 @@ { log().info(MI_REMOVE_DEVICE_1_CONNECTED_ONLY_TO_RAILS_2_3( t->name(), t->N().net().name(), t->P().net().name())); + // The following would remove internal devices in e.g. MOSFETs as well. +#if 0 remove_terminal(t->setup_N().net(), t->setup_N()); remove_terminal(t->setup_P().net(), t->setup_P()); m_nlstate.remove_device(t); +#endif } } +#endif log().verbose("looking for unused hints ..."); for (auto &h : m_abstract.m_hints) @@ -1635,12 +1688,15 @@ } for (auto &n : m_nlstate.nets()) + { for (auto & term : n->core_terms()) - if (!term->delegate().is_set()) + if (!term->delegate()) { log().fatal(MF_DELEGATE_NOT_SET_1(term->name())); throw nl_exception(MF_DELEGATE_NOT_SET_1(term->name())); } + n->rebuild_list(); + } } // ---------------------------------------------------------------------------------------- @@ -1650,32 +1706,50 @@ bool source_netlist_t::parse(nlparse_t &setup, const pstring &name) { auto strm(stream(name)); - return (strm) ? setup.parse_stream(std::move(strm), name) : false; + return (!strm.empty()) ? setup.parse_stream(std::move(strm), name) : false; } source_string_t::stream_ptr source_string_t::stream(const pstring &name) { plib::unused_var(name); - source_string_t::stream_ptr ret(std::make_unique(m_str)); - ret->imbue(std::locale::classic()); + source_string_t::stream_ptr ret(std::make_unique(m_str), name); + ret.stream().imbue(std::locale::classic()); return ret; } source_mem_t::stream_ptr source_mem_t::stream(const pstring &name) { plib::unused_var(name); - source_mem_t::stream_ptr ret(std::make_unique(m_str, std::ios_base::binary)); - ret->imbue(std::locale::classic()); + source_mem_t::stream_ptr ret(std::make_unique(m_str, std::ios_base::binary), name); + ret.stream().imbue(std::locale::classic()); return ret; } source_file_t::stream_ptr source_file_t::stream(const pstring &name) { plib::unused_var(name); - auto ret(std::make_unique(plib::filesystem::u8path(m_filename))); - return (ret->is_open()) ? std::move(ret) : stream_ptr(nullptr); + auto f = std::make_unique(plib::filesystem::u8path(m_filename)); + if (f->is_open()) + { + return stream_ptr(std::move(f), m_filename); + } + else + return stream_ptr(); +} + +source_file_t::stream_ptr source_pattern_t::stream(const pstring &name) +{ + pstring filename = plib::pfmt(m_pattern)(name); + auto f = std::make_unique(plib::filesystem::u8path(filename)); + if (f->is_open()) + { + return stream_ptr(std::move(f), filename); + } + else + return stream_ptr(); } + bool source_proc_t::parse(nlparse_t &setup, const pstring &name) { if (name == m_setup_func_name) @@ -1690,8 +1764,24 @@ source_proc_t::stream_ptr source_proc_t::stream(const pstring &name) { plib::unused_var(name); - stream_ptr p(nullptr); - return p; + return stream_ptr(); +} + +bool source_token_t::parse(nlparse_t &setup, const pstring &name) +{ + if (name == m_name) + { + auto ret = setup.parse_tokens(m_store, name); + return ret; + } + + return false; +} + +source_proc_t::stream_ptr source_token_t::stream(const pstring &name) +{ + plib::unused_var(name); + return stream_ptr(); } } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nl_setup.h mame-0.224+dfsg.1/src/lib/netlist/nl_setup.h --- mame-0.223+dfsg.1/src/lib/netlist/nl_setup.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nl_setup.h 2020-08-26 08:57:19.000000000 +0000 @@ -17,6 +17,7 @@ #include "nl_config.h" #include "nltypes.h" +#include "nl_parser.h" // FIXME: avoid including factory //#include "nl_factory.h" @@ -82,6 +83,9 @@ #define LOCAL_SOURCE(name) \ setup.register_source_proc(# name, &NETLIST_NAME(name)); +#define EXTERNAL_SOURCE(name) \ + setup.register_source_proc(# name, &NETLIST_NAME(name)); + // FIXME: Need to pass in parameter definition #define LOCAL_LIB_ENTRY_1(name) \ LOCAL_SOURCE(name) \ @@ -229,6 +233,7 @@ // FIXME: used by source_t - need a different approach at some time bool parse_stream(plib::psource_t::stream_ptr &&istrm, const pstring &name); + bool parse_tokens(const parser_t::token_store &tokens, const pstring &name); template void add_include(Args&&... args) @@ -270,6 +275,7 @@ plib::psource_collection_t<> m_sources; detail::abstract_t & m_abstract; + std::unordered_map m_source_cache; log_type &m_log; unsigned m_frontier_cnt; }; diff -Nru mame-0.223+dfsg.1/src/lib/netlist/nltypes.h mame-0.224+dfsg.1/src/lib/netlist/nltypes.h --- mame-0.223+dfsg.1/src/lib/netlist/nltypes.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/nltypes.h 2020-08-26 08:57:19.000000000 +0000 @@ -14,11 +14,11 @@ #include "nl_config.h" +#include "plib/pmempool.h" +#include "plib/ppmf.h" #include "plib/pstring.h" #include "plib/ptime.h" #include "plib/ptypes.h" -#include "plib/ppmf.h" -#include "plib/pmempool.h" #include @@ -45,6 +45,7 @@ // ----------------------------------------------------------------------------- class logic_output_t; + class tristate_output_t; class logic_input_t; class analog_net_t; class logic_net_t; @@ -294,6 +295,32 @@ using desc_const_t = std::integral_constant; }; + //============================================================ + // Exceptions + //============================================================ + + /// \brief Generic netlist exception. + /// The exception is used in all events which are considered fatal. + + class nl_exception : public plib::pexception + { + public: + /// \brief Constructor. + /// Allows a descriptive text to be passed to the exception + + explicit nl_exception(const pstring &text //!< text to be passed + ) + : plib::pexception(text) { } + + /// \brief Constructor. + /// Allows to use \ref plib::pfmt logic to be used in exception + + template + explicit nl_exception(const pstring &fmt //!< format to be used + , Args&&... args //!< arguments to be passed + ) + : plib::pexception(plib::pfmt(fmt)(std::forward(args)...)) { } + }; } // namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/palloc.h mame-0.224+dfsg.1/src/lib/netlist/plib/palloc.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/palloc.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/palloc.h 2020-08-26 08:57:19.000000000 +0000 @@ -10,9 +10,9 @@ #include "pconfig.h" #include "pgsl.h" +#include "pgsl.h" #include "pmath.h" // FIXME: only uses lcm ... move to ptypes. #include "ptypes.h" -#include "pgsl.h" #include #include // for std::max_align_t (usually long long) @@ -419,7 +419,7 @@ #if (PUSE_ALIGNED_ALLOCATION) #if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) return _aligned_malloc(size, alignment); - #elif defined(__APPLE__) + #elif defined(__APPLE__) || defined(__ANDROID__) void* p; if (::posix_memalign(&p, alignment, size) != 0) { p = nullptr; @@ -623,8 +623,8 @@ struct align_traits : public align_traits_base::value> {}; - template - class paged_arena : public arena_base, true, true> + template + class paged_arena : public arena_base, true, true> { public: paged_arena() = default; @@ -636,13 +636,13 @@ static void *allocate(size_t align, size_t size) { plib::unused_var(align); - //size = ((size + PAGESIZE - 1) / PAGESIZE) * PAGESIZE; - return arena().allocate(PAGESIZE, size); + //size = ((size + PG_SIZE - 1) / PG_SIZE) * PG_SIZE; + return arena().allocate(PG_SIZE, size); } static void deallocate(void *ptr, size_t size) noexcept { - //size = ((size + PAGESIZE - 1) / PAGESIZE) * PAGESIZE; + //size = ((size + PG_SIZE - 1) / PG_SIZE) * PG_SIZE; arena().deallocate(ptr, size); } diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/pchrono.h mame-0.224+dfsg.1/src/lib/netlist/plib/pchrono.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/pchrono.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/pchrono.h 2020-08-26 08:57:19.000000000 +0000 @@ -219,8 +219,8 @@ guard_t guard() noexcept { return guard_t(*this); } // pause must be followed by cont(inue) - void pause() noexcept { m_time += T::stop(); } - void cont() noexcept { m_time -= T::start(); } + void stop() noexcept { m_time += T::stop(); } + void start() noexcept { m_time -= T::start(); } private: diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/pconfig.h mame-0.224+dfsg.1/src/lib/netlist/plib/pconfig.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/pconfig.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/pconfig.h 2020-08-26 08:57:19.000000000 +0000 @@ -41,8 +41,12 @@ /// Set this to one if you want to use aligned storage optimizations. /// #ifndef PUSE_ALIGNED_OPTIMIZATIONS +#if defined(__EMSCRIPTEN__) +#define PUSE_ALIGNED_OPTIMIZATIONS (0) +#else #define PUSE_ALIGNED_OPTIMIZATIONS (1) #endif +#endif /// \brief Use aligned allocations. /// diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/pfunction.cpp mame-0.224+dfsg.1/src/lib/netlist/plib/pfunction.cpp --- mame-0.223+dfsg.1/src/lib/netlist/plib/pfunction.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/pfunction.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -11,10 +11,10 @@ #include #include +#include #include #include #include -#include namespace plib { diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/pmulti_threading.h mame-0.224+dfsg.1/src/lib/netlist/plib/pmulti_threading.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/pmulti_threading.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/pmulti_threading.h 2020-08-26 08:57:19.000000000 +0000 @@ -12,10 +12,10 @@ #include #include +#include #include #include #include -#include namespace plib { diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ppmf.h mame-0.224+dfsg.1/src/lib/netlist/plib/ppmf.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/ppmf.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ppmf.h 2020-08-26 08:57:19.000000000 +0000 @@ -368,8 +368,6 @@ bind>(object, &mftp); } - bool is_set() const noexcept { return m_resolved != nullptr; } - generic_class *object() const noexcept { return m_obj; } bool has_object() const noexcept { return m_obj != nullptr; } @@ -384,6 +382,7 @@ return this->call(std::forward(args)...); } + operator bool() const noexcept { return m_resolved != nullptr; } private: template void bind(O * object, MF *fraw) diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ppreprocessor.cpp mame-0.224+dfsg.1/src/lib/netlist/plib/ppreprocessor.cpp --- mame-0.223+dfsg.1/src/lib/netlist/plib/ppreprocessor.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ppreprocessor.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -17,6 +17,8 @@ : std::istream(new readbuffer(this)) , m_sources(sources) , m_if_flag(0) + , m_if_seen(0) + , m_elif(0) , m_if_level(0) , m_pos(0) , m_state(PROCESS) @@ -197,7 +199,14 @@ CHECKTOK2(||, 15) else { - val = plib::pstonum(tok); + try + { + val = plib::pstonum(tok); + } + catch (pexception &e) + { + sexpr.error(e.text()); + } has_val = true; sexpr.next(); } @@ -460,45 +469,82 @@ if (lti[0] == "#if") { m_if_level++; - lt = replace_macros(lt); - simple_iter t(this, tokenize(lt.substr(3), m_expr_sep, true, true)); - auto val = narrow_cast(prepro_expr(t, 255)); - t.skip_ws(); - if (!t.eod()) - error("found unprocessed content at end of line"); - if (val == 0) - m_if_flag |= (1 << m_if_level); + m_if_seen |= (1 << m_if_level); + if (m_if_flag == 0) + { + lt = replace_macros(lt); + simple_iter t(this, tokenize(lt.substr(3), m_expr_sep, true, true)); + auto val = narrow_cast(prepro_expr(t, 255)); + t.skip_ws(); + if (!t.eod()) + error("found unprocessed content at end of line"); + if (val == 0) + m_if_flag |= (1 << m_if_level); + else + m_elif |= (1 << m_if_level); + } } else if (lti[0] == "#ifdef") { m_if_level++; + m_if_seen |= (1 << m_if_level); if (get_define(lti[1]) == nullptr) m_if_flag |= (1 << m_if_level); + else + m_elif |= (1 << m_if_level); } else if (lti[0] == "#ifndef") { m_if_level++; + m_if_seen |= (1 << m_if_level); if (get_define(lti[1]) != nullptr) m_if_flag |= (1 << m_if_level); + else + m_elif |= (1 << m_if_level); } - else if (lti[0] == "#else") + else if (lti[0] == "#else") // basically #elif (1) { - m_if_flag ^= (1 << m_if_level); + if (!(m_if_seen & (1 << m_if_level))) + error("#else without #if"); + + if (m_elif & (1 << m_if_level)) // elif disabled + m_if_flag |= (1 << m_if_level); + else + m_if_flag &= ~(1 << m_if_level); + m_elif |= (1 << m_if_level); } else if (lti[0] == "#elif") { - m_if_flag ^= (1 << m_if_level); - lt = replace_macros(lt); - simple_iter t(this, tokenize(lt.substr(5), m_expr_sep, true, true)); - auto val = narrow_cast(prepro_expr(t, 255)); - t.skip_ws(); - if (!t.eod()) - error("found unprocessed content at end of line"); - if (val == 0) + if (!(m_if_seen & (1 << m_if_level))) + error("#elif without #if"); + + //if ((m_if_flag & (1 << m_if_level)) == 0) + // m_if_flag ^= (1 << m_if_level); + if (m_elif & (1 << m_if_level)) // elif disabled m_if_flag |= (1 << m_if_level); + else + m_if_flag &= ~(1 << m_if_level); + if (m_if_flag == 0) + { + //m_if_flag ^= (1 << m_if_level); + lt = replace_macros(lt); + simple_iter t(this, tokenize(lt.substr(5), m_expr_sep, true, true)); + auto val = narrow_cast(prepro_expr(t, 255)); + t.skip_ws(); + if (!t.eod()) + error("found unprocessed content at end of line"); + if (val == 0) + m_if_flag |= (1 << m_if_level); + else + m_elif |= (1 << m_if_level); + } } else if (lti[0] == "#endif") { + if (!(m_if_seen & (1 << m_if_level))) + error("#else without #if"); + m_if_seen &= ~(1 << m_if_level); + m_elif &= ~(1 << m_if_level); m_if_flag &= ~(1 << m_if_level); m_if_level--; } @@ -518,16 +564,16 @@ // first try local context auto l(plib::util::buildpath({m_stack.back().m_local_path, arg})); auto lstrm(m_sources.get_stream(l)); - if (lstrm) + if (!lstrm.empty()) { - m_stack.emplace_back(input_context(std::move(lstrm), plib::util::path(l), l)); + m_stack.emplace_back(input_context(lstrm.release_stream(), plib::util::path(l), l)); } else { auto strm(m_sources.get_stream(arg)); - if (strm) + if (!strm.empty()) { - m_stack.emplace_back(input_context(std::move(strm), plib::util::path(arg), arg)); + m_stack.emplace_back(input_context(strm.release_stream(), plib::util::path(arg), arg)); } else error("include not found:" + arg); diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ppreprocessor.h mame-0.224+dfsg.1/src/lib/netlist/plib/ppreprocessor.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/ppreprocessor.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ppreprocessor.h 2020-08-26 08:57:19.000000000 +0000 @@ -68,10 +68,17 @@ delete rdbuf(); } + /// \brief process stream + /// + /// \param filename a filename or identifier identifying the stream. + /// + /// FIXME: this is sub-optimal. Refactor input_context into pinput_context + /// and pass this to ppreprocessor. + /// template - ppreprocessor & process(T &&istrm) + ppreprocessor & process(T &&istrm, const pstring &filename) { - m_stack.emplace_back(input_context(std::forward(istrm),"","")); + m_stack.emplace_back(input_context(istrm.release_stream(),plib::util::path(filename), filename)); process_stack(); return *this; } @@ -139,7 +146,9 @@ psource_collection_t<> &m_sources; string_list m_expr_sep; - std::uint_least64_t m_if_flag; // 31 if levels + std::uint_least64_t m_if_flag; // 63 if levels + std::uint_least64_t m_if_seen; // 63 if levels + std::uint_least64_t m_elif; // 63 if levels - for #elif int m_if_level; struct input_context diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/pstream.h mame-0.224+dfsg.1/src/lib/netlist/plib/pstream.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/pstream.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/pstream.h 2020-08-26 08:57:19.000000000 +0000 @@ -68,10 +68,19 @@ putf8_reader(std::unique_ptr &&rhs) noexcept : m_strm(std::move(rhs)) { + // no bad surprises + m_strm->imbue(std::locale::classic()); } bool eof() const { return m_strm->eof(); } + /// \brief Read a line of UTF8 characters from the stream. + /// + /// The line will not contain a trailing linefeed + /// + /// \param line pstring reference to the result + /// \returns Returns false if at end of file + /// bool readline(pstring &line) { putf8string::code_t c = 0; @@ -90,6 +99,35 @@ if (!this->readcode(c)) break; } + line = m_linebuf; + return true; + } + + /// \brief Read a line of UTF8 characters from the stream including trailing linefeed. + /// + /// The line will contain the trailing linefeed + /// + /// \param line pstring reference to the result + /// \returns Returns false if at end of file + /// + bool readline_lf(pstring &line) + { + putf8string::code_t c = 0; + m_linebuf = putf8string(""); + if (!this->readcode(c)) + { + line = ""; + return false; + } + while (true) + { + if (c != 13) // ignore CR + m_linebuf += putf8string(1, c); + if (c == 10) + break; + if (!this->readcode(c)) + break; + } line = m_linebuf; return true; } diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ptests.h mame-0.224+dfsg.1/src/lib/netlist/plib/ptests.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/ptests.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ptests.h 2020-08-26 08:57:19.000000000 +0000 @@ -10,11 +10,11 @@ /// google tests compatible (hopefully) test macros. This is work in progress! /// +#include +#include +#include #include #include -#include -#include -#include #if defined(__clang__) #pragma clang diagnostic ignored "-Wglobal-constructors" @@ -115,7 +115,7 @@ { using reg_entry_base::reg_entry_base; - virtual Test *create() const override { return new T(); } + Test *create() const override { return new T(); } }; template diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ptimed_queue.h mame-0.224+dfsg.1/src/lib/netlist/plib/ptimed_queue.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/ptimed_queue.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ptimed_queue.h 2020-08-26 08:57:19.000000000 +0000 @@ -8,10 +8,10 @@ /// \file ptimed_queue.h /// +#include "palloc.h" // FIXME: for aligned_vector #include "pchrono.h" #include "pmulti_threading.h" #include "ptypes.h" -#include "palloc.h" // FIXME: for aligned_vector #include #include diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ptokenizer.cpp mame-0.224+dfsg.1/src/lib/netlist/plib/ptokenizer.cpp --- mame-0.223+dfsg.1/src/lib/netlist/plib/ptokenizer.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ptokenizer.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,9 +1,9 @@ // license:GPL-2.0+ // copyright-holders:Couriersud -#include "ptokenizer.h" #include "palloc.h" #include "pstonum.h" +#include "ptokenizer.h" #include "putil.h" namespace plib { @@ -21,11 +21,6 @@ // A simple tokenizer // ---------------------------------------------------------------------------------------- - pstring ptokenizer::currentline_str() const - { - return m_cur_line; - } - void ptokenizer::skipeol() { pstring::value_type c = getc(); @@ -52,12 +47,15 @@ } if (m_px == m_cur_line.end()) { - ++m_source_location.back(); - if (m_strm.readline(m_cur_line)) + //++m_source_location.back(); + if (m_strm->readline_lf(m_cur_line)) + { m_px = m_cur_line.begin(); + if (*m_px != '#') + m_token_queue->push_back(token_t(token_type::SOURCELINE, m_cur_line)); + } else return 0; - return '\n'; } pstring::value_type c = *(m_px++); return c; @@ -68,23 +66,19 @@ m_unget = c; } - void ptokenizer::require_token(const token_id_t &token_num) + void ptoken_reader::require_token(const token_id_t &token_num) { require_token(get_token(), token_num); } - void ptokenizer::require_token(const token_t &tok, const token_id_t &token_num) + void ptoken_reader::require_token(const token_t &tok, const token_id_t &token_num) { if (!tok.is(token_num)) { - pstring val(""); - for (auto &i : m_tokens) - if (i.second.id() == token_num.id()) - val = i.first; - error(MF_EXPECTED_TOKEN_1_GOT_2(val, tok.str())); + error(MF_EXPECTED_TOKEN_1_GOT_2(token_num.name(), tok.str())); } } - pstring ptokenizer::get_string() + pstring ptoken_reader::get_string() { token_t tok = get_token(); if (!tok.is_type(token_type::STRING)) @@ -95,7 +89,7 @@ } - pstring ptokenizer::get_identifier() + pstring ptoken_reader::get_identifier() { token_t tok = get_token(); if (!tok.is_type(token_type::IDENTIFIER)) @@ -105,7 +99,7 @@ return tok.str(); } - pstring ptokenizer::get_identifier_or_number() + pstring ptoken_reader::get_identifier_or_number() { token_t tok = get_token(); if (!(tok.is_type(token_type::IDENTIFIER) || tok.is_type(token_type::NUMBER))) @@ -116,7 +110,7 @@ } // FIXME: combine into template - double ptokenizer::get_number_double() + double ptoken_reader::get_number_double() { token_t tok = get_token(); if (!tok.is_type(token_type::NUMBER)) @@ -130,7 +124,7 @@ return ret; } - long ptokenizer::get_number_long() + long ptoken_reader::get_number_long() { token_t tok = get_token(); if (!tok.is_type(token_type::NUMBER)) @@ -144,56 +138,51 @@ return ret; } - ptokenizer::token_t ptokenizer::get_token() + ptoken_reader::token_t ptoken_reader::get_token() { - token_t ret = get_token_internal(); + token_t ret = get_token_queue(); while (true) { if (ret.is_type(token_type::token_type::ENDOFFILE)) return ret; - if (m_support_line_markers && ret.is_type(token_type::LINEMARKER)) + //printf("%s\n", ret.str().c_str()); + if (ret.is_type(token_type::LINEMARKER)) { bool benter(false); bool bexit(false); pstring file; unsigned lineno(0); - ret = get_token_internal(); + ret = get_token_queue(); if (!ret.is_type(token_type::NUMBER)) error(MF_EXPECTED_LINENUM_GOT_1(ret.str())); lineno = pstonum(ret.str()); - ret = get_token_internal(); + ret = get_token_queue(); if (!ret.is_type(token_type::STRING)) error(MF_EXPECTED_FILENAME_GOT_1(ret.str())); file = ret.str(); - ret = get_token_internal(); + ret = get_token_queue(); while (ret.is_type(token_type::NUMBER)) { if (ret.str() == "1") benter = true; if (ret.str() == "2") - bexit = false; + bexit = true; // FIXME: process flags; actually only 1 (file enter) and 2 (after file exit) - ret = get_token_internal(); + ret = get_token_queue(); } if (bexit) // pop the last location m_source_location.pop_back(); if (!benter) // new location! m_source_location.pop_back(); - m_source_location.emplace_back(plib::source_location(file, lineno)); + m_source_location.emplace_back(plib::source_location(file, lineno - 1)); } - else if (ret.is(m_tok_comment_start)) + else if (ret.is_type(token_type::SOURCELINE)) { - do { - ret = get_token_internal(); - } while (ret.is_not(m_tok_comment_end)); - ret = get_token_internal(); - } - else if (ret.is(m_tok_line_comment)) - { - skipeol(); - ret = get_token_internal(); + m_line = ret.str(); + ++m_source_location.back(); + ret = get_token_queue(); } else { @@ -202,7 +191,7 @@ } } - ptokenizer::token_t ptokenizer::get_token_internal() + ptoken_reader::token_t ptokenizer::get_token_internal() { // skip ws pstring::value_type c = getc(); @@ -287,7 +276,35 @@ } } - void ptokenizer::error(const perrmsg &errs) + ptoken_reader::token_t ptokenizer::get_token_comment() + { + token_t ret = get_token_internal(); + while (true) + { + if (ret.is_type(token_type::token_type::ENDOFFILE)) + return ret; + + if (ret.is(m_tok_comment_start)) + { + do { + ret = get_token_internal(); + } while (ret.is_not(m_tok_comment_end)); + ret = get_token_internal(); + } + else if (ret.is(m_tok_line_comment)) + { + skipeol(); + ret = get_token_internal(); + } + else + { + return ret; + } + } + } + + + void ptoken_reader::error(const perrmsg &errs) { pstring s(""); pstring trail (" from "); @@ -302,7 +319,7 @@ s = plib::pfmt("{1}{2}:{3}:0\n{4}")(trail, m_source_location.back().file_name(), m_source_location.back().line(), s); m_source_location.pop_back(); } - verror("\n" + s + e + " " + currentline_str() + "\n"); + verror("\n" + s + e + " " + m_line + "\n"); } } // namespace plib diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ptokenizer.h mame-0.224+dfsg.1/src/lib/netlist/plib/ptokenizer.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/ptokenizer.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ptokenizer.h 2020-08-26 08:57:19.000000000 +0000 @@ -22,17 +22,13 @@ class ptokenizer { public: - template - explicit ptokenizer(T &&strm) // NOLINT(misc-forwarding-reference-overload, bugprone-forwarding-reference-overload) - : m_strm(std::forward(strm)) - , m_cur_line("") - , m_px(m_cur_line.begin()) - , m_unget(0) + explicit ptokenizer() // NOLINT(misc-forwarding-reference-overload, bugprone-forwarding-reference-overload) + : m_strm(nullptr) , m_string('"') , m_support_line_markers(true) // FIXME + , m_token_queue(nullptr) { - // add a first entry to the stack - m_source_location.emplace_back(plib::source_location("Unknown", 0)); + clear(); } PCOPYASSIGNMOVE(ptokenizer, delete) @@ -46,6 +42,7 @@ STRING, COMMENT, LINEMARKER, + SOURCELINE, UNKNOWN, ENDOFFILE ) @@ -57,28 +54,37 @@ static constexpr std::size_t npos = static_cast(-1); token_id_t() : m_id(npos) {} - explicit token_id_t(const std::size_t id) : m_id(id) {} + explicit token_id_t(std::size_t id, const pstring &name) + : m_id(id) + , m_name(name) + {} std::size_t id() const { return m_id; } + pstring name() const { return m_name; } private: std::size_t m_id; + pstring m_name; }; struct token_t { explicit token_t(token_type type) - : m_type(type), m_token("") + : m_type(type), m_id(token_id_t::npos), m_token("") { } token_t(token_type type, const pstring &str) - : m_type(type), m_token(str) + : m_type(type), m_id(token_id_t::npos), m_token(str) + { + } + token_t(const token_id_t &id) + : m_type(token_type::TOKEN), m_id(id.id()), m_token(id.name()) { } token_t(const token_id_t &id, const pstring &str) - : m_type(token_type::TOKEN), m_id(id), m_token(str) + : m_type(token_type::TOKEN), m_id(id.id()), m_token(str) { } - bool is(const token_id_t &tok_id) const noexcept { return m_id.id() == tok_id.id(); } + bool is(const token_id_t &tok_id) const noexcept { return m_id == tok_id.id(); } bool is_not(const token_id_t &tok_id) const noexcept { return !is(tok_id); } bool is_type(const token_type type) const noexcept { return m_type == type; } @@ -89,28 +95,17 @@ private: token_type m_type; - token_id_t m_id; + std::size_t m_id; pstring m_token; }; - pstring currentline_str() const; + using token_store = std::vector; // tokenizer stuff follows ... - token_t get_token(); - pstring get_string(); - pstring get_identifier(); - pstring get_identifier_or_number(); - - double get_number_double(); - long get_number_long(); - - void require_token(const token_id_t &token_num); - void require_token(const token_t &tok, const token_id_t &token_num); - token_id_t register_token(const pstring &token) { - token_id_t ret(m_tokens.size()); + token_id_t ret(m_tokens.size(), token); m_tokens.emplace(token, ret); return ret; } @@ -127,22 +122,42 @@ return *this; } + void append_to_store(putf8_reader *reader, token_store &tokstor) + { + clear(); + m_strm = reader; + // Process tokens into queue + token_t ret(token_type::UNKNOWN); + m_token_queue = &tokstor; + do { + ret = get_token_comment(); + tokstor.push_back(ret); + } while (!ret.is_type(token_type::token_type::ENDOFFILE)); + m_token_queue = nullptr; + } + + private: + + void clear() + { + m_cur_line = ""; + m_px = m_cur_line.begin(); + m_unget = 0; + } + token_t get_token_internal(); - void error(const perrmsg &errs); - putf8_reader &stream() { return m_strm; } - protected: - virtual void verror(const pstring &msg) = 0; + // get internal token with comment processing + token_t get_token_comment(); - private: void skipeol(); pstring::value_type getc(); void ungetc(pstring::value_type c); - bool eof() const { return m_strm.eof(); } + bool eof() const { return m_strm->eof(); } - putf8_reader m_strm; + putf8_reader *m_strm; pstring m_cur_line; pstring::const_iterator m_px; @@ -161,10 +176,72 @@ token_id_t m_tok_comment_end; token_id_t m_tok_line_comment; + protected: + bool m_support_line_markers; + token_store *m_token_queue; + }; + + class ptoken_reader + { + public: + + using token_t = ptokenizer::token_t; + using token_type = ptokenizer::token_type; + using token_id_t = ptokenizer::token_id_t; + using token_store = ptokenizer::token_store; + + explicit ptoken_reader() + : m_idx(0) + , m_token_store(nullptr) + { + // add a first entry to the stack + m_source_location.emplace_back(plib::source_location("Unknown", 0)); + } + + PCOPYASSIGNMOVE(ptoken_reader, delete) + + virtual ~ptoken_reader() = default; + + void set_token_source(const token_store *tokstor) + { + m_token_store = tokstor; + } + + pstring currentline_str() const; + + // tokenizer stuff follows ... + + token_t get_token(); + pstring get_string(); + pstring get_identifier(); + pstring get_identifier_or_number(); + + double get_number_double(); + long get_number_long(); + + void require_token(const token_id_t &token_num); + void require_token(const token_t &tok, const token_id_t &token_num); + + void error(const perrmsg &errs); + + plib::source_location sourceloc() { return m_source_location.back(); } + protected: + virtual void verror(const pstring &msg) = 0; + + private: + token_t get_token_queue() + { + if (m_idx < m_token_store->size()) + return (*m_token_store)[m_idx++]; + return token_t(token_type::ENDOFFILE); + } + // source locations, vector used as stack because we need to loop through stack - bool m_support_line_markers; std::vector m_source_location; + pstring m_line; + std::size_t m_idx; + const token_store * m_token_store; }; } // namespace plib diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/ptypes.h mame-0.224+dfsg.1/src/lib/netlist/plib/ptypes.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/ptypes.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/ptypes.h 2020-08-26 08:57:19.000000000 +0000 @@ -35,6 +35,10 @@ name(name &&) /*noexcept*/ = def; \ name &operator=(name &&) /*noexcept*/ = def; +#if defined(EMSCRIPTEN) +#undef EMSCRIPTEN +#endif + namespace plib { //============================================================ diff -Nru mame-0.223+dfsg.1/src/lib/netlist/plib/putil.h mame-0.224+dfsg.1/src/lib/netlist/plib/putil.h --- mame-0.223+dfsg.1/src/lib/netlist/plib/putil.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/plib/putil.h 2020-08-26 08:57:19.000000000 +0000 @@ -154,7 +154,38 @@ { public: - using stream_ptr = std::unique_ptr; + struct stream_ext + { + explicit stream_ext() = default; + + stream_ext(std::unique_ptr &&strm, const pstring &filename) + : m_strm(std::move(strm)) + , m_filename(filename) + { + } + stream_ext(const stream_ext &) = delete; + stream_ext &operator=(const stream_ext &) = delete; + stream_ext(stream_ext &&rhs) /*noexcept*/ + { + m_strm = std::move(rhs.m_strm); + m_filename = rhs.m_filename; + } + stream_ext &operator=(stream_ext &&) /*noexcept*/ = delete; + + std::istream &stream() noexcept { return *m_strm; } + pstring filename() { return m_filename; } + + bool empty() { return m_strm == nullptr; } + + // FIXME: workaround input context should accept stream_ptr + + std::unique_ptr release_stream() { return std::move(m_strm); } + private: + std::unique_ptr m_strm; + pstring m_filename; + }; + + using stream_ptr = stream_ext; //FIXME: rename to stream_type psource_t() noexcept = default; @@ -184,9 +215,9 @@ typename psource_t::stream_ptr stream(const pstring &name) override { if (name == m_name) - return std::make_unique(m_str); + return stream_ptr(std::make_unique(m_str), name); - return psource_t::stream_ptr(nullptr); + return psource_t::stream_ptr(); } private: pstring m_name; @@ -223,11 +254,11 @@ if (source) { auto strm = source->stream(name); - if (strm) + if (!strm.empty()) return strm; } } - return typename S::stream_ptr(nullptr); + return typename S::stream_ptr(); } template diff -Nru mame-0.223+dfsg.1/src/lib/netlist/prg/nltool.cpp mame-0.224+dfsg.1/src/lib/netlist/prg/nltool.cpp --- mame-0.223+dfsg.1/src/lib/netlist/prg/nltool.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/prg/nltool.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -216,11 +216,11 @@ stream_ptr stream(const pstring &file) override { pstring name = m_folder + "/" + file; - stream_ptr strm(std::make_unique(plib::filesystem::u8path(name))); - if (strm->fail()) - return stream_ptr(nullptr); + stream_ptr strm(std::make_unique(plib::filesystem::u8path(name)), plib::filesystem::u8path(name)); + if (strm.stream().fail()) + return stream_ptr(); - strm->imbue(std::locale::classic()); + strm.stream().imbue(std::locale::classic()); return strm; } @@ -459,32 +459,28 @@ if (!plib::util::exists(opt_files()[0])) throw netlist::nl_exception("nltool: file doesn't exists: {}", opt_files()[0]); - netlist_tool_t nt(*this, "netlist", opt_boostlib()); - - { - auto t_guard(t.guard()); - //plib::perftime_t t; + t.start(); - nt.exec().enable_stats(opt_stats()); - - if (!opt_verb()) - nt.log().verbose.set_enabled(false); - if (opt_quiet()) - nt.log().info.set_enabled(false); - - nt.read_netlist(opt_files()[0], opt_name(), - opt_logs(), - m_defines, opt_rfolders(), opt_includes()); + netlist_tool_t nt(*this, "netlist", opt_boostlib()); - // Inputs must be read before reset -> will clear setup and parser - inps = read_input(nt.setup(), opt_inp()); - nt.free_setup_resources(); - nt.exec().reset(); + nt.exec().enable_stats(opt_stats()); - ttr = netlist::netlist_time_ext::from_fp(opt_ttr()); - } + if (!opt_verb()) + nt.log().verbose.set_enabled(false); + if (opt_quiet()) + nt.log().info.set_enabled(false); + nt.read_netlist(opt_files()[0], opt_name(), + opt_logs(), + m_defines, opt_rfolders(), opt_includes()); + + // Inputs must be read before reset -> will clear setup and parser + inps = read_input(nt.setup(), opt_inp()); + nt.free_setup_resources(); + nt.exec().reset(); + ttr = netlist::netlist_time_ext::from_fp(opt_ttr()); + t.stop(); pout("startup time ==> {1:5.3f}\n", t.as_seconds() ); // FIXME: error handling @@ -1034,15 +1030,19 @@ poutprefix("///", ""); poutprefix("///", " @snippet devsyn.dox.h {} csynopsis", d.id); poutprefix("///", ""); -#if 1 + poutprefix("///", " @section {}_2 Parameters", d.id); poutprefix("///", ""); - poutprefix("///", " "); - poutprefix("///", " "); - for (auto &e : d.params) - poutprefix("///", " ", e.first, e.second); - poutprefix("///", "
NameDescription
{1}{2}
"); -#endif + if (!d.params.empty()) + { + poutprefix("///", " "); + poutprefix("///", " "); + for (auto &e : d.params) + poutprefix("///", " ", e.first, e.second); + poutprefix("///", "
NameDescription
{1}{2}
"); + } + else + poutprefix("///", " This device has no parameters."); poutprefix("///", ""); poutprefix("///", " @section {}_3 Connection Diagram", d.id); poutprefix("///", ""); @@ -1055,13 +1055,25 @@ auto & pins = d.pinalias; //const int w = 8; poutprefix("///", " {1:10} +--------+", " "); - for (std::size_t i=0; i"); } poutprefix("///", ""); diff -Nru mame-0.223+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.cpp mame-0.224+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.cpp --- mame-0.223+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2,9 +2,9 @@ // copyright-holders:Couriersud #include "nld_solver.h" -#include "nld_matrix_solver.h" #include "core/setup.h" #include "nl_setup.h" +#include "nld_matrix_solver.h" #include "plib/putil.h" namespace netlist diff -Nru mame-0.223+dfsg.1/src/lib/netlist/solver/nld_matrix_solver_ext.h mame-0.224+dfsg.1/src/lib/netlist/solver/nld_matrix_solver_ext.h --- mame-0.223+dfsg.1/src/lib/netlist/solver/nld_matrix_solver_ext.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/solver/nld_matrix_solver_ext.h 2020-08-26 08:57:19.000000000 +0000 @@ -171,7 +171,7 @@ netlist_time compute_next_timestep(fptype cur_ts, fptype min_ts, fptype max_ts) override { - fptype new_solver_timestep(max_ts); + fptype new_solver_timestep_sq(max_ts * max_ts); for (std::size_t k = 0; k < size(); k++) { @@ -185,21 +185,21 @@ const fptype hn = cur_ts; fptype DD2 = (DD_n / hn - m_DD_n_m_1[k] / m_h_n_m_1[k]) / (hn + m_h_n_m_1[k]); - fptype new_net_timestep(0); m_h_n_m_1[k] = hn; m_DD_n_m_1[k] = DD_n; if (plib::abs(DD2) > fp_constants::TIMESTEP_MINDIV()) // avoid div-by-zero - new_net_timestep = plib::sqrt(m_params.m_dynamic_lte / plib::abs(nlconst::half()*DD2)); - else - new_net_timestep = max_ts; - - new_solver_timestep = std::min(new_net_timestep, new_solver_timestep); + { + // save the sqrt for the end + const fptype new_net_timestep_sq = m_params.m_dynamic_lte / plib::abs(nlconst::half()*DD2); + new_solver_timestep_sq = std::min(new_net_timestep_sq, new_solver_timestep_sq); + } } - new_solver_timestep = std::max(new_solver_timestep, min_ts); + + new_solver_timestep_sq = std::max(plib::sqrt(new_solver_timestep_sq), min_ts); // FIXME: Factor 2 below is important. Without, we get timing issues. This must be a bug elsewhere. - return std::max(netlist_time::from_fp(new_solver_timestep), netlist_time::quantum() * 2); + return std::max(netlist_time::from_fp(new_solver_timestep_sq), netlist_time::quantum() * 2); } template diff -Nru mame-0.223+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.h mame-0.224+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.h --- mame-0.223+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/solver/nld_matrix_solver.h 2020-08-26 08:57:19.000000000 +0000 @@ -80,7 +80,7 @@ constexpr nl_fptype m_gmin() { return nlconst::magic(1e-9); } constexpr bool m_pivot() { return false; } constexpr nl_fptype m_nr_recalc_delay(){ return netlist_time::quantum().as_fp(); } - constexpr std::size_t m_parallel() { return 0; } + constexpr int m_parallel() { return 0; } constexpr nl_fptype m_min_ts_ts() { return nlconst::magic(1e-9); } // automatic time step diff -Nru mame-0.223+dfsg.1/src/lib/netlist/solver/nld_solver.cpp mame-0.224+dfsg.1/src/lib/netlist/solver/nld_solver.cpp --- mame-0.223+dfsg.1/src/lib/netlist/solver/nld_solver.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/solver/nld_solver.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -81,14 +81,14 @@ } else { - stats()->m_stat_total_time.pause(); + stats()->m_stat_total_time.stop(); for (std::size_t i = 0; i < p; i++) { tmp[i]->stats()->m_stat_call_count.inc(); auto g(tmp[i]->stats()->m_stat_total_time.guard()); nt[i] = tmp[i]->solve(now, "no-parallel"); } - stats()->m_stat_total_time.cont(); + stats()->m_stat_total_time.start(); } for (std::size_t i = 0; i < p; i++) diff -Nru mame-0.223+dfsg.1/src/lib/netlist/tests/test_pfunction.cpp mame-0.224+dfsg.1/src/lib/netlist/tests/test_pfunction.cpp --- mame-0.223+dfsg.1/src/lib/netlist/tests/test_pfunction.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/tests/test_pfunction.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -9,8 +9,8 @@ #include "plib/ptests.h" -#include "plib/pfunction.h" #include "plib/pexception.h" +#include "plib/pfunction.h" #define PFUNCEXPECT(formula, val) \ PEXPECT_EQ(val, plib::pfunction(formula)()) diff -Nru mame-0.223+dfsg.1/src/lib/netlist/tools/nl_convert.cpp mame-0.224+dfsg.1/src/lib/netlist/tools/nl_convert.cpp --- mame-0.223+dfsg.1/src/lib/netlist/tools/nl_convert.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/tools/nl_convert.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -731,8 +731,8 @@ // Eagle converter // ------------------------------------------------- -nl_convert_eagle_t::tokenizer::tokenizer(nl_convert_eagle_t &convert, plib::putf8_reader &&strm) - : plib::ptokenizer(std::move(strm)) +nl_convert_eagle_t::tokenizer::tokenizer(nl_convert_eagle_t &convert) + : plib::ptokenizer() , m_convert(convert) { this->identifier_chars("abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_.-") @@ -759,8 +759,13 @@ void nl_convert_eagle_t::convert(const pstring &contents) { - tokenizer tok(*this, plib::putf8_reader(std::make_unique(contents))); - tok.stream().stream().imbue(std::locale::classic()); + tokenizer tok(*this); + + tokenizer::token_store tokstor; + plib::putf8_reader u8reader(std::make_unique(contents)); + + tok.append_to_store(&u8reader, tokstor); + tok.set_token_source(&tokstor); out("NETLIST_START(dummy)\n"); add_term("GND", "GND"); @@ -869,8 +874,8 @@ // RINF converter // ------------------------------------------------- -nl_convert_rinf_t::tokenizer::tokenizer(nl_convert_rinf_t &convert, plib::putf8_reader &&strm) - : plib::ptokenizer(std::move(strm)) +nl_convert_rinf_t::tokenizer::tokenizer(nl_convert_rinf_t &convert) + : plib::ptokenizer() , m_convert(convert) { this->identifier_chars(".abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_-") @@ -906,8 +911,14 @@ void nl_convert_rinf_t::convert(const pstring &contents) { - tokenizer tok(*this, plib::putf8_reader(std::make_unique(contents))); - tok.stream().stream().imbue(std::locale::classic()); + tokenizer tok(*this); + + tokenizer::token_store tokstor; + plib::putf8_reader u8reader(std::make_unique(contents)); + + tok.append_to_store(&u8reader, tokstor); + tok.set_token_source(&tokstor); + auto lm = read_lib_map(s_lib_map); out("NETLIST_START(dummy)\n"); @@ -1009,7 +1020,7 @@ if (token.is(tok.m_tok_TER)) { token = tok.get_token(); - while (token.is_type(plib::ptokenizer::token_type::IDENTIFIER)) + while (token.is_type(plib::ptoken_reader::token_type::IDENTIFIER)) { pin = tok.get_identifier_or_number(); add_term(net, token.str() + "." + pin); diff -Nru mame-0.223+dfsg.1/src/lib/netlist/tools/nl_convert.h mame-0.224+dfsg.1/src/lib/netlist/tools/nl_convert.h --- mame-0.223+dfsg.1/src/lib/netlist/tools/nl_convert.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/lib/netlist/tools/nl_convert.h 2020-08-26 08:57:19.000000000 +0000 @@ -10,11 +10,12 @@ #include "plib/palloc.h" #include "plib/pstring.h" -#include "plib/ptokenizer.h" #include "plib/ptypes.h" #include +#include "../plib/ptokenizer.h" + // ------------------------------------------------- // convert - convert a spice netlist // ------------------------------------------------- @@ -212,10 +213,15 @@ nl_convert_eagle_t() = default; - class tokenizer : public plib::ptokenizer + class tokenizer : public plib::ptokenizer, public plib::ptoken_reader { public: - tokenizer(nl_convert_eagle_t &convert, plib::putf8_reader &&strm); + using token_t = ptokenizer::token_t; + using token_type = ptokenizer::token_type; + using token_id_t = ptokenizer::token_id_t; + using token_store = ptokenizer::token_store; + + tokenizer(nl_convert_eagle_t &convert); token_id_t m_tok_ADD; // NOLINT token_id_t m_tok_VALUE; // NOLINT @@ -244,10 +250,14 @@ nl_convert_rinf_t() = default; - class tokenizer : public plib::ptokenizer + class tokenizer : public plib::ptokenizer, public plib::ptoken_reader { public: - tokenizer(nl_convert_rinf_t &convert, plib::putf8_reader &&strm); + using token_t = ptokenizer::token_t; + using token_type = ptokenizer::token_type; + using token_id_t = ptokenizer::token_id_t; + using token_store = ptokenizer::token_store; + tokenizer(nl_convert_rinf_t &convert); token_id_t m_tok_HEA; // NOLINT token_id_t m_tok_APP; // NOLINT diff -Nru mame-0.223+dfsg.1/src/mame/arcade.flt mame-0.224+dfsg.1/src/mame/arcade.flt --- mame-0.223+dfsg.1/src/mame/arcade.flt 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/arcade.flt 2020-08-26 08:57:19.000000000 +0000 @@ -1362,7 +1362,6 @@ undrfire.cpp unianapc.cpp unico.cpp -unkfr.cpp unkhorse.cpp unkpoker.cpp upscope.cpp diff -Nru mame-0.223+dfsg.1/src/mame/audio/cage.cpp mame-0.224+dfsg.1/src/mame/audio/cage.cpp --- mame-0.223+dfsg.1/src/mame/audio/cage.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/cage.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -163,6 +163,7 @@ save_item(NAME(m_timer_enabled)); save_item(NAME(m_from_main)); save_item(NAME(m_control)); + save_item(NAME(m_tms32031_io_regs)); } diff -Nru mame-0.223+dfsg.1/src/mame/audio/mw8080bw.cpp mame-0.224+dfsg.1/src/mame/audio/mw8080bw.cpp --- mame-0.223+dfsg.1/src/mame/audio/mw8080bw.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/mw8080bw.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -574,6 +574,7 @@ DEFINE_DEVICE_TYPE(INVADERS_AUDIO, invaders_audio_device, "invaders_audio", "Taito Space Invaders Audio") DEFINE_DEVICE_TYPE(INVAD2CT_AUDIO, invad2ct_audio_device, "invad2ct_audio", "Midway Space Invaders II Audio") DEFINE_DEVICE_TYPE(ZZZAP_AUDIO, zzzap_audio_device, "zzzap_audio", "Midway 280-ZZZAP Audio") +DEFINE_DEVICE_TYPE(LAGUNAR_AUDIO, lagunar_audio_device, "lagunar_audio", "Midway Laguna Racer Audio") /************************************* @@ -3653,8 +3654,9 @@ PORT_ADJUSTER( 50, "Pot: Master Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "pot_master_vol") INPUT_PORTS_END -zzzap_audio_device::zzzap_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) : - device_t(mconfig, ZZZAP_AUDIO, tag, owner, clock), +zzzap_common_audio_device::zzzap_common_audio_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock, void (*netlist)(netlist::nlparse_t &)) : + device_t(mconfig, type, tag, owner, clock), + m_netlist(netlist), m_pedal_bit0(*this, "sound_nl:pedal_bit0"), m_pedal_bit1(*this, "sound_nl:pedal_bit1"), m_pedal_bit2(*this, "sound_nl:pedal_bit2"), @@ -3669,7 +3671,7 @@ } -void zzzap_audio_device::p1_w(u8 data) +void zzzap_common_audio_device::p1_w(u8 data) { // **** Output pins from 74174 latch at F5 **** @@ -3694,7 +3696,7 @@ } -void zzzap_audio_device::p2_w(u8 data) +void zzzap_common_audio_device::p2_w(u8 data) { // **** Output pins from 74174 latch at F4 **** @@ -3724,47 +3726,73 @@ } -void zzzap_audio_device::device_add_mconfig(machine_config &config) +void zzzap_common_audio_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "mono").front_center(); - NETLIST_SOUND(config, "sound_nl", 48000) - .set_source(NETLIST_NAME(280zzzap)) - .add_route(ALL_OUTPUTS, "mono", 1.0); - - NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit0", "I_PEDAL_BIT0", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit1", "I_PEDAL_BIT1", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit2", "I_PEDAL_BIT2", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit3", "I_PEDAL_BIT3", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:hi_shift", "I_HI_SHIFT", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:lo_shift", "I_LO_SHIFT", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:boom", "I_BOOM", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:engine_sound_off", "I_ENGINE_SOUND_OFF", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:noise_cr_1", "I_NOISE_CR_1", 0); - NETLIST_LOGIC_INPUT(config, "sound_nl:noise_cr_2", "I_NOISE_CR_2", 0); - - // The audio output is taken from an LM3900 op-amp whose output has a - // peak-to-peak range of about 5 volts, centered on 2.5 volts. With - // the master volume potentiometer at its default midpoint setting, - // this range is cut in half, to 2.5 volts peak to peak. In the real - // machine, the audio power amps might clip the highest output peaks, - // but I don't model this. Instead, I take the easy way out: assume - // the output at midpoint volume will just avoid clipping the extreme - // peaks, and scale and offset it so that those peaks will just reach - // the clipping limits for signed 16-bit samples. So turning the - // volume up much higher than the default will give clipped output. - NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(32767.0 / 1.25, -(32767.0 / 1.25) * 2.50); + if (m_netlist != nullptr) { + + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(m_netlist) + .add_route(ALL_OUTPUTS, "mono", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit0", + "I_PEDAL_BIT0", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit1", + "I_PEDAL_BIT1", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit2", + "I_PEDAL_BIT2", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit3", + "I_PEDAL_BIT3", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:hi_shift", + "I_HI_SHIFT", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:lo_shift", + "I_LO_SHIFT", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:boom", "I_BOOM", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:engine_sound_off", + "I_ENGINE_SOUND_OFF", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:noise_cr_1", + "I_NOISE_CR_1", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:noise_cr_2", + "I_NOISE_CR_2", 0); + + // The audio output is taken from an LM3900 op-amp whose + // output has a peak-to-peak range of about 5 volts, centered + // on 2.5 volts. With the master volume potentiometer at its + // default midpoint setting, this range is cut in half, to 2.5 + // volts peak to peak. In the real machine, the audio power + // amps might clip the highest output peaks, but I don't model + // this. Instead, I take the easy way out: assume the output + // at midpoint volume will just avoid clipping the extreme + // peaks, and scale and offset it so that those peaks will + // just reach the clipping limits for signed 16-bit samples. + // So turning the volume up much higher than the default will + // give clipped output. + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(32767.0 / 1.25, -(32767.0 / 1.25) * 2.50); - // Netlist volume-potentiometer interface - NETLIST_ANALOG_INPUT(config, "sound_nl:pot_master_vol", "R70.DIAL"); + // Netlist volume-potentiometer interface + NETLIST_ANALOG_INPUT(config, "sound_nl:pot_master_vol", "R70.DIAL"); + } } -ioport_constructor zzzap_audio_device::device_input_ports() const +ioport_constructor zzzap_common_audio_device::device_input_ports() const { return INPUT_PORTS_NAME(zzzap_audio); } -void zzzap_audio_device::device_start() +void zzzap_common_audio_device::device_start() +{ +} + + +zzzap_audio_device::zzzap_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) : + zzzap_common_audio_device(mconfig, ZZZAP_AUDIO, tag, owner, clock, NETLIST_NAME(280zzzap)) +{ +} + + +lagunar_audio_device::lagunar_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) : + zzzap_common_audio_device(mconfig, LAGUNAR_AUDIO, tag, owner, clock, NETLIST_NAME(lagunar)) { } diff -Nru mame-0.223+dfsg.1/src/mame/audio/mw8080bw.h mame-0.224+dfsg.1/src/mame/audio/mw8080bw.h --- mame-0.223+dfsg.1/src/mame/audio/mw8080bw.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/mw8080bw.h 2020-08-26 08:57:19.000000000 +0000 @@ -301,20 +301,21 @@ }; -class zzzap_audio_device : public device_t +class zzzap_common_audio_device : public device_t { public: - zzzap_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 0); - void p1_w(u8 data); void p2_w(u8 data); protected: + zzzap_common_audio_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock, void (*netlist)(netlist::nlparse_t &)); + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; private: + void (*m_netlist)(netlist::nlparse_t &) = nullptr; required_device m_pedal_bit0; required_device m_pedal_bit1; required_device m_pedal_bit2; @@ -328,6 +329,20 @@ }; +class zzzap_audio_device : public zzzap_common_audio_device +{ +public: + zzzap_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 0); +}; + + +class lagunar_audio_device : public zzzap_common_audio_device +{ +public: + lagunar_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 0); +}; + + DECLARE_DEVICE_TYPE(SEAWOLF_AUDIO, seawolf_audio_device) DECLARE_DEVICE_TYPE(GUNFIGHT_AUDIO, gunfight_audio_device) DECLARE_DEVICE_TYPE(BOOTHILL_AUDIO, boothill_audio_device) @@ -342,6 +357,7 @@ DECLARE_DEVICE_TYPE(PHANTOM2_AUDIO, phantom2_audio_device) DECLARE_DEVICE_TYPE(INVADERS_AUDIO, invaders_audio_device) DECLARE_DEVICE_TYPE(INVAD2CT_AUDIO, invad2ct_audio_device) -DECLARE_DEVICE_TYPE(ZZZAP_AUDIO, zzzap_audio_device) +DECLARE_DEVICE_TYPE(ZZZAP_AUDIO, zzzap_audio_device) +DECLARE_DEVICE_TYPE(LAGUNAR_AUDIO, lagunar_audio_device) #endif // MAME_AUDIO_MW8080BW_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_280zzzap.cpp mame-0.224+dfsg.1/src/mame/audio/nl_280zzzap.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_280zzzap.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_280zzzap.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -4,11 +4,15 @@ #include "netlist/devices/net_lib.h" -// This is a netlist description for the sound circuits of Midway's 280-ZZZAP, -// based on Midway's schematic "280 ZZZAP Game Logic P.C. 0610-00907A". It -// should also apply to Midway's Laguna Racer with only very minor changes and -// to Taito/Midway's Super Speed Race with only modest changes, because these -// games use almost identical sound circuits to 280-ZZZAP. +// This is a netlist description for the sound circuits of Midway's 280-ZZZAP +// and Laguna Racer, based on Midway's schematics "280 ZZZAP Game Logic P.C. +// 0610-00907A", "Laguna Racer Game Logic A084-90700-A622", and "Laguna Racer +// Game Logic A084-90700-B622". Midway PCB drawings for Laguna Racer and a +// photo by Andrew Wellburn of a 280-ZZZAP game logic board were also used to +// help determine correct values for certain components. The netlist should +// also apply to Taito/Midway's Super Speed Race with only modest changes, +// because that game uses very similar sound circuits to 280-ZZZAP and Laguna +// Racer. // (Incidentally, the 280-ZZZAP schematic has some notes on changes made to // the circuitry during production, a few of which were to audio circuits. @@ -45,6 +49,20 @@ // and crashes), and the final mix and amplification of all sounds. +// When comparing the sound circuitry and components between 280-ZZZAP and +// Laguna Racer, here are some things to note. There are two different +// versions of the Laguna Racer game logic board (where the sound circuits +// reside): A622 and B622. Midway's A622 schematic was clearly copied directly +// from 280-ZZZAP's--even the letter indicators for change notes in +// 280-ZZZAP's circuitry remain, though the actual notes were blanked out. +// B622's schematics show sound circuitry differences from 280-ZZZAP and A622, +// and these differences are consistent with Midway's PCB drawings for *both* +// the A622 and B622 games boards. Some of them are also consistent with +// Wellburn's 280-ZZZAP PCB photo. So it seems that actual 280-ZZZAP boards +// lie somewhere between the 280-ZZZAP schematic and the B622 Laguna Racer +// schematic. + + // Include special frontiers within engine sound oscillators whose purpose is // to improve solution convergence by reducing the oscillators' inherent // numeric instability. Also adjusts values of resistors associated with these @@ -68,172 +86,47 @@ #define REMOVE_POST_CRASH_NOISE_GLITCHES 1 -static NETLIST_START(mc3340) - - // A netlist description of the Motorola MC3340 Electronic Attenuator - // IC, a voltage-controlled amplifier/attenuator. It amplifies or - // attenuates an input signal according to the voltage of a second, - // control signal, with a maximum gain of about 12-13 dB (about a - // factor of 4 in voltage), and higher control voltages giving greater - // attenuation, which scales logarithmically. - - // The netlist here is based on the circuit schematic given in - // Motorola's own data books, especially the most recent ones - // published in the 1990s (e.g. _Motorola Analog/Interface ICs Device - // Data, Vol. II_ (1996), p. 9-67), which are the only schematics that - // include resistor values. However, the 1990s schematics are missing - // one crossover connection which is present in older schematics - // published in the 1970s (e.g. _Motorola Linear Integrated Circuits_ - // (1979), p. 5-130). This missing connection is clearly an error - // which has been fixed in this netlist; without it, the circuit won't - // amplify properly, generating only a very weak output signal. - - // The 1990s schematics also omit a couple of diodes which are present - // in the 1970s schematics. One of these omitted diodes noticeably - // raises the minimum control voltage at which signal attenuation - // starts; that diode has been included here, to get the netlist's - // profile of attenuation vs. control voltage to better match - // Motorola's charts for the device. - - // The Motorola schematics do not label components, so I've created my - // own labeling scheme based on numbering components on the schematics - // from top to bottom, left to right, with resistors also getting - // their value (expressed European-style to avoid decimal points) as - // part of the name. The netlist is also listed following the - // schematics in roughly top-to-bottom, left-to-right order. - - // A very simple model is used for the transistors here, based on the - // generic NPN default but with a larger scale current. Again, this - // was chosen to better match the netlist's attenuation vs. control - // voltage profile to that given in Motorola's charts for the device. - - // The MC3340 has the same circuit internally as an older Motorola - // device, the MFC6040, which was replaced by the MC3340 in the - // mid-1970s. The two chips differ only in packaging. Older arcade - // games which use the MFC6040 may also benefit from this netlist - // implementation. - - RES(R1_5K1, RES_K(5.1)) - - DIODE(D1_MC3340, "D(IS=1e-15 N=1)") - - RES(R2_4K7, RES_K(4.7)) - - NET_MODEL("NPN1 NPN(IS=1E-13 BF=100)") - - QBJT_EB(Q1, "NPN1") - - RES(R3_750, RES_R(750)) - RES(R4_10K, RES_K(10)) - - QBJT_EB(Q2, "NPN1") - - RES(R5_750, RES_R(750)) - RES(R6_3K9, RES_K(3.9)) - - RES(R7_5K1, RES_K(5.1)) - RES(R8_20K, RES_K(20)) - - // 1970s Motorola schematics have another diode just above what I call - // "R9_510"; this diode doesn't seem to affect normal operation much, - // so I've left it out. - RES(R9_510, RES_R(510)) - - QBJT_EB(Q3, "NPN1") - - QBJT_EB(Q4, "NPN1") - - QBJT_EB(Q5, "NPN1") +// Netlists for two different games are defined in this file. These netlists +// are mostly alike but differ in a few key components. I use Aaron Giles' +// scheme for combining the two definitions in one file. +// +// Initial compilation includes this section. +// - RES(R10_1K3, RES_K(1.3)) +#ifndef SOUND_VARIANT - QBJT_EB(Q6, "NPN1") - RES(R11_5K1, RES_K(5.1)) +// +// Now include ourselves twice, once for 280-ZZZAP and once for Laguna Racer. +// - QBJT_EB(Q7, "NPN1") +#define VARIANT_280ZZZAP 0 +#define VARIANT_LAGUNAR 1 - QBJT_EB(Q8, "NPN1") +#define SOUND_VARIANT (VARIANT_280ZZZAP) +#include "nl_280zzzap.cpp" - RES(R12_1K5, RES_K(1.5)) +#undef SOUND_VARIANT +#define SOUND_VARIANT (VARIANT_LAGUNAR) +#include "nl_280zzzap.cpp" - RES(R13_6K2, RES_K(6.2)) - QBJT_EB(Q9, "NPN1") - - RES(R14_5K1, RES_K(5.1)) - - QBJT_EB(Q10, "NPN1") - - RES(R15_5K1, RES_K(5.1)) - - RES(R16_200, RES_R(200)) - - RES(R17_5K1, RES_K(5.1)) - - DIODE(D2_MC3340, "D(IS=1e-15 N=1)") - - RES(R18_510, RES_R(510)) - - ALIAS(MC3340_VCC, R1_5K1.1) - NET_C(R1_5K1.1, Q1.C, Q2.C, R7_5K1.1, Q3.C, Q4.C, Q7.C, - R13_6K2.1, Q10.C, R17_5K1.1) - // Location of first diode present on 1970s schematics but omitted on - // 1990s ones. Including it raises the control voltage threshold for - // attenuation significantly. - NET_C(R1_5K1.2, D1_MC3340.A, Q1.B) - NET_C(D1_MC3340.K, R2_4K7.1) - NET_C(R2_4K7.2, GND) - - NET_C(Q1.E, R3_750.1, R5_750.1) - NET_C(R3_750.2, R4_10K.1, Q2.B) - NET_C(R4_10K.2, GND) - - NET_C(R5_750.2, R6_3K9.1, Q3.B) - ALIAS(MC3340_CONTROL, R6_3K9.2) - - ALIAS(MC3340_INPUT, Q5.B) - - NET_C(MC3340_INPUT, R8_20K.1) - NET_C(R7_5K1.2, R8_20K.2, R9_510.1) - // (This is approximately where the other omitted diode, which I've - // left out, would go.) - NET_C(R9_510.2, GND) - - NET_C(Q4.E, Q6.E, Q5.C) - NET_C(Q5.E, R10_1K3.1) - NET_C(R10_1K3.2, GND) - - NET_C(Q6.B, Q7.B, Q2.E, R11_5K1.1) - NET_C(R11_5K1.2, GND) - - NET_C(Q7.E, Q9.E, Q8.C) - NET_C(Q8.E, R12_1K5.1) - NET_C(R12_1K5.2, GND) - - NET_C(Q4.B, Q9.B, Q3.E, R14_5K1.1) - NET_C(R14_5K1.2, GND) +#else - // This is where the cross-connection is erroneously omitted from - // 1990s schematics. - NET_C(Q6.C, R13_6K2.2, Q9.C, Q10.B) - // Connection for external frequency compensation capacitor; unused - // here. - ALIAS(MC3340_ROLLOFF, Q10.B) +// +// Main netlist +// - NET_C(Q10.E, R16_200.1, R15_5K1.1) - NET_C(R15_5K1.2, GND) - ALIAS(MC3340_OUTPUT, R16_200.2) +#if (SOUND_VARIANT == VARIANT_280ZZZAP) - NET_C(R17_5K1.2, D2_MC3340.A, Q8.B) - NET_C(D2_MC3340.K, R18_510.1) - NET_C(R18_510.2, GND) +static NETLIST_START(280zzzap_schematics) -NETLIST_END() +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) +static NETLIST_START(lagunar_schematics) -static NETLIST_START(280zzzap_schematics) +#endif // **** Conversion of accelerator level to "engine speed" control // **** voltage for engine sound, with capacitor-based "engine @@ -297,15 +190,19 @@ RES(R62, RES_K(1)) RES(R61, RES_K(1)) - // The 480 Kohm resistors listed here are shown as such on the - // 280-ZZZAP schematic and the schematic for the earlier Laguna Racer - // board, but this is a non-standard value. The nearest standard value - // is 470 Kohm, and this may have been used in production. Need to - // check against actual PCBs. - RES(R51, RES_K(480)) // 470 Kohm in later Laguna and Super Speed Race - RES(R46, RES_M(2)) // 2.2 Mohm in later Laguna and Super Speed Race + // For the following resistors R51 and R46-R49, the values given are + // those shown in the Laguna Racer PCB drawings, the Laguna Racer B622 + // board schematic, the Super Speed Race schematic, and Andrew + // Wellburn's 280-ZZZAP PCB photo. In the 280-ZZZAP schematic (and the + // Laguna Racer A622 board schematic, a near copy), R51 and R48 are + // 480 Kohms and R46 is 2 Mohms, but these seem to be errors in that + // schematic. 480 Kohm is not even a standard resistor value for any + // tolerance band, so it could not have been used on production + // boards. + RES(R51, RES_K(470)) + RES(R46, RES_M(2.2)) RES(R47, RES_M(1)) - RES(R48, RES_K(480)) // 470 Kohm in later Laguna and Super Speed Race + RES(R48, RES_K(470)) RES(R49, RES_K(240)) RES(R50, RES_K(100)) @@ -323,7 +220,19 @@ RES(R59, RES_K(560)) RES(R60, RES_K(10)) - CAP(C18, CAP_U(47)) // 22 uF in later Laguna and Super Speed Race + // The size of capacitor C18 varies with the game: 47 uF in 280-ZZZAP, + // 22 uF in Laguna Racer and Super Speed Race: + +#if (SOUND_VARIANT == VARIANT_280ZZZAP) + + CAP(C18, CAP_U(47)) + +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) + + CAP(C18, CAP_U(22)) + +#endif + NET_C(C18.2, GND) CAP(C19, CAP_U(2.2)) @@ -413,6 +322,8 @@ // These are the remaining connections from H5_4.OUT: NET_C(H5_4.OUT, R36.1, R37.1, R31.1, R32.1, R29.1, R30.1) + MC3340_DIP(MC3340_H2) + CD4016_DIP(J4) // First oscillator (bottommost in schematics). @@ -500,26 +411,60 @@ NET_C(J3_4.OUT, R35.1, J4.5) NET_C(I_V5.Q, R34.1) NET_C(J3_4.PLUS, R34.2, R35.2) - NET_C(C16.2, MC3340_INPUT) // to MC3340 H2 pin 1 + NET_C(C16.2, MC3340_H2.1) // to MC3340 input pin // Third oscillator (topmost in schematics). - // This is the amplitude-modulation oscillator. - // Schematic shows frequency of "428 Hz", but when modeled without a - // frontier, the maximum in low gear is 465 Hz. - // With a frontier, uncompensated, this decreases to 442 Hz. + + // This is the amplitude-modulation oscillator, whose frequency + // differs slightly between 280-ZZZAP and the later games, Laguna + // Racer and Super Speed Race. This difference distinctly changes the + // tone of the engine sound. + // The 280-ZZZAP and Laguna Racer schematics all show a frequency of + // "428 Hz", but for 280-ZZZAP, when equipped with a 110 Kohm resistor + // and modeled without a frontier, the maximum in low gear is 465 Hz; + // with a frontier, uncompensated, this decreases to 442 Hz. + // For Laguna Racer, when equipped with a 100 Kohm resistor and + // modeled without a frontier, the maximum low gear frequency is 511 + // Hz; with a frontier, uncompensated, it's 482 Hz. LM3900(J3_2) LM3900(J3_1) RES(R29, RES_K(220)) - RES(R30, RES_K(110)) // 100 Kohm in later Laguna and Super Speed Race + + // The value of resistor R30 is what changes the engine sound between + // 280-ZZZAP and the later games. The 280-ZZZAP schematic indicates + // that it is 110 Kohm in that game. This resistor is hidden on Andrew + // Wellburn's 280-ZZZAP PCB photo, but the sound resulting from 110 + // Kohm is more consistent with actual 280-ZZZAP machines than that + // from 100 Kohm. + // The resistor is 100 Kohm in the B622 Laguna Racer and Super Speed + // Race schematics and on the PCB drawings for both Laguna Racer board + // versions, so I assume all Laguna Racer versions had this value. +#if (SOUND_VARIANT == VARIANT_280ZZZAP) + + RES(R30, RES_K(110)) + +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) + + RES(R30, RES_K(100)) + +#endif + RES(R28, RES_K(100)) #if CONVERGENCE_FRONTIERS // Schmitt trigger resistors changed to compensate for waveform changes - // from use of frontier: + // from use of frontier. + // Since the different games have different oscillator frequencies, + // the compensated values of these resistors differ slightly as well. +#if (SOUND_VARIANT == VARIANT_280ZZZAP) RES(R26, RES_K(455)) RES(R27, RES_K(284)) +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) + RES(R26, RES_K(453)) + RES(R27, RES_K(286)) +#endif #else RES(R26, RES_K(470)) RES(R27, RES_K(270)) @@ -550,7 +495,7 @@ NET_C(J3_1.OUT, R27.1, J4.13) NET_C(I_V5.Q, R26.1) NET_C(J3_1.PLUS, R26.2, R27.2) - NET_C(D1.K, R23.2, C13.2, R25.1, MC3340_CONTROL) // to MC3340 H2 pin 2 + NET_C(D1.K, R23.2, C13.2, R25.1, MC3340_H2.2) // to MC3340 ctrl pin // The MC3340's output is the complete engine sound, which is sent to // the final mix. @@ -735,10 +680,8 @@ // The result is a high-pitched "tire skid" screeching sound. - // The circuit appears to be taken almost verbatim from page 19 of - // National Semiconductor's Application Note 72 about the LM3900, with - // only minor changes in the values of a few components to alter the - // DC bias. + // The circuit appears to be taken practically verbatim from page 19 of + // National Semiconductor's Application Note 72 about the LM3900. CD4016_DIP(G4) @@ -765,9 +708,17 @@ LM3900(H4_4) + // For resistor R11, the value given is that shown in the Laguna Racer + // PCB drawings, the Laguna Racer B622 board schematic, the Super + // Speed Race schematic, and Andrew Wellburn's 280-ZZZAP PCB photo. In + // the 280-ZZZAP schematic and the near-copy Laguna Racer A622 board + // schematic, R11 is 100 Kohms, but this seems to be a schematic + // error. (The original National Semiconductor Application Note 72 + // from which this circuit was apparently taken also uses 120 Kohm for + // R11.) RES(R9, RES_K(39)) RES(R10, RES_K(62)) // 240 Kohm in Super Speed Race - RES(R11, RES_K(100)) // 120 Kohm in later Laguna and Super Speed Race + RES(R11, RES_K(120)) RES(R12, RES_K(62)) NET_C(H4_4.MINUS, R9.2, R11.1) @@ -848,12 +799,16 @@ LM3900(H5_1) - // On the 280-ZZZAP game logic board schematic, resistor R18 (which is - // not labeled as such) is a 2.2K resistor, but it has a note "E" - // stating that one of the changes made after the first 325 units was: - // "2.2K resistor at G4 pin 2 was 6.8K." I interpret this to mean that - // the resistor was lowered to 2.2K from 6.8K. + // Resistor R18, part of the BOOM filter, is 2.2 Kohms on the + // 280-ZZZAP schematic as well as in Laguna Racer, but the 280-ZZZAP + // schematic has a note "E" saying that the first 325 machines had a + // 6.8 Kohm resistor here instead. Andrew Wellburn's 280-ZZZAP board + // photo may show such a resistor. With this larger resistor, the + // filter's values are: center frequency 54 Hz, Q 16.9, gain 73.5; so + // the filter is slightly broader, pitched a bit lower, and has only a + // third as much gain. Still, the basic effect is the same. RES(R18, RES_K(2.2)) // 20 Kohm in Super Speed Race + RES(R19, RES_K(1)) RES(R20, RES_M(3.3)) RES(R21, RES_M(1)) // 1.5 Mohm in Super Speed Race @@ -904,20 +859,27 @@ RES(R63, RES_K(12)) // 3 Kohm in Super Speed Race RES(R64, RES_K(150)) - // On the 280-ZZZAP game logic board schematic, resistor R65 (which is - // not labeled as such) is a 12K resistor, but it has a note "F" - // stating that one of the changes made after the first 325 units was: - // "12K resistor in series with 10MF cap and J5 pin 8 was 4.3K." I - // interpret this to mean that the resistor was raised to 12K from - // 4.3K. + + // Resistor R65, the mixing resistor for the BOOM effect, is 12 Kohms + // on the 280-ZZZAP schematic and in Laguna Racer and Super Speed + // Race, but the 280-ZZZAP schematic has a note "F" saying that the + // first 325 machines had a 4.3 Kohm resistor here instead. Andrew + // Wellburn's 280-ZZZAP board photo shows such a resistor. The lower + // resistor makes the BOOM effect much louder, countering the reduced + // gain on its generating filter described above. In fact, it makes it + // loud enough to be clipped by the post-mixer op-amps; turning down + // the volume to prevent this clipping makes all other sounds quieter + // by comparison. This may explain why both the mixing resistor and + // the filter resistor were changed in later machines. RES(R65, RES_K(12)) + RES(R66, RES_K(33)) CAP(C20, CAP_U(10)) CAP(C21, CAP_U(10)) NET_C(R63.2, R64.2, R65.2, C20.1) - NET_C(MC3340_OUTPUT, R66.1) + NET_C(MC3340_H2.7, R66.1) // MC3340 output pin NET_C(R66.2, C21.1) LM3900(J5_3) @@ -953,8 +915,16 @@ NETLIST_END() +#if (SOUND_VARIANT == VARIANT_280ZZZAP) + NETLIST_START(280zzzap) +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) + +NETLIST_START(lagunar) + +#endif + SOLVER(Solver, 48000) #if !(FAST_HLE_NOISE_GEN) @@ -978,16 +948,23 @@ ANALOG_INPUT(I_V12, 12) ANALOG_INPUT(I_V5, 5) - LOCAL_SOURCE(mc3340) - INCLUDE(mc3340) - - // The MC3340 gets 12-volt power in 280-ZZZAP and Laguna Racer. - // In Super Speed Race it gets 5-volt power. - NET_C(I_V12.Q, MC3340_VCC) +#if (SOUND_VARIANT == VARIANT_280ZZZAP) LOCAL_SOURCE(280zzzap_schematics) INCLUDE(280zzzap_schematics) +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) + + LOCAL_SOURCE(lagunar_schematics) + INCLUDE(lagunar_schematics) + +#endif + + // The MC3340 gets 12-volt power in 280-ZZZAP and Laguna Racer. + // In Super Speed Race it gets 5-volt power. + NET_C(I_V12.Q, MC3340_H2.8) + NET_C(GND, MC3340_H2.3) + // Logic inputs which represent output pins from 74174 latches at F4 // and F5 LOGIC_INPUT(I_F4_2, 0, "74XX") // BOOM @@ -1089,7 +1066,11 @@ OPTIMIZE_FRONTIER(R31.1, RES_K(300), 50) OPTIMIZE_FRONTIER(R32.1, RES_K(150), 50) OPTIMIZE_FRONTIER(R29.1, RES_K(220), 50) +#if (SOUND_VARIANT == VARIANT_280ZZZAP) OPTIMIZE_FRONTIER(R30.1, RES_K(110), 50) +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) + OPTIMIZE_FRONTIER(R30.1, RES_K(100), 50) +#endif #if CONVERGENCE_FRONTIERS // Frontiers at Schmitt trigger op-amp outputs of engine sound @@ -1099,7 +1080,14 @@ // otherwise change the oscillator waveforms. OPTIMIZE_FRONTIER(R40.1, RES_K(275), 50) OPTIMIZE_FRONTIER(R35.1, RES_K(281), 50) +#if (SOUND_VARIANT == VARIANT_280ZZZAP) OPTIMIZE_FRONTIER(R27.1, RES_K(284), 50) +#else // (SOUND_VARIANT == VARIANT_LAGUNAR) + OPTIMIZE_FRONTIER(R27.1, RES_K(286), 50) +#endif #endif NETLIST_END() + + +#endif diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_280zzzap.h mame-0.224+dfsg.1/src/mame/audio/nl_280zzzap.h --- mame-0.223+dfsg.1/src/mame/audio/nl_280zzzap.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_280zzzap.h 2020-08-26 08:57:19.000000000 +0000 @@ -8,5 +8,6 @@ #include "netlist/nl_setup.h" NETLIST_EXTERNAL(280zzzap) +NETLIST_EXTERNAL(lagunar) #endif // MAME_AUDIO_NL_280ZZZAP_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_armora.cpp mame-0.224+dfsg.1/src/mame/audio/nl_armora.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_armora.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_armora.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -18,7 +18,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_armora.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_astrob.cpp mame-0.224+dfsg.1/src/mame/audio/nl_astrob.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_astrob.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_astrob.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,1161 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles + +// +// Netlist for Astro Blaster +// +// Derived from the schematics in the Astro Blaster manual. +// +// Known problems/issues: +// +// * All sounds work under the right conditions. +// +// * SONAR and BONUS sounds fail to trigger after the first +// few seconds. For some reason the triggering via CD4011 +// never actually fires the one-shot that controls the +// duration of the sound. +// +// * Performance is poor, primarily due to the SONAR sound +// and its connection to the mixing net. All attempts at +// separating the two have ended in failure so far. +// + +#include "netlist/devices/net_lib.h" +#include "nl_astrob.h" + + +// +// Optimizations +// + +#define HLE_LASER_1_VCO (1) +#define HLE_LASER_2_VCO (1) +#define SIMPLIFY_SONAR (1) +#define ENABLE_FRONTIERS (1) +#define UNDERCLOCK_NOISE_GEN (1) + + + +// +// Hacks +// + +#define ADD_CLIPPING_DIODES (1) + + + +// not really found anywhere, just took the 5239 and changed the +// breakdown voltage to 5.1 according to the datasheet +#define D_1N5231(name) ZDIODE(name, "D(BV=5.1 IBV=0.020 NBV=1)") +#define D_1N914(name) DIODE(name, "1N914") + +// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4403 +#define Q_2N4403(name) QBJT_EB(name, "PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=216.2 Ne=1.829 Ise=58.72f Ikf=1.079 Xtb=1.5 Br=3.578 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=111.6n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)") + +// JFET transistors not supported, but this should do the trick +#define Q_2N4093(name) MOSFET(name, "NMOS(VTO=-1 CAPMOD=0)") + +#define LM555_DIP NE555_DIP +#define LM566_DIP NE566_DIP + +#define TTL_74LS00_DIP TTL_7400_DIP +#define TTL_74LS04_DIP TTL_7404_DIP + + + +// +// Main netlist +// + +NETLIST_START(astrob) + +#if 1 + SOLVER(Solver, 1000) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 4e-5) +#if (SIMPLIFY_SONAR) + PARAM(Solver.Solver_54.DYNAMIC_MIN_TIMESTEP, 7e-6) // gets rid of NR loops failure +#else + PARAM(Solver.Solver_40.DYNAMIC_MIN_TIMESTEP, 7e-6) // gets rid of NR loops failure +#endif +#else + SOLVER(Solver, 48000) +#endif + + // Overwrite model - the default model uses minimum datasheet + // specifications for 5V. These are for 10V and thus closer to the + // 12V used in this circuit. + NET_MODEL("CD4XXX FAMILY(TYPE=CMOS IVL=0.3 IVH=0.7 OVL=0.05 OVH=0.05 ORL=384 ORH=384)") + + TTL_INPUT(I_LO_D0, 0) + NET_C(I_LO_D0, U31.1) + ALIAS(I_INVADER_1, U31.2) + TTL_INPUT(I_LO_D1, 0) + NET_C(I_LO_D1, U31.3) + ALIAS(I_INVADER_2, U31.4) + TTL_INPUT(I_LO_D2, 0) + NET_C(I_LO_D2, U31.11) + ALIAS(I_INVADER_3, U31.10) + TTL_INPUT(I_LO_D3, 0) + NET_C(I_LO_D3, U31.9) + ALIAS(I_INVADER_4, U31.8) + TTL_INPUT(I_LO_D4, 0) + NET_C(I_LO_D4, U30.13) + ALIAS(I_ASTROIDS, U30.12) + TTL_INPUT(I_LO_D5, 0) + ALIAS(I_MUTE, I_LO_D5) + TTL_INPUT(I_LO_D6, 0) + NET_C(I_LO_D6, U30.3, U29.11) + ALIAS(I_REFILL, U29.10) + ALIAS(I_REFILL_Q, U30.4) + TTL_INPUT(I_LO_D7, 0) + ALIAS(W, I_LO_D7) + NET_C(I_LO_D7, U31.5) + ALIAS(I_WARP, U31.6) + + NET_C(GND, I_LO_D0.GND, I_LO_D1.GND, I_LO_D2.GND, I_LO_D3.GND, I_LO_D4.GND, I_LO_D5.GND, I_LO_D6.GND, I_LO_D7.GND) + NET_C(I_V5, I_LO_D0.VCC, I_LO_D1.VCC, I_LO_D2.VCC, I_LO_D3.VCC, I_LO_D4.VCC, I_LO_D5.VCC, I_LO_D6.VCC, I_LO_D7.VCC) + + TTL_INPUT(I_HI_D0, 0) + NET_C(I_HI_D0, U26.5) + ALIAS(I_LASER_1, U26.6) + TTL_INPUT(I_HI_D1, 0) + NET_C(I_HI_D1, U26.3) + ALIAS(I_LASER_2, U26.4) + TTL_INPUT(I_HI_D2, 0) + NET_C(I_HI_D2, U26.11) + ALIAS(I_SHORT_EXPL, U26.10) + TTL_INPUT(I_HI_D3, 0) + NET_C(I_HI_D3, U26.9) + ALIAS(I_LONG_EXPL, U26.8) + TTL_INPUT(I_HI_D4, 0) + NET_C(I_HI_D4, U26.1) + ALIAS(I_ATTACK_RATE, U26.2) + TTL_INPUT(I_HI_D5, 0) + NET_C(I_HI_D5, U31.13) + ALIAS(I_RATE_RESET, U31.12) + TTL_INPUT(I_HI_D6, 0) + NET_C(I_HI_D6, U29.9) + ALIAS(I_BONUS, U29.8) + TTL_INPUT(I_HI_D7, 0) + NET_C(I_HI_D7, U29.5) + ALIAS(I_SONAR, U29.6) + + NET_C(GND, I_HI_D0.GND, I_HI_D1.GND, I_HI_D2.GND, I_HI_D3.GND, I_HI_D4.GND, I_HI_D5.GND, I_HI_D6.GND, I_HI_D7.GND) + NET_C(I_V5, I_HI_D0.VCC, I_HI_D1.VCC, I_HI_D2.VCC, I_HI_D3.VCC, I_HI_D4.VCC, I_HI_D5.VCC, I_HI_D6.VCC, I_HI_D7.VCC) + + ANALOG_INPUT(I_V5, 5) + ANALOG_INPUT(I_V12, 12) + ANALOG_INPUT(I_VM12, -12) + + RES(R1, RES_K(100)) + RES(R2, RES_K(1.5)) + RES(R3, RES_K(330)) + RES(R4, RES_K(10)) +#if (SIMPLIFY_SONAR) + // use less resistance to account for only emulating 1/4 identical circuits + RES(R5, RES_K(17)) +#else + RES(R5, RES_K(68)) +#endif + RES(R6, RES_K(68)) + RES(R7, RES_K(22)) + RES(R8, RES_K(18)) + RES(R9, RES_K(33)) + RES(R10, RES_K(100)) + RES(R11, RES_K(150)) + RES(R12, RES_K(39)) + RES(R13, RES_K(330)) + RES(R14, RES_K(47)) + RES(R15, RES_K(220)) + RES(R16, RES_K(10)) + RES(R17, RES_K(10)) + RES(R18, RES_M(2.7)) +// RES(R19, RES_K(1)) + RES(R20, RES_M(1)) + RES(R21, RES_K(100)) + RES(R22, RES_K(470)) + RES(R23, RES_K(100)) + RES(R24, RES_M(2.2)) + RES(R25, RES_K(10)) + RES(R26, RES_K(820)) + RES(R27, RES_K(47)) + RES(R28, RES_K(22)) + RES(R29, RES_K(10)) + RES(R30, RES_K(82)) + RES(R31, RES_K(10)) + RES(R32, RES_K(22)) + RES(R33, RES_K(39)) + RES(R34, RES_K(4.7)) + RES(R35, RES_K(4.7)) + RES(R36, RES_K(100.1)) // part of SONAR circuit that relies on subtle part differences + RES(R37, RES_K(1.51)) // part of SONAR circuit that relies on subtle part differences + RES(R38, RES_K(330.1)) // part of SONAR circuit that relies on subtle part differences + RES(R39, RES_K(10.1)) // part of SONAR circuit that relies on subtle part differences + RES(R40, RES_K(68.1)) // part of SONAR circuit that relies on subtle part differences + RES(R41, RES_K(10)) + RES(R42, RES_K(100)) + RES(R43, RES_K(470)) + RES(R44, RES_M(1)) + RES(R45, RES_K(100)) + RES(R46, RES_K(470)) + RES(R47, RES_K(10)) + RES(R48, RES_K(82)) + RES(R49, RES_K(39)) + RES(R50, RES_K(22)) + RES(R51, RES_K(10)) + RES(R52, RES_K(68)) + RES(R53, RES_K(10)) + RES(R54, RES_K(22)) + RES(R55, RES_M(2.2)) + RES(R56, RES_K(33)) + RES(R57, RES_K(33)) + RES(R58, RES_K(820)) + RES(R59, RES_K(100)) + RES(R60, RES_K(10)) + RES(R61, RES_K(100)) + RES(R62, RES_K(99.9)) // part of SONAR circuit that relies on subtle part differences + RES(R63, RES_K(1.49)) // part of SONAR circuit that relies on subtle part differences + RES(R64, RES_K(329.9)) // part of SONAR circuit that relies on subtle part differences + RES(R65, RES_K(9.9)) // part of SONAR circuit that relies on subtle part differences + RES(R66, RES_K(67.9)) // part of SONAR circuit that relies on subtle part differences + RES(R67, RES_K(10)) + RES(R68, RES_K(82)) + RES(R69, RES_K(470)) + RES(R70, RES_K(100)) + RES(R71, RES_K(10)) + RES(R72, RES_K(10)) + RES(R73, RES_K(100)) + RES(R74, RES_K(4.7)) + RES(R75, RES_K(100)) + RES(R76, RES_K(22)) + RES(R77, RES_K(330)) + RES(R78, RES_K(1)) + RES(R79, RES_K(150)) + RES(R80, RES_M(1)) + RES(R81, RES_K(10)) + RES(R82, RES_K(100)) + RES(R83, RES_K(1)) + RES(R84, RES_K(5.6)) + RES(R85, RES_K(150)) + RES(R86, RES_K(10)) + RES(R87, RES_K(10)) + RES(R88, RES_K(100)) + RES(R89, RES_K(10)) + RES(R90, RES_K(100)) + RES(R91, RES_K(100.2)) // part of SONAR circuit that relies on subtle part differences + RES(R92, RES_K(1.52)) // part of SONAR circuit that relies on subtle part differences + RES(R93, RES_K(330.2)) // part of SONAR circuit that relies on subtle part differences + RES(R94, RES_K(10.2)) // part of SONAR circuit that relies on subtle part differences + RES(R95, RES_K(68.2)) // part of SONAR circuit that relies on subtle part differences + RES(R96, RES_K(10)) + RES(R97, RES_K(4.7)) + RES(R98, RES_M(1)) + RES(R99, RES_M(1)) + RES(R100, RES_M(1)) + RES(R101, RES_M(1)) + RES(R102, RES_K(470)) + RES(R103, RES_M(1)) + RES(R104, RES_K(10)) + RES(R105, RES_K(10)) + RES(R106, RES_M(2.7)) + RES(R107, RES_K(100)) + RES(R108, RES_K(100)) + RES(R109, RES_K(10)) + RES(R110, RES_K(10)) + RES(R111, RES_K(10)) + RES(R112, RES_K(10)) + RES(R113, RES_K(10)) + RES(R114, 100) +// RES(R115, RES_K(100)) -- part of final amp (not emulated) +// RES(R116, RES_K(470)) -- part of final amp (not emulated) + RES(R117, RES_K(1)) + RES(R118, RES_K(470)) + RES(R119, RES_K(470)) + RES(R120, RES_K(220)) + RES(R121, RES_K(10)) + RES(R122, RES_K(4.7)) +// RES(R123, RES_K(1)) -- part of final amp (not emulated) +// RES(R124, RES_K(100)) -- part of final amp (not emulated) + RES(R125, RES_K(82)) + RES(R126, RES_K(39)) + RES(R127, RES_K(10)) + RES(R128, RES_K(22)) + RES(R129, RES_K(10)) + RES(R130, RES_K(22)) + RES(R131, RES_K(39)) + RES(R132, RES_K(82)) + RES(R133, RES_K(100)) + RES(R134, RES_M(2.7)) +// RES(R135, RES_K(22)) -- part of final amp (not emulated) + RES(R136, RES_K(1)) + RES(R137, RES_K(4.7)) + RES(R138, RES_M(2.2)) + RES(R139, RES_K(4.7)) + RES(R140, RES_K(4.7)) +// RES(R141, RES_K(22)) +// RES(R142, RES_M(1)) -- part of final amp (not emulated) +// RES(R143, RES_K(22)) -- part of final amp (not emulated) +// RES(R144, RES_K(22)) -- part of final amp (not emulated) + RES(R145, RES_K(4.7)) + RES(R146, RES_K(100)) + RES(R147, RES_M(2.2)) + RES(R148, RES_K(100)) + RES(R149, RES_K(100)) + RES(R150, RES_K(33)) + RES(R151, RES_M(1)) + RES(R152, RES_K(22)) + RES(R153, RES_K(47)) + RES(R154, RES_K(24)) + RES(R155, RES_K(56)) + RES(R156, RES_K(39)) + RES(R157, RES_K(27)) + RES(R158, RES_K(33)) + RES(R159, RES_K(62)) + RES(R160, RES_K(82)) + RES(R161, RES_K(120)) + RES(R162, RES_K(4.7)) + RES(R163, RES_K(10)) + RES(R164, RES_K(10)) + RES(R165, RES_M(1)) + RES(R166, RES_M(1)) + RES(R167, RES_K(1)) + RES(R168, RES_M(1)) + RES(R169, RES_K(100)) + RES(R170, RES_M(2.2)) + RES(R171, RES_K(100)) + RES(R172, RES_K(33)) + RES(R173, RES_K(47)) + RES(R174, RES_K(47)) + RES(R175, RES_K(47)) + RES(R176, RES_K(47)) + RES(R177, RES_K(47)) + RES(R178, RES_K(22)) + RES(R179, RES_K(47)) + RES(R180, RES_K(47)) + RES(R181, RES_K(47)) + RES(R182, RES_K(10)) + RES(R183, RES_K(10)) + RES(R184, RES_K(4.7)) + RES(R185, RES_M(1)) + RES(R186, RES_K(1)) + + CAP(C1, CAP_U(0.01)) + CAP(C2, CAP_U(0.01)) + CAP(C3, CAP_U(0.1)) + CAP(C4, CAP_U(0.05)) + CAP(C5, CAP_U(0.1)) + CAP(C6, CAP_U(10)) + CAP(C7, CAP_U(0.1)) + CAP(C8, CAP_U(0.1)) + CAP(C9, CAP_U(0.1)) +// CAP(C10, CAP_U(0.05)) +// CAP(C11, CAP_U(0.05)) + CAP(C12, CAP_U(10)) +// CAP(C13, CAP_U(0.05)) +// CAP(C14, CAP_U(0.05)) + CAP(C15, CAP_U(10)) + CAP(C16, CAP_U(0.01)) + CAP(C17, CAP_U(0.01)) + CAP(C18, CAP_U(0.022)) + CAP(C19, CAP_U(0.05)) + CAP(C20, CAP_U(0.1)) + CAP(C21, CAP_U(0.33)) + CAP(C22, CAP_U(0.33)) + CAP(C23, CAP_U(0.01)) + CAP(C24, CAP_U(0.01)) + CAP(C25, CAP_U(0.01)) + CAP(C26, CAP_U(0.022)) + CAP(C27, CAP_U(10)) + CAP(C28, CAP_U(0.05)) +// CAP(C29, CAP_U(0.05)) +// CAP(C30, CAP_U(0.05)) + CAP(C31, CAP_U(0.0047)) + CAP(C32, CAP_U(0.05)) + CAP(C33, CAP_U(10)) + CAP(C34, CAP_U(10)) + CAP(C35, CAP_U(0.1)) + CAP(C36, CAP_U(0.0022)) + CAP(C37, CAP_U(0.1)) + CAP(C38, CAP_U(0.1)) + CAP(C39, CAP_U(0.1)) + CAP(C40, CAP_U(0.01)) + CAP(C41, CAP_U(0.01)) +// CAP(C42, CAP_U(0.001)) +// CAP(C43, CAP_U(10)) +// CAP(C44, CAP_U(0.001)) +// CAP(C45, CAP_U(0.001)) +// CAP(C46, CAP_U(10)) + CAP(C47, CAP_U(4.7)) +// CAP(C48, CAP_U(22)) -- part of final amp (not emulated) + CAP(C49, CAP_U(0.05)) + CAP(C50, CAP_U(0.05)) + CAP(C51, CAP_U(0.05)) + CAP(C52, CAP_U(0.05)) + CAP(C53, CAP_U(0.1)) +// CAP(C54, CAP_U(0.05)) + CAP(C55, CAP_U(0.05)) + CAP(C56, CAP_U(10)) + CAP(C57, CAP_U(0.1)) +// CAP(C58, CAP_U(4.7)) -- part of final amp (not emulated) + CAP(C59, CAP_U(0.33)) + CAP(C60, CAP_U(4.7)) + CAP(C61, CAP_U(4.7)) + CAP(C62, CAP_U(10)) + CAP(C63, CAP_U(0.1)) + CAP(C64, CAP_U(0.1)) + CAP(C65, CAP_U(0.01)) +// CAP(C66, CAP_U(0.05)) + CAP(C67, CAP_U(0.05)) + CAP(C68, CAP_U(0.0047)) + CAP(C69, CAP_U(4.7)) + CAP(C70, CAP_U(0.1)) + CAP(C71, CAP_U(0.022)) + CAP(C72, CAP_U(0.05)) +// CAP(C73, CAP_U(0.05)) + CAP(C74, CAP_U(0.05)) + CAP(C75, CAP_U(0.05)) + CAP(C76, CAP_U(0.022)) + CAP(C77, CAP_U(0.0047)) + CAP(C78, CAP_U(0.1)) +// CAP(C79, CAP_U(0.05)) + CAP(C80, CAP_U(4.7)) + CAP(C81, CAP_U(0.05)) + CAP(C82, CAP_U(0.1)) + + D_1N5231(D1) + D_1N914(D2) + D_1N5231(D3) + D_1N5231(D4) + D_1N5231(D5) + D_1N5231(D6) + D_1N914(D7) + D_1N914(D8) + D_1N914(D9) + D_1N5231(D10) + D_1N914(D11) + D_1N914(D12) +// D_1N914(D13) -- part of final amp (not emulated) + D_1N914(D14) + D_1N914(D15) + D_1N914(D16) + D_1N914(D17) + D_1N914(D18) + D_1N914(D19) + D_1N914(D20) + D_1N914(D21) + D_1N914(D22) + D_1N914(D23) + D_1N914(D24) + D_1N914(D25) + D_1N914(D26) + D_1N914(D27) + D_1N914(D28) + D_1N914(D29) + D_1N914(D30) + D_1N914(D31) + + Q_2N4403(Q1) + Q_2N4403(Q2) + Q_2N4403(Q3) + Q_2N4093(Q4) + Q_2N4093(Q5) + Q_2N4093(Q6) + Q_2N4403(Q7) + Q_2N4403(Q8) + Q_2N4403(Q9) + Q_2N4403(Q10) + + TL084_DIP(U1) // Op. Amp. + NET_C(U1.4, I_V12) + NET_C(U1.11, I_VM12) + + TL084_DIP(U2) // Op. Amp. + NET_C(U2.4, I_V12) + NET_C(U2.11, I_VM12) + + CD4017_DIP(U3) // Decade Counter/Divider + NET_C(U3.8, GND) + NET_C(U3.16, I_V12) + + NE555_DIP(U4) // Timer + + NE555_DIP(U5) // Timer + + NE555_DIP(U6) // Timer + + TL084_DIP(U7) // Op. Amp. + NET_C(U7.4, I_V12) + NET_C(U7.11, I_VM12) + + MM5837_DIP(U8) // Noise Generator +#if (UNDERCLOCK_NOISE_GEN) + // officially runs at 48-112kHz, but little noticeable difference + // in exchange for a big performance boost + PARAM(U8.FREQ, 12000) +#endif + + CD4011_DIP(U9) // Quad 2-Input NAND Gates + NET_C(U9.7, GND) + NET_C(U9.14, I_V12) + + CD4011_DIP(U10) // Quad 2-Input NAND Gates + NET_C(U10.7, GND) + NET_C(U10.14, I_V12) + + CD4011_DIP(U11) // Quad 2-Input NAND Gates + NET_C(U11.7, GND) + NET_C(U11.14, I_V12) + + CD4024_DIP(U12) // 7-Stage Ripple Binary Counter + NET_C(U12.7, GND) + NET_C(U12.14, I_V12) + + NE555_DIP(U13) // Timer + + CD4024_DIP(U14) // 7-Stage Ripple Binary Counter + NET_C(U14.7, GND) + NET_C(U14.14, I_V12) + + CD4017_DIP(U15) // Decade Counter/Divider + NET_C(U15.8, GND) + NET_C(U15.16, I_V12) + + TL084_DIP(U16) // Op. Amp. + NET_C(U16.4, I_V12) + NET_C(U16.11, I_VM12) + + NE555_DIP(U17) // Timer + + NE555_DIP(U18) // Timer + + CD4024_DIP(U19) // 7-Stage Ripple Binary Counter + NET_C(U19.7, GND) + NET_C(U19.14, I_V12) + + NE555_DIP(U20) // Timer + + CD4011_DIP(U21) // Quad 2-Input NAND Gates + NET_C(U21.7, GND) + NET_C(U21.14, I_V12) + + TL084_DIP(U22) // Op. Amp. + NET_C(U22.4, I_V12) + NET_C(U22.11, I_VM12) + + NE555_DIP(U23) // Timer + + NE555_DIP(U24) // Timer + + CD4011_DIP(U25) // Quad 2-Input NAND Gates + NET_C(U25.7, GND) + NET_C(U25.14, I_V12) + + TTL_7407_DIP(U26) // Hex Buffers with High Votage Open-Collector Outputs + NET_C(U26.7, GND) + NET_C(U26.14, I_V5) + + CD4011_DIP(U27) // Quad 2-Input NAND Gates + NET_C(U27.7, GND) + NET_C(U27.14, I_V12) + + CD4024_DIP(U28) // 7-Stage Ripple Binary Counter + NET_C(U28.7, GND) + NET_C(U28.14, I_V12) + + TTL_7407_DIP(U29) // Hex Buffers with High Votage Open-Collector Outputs + NET_C(U29.7, GND) + NET_C(U29.14, I_V5) + + TTL_7406_DIP(U30) // Hex inverter -- currently using a clone of 7416, no open collector behavior + NET_C(U30.7, GND) + NET_C(U30.14, I_V5) + + TTL_7406_DIP(U31) // Hex inverter -- currently using a clone of 7416, no open collector behavior + NET_C(U31.7, GND) + NET_C(U31.14, I_V5) + +// TTL_74LS374_DIP(U32) // Octal D-Type Transparent Latches And Edge-Triggered Flip-Flop +// NET_C(U32.10, GND) +// NET_C(U32.20, I_V5) + +// TTL_74LS374_DIP(U33) // Octal D-Type Transparent Latches And Edge-Triggered Flip-Flop +// NET_C(U33.10, GND) +// NET_C(U33.20, I_V5) + +// TTL_74LS00_DIP(U34) // Quad 4-Input NAND Gate +// NET_C(U34.7, GND) +// NET_C(U34.14, I_V5) + +// TTL_74LS30_DIP(U35) // 8-Input NAND Gate +// NET_C(U35.7, GND) +// NET_C(U35.14, I_V5) + +// TTL_74LS04_DIP(U36) // Hex Inverting Gates +// NET_C(U36.7, GND) +// NET_C(U36.14, I_V5) + + NE555_DIP(U37) // Timer + + NE555_DIP(U38) // Timer + + // + // Sheet 7, top-left (SONAR) + // + + NET_C(U1.3, GND) + NET_C(U1.2, D1.A, R4.1) + NET_C(U1.1, D1.K, R1.1) + NET_C(R1.2, R2.2, C1.1, C2.1) + NET_C(R2.1, GND) + NET_C(R4.2, R3.2, U1.7, C2.2, R5.2) + NET_C(C1.2, R3.1, U1.6) + NET_C(U1.5, GND) + +#if (SIMPLIFY_SONAR) + // sonar has 4 identical circuits; reduce the net size + // by only emulating one and multiplying it by 4 + NET_C(U1.9, U1.10, U1.12, U1.13, GND) + NET_C(R36.1, R36.2, R37.1, R37.2, R38.1, R38.2, R39.1, R39.2, R40.1, R40.2, GND) + NET_C(C16.1, C16.2, C17.1, C17.2, GND) + NET_C(D4.A, D4.K, GND) + + NET_C(U2.2, U2.3, U2.5, U2.6, GND) + NET_C(R62.1, R62.2, R63.1, R63.2, R64.1, R64.2, R65.1, R65.2, R66.1, R66.2, GND) + NET_C(C24.1, C24.2, C25.1, C25.2, GND) + NET_C(D6.A, D6.K, GND) + + NET_C(U2.9, U2.10, U2.12, U2.13, GND) + NET_C(R91.1, R91.2, R92.1, R92.2, R93.1, R93.2, R94.1, R94.2, R95.1, R95.2, GND) + NET_C(C40.1, C40.2, C41.1, C41.2, GND) + NET_C(D10.A, D10.K, GND) + + NET_C(R5.1, R114.1, Q3.B) +#else + NET_C(U1.12, GND) + NET_C(U1.13, D4.A, R39.1) + NET_C(U1.14, D4.K, R36.1) + NET_C(R36.2, R37.2, C16.1, C17.1) + NET_C(R37.1, GND) + NET_C(R39.2, R38.2, U1.8, C17.2, R40.2) + NET_C(C16.2, R38.1, U1.9) + NET_C(U1.10, GND) + + NET_C(U2.3, GND) + NET_C(U2.2, D6.A, R65.1) + NET_C(U2.14, D6.K, R62.1) + NET_C(R62.2, R63.2, C24.1, C25.1) + NET_C(R63.1, GND) + NET_C(R65.2, R64.2, U2.7, C25.2, R66.2) + NET_C(C24.2, R64.1, U2.6) + NET_C(U2.5, GND) + + NET_C(U2.12, GND) + NET_C(U2.13, D10.A, R94.1) + NET_C(U2.14, D10.K, R91.1) + NET_C(R91.2, R92.2, C40.1, C41.1) + NET_C(R92.1, GND) + NET_C(R94.2, R93.2, U2.8, C41.2, R95.2) + NET_C(C40.2, R93.1, U2.9) + NET_C(U2.10, GND) + + NET_C(R5.1, R40.1, R114.1, Q3.B, R95.1, R66.1) +#endif + + NET_C(R114.2, GND) + NET_C(Q3.E, Q2.E, Q1.C) + NET_C(Q1.B, R108.2, C47.2, R117.2) + NET_C(C47.1, R108.1, I_V12) + NET_C(I_V12, R109.1) + NET_C(R109.2, Q1.E) + NET_C(R117.1, D2.A) + NET_C(D2.K, U11.4, C4.2) + NET_C(C4.1, U11.2, R20.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_SONAR) + NET_C(D_SONAR.A, U11.2) + NET_C(D_SONAR.K, I_V12) +#endif + NET_C(U11.5, U11.6, U11.3) + NET_C(U11.1, R21.1) + NET_C(I_SONAR, R21.1) + NET_C(R21.2, R20.2, I_V12) + + NET_C(Q2.B, GND) + NET_C(Q2.C, R110.2, R111.2, U7.3) + NET_C(R110.1, GND) + NET_C(R111.1, R112.1, I_VM12) + NET_C(Q3.C, U7.2, R112.2, R113.1) + NET_C(R113.2, U7.1) + ALIAS(SONAR, U7.1) + + // + // Sheet 7, middle-left (LASER-1) + // + + NET_C(I_LASER_1, R146.1, U25.9) + NET_C(U25.8, C64.2, R138.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_LASER_1) + NET_C(D_LASER_1.A, U25.8) + NET_C(D_LASER_1.K, I_V12) +#endif + NET_C(R146.2, R138.2, R134.2, R139.2, U24.8, C56.1, I_V12) + NET_C(U25.10, U25.5, U25.6, D11.K, U24.4) + NET_C(C64.1, U25.4, U19.2) + NET_C(D11.A, R107.1, C57.2) + NET_C(C57.1, Q10.C, C65.1, U24.1, GND) + NET_C(R107.2, Q10.B, R134.1) + NET_C(Q10.E, U24.5) +#if (HLE_LASER_1_VCO) + // + // R2 = 0.98461: HP = (0.00000524285*A0) + 0.00000563193 + // R2 = 0.99441: HP = (0.000000368659*A0*A0) + (0.00000116694*A0) + 0.0000155514 + // R2 = 0.99797: HP = (0.000000154808*A0*A0*A0) - (0.00000213809*A0*A0) + (0.0000138122*A0) - 0.00000398935 + // R2 = 0.99877: HP = (-0.0000000527853*A0*A0*A0*A0) + (0.00000128033*A0*A0*A0) - (0.0000107258*A0*A0) + (0.0000413916*A0) - 0.0000352437 + // R2 = 0.99943: HP = (0.0000000343262*A0*A0*A0*A0*A0) - (0.00000096054*A0*A0*A0*A0) + (0.0000105481*A0*A0*A0) - (0.0000561978*A0*A0) + (0.000148191*A0) - 0.000131018 + // + VARCLOCK(LASER1CLK, 1, "max(0.000001,min(0.1,(0.0000000343262*A0*A0*A0*A0*A0) - (0.00000096054*A0*A0*A0*A0) + (0.0000105481*A0*A0*A0) - (0.0000561978*A0*A0) + (0.000148191*A0) - 0.000131018))") + NET_C(LASER1CLK.GND, GND) + NET_C(LASER1CLK.VCC, I_V12) + NET_C(LASER1CLK.A0, Q10.E) + NET_C(LASER1CLK.Q, LASER1ENV.A1) + AFUNC(LASER1ENV, 2, "if(A0>6,A1,0)") + NET_C(LASER1ENV.A0, U25.10) + NET_C(LASER1ENV.Q, U19.1) + NET_C(U24.3, GND) + NET_C(U24.2, U24.6, R140.1, C65.2, GND) +#else + NET_C(U24.3, U19.1) + NET_C(U24.2, U24.6, R140.1, C65.2) +#endif + NET_C(R140.2, U24.7, R139.1) + NET_C(C56.2, GND) + NET_C(U19.12, R132.1) + NET_C(U19.11, R131.1) + NET_C(U19.9, R130.1) + NET_C(U19.6, R105.1) + NET_C(U19.4, R104.1) + NET_C(R104.2, R105.2, R130.2, R131.2, R132.2, C52.1) + ALIAS(LASER_1, C52.2) + + // + // Sheet 7, bottom-left (LASER-2) + // + + NET_C(I_LASER_2, R149.1, U25.12) + NET_C(U25.13, C63.2, R147.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_LASER_2) + NET_C(D_LASER_2.A, U25.13) + NET_C(D_LASER_2.K, I_V12) +#endif + NET_C(R149.2, R147.2, R106.2, R145.2, U20.8, C62.1, I_V12) + NET_C(U25.11, U25.1, U25.2, D12.K, U20.4) + NET_C(C63.1, U25.3, U14.2) + NET_C(D12.A, R133.1, C53.2) + NET_C(C53.1, Q9.C, C68.1, U20.1, GND) + NET_C(R133.2, Q9.B, R106.1) + NET_C(Q9.E, U20.5) +#if (HLE_LASER_2_VCO) + // + // R2 = 0.98942: HP = (0.00000251528*A0) + 0.00000244265 + // R2 = 0.99596: HP = (0.000000160852*A0*A0) + (0.000000694298*A0) + 0.00000690896 + // R2 = 0.99821: HP = (0.000000068284*A0*A0*A0) - (0.000000949931*A0*A0) + (0.00000630369*A0) - 0.00000175548 + // R2 = 0.99896: HP = (-0.0000000291178*A0*A0*A0*A0) + (0.000000689145*A0*A0*A0) - (0.00000568073*A0*A0) + (0.0000214603*A0) - 0.0000188875 + // R2 = 0.99937: HP = (0.0000000153499*A0*A0*A0*A0*A0) - (0.000000433800*A0*A0*A0*A0) + (0.00000480504*A0*A0*A0) - (0.0000257871*A0*A0) + (0.000068467*A0) - 0.0000608574 + // + VARCLOCK(LASER2CLK, 1, "max(0.000001,min(0.1,(0.0000000153499*A0*A0*A0*A0*A0) - (0.000000433800*A0*A0*A0*A0) + (0.00000480504*A0*A0*A0) - (0.0000257871*A0*A0) + (0.000068467*A0) - 0.0000608574))") + NET_C(LASER2CLK.GND, GND) + NET_C(LASER2CLK.VCC, I_V12) + NET_C(LASER2CLK.A0, Q9.E) + NET_C(LASER2CLK.Q, LASER2ENV.A1) + AFUNC(LASER2ENV, 2, "if(A0>6,A1,0)") + NET_C(LASER2ENV.A0, U25.11) + NET_C(LASER2ENV.Q, U14.1) + NET_C(U20.3, GND) + NET_C(U20.2, U20.6, R137.1, C68.2, GND) +#else + NET_C(U20.3, U14.1) + NET_C(U20.2, U20.6, R137.1, C68.2) +#endif + NET_C(R137.2, U20.7, R145.1) + NET_C(C62.2, GND) + NET_C(U14.12, R125.1) + NET_C(U14.11, R126.1) + NET_C(U14.9, R128.1) + NET_C(U14.6, R129.1) + NET_C(U14.4, R127.1) + NET_C(R127.2, R129.2, R128.2, R126.2, R125.2, C51.1) + ALIAS(LASER_2, C51.2) + + // + // Sheet 7, middle-top (REFILL) + // + + NET_C(I_REFILL, U3.15, R59.1) + NET_C(R59.2, I_V12, R17.2) + + // CD4011 oscillator: R18=2.7M, C3=0.1u, freq=2.664 + CLOCK(OSC1, 2.664) + NET_C(OSC1.GND, GND) + NET_C(OSC1.VCC, I_V12) + NET_C(OSC1.Q, U3.14) + NET_C(R18.1, R18.2, C3.1, C3.2, U9.1, U9.2, U9.5, U9.6, GND) + + NET_C(U3.3, R8.1) + NET_C(U3.2, R7.1) + NET_C(U3.4, R9.1) + NET_C(U3.7, R12.1) + NET_C(U3.10, R14.1) + NET_C(U3.1, R6.1) + NET_C(U3.5, R10.1) + NET_C(U3.6, R11.1) + NET_C(U3.9, R15.1) + NET_C(U3.11, R13.1) + NET_C(U3.13, GND) + NET_C(R17.1, R8.2, R7.2, R9.2, R12.2, R14.2, R6.2, R10.2, R11.2, R15.2, R13.2, R16.2) + NET_C(R16.1, Q7.B) + + // CD4011 oscillator: R46=470k, C20=0.1u, freq=15.307 + CLOCK(OSC2, 15.307) + NET_C(OSC2.GND, GND) + NET_C(OSC2.VCC, I_V12) + NET_C(OSC2.Q, U4.4, U9.12, U9.13) + NET_C(U9.11, U5.4) + NET_C(R46.1, R46.2, C20.1, C20.2, U9.8, U9.9, GND) + + NET_C(U5.7, R67.1, R68.2) + NET_C(R68.1, U5.2, U5.6, C26.2) + NET_C(C26.1, GND, U5.1, C18.1, U4.1, Q7.C) + NET_C(U5.5, U4.5, Q7.E) + NET_C(R67.2, U5.8, R41.2, U4.8, I_V12) + NET_C(R41.1, R42.2, U4.7) + NET_C(R42.1, U4.2, U4.6, C18.2) + NET_C(U5.3, R69.2) + NET_C(U4.3, R43.2) + NET_C(R43.1, C49.1, R69.1, I_REFILL_Q) + ALIAS(REFILL, C49.2) + + // + // Sheet 7, middle-bottom (ATTACK, RATE RESET) + // + + NET_C(I_RATE_RESET, U15.15, R96.1) + NET_C(R96.2, I_V12) + NET_C(I_ATTACK_RATE, R148.1, U21.5) + NET_C(R148.2, R166.2, I_V12) + NET_C(U21.6, R166.1, C67.2) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_ATTACK_RATE) + NET_C(D_ATTACK_RATE.A, U21.6) + NET_C(D_ATTACK_RATE.K, I_V12) +#endif + NET_C(C67.1, U21.3) + NET_C(U21.4, U21.1, U21.2, U15.14) + + NET_C(U15.3, D23.A) + NET_C(D23.K, R161.1) + NET_C(U15.2, D22.A) + NET_C(D22.K, R160.1) + NET_C(U15.4, D21.A) + NET_C(D21.K, R159.1) + NET_C(U15.7, D17.A) + NET_C(D17.K, R155.1) + NET_C(U15.10, D15.A) + NET_C(D15.K, R153.1) + NET_C(U15.1, D18.A) + NET_C(D18.K, R156.1) + NET_C(U15.5, D20.A) + NET_C(D20.K, R158.1) + NET_C(U15.6, D19.A) + NET_C(D19.K, R157.1) + NET_C(U15.9, D16.A) + NET_C(D16.K, R154.1) + NET_C(U15.11, D14.A) + NET_C(D14.K, R152.1) + NET_C(U15.13, GND) + NET_C(R161.2, R160.2, R159.2, R155.2, R153.2, R156.2, R158.2, R157.2, R154.2, R152.2, R178.2, U16.6) + + NET_C(I_WARP, R164.1) + NET_C(R164.2, R162.1, R163.2, U16.5) + NET_C(R162.2, I_V12) + NET_C(R163.1, GND) + NET_C(U16.7, R178.1) + ALIAS(V, U16.7) + + // + // Sheet 7, top-right (EXPLOSIONS) + // + + NET_C(I_SHORT_EXPL, R169.1, U27.2) + NET_C(R169.2, R185.2, I_V12) + NET_C(U27.1, R185.1, C81.2) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_SHORT_EXPL) + NET_C(D_SHORT_EXPL.A, U27.1) + NET_C(D_SHORT_EXPL.K, I_V12) +#endif + NET_C(C81.1, U27.11) + NET_C(U27.13, U27.12, U27.3) + NET_C(U27.3, R184.1) + NET_C(R184.2, D31.A) + NET_C(D31.K, D30.A, R182.2, R183.2) + NET_C(R182.1, GND) + NET_C(D30.K, R180.1, R181.1, C80.1, D29.K) + NET_C(C80.2, GND) + NET_C(R180.2, U16.9, R179.1) + NET_C(R179.2, U16.8, R177.1) + NET_C(R181.2, U16.10, Q6.D, D26.K) // D and S swapped on schematics??? + NET_C(Q6.G, C72.2, R151.2, Q5.G) + NET_C(R151.1, GND) + NET_C(C72.1, U8.3) + NET_C(U8.4, I_V12) + NET_C(U8.2, I_VM12) + NET_C(U8.1, GND) + NET_C(Q6.S, D26.A, GND) + NET_C(D29.A, D24.K, C69.1) + NET_C(C69.2, GND) + NET_C(R183.1, R186.2, U27.4, U27.8, U27.9, D28.K) + NET_C(R186.1, C75.1) + NET_C(C75.2, U21.8, U21.9, R168.2) + NET_C(R168.1, U21.11) + NET_C(I_LONG_EXPL, R171.1, U27.6) + NET_C(R171.2, R170.2, I_V12) + NET_C(R170.1, U27.5, C82.2) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_LONG_EXPL) + NET_C(D_LONG_EXPL.A, U27.5) + NET_C(D_LONG_EXPL.K, I_V12) +#endif + NET_C(C82.1, U27.10) + NET_C(U21.12, U21.13, C74.1, R165.2) + NET_C(U21.10, C74.2, R167.1) + NET_C(R165.1, GND) + NET_C(R167.2, D24.A) + NET_C(R177.2, R176.1, C78.1) + NET_C(C78.2, U16.2, U16.1, C61.1) + NET_C(R176.2, U16.3, C77.2, C76.2) + ALIAS(EXPLOSIONS, C61.2) + NET_C(C77.1, GND) + NET_C(C76.1, D27.K, D28.A) + NET_C(D27.A, GND) + + // + // Sheet 7, middle-right (ASTROIDS) + // + + NET_C(I_ASTROIDS, R97.1, R174.1, R175.1) + NET_C(R97.2, I_V12) + NET_C(R174.2, U16.13, R173.1) + NET_C(R175.2, U16.12, Q5.D, D25.K) // D and S swapped on schematics??? + NET_C(D25.A, Q5.S, GND) + NET_C(R173.2, U16.14, R172.1) + NET_C(R172.2, R150.1, C70.1) + NET_C(C70.2, U7.9, U7.8, R136.1) + NET_C(R150.2, C71.2, U7.10) + NET_C(C71.1, GND) + NET_C(R136.2, C59.2, C60.1) + NET_C(C59.1, GND) + ALIAS(ASTROIDS, C60.2) + + // + // Sheet 7, bottom-right (mixer) + // + + ALIAS(INVADER_1, R98.1) + ALIAS(INVADER_2, R99.1) + ALIAS(INVADER_3, R100.1) + ALIAS(INVADER_4, R101.1) + NET_C(R98.2, R99.2, R100.2, R101.2, C55.1) + NET_C(ASTROIDS, R121.1) + NET_C(EXPLOSIONS, R122.1) + ALIAS(BONUS, R118.1) + NET_C(REFILL, R119.1) + NET_C(LASER_1, R102.1) + NET_C(LASER_2, R103.1) + NET_C(SONAR, R120.1) + NET_C(C55.2, R121.2, R122.2, R118.2, R119.2, R102.2, R103.2, R120.2) + AFUNC(MUTEFUNC, 2, "if(A0>2.5,0,A1)") + NET_C(MUTEFUNC.A0, I_MUTE) + NET_C(MUTEFUNC.A1, R121.2) + ALIAS(OUTPUT, MUTEFUNC.Q) +// ALIAS(OUTPUT, C55.2) + + // + // Sheet 8, middle-top (INVADER_1) + // + + NET_C(U22.10, GND) + NET_C(U22.9, D5.A, R29.1) + NET_C(R29.2, R55.2, U22.14, C21.2, R72.1) + NET_C(D5.K, U22.8, R58.1) + NET_C(R58.2, C22.1, R57.2, R56.2, C21.1) + NET_C(W, U30.5) + NET_C(U30.6, R57.1) + NET_C(R56.1, GND) + NET_C(U22.13, C22.2, R55.1) + NET_C(U22.12, GND) + + NET_C(R85.1, U23.7, R86.2) + NET_C(R85.2, U23.8, R83.2, R84.2, R73.2, U18.8, I_V12) + NET_C(R86.1, U23.2, U23.6, C38.2) + NET_C(C38.1, U23.1, C37.1, C28.1, U18.1, GND) + NET_C(I_INVADER_1, U23.4, R73.1, U18.4) + NET_C(C28.2, U18.5) + NET_C(U23.3, U18.2) + NET_C(U23.5, R87.2) + NET_C(R87.1, V) + NET_C(R83.1, D9.A) + NET_C(D9.K, Q8.B, R72.2) + NET_C(Q8.E, R84.1) + NET_C(Q8.C, C37.2, U18.6, U18.7) + NET_C(U18.3, INVADER_1) + + // + // Sheet 8, middle (INVADER_2) + // + + NET_C(R81.2, R70.2, U13.8, C27.1, I_V12) + NET_C(C27.2, GND) + NET_C(R81.1, R82.2, U13.7) + NET_C(R82.1, U13.2, U13.6, C36.2) + NET_C(C36.1, U13.1, GND) + NET_C(U13.5, R71.2) + NET_C(R71.1, V) + NET_C(I_INVADER_2, U13.4, R70.1) + NET_C(U13.3, U12.1) + // CD4011 oscillator: R22=470k, C5=0.1u, freq=15.3Hz + CLOCK(OSC3, 15.3) + NET_C(OSC3.GND, GND) + NET_C(OSC3.VCC, I_V12) + NET_C(OSC3.Q, U12.2) + NET_C(R22.1, R22.2, C5.1, C5.2, U11.8, U11.9, U11.12, U11.13, GND) + NET_C(U12.12, R48.1) + NET_C(U12.11, R49.1) + NET_C(U12.9, R50.1) + NET_C(U12.6, R47.1) + NET_C(R47.2, R50.2, R49.2, R48.2) + NET_C(R48.2, INVADER_2) + + // + // Sheet 8, middle-bottom (INVADER_4) + // + + NET_C(R89.2, U37.4, U37.8, C15.1, R60.2, R88.2, U38.8, I_V12) + NET_C(R89.1, U37.7, R90.2) + NET_C(R90.1, U37.2, U37.6, C39.2) + NET_C(C39.1, U37.1, C23.1, U38.1, GND) + NET_C(U37.5, R35.1) + NET_C(R35.2, V, R34.1) + NET_C(C15.2, GND) + NET_C(U37.3, U28.1) + NET_C(U28.2, U28.5) + NET_C(U28.12, R31.1) + NET_C(U28.11, R32.1) + NET_C(U28.9, R33.1) + NET_C(U28.6, R30.1) + NET_C(R31.2, R32.2, R33.2, R30.2, R34.2, U38.5) + NET_C(U38.2, U38.6, C23.2, R61.1) + NET_C(R61.2, U38.7, R60.1) + NET_C(U38.4, R88.1, I_INVADER_4) + NET_C(INVADER_4, U38.3) + + // + // Sheet 8, middle-bottom (BONUS) + // + + NET_C(I_BONUS, R45.1, U10.6) + NET_C(C34.1, R77.2, I_V12) + NET_C(R45.2, R44.2, R74.2, U6.4, U6.8, C33.1, I_V12) + + NET_C(R44.1, U10.5, C19.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_BONUS) + NET_C(D_BONUS.A, U10.5) + NET_C(D_BONUS.K, I_V12) +#endif + NET_C(U10.4, U10.1, U10.2) + NET_C(C19.2, U10.3, D7.K) + NET_C(D7.A, R78.1) + NET_C(R78.2, R77.1, C34.2, R76.1) + // CD4011 oscillator: R80=1M, C35=0.1, freq=7.19Hz + CLOCK(OSC4, 7.19) + NET_C(OSC4.GND, GND) + NET_C(OSC4.VCC, I_V12) + NET_C(OSC4.Q, R79.1) + NET_C(R80.1, R80.2, C35.1, C35.2, U10.8, U10.9, U10.12, U10.13, GND) + NET_C(R79.2, R74.1, R75.2, U6.7) + NET_C(R75.1, U6.2, U6.6, C31.2) + NET_C(C31.1, C32.1, U6.1, GND) + NET_C(C32.2, U6.5) + NET_C(R76.2, D8.K, C50.1) + NET_C(U6.3, D8.A) + NET_C(C33.2, GND) + NET_C(BONUS, C50.2) + + // + // Sheet 8, top-right (INVADER_3) + // + + NET_C(U22.5, GND) + NET_C(U22.6, D3.A, R25.1) + NET_C(R25.2, C12.2, R24.2, U22.1, C8.2) + NET_C(D3.K, U22.7, R26.1) + NET_C(W, U30.9) + NET_C(U30.8, R28.1) + NET_C(R28.2, R26.2, C9.1, R27.2, C8.1) + NET_C(R27.1, GND) + NET_C(C9.2, U22.2, R24.1) + NET_C(U22.3, GND) + NET_C(C12.1, R54.1) + NET_C(R54.2, R53.1, U17.5) + NET_C(R53.2, V) + NET_C(U17.1, C7.1, GND) + NET_C(C7.2, U17.2, U17.6, R52.1) + NET_C(R52.2, U17.7, R51.1) + NET_C(R51.2, R23.2, U17.8, C6.1, I_V12) + NET_C(R23.1, U17.4, I_INVADER_3) + NET_C(C6.2, GND) + NET_C(INVADER_3, U17.3) + + // + // Unconnected inputs + // + + NET_C(GND, U7.5, U7.6, U7.12, U7.13) + NET_C(GND, U26.13) + NET_C(GND, U29.1, U29.3, U29.13) + NET_C(GND, U30.1, U30.11) + + // + // Unconnected outputs + // + +#if (ENABLE_FRONTIERS) +#define RXX 192 + OPTIMIZE_FRONTIER(INVADER_1, RES_M(1), RXX) + OPTIMIZE_FRONTIER(INVADER_2, RES_M(1), RXX) + OPTIMIZE_FRONTIER(INVADER_3, RES_M(1), RXX) + OPTIMIZE_FRONTIER(INVADER_4, RES_M(1), RXX) + + OPTIMIZE_FRONTIER(C50.1, RES_M(10), RXX) + OPTIMIZE_FRONTIER(C60.1, RES_M(10), RXX) // this is a big one + OPTIMIZE_FRONTIER(C61.1, RES_M(10), RXX) +#endif + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_astrob.h mame-0.224+dfsg.1/src/mame/audio/nl_astrob.h --- mame-0.223+dfsg.1/src/mame/audio/nl_astrob.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_astrob.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_NL_ASTROB_H +#define MAME_AUDIO_NL_ASTROB_H + +#pragma once + +NETLIST_EXTERNAL(astrob) + +#endif // MAME_AUDIO_NL_ASTROB_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_barrier.cpp mame-0.224+dfsg.1/src/mame/audio/nl_barrier.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_barrier.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_barrier.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -21,7 +21,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_barrier.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_boxingb.cpp mame-0.224+dfsg.1/src/mame/audio/nl_boxingb.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_boxingb.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_boxingb.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,8 +13,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_boxingb.h" - // // Hacks/workarounds diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_carpolo.cpp mame-0.224+dfsg.1/src/mame/audio/nl_carpolo.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_carpolo.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_carpolo.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,157 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +// +// Netlist for Car Polo audio +// +// Derived from the schematics in the Car Polo manual. +// +// Known problems/issues: +// +// * Uses HLE noise due to abusing a 2N3904 in breakdown as a noise source. +// * Very slow +// + +#include "netlist/devices/net_lib.h" + +#define HLE_NOISE (1) + +// +// Player Crash netlist +// + +static NETLIST_START(PLAYER_CRASH) + ALIAS(V15, R200.1) + ALIAS(VCC, 4C.VCC) + ALIAS(GND, R210.2) + ALIAS(CRASH_IN, 4C.A) + ALIAS(AUDIO_OUT, R217.1) + ALIAS(NOISE_IN, CR10.K) + + TTL_7407_GATE(4C) + NET_C(4C.GND, GND) + + RES(R200, RES_K(1.2)) + RES(R202, RES_K(150)) + RES(R203, RES_K(550)) + RES(R204, RES_K(100)) + RES(R205, RES_K(270)) + RES(R210, RES_K(33)) + RES(R212, RES_K(1)) + RES(R213, RES_K(10)) + RES(R216, RES_K(47)) + RES(R217, RES_K(5)) + + CAP(C89, CAP_U(0.1)) + CAP(C90, CAP_U(0.01)) + CAP(C91, CAP_U(0.01)) + CAP(C92, CAP_U(6.8)) + CAP(C93, CAP_U(2.2)) + + DIODE(CR10, "1N4454") + DIODE(CR11, "1N4454") + DIODE(CR14, "1N4454") + + QBJT_EB(Q6, "2N3904") + + NET_C(R200.1, R212.1, R216.1) + NET_C(R200.2, 4C.Y, CR11.A) + NET_C(CR11.K, C93.1, R204.1, R205.1) + NET_C(C93.2, R205.2, Q6.E, R217.1, R210.2, C92.2) + NET_C(R204.2, R203.1, R202.1, CR10.A) + NET_C(R202.2, C89.1) + NET_C(C89.2, C90.1, R203.2, Q6.B) + NET_C(C90.2, R210.1, C91.1) + NET_C(C91.2, Q6.C, CR14.K, R213.1) + NET_C(R213.2, R212.2, C92.1) + NET_C(R217.2, CR14.A, R216.2) +NETLIST_END() + +// +// Main netlist +// + +NETLIST_START(carpolo) + NET_MODEL("1N4454 D(Is=168.1e-21 Rs=.1 N=1 Cjo=2p M=.333 tt=5.771n Iave=400m Vpk=35 Bv=75 Ibv=100u mfg=OnSemi type=silicon)") + NET_MODEL("2N3904 NPN(IS=1E-14 VAF=100 Bf=300 IKF=0.4 XTB=1.5 BR=4 CJC=4E-12 CJE=8E-12 RB=20 RC=0.1 RE=0.1 TR=250E-9 TF=350E-12 ITF=1 VTF=2 XTF=3 Vceo=40 Icrating=200m mfg=Philips)") + NET_MODEL("LM748 OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=800k SLEW=0.7M RI=800k RO=60 DAB=0.001)") + + SOLVER(Solver, 48000) + ANALOG_INPUT(V15, 15) + ANALOG_INPUT(V7_5, 7.5) + ANALOG_INPUT(V5, 5) + ALIAS(VCC, V5) + + TTL_INPUT(PL1_CRASH, 1) // active high + TTL_INPUT(PL2_CRASH, 0) // active high + TTL_INPUT(PL3_CRASH, 0) // active high + TTL_INPUT(PL4_CRASH, 0) // active high + + LOCAL_SOURCE(PLAYER_CRASH) + + NET_C(GND, PL1_CRASH.GND, PL2_CRASH.GND, PL3_CRASH.GND, PL4_CRASH.GND) + NET_C(VCC, PL1_CRASH.VCC, PL2_CRASH.VCC, PL3_CRASH.VCC, PL4_CRASH.VCC) + + // HLE Noise Gen + CLOCK(NOISE_CLOCK, 10000) + NET_C(NOISE_CLOCK.GND, GND) + NET_C(NOISE_CLOCK.VCC, VCC) + + SYS_NOISE_MT_N(NOISE, 0.1) + NET_C(NOISE.I, NOISE_CLOCK.Q) + + // White Noise +#if HLE_NOISE + NET_C(NOISE.1, V7_5) + ALIAS(WHITE_NOISE, NOISE.2) +#else + RES(R240, RES_K(1.2)) + RES(R241, RES_M(1)) + RES(R242, 100) + RES(R243, RES_M(1)) + RES(R244, RES_K(47)) + RES(R245, RES_K(10)) + RES(R246, RES_K(1)) + RES(R247, RES_K(10)) + RES(R248, RES_M(1)) + + CAP(C99, CAP_U(2.2)) + //CAP(C100, CAP_P(100)) + CAP(C101, CAP_U(6.8)) + CAP(C102, CAP_U(2.2)) + CAP(C103, CAP_U(6.8)) + + //QBJT_EB(Q8, "2N3904") // Used as a reverse-biased noise source. + QBJT_EB(Q9, "2N3904") + + OPAMP(1A, "LM748") + NET_C(1A.GND, GND) + NET_C(1A.VCC, C101.1, R241.1, R240.1) + + DIODE(CR22, "1N4454") + + NET_C(NOISE.1, R241.2, 1A.PLUS) + NET_C(NOISE.2, C99.1, GND) + + // White Noise + NET_C(V15, R240.2, R246.1) + NET_C(C99.2, R242.1) + NET_C(R242.2, R243.1, CR22.K, 1A.MINUS) + NET_C(CR22.A, R244.1) + NET_C(R243.2, R244.2, 1A.OUT, R245.1) + NET_C(C101.2, GND) + NET_C(R245.2, C102.1) + NET_C(C102.2, R248.1, Q9.B) + NET_C(Q9.E, GND) + NET_C(Q9.C, R248.2, R247.1) + NET_C(R247.2, R246.2, C103.1) + NET_C(C103.2, GND) + ALIAS(WHITE_NOISE, Q9.C) +#endif + + SUBMODEL(PLAYER_CRASH, PLAYER_1_CRASH) + NET_C(PLAYER_1_CRASH.NOISE_IN, WHITE_NOISE) + NET_C(PLAYER_1_CRASH.CRASH_IN, PL1_CRASH.Q) + NET_C(PLAYER_1_CRASH.V15, V15) + NET_C(PLAYER_1_CRASH.VCC, VCC) + NET_C(PLAYER_1_CRASH.GND, GND) +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_carpolo.h mame-0.224+dfsg.1/src/mame/audio/nl_carpolo.h --- mame-0.223+dfsg.1/src/mame/audio/nl_carpolo.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_carpolo.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +#ifndef MAME_AUDIO_NL_CARPOLO_H +#define MAME_AUDIO_NL_CARPOLO_H + +#pragma once + +NETLIST_EXTERNAL(carpolo) + +#endif // MAME_AUDIO_NL_CARPOLO_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_cinemat_common.h mame-0.224+dfsg.1/src/mame/audio/nl_cinemat_common.h --- mame-0.223+dfsg.1/src/mame/audio/nl_cinemat_common.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_cinemat_common.h 2020-08-26 08:57:19.000000000 +0000 @@ -71,7 +71,7 @@ // models copied from https://www.diodes.com/assets/Spice-Models/Discrete-Prodcut-Groups/Zener-Diodes.txt #define D_1N914(name) DIODE(name, "1N914") #define D_1N914B(name) DIODE(name, "1N914") -#define D_1N5236B(name) DIODE(name, "D(BV=7.5 IS=27.5p RS=33.8 N=1.10 CJO=58.2p VJ=0.750 M=0.330 TT=50.1n)") +#define D_1N5236B(name) ZDIODE(name, "D(BV=7.5 IS=27.5p RS=33.8 N=1.10 CJO=58.2p VJ=0.750 M=0.330 TT=50.1n)") #define D_1N5240(name) ZDIODE(name, "D(BV=10 IS=14.4p RS=32.0 N=1.10 CJO=24.1p VJ=0.750 M=0.330 TT=50.1n)") #define D_1N5240B(name) ZDIODE(name, "D(BV=10 IS=14.4p RS=32.0 N=1.10 CJO=24.1p VJ=0.750 M=0.330 TT=50.1n)") diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_destroyr.cpp mame-0.224+dfsg.1/src/mame/audio/nl_destroyr.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_destroyr.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_destroyr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,316 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +// +// Netlist for Atari's Destroyer +// +// Derived from the schematics in the manual. +// +// Known problems/issues: +// * Sonar sound effect appears to be more noisy than a real cabinet. Unsure, as yet, why. +// + +#include "netlist/devices/net_lib.h" + +static NETLIST_START(LM324_VM5V12_DIP) + OPAMP(A, "LM324_M5V12V") + OPAMP(B, "LM324_M5V12V") + OPAMP(C, "LM324_M5V12V") + OPAMP(D, "LM324_M5V12V") + + DIPPINS( /* +--------------+ */ + A.OUT, /* |1 ++ 14| */ D.OUT, + A.MINUS, /* |2 13| */ D.MINUS, + A.PLUS, /* |3 12| */ D.PLUS, + A.VCC, /* |4 11| */ A.GND, + B.PLUS, /* |5 10| */ C.PLUS, + B.MINUS, /* |6 9| */ C.MINUS, + B.OUT, /* |7 8| */ C.OUT + /* +--------------+ */ + ) + + NET_C(A.GND, B.GND, C.GND, D.GND) + NET_C(A.VCC, B.VCC, C.VCC, D.VCC) +NETLIST_END() + +static NETLIST_START(NE556_DIP) + NE555(A) + NE555(B) + + NET_C(A.GND, B.GND) + NET_C(A.VCC, B.VCC) + + DIPPINS( /* +--------------+ */ + A.DISCH, /* 1DISCH |1 ++ 14| VCC */ A.VCC, + A.THRESH, /* 1THRES |2 13| 2DISCH */ B.DISCH, + A.CONT, /* 1CONT |3 12| 2THRES */ B.THRESH, + A.RESET, /* 1RESET |4 NE556 11| 2CONT */ B.CONT, + A.OUT, /* 1OUT |5 10| 2RESET */ B.RESET, + A.TRIG, /* 1TRIG |6 9| 2OUT */ B.OUT, + A.GND, /* GND |7 8| 2TRIG */ B.TRIG + /* +--------------+ */ + ) +NETLIST_END() + +NETLIST_START(destroyr) + + SOLVER(Solver, 48000) + ANALOG_INPUT(V5, 5) + ANALOG_INPUT(VM5, -5) + ANALOG_INPUT(V12, 12) + ALIAS(VCC, V5) + CLOCK(H256, 15750) + CLOCK(V8, 984.375) + NET_C(VCC, H256.VCC, V8.VCC) + NET_C(GND, H256.GND, V8.GND) + + NET_MODEL("LM324_M5V12V OPAMP(TYPE=3 VLH=1.1 VLL=0.11 FPF=5 UGF=50k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") + + LOCAL_SOURCE(NE556_DIP) + LOCAL_SOURCE(LM324_VM5V12_DIP) + + TTL_INPUT(MOTOR_SPEED, 0) + TTL_INPUT(NOISE, 0) + TTL_INPUT(ATTRACT, 0) + TTL_INPUT(SONGATE, 0) + TTL_INPUT(LAUNCH, 0) + TTL_INPUT(EXPLO, 0) + TTL_INPUT(SONLAT, 0) + TTL_INPUT(HE, 0) + TTL_INPUT(LE, 0) + NET_C(VCC, MOTOR_SPEED.VCC, NOISE.VCC, ATTRACT.VCC, SONGATE.VCC, LAUNCH.VCC, EXPLO.VCC, SONLAT.VCC, HE.VCC, LE.VCC) + NET_C(GND, MOTOR_SPEED.GND, NOISE.GND, ATTRACT.GND, SONGATE.GND, LAUNCH.GND, EXPLO.GND, SONLAT.GND, HE.GND, LE.GND) + + RES(R39, 220) + RES(R40, 220) + RES(R41, RES_K(2.2)) + RES(R42, RES_K(39)) + RES(R43, RES_K(150)) + RES(R44, 820) + RES(R54, RES_K(10)) + RES(R59, RES_K(470)) + RES(R60, RES_K(470)) + RES(R61, RES_K(10)) + RES(R62, RES_K(10)) + RES(R63, RES_M(10)) + RES(R64, RES_K(100)) + RES(R65, RES_K(100)) + RES(R66, RES_K(100)) + RES(R67, RES_K(10)) + RES(R68, RES_K(10)) + RES(R69, RES_K(10)) + RES(R70, RES_K(3.3)) + RES(R71, RES_K(15)) + RES(R72, RES_K(33)) + RES(R73, RES_K(10)) + RES(R74, RES_K(100)) + RES(R75, RES_K(33)) + RES(R76, RES_K(22)) + RES(R77, RES_K(47)) + RES(R78, RES_K(5.6)) + RES(R79, RES_K(33)) + RES(R80, RES_K(3.9)) + RES(R81, RES_K(3.9)) + RES(R82, RES_K(2.2)) + RES(R83, RES_K(330)) + RES(R86, 680) + RES(R88, RES_K(2.7)) + RES(R89, RES_K(10)) + RES(R92, RES_K(2.2)) + RES(R93, RES_K(2.2)) + RES(R94, RES_K(68)) + POT(R95, RES_K(50)) + + CAP(C38, CAP_U(10)) + CAP(C39, CAP_U(0.1)) + CAP(C40, CAP_U(0.1)) + CAP(C48, CAP_U(10)) + CAP(C49, CAP_P(330)) + CAP(C51, CAP_P(330)) + CAP(C52, CAP_U(0.1)) + CAP(C53, CAP_U(10)) + CAP(C56, CAP_U(0.22)) + CAP(C57, CAP_U(0.22)) + CAP(C58, CAP_U(0.22)) + CAP(C59, CAP_U(0.1)) + CAP(C61, CAP_U(0.22)) + CAP(C62, CAP_U(0.022)) + CAP(C63, CAP_U(22)) + CAP(C64, CAP_U(0.022)) + CAP(C66, CAP_U(10)) + CAP(C71, CAP_U(0.1)) + CAP(C72, CAP_U(0.1)) + CAP(C74, CAP_U(0.22)) + //CAP(C81, CAP_U(0.1)) + CAP(C85, CAP_U(22)) + + DIODE(CR2, "1N914") + + QBJT_EB(Q4, "2N3643") + QBJT_EB(Q6, "2N3643") + + TTL_7486_DIP(IC_L7) + TTL_74164_DIP(IC_L9) + TTL_74164_DIP(IC_M9) + TTL_7402_DIP(IC_K8) // Should be a 7428 positive-NOR gate + TTL_7432_DIP(IC_M8) + TTL_7400_DIP(IC_A9) + TTL_7404_DIP(IC_K9) + NET_C(VCC, IC_L9.14, IC_M9.14, IC_L7.14, IC_K8.14, IC_M8.14, IC_K9.14, IC_A9.14) + NET_C(GND, IC_L9.7, IC_M9.7, IC_L7.7, IC_K8.7, IC_M8.7, IC_K9.7, IC_A9.7) + + SUBMODEL(NE556_DIP, IC_H8) + NET_C(VCC, IC_H8.14) + NET_C(GND, IC_H8.7) + + MC3340_DIP(IC_D10) + NET_C(VCC, IC_D10.8) + NET_C(VM5, IC_D10.3) + + CD4066_DIP(IC_E9) + NET_C(VCC, IC_E9.14) + NET_C(GND, IC_E9.7) + + SUBMODEL(LM324_VM5V12_DIP, IC_C9) + SUBMODEL(LM324_VM5V12_DIP, IC_H9) + NET_C(V12, IC_C9.4, IC_H9.4) + NET_C(VM5, IC_C9.11, IC_H9.11) + + // Tie off unused gates and pins + NET_C(GND, IC_L7.1, IC_L7.2) + NET_C(GND, IC_L7.4, IC_L7.5) + NET_C(GND, IC_L7.9, IC_L7.10) + NET_C(GND, IC_M8.4, IC_M8.5) + NET_C(GND, IC_M8.9, IC_M8.10) + NET_C(GND, IC_M8.12, IC_M8.13) + NET_C(GND, IC_A9.1, IC_A9.2) + NET_C(GND, IC_A9.9, IC_A9.10) + NET_C(GND, IC_A9.12, IC_A9.13) + NET_C(GND, IC_K9.1, IC_K9.5, IC_K9.9, IC_K9.11, IC_K9.13) + NET_C(GND, IC_H8.5, IC_H8.9) + NET_C(VCC, IC_H8.4, IC_H8.10) + + // Noise Clock + NET_C(H256.Q, IC_K8.2) + NET_C(EXPLO.Q, IC_K8.3) + NET_C(V8.Q, IC_K8.5) + NET_C(SONLAT.Q, IC_K8.6) + NET_C(IC_K8.1, IC_M8.1) + NET_C(IC_K8.4, IC_M8.2) + ALIAS(NOISECLK, IC_M8.3) + + // Noise + NET_C(NOISE.Q, IC_L9.9, IC_M9.9) + NET_C(NOISECLK, IC_L9.8, IC_M9.8) + NET_C(IC_M9.12, IC_K9.3) + NET_C(IC_K9.4, IC_L7.13) + NET_C(IC_M9.11, IC_L7.12) + ALIAS(RNOISE, IC_M9.11) + NET_C(IC_L7.11, IC_L9.1, IC_L9.2) + NET_C(IC_L9.13, IC_M9.1, IC_M9.2) + + // Explosions + NET_C(SONLAT.Q, IC_K8.9) + NET_C(EXPLO.Q, IC_K8.8) + NET_C(IC_K8.10, CR2.A, R39.2, IC_K8.11) + NET_C(RNOISE, IC_K8.12) + NET_C(V5, R39.1, R68.1) + NET_C(IC_K8.13, IC_E9.5) + NET_C(CR2.K, C38.1, IC_E9.4) + NET_C(GND, C38.2, R70.2, R61.2, C48.2, R73.2, R86.2, C53.2, R67.2, Q6.E, Q4.E, C85.2) + NET_C(IC_E9.3, R74.1, IC_E9.11, R71.1) + NET_C(LE.Q, IC_E9.13) + NET_C(HE.Q, IC_E9.12) + NET_C(R71.2, C52.1, R70.1) + NET_C(C52.2, R66.1) + NET_C(R66.2, IC_H9.10, R63.1) + NET_C(IC_H9.9, R64.1, R65.1) + NET_C(IC_H9.8, R64.2, R60.1) + NET_C(R60.2, C49.1, IC_H9.6) + NET_C(C49.2, IC_H9.7, R59.1, R63.2, R72.1) + NET_C(IC_H9.5, IC_H9.3, R62.2, R61.1, C48.1) + NET_C(V12, R62.1) + NET_C(R59.2, C51.1, IC_H9.2) + NET_C(IC_H9.1, C51.2, R65.2) + NET_C(SONGATE.Q, IC_E9.6) + NET_C(R72.2, R73.1, IC_E9.8, R82.1) + NET_C(R74.2, R86.1, C71.1, C72.1) + NET_C(R68.2, R67.1, C53.1, IC_H9.12, IC_C9.3) + NET_C(C71.2, R83.1, IC_H9.13) + NET_C(C72.2, R83.2, IC_H9.14, R69.1) + NET_C(R69.2, IC_E9.1) + NET_C(IC_E9.2, R79.1, IC_C9.2) + NET_C(IC_C9.1, R79.2, C61.1) + NET_C(C61.2, R78.1) + NET_C(IC_E9.10, C57.1) + NET_C(C57.2, R77.1) + NET_C(IC_E9.9, C56.1) + NET_C(C56.2, R76.1) + + // Launch + NET_C(RNOISE, IC_A9.4) + NET_C(LAUNCH.Q, IC_A9.5) + NET_C(IC_A9.6, R81.1) + NET_C(R81.2, C64.1) + NET_C(C64.2, IC_C9.9, R80.1, C62.1) + NET_C(C62.2, R80.2, IC_C9.8, C58.1) + NET_C(GND, IC_C9.10) + NET_C(C58.2, R75.1) + + // Motor + NET_C(MOTOR_SPEED.Q, R44.1) + NET_C(R44.2, R40.2, IC_H8.3, IC_H8.11, C63.1) + NET_C(V5, R40.1, R41.1, R54.1, R89.1) + NET_C(R41.2, R42.1, IC_H8.1) + NET_C(R42.2, IC_H8.2, IC_H8.6, C39.1, IC_C9.5) + NET_C(R54.2, R43.1, IC_H8.13) + NET_C(R43.2, IC_H8.8, IC_H8.12, C40.1, IC_C9.12) + NET_C(C63.2, IC_C9.13, IC_C9.14, C66.2) + NET_C(GND, C39.2, C40.2) + NET_C(IC_C9.6, IC_C9.7, C59.2) + NET_C(C59.1, IC_D10.1) + NET_C(C66.1, R88.2, R89.2, IC_D10.2) + NET_C(VM5, R88.1) + NET_C(IC_D10.6, Q4.C) + NET_C(IC_D10.7, C74.1) + NET_C(C74.2, R94.1) + + // Attract Mute + NET_C(ATTRACT.Q, R92.1, R93.1) + NET_C(R92.2, C85.1, Q4.B) + NET_C(R93.2, Q6.B) + NET_C(Q6.C, R82.2) + + // Mixer + NET_C(GND, R95.1) + NET_C(R94.2, R75.2, R76.2, R77.2, R78.2, R95.3) + ALIAS(OUTPUT, R95.2) + + // Unconnected pins + HINT(IC_A9.3, NC) + HINT(IC_A9.8, NC) + HINT(IC_A9.11, NC) + HINT(IC_K9.2, NC) + HINT(IC_K9.6, NC) + HINT(IC_K9.8, NC) + HINT(IC_K9.10, NC) + HINT(IC_K9.12, NC) + HINT(IC_L9.3, NC) + HINT(IC_L9.4, NC) + HINT(IC_L9.5, NC) + HINT(IC_L9.6, NC) + HINT(IC_L9.10, NC) + HINT(IC_L9.11, NC) + HINT(IC_L9.12, NC) + HINT(IC_M9.3, NC) + HINT(IC_M9.4, NC) + HINT(IC_M9.5, NC) + HINT(IC_M9.6, NC) + HINT(IC_M9.10, NC) + HINT(IC_M9.13, NC) + HINT(IC_L7.3, NC) + HINT(IC_L7.6, NC) + HINT(IC_L7.8, NC) + HINT(IC_M8.6, NC) + HINT(IC_M8.8, NC) + HINT(IC_M8.11, NC) +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_destroyr.h mame-0.224+dfsg.1/src/mame/audio/nl_destroyr.h --- mame-0.223+dfsg.1/src/mame/audio/nl_destroyr.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_destroyr.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +#ifndef MAME_AUDIO_NL_DESTROYR_H +#define MAME_AUDIO_NL_DESTROYR_H + +#pragma once + +NETLIST_EXTERNAL(destroyr) + +#endif // MAME_AUDIO_NL_DESTROYR_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_elim.cpp mame-0.224+dfsg.1/src/mame/audio/nl_elim.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_elim.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_elim.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,1225 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles + +//NL_CONTAINS elim zektor + +// +// Netlist for Eliminator/Zektor +// +// Derived from the schematics in the Eliminator and Zektor manuals. +// +// Known problems/issues: +// +// * The noise signal (WBN) is connected into the TORPEDO_2 sound +// but seems to make no audible difference, either in the +// simulation or in recordings. Disabling it gives a nice speedup. +// +// * Torpedo sounds don't retrigger until they're complete. This means +// you can fire several times before the next firing sound triggers. +// In recordings of games this doesn't appear to be the case. +// + +#include "netlist/devices/net_lib.h" +#include "nl_elim.h" + + +// +// Optimizations +// + +#define UNDERCLOCK_NOISE_GEN (1) +#define HLE_BACKGROUND_VCO (1) +#define HLE_TORPEDO1_VCO (1) +#define HLE_TORPEDO2_VCO (1) +#define HLE_SKITTER_VCO (1) +#define ENABLE_FRONTIERS (1) + + + +// +// Hacks +// + +#define ADD_CLIPPING_DIODES (1) +#define DISABLE_TORPEDO2_NOISE (1) + + + +// +// Initial compilation includes this section. +// + +#ifndef SOUND_VARIANT + + +#define D_1N914(name) DIODE(name, "1N914") +#define D_1N4002(name) DIODE(name, "D(IS=65.4p RS=42.2m BV=100 IBV=5.00u CJO=14.8p M=0.333 N=1.36 TT=2.88u)") + +// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4403 +#define Q_2N4403(name) QBJT_EB(name, "PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=216.2 Ne=1.829 Ise=58.72f Ikf=1.079 Xtb=1.5 Br=3.578 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=111.6n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)") + +#define LM555_DIP NE555_DIP +#define LM566_DIP NE566_DIP + +#define TTL_74LS00_DIP TTL_7400_DIP + +// +// DIP mappings use the submodels below for CA3080 +// +#define CA3080_DIP(name) SUBMODEL(_CA3080_FAST_DIP, name) +static NETLIST_START(_CA3080_FAST_DIP) + ALIAS(2, F.A0) // - + ALIAS(3, F.A1) // + + ALIAS(4, F.A2) // V- + ALIAS(5, RIABC.1) // IB + ALIAS(6, VO.OP) // FIXME + ALIAS(7, F.A4) // V+ + + RES(RI, 26000) + NET_C(RI.1, F.A0) + NET_C(RI.2, F.A1) + // Delivers I0 + AFUNC(F, 5, "max(-0.5e-3, min(0.5e-3, 19.2 * (A3 - A2) * A0))") + RES(RIABC, 1) + NET_C(RIABC.2, F.A2) + NET_C(RIABC.1, F.A3) // IB + VCCS(VO, 1) + ANALOG_INPUT(XGND, 0) + NET_C(XGND, VO.IN, VO.ON) // FIXME: assume symmetric supply + NET_C(F.Q, VO.IP) +NETLIST_END() + + + +// +// Now include ourselves twice, once for Eliminator and +// once for Zektor +// + +#define VARIANT_ELIMINATOR 0 +#define VARIANT_ZEKTOR 1 + +#define SOUND_VARIANT (VARIANT_ELIMINATOR) +#include "nl_elim.cpp" + +#undef SOUND_VARIANT +#define SOUND_VARIANT (VARIANT_ZEKTOR) +#include "nl_elim.cpp" + + +#else + + +// +// Main netlist +// + +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) +NETLIST_START(elim) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) +NETLIST_START(zektor) +#endif + + SOLVER(Solver, 1000) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 2e-5) + + // Overwrite model - the default model uses minimum datasheet + // specifications for 5V. These are for 10V and thus closer to the + // 12V used in this circuit. + NET_MODEL("CD4XXX FAMILY(TYPE=CMOS IVL=0.3 IVH=0.7 OVL=0.05 OVH=0.05 ORL=384 ORH=384)") + + LOCAL_SOURCE(_CA3080_FAST_DIP) + +// TTL_INPUT(I_LO_D0, 0) + TTL_INPUT(I_LO_D1, 0) + ALIAS(I_FIREBALL, I_LO_D1) + TTL_INPUT(I_LO_D2, 0) + ALIAS(I_EXPLOSION_1, I_LO_D2) + TTL_INPUT(I_LO_D3, 0) + ALIAS(I_EXPLOSION_2, I_LO_D3) + TTL_INPUT(I_LO_D4, 0) + ALIAS(I_EXPLOSION_3, I_LO_D4) + TTL_INPUT(I_LO_D5, 0) + ALIAS(I_BOUNCE, I_LO_D5) + TTL_INPUT(I_LO_D6, 0) + ALIAS(I_TORPEDO_1, I_LO_D6) + TTL_INPUT(I_LO_D7, 0) + ALIAS(I_TORPEDO_2, I_LO_D7) + + NET_C(GND, I_LO_D1.GND, I_LO_D2.GND, I_LO_D3.GND, I_LO_D4.GND, I_LO_D5.GND, I_LO_D6.GND, I_LO_D7.GND) + NET_C(I_V5, I_LO_D1.VCC, I_LO_D2.VCC, I_LO_D3.VCC, I_LO_D4.VCC, I_LO_D5.VCC, I_LO_D6.VCC, I_LO_D7.VCC) + + TTL_INPUT(I_HI_D0, 0) + ALIAS(I_THRUST_LOW, I_HI_D0) + TTL_INPUT(I_HI_D1, 0) + ALIAS(I_THRUST_HI, I_HI_D1) + TTL_INPUT(I_HI_D2, 0) + ALIAS(I_THRUST_LSB, I_HI_D2) + TTL_INPUT(I_HI_D3, 0) + ALIAS(I_THRUST_MSB, I_HI_D3) + TTL_INPUT(I_HI_D4, 0) + ALIAS(I_SKITTER, I_HI_D4) + TTL_INPUT(I_HI_D5, 0) + ALIAS(I_ENEMY_SHIP, I_HI_D5) + TTL_INPUT(I_HI_D6, 0) + ALIAS(I_BACKGROUND_LSB, I_HI_D6) + TTL_INPUT(I_HI_D7, 0) + ALIAS(I_BACKGROUND_MSB, I_HI_D7) + + NET_C(GND, I_HI_D0.GND, I_HI_D1.GND, I_HI_D2.GND, I_HI_D3.GND, I_HI_D4.GND, I_HI_D5.GND, I_HI_D6.GND, I_HI_D7.GND) + NET_C(I_V5, I_HI_D0.VCC, I_HI_D1.VCC, I_HI_D2.VCC, I_HI_D3.VCC, I_HI_D4.VCC, I_HI_D5.VCC, I_HI_D6.VCC, I_HI_D7.VCC) + + RES(R_PSG_1, 1000) + RES(R_PSG_2, 1000) + RES(R_PSG_3, 1000) + NET_C(I_V5, R_PSG_1.1, R_PSG_2.1, R_PSG_3.1) + + ANALOG_INPUT(I_V5, 5) + ANALOG_INPUT(I_V12, 12) + ANALOG_INPUT(I_VM12, -12) + + // + // Part differences between Eliminator and Zektor + // + // Ref Des ELIMINATOR ZEKTOR + // R5 10K 4.7K + // R9 33K 12K + // R71 270K 100K + // R79 2 MEG unused + // R122 220K 390K + // R132 220K 100K + // C9 0.01uF 0.0047uF + // C46 0.022uF 0.047uF + // + +// RES(R1, RES_K(100)) -- part of final amp (not emulated) +// RES(R2, RES_M(1)) -- part of final amp (not emulated) +// RES(R3, RES_K(22)) -- part of final amp (not emulated) +// RES(R4, RES_K(2.2)) -- part of final amp (not emulated) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) +// RES(R5, RES_K(10)) -- part of final amp (not emulated) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) +// RES(R5, RES_K(4.7)) -- part of final amp (not emulated) +#endif + RES(R6, RES_K(220)) + RES(R7, RES_K(220)) + RES(R8, RES_K(10)) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + RES(R9, RES_K(33)) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) + RES(R9, RES_K(12)) +#endif + RES(R10, RES_K(10)) +// RES(R11, RES_K(2.2)) -- part of final amp (not emulated) +// RES(R12, RES_M(1)) -- part of final amp (not emulated) +// RES(R13, RES_K(330)) -- part of final amp (not emulated) + RES(R14, RES_K(470)) + RES(R15, RES_K(100)) + RES(R16, RES_K(100)) + RES(R17, RES_K(10)) + RES(R18, RES_K(10)) + RES(R19, RES_K(1)) + RES(R20, RES_K(10)) + RES(R21, RES_K(100)) + RES(R22, RES_K(10)) + RES(R23, RES_K(4.7)) +// R24?? + RES(R25, RES_K(220)) + RES(R26, RES_K(470)) + RES(R27, RES_K(470)) + RES(R28, RES_K(33)) + RES(R29, RES_K(68)) + RES(R30, RES_K(22)) + RES(R31, RES_K(1)) + RES(R32, RES_K(47)) + RES(R33, RES_K(82)) + RES(R34, RES_K(22)) + RES(R35, RES_K(1)) + RES(R36, RES_M(1.5)) + RES(R37, RES_K(6.8)) + RES(R38, RES_K(33)) + RES(R39, RES_K(22)) + RES(R40, RES_K(1)) + RES(R41, RES_M(2.2)) + RES(R42, RES_M(2.2)) + RES(R43, RES_K(1)) + RES(R44, RES_K(10)) + RES(R45, RES_K(47)) + RES(R46, RES_K(22)) + RES(R47, RES_K(2)) + RES(R48, RES_K(6.8)) + RES(R49, RES_K(33)) + RES(R50, RES_K(22)) + RES(R51, RES_K(1)) + RES(R52, RES_K(1)) + RES(R53, RES_K(1)) + RES(R54, RES_K(2)) + RES(R55, RES_K(1)) + RES(R56, RES_K(1)) + RES(R57, RES_K(1)) + RES(R58, RES_K(33)) + RES(R59, RES_K(2)) + RES(R60, RES_K(10)) + RES(R61, RES_K(47)) + RES(R62, RES_K(220)) + RES(R63, RES_K(1)) + RES(R64, RES_K(150)) + RES(R65, RES_K(390)) + RES(R66, RES_K(33)) + RES(R67, RES_K(100)) + RES(R68, RES_K(100)) + RES(R69, RES_K(1)) + RES(R70, RES_K(470)) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + RES(R71, RES_K(270)) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) + RES(R71, RES_K(100)) +#endif + RES(R72, RES_K(1)) + RES(R73, RES_K(680)) + RES(R74, RES_K(390)) + RES(R75, RES_K(150)) + RES(R76, RES_K(10)) + RES(R77, RES_K(10)) + RES(R78, RES_K(10)) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + RES(R79, RES_M(2)) +#endif + RES(R80, RES_K(1)) + RES(R81, RES_M(1.5)) + RES(R82, 470) + RES(R83, 470) + RES(R84, RES_K(2.2)) + RES(R85, RES_K(2.2)) + RES(R86, RES_K(2.2)) + RES(R87, RES_K(2.2)) + RES(R88, RES_K(2.2)) + RES(R89, RES_K(2.2)) + RES(R90, RES_K(15)) + RES(R91, RES_M(1)) + RES(R92, RES_K(22)) + RES(R93, RES_M(1)) + RES(R94, RES_K(10)) + RES(R95, RES_K(10)) + RES(R96, RES_K(22)) + RES(R97, RES_K(39)) + RES(R98, RES_K(82)) + RES(R99, RES_K(10)) + RES(R100, RES_K(10)) + RES(R101, 910) + RES(R102, RES_K(6.8)) + RES(R103, RES_K(9.1)) // RES_K(2.2)) + RES(R104, RES_K(15)) + RES(R105, RES_K(10)) + RES(R106, RES_K(680)) + RES(R107, RES_K(4.7)) + RES(R108, RES_K(4.7)) + RES(R109, RES_K(2.2)) + RES(R110, RES_K(2.2)) + RES(R111, RES_K(100)) + RES(R112, RES_M(2.2)) + RES(R113, RES_M(1)) + RES(R114, RES_K(100)) + RES(R115, RES_M(1)) + RES(R116, RES_M(1)) + RES(R117, RES_M(1)) + RES(R118, RES_K(100)) + RES(R119, RES_K(100)) + RES(R120, RES_K(100)) + RES(R121, RES_M(2.2)) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + RES(R122, RES_K(220)) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) + RES(R122, RES_K(390)) +#endif + RES(R123, RES_K(100)) + RES(R124, RES_M(2.2)) + RES(R125, RES_K(100)) + RES(R126, RES_K(10)) + RES(R127, RES_K(22)) + RES(R128, RES_K(39)) + RES(R129, RES_K(82)) + RES(R130, RES_K(22)) + RES(R131, RES_K(1)) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + RES(R132, RES_K(220)) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) + RES(R132, RES_K(100)) +#endif + RES(R133, 680) + RES(R134, RES_K(10)) + RES(R135, RES_K(10)) + RES(R136, RES_K(680)) + RES(R137, RES_K(10)) + RES(R138, RES_K(10)) + RES(R139, RES_K(330)) + RES(R140, RES_K(270)) + RES(R141, RES_K(220)) + RES(R142, RES_K(330)) + RES(R143, RES_K(680)) + RES(R144, RES_K(100)) + RES(R145, RES_K(68)) + RES(R146, RES_K(22)) + RES(R147, RES_K(2.2)) + +// CAP(C1, CAP_U(4.7)) -- part of final amp (not emulated) +// CAP(C2, CAP_U(0.1)) +// CAP(C3, CAP_U(0.1)) +// CAP(C4, CAP_U(10)) -- part of final amp (not emulated) + CAP(C5, CAP_U(0.1)) + CAP(C6, CAP_U(0.1)) + CAP(C7, CAP_U(0.001)) + CAP(C8, CAP_U(10)) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + CAP(C9, CAP_U(0.01)) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) + CAP(C9, CAP_U(0.0047)) +#endif + CAP(C10, CAP_U(0.068)) + CAP(C11, CAP_U(0.068)) + CAP(C12, CAP_U(0.1)) + CAP(C13, CAP_U(0.1)) + CAP(C14, CAP_U(0.1)) + CAP(C15, CAP_U(0.068)) + CAP(C16, CAP_U(0.068)) + CAP(C17, CAP_U(0.068)) + CAP(C18, CAP_U(0.068)) + CAP(C19, CAP_U(0.068)) + CAP(C20, CAP_U(0.068)) + CAP(C21, CAP_U(2.2)) +// CAP(C22, CAP_U(0.1)) +// CAP(C23, CAP_U(0.1)) +// CAP(C24, CAP_U(0.1)) +// CAP(C25, CAP_U(0.1)) +// CAP(C26, CAP_U(0.1)) +// CAP(C27, CAP_U(0.1)) + CAP(C28, CAP_U(0.1)) + CAP(C29, CAP_U(0.1)) + CAP(C30, CAP_U(0.022)) +// CAP(C31, CAP_U(0.1)) +// CAP(C32, CAP_U(0.1)) + CAP(C33, CAP_U(0.1)) + CAP(C34, CAP_U(0.1)) + CAP(C35, CAP_U(1)) + CAP(C36, CAP_U(2.2)) + CAP(C37, CAP_U(10)) + CAP(C38, CAP_U(4.7)) + CAP(C39, CAP_U(0.1)) +// CAP(C40, CAP_U(0.1)) +// CAP(C41, CAP_U(0.1)) +// C42?? + CAP(C43, CAP_U(0.033)) + CAP(C44, CAP_U(0.1)) + CAP(C45, CAP_U(0.1)) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + CAP(C46, CAP_U(0.022)) +#else // (SOUND_VARIANT == VARIANT_ZEKTOR) + CAP(C46, CAP_U(0.047)) +#endif + CAP(C47, CAP_U(0.047)) + CAP(C48, CAP_U(0.05)) + CAP(C49, CAP_U(0.1)) + CAP(C50, CAP_U(0.05)) + CAP(C51, CAP_U(0.05)) + CAP(C52, CAP_U(0.05)) + CAP(C53, CAP_U(0.1)) + CAP(C54, CAP_U(0.1)) + CAP(C55, CAP_U(0.1)) + CAP(C56, CAP_U(33)) + CAP(C57, CAP_U(0.1)) + CAP(C58, CAP_U(0.1)) + CAP(C59, CAP_U(0.1)) + CAP(C60, CAP_U(0.001)) + CAP(C61, CAP_U(0.068)) +// CAP(C62, CAP_U(0.1)) + CAP(C63, CAP_P(100)) + CAP(C64, CAP_U(0.1)) + CAP(C65, CAP_U(0.01)) + CAP(C66, CAP_U(0.022)) + CAP(C67, CAP_U(0.047)) + CAP(C68, CAP_U(0.01)) + CAP(C69, CAP_U(0.1)) +// CAP(C70, CAP_U(0.1)) +// CAP(C71, CAP_U(0.1)) +// CAP(C72, CAP_U(0.1)) +// CAP(C73, CAP_U(10)) +// CAP(C74, CAP_U(0.1)) + CAP(C75, CAP_U(0.1)) + CAP(C76, CAP_U(0.1)) + CAP(C77, CAP_U(0.1)) + + D_1N914(D1) + D_1N914(D2) + D_1N914(D3) + D_1N914(D4) + D_1N914(D5) + D_1N914(D6) + D_1N914(D7) + D_1N4002(D8) + +// Q_2N4093(Q1) -- part of final amp (not emulated) + Q_2N4403(Q2) + Q_2N4403(Q3) + Q_2N4403(Q4) + Q_2N4403(Q5) + Q_2N4403(Q6) + Q_2N4403(Q7) + Q_2N4403(Q8) + Q_2N4403(Q9) + Q_2N4403(Q10) + Q_2N4403(Q11) + + TL081_DIP(U1) // Op. Amp. + NET_C(U1.7, I_V12) + NET_C(U1.4, I_VM12) + +// TL082_DIP(U2) // Op. Amp. -- part of final amp (not emulated) +// NET_C(U2.8, I_V12) +// NET_C(U2.4, I_VM12) + + TL081_DIP(U3) // Op. Amp. + NET_C(U3.7, I_V12) + NET_C(U3.4, I_VM12) + + MM5837_DIP(U4) // Noise Generator +#if (UNDERCLOCK_NOISE_GEN) + PARAM(U4.FREQ, 24000) +#endif + + LM555_DIP(U5) // Timer + + CA3080_DIP(U6) // Op. Amp. + NET_C(U6.4, I_VM12) + NET_C(U6.7, I_V12) + + CA3080_DIP(U7) // Op. Amp. + NET_C(U7.4, I_VM12) + NET_C(U7.7, I_V12) + + CA3080_DIP(U8) // Op. Amp. + NET_C(U8.4, I_VM12) + NET_C(U8.7, I_V12) + + CA3080_DIP(U9) // Op. Amp. + NET_C(U9.4, I_VM12) + NET_C(U9.7, I_V12) + + CA3080_DIP(U10) // Op. Amp. + NET_C(U10.4, I_VM12) + NET_C(U10.7, I_V12) + + CA3080_DIP(U11) // Op. Amp. + NET_C(U11.4, I_VM12) + NET_C(U11.7, I_V12) + + TL081_DIP(U12) // Op. Amp. + NET_C(U12.7, I_V12) + NET_C(U12.4, I_VM12) + + LM555_DIP(U13) // Timer + + CA3080_DIP(U14) // Op. Amp. + NET_C(U14.4, I_VM12) + NET_C(U14.7, I_V12) + + CA3080_DIP(U15) // Op. Amp. + NET_C(U15.4, I_VM12) + NET_C(U15.7, I_V12) + + TL082_DIP(U16) // Op. Amp. + NET_C(U16.8, I_V12) + NET_C(U16.4, I_VM12) + + CD4011_DIP(U17) // Quad 2-Input NAND Gates + NET_C(U17.7, GND) + NET_C(U17.14, I_V12) + + CD4011_DIP(U18) // Quad 2-Input NAND Gates + NET_C(U18.7, GND) + NET_C(U18.14, I_V12) + + CD4011_DIP(U19) // Quad 2-Input NAND Gates + NET_C(U19.7, GND) + NET_C(U19.14, I_V12) + + TL082_DIP(U20) // Op. Amp. + NET_C(U20.8, I_V12) + NET_C(U20.4, I_VM12) + + CD4024_DIP(U21) // 7-Stage Ripple Binary Counter + NET_C(U21.7, GND) + NET_C(U21.14, I_V12) + + CD4011_DIP(U22) // Quad 2-Input NAND Gates + NET_C(U22.7, GND) + NET_C(U22.14, I_V12) + + CD4024_DIP(U23) // 7-Stage Ripple Binary Counter + NET_C(U23.7, GND) + NET_C(U23.14, I_V12) + + TTL_7406_DIP(U24) // Hex inverter -- currently using a clone of 7416, no open collector behavior + NET_C(U24.7, GND) + NET_C(U24.14, I_V5) + +#if (!HLE_BACKGROUND_VCO) + LM566_DIP(U25) // Voltage-Controlled Oscillator +#endif + + TTL_74LS00_DIP(U26) // Quad 4-Input NAND Gate + NET_C(U26.7, GND) + NET_C(U26.14, I_V5) + + TTL_7407_DIP(U27) // Hex Buffers with High Votage Open-Collector Outputs + NET_C(U27.7, GND) + NET_C(U27.14, I_V5) + + TTL_7407_DIP(U28) // Hex Buffers with High Votage Open-Collector Outputs + NET_C(U28.7, GND) + NET_C(U28.14, I_V5) + + TL081_DIP(U29) // Op. Amp. + NET_C(U29.7, I_V12) + NET_C(U29.4, I_VM12) + +// AY_3_8912_DIP(U30) // PSG -- emulated by MAME + + CD4069_DIP(U31) // Hex Inverter + NET_C(U31.7, GND) + NET_C(U31.14, I_V12) + + CD4069_DIP(U32) // Hex Inverter + NET_C(U32.7, GND) + NET_C(U32.14, I_V12) + +// TTL_74LS125_DIP(U33) // Quad 3-state buffer +// NET_C(U33.7, GND) +// NET_C(U33.14, I_V5) + +// TTL_74LS374_DIP(U34) // Octal D-Type Transparent Latches And Edge-Triggered Flip-Flop +// NET_C(U34.10, GND) +// NET_C(U34.20, I_V5) +// +// TTL_74LS374_DIP(U35) // Octal D-Type Transparent Latches And Edge-Triggered Flip-Flop +// NET_C(U34.10, GND) +// NET_C(U34.20, I_V5) + +// TTL_74LS74_DIP(U36) // Dual D Flip Flop +// NET_C(U36.7, GND) +// NET_C(U36.14, I_V5) + +// TTL_74LS10_DIP(U37) // Triple 3-Input NAND Gate +// NET_C(U37.7, GND) +// NET_C(U37.14, I_V5) + +// TTL_74LS14_DIP(U38) +// NET_C(U38.7, GND) +// NET_C(U38.14, I_V5) + +// TTL_74LS08_DIP(U39) // Quad 2-Input AND Gates +// NET_C(U39.7, GND) +// NET_C(U39.14, I_V5) + +// TTL_74LS30_DIP(U40) // 8-Input NAND Gate +// NET_C(U40.7, GND) +// NET_C(U40.14, I_V5) + +// TTL_74LS14_DIP(U41) +// NET_C(U41.7, GND) +// NET_C(U41.14, I_V5) + + // + // Sheet 7, top-left/middle (Thrust) + // + + NET_C(R58.1, GND) + NET_C(R58.2, U12.3, U10.6, U11.6, U15.6) + ALIAS(SUM_VCA, R58.2) + NET_C(U12.2, R75.1, R76.2) + NET_C(R76.1, GND) + NET_C(R75.2, U12.6) + ALIAS(BUFFER, U12.6) + + NET_C(I_V12, U4.4, C75.2) + NET_C(C75.1, GND) + NET_C(U4.1, GND) + NET_C(U4.2, I_VM12, C76.2) + NET_C(C76.1, GND) + NET_C(U4.3, C77.1) + NET_C(C77.2, R27.2, U3.3) + NET_C(R27.1, GND) + NET_C(U3.2, U3.6, R28.1, R32.1) + ALIAS(WBN, U3.6) + + NET_C(R28.2, C17.2, R29.1) + NET_C(C17.1, GND) + NET_C(R29.2, C18.2, R30.1) + NET_C(C18.1, GND) + NET_C(R30.2, R31.2, U10.2) + NET_C(R31.1, GND) + NET_C(U10.3, R56.2) + NET_C(R56.1, GND) + + NET_C(I_THRUST_LOW, U24.5) + NET_C(U24.6, R99.1, R70.1) + NET_C(R99.2, I_V12) + NET_C(R70.2, R71.2, Q4.E) + NET_C(I_THRUST_HI, U24.3) + NET_C(U24.4, R100.1, R71.1) + NET_C(R100.2, I_V12) + NET_C(Q4.B, GND) + NET_C(Q4.C, R69.1) + NET_C(R69.2, U10.5) + + NET_C(R32.2, C19.2, R33.1) + NET_C(C19.1, GND) + NET_C(R33.2, C20.2, R34.1) + NET_C(C20.1, GND) + NET_C(R34.2, R35.2, U11.2) + NET_C(R35.1, GND) + NET_C(U11.3, R57.2) + NET_C(R57.1, GND) + + NET_C(I_THRUST_LSB, U24.1) + NET_C(U24.2, R77.1, R73.1) + NET_C(R77.2, I_V12) + NET_C(R73.2, R74.2, Q5.E) + NET_C(I_THRUST_MSB, U24.13) + NET_C(U24.12, R78.1, R74.1) + NET_C(R78.2, I_V12) + NET_C(Q5.B, GND) + NET_C(Q5.C, R72.1) + NET_C(R72.2, U11.5) + + // + // Sheet 7, top-right (Skitter) + // + + NET_C(I_SKITTER, U24.9) + NET_C(U24.8, R25.2, D1.K, R17.1) + NET_C(R17.2, I_V12) + NET_C(D1.A, C21.1, R26.2, R25.1, Q3.B) + NET_C(C21.2, GND) + NET_C(R26.1, GND) + NET_C(Q3.C, GND, Q2.C) + NET_C(Q3.E, R23.1) + NET_C(R23.2, R22.2) + NET_C(R22.1, Q2.E) + +#if (HLE_SKITTER_VCO) + // + // U1 is basically a standalone oscillator. Simulation at high + // frequency puts it at around 45Hz. Samples from real machines + // show it to be about 35Hz. + // + CLOCK(SKITTERCLK, 45) + NET_C(SKITTERCLK.GND, GND) + NET_C(SKITTERCLK.VCC, I_V12) + AFUNC(SKITTERENV, 1, "if(A0<6,2,18)") + NET_C(SKITTERENV.A0, SKITTERCLK.Q) + NET_C(SKITTERENV.Q, Q2.B) + NET_C(GND, C5.1, C5.2, C47.1, C47.2, R14.1, R14.2, R15.1, R15.2, R16.1, R16.2, R19.1, R19.2, U1.2, U1.3) +#else + NET_C(Q2.B, R19.1) + NET_C(R19.2, C5.1) + NET_C(C5.2, C47.2, U1.2, R16.1) + NET_C(C47.1, GND) + NET_C(U1.3, R15.1, R14.2) + NET_C(R14.1, GND) + NET_C(R15.2, U1.6, R16.2) +#endif + + NET_C(C9.2, R21.1) + NET_C(C9.1, GND) + NET_C(R21.2, R18.1) + NET_C(R18.2, I_V12) + NET_C(I_V12, C8.1) + NET_C(C8.2, GND) + NET_C(U5.7, R18.1) + NET_C(U5.5, R23.2) + NET_C(U5.4, U24.8) + NET_C(U5.2, U5.6, R21.1) + NET_C(U5.8, I_V12) + NET_C(U5.1, GND) + NET_C(U5.3, R20.1) + NET_C(R20.2, C7.2, C6.1) + NET_C(C7.1, GND) + ALIAS(SKITTER, C6.2) + + // + // Sheet 7, middle-right (Enemy Ship) + // + + NET_C(I_ENEMY_SHIP, U24.11) + NET_C(U24.10, R60.1, U13.4) + NET_C(R60.2, I_V12) + NET_C(U13.7, R59.1, R61.2) + NET_C(R59.2, I_V12) + NET_C(R61.1, U13.2, U13.6, C30.2) + NET_C(C30.1, GND) + NET_C(U13.5, R145.1, R144.1) + ALIAS(_10HZ, R144.2) + NET_C(U13.1, GND) + NET_C(U13.8, I_V12, C29.2) + NET_C(C29.1, GND) + NET_C(U13.3, C28.1) + ALIAS(ENEMY_SHIP, C28.2) + + ALIAS(_100HZ, R135.1) + NET_C(R145.2, R135.1) + ALIAS(_50HZ, R134.1) + ALIAS(_200HZA, R137.1) + ALIAS(_200HZB, R138.1) + NET_C(R138.2, R137.2, R134.2, R135.2, C61.2, R136.1) + NET_C(C61.1, GND) + NET_C(R136.2, Q11.E, U27.6) + NET_C(U27.5, U26.8) + NET_C(Q11.B, GND) + NET_C(Q11.C, R131.1) + NET_C(R131.2, U15.5) + NET_C(U15.2, R106.2, R83.2) + NET_C(R83.1, GND) + NET_C(U15.3, R82.2) + NET_C(R82.1, GND) + + // + // Sheet 7, bottom-right (Background) + // + + NET_C(I_BACKGROUND_LSB, U27.1, U26.10) + NET_C(U27.2, R107.1, R108.1) + NET_C(R107.2, I_V12) + NET_C(R108.2, R101.1, U16.6, R109.2) + NET_C(I_BACKGROUND_MSB, U27.3, U26.9) + NET_C(U27.4, R110.1, R109.1) + NET_C(R110.2, I_V12) + NET_C(U16.5, GND) + NET_C(U16.7, R101.2, R104.1) + NET_C(R104.2, U16.2, R105.1, C56.2) + NET_C(U16.3, R102.2, R103.1) + NET_C(R103.2, I_V12) + NET_C(R102.1, GND) + NET_C(U16.1, R105.2, C56.1, C60.1) + NET_C(C60.2, R130.1) + NET_C(R130.2, D8.K, C59.1) + NET_C(D8.A, I_V12) + NET_C(C59.2, GND) + +#if (HLE_BACKGROUND_VCO) + // + // R2 = 0.96310: HP = (0.000237231*A0) - 0.000561399 + // R2 = 0.99617: HP = (0.0000527091*A0*A0) - (0.000501828*A0) + 0.00197538 + // R2 = 0.99867: HP = (0.0000174335*A0*A0*A0) - (0.000309878*A0*A0) + (0.00198163*A0) - 0.00362162 + // R2 = 0.99898: HP = (0.00000748879*A0*A0*A0*A0) - (0.000189174*A0*A0*A0) + (0.00180942*A0*A0) - (0.00759439*A0) + 0.0124560 + // R2 = 0.99899: HP = (0.00000135301*A0*A0*A0*A0*A0) - (0.0000390321*A0*A0*A0*A0) + (0.000446417*A0*A0*A0) - (0.00250299*A0*A0) + (0.00693360*A0) - 0.00698302 + // + VARCLOCK(BGCLK, 1, "max(0.000001,min(0.1,(0.00000748879*A0*A0*A0*A0) - (0.000189174*A0*A0*A0) + (0.00180942*A0*A0) - (0.00759439*A0) + 0.0124560))") + NET_C(BGCLK.GND, GND) + NET_C(BGCLK.VCC, I_V5) + NET_C(BGCLK.A0, U16.1) + NET_C(BGCLK.Q, BGENV.A0) + NET_C(GND, C57.1, C57.2, C58.1, C58.2) + AFUNC(BGENV, 1, "if(A0>2.5,2.5,-2.5)") + NET_C(BGENV.Q, R106.1) +#else + NET_C(U16.1, U25.5) + NET_C(C60.2, U25.6) + NET_C(R130.2, U25.8) + NET_C(U25.7, C58.2) + NET_C(C58.1, GND) + NET_C(U25.1, GND) + NET_C(U25.3, C57.1) + NET_C(C57.2, R106.1) +#endif + + // + // Sheet 7, PSG input + // + + NET_C(R_PSG_1.2, R_PSG_2.2, R_PSG_3.2, R133.2, C64.1) + NET_C(R133.1, GND) + NET_C(C64.2, R132.1) + NET_C(R132.2, U29.2, R122.1, C63.1) + NET_C(U29.3, GND) + NET_C(C63.2, R122.2, U29.6) + ALIAS(PSG, U29.6) + + // + // Sheet 8, oscillators + // + // Pairs of CD4069 are used together with resistors and capacitors + // to create oscillators. The formula for the frequency is + // 1/(1.39*R*C). The following are simulated here: + // + // _200HZA: R142=330K, C68=0.01uF, Freq=218.01Hz + // _200HZB: R139=330K, C65=0.01uF, Freq=218.01Hz + // _10HZ: R143=680K, C69=0.1uF, Freq=10.58Hz + // _50HZ: R141=220K, C67=0.047uF, Freq=69.58Hz + // _100HZ: R140=270K, C66=0.022uF, Freq=121.12Hz + // + + CLOCK(_200HZACLK, 218.01) + NET_C(_200HZACLK.VCC, I_V12) + NET_C(_200HZACLK.GND, GND) + NET_C(_200HZA, _200HZACLK.Q) + NET_C(R142.1, R142.2, C68.1, C68.2, U32.5, U32.9, GND) + HINT(U32.6, NC) + HINT(U32.8, NC) + + CLOCK(_200HZBCLK, 217.98) // tweak frequency so this is out of phase + NET_C(_200HZBCLK.VCC, I_V12) + NET_C(_200HZBCLK.GND, GND) + NET_C(_200HZB, _200HZBCLK.Q) + NET_C(R139.1, R139.2, C65.1, C65.2, U32.13, U32.11, GND) + HINT(U32.12, NC) + HINT(U32.10, NC) + + CLOCK(_10HZCLK, 10.58) + NET_C(_10HZCLK.VCC, I_V12) + NET_C(_10HZCLK.GND, GND) + NET_C(_10HZ, _10HZCLK.Q) + NET_C(R143.1, R143.2, C69.1, C69.2, U32.1, U32.3, GND) + HINT(U32.2, NC) + HINT(U32.4, NC) + + CLOCK(_50HZCLK, 69.58) + NET_C(_50HZCLK.VCC, I_V12) + NET_C(_50HZCLK.GND, GND) + NET_C(_50HZ, _50HZCLK.Q) + NET_C(R141.1, R141.2, C67.1, C67.2, U31.1, U31.3, GND) + HINT(U31.2, NC) + HINT(U31.4, NC) + + // Note this oscillator is on Sheet 7, in the right-middle section + CLOCK(_100HZCLK, 121.12) + NET_C(_100HZCLK.VCC, I_V12) + NET_C(_100HZCLK.GND, GND) + NET_C(_100HZ, _100HZCLK.Q) + NET_C(R140.1, R140.2, C66.1, C66.2, U31.5, U31.9, GND) + HINT(U31.6, NC) + HINT(U31.8, NC) + + // + // Sheet 8, top middle (Explosion 1) + // + + NET_C(WBN, R44.1) + NET_C(R44.2, C13.2, R45.1) + NET_C(C13.1, GND) + NET_C(R45.2, C14.2, R46.1) + NET_C(C14.1, GND) + NET_C(R46.2, R47.2, U8.2) + NET_C(R47.1, GND) + NET_C(U8.3, R54.2) + NET_C(R54.1, GND) + NET_C(U8.6, SUM_VCA) + + NET_C(I_EXPLOSION_1, U28.11) + NET_C(U28.10, R120.1, U19.6) + NET_C(R120.2, I_V12) + NET_C(U19.5, R116.1, C51.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_EXPLOSION_1) + NET_C(D_EXPLOSION_1.A, U19.5) + NET_C(D_EXPLOSION_1.K, I_V12) +#endif + NET_C(R116.2, I_V12) + NET_C(C51.2, U19.3) + NET_C(U19.4, U19.1, U19.2, R87.1) + NET_C(R87.2, Q9.E) + NET_C(Q9.B, GND) + NET_C(Q9.C, C37.1, R66.1) + NET_C(C37.2, I_VM12) + NET_C(R66.2, U8.5) + + // + // Sheet 8, top right (Explosion 2) + // + + NET_C(WBN, R48.1) + NET_C(R48.2, C15.2, R49.1) + NET_C(C15.1, GND) + NET_C(R49.2, C16.2, R50.1) + NET_C(C16.1, GND) + NET_C(R50.2, R51.2, U9.2) + NET_C(R51.1, GND) + NET_C(U9.3, R55.2) + NET_C(R55.1, GND) + NET_C(U9.6, SUM_VCA) + + NET_C(I_EXPLOSION_2, U28.9) + NET_C(U28.8, R119.1, U19.8) + NET_C(R119.2, I_V12) + NET_C(U19.9, R117.1, C52.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_EXPLOSION_2) + NET_C(D_EXPLOSION_2.A, U19.9) + NET_C(D_EXPLOSION_2.K, I_V12) +#endif + NET_C(R117.2, I_V12) + NET_C(C52.2, U19.11) + NET_C(U19.10, U19.12, U19.13, R88.1) + NET_C(R88.2, Q10.E) + NET_C(Q10.B, GND) + NET_C(Q10.C, C38.1, R68.1) + NET_C(C38.2, I_VM12) + NET_C(R68.2, U9.5) + + // + // Sheet 8, bottom left (Explosion 3) + + NET_C(WBN, R37.1) + NET_C(R37.2, C10.2, R38.1) + NET_C(C10.1, GND) + NET_C(R38.2, C11.2, R39.1) + NET_C(C11.1, GND) + NET_C(R39.2, R40.2, U6.2) + NET_C(R40.1, GND) + NET_C(U6.3, R52.2) + NET_C(R52.1, GND) + NET_C(U6.6, SUM_VCA) + + NET_C(I_EXPLOSION_3, U28.5) + NET_C(U28.6, R118.1, U18.8) + NET_C(R118.2, I_V12) + NET_C(U18.9, R115.1, C50.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_EXPLOSION_3) + NET_C(D_EXPLOSION_3.A, U18.9) + NET_C(D_EXPLOSION_3.K, I_V12) +#endif + NET_C(R115.2, I_V12) + NET_C(C50.2, U18.11) + NET_C(U18.10, U18.12, U18.13, R86.1) + NET_C(R86.2, Q8.E) + NET_C(Q8.B, GND) + NET_C(Q8.C, C36.1, R62.1) + NET_C(C36.2, I_VM12) + NET_C(R62.2, U6.5) + + // + // Sheet 8, bottom left (Fireball) + // + + NET_C(WBN, R41.1) + NET_C(R41.2, R43.2, U7.2, R42.2) + NET_C(R43.1, GND) + NET_C(R42.1, C12.2) + NET_C(C12.1, _50HZ) + NET_C(U7.3, R53.2) + NET_C(R53.1, GND) + NET_C(U7.6, SUM_VCA) + + NET_C(I_FIREBALL, U28.13) + NET_C(U28.12, R111.1, U18.6) + NET_C(R111.2, I_V12) + NET_C(U18.5, R112.1, C49.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_FIREBALL) + NET_C(D_FIREBALL.A, U18.5) + NET_C(D_FIREBALL.K, I_V12) +#endif + NET_C(R112.2, I_V12) + NET_C(C49.2, U18.3) + NET_C(U18.4, U18.1, U18.2, R85.1) + NET_C(R85.2, Q7.E) + NET_C(Q7.B, GND) + NET_C(Q7.C, R67.1) + NET_C(R67.2, C35.1, R64.1) + NET_C(C35.2, I_VM12) + NET_C(R64.2, U7.5) + + // + // Sheet 8, bottom-ish middle (Bounce) + // + + NET_C(_50HZ, C45.1) + NET_C(C45.2, R81.1) + NET_C(R81.2, R80.2, U14.2) +#if (SOUND_VARIANT == VARIANT_ELIMINATOR) + NET_C(WBN, R79.1) + NET_C(R79.2, R80.2) +#endif + NET_C(R80.1, GND) + NET_C(U14.3, R63.2) + NET_C(R63.1, GND) + NET_C(U14.6, SUM_VCA) + + NET_C(I_BOUNCE, U28.3) + NET_C(U28.4, R114.1, U17.8) + NET_C(R114.2, I_V12) + NET_C(U17.9, R113.1, C48.1) + NET_C(R113.2, I_V12) + NET_C(C48.2, U17.11) + NET_C(U17.10, U17.13, U17.12, R84.1) + NET_C(R84.2, Q6.E) + NET_C(Q6.B, GND) + NET_C(Q6.C, C34.1, C33.1, R65.1) + NET_C(C33.2, C34.2, I_VM12) + NET_C(R65.2, U14.5) + + // + // Sheet 8, bottom middle (Torpedo 1) + // + + NET_C(I_TORPEDO_1, U27.9) + NET_C(U27.8, R125.1, U22.8) + NET_C(R125.2, I_V12) + NET_C(U22.9, R124.1, C55.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_TORPEDO_1) + NET_C(D_TORPEDO_1.A, U22.9) + NET_C(D_TORPEDO_1.K, I_V12) +#endif + NET_C(R124.2, I_V12) + NET_C(C55.2, U22.11, U23.2) + NET_C(U22.10, U22.12, U22.13, D4.K) + NET_C(D4.A, R89.1) + NET_C(R89.2, C39.2, D2.K) + NET_C(C39.1, GND) + +#if (HLE_TORPEDO1_VCO) + // + // R2 = 0.99044: HP = (0.000104804*A0) - 0.00000213808 + // R2 = 0.99913: HP = (0.0000155103*A0*A0) + (0.0000595259*A0) + 0.0000223086 + // R2 = 0.99930: HP = (0.00000342725*A0*A0*A0) + (0.000000183693*A0*A0) + (0.000079091*A0) + 0.0000157375 + // R2 = 0.99930: HP = (-0.000000204983*A0*A0*A0*A0) + (0.00000466123*A0*A0*A0) - (0.00000232484*A0*A0) + (0.000081060*A0) + 0.0000152562 + // R2 = 0.99931: HP = (-0.00000210641*A0*A0*A0*A0*A0) + (0.0000157326*A0*A0*A0*A0) - (0.0000399041*A0*A0*A0) + (0.0000541020*A0*A0) + (0.0000495068*A0) + 0.0000213321 + // + VARCLOCK(TORP1CLK, 1, "max(0.000001,min(0.1,(0.00000342725*A0*A0*A0) + (0.000000183693*A0*A0) + (0.000079091*A0) + 0.0000157375))") + NET_C(TORP1CLK.GND, GND) + NET_C(TORP1CLK.VCC, I_V5) + NET_C(TORP1CLK.A0, D2.K) + NET_C(TORP1CLK.Q, T1ENV.A0) + AFUNC(T1ENV, 1, "if(A0>2.5,11.1,-11.1)") + NET_C(T1ENV.Q, U23.1) + NET_C(D2.A, D3.K, R91.1) + NET_C(C46.2, R90.1) + NET_C(R90.2, R91.2, R146.1) + NET_C(GND, U20.3, U20.2) +#else + NET_C(D2.A, D3.K, R91.1, U20.3) + NET_C(U20.2, C46.2, R90.1) + NET_C(R90.2, U20.1, R91.2, R146.1) +#endif + NET_C(D3.A, GND) + NET_C(C46.1, GND) + NET_C(R146.2, U23.1) + + NET_C(U23.12, R129.1) + NET_C(U23.11, R128.1) + NET_C(U23.9, R126.1) + NET_C(U23.6, R127.1) + NET_C(R127.2, R126.2, R128.2, R129.2, C44.1) + + // + // Sheet 8, middle (Torpedo 2) + // + + NET_C(WBN, R36.1) +#if (DISABLE_TORPEDO2_NOISE) + NET_C(R36.2, GND) // noise source +#else + NET_C(R36.2, D6.A) // noise source +#endif + +#if (HLE_TORPEDO2_VCO) + // + // R2 = 0.98868: HP = (0.000142472*A0) - 0.0000121481 + // R2 = 0.99851: HP = (0.0000304790*A0*A0) + (0.000072730*A0) + 0.0000185913 + // R2 = 0.99875: HP = (0.0000104419*A0*A0*A0) - (0.00000603211*A0*A0) + (0.000109865*A0) + 0.0000082421 + // R2 = 0.99875: HP = (0.000000506238*A0*A0*A0*A0) + (0.0000080617*A0*A0*A0) - (0.00000220640*A0*A0) + (0.000107441*A0) + 0.0000087378 + // R2 = 0.99876: HP = (-0.0000095532*A0*A0*A0*A0*A0) + (0.0000569271*A0*A0*A0*A0) - (0.000116200*A0*A0*A0) + (0.000123414*A0*A0) + (0.0000501789*A0) + 0.0000180007 + // + VARCLOCK(TORP2CLK, 1, "max(0.000001,min(0.1,(0.0000104419*A0*A0*A0) - (0.00000603211*A0*A0) + (0.000109865*A0) + 0.0000082421))") + NET_C(TORP2CLK.GND, GND) + NET_C(TORP2CLK.VCC, I_V5) + NET_C(TORP2CLK.A0, D6.K) + NET_C(TORP2CLK.Q, T2ENV.A0) + AFUNC(T2ENV, 1, "if(A0>2.5,11.1,-11.1)") + NET_C(T2ENV.Q, U21.1) + NET_C(D6.A, D7.K, R93.1) + NET_C(C43.2, R94.1) + NET_C(R94.2, R93.2, R92.2) + NET_C(GND, U20.6, U20.5) +#else + NET_C(D6.A, U20.5, D7.K, R93.1) + NET_C(U20.6, C43.2, R94.1) + NET_C(R94.2, U20.7, R93.2, R92.2) +#endif + + NET_C(D7.A, GND) + NET_C(D6.K, C53.2, R147.2) + NET_C(C53.1, GND) + NET_C(R147.1, D5.A) + NET_C(U22.4, U22.1, U22.2, D5.K) + NET_C(C43.1, GND) + NET_C(R92.1, U21.1) + + NET_C(I_TORPEDO_2, U27.11) + NET_C(U27.10, R123.1, U22.6) + NET_C(R123.2, I_V12) + NET_C(U22.5, R121.1, C54.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_TORPEDO_2) + NET_C(D_TORPEDO_2.A, U22.5) + NET_C(D_TORPEDO_2.K, I_V12) +#endif + NET_C(R121.2, I_V12) + NET_C(C54.2, U22.3, U21.2) + NET_C(U21.12, R98.1) + NET_C(U21.11, R97.1) + NET_C(U21.9, R95.1) + NET_C(U21.6, R96.1) + NET_C(R98.2, R97.2, R95.2, R96.2, C44.1) + + // + // Sheet 8, middle right (Final sum) + // + + NET_C(PSG, R10.1) + NET_C(ENEMY_SHIP, R7.1) + NET_C(SKITTER, R6.1) + NET_C(BUFFER, R8.1) + NET_C(C44.2, R9.1) + NET_C(R10.2, R7.2, R6.2, R8.2, R9.2) + ALIAS(OUTPUT, R9.2) + + // + // Unconnected inputs + // + + NET_C(GND, U17.1, U17.2, U17.5, U17.6) + NET_C(GND, U26.1, U26.2, U26.4, U26.5, U26.12, U26.13) + NET_C(GND, U27.13, U28.1) + NET_C(GND, U31.11, U31.13) + + // + // Unconnected outputs + // + + +#if (ENABLE_FRONTIERS) +#define RXX 384 + OPTIMIZE_FRONTIER(R10.1, RES_K(10), RXX) + OPTIMIZE_FRONTIER(R7.1, RES_K(220), RXX) + OPTIMIZE_FRONTIER(R6.1, RES_K(220), RXX) + OPTIMIZE_FRONTIER(R8.1, RES_K(10), RXX) +#endif + +NETLIST_END() + +#endif diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_elim.h mame-0.224+dfsg.1/src/mame/audio/nl_elim.h --- mame-0.223+dfsg.1/src/mame/audio/nl_elim.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_elim.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,11 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_NL_ELIM_H +#define MAME_AUDIO_NL_ELIM_H + +#pragma once + +NETLIST_EXTERNAL(elim) +NETLIST_EXTERNAL(zektor) + +#endif // MAME_AUDIO_NL_ELIM_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_fireone.cpp mame-0.224+dfsg.1/src/mame/audio/nl_fireone.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_fireone.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_fireone.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,690 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +// +// Netlist for Fire One +// +// Derived from the schematics in the manual. +// +// Known problems/issues: +// +// * Slow! +// + +#include "netlist/devices/net_lib.h" + +// +// 556 is just two 555s in one package +// + +static NETLIST_START(NE556_DIP) + NE555(A) + NE555(B) + + NET_C(A.GND, B.GND) + NET_C(A.VCC, B.VCC) + + DIPPINS( /* +--------------+ */ + A.DISCH, /* 1DISCH |1 ++ 14| VCC */ A.VCC, + A.THRESH, /* 1THRES |2 13| 2DISCH */ B.DISCH, + A.CONT, /* 1CONT |3 12| 2THRES */ B.THRESH, + A.RESET, /* 1RESET |4 NE556 11| 2CONT */ B.CONT, + A.OUT, /* 1OUT |5 10| 2RESET */ B.RESET, + A.TRIG, /* 1TRIG |6 9| 2OUT */ B.OUT, + A.GND, /* GND |7 8| 2TRIG */ B.TRIG + /* +--------------+ */ + ) +NETLIST_END() + + +// +// ICL8038 is broadly similar to a 566 VCO, and can be simulated partially as such. +// + +static NETLIST_START(ICL8038_DIP) + VCVS(VI, 1) + CCCS(CI1, -1) + CCCS(CI2, 2) + SYS_COMPD(COMP) + SYS_DSW2(SW) + VCVS(VO, 1) + RES(R_SHUNT, RES_R(50)) + + PARAM(VO.RO, 50) + PARAM(COMP.MODEL, "FAMILY(TYPE=CUSTOM IVL=0.16 IVH=0.4 OVL=0.01 OVH=0.01 ORL=50 ORH=50)") + PARAM(SW.GOFF, 0) // This has to be zero to block current sources + + NET_C(VI.OP, CI1.IN, CI2.IN) + NET_C(CI1.OP, VO.IP) + NET_C(COMP.Q, SW.I) + NET_C(CI2.OP, SW.2) + NET_C(COMP.VCC, R_SHUNT.1) + NET_C(SW.1, R_SHUNT.2) + NET_C(SW.3, VO.IP) + NET_C(VO.OP, COMP.IN) + + // Avoid singular Matrix due to G=0 switch + RES(RX1, 1e10) + RES(RX2, 1e10) + NET_C(RX1.1, SW.1) + NET_C(RX2.1, SW.3) + + NET_C(COMP.GND, RX1.2, RX2.2) + + RES(R1, 5000) + RES(R2, 5000) + RES(R3, 5000) + + // Square output wave + VCVS(V_SQR, 1) + NET_C(COMP.Q, V_SQR.IP) + + NET_C(COMP.GND, SW.GND, VI.ON, VI.IN, CI1.ON, CI2.ON, VO.IN, VO.ON, R2.2, V_SQR.IN, V_SQR.ON) + NET_C(COMP.VCC, SW.VCC, R1.2) + NET_C(COMP.IP, R1.1, R2.1, R3.1) + NET_C(COMP.Q, R3.2) + + ALIAS(11, VI.ON) // GND + ALIAS(9, V_SQR.OP) // Square out + ALIAS(3, VO.OP) // Triag out + ALIAS(8, VI.IP) // VC + ALIAS(4, CI1.IP) // R1 + ALIAS(5, CI2.IP) // R2 + ALIAS(10, VO.IP) // C1 + ALIAS(6, COMP.VCC) // V+ +NETLIST_END() + +// +// Main netlist +// + +NETLIST_START(fireone) + NET_MODEL("2N3704 NPN(IS=26.03f VAF=90.7 Bf=736.1K IKF=.1983 XTB=1.5 BR=1.024 CJC=11.01p CJE=24.07p RB=10 RC=.5 RE=.5 TR=233.8n TF=1.03n ITF=0 VTF=0 XTF=0 mfg=Motorola)") + + SOLVER(Solver, 48000) + + ANALOG_INPUT(V12, 12) + ANALOG_INPUT(VM12, -12) + ANALOG_INPUT(V5, 5) + ALIAS(VCC, V5) + + NET_MODEL("PIT8253PORT FAMILY(TYPE=NMOS OVL=0.05 OVH=0.05 ORL=100.0 ORH=0.5k)") + + TTL_INPUT(LTORP, 0) // active high + TTL_INPUT(LSHPHT, 0) // active high + TTL_INPUT(LBOOM, 0) // active high + TTL_INPUT(SOUND_OFF_L, 0) // active high + TTL_INPUT(SOUND_OFF_R, 0) // active high + TTL_INPUT(RTORP, 0) // active high + TTL_INPUT(RSHPHT, 0) // active high + TTL_INPUT(RBOOM, 0) // active high + TTL_INPUT(TORPCOLL, 0) // active high + TTL_INPUT(SUBENG, 0) // active high + TTL_INPUT(ALERT, 0) // active high + //TTL_INPUT(SONAR_ENABLE, 0) // active high + TTL_INPUT(SONAR_SYNC, 0) // active low + + LOGIC_INPUT(MUSIC_A, 0, "PIT8253PORT") + LOGIC_INPUT(MUSIC_B, 0, "PIT8253PORT") + LOGIC_INPUT(MUSIC_C, 0, "PIT8253PORT") + + NET_C(VCC, LTORP.VCC, LSHPHT.VCC, LBOOM.VCC, SOUND_OFF_L.VCC, SOUND_OFF_R.VCC, RTORP.VCC, RSHPHT.VCC, RBOOM.VCC, TORPCOLL.VCC, SUBENG.VCC, ALERT.VCC, SONAR_SYNC.VCC) + NET_C(GND, LTORP.GND, LSHPHT.GND, LBOOM.GND, SOUND_OFF_L.GND, SOUND_OFF_R.GND, RTORP.GND, RSHPHT.GND, RBOOM.GND, TORPCOLL.GND, SUBENG.GND, ALERT.GND, SONAR_SYNC.GND) + NET_C(VCC, MUSIC_A.VCC, MUSIC_B.VCC, MUSIC_C.VCC) + NET_C(GND, MUSIC_A.GND, MUSIC_B.GND, MUSIC_C.GND) + + LOCAL_SOURCE(NE556_DIP) + LOCAL_SOURCE(ICL8038_DIP) + + TTL_7406_GATE(IC27_A) + TTL_7406_GATE(IC27_B) + TTL_7406_GATE(IC27_C) + TTL_7406_GATE(IC27_D) + NET_C(VCC, IC27_A.VCC, IC27_B.VCC, IC27_C.VCC, IC27_D.VCC) + NET_C(GND, IC27_A.GND, IC27_B.GND, IC27_C.GND, IC27_D.GND) + + //CD4070_GATE(IC41_A) + //CD4070_GATE(IC41_B) + CD4070_GATE(IC41_C) + CD4070_GATE(IC41_D) + NET_C(V12, /*IC41_A.VDD, IC41_B.VDD,*/ IC41_C.VDD, IC41_D.VDD) + NET_C(GND, /*IC41_A.VSS, IC41_B.VSS,*/ IC41_C.VSS, IC41_D.VSS) + + CD4006_DIP(IC40) + NET_C(V12, IC40.14) + NET_C(GND, IC40.7) + + CD4017_DIP(IC25) + NET_C(V12, IC25.16) + NET_C(GND, IC25.8) + + CD4013(IC3_A) + CD4013(IC3_B) + NET_C(V12, IC3_A.VDD, IC3_B.VDD) + NET_C(GND, IC3_A.VSS, IC3_A.SET, IC3_A.RESET, IC3_B.VSS, IC3_B.SET) + + MC1558_DIP(IC6) + NET_C(IC6.8, V12) + NET_C(IC6.4, VM12) + + MC1558_DIP(IC16) + NET_C(IC16.8, V12) + NET_C(IC16.4, VM12) + + MC1558_DIP(IC17) + NET_C(IC17.8, V12) + NET_C(IC17.4, VM12) + + NE555(IC29) + + SUBMODEL(NE556_DIP, IC31) + NET_C(IC31.14, V5) + NET_C(IC31.7, GND) + + MC3340_DIP(IC28) + NET_C(IC28.8, V12) + NET_C(IC28.3, GND) + + MC3340_DIP(IC30) + NET_C(IC30.8, V12) + NET_C(IC30.3, GND) + + SUBMODEL(ICL8038_DIP, IC15) + NET_C(V12, IC15.6) + NET_C(GND, IC15.11) + + LM3900(IC2_A) + LM3900(IC2_D) + LM3900(IC4_A) + LM3900(IC4_B) + LM3900(IC4_D) + LM3900(IC14_A) + LM3900(IC14_B) + LM3900(IC14_C) + LM3900(IC14_D) + NET_C(V12, IC2_A.VCC, IC2_D.VCC, IC4_A.VCC, IC4_B.VCC, IC4_D.VCC, IC14_A.VCC, IC14_B.VCC, IC14_C.VCC, IC14_D.VCC) + NET_C(GND, IC2_A.GND, IC2_D.GND, IC4_A.GND, IC4_B.GND, IC4_D.GND, IC14_A.GND, IC14_B.GND, IC14_C.GND, IC14_D.GND) + + RES(R1, RES_K(560)) + RES(R2, RES_K(560)) + RES(R3, RES_K(560)) + RES(R4, RES_K(560)) + RES(R5, RES_K(560)) + RES(R6, RES_K(560)) + RES(R8, RES_M(2)) + RES(R9, RES_K(820)) + RES(R10, RES_K(220)) + RES(R11, RES_K(620)) + RES(R12, RES_K(3.9)) + RES(R13, RES_K(3.9)) + RES(R14, RES_K(3.9)) + RES(R15, RES_M(5.6)) + RES(R16, RES_K(680)) + RES(R17, RES_K(10)) + RES(R18, RES_K(1)) + RES(R19, RES_K(150)) + RES(R20, RES_K(2)) + RES(R21, RES_K(180)) + RES(R22, RES_K(180)) + RES(R23, RES_K(130)) + RES(R24, RES_K(10)) + RES(R25, RES_K(2)) + RES(R26, RES_K(68)) + RES(R27, RES_K(270)) + RES(R28, RES_K(10)) + RES(R29, RES_K(130)) + RES(R31, RES_K(560)) + RES(R32, RES_K(220)) + RES(R33, RES_M(1.2)) + RES(R34, RES_K(12)) + RES(R35, RES_K(1)) + RES(R36, RES_K(15)) + RES(R37, RES_K(15)) + RES(R38, RES_K(820)) + RES(R39, RES_M(1)) + RES(R40, RES_K(220)) + RES(R41, RES_K(680)) + RES(R42, RES_K(820)) + RES(R43, RES_K(12)) + RES(R44, RES_K(560)) + RES(R45, RES_M(1.2)) + RES(R46, RES_K(680)) + RES(R47, RES_M(1.2)) + RES(R48, RES_K(12)) + RES(R49, RES_M(1.2)) + RES(R50, RES_K(820)) + RES(R51, RES_M(5.6)) + RES(R52, RES_K(680)) + RES(R53, RES_K(680)) + RES(R54, RES_M(2)) + RES(R55, RES_K(1)) + RES(R56, RES_K(10)) + RES(R57, RES_K(680)) + RES(R58, RES_M(1)) + RES(R59, RES_K(43)) + RES(R60, RES_K(43)) + RES(R61, RES_K(150)) + RES(R62, RES_M(1)) + //RES(R63, RES_K(82)) + POT(R64, RES_K(10)) + POT(R65, RES_K(10)) + RES(R66, RES_K(27)) + RES(R67, RES_K(68)) + RES(R68, RES_K(100)) + RES(R69, RES_M(1)) + RES(R70, RES_K(10)) + RES(R71, RES_K(16)) + RES(R72, RES_K(68)) + RES(R73, RES_K(47)) + RES(R74, RES_K(12)) + RES(R75, RES_K(120)) + RES(R76, RES_K(33)) + RES(R77, RES_K(33)) + RES(R78, RES_K(150)) + RES(R79, RES_K(130)) + RES(R80, RES_K(130)) + RES(R81, RES_K(560)) + RES(R82, RES_K(160)) + RES(R83, RES_M(1)) + RES(R84, RES_K(100)) + RES(R85, RES_K(270)) + RES(R86, RES_K(16)) + RES(R87, RES_K(100)) + RES(R94, RES_K(1)) + RES(R95, RES_K(1)) + RES(R96, RES_K(1)) + RES(R99, RES_K(1)) + RES(R100, RES_K(1)) + //RES(R101, RES_K(10)) + RES(R102, RES_K(3)) + RES(R103, RES_K(3)) + RES(R104, RES_M(1)) + RES(R105, RES_K(100)) + RES(R106, RES_K(100)) + RES(R107, RES_K(47)) + RES(R108, RES_K(20)) + RES(R109, RES_K(560)) + RES(R110, RES_K(1)) + RES(R116, RES_K(4.7)) + RES(R117, RES_K(20)) + RES(R118, RES_K(560)) + RES(R119, RES_K(560)) + RES(R120, RES_K(5.6)) + RES(R122, RES_K(2.7)) + RES(R123, RES_K(100)) + RES(R124, RES_K(3)) + RES(R125, RES_K(3)) + RES(R126, RES_K(6.8)) + RES(R127, RES_K(8.2)) + RES(R132, RES_M(1)) + RES(R133, RES_M(1)) + RES(R134, RES_M(1)) + RES(R135, RES_M(1)) + RES(R137, RES_K(5.6)) + RES(R138, RES_K(47)) + RES(R139, 100) + RES(R140, RES_K(10)) + RES(R141, RES_K(3)) + //RES(R142, RES_K(56)) + //RES(R143, RES_K(56)) + RES(R144, RES_K(100)) + RES(R150, RES_K(100)) + + CAP(C3, CAP_U(1.0)) + CAP(C4, CAP_U(0.1)) + CAP(C6, CAP_U(4.7)) + CAP(C7, CAP_U(0.33)) + CAP(C8, CAP_U(0.33)) + CAP(C10, CAP_U(0.1)) + CAP(C11, CAP_U(2.2)) + CAP(C12, CAP_U(2.2)) + CAP(C13, CAP_U(4.7)) + CAP(C14, CAP_U(2.2)) + CAP(C15, CAP_U(1.0)) + CAP(C16, CAP_U(10)) + CAP(C17, CAP_U(0.1)) + CAP(C18, CAP_U(0.1)) + CAP(C20, CAP_U(10)) + CAP(C22, CAP_U(0.033)) + CAP(C23, CAP_U(0.33)) + CAP(C26, CAP_U(0.022)) + CAP(C27, CAP_U(0.022)) + CAP(C35, CAP_U(0.0022)) + CAP(C37, CAP_U(0.0022)) + CAP(C38, CAP_U(0.1)) + CAP(C39, CAP_U(0.0022)) + CAP(C40, CAP_U(0.033)) + CAP(C41, CAP_U(1.0)) + CAP(C42, CAP_U(1.0)) + CAP(C44, CAP_U(0.0047)) + CAP(C45, CAP_U(0.1)) + CAP(C48, CAP_U(0.1)) + CAP(C49, CAP_U(0.0022)) + CAP(C50, CAP_U(1.0)) + CAP(C51, CAP_U(0.1)) + CAP(C52, CAP_U(0.1)) + CAP(C55, CAP_U(0.1)) + CAP(C70, CAP_U(1.0)) + CAP(C72, CAP_U(2.2)) + CAP(C73, CAP_U(1.0)) + CAP(C74, CAP_U(1.0)) + CAP(C75, CAP_U(0.1)) + CAP(C80, CAP_U(1.0)) + CAP(C81, CAP_U(0.1)) + CAP(C82, CAP_U(0.1)) + CAP(C84, CAP_U(0.1)) + CAP(C85, CAP_U(2.2)) + CAP(C97, CAP_U(0.0022)) + CAP(C98, CAP_U(0.0022)) + CAP(C100, CAP_U(0.22)) + //CAP(C102, CAP_U(0.001)) + CAP(C106, CAP_U(0.1)) + CAP(C109, CAP_U(0.1)) + CAP(C114, CAP_U(0.1)) + CAP(C121, CAP_U(0.001)) + CAP(C122, CAP_U(0.001)) + + DIODE(D1, "1N914") + DIODE(D2, "1N914") + DIODE(D3, "1N914") + DIODE(D4, "1N914") + DIODE(D5, "1N914") + DIODE(D6, "1N914") + DIODE(D7, "1N914") + DIODE(D8, "1N914") + DIODE(D9, "1N914") + DIODE(D10, "1N914") + DIODE(D11, "1N914") + DIODE(D12, "1N914") + DIODE(D13, "1N914") + DIODE(D14, "1N914") + DIODE(D15, "1N914") + + QBJT_EB(Q1, "2N3704") + QBJT_EB(Q2, "2N3704") + + // Noise Generator + CLOCK(HLE_SONAR_CLOCK, 1000) + NET_C(HLE_SONAR_CLOCK.GND, GND) + NET_C(HLE_SONAR_CLOCK.VCC, V12) + + SWITCH2(SONAR_ENABLE) + NET_C(SONAR_ENABLE.1, HLE_SONAR_CLOCK.Q) + NET_C(SONAR_ENABLE.2, GND) + NET_C(SONAR_ENABLE.Q, IC40.3) + + NET_C(IC40.1, IC40.12, IC41_C.A) + NET_C(IC40.4, IC41_C.Q) + NET_C(IC40.5, IC41_D.Q) + NET_C(R141.1, IC40.6, IC40.10, C45.1) + ALIAS(NOISE_A, R141.1) + NET_C(R141.2, R140.1) + NET_C(R140.2, V12) + ALIAS(NOISE, R140.1) + NET_C(IC40.8, IC41_C.B) + NET_C(IC40.13, IC41_D.A) + + // Sonar + NET_C(IC27_A.A, SONAR_SYNC.Q) + NET_C(IC27_A.Y, R70.1, IC25.15, IC41_D.B) + NET_C(R70.2, V12, IC29.RESET) + NET_C(IC29.GND, GND) + NET_C(IC29.VCC, V12) + NET_C(IC29.DISCH, R110.1, R107.1) + NET_C(R110.2, V12) + NET_C(IC29.THRESH, IC29.TRIG, R107.2, C72.1) + NET_C(C72.2, GND) + NET_C(IC29.OUT, D3.K, IC3_A.CLOCK) + NET_C(IC3_A.QQ, IC3_A.DATA) + NET_C(IC3_A.Q, D2.K, IC25.14) + NET_C(IC25.13, GND) + NET_C(IC25.2, R36.1) + NET_C(IC25.4, R72.1) + NET_C(IC25.10, R73.1) + NET_C(IC25.11, R75.1) + NET_C(R36.2, R72.2, R73.2, R75.2, D3.A, D2.A, R19.2, Q2.C) + NET_C(NOISE_A, R138.1) + NET_C(R138.2, C100.1, R137.1) + NET_C(C100.2, GND) + NET_C(R137.2, R139.1, C27.1, C26.1, R19.1) + NET_C(R139.2, GND) + NET_C(IC6.3, GND) + NET_C(IC6.2, R38.1, C27.2) + NET_C(IC6.1, R37.1, R38.2, R85.1, R27.1, C26.2) + NET_C(R37.2, D7.A, D8.K, IC6.5) + NET_C(D7.K, GND) + NET_C(D8.A, GND) + NET_C(IC6.6, R35.1, R39.1) + NET_C(R35.2, C23.1) + NET_C(C23.2, GND) + NET_C(IC6.7, R56.1, R39.2) + NET_C(R56.2, D14.K, Q2.B) + NET_C(D14.A, GND) + NET_C(Q2.E, GND) + + ALIAS(MIX_L, R27.2) + ALIAS(MIX_R, R85.2) + + // Low Filter + NET_C(C45.2, R68.1) + NET_C(R68.2, IC16.6, R66.1) + NET_C(IC16.5, GND) + NET_C(R66.2, IC16.7, R71.1) + NET_C(R71.2, R86.1, C51.1) + NET_C(R86.2, C55.1, IC17.5) + NET_C(C55.2, GND) + NET_C(C51.2, IC17.7, R82.1) + NET_C(R82.2, IC17.6, R123.1) + NET_C(R123.2, GND) + ALIAS(RUMBLE, IC17.7) + + // Submarine Engine + NET_C(IC31.4, V5) + NET_C(IC31.1, R120.1, R122.1) + NET_C(R120.2, V5) + NET_C(IC31.2, IC31.6, IC31.11, R122.2, C85.1) + NET_C(C85.2, GND) + NET_C(IC31.5, GND) + NET_C(IC31.13, R126.1, R127.1) + NET_C(R126.2, V5) + NET_C(IC31.8, IC31.12, R127.2, C84.1) + NET_C(C84.2, GND) + NET_C(IC31.10, SUBENG.Q) + NET_C(IC31.9, R124.1) + NET_C(R124.2, R125.1, C114.1) + NET_C(C114.2, GND) + NET_C(R125.2, R79.1, R80.1, C52.1) + NET_C(C52.2, GND) + NET_C(R79.2, MIX_L) + NET_C(R80.2, MIX_R) + + // Ship Explosion (L) + NET_C(RUMBLE, R87.1) + NET_C(R87.2, R84.1, C80.1) + NET_C(R84.2, GND) + NET_C(IC30.1, C80.2) + NET_C(IC30.7, R117.1) + NET_C(IC30.6, C81.1) + NET_C(C81.2, GND) + NET_C(LBOOM.Q, IC27_C.A) + NET_C(IC27_C.Y, R103.1) + NET_C(R103.2, R104.1, C70.1) + NET_C(C70.2, GND) + NET_C(R104.2, IC17.3, R83.1) + NET_C(R83.2, V5) + NET_C(IC17.1, IC17.2, IC30.2) + NET_C(R117.2, MIX_L) + + // Ship Explosion (R) + NET_C(RUMBLE, R105.1) + NET_C(R105.2, R106.1, C74.1) + NET_C(R106.2, GND) + NET_C(IC28.1, C74.2) + NET_C(IC28.7, R108.1) + NET_C(IC28.6, C75.1) + NET_C(C75.2, GND) + NET_C(RBOOM.Q, IC27_D.A) + NET_C(IC27_D.Y, R102.1) + NET_C(R102.2, R69.1, C73.1) + NET_C(C73.2, GND) + NET_C(R69.2, IC16.3, R62.1) + NET_C(R62.2, V5) + NET_C(IC16.1, IC16.2, IC28.2) + NET_C(R108.2, MIX_R) + + // Torpedo (L) + NET_C(LTORP.Q, R100.1, D10.A, D11.A) + NET_C(R100.2, V5) + NET_C(D10.K, C7.1, R46.1) + NET_C(D11.K, C14.1, R53.1) + NET_C(C7.2, C14.2, R132.2, R133.2, GND) + NET_C(R53.2, IC14_C.PLUS) + NET_C(R51.1, V12) + NET_C(R51.2, C42.1, R54.1, IC14_C.MINUS) + NET_C(R54.2, C42.2, IC14_C.OUT, R57.1) + NET_C(R57.2, R46.2, IC14_B.PLUS) + NET_C(NOISE, R42.1) + NET_C(R42.2, R47.1, IC14_B.MINUS) + NET_C(R47.2, C35.1, IC14_B.OUT) + NET_C(C35.2, R132.1, C98.1) + NET_C(C98.2, R133.1, R118.1) + NET_C(R118.2, MIX_L) + + // Torpedo (R) + NET_C(RTORP.Q, R55.1, D12.A, D9.A) + NET_C(R55.2, V5) + NET_C(D12.K, C8.1, R52.1) + NET_C(D9.K, C12.1, R16.1) + NET_C(C8.2, C12.2, R134.2, R135.2, GND) + NET_C(R16.2, IC2_A.PLUS) + NET_C(R15.1, V12) + NET_C(R15.2, C3.1, R8.1, IC2_A.MINUS) + NET_C(R8.2, C3.2, IC2_A.OUT, R41.1) + NET_C(R41.2, R52.2, IC14_A.PLUS) + NET_C(NOISE, R50.1) + NET_C(R50.2, R49.1, IC14_A.MINUS) + NET_C(R49.2, C37.1, IC14_A.OUT) + NET_C(C37.2, R134.1, C97.1) + NET_C(C97.2, R135.1, R109.1) + NET_C(R109.2, MIX_R) + + // Ship Partial Hit (L) + NET_C(LSHPHT.Q, R94.1, D6.A) + NET_C(R94.2, V5) + NET_C(D6.K, C13.1, R32.1) + NET_C(C13.2, C49.2, C22.2, GND) + NET_C(R32.2, IC4_D.PLUS) + NET_C(NOISE, R31.1) + NET_C(R31.2, R33.1, IC4_D.MINUS) + NET_C(R33.2, R34.1, IC4_D.OUT) + NET_C(R34.2, C49.1, R74.1) + NET_C(R74.2, C22.1, R78.1) + NET_C(R78.2, MIX_L) + + // Ship Partial Hit (R) + NET_C(RSHPHT.Q, R99.1, D13.A) + NET_C(R99.2, V5) + NET_C(D13.K, C6.1, R40.1) + NET_C(C6.2, C39.2, C40.2, GND) + NET_C(R40.2, IC14_D.PLUS) + NET_C(NOISE, R44.1) + NET_C(R44.2, R45.1, IC14_D.MINUS) + NET_C(R45.2, R48.1, IC14_D.OUT) + NET_C(R48.2, C39.1, R43.1) + NET_C(R43.2, C40.1, R61.1) + NET_C(R61.2, MIX_L) + + // Torpedo Collision + NET_C(TORPCOLL.Q, R95.1, D1.A) + NET_C(R95.2, V5) + NET_C(D1.K, C11.1, R10.1) + NET_C(C11.2, C4.2, C38.2, GND) + NET_C(R10.2, IC2_D.PLUS) + NET_C(NOISE, R11.1) + NET_C(R11.2, R9.1, IC2_D.MINUS) + NET_C(R9.2, R12.1, IC2_D.OUT) + NET_C(R12.2, C4.1, R13.1) + NET_C(R13.2, C38.1, R76.1, R77.1) + NET_C(R77.2, MIX_L) + NET_C(R76.2, MIX_R) + + // Alert + NET_C(ALERT.Q, IC27_B.A) + NET_C(IC27_B.Y, R96.2, D15.A, IC3_B.RESET) + NET_C(D15.K, C41.2, Q1.C, IC15.8) + NET_C(R14.2, R17.1, Q1.B) + NET_C(Q1.E, R58.1) + NET_C(IC15.10, C44.1) + NET_C(IC15.4, R59.2) + NET_C(IC15.5, R60.2) + NET_C(IC15.9, R116.2, IC3_B.CLOCK) + NET_C(IC3_B.QQ, IC3_B.DATA) + NET_C(IC3_B.Q, R18.1) + NET_C(R18.2, C10.1, R119.1, R81.1) + NET_C(V12, R96.1, C41.1, R14.1, R116.1, R59.1, R60.1) + NET_C(GND, R17.2, R58.2, C44.2, C10.2) + NET_C(R119.2, MIX_L) + NET_C(R81.2, MIX_R) + + // Mixers (shared) + NET_C(SOUND_OFF_L.Q, D4.A) + NET_C(SOUND_OFF_R.Q, D5.A) + + // Music + NET_C(MUSIC_A.Q, R1.1, R4.1) + NET_C(MUSIC_B.Q, R5.1, R6.1) + NET_C(MUSIC_C.Q, R3.1, R2.1) + NET_C(R1.2, R3.2, R5.2, MIX_L) + NET_C(R2.2, R4.2, R6.2, MIX_R) + + // Mixer (L) + NET_C(MIX_L, C15.1) + NET_C(R25.1, V12) + NET_C(R25.2, C16.1, C48.1, R23.1) + NET_C(C16.2, C48.2, C82.2, R64.1, R144.2, GND) + NET_C(R23.2, IC4_A.PLUS) + NET_C(D4.K, C82.1, R24.1) + NET_C(R24.2, C15.2, IC4_A.MINUS, R26.1, C121.1) + NET_C(C121.2, R26.2, IC4_A.OUT, R21.1) + NET_C(R21.2, R64.3) + NET_C(R64.2, C106.1) + NET_C(C106.2, R144.1) + ALIAS(OUT_L, C106.2) + + // Mixer (R) + NET_C(MIX_R, C50.1) + NET_C(R20.1, V12) + NET_C(R20.2, C20.1, C18.1, R29.1) + NET_C(C20.2, C18.2, C17.2, R65.1, R150.2, GND) + NET_C(R29.2, IC4_B.PLUS) + NET_C(D5.K, C17.1, R28.1) + NET_C(R28.2, C50.2, IC4_B.MINUS, R67.1, C122.1) + NET_C(C122.2, R67.2, IC4_B.OUT, R22.1) + NET_C(R22.2, R65.3) + NET_C(R65.2, C109.1) + NET_C(C109.2, R150.1) + ALIAS(OUT_R, C109.2) + + // Separate each input into the summing network + OPTIMIZE_FRONTIER(R27.1, RES_K(270), 50) // SONAR (L) + OPTIMIZE_FRONTIER(R77.1, RES_K(33), 50) // TORPCOLL (L) + OPTIMIZE_FRONTIER(R78.1, RES_K(150), 50) // L SHPHT + OPTIMIZE_FRONTIER(R79.1, RES_K(130), 50) // SUBENG (L) + OPTIMIZE_FRONTIER(R117.1, RES_K(20), 50) // L BOOM + OPTIMIZE_FRONTIER(R118.1, RES_K(560), 50) // L TORP + + OPTIMIZE_FRONTIER(R85.1, RES_K(270), 50) // SONAR (R) + OPTIMIZE_FRONTIER(R76.1, RES_K(33), 50) // TORPCOLL (R) + OPTIMIZE_FRONTIER(R61.1, RES_K(150), 50) // R SHPHT + OPTIMIZE_FRONTIER(R80.1, RES_K(130), 50) // SUBENG (R) + OPTIMIZE_FRONTIER(R108.1, RES_K(20), 50) // R BOOM + OPTIMIZE_FRONTIER(R109.1, RES_K(560), 50) // R TORP + + OPTIMIZE_FRONTIER(R138.1, RES_K(47), 50) // Isolation for NOISE_A going into SONAR section + OPTIMIZE_FRONTIER(R42.1, RES_K(820), 50) // Isolation for NOISE going into L TORP section + OPTIMIZE_FRONTIER(R50.1, RES_K(820), 50) // Isolation for NOISE going into R TORP section + OPTIMIZE_FRONTIER(R31.1, RES_K(560), 50) // Isolation for NOISE going into L SHPHT section + OPTIMIZE_FRONTIER(R44.1, RES_K(560), 50) // Isolation for NOISE going into R SHPHT section + OPTIMIZE_FRONTIER(R11.1, RES_K(620), 50) // Isolation for NOISE going into TORPCOLL section + OPTIMIZE_FRONTIER(R87.1, RES_K(100), 50) // Isolation for RUMBLE going into L BOOM section + OPTIMIZE_FRONTIER(R105.1, RES_K(100), 50) // Isolation for RUMBLE going into R BOOM section +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_fireone.h mame-0.224+dfsg.1/src/mame/audio/nl_fireone.h --- mame-0.223+dfsg.1/src/mame/audio/nl_fireone.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_fireone.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +#ifndef MAME_AUDIO_NL_FIREONE_H +#define MAME_AUDIO_NL_FIREONE_H + +#pragma once + +NETLIST_EXTERNAL(fireone) + +#endif // MAME_AUDIO_NL_FIREONE_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_flyball.cpp mame-0.224+dfsg.1/src/mame/audio/nl_flyball.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_flyball.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_flyball.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,191 @@ +// license:CC0 +// copyright-holders:Ryan Holtz, Ivan Vangelista +// +// Netlist for Atari's Flyball +// +// Derived from the schematics in the manual. +// +// Known problems/issues: +// * None. +// + +#include "netlist/devices/net_lib.h" + +static NETLIST_START(NE556_DIP) + NE555(A) + NE555(B) + + NET_C(A.GND, B.GND) + NET_C(A.VCC, B.VCC) + + DIPPINS( /* +--------------+ */ + A.DISCH, /* 1DISCH |1 ++ 14| VCC */ A.VCC, + A.THRESH, /* 1THRES |2 13| 2DISCH */ B.DISCH, + A.CONT, /* 1CONT |3 12| 2THRES */ B.THRESH, + A.RESET, /* 1RESET |4 NE556 11| 2CONT */ B.CONT, + A.OUT, /* 1OUT |5 10| 2RESET */ B.RESET, + A.TRIG, /* 1TRIG |6 9| 2OUT */ B.OUT, + A.GND, /* GND |7 8| 2TRIG */ B.TRIG + /* +--------------+ */ + ) +NETLIST_END() + +NETLIST_START(flyball) + + SOLVER(Solver, 48000) + ANALOG_INPUT(V5, 5) + ANALOG_INPUT(V18, 18) + ALIAS(VCC, V5) + CLOCK(H256, 15750.0) + CLOCK(V128, 61.5234375) + NET_C(VCC, H256.VCC, V128.VCC) + NET_C(GND, H256.GND, V128.GND) + + LOCAL_SOURCE(NE556_DIP) + + TTL_INPUT(BAT_SOUND, 1) + TTL_INPUT(FOOTSTEP, 1) + TTL_INPUT(CROWD_SL, 1) + TTL_INPUT(CROWD_ON, 1) + TTL_INPUT(CROWD_VL, 1) + NET_C(VCC, BAT_SOUND.VCC, FOOTSTEP.VCC, CROWD_SL.VCC, CROWD_ON.VCC, CROWD_VL.VCC) + NET_C(GND, BAT_SOUND.GND, FOOTSTEP.GND, CROWD_SL.GND, CROWD_ON.GND, CROWD_VL.GND) + + RES(R43, RES_K(68)) // RES., CARBON, 5%, 1/4W, 68K + RES(R73, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K + RES(R74, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K + POT(R75, RES_K(50)) // TRIMPOT, 50K + RES(R76, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K + RES(R77, 820) // RES., CARBON, 5%, 1/4W, 820 + RES(R78, RES_K(100)) // RES., CARBON, 5%, 1/4W, 100K + RES(R79, RES_K(1)) // RES., CARBON, 5%, 1/4W, 820K // Verified as 1K on a real board + RES(R80, RES_K(330)) // RES., CARBON, 5%, 1/4W, 330 // (330 on parts list, but 330K on schematic, 330 does not work in the netlist) + RES(R87, RES_K(1)) // RES., CARBON, 5%, 1/4W, 1K + RES(R88, RES_K(3.3)) // RES., CARBON, 5%, 1/4W, 3.3K + RES(R89, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K + RES(R90, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K + RES(R91, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K + RES(R92, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K + POT(R95, RES_K(10)) // TRIMPOT, 10K + RES(R96, RES_K(47)) // RES., CARBON, 5%, 1/4W, 47K + RES(R97A, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K + RES(R97B, RES_K(24.4)) // RES., CARBON, 5%, 1/4W, 10K // Verified to exist on a real board + RES(R98, RES_K(10)) // RES., CARBON, 5%, 1/4W, 10K + RES(R99, RES_K(33)) // RES., CARBON, 5%, 1/4W, 33K + + CAP(C34, CAP_U(0.0047)) // CAP., MYLAR, .0047uf + CAP(C44, CAP_U(0.0047)) // CAP., MYLAR, .0047uf + CAP(C45, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V + CAP(C46, CAP_U(0.015)) // CAP., CERAMIC DISC., 0.015 uf, 25V + CAP(C47, CAP_U(0.015)) // CAP., CERAMIC DISC., 0.015 uf, 25V + CAP(C48, CAP_U(10)) // CAP., ELECTROLYTIC, 10 uf, 25V + CAP(C49, CAP_U(100)) // CAP., ELECTROLYTIC, 100 uf, 25V + CAP(C51, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V + CAP(C52, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V + CAP(C53, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V + CAP(C79, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V + CAP(C80, CAP_U(0.1)) // CAP., CERAMIC DISC., 0.1 uf, 25V + + TTL_7486_DIP(IC_E7) + TTL_74164_DIP(IC_B7) + TTL_74164_DIP(IC_C7) + TTL_7474_DIP(IC_D7) + NET_C(VCC, IC_E7.14, IC_B7.14, IC_C7.14, IC_D7.14, IC_E7.13, IC_B7.9, IC_B7.2, IC_C7.9, IC_C7.2) + NET_C(GND, IC_E7.7, IC_B7.7, IC_C7.7, IC_D7.7, IC_D7.2, IC_E7.4, IC_E7.5) + + SUBMODEL(NE556_DIP, IC_E8) + NET_C(VCC, IC_E8.14) + NET_C(GND, IC_E8.7) + + MC3340_DIP(IC_A8) + MC3340_DIP(IC_C8) + NET_C(V18, IC_A8.8, IC_C8.8) + NET_C(GND, IC_A8.3, IC_C8.3) + + UA741_DIP8(IC_D8) + NET_C(V18, IC_D8.7) + NET_C(GND, IC_D8.4) + + // Random Noise Generator + NET_C(H256.Q, IC_B7.8, IC_C7.8, IC_D7.11, IC_D7.4) + NET_C(VCC, IC_D7.13, IC_D7.1) + NET_C(IC_B7.13, IC_C7.1) + NET_C(IC_C7.13, IC_D7.12) + NET_C(IC_D7.9, IC_E7.9) + NET_C(IC_B7.5, IC_E7.10) + NET_C(IC_E7.8, IC_E7.12) + NET_C(IC_E7.11, IC_B7.1) + NET_C(IC_D7.5, IC_D7.10) + NET_C(V128, IC_D7.3) + + // Band Pass Filter + NET_C(IC_D7.8, R78.1) + NET_C(R78.2, R77.1, C46.1, C47.1) + NET_C(GND, R77.2) + NET_C(C46.2, R80.1, IC_D8.6) + NET_C(C47.2, R80.2, IC_D8.2) + NET_C(V5, IC_D8.3) + + // Bat Sound + NET_C(BAT_SOUND.Q, IC_E8.4, IC_E8.10, IC_E7.1) + NET_C(V5, IC_E7.2, R73.1, R74.1) + NET_C(R74.2, R75.3, R75.2, IC_E8.1) + NET_C(R75.1, R43.1) + NET_C(R43.2, IC_E8.2, IC_E8.6, C34.1) + NET_C(R73.2, IC_E8.13, R76.1) + NET_C(R76.2, IC_E8.12, IC_E8.8, C44.1) + NET_C(IC_E8.3, IC_E8.11, C45.1) + NET_C(GND, C34.2, C44.2, C45.2) + NET_C(IC_E8.5, R91.1) + NET_C(IC_E8.9, R90.1) + NET_C(IC_E7.3, R89.1) + + // Footstep Envelope Generator + NET_C(FOOTSTEP.Q, R88.1) + NET_C(IC_D7.8, R79.1) + NET_C(R79.2, C79.1) + NET_C(C79.2, IC_C8.1) + NET_C(R88.2, C48.1, IC_C8.2) + NET_C(GND, C48.2) + NET_C(IC_C8.7, R92.1) + + // Crowd & Whistle Volume Control + NET_C(IC_D8.6, R87.1) + NET_C(R87.2, C80.1) + NET_C(C80.2, IC_A8.1) + NET_C(CROWD_VL.Q, R97A.2, R97B.2) + NET_C(CROWD_ON.Q, R98.2) + NET_C(CROWD_SL.Q, R99.2) + NET_C(R97A.1, R97B.1, R98.1, R99.1, C49.1, IC_A8.2) + NET_C(GND, C49.2) + NET_C(IC_A8.7, R96.1) + + // Mixer + NET_C(R89.2, R90.2, R91.2, R92.2, R96.2, C51.1, R95.3) + NET_C(GND, C51.2, R95.1) + NET_C(R95.2, C53.1) + NET_C(C53.2, C52.1) + NET_C(C52.2, GND) + ALIAS(OUTPUT, C53.2) + + // Unconnected pins + HINT(IC_A8.6, NC) + HINT(IC_C8.6, NC) + HINT(IC_B7.2, NC) + HINT(IC_B7.9, NC) + HINT(IC_B7.3, NC) + HINT(IC_B7.4, NC) + HINT(IC_B7.6, NC) + HINT(IC_B7.10, NC) + HINT(IC_B7.11, NC) + HINT(IC_B7.12, NC) + HINT(IC_C7.3, NC) + HINT(IC_C7.4, NC) + HINT(IC_C7.5, NC) + HINT(IC_C7.6, NC) + HINT(IC_C7.10, NC) + HINT(IC_C7.11, NC) + HINT(IC_C7.12, NC) + HINT(IC_D7.6, NC) + HINT(IC_E7.6, NC) +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_flyball.h mame-0.224+dfsg.1/src/mame/audio/nl_flyball.h --- mame-0.223+dfsg.1/src/mame/audio/nl_flyball.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_flyball.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:CC0 +// copyright-holders:Ivan Vangelista, Ryan Holtz +#ifndef MAME_AUDIO_NL_FLYBALL_H +#define MAME_AUDIO_NL_FLYBALL_H + +#pragma once + +NETLIST_EXTERNAL(flyball) + +#endif // MAME_AUDIO_NL_FLYBALL_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_mario.cpp mame-0.224+dfsg.1/src/mame/audio/nl_mario.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_mario.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_mario.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -53,14 +53,16 @@ SN74LS629(1J_A, CAP_N(3.9)) NET_C(1J_A.RNG, V5) NET_C(1J_A.ENQ, ttllow) - NET_C(GND, 1J_A.GND) + NET_C(GND, 1J_A.OSCGND) + NET_C(VCC, 1J_A.OSCVCC) // #define MR_C17 CAP_N(22) /* verified */ SN74LS629(2J_A, CAP_N(22)) NET_C(2J_A.RNG, V5) NET_C(2J_A.ENQ, ttllow) - NET_C(GND, 2J_A.GND) + NET_C(GND, 2J_A.OSCGND) + NET_C(VCC, 2J_A.OSCVCC) TTL_7486_XOR(1K_A, 1J_A.Y, 2J_A.Y) TTL_7408_AND(2K_A, 2H_A.Q, 1K_A) @@ -99,12 +101,14 @@ SN74LS629(1J_B, CAP_N(39)) /* C5 */ NET_C(1J_B.RNG, V5) NET_C(1J_B.ENQ, ttllow) - NET_C(GND, 1J_B.GND) + NET_C(GND, 1J_B.OSCGND) + NET_C(VCC, 1J_B.OSCVCC) SN74LS629(2J_B, CAP_N(6.8)) /* C16 */ NET_C(2J_B.RNG, V5) NET_C(2J_B.ENQ, ttllow) - NET_C(GND, 2J_B.GND) + NET_C(GND, 2J_B.OSCGND) + NET_C(VCC, 2J_B.OSCVCC) TTL_7486_XOR(1K_B, 1J_B.Y, 2J_B.Y) TTL_7408_AND(2K_B, 2H_B.Q, 1K_B) @@ -139,12 +143,13 @@ SN74LS629(4K_A, CAP_U(0.022)) NET_C(4K_A.RNG, V5) NET_C(4K_A.ENQ, ttllow) - NET_C(GND, 4K_A.GND) + NET_C(GND, 4K_A.OSCGND) + NET_C(VCC, 4K_A.OSCVCC) NET_C(R65.1, 4J_A.Q) NET_C(R65.2, 4K_A.FC, C44.1) NET_C(C44.2, GND) - CD4020_WI(3H, 4K_B.Y, ttllow, V5, GND) + CD4020(3H, 4K_B.Y, ttllow, V5, GND) TTL_7404_INVERT(4J_B, 3H.Q12) RES(R64, RES_K(20)) @@ -153,7 +158,8 @@ SN74LS629(4K_B, CAP_U(0.0047)) NET_C(4K_B.RNG, V5) NET_C(4K_B.ENQ, ttllow) - NET_C(GND, 4K_B.GND) + NET_C(GND, 4K_B.OSCGND) + NET_C(VCC, 4K_B.OSCVCC) NET_C(R64.1, 4J_B.Q) NET_C(R64.2, 4K_B.FC, C43.1) NET_C(C43.2, GND) diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_ripoff.cpp mame-0.224+dfsg.1/src/mame/audio/nl_ripoff.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_ripoff.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_ripoff.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -22,8 +22,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_ripoff.h" - // // Optimizations diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_segaspeech.cpp mame-0.224+dfsg.1/src/mame/audio/nl_segaspeech.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_segaspeech.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_segaspeech.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,119 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles + +// +// Netlist for Sega Speech board +// +// Derived from the schematics in the Sega G-80 manual. +// +// Known problems/issues: +// +// * Mostly works. Not 100% sure about using a current source +// for input. +// + +#include "netlist/devices/net_lib.h" +#include "nl_segaspeech.h" + +// +// Optimizations +// + + + + +// +// Main netlist +// + +NETLIST_START(segaspeech) + + SOLVER(Solver, 1000) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 2e-5) + + TTL_INPUT(I_SP0250, 0) + PARAM(I_SP0250.MODEL, "74XXOC") + NET_C(I_SP0250.GND, GND) + NET_C(I_SP0250.VCC, I_V5) + ALIAS(I_SPEECH, I_SP0250.Q) + + ANALOG_INPUT(I_V5, 5) + ANALOG_INPUT(I_VM5, -5) + + // + // There are two schematic drawings of the speech board + // that show fairly different outputs from the SP0250. + // Both have their problems. + // + // The simpler one is included in the Astro Blaster and + // Space Fury manuals. This is largely correct, except + // that it is believed (not verified) that R20 should be + // 4.7K instead of 470 Ohms. This schematic does not show + // the CD4053 mixer. + // + // The more complex schematic is included in the G-80 + // schematics package, and in the Star Trek and Zektor + // manuals. It has several significant errors (all verified + // from a working PCB): + // + // 1. U8 pins 2 and 3 are swapped + // 2. The connection from R20 to GND should be removed + // (this also disconnected C50 and R21 from GND) + // 3. R13 should be 220k, not 22k + // + // With the fixes above, the output sections of the two + // schematics line up, minus the mixing section, which is + // only shown on the more complex schematic. + // + // The mixing section is trivial, with 3 bits from a control + // port controlling three switches in the CD4053. Bit 3 + // enables/disables speech. Bit 4 enables/disables an + // unconnected source. And bit 5 enables/disables incoming + // external sound. The incoming sound is also routed through + // a pot to enable control over the relative volume. + // + // For purposes of this netlist, and since it runs at high + // speeds, we tap the speech output before it hits the + // CD4053 and manually manage the speech output. + // + // Since we use MAME to manage the mixing, the control bits + // are managed directly there, rather than in this netlist. + // + + // + // This represents the schematic drawing from Astro Blaster + // and Space Fury; there is no control register and it + // works. + // + RES(R17, RES_K(10)) + RES(R18, RES_K(22)) + RES(R19, RES_K(250)) + RES(R20, RES_K(4.7)) // schematic shows 470Ohm, but a real PCB had 4.7k here + RES(R21, RES_K(10)) + + CAP(C9, CAP_U(0.1)) + CAP(C10, CAP_U(0.047)) + CAP(C50, CAP_U(0.003)) + + TL081_DIP(U8) // Op. Amp. + NET_C(U8.7, I_V5) + NET_C(U8.4, I_VM5) + + NET_C(I_SPEECH, R17.1, C9.1) + NET_C(R17.2, I_V5) + NET_C(C9.2, R18.1) + NET_C(R18.2, C10.1, R19.2, U8.3) + NET_C(R19.1, C10.2, GND) + NET_C(R20.1, GND) + NET_C(R20.2, U8.2, R21.2, C50.2) + NET_C(U8.6, R21.1, C50.1) + ALIAS(OUTPUT, U8.6) + + // + // In the more complex case, this would feed into a + // CD4053 for switching. We rely on this being managed + // at the driver level. + // + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_segaspeech.h mame-0.224+dfsg.1/src/mame/audio/nl_segaspeech.h --- mame-0.223+dfsg.1/src/mame/audio/nl_segaspeech.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_segaspeech.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_NL_SEGASPEECH_H +#define MAME_AUDIO_NL_SEGASPEECH_H + +#pragma once + +NETLIST_EXTERNAL(segaspeech) + +#endif // MAME_AUDIO_NL_SEGASPEECH_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_segausb.cpp mame-0.224+dfsg.1/src/mame/audio/nl_segausb.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_segausb.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_segausb.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,544 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles + +// +// Netlist for Sega Universal Sound Board +// +// The Sega Universal Sound Board was used by several early G80 +// vector and raster games, notably Star Trek and Tac/Scan, +// among others. It is largely implemented as a MAME device, but +// the analog audio section is implemented here. +// +// Known problems/issues: +// +// * WIP. +// + +#include "netlist/devices/net_lib.h" +#include "nl_segausb.h" + + + +// +// Optimizations +// + +#define USE_AFUNC_MIXING (1) +#define ENABLE_NOISE_FRONTIERS (1) +#define UNDERCLOCK_NOISE_GEN (1) +#define ENABLE_FRONTIERS (0) + + + +// +// Hacks +// + + + +NETLIST_START(segausb) + + SOLVER(Solver, 1000) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 2e-5) + + ANALOG_INPUT(I_U12_DAC, 0) // AD7524 + ANALOG_INPUT(I_U13_DAC, 0) // AD7524 + ANALOG_INPUT(I_U14_DAC, 0) // AD7524 + TTL_INPUT(I_U2B_SEL, 0) // 74LS74 + + ANALOG_INPUT(I_U24_DAC, 0) // AD7524 + ANALOG_INPUT(I_U25_DAC, 0) // AD7524 + ANALOG_INPUT(I_U26_DAC, 0) // AD7524 + TTL_INPUT(I_U38B_SEL, 0) // 74LS74 + + ANALOG_INPUT(I_U27_DAC, 0) // AD7524 + ANALOG_INPUT(I_U28_DAC, 0) // AD7524 + ANALOG_INPUT(I_U29_DAC, 0) // AD7524 + TTL_INPUT(I_U2A_SEL, 0) // 74LS74 + + NET_C(GND, I_U2B_SEL.GND, I_U38B_SEL.GND, I_U2A_SEL.GND) + NET_C(I_V5, I_U2B_SEL.VCC, I_U38B_SEL.VCC, I_U2A_SEL.VCC) + + TTL_INPUT(I_U41_OUT0, 0) // 8253 PIT U41 + TTL_INPUT(I_U41_OUT1, 0) + TTL_INPUT(I_U41_OUT2, 0) + + TTL_INPUT(I_U42_OUT0, 0) // 8253 PIT U42 + TTL_INPUT(I_U42_OUT1, 0) + TTL_INPUT(I_U42_OUT2, 0) + + TTL_INPUT(I_U43_OUT0, 0) // 8253 PIT U43 + TTL_INPUT(I_U43_OUT1, 0) + TTL_INPUT(I_U43_OUT2, 0) + + NET_C(GND, I_U41_OUT0.GND, I_U41_OUT1.GND, I_U41_OUT2.GND) + NET_C(I_V5, I_U41_OUT0.VCC, I_U41_OUT1.VCC, I_U41_OUT2.VCC) + + NET_C(GND, I_U42_OUT0.GND, I_U42_OUT1.GND, I_U42_OUT2.GND) + NET_C(I_V5, I_U42_OUT0.VCC, I_U42_OUT1.VCC, I_U42_OUT2.VCC) + + NET_C(GND, I_U43_OUT0.GND, I_U43_OUT1.GND, I_U43_OUT2.GND) + NET_C(I_V5, I_U43_OUT0.VCC, I_U43_OUT1.VCC, I_U43_OUT2.VCC) + + ANALOG_INPUT(I_V5, 5) + ANALOG_INPUT(I_V12, 12) + ANALOG_INPUT(I_VM12, -12) + + RES(R7, RES_K(100)) + RES(R8, RES_K(100)) + RES(R9, RES_K(100)) + RES(R10, RES_K(100)) + RES(R12, RES_K(100)) + RES(R13, RES_K(100)) + RES(R14, RES_K(33)) + RES(R15, RES_K(100)) + RES(R16, RES_K(100)) + RES(R17, RES_K(5.6)) + RES(R18, RES_K(100)) + RES(R19, RES_K(100)) + RES(R20, RES_K(10)) + RES(R21, RES_K(10)) + RES(R22, RES_K(10)) + RES(R23, RES_K(1)) + RES(R24, RES_K(1)) + RES(R25, RES_K(100)) + RES(R26, RES_K(5.6)) + RES(R27, RES_K(10)) + RES(R28, RES_K(100)) + RES(R29, RES_K(100)) + RES(R30, RES_K(1)) + RES(R31, RES_K(100)) + RES(R32, RES_K(100)) + RES(R33, RES_K(1)) + RES(R34, RES_K(100)) + RES(R35, RES_K(100)) + RES(R36, RES_K(100)) + RES(R37, RES_K(33)) + RES(R38, RES_K(100)) + RES(R39, RES_K(100)) + RES(R40, RES_K(10)) + RES(R41, RES_K(10)) + RES(R42, RES_K(100)) + RES(R43, RES_K(100)) + RES(R44, RES_K(33)) + RES(R45, RES_K(100)) + RES(R46, RES_K(100)) + RES(R47, RES_K(5.6)) + RES(R48, RES_K(100)) + RES(R49, RES_K(100)) + RES(R50, RES_K(10)) + RES(R51, RES_K(10)) + RES(R52, RES_K(10)) + RES(R53, RES_K(1)) + RES(R54, RES_K(100)) + RES(R55, RES_K(100)) + RES(R56, RES_K(1)) + RES(R59, RES_K(1)) + RES(R60, RES_K(2.2)) + RES(R61, RES_K(33)) + RES(R62, 270) + RES(R63, RES_K(1)) + RES(R64, RES_K(2.7)) + RES(R65, RES_K(2.7)) + +// CAP(C6, CAP_P(100)) +// CAP(C7, CAP_P(100)) +// CAP(C8, CAP_P(100)) + CAP(C9, CAP_U(0.01)) + CAP(C13, CAP_U(0.01)) + CAP(C14, CAP_U(1)) + CAP(C15, CAP_U(1)) + CAP(C16, CAP_U(0.01)) + CAP(C17, CAP_U(0.01)) +// CAP(C19, CAP_P(100)) +// CAP(C20, CAP_P(100)) +// CAP(C21, CAP_P(100)) +// CAP(C22, CAP_P(100)) +// CAP(C23, CAP_P(100)) +// CAP(C24, CAP_P(100)) + CAP(C25, CAP_U(0.01)) + CAP(C32, CAP_U(0.01)) + CAP(C33, CAP_U(1)) + CAP(C34, CAP_U(1)) + CAP(C35, CAP_U(1)) + CAP(C36, CAP_U(1)) + CAP(C51, CAP_U(0.15)) + CAP(C52, CAP_U(0.1)) + CAP(C53, CAP_U(0.082)) + CAP(C54, CAP_U(1)) + CAP(C55, CAP_U(0.15)) + CAP(C56, CAP_U(0.15)) + +// TL082_DIP(U1) // Op. Amp. +// NET_C(U1.7, I_V12) +// NET_C(U1.4, I_VM12) + +// TTL_74LS74(U2) // Dual D-Type Positive Edge-Triggered Flip-Flop -- not emulated +// NET_C(U2.7, GND) +// NET_C(U2.14, I_V5) + + TL082_DIP(U3) // Op. Amp. + NET_C(U3.8, I_V12) + NET_C(U3.4, I_VM12) + + TL082_DIP(U4) // Op. Amp. + NET_C(U4.8, I_V12) + NET_C(U4.4, I_VM12) + + TL082_DIP(U5) // Op. Amp. + NET_C(U5.8, I_V12) + NET_C(U5.4, I_VM12) + + TL082_DIP(U6) // Op. Amp. + NET_C(U6.8, I_V12) + NET_C(U6.4, I_VM12) + + CD4053_DIP(U7) // 3x analog demuxer + NET_C(U7.16, I_V5) + NET_C(U7.6, GND) // INH + NET_C(U7.7, I_V12) // VEE + NET_C(U7.8, GND) + + CD4053_DIP(U8) // 3x analog demuxer + NET_C(U8.16, I_V5) + NET_C(U8.6, GND) // INH + NET_C(U8.7, I_V12) // VEE + NET_C(U8.8, GND) + + TL082_DIP(U9) // Op. Amp. + NET_C(U9.8, I_V12) + NET_C(U9.4, I_VM12) + +// TTL_74LS139_DIP(U10) // Dual 1-of-4 Decoder -- not emulated + +// TTL_74LS139_DIP(U11) // Dual 1-of-4 Decoder -- not emulated + +// AD7524_DIP(U12) // DAC -- not emulated +// NET_C(U12.3, GND) +// NET_C(U12.14, I_V5) + +// AD7524_DIP(U13) // DAC -- not emulated +// NET_C(U12.3, GND) +// NET_C(U12.14, I_V5) + +// AD7524_DIP(U14) // DAC -- not emulated +// NET_C(U12.3, GND) +// NET_C(U12.14, I_V5) + + CD4053_DIP(U15) // 3x analog demuxer + NET_C(U15.16, I_V5) + NET_C(U15.6, GND) // INH + NET_C(U15.7, I_V12) // VEE + NET_C(U15.8, GND) + + CD4053_DIP(U16) // 3x analog demuxer + NET_C(U16.16, I_V5) + NET_C(U16.6, GND) // INH + NET_C(U16.7, I_V12) // VEE + NET_C(U16.8, GND) + + TL082_DIP(U17) // Op. Amp. + NET_C(U17.8, I_V12) + NET_C(U17.4, I_VM12) + + TL082_DIP(U18) // Op. Amp. + NET_C(U18.8, I_V12) + NET_C(U18.4, I_VM12) + + TL082_DIP(U19) // Op. Amp. + NET_C(U19.8, I_V12) + NET_C(U19.4, I_VM12) + + TL082_DIP(U20) // Op. Amp. + NET_C(U20.8, I_V12) + NET_C(U20.4, I_VM12) + + TL082_DIP(U21) // Op. Amp. + NET_C(U21.8, I_V12) + NET_C(U21.4, I_VM12) + + TL082_DIP(U22) // Op. Amp. + NET_C(U22.8, I_V12) + NET_C(U22.4, I_VM12) + + TL082_DIP(U23) // Op. Amp. + NET_C(U23.8, I_V12) + NET_C(U23.4, I_VM12) + +// AD7524_DIP(U24) // DAC -- not emulated +// NET_C(U24.3, GND) +// NET_C(U24.14, I_V5) + +// AD7524_DIP(U25) // DAC -- not emulated +// NET_C(U25.3, GND) +// NET_C(U25.14, I_V5) + +// AD7524_DIP(U26) // DAC -- not emulated +// NET_C(U26.3, GND) +// NET_C(U26.14, I_V5) + +// AD7524_DIP(U27) // DAC -- not emulated +// NET_C(U27.3, GND) +// NET_C(U27.14, I_V5) + +// AD7524_DIP(U28) // DAC -- not emulated +// NET_C(U28.3, GND) +// NET_C(U28.14, I_V5) + +// AD7524_DIP(U29) // DAC -- not emulated +// NET_C(U29.3, GND) +// NET_C(U29.14, I_V5) + + CD4053_DIP(U30) // 3x analog demuxer + NET_C(U30.16, I_V5) + NET_C(U30.6, GND) // INH + NET_C(U30.7, I_V12) // VEE + NET_C(U30.8, GND) + + CD4053_DIP(U31) // 3x analog demuxer + NET_C(U31.16, I_V5) + NET_C(U31.6, GND) // INH + NET_C(U31.7, I_V12) // VEE + NET_C(U31.8, GND) + +// TTL_74LS74(U38) // Dual D-Type Positive Edge-Triggered Flip-Flop -- not emulated +// NET_C(U38.7, GND) +// NET_C(U38.14, I_V5) + + TL081_DIP(U49) // Op. Amp. + NET_C(U49.7, I_V12) + NET_C(U49.4, I_VM12) + + MM5837_DIP(U60) + NET_C(U60.2, I_VM12) + NET_C(U60.4, I_V12) +#if (UNDERCLOCK_NOISE_GEN) + // officially runs at 48-112kHz, but little noticeable difference + // in exchange for a big performance boost + PARAM(U60.FREQ, 24000) +#endif + + // + // Sheet 6, noise source + // + + NET_C(U60.1, GND) + NET_C(U60.3, R65.1) + NET_C(R65.2, R64.2, R63.2, R62.2, C53.2, C52.1) + NET_C(R64.1, C54.1) + NET_C(C54.2, GND) + NET_C(R63.1, C55.2, C56.2) + NET_C(C55.1, GND) + NET_C(C56.1, GND) + NET_C(R62.1, C51.2) + NET_C(C51.1, GND) + NET_C(C53.1, GND) + NET_C(C52.2, R61.2, U49.3) + NET_C(R61.1, GND) + NET_C(U49.2, R60.1, R59.2) + NET_C(R60.2, U49.6) + NET_C(R59.1, GND) +#if (ENABLE_NOISE_FRONTIERS) + AFUNC(NOISEFUNC, 1, "A0") + NET_C(R60.2, NOISEFUNC.A0) + ALIAS(NOISE, NOISEFUNC.Q) +#else + ALIAS(NOISE, R60.2) +#endif + + // + // Sheet 7, top-left + // + + NET_C(I_U42_OUT0, C14.1) + NET_C(C14.2, R20.2, U3.5) + NET_C(R20.1, GND) + NET_C(U3.6, U3.7) + AFUNC(DAC_U12, 2, "A0*A1") + NET_C(DAC_U12.A0, U3.7) + NET_C(DAC_U12.A1, I_U12_DAC) + NET_C(DAC_U12.Q, R12.2) + + NET_C(I_U42_OUT1, C15.1) + NET_C(C15.2, R21.2, U4.5) + NET_C(R21.1, GND) + NET_C(U4.6, U4.7) + AFUNC(DAC_U13, 2, "A0*A1") + NET_C(DAC_U13.A0, U4.7) + NET_C(DAC_U13.A1, I_U13_DAC) + NET_C(DAC_U13.Q, R13.2) + + NET_C(I_U42_OUT2, U15.10, U15.9) + NET_C(U15.15, U15.14, R32.1) + NET_C(U15.1, R33.1) + NET_C(U15.12, NOISE) + NET_C(U15.13, U16.3) + NET_C(U15.11, U16.11, U16.10, U16.9, I_U2B_SEL) + NET_C(R33.2, C13.2, R32.2, R31.1, U15.4) + NET_C(C13.1, GND) + NET_C(U15.3, R30.1) + NET_C(R31.2, R30.2, C9.2, U6.3) + NET_C(C9.1, GND) + NET_C(U6.2, R22.2, R17.1) + NET_C(R22.1, GND) + NET_C(R17.2, U6.1, U16.14) + + NET_C(U16.13, U16.5, R9.1) + NET_C(U16.12, R19.2) + NET_C(U16.15, NOISE) + NET_C(U16.1, R18.2) + NET_C(R18.1, R19.1, U5.6, R15.2) + NET_C(U5.5, GND) + NET_C(R15.1, U5.7) + AFUNC(DAC_U14, 2, "A0*A1") + PARAM(DAC_U14.THRESH, 1e-5) + NET_C(DAC_U14.A0, U5.7) + NET_C(DAC_U14.A1, I_U14_DAC) + NET_C(DAC_U14.Q, R14.2) + NET_C(R14.1, R13.1, R12.1, U6.6, R16.1) + NET_C(U6.5, GND) + NET_C(U6.7, R16.2, U16.4) + + // + // Sheet 7, bottom-left + // + + NET_C(I_U41_OUT0, C34.1) + NET_C(C34.2, R41.2, U19.5) + NET_C(R41.1, GND) + NET_C(U19.6, U19.7) + AFUNC(DAC_U26, 2, "A0*A1") + NET_C(DAC_U26.A0, U19.7) + NET_C(DAC_U26.A1, I_U26_DAC) + NET_C(DAC_U26.Q, R39.2) + + NET_C(I_U41_OUT1, C33.1) + NET_C(C33.2, R40.2, U18.5) + NET_C(R40.1, GND) + NET_C(U18.6, U18.7) + AFUNC(DAC_U25, 2, "A0*A1") + NET_C(DAC_U25.A0, U18.7) + NET_C(DAC_U25.A1, I_U25_DAC) + NET_C(DAC_U25.Q, R38.2) + + NET_C(I_U41_OUT2, U8.10, U8.9) + NET_C(U8.15, U8.14, R25.1) + NET_C(U8.1, R24.1) + NET_C(U8.12, NOISE) + NET_C(U8.13, U7.3) + NET_C(U8.11, U7.11, U7.10, U7.9, I_U38B_SEL) + NET_C(R24.2, C16.2, R25.2, R29.1, U8.4) + NET_C(C16.1, GND) + NET_C(U8.3, R23.1) + NET_C(R23.2, R29.2, C17.2, U9.3) + NET_C(C17.1, GND) + NET_C(U9.2, R27.2, R26.1) + NET_C(R27.1, GND) + NET_C(R26.2, U9.1, U7.14) + + NET_C(U7.13, U7.5, R8.1) + NET_C(U7.12, R35.2) + NET_C(U7.15, NOISE) + NET_C(U7.1, R34.2) + NET_C(R34.1, R35.1, U17.6, R36.2) + NET_C(U17.5, GND) + NET_C(R36.1, U17.7) + AFUNC(DAC_U24, 2, "A0*A1") + PARAM(DAC_U24.THRESH, 1e-5) + NET_C(DAC_U24.A0, U17.7) + NET_C(DAC_U24.A1, I_U24_DAC) + NET_C(DAC_U24.Q, R37.2) + NET_C(R37.1, R38.1, R39.1, U9.6, R28.1) + NET_C(U9.5, GND) + NET_C(U9.7, R28.2, U7.4) + + // + // Sheet 7, top-right + // + + NET_C(I_U43_OUT0, C35.1) + NET_C(C35.2, R50.2, U20.5) + NET_C(R50.1, GND) + NET_C(U20.6, U20.7) + AFUNC(DAC_U27, 2, "A0*A1") + NET_C(DAC_U27.A0, U20.7) + NET_C(DAC_U27.A1, I_U27_DAC) + NET_C(DAC_U27.Q, R42.2) + + NET_C(I_U43_OUT1, C36.1) + NET_C(C36.2, R51.2, U21.5) + NET_C(R51.1, GND) + NET_C(U21.6, U21.7) + AFUNC(DAC_U28, 2, "A0*A1") + NET_C(DAC_U28.A0, U21.7) + NET_C(DAC_U28.A1, I_U28_DAC) + NET_C(DAC_U28.Q, R43.2) + + NET_C(I_U43_OUT2, U30.10, U30.9) + NET_C(U30.15, U30.14, R55.1) + NET_C(U30.1, R56.1) + NET_C(U30.12, NOISE) + NET_C(U30.13, U31.3) + NET_C(U30.11, U31.11, U31.10, U31.9, I_U2A_SEL) + NET_C(R54.2, C32.2, R55.2, R56.2, U30.4) + NET_C(C32.1, GND) + NET_C(U30.3, R53.1) + NET_C(R53.2, R54.1, C25.2, U23.3) + NET_C(C25.1, GND) + NET_C(U23.2, R52.2, R47.1) + NET_C(R52.1, GND) + NET_C(R47.2, U23.1, U31.14) + + NET_C(U31.13, U31.5, R10.1) + NET_C(U31.12, R49.2) + NET_C(U31.15, NOISE) + NET_C(U31.1, R48.2) + NET_C(R48.1, R49.1, U22.6, R45.2) + NET_C(U22.5, GND) + NET_C(R45.1, U22.7) + AFUNC(DAC_U29, 2, "A0*A1") + PARAM(DAC_U29.THRESH, 1e-5) + NET_C(DAC_U29.A0, U22.7) + NET_C(DAC_U29.A1, I_U29_DAC) + NET_C(DAC_U29.Q, R44.2) + NET_C(R42.1, R43.1, R44.1, U23.6, R46.1) + NET_C(U23.5, GND) + NET_C(U23.7, R46.2, U31.4) + +#if (USE_AFUNC_MIXING) + // This prevents the individual sound nets from combining + // at the mixing resistors. + AFUNC(MIXFUNC, 4, "(A0+A1+A2+A3)/4") + NET_C(MIXFUNC.A0, R7.1) + NET_C(MIXFUNC.A1, R10.2) + NET_C(MIXFUNC.A2, R9.2) + NET_C(MIXFUNC.A3, R8.2) + ALIAS(OUTPUT, MIXFUNC.Q) +#else + NET_C(R7.1, R10.2, R9.2, R8.2) + ALIAS(OUTPUT, R8.2) +#endif + + // + // Unconnected inputs + // + NET_C(GND, R7.2) + NET_C(GND, U3.2, U3.3, U4.2, U4.3, U5.2, U5.3) + NET_C(GND, U17.2, U17.3, U18.2, U18.3, U19.2, U19.3) + NET_C(GND, U20.2, U20.3, U21.2, U21.3, U22.2, U22.3) + + // unconnected inputs to analog switch -- what's the right approach? + NET_C(GND, U8.2, U8.5, U7.2) + NET_C(GND, U15.2, U15.5, U16.2) + NET_C(GND, U30.2, U30.5, U31.2) +/* + OPTIMIZE_FRONTIER(R48.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R49.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R18.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R19.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R34.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R35.1, RES_M(1), 50) +*/ + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_segausb.h mame-0.224+dfsg.1/src/mame/audio/nl_segausb.h --- mame-0.223+dfsg.1/src/mame/audio/nl_segausb.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_segausb.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_NL_SEGAUSB_H +#define MAME_AUDIO_NL_SEGAUSB_H + +#pragma once + +NETLIST_EXTERNAL(segausb) + +#endif // MAME_AUDIO_NL_SEGAUSB_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_solarq.cpp mame-0.224+dfsg.1/src/mame/audio/nl_solarq.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_solarq.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_solarq.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -26,7 +26,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_solarq.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_spacewar.cpp mame-0.224+dfsg.1/src/mame/audio/nl_spacewar.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_spacewar.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_spacewar.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -16,7 +16,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_spacewar.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_spacfury.cpp mame-0.224+dfsg.1/src/mame/audio/nl_spacfury.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_spacfury.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_spacfury.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,1105 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles + +// +// Netlist for Space Fury +// +// Derived from the schematics in the Space Fury manual. +// +// Known problems/issues: +// +// * Works pretty well. All sounds trigger. +// +// * Very challenging to get running at speed. We have to use +// the "slow" CA3080 model for the star spin sound, which +// creates a giant net that dominates time and is sensitive +// to cheats to reduce timesteps, etc +// + +#include "netlist/devices/net_lib.h" +#include "nl_spacfury.h" + + +// +// Optimizations +// + +#define HLE_SHOOT_VCO (1) +#define SPLIT_SHARED_OSCILLATORS (1) +#define ENABLE_SPIN_VCO_FRONTIER (1) +#define ENABLE_NOISE_FRONTIERS (1) +#define ENABLE_FRONTIERS (1) +#define UNDERCLOCK_NOISE_GEN (1 && ENABLE_NOISE_FRONTIERS) + + + + +// +// Hacks +// + +#define ADD_CLIPPING_DIODES (1) + + + +// +// Local models +// + +#define D_1N914(name) DIODE(name, "1N914") +#define D_1N4002(name) DIODE(name, "D(IS=65.4p RS=42.2m BV=100 IBV=5.00u CJO=14.8p M=0.333 N=1.36 TT=2.88u)") + +// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4401 +#define Q_2N4401(name) QBJT_EB(name, "NPN(Is=26.03f Xti=3 Eg=1.11 Vaf=90.7 Bf=4.292K Ne=1.244 Ise=26.03f Ikf=.2061 Xtb=1.5 Br=1.01 Nc=2 Isc=0 Ikr=0 Rc=.5 Cjc=11.01p Mjc=.3763 Vjc=.75 Fc=.5 Cje=24.07p Mje=.3641 Vje=.75 Tr=233.7n Tf=466.5p Itf=0 Vtf=0 Xtf=0 Rb=10)") + +// SPICE model taken from https://www.onsemi.com/support/design-resources/models?rpn=2N4403 +#define Q_2N4403(name) QBJT_EB(name, "PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=216.2 Ne=1.829 Ise=58.72f Ikf=1.079 Xtb=1.5 Br=3.578 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=111.6n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)") + +// JFET transistors not supported, but this should do the trick +//#define Q_2N4093(name) MOSFET(name, "NMOS(VTO=-1.0)") +#define Q_2N4093(name) MOSFET(name, "NMOS(VTO=-1 CAPMOD=0)") + +#define LM555_DIP NE555_DIP +#define LM566_DIP NE566_DIP + +#define TTL_74LS00_DIP TTL_7400_DIP + + + +// +// DIP mappings use the submodels below for CA3080 +// +#define CA3080_FAST_DIP(name) SUBMODEL(_CA3080_FAST_DIP, name) +#define CA3080_SLOW_DIP(name) SUBMODEL(_CA3080_SLOW_DIP, name) +static NETLIST_START(_CA3080_FAST_DIP) + ALIAS(2, F.A0) // - + ALIAS(3, F.A1) // + + ALIAS(4, F.A2) // V- + ALIAS(5, RIABC.1) // IB + ALIAS(6, VO.OP) // FIXME + ALIAS(7, F.A4) // V+ + + RES(RI, 26000) + NET_C(RI.1, F.A0) + NET_C(RI.2, F.A1) + // Delivers I0 + AFUNC(F, 5, "max(-0.5e-3, min(0.5e-3, 19.2 * (A3 - A2) * A0))") + RES(RIABC, 1) + NET_C(RIABC.2, F.A2) + NET_C(RIABC.1, F.A3) // IB + VCCS(VO, 1) + ANALOG_INPUT(XGND, 0) + NET_C(XGND, VO.IN, VO.ON) // FIXME: assume symmetric supply + NET_C(F.Q, VO.IP) +NETLIST_END() + +static NETLIST_START(_CA3080_SLOW_DIP) +// +// These items are common to several models +// +#define CA3080_D(name) DIODE(name, "D(IS=2p RS=5 BV=40 CJO=3p TT=6n)") +#define CA3080_NPN(name) QBJT_EB(name, "NPN(IS=21.48f XTI=3 EG=1.11 VAF=80 BF=550 ISE=50f NE=1.5 IKF=10m XTB=1.5 BR=.1 ISC=10f NC=2 IKR=3m RC=10 CJC=800f MJC=.3333 VJC=.75 FC=.5 CJE=1.3p MJE=.3333 VJE=.75 TR=30n TF=400P ITF=30m XTF=1 VTF=10 CJS=5.8P MJS=.3333 VJS=.75)") +#define CA3080_PNP(name) QBJT_EB(name, "PNP(IS=50f XTI=3 EG=1.11 VAF=80 BF=100 ISE=130f NE=1.5 IKF=1m XTB=1.5 BR=1 ISC=0 NC=2 IKR=0 RC=0 CJC=4p MJC=.3333 VJC=.75 FC=.5 CJE=1.4p MJE=.3333 VJE=.75 TR=500n TF=23n ITF=.1 XTF=1 VTF=10 CJS=5.5P MJS=.3333 VJS=.75)") + + CA3080_D(D1) + CA3080_D(D2) + CA3080_NPN(Q1) + CA3080_PNP(Q2) + CA3080_PNP(Q3) + CA3080_NPN(Q4) + CA3080_NPN(Q5) + CA3080_PNP(Q6) + CA3080_PNP(Q7) + CA3080_PNP(Q8) + CA3080_PNP(Q9) + CA3080_NPN(Q10) + CA3080_NPN(Q11) + CA3080_NPN(Q12) + CA3080_NPN(Q13) + CA3080_PNP(Q14) + CA3080_PNP(Q15) + + ALIAS(2, Q10.B) // N1 + ALIAS(3, Q5.B) // N28 + ALIAS(4, Q1.E) // N13 + ALIAS(5, Q1.B) // N11 + ALIAS(6, Q6.C) // N30 + ALIAS(7, Q8.E) // N8 + NET_C(Q8.E, Q9.E, Q14.E, Q15.E) // N8 + NET_C(Q1.B, Q1.C, Q4.B) // N11 + NET_C(Q1.E, Q4.E, Q11.E, Q12.E) // N13 + NET_C(Q6.C, Q7.C, Q13.C) // N30 + NET_C(Q3.B, Q10.C, Q14.C, D1.A) // N1N13 + NET_C(Q2.E, Q14.B, Q15.C, Q15.B) // N1N15 + NET_C(Q2.B, Q3.E, D1.K) // N1N17 + NET_C(Q2.C, Q3.C, Q11.C, Q13.B) // N1N22 + NET_C(Q5.C, Q6.B, Q9.C, D2.A) // N1N32 + NET_C(Q6.E, Q7.B, D2.K) // N1N34 + NET_C(Q7.E, Q8.C, Q8.B, Q9.B) // N1N36 + NET_C(Q4.C, Q5.E, Q10.E) // N1N52 + NET_C(Q11.B, Q12.C, Q12.B, Q13.E) // N1N44 +NETLIST_END() + + + +// +// Main netlist +// + +NETLIST_START(spacfury) + + SOLVER(Solver, 1000) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 4e-5) + // subtle but noticeable effect where the spin "whoosh" is missing + // some upper harmonics at 4e-5; however, this is the most demanding + // solver in the system and it keeps jumping around as I tweak things +// PARAM(Solver.Solver_21.DYNAMIC_MIN_TIMESTEP, 2e-5) + + // Overwrite model - the default model uses minimum datasheet + // specifications for 5V. These are for 10V and thus closer to the + // 12V used in this circuit. + NET_MODEL("CD4XXX FAMILY(TYPE=CMOS IVL=0.3 IVH=0.7 OVL=0.05 OVH=0.05 ORL=384 ORH=384)") + + LOCAL_SOURCE(_CA3080_FAST_DIP) + LOCAL_SOURCE(_CA3080_SLOW_DIP) + + TTL_INPUT(I_LO_D0, 0) + ALIAS(I_CRAFTS_SCALE, I_LO_D0) + TTL_INPUT(I_LO_D1, 0) + ALIAS(I_MOVING, I_LO_D1) + TTL_INPUT(I_LO_D2, 0) + ALIAS(I_THRUST, I_LO_D2) + TTL_INPUT(I_LO_D6, 0) + ALIAS(I_STAR_SPIN, I_LO_D6) + TTL_INPUT(I_LO_D7, 0) + ALIAS(I_PARTIAL_WARSHIP, I_LO_D7) + + NET_C(GND, I_LO_D0.GND, I_LO_D1.GND, I_LO_D2.GND, I_LO_D6.GND, I_LO_D7.GND) + NET_C(I_V5, I_LO_D0.VCC, I_LO_D1.VCC, I_LO_D2.VCC, I_LO_D6.VCC, I_LO_D7.VCC) + + TTL_INPUT(I_HI_D0, 0) + ALIAS(I_CRAFTS_JOINING, I_HI_D0) + TTL_INPUT(I_HI_D1, 0) + ALIAS(I_SHOOT, I_HI_D1) + TTL_INPUT(I_HI_D2, 0) + ALIAS(I_FIREBALL, I_HI_D2) + TTL_INPUT(I_HI_D3, 0) + ALIAS(I_SMALL_EXPL, I_HI_D3) + TTL_INPUT(I_HI_D4, 0) + ALIAS(I_LARGE_EXPL, I_HI_D4) + TTL_INPUT(I_HI_D5, 0) + ALIAS(I_DOCKING_BANG, I_HI_D5) + + NET_C(GND, I_HI_D0.GND, I_HI_D1.GND, I_HI_D2.GND, I_HI_D3.GND, I_HI_D4.GND, I_HI_D5.GND) + NET_C(I_V5, I_HI_D0.VCC, I_HI_D1.VCC, I_HI_D2.VCC, I_HI_D3.VCC, I_HI_D4.VCC, I_HI_D5.VCC) + + RES(R_PSG_1, 1000) + RES(R_PSG_2, 1000) + RES(R_PSG_3, 1000) + NET_C(I_V5, R_PSG_1.1, R_PSG_2.1, R_PSG_3.1) + + ANALOG_INPUT(I_V5, 5) + ANALOG_INPUT(I_V12, 12) + ANALOG_INPUT(I_VM12, -12) + +// RES(R1, RES_K(2.2)) -- part of final amp (not emulated) +// RES(R2, RES_K(10)) -- part of final amp (not emulated) +// RES(R4, RES_K(330)) -- part of final amp (not emulated) +// RES(R5, RES_M(1)) -- part of final amp (not emulated) + RES(R6, RES_K(680)) + RES(R7, RES_K(680)) + RES(R8, RES_K(10)) + RES(R9, RES_K(100)) + RES(R10, 680) + RES(R11, RES_K(47)) + RES(R12, RES_K(47)) + RES(R13, RES_K(47)) + RES(R14, RES_M(1)) +// RES(R15, RES_K(100)) -- part of final amp (not emulated) + RES(R18, RES_K(10)) + RES(R19, RES_K(470)) + RES(R20, RES_K(22)) + RES(R21, RES_K(47)) + RES(R22, RES_K(3.9)) + RES(R23, RES_K(82)) + RES(R24, RES_K(4.7)) + RES(R25, RES_K(47)) + RES(R26, 100) + RES(R27, RES_K(100)) + RES(R28, RES_K(100)) + RES(R29, RES_K(2.2)) + RES(R30, RES_K(4.7)) + RES(R31, RES_K(100)) + RES(R32, RES_K(100)) + RES(R33, RES_M(1)) + RES(R34, RES_K(10)) + RES(R35, RES_K(680)) + RES(R36, 680) + RES(R37, RES_K(47)) + RES(R38, RES_K(47)) + RES(R39, RES_K(2.2)) + RES(R40, RES_K(47)) + RES(R41, RES_K(47)) + RES(R42, RES_K(100)) + RES(R43, RES_K(2.2)) + RES(R44, RES_K(100)) + RES(R45, RES_M(2.2)) + RES(R46, RES_K(100)) + RES(R47, RES_K(9.1)) + RES(R48, 100) + RES(R49, RES_K(4.7)) + RES(R50, RES_K(47)) + RES(R51, RES_K(10)) + RES(R52, RES_K(47)) + RES(R53, RES_K(47)) + RES(R54, RES_K(100)) + RES(R55, RES_K(47)) + RES(R56, RES_K(100)) + RES(R57, RES_K(47)) + RES(R58, RES_K(100)) + RES(R59, RES_K(10)) + RES(R60, 100) + RES(R61, RES_K(9.1)) + RES(R62, RES_K(100)) + RES(R63, RES_K(47)) + RES(R64, RES_K(10)) + RES(R65, RES_K(470)) + RES(R66, RES_K(10)) + RES(R67, 100) + RES(R68, RES_K(10)) + RES(R69, RES_K(22)) + RES(R70, RES_K(220)) + RES(R71, RES_K(2.2)) + RES(R72, RES_K(22)) + RES(R73, RES_K(330)) + RES(R74, RES_K(330)) + RES(R75, RES_K(100)) + RES(R76, RES_K(10)) + RES(R77, RES_K(10)) + RES(R78, RES_K(22)) + RES(R79, RES_K(10)) + RES(R80, RES_K(100)) + RES(R81, RES_K(82)) + RES(R82, RES_K(39)) + RES(R83, RES_K(10)) + RES(R84, RES_K(22)) + RES(R85, RES_K(47)) + RES(R86, RES_K(47)) + RES(R87, RES_K(47)) + RES(R88, RES_K(100)) + RES(R89, RES_K(100)) + RES(R90, RES_K(10)) + RES(R91, RES_M(1)) + RES(R92, RES_K(470)) + RES(R93, RES_K(470)) + RES(R94, RES_K(220)) + RES(R95, RES_K(22)) + RES(R96, RES_K(100)) + RES(R97, RES_K(100)) + RES(R98, RES_K(10)) + RES(R99, RES_K(3.9)) + RES(R100, RES_K(47)) + RES(R101, RES_K(2.2)) + RES(R102, RES_M(1)) + RES(R103, RES_K(10)) + RES(R104, RES_K(10)) + RES(R105, RES_K(100)) + RES(R106, RES_K(10)) + RES(R107, RES_K(220)) + RES(R108, RES_K(220)) + RES(R109, RES_K(10)) + RES(R110, 100) + RES(R111, RES_K(10)) + RES(R112, RES_K(470)) + RES(R113, RES_K(100)) + RES(R114, RES_K(100)) + RES(R115, RES_K(100)) + RES(R116, RES_K(100)) + RES(R117, RES_K(100)) + RES(R118, RES_K(100)) + RES(R119, RES_M(2.2)) + RES(R120, RES_K(100)) + RES(R121, RES_K(100)) + RES(R122, RES_M(2.2)) + RES(R123, RES_K(22)) + RES(R124, RES_M(3.9)) + RES(R125, RES_K(100)) + RES(R126, RES_K(100)) + RES(R127, RES_M(2.2)) + RES(R128, RES_K(22)) + RES(R129, RES_K(22)) + RES(R130, RES_K(22)) + RES(R131, RES_K(10)) + RES(R132, RES_K(2.2)) + RES(R133, RES_K(2.2)) + RES(R135, RES_K(10)) + RES(R136, RES_K(10)) + RES(R134, RES_K(10)) + RES(R137, RES_K(2.2)) + RES(R138, RES_K(150)) + RES(R139, RES_K(150)) + RES(R140, RES_K(2.2)) + RES(R141, RES_K(220)) + RES(R142, RES_K(100)) + RES(R143, RES_K(10)) + RES(R144, RES_K(220)) + RES(R146, RES_K(220)) + RES(R147, 680) + RES(R148, RES_K(10)) + RES(R149, RES_K(220)) + +// CAP(C1, CAP_U(4.7)) -- part of final amp (not emulated) +// CAP(C2, CAP_U(0.05)) +// CAP(C3, CAP_U(0.05)) +// CAP(C4, CAP_U(10)) -- part of final amp (not emulated) + CAP(C5, CAP_U(0.01)) + CAP(C6, CAP_U(0.01)) + CAP(C7, CAP_U(4.7)) + CAP(C8, CAP_U(0.047)) +// CAP(C9, CAP_U(0.05)) +// CAP(C10, CAP_U(0.05)) + CAP(C11, CAP_U(0.01)) + CAP(C12, CAP_U(0.01)) + CAP(C13, CAP_U(0.01)) + CAP(C14, CAP_U(0.01)) + CAP(C15, CAP_U(0.01)) +// CAP(C16, CAP_U(0.05)) +// CAP(C17, CAP_U(0.05)) + CAP(C18, CAP_U(0.01)) + CAP(C19, CAP_U(0.047)) + CAP(C20, CAP_U(0.01)) + CAP(C21, CAP_U(4.7)) + CAP(C22, CAP_U(0.05)) + CAP(C23, CAP_U(0.05)) + CAP(C24, CAP_U(10)) +// CAP(C25, CAP_U(0.05)) + CAP(C26, CAP_U(0.0033)) +// CAP(C27, CAP_U(0.05)) + CAP(C28, CAP_U(0.1)) + CAP(C29, CAP_U(0.001)) + CAP(C30, CAP_U(0.0022)) + CAP(C31, CAP_U(0.022)) + CAP(C32, CAP_U(10)) + CAP(C33, CAP_U(0.1)) + CAP(C34, CAP_U(0.1)) + CAP(C35, CAP_U(0.0033)) + CAP(C36, CAP_U(4.7)) + CAP(C37, CAP_U(0.0022)) +// CAP(C38, CAP_U(0.05)) +// CAP(C39, CAP_U(0.05)) + CAP(C40, CAP_U(0.047)) + CAP(C41, CAP_U(0.0047)) + CAP(C42, CAP_U(0.01)) + CAP(C43, CAP_U(0.01)) + CAP(C44, CAP_U(4.7)) +// CAP(C45, CAP_U(0.05)) +// CAP(C46, CAP_U(0.05)) + CAP(C47, CAP_U(0.047)) + CAP(C48, CAP_U(4.7)) + CAP(C49, CAP_U(0.1)) + CAP(C50, CAP_U(4.7)) + CAP(C51, CAP_U(0.1)) + CAP(C52, CAP_U(0.022)) + CAP(C53, CAP_U(10)) + CAP(C54, CAP_U(0.1)) + CAP(C55, CAP_U(100)) +// CAP(C56, CAP_U(0.05)) + CAP(C57, CAP_U(4.7)) +// CAP(C58, CAP_U(0.05)) + CAP(C59, CAP_U(0.01)) + CAP(C60, CAP_U(0.01)) + CAP(C61, CAP_U(0.047)) + CAP(C62, CAP_U(0.047)) + CAP(C63, CAP_U(0.05)) + CAP(C64, CAP_U(0.05)) +// CAP(C65, CAP_U(0.05)) + CAP(C66, CAP_U(0.033)) +// CAP(C67, CAP_U(0.05)) + CAP(C68, CAP_U(0.1)) + CAP(C69, CAP_U(0.1)) + CAP(C70, CAP_U(0.1)) + CAP(C71, CAP_U(0.047)) + CAP(C72, CAP_P(100)) + CAP(C73, CAP_U(0.1)) +// CAP(C75, CAP_U(10)) +// CAP(C76, CAP_U(10)) +// CAP(C77, CAP_U(0.1)) +// CAP(C78, CAP_U(0.1)) +// CAP(C79, CAP_U(0.1)) +// CAP(C80, CAP_U(0.1)) + + D_1N914(D1) + D_1N914(D2) + D_1N914(D3) + D_1N914(D4) + D_1N914(D5) + D_1N914(D6) + D_1N914(D7) + D_1N914(D8) + D_1N914(D9) + D_1N914(D10) + D_1N914(D11) + D_1N914(D12) + D_1N914(D13) + D_1N914(D14) + D_1N914(D15) + D_1N914(D16) + +// Q_2N4093(Q1) -- part of final amp (not emulated) + Q_2N4093(Q2) + Q_2N4093(Q3) + Q_2N4403(Q4) + Q_2N4403(Q5) + Q_2N4403(Q6) + Q_2N4093(Q7) + Q_2N4093(Q8) + Q_2N4403(Q9) + Q_2N4403(Q10) + Q_2N4401(Q11) + Q_2N4401(Q12) + Q_2N4403(Q13) + +// TL082_DIP(U1) // Op. Amp. -- part of final amp (not emulated) +// NET_C(U1.8, I_V12) +// NET_C(U1.4, I_VM12) + + TL082_DIP(U2) // Op. Amp. + NET_C(U2.8, I_V12) + NET_C(U2.4, I_VM12) + + CD4069_DIP(U3) // Hex Inverter + NET_C(U3.7, GND) + NET_C(U3.14, I_V12) + + TL082_DIP(U4) // Op. Amp. + NET_C(U4.8, I_V12) + NET_C(U4.4, I_VM12) + + TL082_DIP(U5) // Op. Amp. + NET_C(U5.8, I_V12) + NET_C(U5.4, I_VM12) + + CD4011_DIP(U6) // Quad 2-Input NAND Gates + NET_C(U6.7, GND) + NET_C(U6.14, I_V12) + + CA3080_SLOW_DIP(U7) // Op. Amp. + NET_C(U7.4, I_VM12) + NET_C(U7.7, I_V12) + + TL082_DIP(U8) // Op. Amp. + NET_C(U8.8, I_V12) + NET_C(U8.4, I_VM12) + + MM5837_DIP(U9) // Noise Generator +#if (UNDERCLOCK_NOISE_GEN) + // officially runs at 48-112kHz, but little noticeable difference + // in exchange for a big performance boost + PARAM(U9.FREQ, 24000) + + // the NOISE_B signal can run even lower, so use a second + // MM5837 instance at a lower frequency to drive it; this + // second instance doesn't really exist, it just allows us + // a bit more performance + MM5837_DIP(U9B) // Noise Generator + PARAM(U9B.FREQ, 12000) +#endif + + TL082_DIP(U10) // Op. Amp. + NET_C(U10.8, I_V12) + NET_C(U10.4, I_VM12) + + CD4024_DIP(U11) // 7-Stage Ripple Binary Counter + NET_C(U11.7, GND) + NET_C(U11.14, I_V12) + + CA3080_SLOW_DIP(U12) // Op. Amp. + NET_C(U12.4, I_VM12) + NET_C(U12.7, I_V12) + + TL082_DIP(U13) // Op. Amp. + NET_C(U13.8, I_V12) + NET_C(U13.4, I_VM12) + + TL082_DIP(U14) // Op. Amp. + NET_C(U14.8, I_V12) + NET_C(U14.4, I_VM12) + + TL082_DIP(U15) // Op. Amp. + NET_C(U15.8, I_V12) + NET_C(U15.4, I_VM12) + + TL082_DIP(U16) // Op. Amp. + NET_C(U16.8, I_V12) + NET_C(U16.4, I_VM12) + + LM555_DIP(U17) + + TL082_DIP(U18) // Op. Amp. + NET_C(U18.8, I_V12) + NET_C(U18.4, I_VM12) + + CD4069_DIP(U19) // Hex Inverter + NET_C(U19.7, GND) + NET_C(U19.14, I_V12) + + CD4011_DIP(U20) // Quad 2-Input NAND Gates + NET_C(U20.7, GND) + NET_C(U20.14, I_V12) + + TL082_DIP(U21) // Op. Amp. + NET_C(U21.8, I_V12) + NET_C(U21.4, I_VM12) + + CD4011_DIP(U22) // Quad 2-Input NAND Gates + NET_C(U22.7, GND) + NET_C(U22.14, I_V12) + + TL082_DIP(U23) // Op. Amp. + NET_C(U23.8, I_V12) + NET_C(U23.4, I_VM12) + +// TTL_74LS08_DIP(U25) // Quad 2-Input AND Gates +// NET_C(U25.7, GND) +// NET_C(U25.14, I_V5) + + TTL_7407_DIP(U26) // Hex Buffers with High Votage Open-Collector Outputs + NET_C(U26.7, GND) + NET_C(U26.14, I_V5) + +// TTL_74LS10_DIP(U28) // Triple 3-Input NAND Gate +// NET_C(U28.7, GND) +// NET_C(U28.14, I_V5) + +// TTL_74LS14_DIP(U30) +// NET_C(U30.7, GND) +// NET_C(U30.14, I_V5) + + TTL_7406_DIP(U31) // Hex inverter -- currently using a clone of 7416, no open collector behavior + NET_C(U31.7, GND) + NET_C(U31.14, I_V5) + +// TTL_74LS374_DIP(U32) // Octal D-Type Transparent Latches And Edge-Triggered Flip-Flop +// NET_C(U32.10, GND) +// NET_C(U32.20, I_V5) +// +// TTL_74LS374_DIP(U33) // Octal D-Type Transparent Latches And Edge-Triggered Flip-Flop +// NET_C(U33.10, GND) +// NET_C(U33.20, I_V5) + +// TTL_74LS30_DIP(U34) // 8-Input NAND Gate +// NET_C(U34.7, GND) +// NET_C(U34.14, I_V5) + +// TTL_74LS14_DIP(U35) +// NET_C(U35.7, GND) +// NET_C(U35.14, I_V5) + + // + // Sheet 7, top (Moving) + // + + // Pairs of CD4069 are used together with resistors and capacitors + // to create oscillators. The formula for the frequency is + // 1/1.39*R*C. The following are simulated here: + // + // #1: R35=680K, C12=0.01uF, Freq=105.80Hz + // #2: R6=680K, C11=0.01uF, Freq=105.80Hz + // #3: R7=680K, C13=0.01uF, Freq=105.80Hz + // + // Since these are all the same and components have tolerances, + // we use tweaked frequencies for #2 and #3 + + CLOCK(O1CLK, 105.8) + NET_C(O1CLK.GND, GND) + NET_C(O1CLK.VCC, I_V12) + NET_C(O1CLK.Q, R56.1) + NET_C(GND, R35.1, R35.2, C12.1, C12.2, U3.5, U3.9) + + CLOCK(O2CLK, 105.7) + NET_C(O2CLK.GND, GND) + NET_C(O2CLK.VCC, I_V12) + NET_C(O2CLK.Q, R54.1) + NET_C(GND, R6.1, R6.2, C11.1, C11.2, U3.1, U3.3) + + CLOCK(O3CLK, 105.9) + NET_C(O3CLK.GND, GND) + NET_C(O3CLK.VCC, I_V12) + NET_C(O3CLK.Q, R58.1) + NET_C(GND, R7.1, R7.2, C13.1, C13.2, U3.13, U3.11) + + NET_C(I_MOVING, U31.13) + NET_C(U31.12, R56.2, R54.2, R58.2, R59.1) + NET_C(R59.2, C15.2, R36.2, C14.1) + NET_C(C15.1, U4.2, R28.2) + NET_C(R28.1, U4.1, C14.2, R8.1) + NET_C(U4.3, GND, R36.1) + + NET_C(R8.2, C5.2, R10.2, C6.1) + NET_C(C5.1, U4.6, R9.2) + NET_C(R9.1, U4.7, C6.2) + ALIAS(MOVING_SUM, C6.2) + NET_C(U4.5, GND, R10.1) + + // + // Sheet 7, 2nd from top (Star Spin/Partial Warship) + // + +#if (SPLIT_SHARED_OSCILLATORS) + + // In the schematics, the below oscillators are shared; however, + // connecting them also brings the two nets together, so we just + // duplicate the clocks here to help keep the very expensive net + // below more isolated. + + CLOCK(O1CLKA, 105.8) + NET_C(O1CLKA.GND, GND) + NET_C(O1CLKA.VCC, I_V12) + NET_C(O1CLKA.Q, R55.2) + + CLOCK(O2CLKB, 105.7) + NET_C(O2CLKB.GND, GND) + NET_C(O2CLKB.VCC, I_V12) + NET_C(O2CLKB.Q, R53.2) + + CLOCK(O3CLKC, 105.9) + NET_C(O3CLKC.GND, GND) + NET_C(O3CLKC.VCC, I_V12) + NET_C(O3CLKC.Q, R57.2) + +#else + + NET_C(O1CLK.Q, R55.2) + NET_C(O2CLK.Q, R53.2) + NET_C(O3CLK.Q, R57.2) + +#endif + + NET_C(I_STAR_SPIN, U31.3, U31.1) + NET_C(U31.2, R148.1) + NET_C(C32.1, I_V12, R62.1, R72.1) + + NET_C(R148.2, C32.2, R62.2, U13.5) + NET_C(R72.2, R90.2, R91.1, D6.A) + NET_C(R90.1, GND) + NET_C(U13.6, U13.7, D5.A) + NET_C(D5.K, D6.K, R94.1, R92.1) + NET_C(R94.2, R108.2, U16.5) + NET_C(R108.1, GND) + NET_C(R92.2, U16.6, R107.1, C47.1) + +#if (ENABLE_SPIN_VCO_FRONTIER) + // split the envelope VCO from the rest of the circuit + // to break up a giant net into 2 smaller ones + NET_C(C47.2, U16.7, U16.2, TESTFUNC.A0) + AFUNC(TESTFUNC, 1, "A0") + NET_C(TESTFUNC.Q, R89.1, R88.1) +#else + NET_C(C47.2, U16.7, U16.2, R89.1, R88.1) +#endif + + NET_C(U16.3, R93.1, R91.2) + NET_C(R93.2, U16.1, D10.A) + NET_C(D10.K, R106.2) + NET_C(R106.1, Q11.B, R133.2) + NET_C(R133.1, GND) + NET_C(Q11.E, GND) + NET_C(Q11.C, R107.2) + + NET_C(I_PARTIAL_WARSHIP, U31.5) + NET_C(U31.6, R57.1, R53.1, R55.1, C33.1) + NET_C(C33.2, R63.1) + NET_C(R63.2, R34.1, R51.2, R64.2, U8.6) + NET_C(R34.2, U8.1, C26.2) + ALIAS(STAR_SPIN_PARTIAL_WARSHIP_SUM, U8.1) + NET_C(C26.1, U8.2, U7.6) + NET_C(U8.3, GND) + NET_C(U31.4, C34.1) + NET_C(NOISE_A, C34.1) + NET_C(C34.2, R64.1) + NET_C(U8.5, R49.2, R50.1) + NET_C(R49.1, GND) + NET_C(U8.7, R61.1, R51.1) + NET_C(R61.2, R60.2, U12.3) + NET_C(R60.1, GND) + NET_C(U12.2, GND) + NET_C(U12.5, R88.2) + NET_C(R89.2, U7.5) + NET_C(U7.3, R48.2, R47.2) + NET_C(U7.2, GND) + NET_C(R48.1, GND) + NET_C(R47.1, C35.2, U13.1, R50.2) + NET_C(U13.3, GND) + NET_C(U13.2, C35.1, U12.6) + + // + // Sheet 7, middle (Fireball) + // + + NET_C(I_FIREBALL, U26.11) + NET_C(U26.10, U22.12, R125.2) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_FIREBALL) + NET_C(D_FIREBALL.A, U22.12) + NET_C(D_FIREBALL.K, I_V12) +#endif + NET_C(R125.1, I_V12, R124.1) + NET_C(R124.2, U22.13, C70.1) + NET_C(C70.2, U22.10) + NET_C(U22.8, U22.9, U22.11) + NET_C(U22.11, R123.1) + NET_C(R123.2, D12.A) + NET_C(D12.K, R86.1, R87.1, C50.1) + NET_C(C50.2, GND) + NET_C(R86.2, U14.6, R85.1) + NET_C(R87.2, U14.5, D8.K, Q8.D) + NET_C(NOISE_B, Q8.G) + NET_C(Q8.S, GND) + NET_C(D8.A, GND) + NET_C(R85.2, R71.1, U14.7) + NET_C(R71.2, R70.1, C31.2) + NET_C(C31.1, GND) + NET_C(R70.2, C30.1, R149.1) + NET_C(C30.2, U14.2, U14.1, C44.1) + NET_C(R149.2, C29.2, U14.3) + NET_C(C29.1, GND) + ALIAS(FIREBALL_SUM, C44.2) + + // + // Sheet 7, 2nd from bottom (Explosions) + // + + NET_C(U9.1, GND) + NET_C(U9.4, I_V12) + NET_C(U9.2, I_VM12) + NET_C(C28.1, R14.2) + +#if (UNDERCLOCK_NOISE_GEN) + + NET_C(U9B.1, GND) + NET_C(U9B.4, I_V12) + NET_C(U9B.2, I_VM12) + NET_C(U9B.3, C28.2) + // Yes - AFuncs are frontiers as well + AFUNC(NOISE_B_FUNC, 1, "A0") + NET_C(R14.2, NOISE_B_FUNC.A0) + ALIAS(NOISE_B, NOISE_B_FUNC.Q) + NET_C(R14.1, GND) + // Yes - AFuncs are frontiers as well + AFUNC(NOISE_A_FUNC, 1, "A0") + NET_C(U9.3, NOISE_A_FUNC.A0) + NET_C(R52.1, NOISE_A_FUNC.Q) + ALIAS(NOISE_A, R52.2) + +#else + +#if (ENABLE_NOISE_FRONTIERS) + // Yes - AFuncs are frontiers as well + AFUNC(NOISE_B_FUNC, 1, "A0") + NET_C(R14.2, NOISE_B_FUNC.A0) + ALIAS(NOISE_B, NOISE_B_FUNC.Q) +#else + ALIAS(NOISE_B, R14.2) +#endif + NET_C(R14.1, GND) +#if (ENABLE_NOISE_FRONTIERS) + // Yes - AFuncs are frontiers as well + AFUNC(NOISE_A_FUNC, 1, "A0") + NET_C(U9.3, NOISE_A_FUNC.A0, C28.2) + NET_C(R52.1, NOISE_A_FUNC.Q) +#else + NET_C(U9.3, R52.1, C28.2) +#endif + ALIAS(NOISE_A, R52.2) + +#endif + + NET_C(I_SMALL_EXPL, U26.13) + NET_C(U26.12, R32.2, U6.2) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_SMALL_EXPL) + NET_C(D_SMALL_EXPL.A, U6.2) + NET_C(D_SMALL_EXPL.K, I_V12) +#endif + NET_C(U6.1, C22.1, R33.2) + NET_C(R33.1, I_V12, R45.2, R46.2, R32.1) + NET_C(R45.1, C23.2, U6.13) + NET_C(R46.1, U6.12, U26.6) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(I_LARGE_EXPL) + NET_C(I_LARGE_EXPL.A, U6.12) + NET_C(I_LARGE_EXPL.K, I_V12) +#endif + NET_C(I_LARGE_EXPL, U26.5) + NET_C(C23.1, U6.10) + NET_C(U6.8, U6.9, U6.11) + NET_C(U6.11, D3.A) + NET_C(D3.K, R43.1) + NET_C(R43.2, R42.1, R44.1, C24.1) + NET_C(C24.2, C21.2, Q3.S, Q2.S, D4.A, D1.A, C18.2, C20.1, GND) + NET_C(R42.2, U5.6, R31.1) + NET_C(R31.2, R38.1, U5.7) + NET_C(U5.5, R44.2, Q3.D, D4.K) + NET_C(Q3.G, NOISE_B) + NET_C(R38.2, C19.1, R37.1) + NET_C(C19.2, U5.2, U5.1, R29.1) + NET_C(R37.2, U5.3, C18.1) + NET_C(R29.2, C7.1, R30.1) + ALIAS(EXPL_SUM, C7.2) + + NET_C(C22.2, U6.4) + NET_C(U6.5, U6.6, D2.A, U6.3) + NET_C(D2.K, R39.1) + NET_C(R39.2, R41.1, R40.1, C21.1) + NET_C(R41.2, U2.6, R13.1) + NET_C(R13.2, U2.7, R11.1) + NET_C(U2.5, R40.2, Q2.D, D1.K) + NET_C(Q2.G, NOISE_B) + NET_C(R11.2, C8.1, R12.1) + NET_C(R12.2, C20.2, U2.3) + NET_C(C8.2, U2.2, U2.1, R30.2) + + // + // Sheet 7, bottom-left (PSG) + // + + NET_C(R_PSG_1.2, R_PSG_2.2, R_PSG_3.2, R147.2, C73.1) + NET_C(R147.1, GND) + NET_C(C73.2, R146.1) + NET_C(R146.2, U23.2, R141.1, C72.1) + NET_C(U23.3, GND) + NET_C(C72.2, R141.2, U23.1) + ALIAS(PSG_SUM, U23.1) + + // + // Sheet 7, bottom (Thrust) + // + + NET_C(I_THRUST, U31.11) + NET_C(U31.10, R96.1, R97.1, R98.2) + NET_C(R98.1, I_V12) + NET_C(R96.2, U15.2, R75.1) + NET_C(U15.3, R97.2, Q7.D, D7.K) + NET_C(Q7.G, NOISE_B) + NET_C(Q7.S, GND) + NET_C(D7.A, GND) + NET_C(U15.1, R75.2, R95.1) + NET_C(R95.2, C40.2, R73.1) + NET_C(C40.1, GND) + NET_C(R73.2, R74.1, C41.1) + NET_C(R74.2, C37.2, U15.5) + NET_C(C37.1, GND) + NET_C(C41.2, U15.6, U15.7, C36.1) + ALIAS(THRUST_SUM, C36.2) + + // + // Sheet 8, top (Crafts Joining) + // + + NET_C(I_CRAFTS_JOINING, U26.1) + NET_C(U26.2, R120.1, U20.12) + NET_C(R120.2, I_V12, R119.2, C48.1, R80.2, R79.2) + NET_C(R119.1, C64.1, U20.13) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_CRAFTS_JOINING) + NET_C(D_CRAFTS_JOINING.A, U20.13) + NET_C(D_CRAFTS_JOINING.K, I_V12) +#endif + NET_C(U20.11, U20.8, U20.9) + NET_C(U20.10, C64.2, D9.K) + NET_C(D9.A, R101.1) + NET_C(R101.2, C48.2, R80.1, Q6.B) + NET_C(Q6.E, R79.1) + NET_C(Q6.C, Q5.E, Q4.E) + + // Another set of CD4069 oscillators: + // + // #4: R138=150K, C61=0.047uF, Freq=102.05Hz + // #5: R144=220K, C71=0.047uF, Freq=69.58Hz + // #6: R139=150K, C62=0.047uF, Freq=102.05Hz + + CLOCK(O4CLK, 102.05) + NET_C(O4CLK.GND, GND) + NET_C(O4CLK.VCC, I_V12) + NET_C(O4CLK.Q, R115.1, R116.2) + NET_C(GND, R138.1, R138.2, C61.1, C61.2, U19.1, U19.3) + + CLOCK(O5CLK, 69.58) + NET_C(O5CLK.GND, GND) + NET_C(O5CLK.VCC, I_V12) + NET_C(O5CLK.Q, R114.1, R117.2) + NET_C(GND, R144.1, R144.2, C71.1, C71.2, U19.5, U19.9) + + CLOCK(O6CLK, 102.15) + NET_C(O6CLK.GND, GND) + NET_C(O6CLK.VCC, I_V12) + NET_C(O6CLK.Q, R113.1, R118.2) + NET_C(GND, R139.1, R139.2, C62.1, C62.2, U19.13, U19.11) + + NET_C(R115.2, R114.2, R113.2, C43.2, C42.1, R100.2) + NET_C(C43.1, R65.1, U10.2) + NET_C(U10.3, R100.1, R99.2, U18.5, R67.1, R110.2, R68.1, Q5.B, R134.2, Q9.B, GND) + NET_C(R65.2, U10.1, C42.2, R78.1) + NET_C(R78.2, Q4.B, R67.2) + NET_C(Q4.C, R68.2, R76.1, U10.5) + NET_C(Q5.C, R77.1, R66.1, U10.6) + NET_C(R76.2, R77.2, I_VM12) + NET_C(R66.2, U10.7) + ALIAS(JOINING_SUM, U10.7) + + // + // Sheet 8, middle (Docking Bang) + // + + NET_C(R116.1, R117.1, R118.1, R99.1, C60.1, C59.1) + NET_C(C60.2, R112.1, U18.6) + NET_C(C59.2, R112.2, U18.7, R111.1) + NET_C(R111.2, R110.1, Q10.B) + NET_C(Q10.C, R134.1, R135.2, U18.3) + NET_C(Q10.E, Q9.E, Q13.C) + NET_C(Q9.C, U18.2, R109.1, R136.2) + NET_C(R135.1, R136.1, I_VM12) + NET_C(R109.2, U18.1) + ALIAS(BANG_SUM, U18.1) + + NET_C(I_DOCKING_BANG, U26.3) + NET_C(U26.4, R121.2, U20.2) + NET_C(R121.1, I_V12, R127.2, R126.2, R122.1, C57.1, R142.1, R143.1) + NET_C(R122.2, C63.1, U20.1) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_DOCKING_BANG) + NET_C(D_DOCKING_BANG.A, U20.1) + NET_C(D_DOCKING_BANG.K, I_V12) +#endif + NET_C(U20.3, U20.5, U20.6) + NET_C(U20.4, C63.2, D16.K) + NET_C(D16.A, R137.1) + NET_C(R137.2, C57.2, R142.2, Q13.B) + NET_C(Q13.E, R143.2) + + // + // Sheet 8, 2nd from bottom (Shoot) + // + + NET_C(I_SHOOT, U26.9) + NET_C(U26.8, R126.1, U22.2) +#if (ADD_CLIPPING_DIODES) + // fast retriggering relies on clipping diodes which + // aren't implemented by default for speed + D_1N914(D_SHOOT) + NET_C(D_SHOOT.A, U22.2) + NET_C(D_SHOOT.K, I_V12) +#endif + NET_C(U22.1, R127.1, C69.2) + NET_C(C69.1, U22.4, U11.2) + NET_C(U22.5, U22.6, U22.3) + NET_C(U22.3, D14.K) + NET_C(D14.A, R140.1) + NET_C(R140.2, D15.K, C68.2) + NET_C(C68.1, C66.1, D13.A, GND) + NET_C(D15.A, R102.1, D13.K) // and U21.3 + NET_C(C66.2, R103.1) // and U21.2 + NET_C(R103.2, R102.2, R84.1)// and U21.1 + +#if (HLE_SHOOT_VCO) + // + // R2 = 0.96721: HP = (0.000138452*A0) - 0.0000076731 + // R2 = 0.97638: HP = (0.0000289361*A0*A0) + (0.000074399*A0) + 0.0000125173 + // R2 = 0.97705: HP = (0.0000152345*A0*A0*A0) - (0.0000278973*A0*A0) + (0.000132881*A0) - 0.00000173354 + // R2 = 0.97706: HP = (-0.00000384290*A0*A0*A0*A0) + (0.0000353504*A0*A0*A0) - (0.000063189*A0*A0) + (0.000156402*A0) - 0.00000642730 + // R2 = 0.97712: HP = (0.0000167037*A0*A0*A0*A0*A0) - (0.000115736*A0*A0*A0*A0) + (0.000312133*A0*A0*A0) - (0.000372722*A0*A0) + (0.000308685*A0) - 0.0000319600 + // + VARCLOCK(SHOOTCLK, 1, "max(0.000001,min(0.1,(0.0000152345*A0*A0*A0) - (0.0000278973*A0*A0) + (0.000132881*A0) - 0.00000173354))") + NET_C(SHOOTCLK.GND, GND) + NET_C(SHOOTCLK.VCC, I_V5) + NET_C(SHOOTCLK.A0, D15.K) + NET_C(SHOOTCLK.Q, SHOOTENV.A0) + AFUNC(SHOOTENV, 1, "if(A0>2.5,11.1,-11.1)") + NET_C(SHOOTENV.Q, U11.1) + NET_C(GND, U21.3, U21.2) +#else + NET_C(D15.A, U21.3) + NET_C(U21.2, C66.2) + NET_C(R103.2, U21.1) +#endif + + NET_C(R84.2, U11.1) + NET_C(U11.12, R81.1) + NET_C(U11.11, R82.1) + NET_C(U11.9, R83.1) + NET_C(U11.6, R69.1) + NET_C(R81.2, R82.2, R83.2, R69.2, C49.1) + ALIAS(SHOOT_SUM, C49.2) + + // + // Sheet 8, bottom (Crafts Scale) + // + + NET_C(I_CRAFTS_SCALE, U31.9) + NET_C(U31.8, R130.1, R129.1, U17.4) + NET_C(R130.2, R132.2, C55.1, R104.2, U17.8, C53.1, I_V12) + NET_C(R129.2, R128.2, Q12.B) + NET_C(Q12.C, D11.A, R131.1, R132.1) + NET_C(R128.1, Q12.E, C52.1, U17.1, C54.1, C53.2, GND) + NET_C(D11.K, R131.2, C55.2, C54.2, U17.5) + NET_C(R104.1, R105.2, U17.7) + NET_C(C52.2, U17.6, U17.2, R105.1) + NET_C(U17.3, C51.1) + ALIAS(SCALE_SUM, C51.2) + + // + // Sheet 8, right (summing) + // + + NET_C(JOINING_SUM, R25.1) + NET_C(BANG_SUM, R21.1) + NET_C(SHOOT_SUM, R23.1) + NET_C(SCALE_SUM, R19.1) + NET_C(EXPL_SUM, R26.1) + NET_C(THRUST_SUM, R22.1) + NET_C(MOVING_SUM, R27.1) + NET_C(FIREBALL_SUM, R24.1) + NET_C(STAR_SPIN_PARTIAL_WARSHIP_SUM, R20.1) + NET_C(PSG_SUM, R18.1) + + NET_C(R25.2, R21.2, R23.2, R19.2, R26.2, R22.2, R27.2, R24.2, R20.2, R18.2) + ALIAS(OUTPUT, R18.2) + + // + // Unconnected inputs + // + + NET_C(GND, U21.5, U21.6) + NET_C(GND, U23.5, U23.6) + + // + // Unconnected outputs + // + +#if (ENABLE_FRONTIERS) +#define RXX 384 + OPTIMIZE_FRONTIER(C36.1, RES_K(3.9), RXX) + OPTIMIZE_FRONTIER(C44.1, RES_K(4.7), RXX) + OPTIMIZE_FRONTIER(R25.1, RES_K(47), RXX) + OPTIMIZE_FRONTIER(R21.1, RES_K(47), RXX) + OPTIMIZE_FRONTIER(R23.1, RES_K(82), RXX) + OPTIMIZE_FRONTIER(R19.1, RES_K(470), RXX) + OPTIMIZE_FRONTIER(R26.1, 100, RXX) + OPTIMIZE_FRONTIER(R22.1, RES_K(3.9), RXX) + OPTIMIZE_FRONTIER(R27.1, RES_K(100), RXX) + OPTIMIZE_FRONTIER(R24.1, RES_K(4.7), RXX) + OPTIMIZE_FRONTIER(R20.1, RES_K(22), RXX) +#endif + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_spacfury.h mame-0.224+dfsg.1/src/mame/audio/nl_spacfury.h --- mame-0.223+dfsg.1/src/mame/audio/nl_spacfury.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_spacfury.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_NL_SPACFURY_H +#define MAME_AUDIO_NL_SPACFURY_H + +#pragma once + +NETLIST_EXTERNAL(spacfury) + +#endif // MAME_AUDIO_NL_SPACFURY_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_sspeedr.cpp mame-0.224+dfsg.1/src/mame/audio/nl_sspeedr.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_sspeedr.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_sspeedr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,651 @@ +// license:CC0 +// copyright-holders:Colin Douglas Howell + +#include "netlist/devices/net_lib.h" + + +// This is a netlist description for the sound circuits of Midway's Super +// Speed Race, based on the schematics in _Midway's Super Speed Race Parts and +// Operating Manual_. These circuits are generally quite similar to those in +// Midway's earlier games 280-ZZZAP and Laguna Racer (see nl_280zzzap.cpp), +// but the Super Speed Race circuits have some significant changes, and their +// board layout is different. + +// The components are all labeled as they are on the Super Speed Race +// schematics, except that since the noise generator discrete components are +// on the main motherboard and thus may have the same labels as components on +// the audio board, a prefix "NOISE_" has been added to their labels. Each +// LM3900 IC contains 4 op-amps, so I have labeled these op-amps as _1 to _4, +// the same scheme used in the LM3900 datasheet, using the pin numbers on the +// schematic to identify the specific op-amp. Likewise, each CD4016 IC +// contains 4 switches, so I identify a specific switch from its pin numbers +// on the schematic; these are labeled _A through _D in the CD4016 datasheet, +// so I use that scheme. + +// The sound circuitry can be divided into three sections: engine sound +// generation and control, generation of noise-based sound effects (skidding +// and crashes), and the final mix and amplification of all sounds. + +// For detailed descriptions of these circuits, see the 280-ZZZAP/Laguna Racer +// netlist, nl_280zzzap.cpp. I do not repeat those descriptions here. + + +// Include special frontiers within engine sound oscillators whose purpose is +// to improve solution convergence by reducing the oscillators' inherent +// numeric instability. Also adjusts values of resistors associated with these +// oscillators to maintain their frequency and voltage levels. + +#define CONVERGENCE_FRONTIERS 1 + +// Enable a voltage limiter on the output of the op-amp which generates the +// post-crash sound. This removes voltage glitches from the output which would +// otherwise be audible when the netlist is run with a fixed 48 kHz timestep, +// as it is in MAME. + +#define REMOVE_POST_CRASH_NOISE_GLITCHES 1 + + +static NETLIST_START(sspeedr_noisegen) + + // See p. 25 of the Super Speed Race manual for the motherboard + // schematic, which includes the noise generator. + + // This is a digital noise source of 12-volt amplitude, formed by a + // linear-feedback shift register driven by a 4 kHz clock. + + CD4006_DIP(H5_SHFTREG) + CD4070_DIP(J5_XORx4) + + NET_C(I_V12.Q, H5_SHFTREG.14, J5_XORx4.14) + NET_C(GND, H5_SHFTREG.7, J5_XORx4.7) + NET_C(GND, J5_XORx4.8, J5_XORx4.9) + + RES(NOISE_R22, RES_K(680)) + RES(NOISE_R23, RES_K(56)) + RES(NOISE_R24, RES_K(27)) + RES(NOISE_R25, RES_K(220)) + RES(NOISE_R62, RES_M(1)) + + // The following is a very low-valued dummy resistance inserted to + // make the noise source's startup circuit voltage behave properly; + // without this it just stays at zero from the beginning and the + // generator refuses to start: + RES(NOISE_RDUMMY, RES_R(1)) + + CAP(NOISE_C8, CAP_U(0.001)) + CAP(NOISE_C9, CAP_U(0.1)) + DIODE(NOISE_CR3, "1N4148") + + NET_C(GND, J5_XORx4.6) + NET_C(J5_XORx4.4, J5_XORx4.12, NOISE_C8.1) + NET_C(I_V12.Q, J5_XORx4.13) + NET_C(J5_XORx4.11, H5_SHFTREG.3, NOISE_R23.1) + NET_C(NOISE_R23.2, NOISE_C8.2, NOISE_R22.1) + NET_C(NOISE_R22.2, J5_XORx4.5) + + NET_C(H5_SHFTREG.13, H5_SHFTREG.5) + NET_C(H5_SHFTREG.12, H5_SHFTREG.1, J5_XORx4.1) + NET_C(H5_SHFTREG.8, J5_XORx4.2) + NET_C(H5_SHFTREG.10, H5_SHFTREG.6) + NET_C(NOISE_R24.2, H5_SHFTREG.4) + NET_C(J5_XORx4.3, NOISE_R25.1) + NET_C(NOISE_R25.2, NOISE_CR3.K, NOISE_R24.1) + NET_C(NOISE_C9.2, NOISE_CR3.A, NOISE_R62.1) + NET_C(I_V12.Q, NOISE_RDUMMY.1) + NET_C(NOISE_RDUMMY.2, NOISE_C9.1) + NET_C(NOISE_R62.2, GND) + + ALIAS(NOISE_OUT, H5_SHFTREG.10) + +NETLIST_END() + + +// +// Main netlist +// + + +static NETLIST_START(sspeedr_schematics) + + // **** Conversion of accelerator level to "engine speed" control + // **** voltage for engine sound, with capacitor-based "engine + // **** inertia" and gear shift changes. + + CD4016_DIP(A2) + + LM3900(C1_3) + LM3900(C1_4) + + RES(R42, RES_K(1)) + RES(R43, RES_K(1)) + RES(R44, RES_K(1)) + RES(R45, RES_K(1)) + RES(R62, RES_K(1)) + RES(R61, RES_K(1)) + + RES(R51, RES_K(470)) + RES(R46, RES_M(2.2)) + RES(R47, RES_M(1)) + RES(R48, RES_K(470)) + RES(R49, RES_K(240)) + + RES(R50, RES_K(100)) + CAP(C30, CAP_U(1)) + RES(R53, RES_K(47)) + RES(R52, RES_K(10)) + RES(R56, RES_R(270)) + + RES(R54, RES_K(560)) + RES(R55, RES_M(4.7)) + + RES(R57, RES_M(2.7)) + RES(R58, RES_K(560)) + + RES(R59, RES_K(560)) + RES(R60, RES_K(10)) + + CAP(C18, CAP_U(22)) + + NET_C(C18.2, GND) + + CAP(C19, CAP_U(2.2)) + + DIODE(D4, 1N914) + DIODE(D5, 1N914) + + NET_C(I_V5.Q, R42.1, R43.1, R44.1, R45.1, R62.1, R61.1, R51.1, + R55.1, R57.1) + + NET_C(PEDAL_BIT0, R42.2, R46.1) + NET_C(PEDAL_BIT1, R43.2, R47.1) + NET_C(PEDAL_BIT2, R44.2, R48.1) + NET_C(PEDAL_BIT3, R45.2, R49.1) + NET_C(C1_3.PLUS, R46.2, R47.2, R48.2, R49.2, R51.2) + NET_C(C1_3.MINUS, R50.2, C30.2) + NET_C(C1_3.OUT, R50.1, C30.1, R53.1, D4.K) + NET_C(R53.2, R52.1, C18.1, R56.2, R54.1) + NET_C(R52.2, D4.A) + NET_C(C1_4.PLUS, R54.2, R55.2) + NET_C(C1_4.MINUS, R58.2, R57.2, A2.4) + // The following are only local connections to C1_4.OUT. It also runs + // to all the oscillators; those connections are listed further down. + NET_C(C1_4.OUT, D5.A, R59.1) + NET_C(D5.K, R58.1) + NET_C(C19.1, R59.2, R60.2) + + NET_C(A2.1, GND) + NET_C(A2.2, R56.1) + NET_C(A2.13, ENGINE_SOUND_OFF) + + NET_C(A2.5, R62.2, HI_SHIFT) + + NET_C(A2.3, A2.8, C19.2) + NET_C(A2.9, R60.1) + NET_C(A2.6, R61.2, LO_SHIFT) + + + // **** Engine sound generation, using three triangle-wave oscillators + // **** running at frequency and amplitude determined by engine speed + // **** control voltage and modulated by MC3340 amplifier/attenuator. + + // These are the remaining connections from C1_4.OUT: + NET_C(C1_4.OUT, R36.1, R37.1, R31.1, R32.1, R29.1, R30.1) + + MC3340_DIP(MC3340_F1) + + CD4016_DIP(B1) + + // First oscillator (bottommost in schematics). + + LM3900(C1_2) + LM3900(C1_1) + + RES(R36, RES_K(560)) + RES(R37, RES_K(270)) + RES(R38, RES_K(100)) + RES(R41, RES_K(10)) + NET_C(R41.2, GND) + +#if CONVERGENCE_FRONTIERS + // Schmitt trigger resistors changed to compensate for waveform changes + // from use of frontier: + RES(R39, RES_K(465.0)) + RES(R40, RES_K(275.0)) +#else + RES(R39, RES_K(470)) + RES(R40, RES_K(270)) +#endif + + CAP(C17, CAP_U(0.022)) + + DIODE(D3, 1N914) + + NET_C(R37.2, B1.10) + NET_C(B1.11, C1_2.PLUS) + NET_C(R36.2, C1_2.MINUS, C17.1) + NET_C(C1_2.OUT, C17.2, R38.1, D3.A) + NET_C(R38.2, C1_1.MINUS) + NET_C(C1_1.OUT, R40.1, B1.12) + NET_C(I_V5.Q, R39.1) + NET_C(C1_1.PLUS, R39.2, R40.2) + NET_C(R41.1, D3.K, D2.K, C16.1) + + // Second oscillator (middle in schematics). + + LM3900(A1_3) + LM3900(A1_4) + + RES(R31, RES_K(300)) + RES(R32, RES_K(150)) + RES(R33, RES_K(100)) + +#if CONVERGENCE_FRONTIERS + // Schmitt trigger resistors changed to compensate for waveform changes + // from use of frontier: + RES(R34, RES_K(460)) + RES(R35, RES_K(281)) +#else + RES(R34, RES_K(470)) + RES(R35, RES_K(270)) +#endif + + CAP(C15, CAP_U(0.01)) + + CAP(C16, CAP_U(10)) + + DIODE(D2, 1N914) + + NET_C(R32.2, B1.4) + NET_C(B1.3, A1_3.PLUS) + NET_C(R31.2, A1_3.MINUS, C15.1) + NET_C(A1_3.OUT, C15.2, R33.1, D2.A) + NET_C(R33.2, A1_4.MINUS) + NET_C(A1_4.OUT, R35.1, B1.5) + NET_C(I_V5.Q, R34.1) + NET_C(A1_4.PLUS, R34.2, R35.2) + NET_C(C16.2, MC3340_F1.1) // to MC3340 input pin + + // Third oscillator (topmost in schematics). + + LM3900(A1_2) + LM3900(A1_1) + + RES(R29, RES_K(220)) + + RES(R30, RES_K(100)) + + RES(R28, RES_K(100)) + +#if CONVERGENCE_FRONTIERS + // Schmitt trigger resistors changed to compensate for waveform changes + // from use of frontier. + RES(R26, RES_K(453)) + RES(R27, RES_K(286)) +#else + RES(R26, RES_K(470)) + RES(R27, RES_K(270)) +#endif + + CAP(C14, CAP_U(0.01)) + + RES(R23, RES_K(10)) + NET_C(R23.1, I_V5.Q) + + RES(R25, RES_K(3.3)) + NET_C(R25.2, GND) + + CAP(C13, CAP_U(10)) + + RES(R22, RES_R(470)) + + DIODE(D1, 1N914) + + NET_C(I_V5.Q, R22.1) + NET_C(ENGINE_SOUND_OFF, R22.2, D1.A) + + NET_C(R30.2, B1.1) + NET_C(B1.2, A1_2.PLUS) + NET_C(R29.2, A1_2.MINUS, C14.1) + NET_C(A1_2.OUT, C14.2, R28.1, C13.1) + NET_C(R28.2, A1_1.MINUS) + NET_C(A1_1.OUT, R27.1, B1.13) + NET_C(I_V5.Q, R26.1) + NET_C(A1_1.PLUS, R26.2, R27.2) + NET_C(D1.K, R23.2, C13.2, R25.1, MC3340_F1.2) // to MC3340 ctrl pin + + // The MC3340's output is the complete engine sound, which is sent to + // the final mix. + + + // **** Noise generation and noise-based sound effects: tire skid + // **** (NOISE_CR_1), boom from crash (BOOM), post-crash noise + // **** (NOISE_CR_2). + + // The noise generator circuit for Super Speed Race is a + // linear-feedback shift register on the main motherboard which + // generates a digital random noise signal. This digital noise gets + // smoothed and filtered into continuous analog form in the same way + // as in 280-ZZZAP and Laguna Racer, and the noise-based sound effect + // circuits are similar. + + CAP(C1, CAP_U(10)) + + LOCAL_SOURCE(sspeedr_noisegen) + INCLUDE(sspeedr_noisegen) + + NET_C(NOISE_OUT, C1.1) + + NET_C(C1.2, R1.1) + + // The noise generator is followed by a single-amplifier active + // low-pass filter which converts the digital noise waveform into a + // smoother analog noise waveform. + + RES(R1, RES_K(680)) + + LM3900(H2_1) + + CAP(C2, CAP_P(6800)) + RES(R2, RES_K(10)) + RES(R3, RES_K(820)) + RES(R4, RES_K(270)) + CAP(C3, CAP_P(220)) + + NET_C(R1.2, C2.1, R2.1, R4.1) + NET_C(C2.2, GND) + NET_C(H2_1.MINUS, R2.2, C3.1) + NET_C(I_V5.Q, R3.1) + NET_C(H2_1.PLUS, R3.2) + NET_C(H2_1.OUT, C3.2, R4.2, R5.1, R17.1, C5.1, C4.1) + + // The smoothed analog noise is passed to three different sound-effect + // circuits, each of which is also an active-filter type. + + // First noise circuit: tire skid (NOISE_CR_1), a two-amplifier active + // bandpass filter. + + CD4016_DIP(E2) + + LM3900(H2_3) + + RES(R5, RES_K(39)) + RES(R6, RES_R(62)) + RES(R7, RES_K(82)) + RES(R8, RES_K(39)) + + CAP(C7, CAP_U(0.1)) + CAP(C8, CAP_U(0.1)) + CAP(C25, CAP_U(0.1)) + + NET_C(R5.2, R6.1, C7.1, C8.1, R12.1) + NET_C(R6.2, GND) + NET_C(H2_3.MINUS, C7.2, R8.1) + NET_C(I_V5.Q, R7.1) + NET_C(H2_3.PLUS, R7.2) + NET_C(H2_3.OUT, R8.2, C8.2, E2.10) + NET_C(E2.11, C25.1) + NET_C(C25.2, R9.1) + + LM3900(J1_2) + + // Unlike the other LM3900s, those on chip J1 get 12-volt power. + NET_C(I_V12.Q, J1_2.VCC) + NET_C(GND, J1_2.GND) + + RES(R9, RES_K(39)) + RES(R10, RES_K(240)) + RES(R11, RES_K(120)) + RES(R12, RES_K(62)) + + NET_C(J1_2.MINUS, R9.2, R11.1) + NET_C(I_V5.Q, R10.1) + NET_C(J1_2.PLUS, R10.2) + NET_C(J1_2.OUT, R11.2, R12.2, E2.4) + NET_C(E2.3, R63.1) + NET_C(E2.5, E2.12, NOISE_CR_1) + + // Second noise circuit: secondary crash noise (NOISE_CR_2), a + // single-amplifier active low-pass filter. + + RES(R17, RES_K(10)) + + CAP(C5, CAP_U(10)) + CAP(C4, CAP_U(0.022)) + + LM3900(H2_2) + + RES(R16, RES_K(1.5)) + RES(R15, RES_K(15)) + RES(R14, RES_M(2.7)) + RES(R13, RES_K(150)) + + CAP(C6, CAP_U(0.01)) + CAP(C9, CAP_U(0.001)) + + NET_C(C4.2, R16.1) + NET_C(R16.2, C6.1, R15.1, R13.1) + NET_C(C6.2, GND) + NET_C(H2_2.MINUS, R15.2, C9.1) + NET_C(I_V5.Q, R14.1) + NET_C(H2_2.PLUS, R14.2) +#if REMOVE_POST_CRASH_NOISE_GLITCHES + // With the static time-stepping used to ensure acceptable performance + // with MAME, this part of the netlist will generate extra spikes on + // the op-amp output with voltages outside of the real op-amp's output + // range. These spikes give the sound an unwanted "grittiness" not in + // the original, so I've added a voltage-limiting AFUNC to the op-amp + // output beyond its feedback connection. This gives a smoother sound, + // closer to the original. + + NET_C(H2_2.OUT, C9.2, R13.2, H2_2_LIM.A0) + AFUNC(H2_2_LIM, 1, "max(min(A0, 4.5), 0)") + NET_C(H2_2_LIM.Q, E2.8) +#else + NET_C(H2_2.OUT, C9.2, R13.2, E2.8) +#endif + NET_C(E2.9, R64.1) + NET_C(E2.6, NOISE_CR_2) + + // Third noise circuit: boom from crash (BOOM), a single-amplifier + // active bandpass filter. + + LM3900(H2_4) + + RES(R18, RES_K(20)) + + RES(R19, RES_K(1)) + RES(R20, RES_M(3.3)) + RES(R21, RES_M(1.5)) + + CAP(C10, CAP_U(0.1)) + CAP(C11, CAP_U(0.1)) + + NET_C(R17.2, C5.2, E2.1) + NET_C(E2.2, R18.1) + NET_C(E2.13, BOOM) + NET_C(R18.2, R19.1, C10.1, C11.1) + NET_C(R19.2, GND) + NET_C(H2_4.MINUS, C10.2, R21.1) + NET_C(I_V5.Q, R20.1) + NET_C(H2_4.PLUS, R20.2) + NET_C(H2_4.OUT, R21.2, C11.2, R65.1) + + + // **** Final mix of sound effects and sound preamplification. + + RES(R63, RES_K(3)) + RES(R64, RES_K(150)) + + RES(R65, RES_K(12)) + + RES(R66, RES_K(33)) + + CAP(C20, CAP_U(1.0)) + CAP(C21, CAP_U(10)) + + NET_C(R63.2, R64.2, R65.2, C20.1) + NET_C(MC3340_F1.7, R66.1) // MC3340 output pin + NET_C(R66.2, C21.1) + + LM3900(J1_4) + LM3900(J1_1) + + NET_C(I_V12.Q, J1_4.VCC, J1_1.VCC) + NET_C(GND, J1_4.GND, J1_1.GND) + + RES(R67, RES_K(2)) + CAP(C22, CAP_U(10)) + RES(R68, RES_K(220)) + RES(R74, RES_K(220)) + + NET_C(I_V12.Q, R67.1) + NET_C(R67.2, C22.1, R68.1, R74.1) + NET_C(C22.2, GND) + NET_C(J1_4.PLUS, R68.2) + NET_C(J1_1.PLUS, R74.2) + + RES(R69, RES_K(100)) + POT2(R70, RES_K(50)) // Master volume potentiometer (2 terminals) + CAP(C23, CAP_U(10)) + CAP(C24, CAP_U(0.1)) + RES(R73, RES_K(100)) + RES(R75, RES_K(100)) + + DIODE(D6, 1N914) + DIODE(D7, 1N914) + RES(R71, RES_K(10)) + RES(R72, RES_K(10)) + + NET_C(SILENCE, D6.A, D7.A) + NET_C(D6.K, R71.1) + NET_C(D7.K, R72.1) + + NET_C(R70.2, C23.2) + NET_C(J1_4.MINUS, C20.2, C21.2, R69.1, R70.1, R71.2) + NET_C(J1_4.OUT, C23.1, R69.2, C24.1) + NET_C(C24.2, R73.1) + NET_C(J1_1.MINUS, R73.2, R75.1, R72.2) + NET_C(J1_1.OUT, R75.2) + + ALIAS(OUTPUT, J1_1.OUT) + +NETLIST_END() + + +NETLIST_START(sspeedr) + + SOLVER(Solver, 48000) + + ANALOG_INPUT(I_V12, 12) + ANALOG_INPUT(I_V5, 5) + + LOCAL_SOURCE(sspeedr_schematics) + INCLUDE(sspeedr_schematics) + + // The MC3340 gets 5-volt power in Super Speed Race. + NET_C(I_V5.Q, MC3340_F1.8) + NET_C(GND, MC3340_F1.3) + + // Logic inputs which represent output pins from 74174 latches at C2 + // and D2 + LOGIC_INPUT(I_F4_2, 0, "74XX") // BOOM + LOGIC_INPUT(I_F4_5, 0, "74XX") // ENGINE SOUND OFF + LOGIC_INPUT(I_F4_7, 0, "74XX") // NOISE CR 1 + LOGIC_INPUT(I_F4_10, 0, "74XX") // NOISE CR 2 + LOGIC_INPUT(I_F4_12, 0, "74XX") // SILENCE + LOGIC_INPUT(I_F5_2, 1, "74XX") // PEDAL_BIT0 + LOGIC_INPUT(I_F5_5, 1, "74XX") // PEDAL_BIT1 + LOGIC_INPUT(I_F5_7, 1, "74XX") // PEDAL_BIT2 + LOGIC_INPUT(I_F5_10, 1, "74XX") // PEDAL_BIT3 + LOGIC_INPUT(I_F5_12, 0, "74XX") // HI SHIFT + LOGIC_INPUT(I_F5_15, 1, "74XX") // LO SHIFT + + ALIAS(I_BOOM, I_F4_2.IN) + ALIAS(I_ENGINE_SOUND_OFF, I_F4_5.IN) + ALIAS(I_NOISE_CR_1, I_F4_7.IN) + ALIAS(I_NOISE_CR_2, I_F4_10.IN) + ALIAS(I_SILENCE, I_F4_12.IN) + ALIAS(I_PEDAL_BIT0, I_F5_2.IN) + ALIAS(I_PEDAL_BIT1, I_F5_5.IN) + ALIAS(I_PEDAL_BIT2, I_F5_7.IN) + ALIAS(I_PEDAL_BIT3, I_F5_10.IN) + ALIAS(I_HI_SHIFT, I_F5_12.IN) + ALIAS(I_LO_SHIFT, I_F5_15.IN) + + ALIAS(BOOM, I_F4_2.Q) + ALIAS(ENGINE_SOUND_OFF, I_F4_5.Q) + ALIAS(NOISE_CR_1, I_F4_7.Q) + ALIAS(NOISE_CR_2, I_F4_10.Q) + ALIAS(SILENCE, I_F4_12.Q) + ALIAS(PEDAL_BIT0, I_F5_2.Q) + ALIAS(PEDAL_BIT1, I_F5_5.Q) + ALIAS(PEDAL_BIT2, I_F5_7.Q) + ALIAS(PEDAL_BIT3, I_F5_10.Q) + ALIAS(HI_SHIFT, I_F5_12.Q) + ALIAS(LO_SHIFT, I_F5_15.Q) + + // Power pins for logic inputs: + NET_C(I_V5.Q, + I_F4_2.VCC, I_F4_5.VCC, I_F4_7.VCC, I_F4_10.VCC, I_F4_12.VCC, + I_F5_2.VCC, I_F5_5.VCC, I_F5_7.VCC, I_F5_10.VCC, I_F5_12.VCC, + I_F5_15.VCC) + NET_C(GND, + I_F4_2.GND, I_F4_5.GND, I_F4_7.GND, I_F4_10.GND, I_F4_12.GND, + I_F5_2.GND, I_F5_5.GND, I_F5_7.GND, I_F5_10.GND, I_F5_12.GND, + I_F5_15.GND) + + // 5-volt power for most of the LM3900 op-amps. + NET_C(I_V5.Q, + H2_1.VCC, H2_3.VCC, + H2_4.VCC, H2_2.VCC, C1_3.VCC, C1_4.VCC, + A1_1.VCC, A1_2.VCC, A1_3.VCC, A1_4.VCC, + C1_1.VCC, C1_2.VCC) + NET_C(GND, + H2_1.GND, H2_3.GND, + H2_4.GND, H2_2.GND, C1_3.GND, C1_4.GND, + A1_1.GND, A1_2.GND, A1_3.GND, A1_4.GND, + C1_1.GND, C1_2.GND) + + // 5-volt power for the CD4016 switches. + NET_C(I_V5.Q, A2.14, B1.14, E2.14) + NET_C(GND, A2.7, B1.7, E2.7) + // Switches A2_D and B1_C are unused. + NET_C(GND, A2.10, A2.11, A2.12, B1.6, B1.8, B1.9) + + // Frontier after output of noise generator. + OPTIMIZE_FRONTIER(C1.1, RES_M(1), 50) + + // Frontier before skid screech generator. + OPTIMIZE_FRONTIER(R5.1, RES_K(39), 50) + + // Frontiers after NOISE CR 2 and BOOM generators. + OPTIMIZE_FRONTIER(R64.1, RES_K(150), 50) + OPTIMIZE_FRONTIER(R65.1, RES_K(12), 50) + + // Frontier after engine sound generation. + OPTIMIZE_FRONTIER(R66.1, RES_K(33), 50) + + // Frontiers before MC3340 inputs. + OPTIMIZE_FRONTIER(C16.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(C13.1, RES_M(1), 50) + + // Frontiers before engine sound op-amp oscillators. + OPTIMIZE_FRONTIER(R36.1, RES_K(560), 50) + OPTIMIZE_FRONTIER(R37.1, RES_K(270), 50) + OPTIMIZE_FRONTIER(R31.1, RES_K(300), 50) + OPTIMIZE_FRONTIER(R32.1, RES_K(150), 50) + OPTIMIZE_FRONTIER(R29.1, RES_K(220), 50) + OPTIMIZE_FRONTIER(R30.1, RES_K(100), 50) + +#if CONVERGENCE_FRONTIERS + // Frontiers at Schmitt trigger op-amp outputs of engine sound + // oscillators, to eliminate numeric instability and speed convergence + // rather than to partition matrices. The resistor values given are + // the modified ones which compensate for how the frontiers would + // otherwise change the oscillator waveforms. + OPTIMIZE_FRONTIER(R40.1, RES_K(275), 50) + OPTIMIZE_FRONTIER(R35.1, RES_K(281), 50) + OPTIMIZE_FRONTIER(R27.1, RES_K(286), 50) +#endif + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_sspeedr.h mame-0.224+dfsg.1/src/mame/audio/nl_sspeedr.h --- mame-0.223+dfsg.1/src/mame/audio/nl_sspeedr.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_sspeedr.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,12 @@ +// license:CC0 +// copyright-holders:Colin Douglas Howell +#ifndef MAME_AUDIO_NL_SSPEEDR_H +#define MAME_AUDIO_NL_SSPEEDR_H + +#pragma once + +#include "netlist/nl_setup.h" + +NETLIST_EXTERNAL(sspeedr) + +#endif // MAME_AUDIO_NL_SSPEEDR_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_starcas.cpp mame-0.224+dfsg.1/src/mame/audio/nl_starcas.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_starcas.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_starcas.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -25,7 +25,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_starcas.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_starcrus.cpp mame-0.224+dfsg.1/src/mame/audio/nl_starcrus.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_starcrus.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_starcrus.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,325 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +// +// Netlist for Star Cruiser +// +// Derived from the schematics in the Star Cruiser manual. +// +// Known problems/issues: +// +// * Uses HLE noise due to abusing a 2N4124 in breakdown as a noise source. +// + +#include "netlist/devices/net_lib.h" + +// +// Main netlist +// + +NETLIST_START(starcrus) + + SOLVER(Solver, 48000) + ANALOG_INPUT(V12, 12) + ANALOG_INPUT(V5, 5) + ANALOG_INPUT(VM5, -5) + ALIAS(VCC, V5) + + TTL_INPUT(EXPLODE_1, 1) // active low + TTL_INPUT(EXPLODE_2, 1) // active low + TTL_INPUT(LAUNCH_1, 1) // active low + TTL_INPUT(LAUNCH_2, 1) // active low + TTL_INPUT(ENGINE_1, 1) // active low + TTL_INPUT(ENGINE_2, 1) // active low + + NET_C(GND, EXPLODE_1.GND, EXPLODE_2.GND, LAUNCH_1.GND, LAUNCH_2.GND, ENGINE_1.GND, ENGINE_2.GND) + NET_C(V5, EXPLODE_1.VCC, EXPLODE_2.VCC, LAUNCH_1.VCC, LAUNCH_2.VCC, ENGINE_1.VCC, ENGINE_2.VCC) + + RES(R22, 470) + POT(R23, RES_K(2.5)) + RES(R24, RES_K(10)) + RES(R25, RES_K(15)) + RES(R26, RES_K(2.2)) + RES(R28, RES_K(100)) + RES(R29, RES_K(220)) + RES(R30, RES_K(220)) + RES(R31, RES_K(470)) + RES(R32, RES_K(100)) + RES(R33, RES_K(2.2)) + RES(R34, RES_K(2.2)) + RES(R35, RES_K(2.2)) + RES(R36, RES_K(2.2)) + RES(R37, 220) + RES(R38, RES_K(10)) + RES(R39, RES_K(10)) + RES(R40, RES_K(56)) + RES(R41, RES_K(100)) + RES(R42, RES_K(1)) + RES(R43, RES_K(100)) + RES(R44, RES_K(2.2)) + RES(R45, RES_K(2.2)) + RES(R46, RES_K(10)) + RES(R47, RES_K(3)) + RES(R48, RES_K(10)) + RES(R49, 220) + RES(R50, RES_K(150)) + RES(R51, RES_K(10)) + RES(R52, RES_K(10)) + RES(R53, RES_K(2.2)) + RES(R54, RES_K(10)) + RES(R55, 220) + RES(R56, RES_K(2.2)) + RES(R57, RES_K(2.2)) + RES(R58, RES_K(2.2)) + RES(R59, RES_K(10)) + RES(R60, RES_K(3)) + RES(R61, RES_K(10)) + RES(R62, 220) + RES(R63, RES_K(150)) + RES(R64, RES_K(10)) + RES(R65, RES_K(10)) + RES(R66, RES_K(2.2)) + RES(R67, RES_K(10)) + RES(R68, 220) + RES(R69, RES_K(2.2)) + RES(R70, RES_K(47)) + RES(R71, RES_K(100)) + RES(R72, RES_K(6.8)) + RES(R73, RES_K(6.8)) + RES(R74, RES_K(3.3)) + POT(R75, RES_K(50)) + RES(R76, RES_K(22)) + RES(R77, 470) + + CAP(C12, CAP_U(0.1)) + //CAP(C13, CAP_U(3.3)) + CAP(C14, CAP_U(0.1)) + CAP(C16, CAP_U(1.0)) + CAP(C17, CAP_U(0.47)) + CAP(C18, CAP_U(39)) + CAP(C19, CAP_U(4.7)) + CAP(C20, CAP_U(22)) + CAP(C21, CAP_U(0.15)) + CAP(C22, CAP_U(0.047)) + CAP(C23, CAP_U(1.0)) + CAP(C24, CAP_U(22)) + CAP(C25, CAP_U(0.15)) + CAP(C26, CAP_U(0.047)) + CAP(C27, CAP_U(1.0)) + CAP(C28, CAP_P(470)) + CAP(C29, CAP_U(4.7)) + CAP(C30, CAP_U(4.7)) + CAP(C31, CAP_U(4.7)) + CAP(C32, CAP_U(0.1)) + + QBJT_EB(Q6, "2N4124") + //QBJT_EB(Q7, "2N4124") + QBJT_EB(Q8, "2N4124") + QBJT_EB(Q9, "2N4124") + QBJT_EB(Q10, "2N4126") + QBJT_EB(Q11, "2N4124") + QBJT_EB(Q12, "2N4124") + QBJT_EB(Q13, "2N4124") + QBJT_EB(Q14, "2N4124") + QBJT_EB(Q15, "2N4126") + QBJT_EB(Q16, "2N4124") + QBJT_EB(Q17, "2N4124") + QBJT_EB(Q18, "2N4124") + QBJT_EB(Q19, "2N4126") + QBJT_EB(Q20, "2N4124") + QBJT_EB(Q21, "2N4124") + + UA741_DIP8(U1) + UA741_DIP8(U2) + UA741_DIP8(U5) + + NE566_DIP(U3) + NE566_DIP(U4) + + DIODE(CR29, "1N4154") + DIODE(CR30, "1N4154") + DIODE(CR31, "1N4154") + DIODE(CR32, "1N4154") + + TTL_7408_DIP(H6) + NET_C(H6.7, GND) + NET_C(H6.14, V5) + NET_C(ENGINE_1, H6.9) + NET_C(ENGINE_2, H6.10) + NET_C(EXPLODE_1, H6.4) + NET_C(EXPLODE_2, H6.5) + NET_C(LAUNCH_1, H6.1, H6.2) + NET_C(LAUNCH_2, H6.12, H6.13) + + TTL_7404_INVERT(F8) + NET_C(F8.GND, GND) + NET_C(F8.VCC, V5) + NET_C(H6.6, F8.A) + + // HLE Noise Gen + CLOCK(NOISE_CLOCK, 10000) + NET_C(NOISE_CLOCK.GND, GND) + NET_C(NOISE_CLOCK.VCC, V5) + + SYS_NOISE_MT_N(NOISE, 0.05) + NET_C(NOISE.I, NOISE_CLOCK.Q) + NET_C(NOISE.1, R24.2) + NET_C(NOISE.2, Q6.B) + + // Engine Sound + NET_C(H6.8, R26.1) + NET_C(R26.2, Q8.B) + NET_C(Q8.E, GND) + NET_C(Q8.C, R25.1, R70.1) + NET_C(R25.2, C14.1) + NET_C(C14.2, R23.2, C12.1) + NET_C(R23.1, R22.1) + NET_C(R22.2, V12) + NET_C(R23.3, R24.1, Q6.C) + //NET_C(R24.2, Q7.E, C13.1) + //NET_C(C13.2, GND) + //NET_C(Q7.B, Q7.C, Q6.B) + NET_C(Q6.E, GND) + NET_C(C12.2, U2.3, R28.1) + NET_C(R28.2, GND) + NET_C(U2.7, V5) + NET_C(U2.4, VM5) + NET_C(U2.2, R29.1) + NET_C(R29.2, C16.1, R30.1) + NET_C(C16.2, GND) + NET_C(R30.2, U2.6, R31.1) + NET_C(R31.2, C17.1, Q12.C, R32.1, U1.3) + NET_C(C17.2, GND) + NET_C(R32.2, GND) + NET_C(U1.7, V5) + NET_C(U1.4, VM5) + NET_C(U1.2, R43.1, R42.1) + NET_C(R43.2, U1.6, R71.1) + NET_C(R42.2, C19.1) + NET_C(C19.2, Q13.C) + NET_C(Q13.E, GND) + NET_C(Q13.B, R41.1, R40.1) + NET_C(R41.2, GND) + NET_C(R40.2, C18.1, R38.1, R37.1) + NET_C(C18.2, GND) + NET_C(R38.2, Q11.B) + NET_C(Q11.E, GND) + NET_C(Q12.E, GND) + NET_C(Q11.C, R39.1, Q12.B) + NET_C(R39.2, V5) + NET_C(R37.2, Q10.C) + NET_C(Q10.E, R35.1, V5) + NET_C(R35.2, Q10.B, R36.1) + NET_C(R36.2, Q9.C) + NET_C(Q9.E, GND) + NET_C(Q9.B, R34.1) + NET_C(R34.2, R33.1, F8.Q) + NET_C(R33.2, V5) + + // Launch Sound 1 + NET_C(H6.3, R44.1) + NET_C(R44.2, Q14.B) + NET_C(Q14.E, GND) + NET_C(Q14.C, R46.1) + NET_C(R46.2, Q15.B) + NET_C(R46.2, R45.1) + NET_C(R45.2, R47.1) + NET_C(R45.2, Q15.E) + NET_C(R47.2, R48.1) + NET_C(R48.2, GND) + NET_C(R48.1, Q16.B) + NET_C(Q15.C, CR29.A) + NET_C(CR29.K, R49.1) + NET_C(R49.2, Q16.C) + NET_C(Q16.E, R50.1) + NET_C(R50.2, GND) + NET_C(Q15.E, R51.1) + NET_C(Q15.E, V12) + NET_C(Q15.E, U3.8) + NET_C(R51.2, U3.6) + NET_C(Q16.C, C20.1) + NET_C(C20.2, GND) + NET_C(C20.1, U3.5) + NET_C(U3.1, GND) + NET_C(U3.7, C21.1) + NET_C(C21.2, GND) + NET_C(U3.3, C22.1) + NET_C(C22.2, R52.1) + NET_C(R52.2, GND) + NET_C(R52.1, CR30.A) + NET_C(CR30.K, R53.1) + NET_C(R53.2, Q17.C) + NET_C(Q17.E, GND) + NET_C(Q17.B, R56.1) + NET_C(R56.2, R44.1) + NET_C(Q17.C, R54.1) + NET_C(R54.2, R55.1) + NET_C(R55.2, GND) + NET_C(R55.1, C23.1) + NET_C(C23.2, GND) + NET_C(C23.1, R72.1) + + // Launch Sound 2 + NET_C(H6.11, R57.1) + NET_C(R57.2, Q18.B) + NET_C(Q18.E, GND) + NET_C(Q18.C, R59.1) + NET_C(R59.2, Q19.B) + NET_C(R59.2, R58.1) + NET_C(R58.2, R60.1) + NET_C(R58.2, Q19.E) + NET_C(R60.2, R61.1) + NET_C(R61.2, GND) + NET_C(R61.1, Q20.B) + NET_C(Q19.C, CR31.A) + NET_C(CR31.K, R62.1) + NET_C(R62.2, Q20.C) + NET_C(Q20.E, R63.1) + NET_C(R63.2, GND) + NET_C(Q19.E, R64.1) + NET_C(Q19.E, V12) + NET_C(Q19.E, U4.8) + NET_C(R64.2, U4.6) + NET_C(Q20.C, C24.1) + NET_C(C24.2, GND) + NET_C(C24.1, U4.5) + NET_C(U4.1, GND) + NET_C(U4.7, C25.1) + NET_C(C25.2, GND) + NET_C(U4.3, C26.1) + NET_C(C26.2, R65.1) + NET_C(R65.2, GND) + NET_C(R65.1, CR32.A) + NET_C(CR32.K, R66.1) + NET_C(R66.2, Q21.C) + NET_C(Q21.E, GND) + NET_C(Q21.B, R69.1) + NET_C(R69.2, R57.1) + NET_C(Q21.C, R67.1) + NET_C(R67.2, R68.1) + NET_C(R68.2, GND) + NET_C(R68.1, C27.1) + NET_C(C27.2, GND) + NET_C(C27.1, R73.1) + + NET_C(R70.2, R71.2, R72.2, R73.2, R74.1, U5.2, C28.1) + + NET_C(R74.2, R75.2, R75.3) + NET_C(C28.2, R75.1, R77.1, U5.6) + NET_C(C29.1, U5.7, V5) + NET_C(C29.2, GND) + NET_C(U5.3, C31.1, R76.1) + NET_C(C31.2, GND) + NET_C(R76.2, GND) + NET_C(U5.4, C30.1, VM5) + NET_C(C30.2, GND) + NET_C(R77.2, C32.1) + NET_C(C32.2, GND) + + // Separate each input into the summing network + OPTIMIZE_FRONTIER(R70.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R71.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R72.1, RES_M(1), 50) + OPTIMIZE_FRONTIER(R73.1, RES_M(1), 50) + +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_starcrus.h mame-0.224+dfsg.1/src/mame/audio/nl_starcrus.h --- mame-0.223+dfsg.1/src/mame/audio/nl_starcrus.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_starcrus.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +#ifndef MAME_AUDIO_NL_STARCRUS_H +#define MAME_AUDIO_NL_STARCRUS_H + +#pragma once + +NETLIST_EXTERNAL(starcrus) + +#endif // MAME_AUDIO_NL_STARCRUS_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_starfire.cpp mame-0.224+dfsg.1/src/mame/audio/nl_starfire.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_starfire.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_starfire.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,437 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +// +// Netlist for Star Fire +// +// Derived from the schematics in the manual. +// +// Known problems/issues: +// +// * Tracking computer might not be 100% right, compared to recordings. +// * Slow. +// + +#include "netlist/devices/net_lib.h" + +// +// 556 is just two 555s in one package +// + +static NETLIST_START(NE556_DIP) + NE555(A) + NE555(B) + + NET_C(A.GND, B.GND) + NET_C(A.VCC, B.VCC) + + DIPPINS( /* +--------------+ */ + A.DISCH, /* 1DISCH |1 ++ 14| VCC */ A.VCC, + A.THRESH, /* 1THRES |2 13| 2DISCH */ B.DISCH, + A.CONT, /* 1CONT |3 12| 2THRES */ B.THRESH, + A.RESET, /* 1RESET |4 NE556 11| 2CONT */ B.CONT, + A.OUT, /* 1OUT |5 10| 2RESET */ B.RESET, + A.TRIG, /* 1TRIG |6 9| 2OUT */ B.OUT, + A.GND, /* GND |7 8| 2TRIG */ B.TRIG + /* +--------------+ */ + ) +NETLIST_END() + +static NETLIST_START(ICL8038_DIP) + VCVS(VI, 1) + CCCS(CI1, -1) + CCCS(CI2, 2) + SYS_COMPD(COMP) + SYS_DSW2(SW) + VCVS(VO, 1) + RES(R_SHUNT, RES_R(50)) + + PARAM(VO.RO, 50) + PARAM(COMP.MODEL, "FAMILY(TYPE=CUSTOM IVL=0.16 IVH=0.4 OVL=0.01 OVH=0.01 ORL=50 ORH=50)") + PARAM(SW.GOFF, 0) // This has to be zero to block current sources + + NET_C(VI.OP, CI1.IN, CI2.IN) + NET_C(CI1.OP, VO.IP) + NET_C(COMP.Q, SW.I) + NET_C(CI2.OP, SW.2) + NET_C(COMP.VCC, R_SHUNT.1) + NET_C(SW.1, R_SHUNT.2) + NET_C(SW.3, VO.IP) + NET_C(VO.OP, COMP.IN) + + // Avoid singular Matrix due to G=0 switch + RES(RX1, 1e10) + RES(RX2, 1e10) + NET_C(RX1.1, SW.1) + NET_C(RX2.1, SW.3) + + NET_C(COMP.GND, RX1.2, RX2.2) + + RES(R1, 5000) + RES(R2, 5000) + RES(R3, 5000) + + // Square output wave + VCVS(V_SQR, 1) + NET_C(COMP.Q, V_SQR.IP) + + NET_C(COMP.GND, SW.GND, VI.ON, VI.IN, CI1.ON, CI2.ON, VO.IN, VO.ON, R2.2, V_SQR.IN, V_SQR.ON) + NET_C(COMP.VCC, SW.VCC, R1.2) + NET_C(COMP.IP, R1.1, R2.1, R3.1) + NET_C(COMP.Q, R3.2) + + ALIAS(11, VI.ON) // GND + ALIAS(9, V_SQR.OP) // Square out + ALIAS(3, VO.OP) // Triag out + ALIAS(8, VI.IP) // VC + ALIAS(4, CI1.IP) // R1 + ALIAS(5, CI2.IP) // R2 + ALIAS(10, VO.IP) // C1 + ALIAS(6, COMP.VCC) // V+ +NETLIST_END() + +// +// Main netlist +// + +NETLIST_START(starfire) + NET_MODEL("2N3702 PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=133.8 Ne=1.832 Ise=97.16f Ikf=1.081 Xtb=1.5 Br=3.73 Nc=2 Isc=0 Ikr=0 Rc=.715 Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75 Tr=114.1n Tf=761.3p Itf=.65 Vtf=5 Xtf=1.7 Rb=10 mfg=National)") + NET_MODEL("LM324_12V OPAMP(TYPE=3 VLH=1.6 VLL=0.16 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") + NET_MODEL("LM324_5V OPAMP(TYPE=3 VLH=0.667 VLL=0.0667 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)") + + SOLVER(Solver, 48000) + ANALOG_INPUT(V1_2, 1.2) + ANALOG_INPUT(V12, 12) + ANALOG_INPUT(VM12, -12) + ANALOG_INPUT(V5, 5) + ANALOG_INPUT(VM5, -5) + ALIAS(VCC, V5) + + TTL_INPUT(SIZE, 0) // active high + TTL_INPUT(SEXPLO, 0) // active high + TTL_INPUT(STIE, 0) // active high + TTL_INPUT(SLASER, 0) // active high + TTL_INPUT(TRACK, 0) // active high + TTL_INPUT(LOCK, 0) // active high + TTL_INPUT(SCANNER, 0) // active high + TTL_INPUT(OHEAT, 0) // active high + + NET_C(VCC, SIZE.VCC, SEXPLO.VCC, STIE.VCC, SLASER.VCC, TRACK.VCC, LOCK.VCC, SCANNER.VCC, OHEAT.VCC) + NET_C(GND, SIZE.GND, SEXPLO.GND, STIE.GND, SLASER.GND, TRACK.GND, LOCK.GND, SCANNER.GND, OHEAT.GND) + + LOCAL_SOURCE(NE556_DIP) + LOCAL_SOURCE(ICL8038_DIP) + + RES(R12, RES_K(10)) + RES(R13, RES_K(470)) + RES(R14, RES_K(470)) + POT(R15, RES_K(100)) + POT(R16, RES_K(100)) + POT(R17, RES_K(100)) + POT(R18, RES_K(100)) + POT(R19, RES_K(33)) + POT(R20, RES_K(10)) + POT(R21, RES_K(10)) + RES(R23, RES_K(47)) + RES(R24, 470) + RES(R25, RES_K(10)) + RES(R26, RES_K(1)) + RES(R27, RES_K(30)) + RES(R28, RES_K(30)) + RES(R29, RES_K(1)) + RES(R30, RES_K(4.7)) + RES(R31, RES_M(1)) + RES(R37, RES_K(10)) + RES(R38, RES_K(2.7)) + RES(R39, RES_K(10)) + RES(R40, RES_K(2.7)) + RES(R41, RES_K(3)) + RES(R42, RES_K(1)) + RES(R43, RES_M(1)) + RES(R44, RES_K(2.2)) + RES(R45, RES_K(3.3)) + RES(R46, RES_K(27)) + RES(R47, RES_K(82)) + RES(R48, RES_K(10)) + RES(R49, RES_K(100)) + RES(R50, RES_K(160)) + RES(R51, RES_K(16)) + RES(R52, RES_K(16)) + RES(R53, RES_K(16)) + RES(R54, RES_K(100)) + RES(R55, RES_K(100)) + RES(R56, RES_K(4.7)) + RES(R57, RES_K(10)) + RES(R58, RES_K(82)) + RES(R59, RES_K(27)) + RES(R60, RES_K(2.7)) + RES(R61, RES_K(10)) + RES(R62, RES_M(1)) + RES(R63, RES_M(1)) + RES(R64, RES_K(4.7)) + RES(R67, RES_K(10)) + RES(R68, RES_K(2.7)) + RES(R69, RES_K(470)) + RES(R70, RES_K(470)) + RES(R71, RES_K(100)) + RES(R72, RES_K(330)) + RES(R73, RES_K(4.7)) + RES(R74, RES_K(100)) + RES(R75, RES_K(27)) + RES(R77, RES_K(470)) + RES(R78, RES_K(4.7)) + RES(R79, RES_K(10)) + RES(R80, RES_K(3)) + RES(R81, RES_K(1)) + RES(R82, RES_K(10)) + RES(R83, RES_K(4.7)) + RES(R84, RES_K(1)) + RES(R85, RES_K(3)) + RES(R86, RES_K(1)) + RES(R87, RES_K(2)) + //RES(R88, RES_K(82)) + RES(R89, RES_K(22)) + RES(R90, RES_K(22)) + RES(R91, RES_M(1)) + //RES(R, RES_K()) + + CAP(C7, CAP_U(0.1)) + CAP(C9, CAP_U(0.1)) + CAP(C10, CAP_U(0.1)) + CAP(C11, CAP_U(0.1)) + CAP(C12, CAP_U(0.01)) + CAP(C13, CAP_U(1.0)) + CAP(C14, CAP_U(0.1)) + CAP(C15, CAP_U(0.01)) + CAP(C18, CAP_U(1.0)) + CAP(C20, CAP_U(1.0)) + CAP(C21, CAP_U(0.1)) + CAP(C22, CAP_U(0.1)) + CAP(C23, CAP_U(0.1)) + CAP(C25, CAP_U(1.0)) + CAP(C26, CAP_U(0.1)) + CAP(C27, CAP_U(1.0)) + CAP(C29, CAP_U(0.1)) + CAP(C32, CAP_U(1.0)) + CAP(C34, CAP_U(1.0)) + CAP(C38, CAP_U(0.1)) + CAP(C39, CAP_U(0.01)) + CAP(C45, CAP_U(4.7)) + //CAP(C, CAP_U()) + + DIODE(D3, "1N914") + + TTL_7406_GATE(IC_6C_A) + TTL_7406_GATE(IC_6C_B) + TTL_7406_GATE(IC_6C_C) + TTL_7406_GATE(IC_6C_D) + TTL_7406_GATE(IC_6C_E) + TTL_7406_GATE(IC_6C_F) + NET_C(VCC, IC_6C_A.VCC, IC_6C_B.VCC, IC_6C_C.VCC, IC_6C_D.VCC, IC_6C_E.VCC, IC_6C_F.VCC) + NET_C(GND, IC_6C_A.GND, IC_6C_B.GND, IC_6C_C.GND, IC_6C_D.GND, IC_6C_E.GND, IC_6C_F.GND) + + CD4070_GATE(IC_7E_A) + CD4070_GATE(IC_7E_B) + CD4070_GATE(IC_7E_C) + CD4070_GATE(IC_7E_D) + NET_C(V12, IC_7E_A.VDD, IC_7E_B.VDD, IC_7E_C.VDD, IC_7E_D.VDD) + NET_C(GND, IC_7E_A.VSS, IC_7E_B.VSS, IC_7E_C.VSS, IC_7E_D.VSS) + + NE555(IC_5B_A) + NE555(IC_6E_A) + NET_C(V5, IC_5B_A.VCC) + NET_C(V12, IC_6E_A.VCC) + NET_C(GND, IC_5B_A.GND, IC_6E_A.GND) + + SUBMODEL(NE556_DIP, IC_6A) + SUBMODEL(NE556_DIP, IC_8F) + NET_C(V5, IC_6A.14) + NET_C(V12, IC_8F.14) + NET_C(GND, IC_6A.7, IC_8F.7) + + CD4006_DIP(IC_8E) + NET_C(V12, IC_8E.14) + NET_C(GND, IC_8E.7) + + OPAMP(IC_6D_A, "LM324_12V") + OPAMP(IC_6D_B, "LM324_12V") + OPAMP(IC_6D_C, "LM324_12V") + OPAMP(IC_6D_D, "LM324_12V") + OPAMP(IC_8D_A, "LM324_12V") + OPAMP(IC_8D_B, "LM324_12V") + OPAMP(IC_8D_C, "LM324_12V") + OPAMP(IC_8D_D, "LM324_12V") + NET_C(V12, IC_6D_A.VCC, IC_6D_B.VCC, IC_6D_C.VCC, IC_6D_D.VCC, IC_8D_A.VCC, IC_8D_B.VCC, IC_8D_C.VCC, IC_8D_D.VCC) + NET_C(VM12, IC_6D_A.GND, IC_6D_B.GND, IC_6D_C.GND, IC_6D_D.GND, IC_8D_A.GND, IC_8D_B.GND, IC_8D_C.GND, IC_8D_D.GND) + + OPAMP(IC_7C_A, "LM324_5V") + OPAMP(IC_7C_B, "LM324_5V") + OPAMP(IC_7C_C, "LM324_5V") + OPAMP(IC_7C_D, "LM324_5V") + NET_C(V5, IC_7C_A.VCC, IC_7C_B.VCC, IC_7C_C.VCC, IC_7C_D.VCC) + NET_C(VM5, IC_7C_A.GND, IC_7C_B.GND, IC_7C_C.GND, IC_7C_D.GND) + + MC3340_DIP(IC_7D) + MC3340_DIP(IC_6B) + NET_C(V12, IC_6B.8, IC_7D.8) + NET_C(GND, IC_6B.3, IC_7D.3) + + SUBMODEL(ICL8038_DIP, IC_6F) + NET_C(V12, IC_6F.6) + NET_C(VM12, IC_6F.11) + + CD4016_DIP(IC_7B) + NET_C(V5, IC_7B.14) + NET_C(VM5, IC_7B.7) + + QBJT_EB(Q1, "2N3702") + QBJT_EB(Q2, "2N3702") + + // Tie Weapon + NET_C(STIE.Q, IC_6C_E.A) + NET_C(IC_6C_E.Y, R39.1, IC_7E_C.A) + NET_C(V1_2, IC_7C_C.MINUS) // HACK: +12V is actually fed into this pin per the schematic, but it relies on LM324 abuse. + NET_C(V12, R39.2, IC_7E_C.B, R83.1, R91.1, R86.1, IC_7E_A.A, IC_8F.10) + NET_C(IC_7E_C.Q, IC_8F.4, IC_8F.6) + NET_C(IC_8F.1, C45.1, Q2.C, IC_8D_D.PLUS) + NET_C(GND, C38.2, C45.2, R82.2, R57.1, R61.2, R84.2, IC_8D_A.PLUS) + NET_C(R83.2, R82.1, Q2.B) + NET_C(R91.2, Q2.E) + NET_C(IC_8F.5, R85.1) + NET_C(R85.2, R84.1, IC_7C_C.PLUS) + ALIAS(TIE_ON, IC_7C_C.OUT) + ALIAS(TIEON1, R84.1) + NET_C(R58.2, VM12) + NET_C(R58.1, R57.2, R59.1, IC_8D_D.MINUS) + NET_C(R59.2, IC_8D_D.OUT, R60.1, IC_8F.11) + NET_C(R60.2, R61.1, IC_8F.2) + NET_C(R86.2, R87.1, IC_8F.13) + NET_C(R87.2, IC_8F.8, IC_8F.12, C38.1) + NET_C(IC_8F.9, IC_8E.3) + NET_C(IC_8E.13, IC_7E_A.B) + NET_C(IC_7E_A.Q, IC_8E.5) + NET_C(IC_8E.1, IC_8E.12, IC_7E_B.B) + NET_C(IC_8E.8, IC_7E_B.A) + NET_C(IC_7E_B.Q, IC_8E.4) + NET_C(IC_8E.10, IC_8E.6, R73.1) + NET_C(SIZE.Q, IC_6C_F.A) + NET_C(IC_6C_F.Y, R56.1) + NET_C(R56.2, R73.2, C29.1) + NET_C(C29.2, R74.1) + NET_C(R74.2, R75.1, IC_8D_A.MINUS) + NET_C(R75.2, IC_8D_A.OUT) + ALIAS(NOISE, IC_8D_A.OUT) + + // Explosion + NET_C(NOISE, R53.1) + NET_C(R53.2, C23.1, R52.1) + NET_C(R52.2, C22.1, IC_6D_C.PLUS) + NET_C(R50.2, R49.1, IC_6D_C.MINUS) + NET_C(C23.2, R50.1, R51.1, R54.1, IC_6D_C.OUT) + NET_C(R51.2, C21.1) + ALIAS(RUMBLE_2, C21.1) + NET_C(C21.2, C22.2, R49.2, C27.2, R55.2, C26.2, GND) + NET_C(R54.2, R55.1, C34.1) + NET_C(C34.2, IC_7D.1) + NET_C(SEXPLO.Q, IC_6C_C.A) + NET_C(IC_6C_C.Y, R40.1) + NET_C(R40.2, C27.1, R63.1) + NET_C(R63.2, R62.2, IC_8D_C.PLUS) + NET_C(R62.1, V5) + NET_C(IC_8D_C.MINUS, IC_8D_C.OUT, IC_7D.2) + NET_C(IC_7D.6, C26.1) + NET_C(IC_7D.7, C25.1) + ALIAS(EXPLO, C25.2) + + // Tracking Computer + NET_C(SCANNER.Q, IC_5B_A.RESET) + NET_C(V5, R24.1, R70.1, R13.1, R27.1) + NET_C(GND, C15.2, R26.2, C20.2, C11.2, C7.2, C12.2, R29.2) + NET_C(R24.2, R23.1, R12.1, IC_6A.5, IC_5B_A.DISCH) + NET_C(R23.2, C15.1, IC_5B_A.THRESH, IC_5B_A.TRIG) + NET_C(OHEAT.Q, IC_6C_B.A) + NET_C(IC_6C_B.Y, R38.1) + NET_C(R38.2, C20.1, R69.1) + NET_C(R69.2, R70.2, IC_6D_A.PLUS) + NET_C(IC_6D_A.MINUS, IC_6D_A.OUT, IC_6B.2) + NET_C(IC_5B_A.OUT, R25.1) + NET_C(R25.2, C9.1, R26.1) + NET_C(C9.2, IC_6B.1) + NET_C(IC_6B.6, C11.1) + NET_C(IC_6B.7, C10.1) + ALIAS(LOH, C10.2) + NET_C(R13.2, R14.1, IC_6A.1) + NET_C(R14.2, C7.1, IC_6A.2, IC_6A.6) + NET_C(LOCK.Q, IC_6A.4) + NET_C(R12.2, IC_6A.11) + NET_C(R27.2, R28.1, IC_6A.13) + NET_C(R28.2, C12.1, IC_6A.12, IC_6A.8) + NET_C(TRACK.Q, IC_6A.10) + NET_C(IC_6A.9, C13.1) + NET_C(C13.2, R30.1) + NET_C(R30.2, R29.1) + ALIAS(COMPUTER, R30.2) + + // Laser + NET_C(SIZE.Q, IC_6C_D.A) + NET_C(IC_6C_D.Y, R41.1) + NET_C(R41.2, R78.2, R79.1, Q1.B) + NET_C(V1_2, IC_7C_B.MINUS) // HACK: +12V is actually fed into this pin per the schematic, but it relies on LM324 abuse. + NET_C(V12, R78.1, R77.1, R37.1, IC_7E_D.B, R89.1, R90.1) + NET_C(GND, R79.2, C32.2, R48.2, R81.2, R67.2, IC_6D_B.PLUS) + NET_C(R77.2, Q1.E) + NET_C(Q1.C, C32.1, IC_6E_A.DISCH, IC_6D_D.PLUS) + NET_C(SLASER.Q, IC_6C_A.A) + NET_C(IC_6C_A.Y, R37.2, IC_7E_D.A) + NET_C(IC_7E_D.Q, IC_6E_A.TRIG, IC_6E_A.RESET) + NET_C(IC_6E_A.OUT, R80.1) + NET_C(R80.2, R81.1, IC_7C_B.PLUS) + ALIAS(LASERON1, R80.2) + ALIAS(LASER_ON, IC_7C_B.OUT) + NET_C(R48.1, R47.1, R46.1, IC_6D_D.MINUS) + NET_C(VM12, R47.2, C39.2) + NET_C(R46.2, IC_6D_D.OUT, R68.1, IC_6F.8) + NET_C(R68.2, R67.1, IC_6E_A.THRESH) + NET_C(C39.1, IC_6F.10) + NET_C(R89.2, IC_6F.4) + NET_C(R90.2, IC_6F.5) + NET_C(IC_6F.3, R72.1) + NET_C(R72.2, R71.1, IC_6D_B.MINUS) + NET_C(R71.2, IC_6D_B.OUT) + ALIAS(LASER, R71.2) + + // Mixer + NET_C(V5, R45.1, R42.2) + NET_C(R45.2, R44.1, IC_7C_A.MINUS, IC_7C_D.MINUS) + NET_C(GND, R44.2, C18.2, R43.2) + NET_C(SIZE.Q, R42.1, D3.A) + NET_C(D3.K, C18.1, R43.1, IC_7C_D.PLUS) + + NET_C(TRACK.Q, IC_7C_A.PLUS) + NET_C(IC_7C_A.OUT, IC_7B.13) + NET_C(COMPUTER, IC_7B.1) + NET_C(IC_7B.2, R16.1, R16.2) + + NET_C(LASER, IC_7B.11) + NET_C(LASER_ON, IC_7B.12) + NET_C(IC_7B.10, R18.1, R18.2) + + NET_C(NOISE, IC_7B.4) + NET_C(TIE_ON, IC_7B.5) + NET_C(IC_7B.3, R17.1, R17.2) + + NET_C(RUMBLE_2, IC_7B.8) + NET_C(IC_7C_D.OUT, IC_7B.6) + NET_C(IC_7B.9, R19.1, R19.2) + + NET_C(EXPLO, R20.1, R20.2) + + NET_C(LOH, R15.1, R15.2) + + NET_C(R16.3, R18.3, R17.3, R19.3, R20.3, R15.3, R64.1, IC_8D_B.MINUS) + NET_C(GND, IC_8D_B.PLUS) + NET_C(R64.2, R21.3, IC_8D_B.OUT) + NET_C(R21.1, R31.2, GND) + NET_C(R21.2, C14.1) + NET_C(C14.2, R31.1) + ALIAS(OUTPUT, R31.1) +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_starfire.h mame-0.224+dfsg.1/src/mame/audio/nl_starfire.h --- mame-0.223+dfsg.1/src/mame/audio/nl_starfire.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_starfire.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +#ifndef MAME_AUDIO_NL_STARFIRE_H +#define MAME_AUDIO_NL_STARFIRE_H + +#pragma once + +NETLIST_EXTERNAL(starfire) + +#endif // MAME_AUDIO_NL_STARFIRE_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_sundance.cpp mame-0.224+dfsg.1/src/mame/audio/nl_sundance.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_sundance.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_sundance.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -23,7 +23,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_sundance.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_tailg.cpp mame-0.224+dfsg.1/src/mame/audio/nl_tailg.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_tailg.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_tailg.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -21,7 +21,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_tailg.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_tankbatt.cpp mame-0.224+dfsg.1/src/mame/audio/nl_tankbatt.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_tankbatt.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_tankbatt.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,164 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +// +// Netlist for Tank Battalion +// +// Derived from the schematics in the manual. +// +// Known problems/issues: +// +// * None. +// + +#include "netlist/devices/net_lib.h" + +// +// Main netlist +// + +NETLIST_START(tankbatt) + + SOLVER(Solver, 48000) + ANALOG_INPUT(V5, 5) + ALIAS(VCC, V5) + + CLOCK(2V, 4000) // 18.432MHz / (3 * 384 * 2) + CLOCK(4V, 2000) // 18.432MHz / (3 * 384 * 4) + + TTL_INPUT(S1, 0) // active high + TTL_INPUT(S2, 0) // active high + TTL_INPUT(OFF, 1) // active high + TTL_INPUT(ENGINE_HI, 0) // active high + TTL_INPUT(SHOOT, 0) // active high + TTL_INPUT(HIT, 0) // active high + + RES(R31, 470) + RES(R32, 470) + RES(R35, RES_K(4.7)) + RES(R36, RES_K(4.7)) + RES(R37, RES_K(6.8)) + RES(R38, RES_K(10)) + //RES(R41, RES_K(22)) + RES(R42, RES_K(22)) + RES(R43, RES_K(22)) + RES(R44, RES_K(33)) + RES(R45, RES_K(47)) + RES(R46, RES_K(4.7)) // Possible schematic or scan-quality error: Schematic says 47K + RES(R47, RES_K(4.7)) + RES(R48, RES_K(4.7)) + RES(R49, RES_K(4.7)) // Possible schematic or scan-quality error: Schematic says 47K + RES(R50, RES_K(150)) + RES(R51, RES_K(150)) + RES(R52, RES_K(220)) + RES(R53, RES_K(470)) + RES(R54, RES_K(470)) + RES(R56_1, RES_K(1)) + RES(R56_2, RES_K(1)) + RES(R57, RES_K(10)) + RES(R58, RES_K(1)) + RES(R59, RES_K(1)) + RES(R60, RES_K(1)) + RES(R61, RES_K(1)) + + CAP(C10, CAP_U(2.2)) + CAP(C11, CAP_U(2.2)) + CAP(C12, CAP_U(2.2)) + CAP(C13, CAP_U(2.2)) + CAP(C14, CAP_U(0.1)) + CAP(C15, CAP_U(0.01)) + CAP(C16, CAP_U(0.01)) + CAP(C17, CAP_U(0.01)) + CAP(C18, CAP_U(0.01)) + CAP(C42, CAP_U(0.1)) + + DIODE(D8, "D") // Generic diodes, types not listed on schematic + DIODE(D9, "D") + DIODE(D10, "D") + DIODE(D11, "D") + + CD4006(_6F) + CD4066_DIP(_6L) + LM324_DIP(_6J) + TTL_7486_DIP(_6K) + TTL_7492_DIP(_5K) + + NET_C(VCC, _5K.5, _6F.VDD, _6J.4, _6K.7, _6L.14, S1.VCC, S2.VCC, OFF.VCC, ENGINE_HI.VCC, SHOOT.VCC, HIT.VCC, 2V.VCC, 4V.VCC) + NET_C(GND, _5K.10, _6F.VSS, _6J.11, _6K.14, _6L.7, S1.GND, S2.GND, OFF.GND, ENGINE_HI.GND, SHOOT.GND, HIT.GND, 2V.GND, 4V.GND) + + // Noise generation (presumably) + NET_C(_6F.CLOCK, 2V) + NET_C(_6F.D1P4, _6F.D3) + NET_C(_6F.D3P4, _6F.D4, _6L.12, _6L.6) + NET_C(_6F.D1, _6F.D2P5, _6K.A.A) + NET_C(_6F.D4P4, _6K.A.B) + NET_C(_6K.A.Q, R38.1) + NET_C(_6F.D2, R38.2, D9.K) + NET_C(_6F.D4P5, D8.A, R53.1) + NET_C(D8.K, R53.2, C42.1, _6J.2) + NET_C(_6J.1, C42.2, D9.A) + NET_C(_6J.3, C12.1, R43.1, R44.1, _6J.12, _6J.10) + NET_C(C12.2, GND) + NET_C(R43.2, GND) + NET_C(R44.2, V5) + + // S1 + NET_C(S1.Q, _6L.5) + NET_C(4V, _6L.4) + NET_C(_6L.3, R35.1) + + // S2 + NET_C(S2.Q, _6L.13) + NET_C(2V, _6L.1) + NET_C(_6L.2, R36.1) + + // Hit + NET_C(HIT.Q, R31.1) + NET_C(R31.2, D10.A) + NET_C(D10.K, C10.1, _6L.8) + NET_C(C10.2, GND) + NET_C(_6L.9, R50.1) + NET_C(R50.2, R42.1, C15.1, C16.1) + NET_C(R42.2, GND) + NET_C(C16.2, R54.1, _6J.9) + NET_C(C15.2, R54.2, _6J.8, R56_1.1) + + // Shoot + NET_C(SHOOT.Q, R32.1) + NET_C(R32.2, D11.A) + NET_C(D11.K, C11.1, _6L.11) + NET_C(C11.2, GND) + NET_C(_6L.10, R45.1) + NET_C(R45.2, R37.1, C17.1, C18.1) + NET_C(R37.2, GND) + NET_C(C18.2, R51.1, _6J.13) + NET_C(C17.2, R51.2, _6J.14, R56_2.1) + + // Engine Rumble + NET_C(ENGINE_HI.Q, _6K.B.A) + NET_C(_6K.B.B, _6K.C.Q) + NET_C(_6K.B.Q, R52.1, _5K.1) + NET_C(R52.2, R46.1, _6J.6, C14.1) + NET_C(C14.2, GND) + NET_C(_6J.5, R47.1, R48.1, R49.1) + NET_C(R47.2, V5) + NET_C(R48.2, GND) + NET_C(R49.2, R57.1, _6J.7, R46.2, _6K.C.A) + NET_C(R57.2, GND) + NET_C(_6K.C.B, VCC) + NET_C(_5K.7, VCC) + NET_C(_5K.6, OFF.Q) + NET_C(_5K.11, R60.1, _6K.D.A) + NET_C(_5K.8, R58.1, _6K.D.B) + NET_C(_6K.D.Q, _5K.14) + NET_C(_5K.12, R61.1) + NET_C(R58.2, R60.2, R61.2, C13.1, R59.1) + NET_C(C13.2, GND) + + // Mixing + //NET_C(R56_1.2, R56_2.2) + //NET_C(R35.2, R36.2) + //NET_C(R56_2.2, R59.2) + NET_C(R35.2, R36.2, R56_1.2, R56_2.2, R59.2) + //NET_C(R41.2, GND) +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_tankbatt.h mame-0.224+dfsg.1/src/mame/audio/nl_tankbatt.h --- mame-0.223+dfsg.1/src/mame/audio/nl_tankbatt.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_tankbatt.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,10 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +#ifndef MAME_AUDIO_NL_TANKBATT_H +#define MAME_AUDIO_NL_TANKBATT_H + +#pragma once + +NETLIST_EXTERNAL(tankbatt) + +#endif // MAME_AUDIO_NL_TANKBATT_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/nl_warrior.cpp mame-0.224+dfsg.1/src/mame/audio/nl_warrior.cpp --- mame-0.223+dfsg.1/src/mame/audio/nl_warrior.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/nl_warrior.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,7 +13,6 @@ #include "netlist/devices/net_lib.h" #include "nl_cinemat_common.h" -#include "nl_warrior.h" // diff -Nru mame-0.223+dfsg.1/src/mame/audio/pinsnd88.cpp mame-0.224+dfsg.1/src/mame/audio/pinsnd88.cpp --- mame-0.223+dfsg.1/src/mame/audio/pinsnd88.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/pinsnd88.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,274 @@ +// license:BSD-3-Clause +// copyright-holders: Jonathan Gevaryahu +/* + * pinsnd88.h - D-12338-567 Williams Pin Sound '88 board (M68B09E + YM2151 + DAC, two channels) + * PCB solder side trace P/N: 5766-12342-00 REV - + * + * Used only by the Williams System 11B pinball game "Jokerz!" + * + * The interface connector for this board is a 20 pin header J1 with the following pinout: + * + * +--------+ + * GND | 1 2 | NC + * PB0 | 3 4 | PB1 + * PB2 | 5 6 | PB3 + * PB4 | 7 8 | PB5 + * PB6 | 9 10 | PB7 + * NC | 11 12 | NC [/SYNC_PULSE] (normal system 11 bg sound board uses this pin) + * /STROBE | 13 14 | NC [/RESET_S11] + * NC | 15 16 | /SYNC_PULSE_ALT + * NC | 17 18 | /RESET + * NC | 19 20 | NC + * +--------+ + * + * Technically: + * Pin 13 is 'strobe in' and is asserted low to write to the sound board + * Pin 12 is 'sync out' and is asserted low to indicate the sound board + * has done some action. Unlike the D-11581 sound board, this board cannot + * write response data back to the host device. + * + * The actual full pinout of the connector, from the System 11 end is: + * +--------+ + * GND | 1 2 | BLANKING + * MD0 | 3 4 | MD1 + * MD2 | 5 6 | MD3 + * MD4 | 7 8 | MD5 + * MD6 | 9 10 | MD7 + * LCB1 | 11 12 | MCB1 + * MCB2 | 13 14 | /RESET + * LCA1 | 15 16 | MCA1 + * R/W | 17 18 | MCA2 + * E | 19 20 | NC + * +--------+ + * + * + * This PCB shows deisgn choices which place it between the design of the + * D-11581 Williams System 11 Background Sound board (s11c_bg.cpp) and + * the A-12738-500xx WPC Sound board (wpcsnd.cpp), notably that it does + * not use a 68B21 PIA, and it has a fixed ROM bank from 0xC000-0xFFFF + * with the vectors instead of requiring the 68B09E vectors to appear in + * every rom bank. + * It even has two unused I/O addresses for supporting a CVSD chip with latches + * though the pcb is not configured for this. + * The C-12350 NARC sound board's master CPU shares its memory map with this + * board, but the NARC board was seemingly, based on its part number, designed + * slightly later. + * + * + * D-12338 Jumpers: + * W1 : enables the 8MHz clock to the divider to the 68B09E. present. + * W2 : enables /SYNC PULSE on J1 P16. present, despite being missing on the schematics. + * W3 : enables /SYNC PULSE on J1 P12 (as the usual S11 BG sound board does). absent. + * W4 : enables /RESET from J1 P18 (under cpu control, as the usual S11 BG sound board does). present. + * W5 : enables /RESET from J1 P14 (this makes the board reset on S11 power up reset only). absent. + * W6 : enables the 3.579545MHz clock to the YM2151. present. + * W7 : ties J4 pin 1 and 2 to GND. absent, despite being present on the schematics. + * W8 : ties J4 pin 5-through-inductor and the final audio power amp + pins to +12v. absent, as power is presuambly delivered in through J4 pin 5 instead. + + * see https://a.allegroimg.com/s1024/0c2cfa/0433164f4bfa94aa99cec60874f5 re: W2 being connected on the real board. (also see undumped REV1 rom) + * see https://a.allegroimg.com/s1024/0c3dce/74cdfa004e1dbac943986a94999b re: W8 being absent + * see https://a.allegroimg.com/s1024/0c2979/0ffe7737466bb0ee363d4e127e33 re: W8 being absent + + * NOTE: The Jokerz! pinball cabinet is known to have some significant issues with hum in the audio, + * Williams released a service bulletin which involved modifying the power pins on the CVSD chip + * on the System 11B Mainboard, but even that didn't completely fix it. The exact cause of this + * issue is not entirely clear at this point. + + + * TODO: the 'reset twice on reset' thing seems necessary or else tempo is horrendously screwed up. why? + * TODO: the 'treat reading the analog control port as if it is connected to the input latch and clear the input semaphore' seems necessary for sound to work. why? It doesn't match the schematics... + + + * NOTE: The Pin Sound '88 board used by Jokerz! can handle up to two 27c010 + * EPROMs, but it only ever shipped with a single 27512 EPROM. + * Because of the way that the 27512 sits in the lower 28 pins of the 32 pin socket, + * this makes the mapping a little odd. + * Bank # and area Banked space If 2x 27c010 If 1x 27512 + * Bank 0 4000-7fff 00000-03fff U6 00000-03fff open bus + * Bank 0 8000-bfff 04000-07fff U6 04000-07fff open bus + * Bank 1 4000-7fff 08000-0bfff U6 08000-0bfff open bus + * Bank 1 8000-bfff 0c000-0ffff U6 0c000-0ffff open bus + * Bank 2 4000-7fff 10000-13fff U6 10000-13fff open bus + * Bank 2 8000-bfff 14000-17fff U6 14000-17fff open bus + * Bank 3 4000-7fff 18000-1bfff U6 18000-1bfff open bus + * Bank 3 8000-bfff 1c000-1ffff U6 1c000-1ffff open bus + * Bank 4 4000-7fff 20000-23fff U5 00000-03fff U5 00000-03fff + * Bank 4 8000-bfff 24000-27fff U5 04000-07fff U5 04000-07fff + * Bank 5 4000-7fff 28000-2bfff U5 08000-0bfff U5 08000-0bfff + * Bank 5 8000-bfff 2c000-2ffff U5 0c000-0ffff U5 0c000-0ffff + * Bank 6 4000-7fff 30000-33fff U5 10000-13fff U5 00000-03fff + * Bank 6 8000-bfff 34000-37fff U5 14000-17fff U5 04000-07fff + * Bank 7 4000-7fff 38000-3bfff U5 18000-1bfff U5 08000-0bfff + * Bank 7 8000-bfff +fixed 3c000-3ffff U5 1c000-1ffff U5 0c000-0ffff +*/ + +#include "emu.h" +#include "pinsnd88.h" +#include "sound/volt_reg.h" + + +DEFINE_DEVICE_TYPE(PINSND88, pinsnd88_device, "pinsnd88", "Williams Pin Sound '88 Audio Board") + +pinsnd88_device::pinsnd88_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig,PINSND88,tag,owner,clock) + , device_mixer_interface(mconfig, *this, 2) // 2 channels + , m_cpu(*this, "cpu") + , m_dac(*this, "dac") + , m_ym2151(*this, "ym2151") + , m_cpubank(*this, "bank") + , m_syncq_cb(*this) + , m_old_resetq_state(ASSERT_LINE) + , m_data_in(0xff) + , m_inputlatch(*this, "inputlatch") +{ +} + +/* +15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 RW +0 0 0 * * * * * * * * * * * * * RW - 0x0000 - SRAM @U7 +0 0 1 0 0 0 x x x x x x x x x * RW - 0x2000 - YM2151 @U16 +0 0 1 0 0 1 x x x x x x x x x x x - 0x2400 - open bus (hypothesis: leftover from cvsd_clock_set_w circuit) +0 0 1 0 1 0 x x x x x x x x x x W[1]- 0x2800 - ANALOG SWITCH, input sound and output stereo control; on NARC, latch to respond to main pcb +0 0 1 0 1 1 x x x x x x x x x x x - 0x2C00 - open bus (hypothesis: leftover from cvsd_digit_clock_clear_w circuit; on NARC, secondary command_w) +0 0 1 1 0 0 x x x x x x x x x x W - 0x3000 - 7224 DAC write +0 0 1 1 0 1 x x x x x x x x x x R[2]- 0x3400 - Latch Read and de-assert MC68B09E /IRQ +0 0 1 1 1 0 x x x x x x x x x x W[1]- 0x3800 - write ROM bank +0 0 1 1 1 1 x x x x x x x x x x * - 0x3C00 - pulse the /SYNC_PULSE line low using a 74LS123 retriggerable monostable multivibrator[3] +0 1 * * * * * * * * * * * * * * R - banked rom area (A14 low) +1 0 * * * * * * * * * * * * * * R - banked rom area (A14 high) +1 1 * * * * * * * * * * * * * * R - fixed rom area (permanently on the last bank, A14 high) +[1] reading this address writes open bus garbage to it +[2] writing this address clears the /IRQ state but doesn't read the latch/bus conflict +[3] R=4.7k and C=.001uf, which pulses the /sync_pulse pin output from the sound board + low according to the datasheet formula: + TS = KRC, where K is the constant ~0.37, R is 4700), + and C is 0.000000001, for a result of 1.739us +*/ +void pinsnd88_device::pinsnd88_map(address_map &map) +{ + map(0x0000, 0x1fff).ram(); + map(0x2000, 0x2001).mirror(0x03fe).rw(m_ym2151, FUNC(ym2151_device::read), FUNC(ym2151_device::write)); + // 2400 open bus + // TODO: map(0x2800, 0x2800).mirror(0x03ff).w(FUNC(pinsnd88_device::analog_w)); + map(0x2800, 0x2800).mirror(0x03ff).r(m_inputlatch, FUNC(generic_latch_8_device::read)); // TODO: For some inexplicable reason, this has to be mapped here or you get no sound. The schematic shows this mapped at 0x3400, not 0x2800? + // 2c00 open bus + map(0x3000, 0x3000).mirror(0x03ff).w(m_dac, FUNC(dac_byte_interface::data_w)); + map(0x3400, 0x3400).mirror(0x03ff).r(m_inputlatch, FUNC(generic_latch_8_device::read)); + map(0x3800, 0x3800).mirror(0x03ff).w(FUNC(pinsnd88_device::bgbank_w)); + map(0x3c00, 0x3c00).mirror(0x03ff).w(FUNC(pinsnd88_device::sync_w)); + map(0x4000, 0xbfff).bankr("bank").region("cpu", 0); // banked rom + map(0xc000, 0xffff).rom().region("cpu",0x3c000); // fixed bank +} + +void pinsnd88_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + switch(id) + { + case TIMER_SYNC: + if (!m_syncq_cb.isnull()) + { + logerror("pinsnd88 sync cleared!\n"); + m_syncq_cb(ASSERT_LINE); + m_sync_timer->adjust(attotime::never); + } + break; + } +} + +TIMER_CALLBACK_MEMBER(pinsnd88_device::deferred_sync_w) +{ + if (!m_syncq_cb.isnull()) + { + logerror("pinsnd88 sync asserted!\n"); + m_syncq_cb(CLEAR_LINE); + m_sync_timer->adjust(attotime::from_usec(2)); + } + else + logerror("pinsnd88 sync writeback called, but callback is not registered!\n"); +} + +void pinsnd88_device::sync_w(uint8_t data) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(pinsnd88_device::deferred_sync_w),this), 0); +} + +WRITE_LINE_MEMBER(pinsnd88_device::strobe_w) +{ + m_inputlatch->write(m_data_in); +} + +void pinsnd88_device::data_w(uint8_t data) +{ + m_data_in = data; +} + +WRITE_LINE_MEMBER(pinsnd88_device::resetq_w) +{ + if ((m_old_resetq_state != CLEAR_LINE) && (state == CLEAR_LINE)) + { + logerror("PINSND88 device received reset request\n"); + common_reset(); + } + m_old_resetq_state = state; +} + + +void pinsnd88_device::device_add_mconfig(machine_config &config) +{ + MC6809E(config, m_cpu, XTAL(8'000'000) / 4); // MC68B09E + m_cpu->set_addrmap(AS_PROGRAM, &pinsnd88_device::pinsnd88_map); + config.set_maximum_quantum(attotime::from_hz(50)); + + // TODO: analog filters and "volume" controls for the two channels + AD7224(config, m_dac, 0); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); + m_dac->add_route(ALL_OUTPUTS, *this, 0.41/2.0, AUTO_ALLOC_INPUT, 0); // 470K + m_dac->add_route(ALL_OUTPUTS, *this, 0.5/2.0, AUTO_ALLOC_INPUT, 1); // 330K + + GENERIC_LATCH_8(config, m_inputlatch); + m_inputlatch->data_pending_callback().set_inputline(m_cpu, M6809_IRQ_LINE); + + YM2151(config, m_ym2151, XTAL(3'579'545)); // "3.58 MHz" on schematics and parts list + m_ym2151->irq_handler().set_inputline(m_cpu, M6809_FIRQ_LINE); // IRQ is not true state, but neither is the M6809_FIRQ_LINE so we're fine. + m_ym2151->add_route(ALL_OUTPUTS, *this, 0.59/2.0, AUTO_ALLOC_INPUT, 0); // 330K + m_ym2151->add_route(ALL_OUTPUTS, *this, 0.5/2.0, AUTO_ALLOC_INPUT, 1); // 330K +} + +void pinsnd88_device::device_start() +{ + u8 *rom = memregion("cpu")->base(); + m_cpubank->configure_entries(0, 8, &rom[0x0], 0x8000); + m_cpubank->set_entry(0); + /* resolve lines */ + m_syncq_cb.resolve(); + /* timer */ + m_sync_timer = timer_alloc(TIMER_SYNC); + m_sync_timer->adjust(attotime::never); + save_item(NAME(m_old_resetq_state)); + save_item(NAME(m_data_in)); +} + +void pinsnd88_device::common_reset() +{ + // reset the CPU again, so that the CPU are starting with the right vectors (otherwise sound may die on reset) + m_cpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); // TODO: WHY is this needed? this board uses a fixed set of vectors at a fixed rom bank! but it still doesn't work properly without this. + m_ym2151->reset(); +} + +void pinsnd88_device::device_reset() +{ + common_reset(); +} + +/* + Rom mapping for the 3 banking bits: + 2 1 0 + 0 r q - U6, A15 q, A16 r + 1 r q - U5, A15 q, A16 r +*/ +void pinsnd88_device::bgbank_w(uint8_t data) +{ + m_cpubank->set_entry(data&0x7); +} diff -Nru mame-0.223+dfsg.1/src/mame/audio/pinsnd88.h mame-0.224+dfsg.1/src/mame/audio/pinsnd88.h --- mame-0.223+dfsg.1/src/mame/audio/pinsnd88.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/pinsnd88.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,74 @@ +// license:BSD-3-Clause +// copyright-holders: Jonathan Gevaryahu +/* + * pinsnd88.h - D-12338-567 Williams Pin Sound '88 board (M68B09E + YM2151 + DAC, two channels) + * + */ + +#ifndef MAME_AUDIO_PINSND88_H +#define MAME_AUDIO_PINSND88_H + +#pragma once + +#include "cpu/m6809/m6809.h" +#include "machine/gen_latch.h" +#include "sound/ym2151.h" +#include "sound/dac.h" + + +class pinsnd88_device : public device_t, public device_mixer_interface +{ +public: + // construction/destruction + pinsnd88_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + + // overrides + virtual void device_reset() override; // power up reset + + // note to keep synchronization working, the host machine should have synchronization timer expired delegates + // if possible, before writing to the following things: + DECLARE_WRITE_LINE_MEMBER(strobe_w); // external write to board (J1 pin 13) + void data_w(uint8_t data); // external write to board data bus (J1 pins 3 thru 10 for D0-D7) + DECLARE_WRITE_LINE_MEMBER(resetq_w); // external write to board /RESET (J1 pin 18) + + // callbacks + auto syncq_cb() { return m_syncq_cb.bind(); } + + void pinsnd88_map(address_map &map); + +protected: + // constructor with overridable type for subclass, in case we want to put NARC's sound board in here eventually + //pinsnd88_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock = 0); + + // overrides + virtual void device_start() override; + virtual void device_add_mconfig(machine_config &config) override; + + TIMER_CALLBACK_MEMBER(deferred_sync_w); + + // members + required_device m_cpu; + required_device m_dac; + required_device m_ym2151; + required_memory_bank m_cpubank; + + static const device_timer_id TIMER_SYNC = 0; +private: + // overrides + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // members + devcb_write_line m_syncq_cb; + uint8_t m_old_resetq_state; + uint8_t m_data_in; + required_device m_inputlatch; + emu_timer* m_sync_timer; + + void common_reset(); // common reset function used by both internal and external reset + void sync_w(uint8_t data); // internal helper for deferred sync writeback + void bgbank_w(uint8_t data); +}; + +DECLARE_DEVICE_TYPE(PINSND88, pinsnd88_device) + +#endif // MAME_AUDIO_PINSND88_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/s11c_bg.cpp mame-0.224+dfsg.1/src/mame/audio/s11c_bg.cpp --- mame-0.223+dfsg.1/src/mame/audio/s11c_bg.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/s11c_bg.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Barry Rodewald +// copyright-holders:Barry Rodewald, Jonathan Gevaryahu /* * s11c_bg.cpp - Williams D-11581 "Audio Board" PCB trace part number: 5766-12130-00 REV A. * (M68B09E + YM2151 + HC555xx + DAC) @@ -25,7 +25,8 @@ * * Technically: * CB1 Pin 13 is 'strobe in' and is asserted low to write to the sound board - * CB2 Pin 12 is 'strobe out' and is asserted low to indicate the sound board has written and needs the mainboard to read its bus + * CB2 Pin 12 is 'strobe out' and is asserted low to indicate the sound board + * has written and needs the mainboard to read its bus * * The actual full pinout of the connector, from the System 11 end is: * +--------+ @@ -42,7 +43,8 @@ * +--------+ * * - * The mixing resistors before the MC1458 differ between the D-11581, D-11581-20xx (System 11C), and D-1129x board schematics: + * The mixing resistors before the MC1458 differ between the D-11581, + * D-11581-20xx (System 11C), and D-1129x board schematics: * (All resistors are 5% unless otherwise noted) * newstyle P/N A-13971-43313 (and A-13971-500xx) * oldstyle P/N D-1129x D-11581 D-11581-20xx or D-11581-400xx @@ -55,14 +57,16 @@ * MC1458 +-to-gnd R36 4.7k R11 4.7k R11 4.7k * [] - if CVSD section present - * Note that some D-11581 boards have the D-11297/8 mixing resistors in place, possibly those - * originally intended for use as replacement parts for D-1129x boards - * See https://pinwiki.com/wiki/images/f/fc/System_11_Sound_Board.JPG for an example, which - * may have originally been a D-11298 replacement, as the CVSD section is unpopulated. - - * Note that the System11C D-11581-20xx boards have the mixing resistors changed to make the CVSD sound twice - * as loud as it typically would be, by doubling the resistor values for the other mixer inputs, see - * https://pinwiki.com/wiki/images/7/7e/System11CSoundBoard.jpg + * Note that some D-11581 boards have the D-11297/8 mixing resistors in place, + * i.e. those intended for use as replacement parts for D-1129x boards. + * See https://pinwiki.com/wiki/images/f/fc/System_11_Sound_Board.JPG for an + * example, which may have originally been a D-11298 replacement, as the CVSD + * section is unpopulated. + + * Note that the System11C D-11581-20xx/400xx boards have the mixing resistors + * changed to make the CVSD sound roughly twice as loud as it typically + * would be, by doubling the resistor values for the other mixer inputs, + * see https://pinwiki.com/wiki/images/7/7e/System11CSoundBoard.jpg * D-11581 Jumpers: * W1 - exclusive w/W4, W6 : YM2151 reset comes from Board PIA CA2 @@ -74,7 +78,9 @@ * W7 : if present, the VCC/+5v rail is shorted to the +12v rail. (This is used in the case where the board is only run on +5v and -12v instead of +5v, +12v, and -12v) * W8 - exclusive w/W9 : U5 is a 6164 SRAM (pin 23/A11 is grounded) * W9 - exclusive w/W8 : U5 is a 6116 SRAM (pin 21, footprint pin 23, is /WE) - These two jumpers are only on the D-11581-20xx (System 11C) version, and W2 and W3 do not affect U20 on this PCB version: + + * These two jumpers are only on the D-11581-20xx/400xx (System 11C) version, + * and W2 and W3 do not affect U20 on this PCB version: * W10 - linked w/W2+W3 : (only if W2 is also set) EPROM U20 is a 27512 * W11 - linked w/W2+W3 : EPROM U20 is a 2764, 27128 or 27256 (where pin 1 must be high) @@ -96,7 +102,7 @@ * The 32 pin EPROM socket pins 1(VPP), 31(/PGM), 32(VCC) and 30(NC) are all * tied to VCC. * Jumpers W2, W3, W10 and W11 act the same as they do on D-11581-20xx, just - * offset down in the socket by 2 pins. + * the pins they control are offset down in the socket by 2 pins. * This means this board is fully backwards compatible with D-11581-20xx. * (Note that the prototype Funhouse Schematics and the Super High Impact * Footall Kit Service manual both incorrectly have schematics for the @@ -104,12 +110,14 @@ * banking bit and larger sockets that the A-13971-50003 board has.) + * Williams D-11297/D-11298 "BG Music & Speech Board": * D-11297/D-11298 is the predecessor to D-11581, and is fully compatible with it. * It is a larger board, physically. * It is used on the following Williams System 11A games: - * D-11297 (CVSD populated) : PIN*BOT + * D-11297 (CVSD populated) : PIN*BOT (and prototype F-14 Tomcat) * D-11298 (CVSD unpopulated): Millionaire! + * It has different mixing resistors to the D-11581. * Unlike the later D-11581 board which has mono output only, the D-11297/8 board * has provisions for stereo output from the YM2151, but it is unclear if these were @@ -125,6 +133,8 @@ * W7 - exclusive w/W5, W6 : YM2151 reset comes from Board PIA CA2 + + * CVSD filter: * The CVSD filter on all of these boards has the same components: * * .--------+---------. .--------+---------. @@ -147,7 +157,7 @@ * but this was omitted on the D-11297 board, possibly in error, and this * omission carried over to future sound boards including all versions of the D-11581. * The later WPC Sound board, A-12738-500xx, fixed this by completely redesigning the filters - * for both the YM2151 and CVSD. + * for the YM2151, DAC and CVSD. * * This circuit would be a 4th order (cascaded 2nd order) op-amp multifeedback lowpass filter, * but because of the capacitor omitted, it is actually a first order-with-gain lowpass, @@ -203,22 +213,24 @@ #include "emu.h" #include "s11c_bg.h" -#include "sound/dac.h" #include "sound/volt_reg.h" -DEFINE_DEVICE_TYPE(S11C_BG, s11c_bg_device, "s11c_bg", "Williams System 11C Background Music Board") -DEFINE_DEVICE_TYPE(S11_BG, s11_bg_device, "s11_bg", "Williams System 11 Background Music Board") +DEFINE_DEVICE_TYPE(S11C_BG, s11c_bg_device, "s11c_bg", "Williams System 11C Background Audio Board") // D-11581-20xx or D-11581-400xx or A-13971-50003 +DEFINE_DEVICE_TYPE(S11_BG, s11_bg_device, "s11_bg", "Williams System 11 Background Audio Board") // D-11581 (without the W10/W11 jumpers) +DEFINE_DEVICE_TYPE(S11_OBG, s11_obg_device, "s11_obg", "Williams System 11 (Older) Background Audio Board") // D-11297 or D-11298 +DEFINE_DEVICE_TYPE(S11_BGM, s11_bgm_device, "s11_bgm", "Williams System 11 Background Sound/Music Board") // D-11197 +DEFINE_DEVICE_TYPE(S11_BGS, s11_bgs_device, "s11_bgs", "Williams System 11 Background Sound Board") // C-11029 or C-11030 s11c_bg_device::s11c_bg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig,S11C_BG,tag,owner,clock) , device_mixer_interface(mconfig, *this) - , m_cpu(*this, "bgcpu") + , m_cpu(*this, "cpu") + , m_dac(*this, "dac") , m_ym2151(*this, "ym2151") - , m_hc55516(*this, "hc55516_bg") + , m_cvsd(*this, "hc55516") , m_pia40(*this, "pia40") , m_cpubank(*this, "bgbank") - , m_rom(*this, finder_base::DUMMY_TAG) , m_cb2_cb(*this) , m_pb_cb(*this) , m_old_resetq_state(ASSERT_LINE) @@ -229,24 +241,39 @@ s11c_bg_device::s11c_bg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig,type,tag,owner,clock) , device_mixer_interface(mconfig, *this) - , m_cpu(*this, "bgcpu") + , m_cpu(*this, "cpu") + , m_dac(*this, "dac") , m_ym2151(*this, "ym2151") - , m_hc55516(*this, "hc55516_bg") + , m_cvsd(*this, "hc55516") , m_pia40(*this, "pia40") , m_cpubank(*this, "bgbank") - , m_rom(*this, finder_base::DUMMY_TAG) , m_cb2_cb(*this) , m_pb_cb(*this) , m_old_resetq_state(ASSERT_LINE) { } -// subclass definition +// subclass definitions s11_bg_device::s11_bg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : s11c_bg_device(mconfig,S11_BG,tag,owner,clock) { } +s11_obg_device::s11_obg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : s11c_bg_device(mconfig,S11_OBG,tag,owner,clock) +{ +} + +s11_bgm_device::s11_bgm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : s11c_bg_device(mconfig,S11_BGM,tag,owner,clock) +{ +} + +s11_bgs_device::s11_bgs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : s11c_bg_device(mconfig,S11_BGS,tag,owner,clock) +{ +} + void s11c_bg_device::s11c_bg_map(address_map &map) { map(0x0000, 0x07ff).mirror(0x1800).ram(); @@ -258,6 +285,21 @@ map(0x8000, 0xffff).bankr("bgbank"); } +void s11c_bg_device::s11c_bgm_map(address_map &map) +{ + map(0x0000, 0x07ff).mirror(0x1800).ram(); + map(0x2000, 0x2001).mirror(0x1ffe).rw(m_ym2151, FUNC(ym2151_device::read), FUNC(ym2151_device::write)); + map(0x4000, 0x4003).mirror(0x1ffc).rw("pia40", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x8000, 0xffff).bankr("bgbank"); +} + +void s11c_bg_device::s11c_bgs_map(address_map &map) +{ + map(0x0000, 0x07ff).mirror(0x1800).ram(); + map(0x4000, 0x4003).mirror(0x1ffc).rw("pia40", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x8000, 0xffff).bankr("bgbank"); +} + TIMER_CALLBACK_MEMBER(s11c_bg_device::deferred_cb2_w) { if (!m_cb2_cb.isnull()) @@ -311,17 +353,15 @@ m_old_resetq_state = state; } -void s11c_bg_device::s11_bg_core(machine_config &config) + +// just the 6809, the DAC and the PIA +void s11c_bg_device::s11_bg_base(machine_config &config) { MC6809E(config, m_cpu, XTAL(8'000'000) / 4); // MC68B09E - m_cpu->set_addrmap(AS_PROGRAM, &s11c_bg_device::s11c_bg_map); + m_cpu->set_addrmap(AS_PROGRAM, &s11c_bg_device::s11c_bg_map); // override this as needed config.set_maximum_quantum(attotime::from_hz(50)); - YM2151(config, m_ym2151, XTAL(3'579'545)); // "3.58 MHz" on schematics and parts list - m_ym2151->irq_handler().set(m_pia40, FUNC(pia6821_device::ca1_w)).invert(); // IRQ is not true state - m_ym2151->add_route(ALL_OUTPUTS, *this, 0.1); - - MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.25); + MC1408(config, m_dac, 0); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); @@ -329,26 +369,116 @@ PIA6821(config, m_pia40, 0); m_pia40->writepa_handler().set("dac", FUNC(dac_byte_interface::data_w)); m_pia40->writepb_handler().set(FUNC(s11c_bg_device::pia40_pb_w)); - m_pia40->ca2_handler().set(m_ym2151, FUNC(ym2151_device::reset_w)); + // ca2 handler is set in the s11_bg_ym function m_pia40->cb2_handler().set(FUNC(s11c_bg_device::pia40_cb2_w)); m_pia40->irqa_handler().set_inputline(m_cpu, M6809_FIRQ_LINE); m_pia40->irqb_handler().set_inputline(m_cpu, INPUT_LINE_NMI); } +// add a YM2151 for boards which have it +void s11c_bg_device::s11_bg_ym(machine_config &config) +{ + m_pia40->ca2_handler().set(m_ym2151, FUNC(ym2151_device::reset_w)); + + YM2151(config, m_ym2151, XTAL(3'579'545)); // "3.58 MHz" on schematics and parts list + m_ym2151->irq_handler().set(m_pia40, FUNC(pia6821_device::ca1_w)).invert(); // IRQ is not true state +} + +// add a CVSD chip for boards which have it +void s11c_bg_device::s11_bg_cvsd(machine_config &config) +{ + HC55516(config, m_cvsd, 0); +} + + +// D-11581-20xx or D-11581-400xx or A-13971-50003 void s11c_bg_device::device_add_mconfig(machine_config &config) { - s11_bg_core(config); - HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, *this, 0.6); // cvsd is twice as loud on the sys11c version + s11_bg_base(config); + s11_bg_ym(config); + s11_bg_cvsd(config); + // volume mixer stuff + // the sum of all resistances is 13k + 20k + 20k + 4.99k = 57990 + // 1/resistance * 57990 is 4.460769, 2.8895, 2.8895, 11.62124 + // the sum of the previous 4 values is 21.88101; 100/21.88101 = 4.570173 + // the 4 (1/r)*rtotal numbers * 4.570173 are 20.38649, 13.25122, 13.25122 and 53.11108 respectively + // NOTE: audio passthrough from the mainboard is 4.7kohm + m_dac->add_route(ALL_OUTPUTS, *this, 0.2038); // 13Kohm + m_ym2151->add_route(1, *this, 0.1325); // 20kohm + m_ym2151->add_route(0, *this, 0.1325); // 20kohm + m_cvsd->add_route(ALL_OUTPUTS, *this, 0.5311); // 4.99kohm } +// D-11581 (without the W10/W11 jumpers) void s11_bg_device::device_add_mconfig(machine_config &config) { - s11_bg_core(config); - HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, *this, 0.3); + s11_bg_base(config); + s11_bg_ym(config); + s11_bg_cvsd(config); + // volume mixer stuff + // the sum of all resistances is 6.3k + 10k + 10k + 4.99k = 31290 + // 1/resistance * 57990 is 4.9666, 3.129, 3.129, 6.2705 + // the sum of the previous 4 values is 17.49521; 100/17.49521 = 5.715851 + // the 4 (1/r)*rtotal numbers * 5.715851 are 28.38873, 17.8849, 17.8849, and 35.84148 respectively + // NOTE: audio passthrough from the mainboard is 2.2kohm + m_dac->add_route(ALL_OUTPUTS, *this, 0.2839); // 6.3Kohm + m_ym2151->add_route(1, *this, 0.1788); // 10kohm + m_ym2151->add_route(0, *this, 0.1788); // 10kohm + m_cvsd->add_route(ALL_OUTPUTS, *this, 0.3584); // 4.99kohm +} + +// D-11297 or D-11298 +void s11_obg_device::device_add_mconfig(machine_config &config) +{ + s11_bg_base(config); + s11_bg_ym(config); + s11_bg_cvsd(config); + // volume mixer stuff + // the sum of all resistances is 10k + 10k + 10k + 10k = 40000 + // 1/resistance * 40000 is 4.0, 4.0, 4.0, 4.0 + // the sum of the previous 4 values is 16.0; 100/16 = 6.25 + // the 4 (1/r)*rtotal numbers * 6.25 are 25.0, 25.0, 25.0, 25.0 respectively + // NOTE: audio passthrough from the mainboard is 2.2kohm + m_dac->add_route(ALL_OUTPUTS, *this, 0.25); // 10Kohm + m_ym2151->add_route(1, *this, 0.25); // 10kohm + m_ym2151->add_route(0, *this, 0.25); // 10kohm + m_cvsd->add_route(ALL_OUTPUTS, *this, 0.25); // 10kohm +} + +// D-11197 +void s11_bgm_device::device_add_mconfig(machine_config &config) +{ + s11_bg_base(config); + m_cpu->set_addrmap(AS_PROGRAM, &s11c_bg_device::s11c_bgm_map); + s11_bg_ym(config); + // volume mixer stuff + // the sum of all resistances is 10k + 10k + 10k + 10k = 40000 + // 1/resistance * 40000 is 4.0, 4.0, 4.0, 4.0 + // the sum of the previous 4 values is 16.0; 100/16 = 6.25 + // the 4 (1/r)*rtotal numbers * 6.25 are 25.0, 25.0, 25.0, 25.0 respectively + // NOTE: audio passthrough from the mainboard is 2.2kohm + m_dac->add_route(ALL_OUTPUTS, *this, 0.25); // 10Kohm + m_ym2151->add_route(1, *this, 0.25); // 10kohm + m_ym2151->add_route(0, *this, 0.25); // 10kohm + // interestingly, there is no cvsd, but a fourth 10k resistor here, but it is tied to ground. this makes the board quieter than it would otherwise be, presumably. +} + +// C-11029 or C-11030 +void s11_bgs_device::device_add_mconfig(machine_config &config) +{ + s11_bg_base(config); + m_cpu->set_addrmap(AS_PROGRAM, &s11c_bg_device::s11c_bgs_map); + // volume mixer stuff + // the sum of all resistances is 10k + 10k = 20k + // NOTE: audio passthrough from the mainboard is 10k + m_dac->add_route(ALL_OUTPUTS, *this, 1.00); // 10Kohm } void s11c_bg_device::device_start() { + u8 *rom = memregion("cpu")->base(); + m_cpubank->configure_entries(0, 16, &rom[0x0], 0x8000); + m_cpubank->set_entry(0); /* resolve lines */ m_cb2_cb.resolve(); m_pb_cb.resolve(); @@ -357,7 +487,6 @@ void s11c_bg_device::common_reset() { - m_cpubank->configure_entries(0, 16, &m_rom[0x0], 0x8000); m_cpubank->set_entry(0); // reset the CPU again, so that the CPU are starting with the right vectors (otherwise sound may die on reset) m_cpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); @@ -370,13 +499,17 @@ void s11c_bg_device::bg_cvsd_clock_set_w(uint8_t data) { - m_hc55516->clock_w(1); + if (m_cvsd) + m_cvsd->clock_w(1); } void s11c_bg_device::bg_cvsd_digit_clock_clear_w(uint8_t data) { - m_hc55516->clock_w(0); - m_hc55516->digit_w(data&1); + if (m_cvsd) + { + m_cvsd->clock_w(0); + m_cvsd->digit_w(data&1); + } } /* diff -Nru mame-0.223+dfsg.1/src/mame/audio/s11c_bg.h mame-0.224+dfsg.1/src/mame/audio/s11c_bg.h --- mame-0.223+dfsg.1/src/mame/audio/s11c_bg.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/s11c_bg.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Barry Rodewald +// copyright-holders:Barry Rodewald, Jonathan Gevaryahu /* * s11c_bg.h - Williams System 11C background sound (M68B09E + YM2151 + HC55516 + DAC) * @@ -15,6 +15,7 @@ #include "machine/6821pia.h" #include "sound/hc55516.h" #include "sound/ym2151.h" +#include "sound/dac.h" class s11c_bg_device : public device_t, public device_mixer_interface @@ -23,8 +24,12 @@ // construction/destruction s11c_bg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - // common config - void s11_bg_core(machine_config &config); + // base config + void s11_bg_base(machine_config &config); + // add ym2151 + void s11_bg_ym(machine_config &config); + // add cvsd + void s11_bg_cvsd(machine_config &config); // note to keep synchronization working, the host machine should have synchronization timer expired delegates // before writing to the following 3 things: @@ -38,9 +43,11 @@ auto cb2_cb() { return m_cb2_cb.bind(); } auto pb_cb() { return m_pb_cb.bind(); } - template void set_romregion(T &&tag) { m_rom.set_tag(std::forward(tag)); } - void s11c_bg_map(address_map &map); + void s11c_bgm_map(address_map &map); + void s11c_bgs_map(address_map &map); + + //mc6809e_device *get_cpu() { return m_cpu; } protected: // constructor with overridable type for subclass s11c_bg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock = 0); @@ -52,12 +59,12 @@ TIMER_CALLBACK_MEMBER(deferred_cb2_w); TIMER_CALLBACK_MEMBER(deferred_pb_w); - required_device m_cpu; - required_device m_ym2151; - required_device m_hc55516; + required_device m_cpu; + required_device m_dac; + optional_device m_ym2151; + optional_device m_cvsd; required_device m_pia40; required_memory_bank m_cpubank; - required_region_ptr m_rom; private: devcb_write_line m_cb2_cb; @@ -81,7 +88,34 @@ virtual void device_add_mconfig(machine_config &config) override; }; +class s11_obg_device : public s11c_bg_device +{ +public: + s11_obg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); +protected: + virtual void device_add_mconfig(machine_config &config) override; +}; + +class s11_bgm_device : public s11c_bg_device +{ +public: + s11_bgm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); +protected: + virtual void device_add_mconfig(machine_config &config) override; +}; + +class s11_bgs_device : public s11c_bg_device +{ +public: + s11_bgs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); +protected: + virtual void device_add_mconfig(machine_config &config) override; +}; + DECLARE_DEVICE_TYPE(S11C_BG, s11c_bg_device) DECLARE_DEVICE_TYPE(S11_BG, s11_bg_device) +DECLARE_DEVICE_TYPE(S11_OBG, s11_obg_device) +DECLARE_DEVICE_TYPE(S11_BGM, s11_bgm_device) +DECLARE_DEVICE_TYPE(S11_BGS, s11_bgs_device) #endif // MAME_AUDIO_S11C_BG_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/segag80.cpp mame-0.224+dfsg.1/src/mame/audio/segag80.cpp --- mame-0.223+dfsg.1/src/mame/audio/segag80.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segag80.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,185 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/************************************************************************* + + Sega vector hardware + +*************************************************************************/ + +#include "emu.h" + +#include "audio/segag80.h" +#include "audio/nl_astrob.h" +#include "audio/nl_elim.h" +#include "audio/nl_spacfury.h" +#include "includes/segag80v.h" +#include "sound/samples.h" + + + +/************************************* + * + * Base class + * + *************************************/ + +segag80_audio_device::segag80_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 lomask, u8 himask, bool haspsg, void (*netlist)(netlist::nlparse_t &), double output_scale) + : device_t(mconfig, type, tag, owner, clock) + , device_mixer_interface(mconfig, *this) + , m_lo_input(*this, "sound_nl:lo_%u", 0) + , m_hi_input(*this, "sound_nl:hi_%u", 0) + , m_psg(*this, "psg") + , m_lo_vals(0xff) + , m_hi_vals(0xff) + , m_lo_mask(lomask) + , m_hi_mask(himask) + , m_has_psg(haspsg) + , m_netlist(netlist) + , m_output_scale(output_scale) +{ +} + +void segag80_audio_device::device_add_mconfig(machine_config &config) +{ + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(m_netlist) + .add_route(ALL_OUTPUTS, *this, 1.0); + + if (BIT(m_lo_mask, 0)) + NETLIST_LOGIC_INPUT(config, m_lo_input[0], "I_LO_D0.IN", 0); + if (BIT(m_lo_mask, 1)) + NETLIST_LOGIC_INPUT(config, m_lo_input[1], "I_LO_D1.IN", 0); + if (BIT(m_lo_mask, 2)) + NETLIST_LOGIC_INPUT(config, m_lo_input[2], "I_LO_D2.IN", 0); + if (BIT(m_lo_mask, 3)) + NETLIST_LOGIC_INPUT(config, m_lo_input[3], "I_LO_D3.IN", 0); + if (BIT(m_lo_mask, 4)) + NETLIST_LOGIC_INPUT(config, m_lo_input[4], "I_LO_D4.IN", 0); + if (BIT(m_lo_mask, 5)) + NETLIST_LOGIC_INPUT(config, m_lo_input[5], "I_LO_D5.IN", 0); + if (BIT(m_lo_mask, 6)) + NETLIST_LOGIC_INPUT(config, m_lo_input[6], "I_LO_D6.IN", 0); + if (BIT(m_lo_mask, 7)) + NETLIST_LOGIC_INPUT(config, m_lo_input[7], "I_LO_D7.IN", 0); + + if (BIT(m_hi_mask, 0)) + NETLIST_LOGIC_INPUT(config, m_hi_input[0], "I_HI_D0.IN", 0); + if (BIT(m_hi_mask, 1)) + NETLIST_LOGIC_INPUT(config, m_hi_input[1], "I_HI_D1.IN", 0); + if (BIT(m_hi_mask, 2)) + NETLIST_LOGIC_INPUT(config, m_hi_input[2], "I_HI_D2.IN", 0); + if (BIT(m_hi_mask, 3)) + NETLIST_LOGIC_INPUT(config, m_hi_input[3], "I_HI_D3.IN", 0); + if (BIT(m_hi_mask, 4)) + NETLIST_LOGIC_INPUT(config, m_hi_input[4], "I_HI_D4.IN", 0); + if (BIT(m_hi_mask, 5)) + NETLIST_LOGIC_INPUT(config, m_hi_input[5], "I_HI_D5.IN", 0); + if (BIT(m_hi_mask, 6)) + NETLIST_LOGIC_INPUT(config, m_hi_input[6], "I_HI_D6.IN", 0); + if (BIT(m_hi_mask, 7)) + NETLIST_LOGIC_INPUT(config, m_hi_input[7], "I_HI_D7.IN", 0); + + if (m_has_psg) + { + AY8912(config, m_psg, VIDEO_CLOCK/4/2); + m_psg->set_flags(AY8910_RESISTOR_OUTPUT); + m_psg->set_resistors_load(10000.0, 10000.0, 10000.0); + m_psg->add_route(0, "sound_nl", 1.0, 0); + m_psg->add_route(1, "sound_nl", 1.0, 1); + m_psg->add_route(2, "sound_nl", 1.0, 2); + + NETLIST_STREAM_INPUT(config, "sound_nl:cin0", 0, "R_PSG_1.R"); + NETLIST_STREAM_INPUT(config, "sound_nl:cin1", 1, "R_PSG_2.R"); + NETLIST_STREAM_INPUT(config, "sound_nl:cin2", 2, "R_PSG_3.R"); + } + + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(m_output_scale, 0.0); +} + +void segag80_audio_device::device_start() +{ +} + +void segag80_audio_device::device_stop() +{ +} + +void segag80_audio_device::write(offs_t addr, uint8_t data) +{ + addr &= 1; + + auto &inputs = (addr == 0) ? m_lo_input : m_hi_input; + auto &oldvals = (addr == 0) ? m_lo_vals : m_hi_vals; + auto &mask = (addr == 0) ? m_lo_mask : m_hi_mask; + + for (int bit = 0; bit < 8; bit++) + if (BIT(mask, bit)) + inputs[bit]->write_line(BIT(data, bit)); + oldvals = data; +} + +void segag80_audio_device::write_ay(offs_t addr, uint8_t data) +{ + assert(m_has_psg); + m_psg->address_data_w(addr, data); +} + + + +/************************************* + * + * Eliminator + * + *************************************/ + +DEFINE_DEVICE_TYPE(ELIMINATOR_AUDIO, elim_audio_device, "elim_audio", "Eliminator Sound Board") + +elim_audio_device::elim_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : segag80_audio_device(mconfig, ELIMINATOR_AUDIO, tag, owner, clock, 0xfe, 0xff, false, NETLIST_NAME(elim), 5000.0) +{ +} + + + +/************************************* + * + * Zektor + * + *************************************/ + +DEFINE_DEVICE_TYPE(ZEKTOR_AUDIO, zektor_audio_device, "zektor_audio", "Zektor Sound Board") + +zektor_audio_device::zektor_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : segag80_audio_device(mconfig, ZEKTOR_AUDIO, tag, owner, clock, 0xfe, 0xff, true, NETLIST_NAME(zektor), 5000.0) +{ +} + + + +/************************************* + * + * Space Fury + * + *************************************/ + +DEFINE_DEVICE_TYPE(SPACE_FURY_AUDIO, spacfury_audio_device, "spcfury_audio", "Space Fury Sound Board") + +spacfury_audio_device::spacfury_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : segag80_audio_device(mconfig, SPACE_FURY_AUDIO, tag, owner, clock, 0xc7, 0x3f, false, NETLIST_NAME(spacfury), 60000.0) +{ +} + + + +/************************************* + * + * Astro Blaster + * + *************************************/ + +DEFINE_DEVICE_TYPE(ASTRO_BLASTER_AUDIO, astrob_audio_device, "astrob_audio", "Astro Blaster Sound Board") + +astrob_audio_device::astrob_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : segag80_audio_device(mconfig, ASTRO_BLASTER_AUDIO, tag, owner, clock, 0xff, 0xff, false, NETLIST_NAME(astrob), 25000.0) +{ +} diff -Nru mame-0.223+dfsg.1/src/mame/audio/segag80.h mame-0.224+dfsg.1/src/mame/audio/segag80.h --- mame-0.223+dfsg.1/src/mame/audio/segag80.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segag80.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,74 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_SEGAG80V_H +#define MAME_AUDIO_SEGAG80V_H + +#pragma once + +#include "machine/netlist.h" +#include "netlist/nl_setup.h" +#include "sound/ay8910.h" + + +class segag80_audio_device : public device_t, public device_mixer_interface +{ +public: + segag80_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 lomask, u8 himask, bool haspsg, void (*netlist)(netlist::nlparse_t &), double output_scale); + + void write(offs_t addr, uint8_t data); + void write_ay(offs_t addr, uint8_t data); + +protected: + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + virtual void device_stop() override; + + optional_device_array m_lo_input; + optional_device_array m_hi_input; + optional_device m_psg; + +private: + u8 m_lo_vals; + u8 m_hi_vals; + u8 m_lo_mask; + u8 m_hi_mask; + bool m_has_psg; + void (*m_netlist)(netlist::nlparse_t &) = nullptr; + double m_output_scale = 0; +}; + + +class elim_audio_device : public segag80_audio_device +{ +public: + elim_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); +}; + + +class zektor_audio_device : public segag80_audio_device +{ +public: + zektor_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); +}; + + +class spacfury_audio_device : public segag80_audio_device +{ +public: + spacfury_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); +}; + + +class astrob_audio_device : public segag80_audio_device +{ +public: + astrob_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); +}; + + +DECLARE_DEVICE_TYPE(ELIMINATOR_AUDIO, elim_audio_device) +DECLARE_DEVICE_TYPE(ZEKTOR_AUDIO, zektor_audio_device) +DECLARE_DEVICE_TYPE(SPACE_FURY_AUDIO, spacfury_audio_device) +DECLARE_DEVICE_TYPE(ASTRO_BLASTER_AUDIO, astrob_audio_device) + +#endif // MAME_AUDIO_SEGAG80V_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/segag80r.cpp mame-0.224+dfsg.1/src/mame/audio/segag80r.cpp --- mame-0.223+dfsg.1/src/mame/audio/segag80r.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segag80r.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -88,260 +88,6 @@ /************************************* * - * Astro Blaster sound hardware - * - *************************************/ - -/* - Description of Astro Blaster sounds (in the hope of future discrete goodness): - - CD4017 = decade counter with one output per decoded stage (10 outputs altogether) - CD4024 = 7-bit counter with 7 outputs - - - "V" signal - ---------- - CD4017 @ U15: - reset by RATE RESET signal = 1 - clocked by falling edge of ATTACK signal - +12V output from here goes through a diode and one of 10 resistors: - 0 = 120k - 1 = 82k - 2 = 62k - 3 = 56k - 4 = 47k - 5 = 39k - 6 = 35k - 7 = 27k - 8 = 24k - 9 = 22k - and then in series through a 22k resistor - - Op-amp @ U6 takes the WARP signal and the output of CD4017 @ U15 - and forms the signal "V" which is used to control the invader - sounds - - - How to calculate the output voltage at U16 labeled (V). - (Derrick Renaud) - - First you have an inverting amp. To get the gain you - use G=-Rf/Ri, where Rf=R178=22k. Ri is the selected - resistor on the output of U15. - - The input voltage to the amp (pin 6) will always be - about 12V - 0.5V (diode drop in low current circuit) = - 11.5V. - - Now you need to calculate the reference voltage on the - + input (pin 5). Depending on the state of WARP... - - If the warp data is 0, then U31 inverts it to an Open - Collector high, meaning WARP is out of circuit. So: - Vref = 12V * (R163)/(R162+R163) - = 12V * 10k/(10K+4.7k) - = 8.163V - - When warp data is 1, then U31 inverts it to low, - grounding R164 putting it in parallel with R163, - giving: - Vref = 12V * (R163||R164)/(R163||R164 +R162) - = 12V * 5k/(5k+4.7k) - = 6.186V - - Now to get the control voltage V: - V = (Vi - Vref) * G + Vref - = (11.5V - Vref) * G + Vref - - That gives you the control voltage at V. From there I - would have to millman the voltage with the internal - voltage/resistors of the 555 to get the actual used - control voltage. - - But it seems you just want a range, so just use the - above info to get the highest and lowest voltages - generated, and create the frequency shift you desire. - Remember as the control voltage (V) lowers, the - frequency increases. - - - - INVADER-1 output - ---------------- - - - - - INVADER-2 output - ---------------- - 555 timer @ U13 in astable mode with the following parameters: - R1 = 10k - R2 = 100k - C = 0.0022u - CV = "V" signal - Reset = (PORT076 & 0x02) - Output goes to CD4024 @ U12 - - CD4024 @ U12: - reset through some unknown means - clocked by 555 timer @ U13 - +12 output from here goes through a resistor ladder: - Q1 -> 82k - Q2 -> 39k - Q3 -> 22k - Q4 -> 10k - Summed output from here is INVADER-2 - - - INVADER-3 output - ---------------- - 555 timer at U17 in astable mode with the following parameters: - R1 = 10k - R2 = 68k - C = 0.1u - CV = some combination of "V" and "W" signals - Reset = (PORT076 & 0x04) - Output from here is INVADER-3 - -*/ - -static const char *const astrob_sample_names[] = -{ - "*astrob", - "invadr1", /* 0 */ - "winvadr1", /* 1 */ - "invadr2", /* 2 */ - "winvadr2", /* 3 */ - "invadr3", /* 4 */ - "winvadr3", /* 5 */ - "invadr4", /* 6 */ - "winvadr4", /* 7 */ - "asteroid", /* 8 */ - "refuel", /* 9 */ - "pbullet", /* 10 */ - "ebullet", /* 11 */ - "eexplode", /* 12 */ - "pexplode", /* 13 */ - "deedle", /* 14 */ - "sonar", /* 15 */ - nullptr -}; - - -void segag80r_state::astrob_sound_board(machine_config &config) -{ - /* sound hardware */ - SAMPLES(config, m_samples); - m_samples->set_channels(11); - m_samples->set_samples_names(astrob_sample_names); - m_samples->add_route(ALL_OUTPUTS, "speaker", 0.25); -} - - -/************************************* - * - * Astro Blaster sound triggers - * - *************************************/ - -void segag80r_state::astrob_sound_w(offs_t offset, uint8_t data) -{ - static const float attack_resistor[10] = - { - 120.0f, 82.0f, 62.0f, 56.0f, 47.0f, 39.0f, 33.0f, 27.0f, 24.0f, 22.0f - }; - float freq_factor; - - uint8_t diff = data ^ m_sound_state[offset]; - m_sound_state[offset] = data; - - switch (offset) - { - case 0: - /* INVADER-1: channel 0 */ - if ((diff & 0x01) && !(data & 0x01)) m_samples->start(0, (data & 0x80) ? 0 : 1, true); - if ((data & 0x01) && m_samples->playing(0)) m_samples->stop(0); - - /* INVADER-2: channel 1 */ - if ((diff & 0x02) && !(data & 0x02)) m_samples->start(1, (data & 0x80) ? 2 : 3, true); - if ((data & 0x02) && m_samples->playing(1)) m_samples->stop(1); - - /* INVADER-3: channel 2 */ - if ((diff & 0x04) && !(data & 0x04)) m_samples->start(2, (data & 0x80) ? 4 : 5, true); - if ((data & 0x04) && m_samples->playing(2)) m_samples->stop(2); - - /* INVADER-4: channel 3 */ - if ((diff & 0x08) && !(data & 0x08)) m_samples->start(3, (data & 0x80) ? 6 : 7, true); - if ((data & 0x08) && m_samples->playing(3)) m_samples->stop(3); - - /* ASTROIDS: channel 4 */ - if ((diff & 0x10) && !(data & 0x10)) m_samples->start(4, 8, true); - if ((data & 0x10) && m_samples->playing(4)) m_samples->stop(4); - - /* MUTE */ - machine().sound().system_mute(data & 0x20); - - /* REFILL: channel 5 */ - if (!(data & 0x40) && !m_samples->playing(5)) m_samples->start(5, 9); - if ( (data & 0x40) && m_samples->playing(5)) m_samples->stop(5); - - /* WARP: changes which sample is played for the INVADER samples above */ - if (diff & 0x80) - { - if (m_samples->playing(0)) m_samples->start(0, (data & 0x80) ? 0 : 1, true); - if (m_samples->playing(1)) m_samples->start(1, (data & 0x80) ? 2 : 3, true); - if (m_samples->playing(2)) m_samples->start(2, (data & 0x80) ? 4 : 5, true); - if (m_samples->playing(3)) m_samples->start(3, (data & 0x80) ? 6 : 7, true); - } - break; - - case 1: - /* LASER #1: channel 6 */ - if ((diff & 0x01) && !(data & 0x01)) m_samples->start(6, 10); - - /* LASER #2: channel 7 */ - if ((diff & 0x02) && !(data & 0x02)) m_samples->start(7, 11); - - /* SHORT EXPL: channel 8 */ - if ((diff & 0x04) && !(data & 0x04)) m_samples->start(8, 12); - - /* LONG EXPL: channel 8 */ - if ((diff & 0x08) && !(data & 0x08)) m_samples->start(8, 13); - - /* ATTACK RATE */ - if ((diff & 0x10) && !(data & 0x10)) m_sound_rate = (m_sound_rate + 1) % 10; - - /* RATE RESET */ - if (!(data & 0x20)) m_sound_rate = 0; - - /* BONUS: channel 9 */ - if ((diff & 0x40) && !(data & 0x40)) m_samples->start(9, 14); - - /* SONAR: channel 10 */ - if ((diff & 0x80) && !(data & 0x80)) m_samples->start(10, 15); - break; - } - - /* the samples were recorded with sound_rate = 0, so we need to scale */ - /* the frequency as a fraction of that; these equations come from */ - /* Derrick's analysis above; we compute the inverted scale factor to */ - /* account for the fact that frequency goes up as CV goes down */ - /* WARP is already taken into account by the differing samples above */ - freq_factor = (11.5f - 8.163f) * (-22.0f / attack_resistor[0]) + 8.163f; - freq_factor /= (11.5f - 8.163f) * (-22.0f / attack_resistor[m_sound_rate]) + 8.163f; - - /* adjust the sample rate of invader sounds based the sound_rate */ - /* this is an approximation */ - if (m_samples->playing(0)) m_samples->set_frequency(0, m_samples->base_frequency(0) * freq_factor); - if (m_samples->playing(1)) m_samples->set_frequency(1, m_samples->base_frequency(1) * freq_factor); - if (m_samples->playing(2)) m_samples->set_frequency(2, m_samples->base_frequency(2) * freq_factor); - if (m_samples->playing(3)) m_samples->set_frequency(3, m_samples->base_frequency(3) * freq_factor); -} - - - -/************************************* - * * 005 sound hardware * *************************************/ diff -Nru mame-0.223+dfsg.1/src/mame/audio/segag80v.cpp mame-0.224+dfsg.1/src/mame/audio/segag80v.cpp --- mame-0.223+dfsg.1/src/mame/audio/segag80v.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segag80v.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,327 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Aaron Giles -/************************************************************************* - - Sega vector hardware - -*************************************************************************/ - -#include "emu.h" -#include "includes/segag80v.h" -#include "sound/samples.h" - -/* History: - - - - * 4/25/99 Tac-Scan now makes Credit Noises with $2c (Jim Hernandez) - * 4/9/99 Zektor Discrete Sound Support mixed with voice samples. (Jim Hernandez) - Zektor uses some Eliminator sounds. - - * 2/5/99 Extra Life sound constant found $1C after fixing main driver. (Jim Hernandez) - * 1/29/99 Supports Tac Scan new 44.1 kHz sample set. (Jim Hernandez) - - * -Stuff to do - - * Find hex bit for warp.wav sound calls. - * - * 2/05/98 now using the new sample_*() functions. BW - * - */ - -/* - Tac/Scan sound constants - - There are some sounds that are unknown: - $09 Tunnel Warp Sound? - $0a - $0b Formation Change - $0c - $0e - $0f - $1c 1up (Extra Life) - $2c Credit - $30 - $3f Hex numbers for ship position flight sounds - $41 - - Some sound samples are missing: - - I use the one bullet and one explosion sound for all 3 for example. - -Star Trk Sounds (USB Loaded from 5400 in main EPROMs) - -8 PHASER -a PHOTON -e TARGETING -10 DENY -12 SHEILD HIT -14 ENTERPRISE HIT -16 ENT EXPLOSION -1a KLINGON EXPLOSION -1c DOCK -1e STARBASE HIT -11 STARBASE RED -22 STARBASE EXPLOSION -24 SMALL BONUS -25 LARGE BONUS -26 STARBASE INTRO -27 KLINGON INTRO -28 ENTERPRISE INTRO -29 PLAYER CHANGE -2e KLINGON FIRE -4,5 IMPULSE -6,7 WARP -c,d RED ALERT -18,2f WARP SUCK -19,2f SAUCER EXIT -2c,21 NOMAD MOTION -2d,21 NOMAD STOPPED -2b COIN DROP MUSIC -2a HIGH SCORE MUSIC - - -Eliminator Sound Board (800-3174) ---------------------------------- - -inputs -0x3c-0x3f - -d0 speech ready - -outputs ( 0 = ON) - -0x3e (076) - -d7 torpedo 2 -d6 torpedo 1 -d5 bounce -d4 explosion 3 -d3 explosion 2 -d2 explosion 1 -d1 fireball -d0 - - -0x3f (077) - -d7 background msb -d6 background lsb -d5 enemy ship -d4 skitter -d3 thrust msb -d2 thrust lsb -d1 thrust hi -d0 thrust lo - -Space Fury Sound Board (800-0241) ---------------------------------- - -0x3e (076) (0 = ON) - -d7 partial warship, low frequency oscillation -d6 star spin -d5 - -d4 - -d3 - -d2 thrust, low frequency noise -d1 fire, metalic buzz -d0 craft scale, rising tone - -0x3f (077) - -d7 - -d6 - -d5 docking bang -d4 large explosion -d3 small explosion, low frequency noise -d2 fireball -d1 shot -d0 crafts joining - -*/ - -void segag80v_state::elim1_sh_w(uint8_t data) -{ - data ^= 0xff; - - /* Play fireball sample */ - if (data & 0x02) - m_samples->start(0, 0); - - /* Play explosion samples */ - if (data & 0x04) - m_samples->start(1, 10); - if (data & 0x08) - m_samples->start(1, 9); - if (data & 0x10) - m_samples->start(1, 8); - - /* Play bounce sample */ - if (data & 0x20) - { - if (m_samples->playing(2)) - m_samples->stop(2); - m_samples->start(2, 1); - } - - /* Play lazer sample */ - if (data & 0xc0) - { - if (m_samples->playing(3)) - m_samples->stop(3); - m_samples->start(3, 5); - } -} - -void segag80v_state::elim2_sh_w(uint8_t data) -{ - data ^= 0xff; - - /* Play thrust sample */ - if (data & 0x0f) - m_samples->start(4, 6); - else - m_samples->stop(4); - - /* Play skitter sample */ - if (data & 0x10) - m_samples->start(5, 2); - - /* Play eliminator sample */ - if (data & 0x20) - m_samples->start(6, 3); - - /* Play electron samples */ - if (data & 0x40) - m_samples->start(7, 7); - if (data & 0x80) - m_samples->start(7, 4); -} - - -void segag80v_state::zektor1_sh_w(uint8_t data) -{ - data ^= 0xff; - - /* Play fireball sample */ - if (data & 0x02) - m_samples->start(0, 0); - - /* Play explosion samples */ - if (data & 0x04) - m_samples->start(1, 10); - if (data & 0x08) - m_samples->start(1, 9); - if (data & 0x10) - m_samples->start(1, 8); - - /* Play bounce sample */ - if (data & 0x20) - { - if (m_samples->playing(2)) - m_samples->stop(2); - m_samples->start(2, 1); - } - - /* Play lazer sample */ - if (data & 0xc0) - { - if (m_samples->playing(3)) - m_samples->stop(3); - m_samples->start(3, 5); - } -} - -void segag80v_state::zektor2_sh_w(uint8_t data) -{ - data ^= 0xff; - - /* Play thrust sample */ - if (data & 0x0f) - m_samples->start(4, 6); - else - m_samples->stop(4); - - /* Play skitter sample */ - if (data & 0x10) - m_samples->start(5, 2); - - /* Play eliminator sample */ - if (data & 0x20) - m_samples->start(6, 3); - - /* Play electron samples */ - if (data & 0x40) - m_samples->start(7, 40); - if (data & 0x80) - m_samples->start(7, 41); -} - - - -void segag80v_state::spacfury1_sh_w(uint8_t data) -{ - data ^= 0xff; - - /* craft growing */ - if (data & 0x01) - m_samples->start(1, 0); - - /* craft moving */ - if (data & 0x02) - { - if (!m_samples->playing(2)) - m_samples->start(2, 1, true); - } - else - m_samples->stop(2); - - /* Thrust */ - if (data & 0x04) - { - if (!m_samples->playing(3)) - m_samples->start(3, 4, true); - } - else - m_samples->stop(3); - - /* star spin */ - if (data & 0x40) - m_samples->start(4, 8); - - /* partial warship? */ - if (data & 0x80) - m_samples->start(4, 9); - -} - -void segag80v_state::spacfury2_sh_w(uint8_t data) -{ - data ^= 0xff; - - /* craft joining */ - if (data & 0x01) - m_samples->start(5, 2); - - /* ship firing */ - if (data & 0x02) - { - if (m_samples->playing(6)) - m_samples->stop(6); - m_samples->start(6, 3); - - } - - /* fireball */ - if (data & 0x04) - m_samples->start(7, 6); - - /* small explosion */ - if (data & 0x08) - m_samples->start(7, 6); - /* large explosion */ - if (data & 0x10) - m_samples->start(7, 5); - - /* docking bang */ - if (data & 0x20) - m_samples->start(0, 7); - -} diff -Nru mame-0.223+dfsg.1/src/mame/audio/segasnd.cpp mame-0.224+dfsg.1/src/mame/audio/segasnd.cpp --- mame-0.223+dfsg.1/src/mame/audio/segasnd.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segasnd.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,909 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Aaron Giles -/*************************************************************************** - - segasnd.cpp - - Sound boards for early Sega G-80 based games. - -***************************************************************************/ - -#include "emu.h" -#include "segasnd.h" - -#include "sound/sp0250.h" -#include "includes/segag80r.h" -#include "includes/segag80v.h" - -#include - - -#define VERBOSE 0 -#include "logmacro.h" - - -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -#define SPEECH_MASTER_CLOCK 3120000 - -#define USB_MASTER_CLOCK 6000000 -#define USB_2MHZ_CLOCK (USB_MASTER_CLOCK/3) -#define USB_PCS_CLOCK (USB_2MHZ_CLOCK/2) -#define USB_GOS_CLOCK (USB_2MHZ_CLOCK/16/4) -#define MM5837_CLOCK 100000 - -#define SAMPLE_RATE (USB_2MHZ_CLOCK/8) - - - -/*************************************************************************** - INLINE FUNCTIONS -***************************************************************************/ - -inline void usb_sound_device::g80_filter_state::configure(double r, double c) -{ - capval = 0.0; - exponent = 1.0 - std::exp(-1.0 / (r * c * SAMPLE_RATE)); -} - - -inline double usb_sound_device::g80_filter_state::step_rc(double input) -{ - return capval += (input - capval) * exponent; -} - - -inline double usb_sound_device::g80_filter_state::step_cr(double input) -{ - double const result = input - capval; - capval += result * exponent; - return result; -} - - - -/*************************************************************************** - SPEECH BOARD -***************************************************************************/ - -DEFINE_DEVICE_TYPE(SEGASPEECH, speech_sound_device, "sega_speech_sound", "Sega Speech Sound Board") - -#define SEGASPEECH_REGION "speech" - -speech_sound_device::speech_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, SEGASPEECH, tag, owner, clock), - device_sound_interface(mconfig, *this), - m_int_cb(*this), - m_speech(*this, SEGASPEECH_REGION), - m_drq(0), - m_latch(0), - m_t0(0), - m_p2(0) -{ -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void speech_sound_device::device_start() -{ - m_int_cb.resolve(); - - save_item(NAME(m_latch)); - save_item(NAME(m_t0)); - save_item(NAME(m_p2)); - save_item(NAME(m_drq)); -} - - -/************************************* - * - * i8035 port accessors - * - *************************************/ - - - -READ_LINE_MEMBER( speech_sound_device::t0_r ) -{ - return m_t0; -} - -READ_LINE_MEMBER( speech_sound_device::t1_r ) -{ - return m_drq; -} - -uint8_t speech_sound_device::p1_r() -{ - return m_latch & 0x7f; -} - -uint8_t speech_sound_device::rom_r(offs_t offset) -{ - return m_speech->base()[0x100 * (m_p2 & 0x3f) + offset]; -} - -void speech_sound_device::p1_w(uint8_t data) -{ - if (!(data & 0x80)) - m_t0 = 0; -} - -void speech_sound_device::p2_w(uint8_t data) -{ - m_p2 = data; -} - - - -/************************************* - * - * i8035 port accessors - * - *************************************/ - -WRITE_LINE_MEMBER(speech_sound_device::drq_w) -{ - m_drq = (state == ASSERT_LINE); -} - - - -/************************************* - * - * External access - * - *************************************/ - -TIMER_CALLBACK_MEMBER( speech_sound_device::delayed_speech_w ) -{ - int data = param; - u8 old = m_latch; - - /* all 8 bits are latched */ - m_latch = data; - - /* the high bit goes directly to the INT line */ - m_int_cb((data & 0x80) ? CLEAR_LINE : ASSERT_LINE); - - /* a clock on the high bit clocks a 1 into T0 */ - if (!(old & 0x80) && (data & 0x80)) - m_t0 = 1; -} - - -void speech_sound_device::data_w(uint8_t data) -{ - machine().scheduler().synchronize(timer_expired_delegate(FUNC(speech_sound_device::delayed_speech_w), this), data); -} - - -void speech_sound_device::control_w(uint8_t data) -{ - LOG("Speech control = %X\n", data); -} - - -//------------------------------------------------- -// sound_stream_update - handle a stream update -//------------------------------------------------- - -void speech_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) -{ -} - -/************************************* - * - * Speech board functions - * - *************************************/ - -WRITE_LINE_MEMBER(segag80snd_common::segaspeech_int_w) -{ - m_audiocpu->set_input_line(0, state); -} - -/************************************* - * - * Speech board address maps - * - *************************************/ - -void segag80snd_common::speech_map(address_map &map) -{ - map(0x0000, 0x07ff).mirror(0x0800).rom(); -} - - -void segag80snd_common::speech_portmap(address_map &map) -{ - map(0x00, 0xff).r("segaspeech", FUNC(speech_sound_device::rom_r)); - map(0x00, 0xff).w("speech", FUNC(sp0250_device::write)); -} - - -/************************************* - * - * Speech board machine drivers - * - *************************************/ - -void segag80snd_common::sega_speech_board(machine_config &config) -{ - /* CPU for the speech board */ - i8035_device &audiocpu(I8035(config, m_audiocpu, SPEECH_MASTER_CLOCK)); /* divide by 15 in CPU */ - audiocpu.set_addrmap(AS_PROGRAM, &segag80snd_common::speech_map); - audiocpu.set_addrmap(AS_IO, &segag80snd_common::speech_portmap); - audiocpu.p1_in_cb().set("segaspeech", FUNC(speech_sound_device::p1_r)); - audiocpu.p1_out_cb().set("segaspeech", FUNC(speech_sound_device::p1_w)); - audiocpu.p2_out_cb().set("segaspeech", FUNC(speech_sound_device::p2_w)); - audiocpu.t0_in_cb().set("segaspeech", FUNC(speech_sound_device::t0_r)); - audiocpu.t1_in_cb().set("segaspeech", FUNC(speech_sound_device::t1_r)); - - /* sound hardware */ - SEGASPEECH(config, "segaspeech", 0).int_cb().set(FUNC(segag80snd_common::segaspeech_int_w)); - sp0250_device &speech(SP0250(config, "speech", SPEECH_MASTER_CLOCK)); - speech.drq().set("segaspeech", FUNC(speech_sound_device::drq_w)); - speech.add_route(ALL_OUTPUTS, "speaker", 1.0); -} - - - -/*************************************************************************** - UNIVERSAL SOUND BOARD -***************************************************************************/ - -DEFINE_DEVICE_TYPE(SEGAUSB, usb_sound_device, "segausb", "Sega Universal Sound Board") - -usb_sound_device::usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, type, tag, owner, clock), - device_sound_interface(mconfig, *this), - m_ourcpu(*this, "ourcpu"), - m_maincpu(*this, finder_base::DUMMY_TAG), - m_stream(nullptr), - m_in_latch(0), - m_out_latch(0), - m_last_p2_value(0), - m_program_ram(*this, "pgmram"), - m_work_ram(*this, "workram"), - m_work_ram_bank(0), - m_t1_clock(0), - m_t1_clock_mask(0), - m_noise_shift(0), - m_noise_state(0), - m_noise_subcount(0) -{ -} - -usb_sound_device::usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : usb_sound_device(mconfig, SEGAUSB, tag, owner, clock) -{ -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void usb_sound_device::device_start() -{ - /* create a sound stream */ - m_stream = machine().sound().stream_alloc(*this, 0, 1, SAMPLE_RATE); - - /* initialize state */ - m_noise_shift = 0x15555; - - for (timer8253 &g : m_timer_group) - { - g.chan_filter[0].configure(10e3, 1e-6); - g.chan_filter[1].configure(10e3, 1e-6); - g.gate1.configure(100e3, 0.01e-6); - g.gate2.configure(2 * 100e3, 0.01e-6); - } - - g80_filter_state temp; - temp.configure(100e3, 0.01e-6); - m_gate_rc1_exp[0] = temp.exponent; - temp.configure(1e3, 0.01e-6); - m_gate_rc1_exp[1] = temp.exponent; - temp.configure(2 * 100e3, 0.01e-6); - m_gate_rc2_exp[0] = temp.exponent; - temp.configure(2 * 1e3, 0.01e-6); - m_gate_rc2_exp[1] = temp.exponent; - - m_noise_filters[0].configure(2.7e3 + 2.7e3, 1.0e-6); - m_noise_filters[1].configure(2.7e3 + 1e3, 0.30e-6); - m_noise_filters[2].configure(2.7e3 + 270, 0.15e-6); - m_noise_filters[3].configure(2.7e3 + 0, 0.082e-6); - m_noise_filters[4].configure(33e3, 0.1e-6); - - m_final_filter.configure(100e3, 4.7e-6); - - /* register for save states */ - save_item(NAME(m_in_latch)); - save_item(NAME(m_out_latch)); - save_item(NAME(m_last_p2_value)); - save_item(NAME(m_work_ram_bank)); - save_item(NAME(m_t1_clock)); - - for (int tgroup = 0; tgroup < 3; tgroup++) - { - timer8253 *group = &m_timer_group[tgroup]; - for (int tchan = 0; tchan < 3; tchan++) - { - timer8253::channel *channel = &group->chan[tchan]; - save_item(NAME(channel->holding), tgroup * 3 + tchan); - save_item(NAME(channel->latchmode), tgroup * 3 + tchan); - save_item(NAME(channel->latchtoggle), tgroup * 3 + tchan); - save_item(NAME(channel->clockmode), tgroup * 3 + tchan); - save_item(NAME(channel->bcdmode), tgroup * 3 + tchan); - save_item(NAME(channel->output), tgroup * 3 + tchan); - save_item(NAME(channel->lastgate), tgroup * 3 + tchan); - save_item(NAME(channel->gate), tgroup * 3 + tchan); - save_item(NAME(channel->subcount), tgroup * 3 + tchan); - save_item(NAME(channel->count), tgroup * 3 + tchan); - save_item(NAME(channel->remain), tgroup * 3 + tchan); - } - save_item(NAME(group->env), tgroup); - save_item(NAME(group->chan_filter[0].capval), tgroup); - save_item(NAME(group->chan_filter[1].capval), tgroup); - save_item(NAME(group->gate1.capval), tgroup); - save_item(NAME(group->gate2.capval), tgroup); - save_item(NAME(group->config), tgroup); - } - - save_item(NAME(m_timer_mode)); - save_item(NAME(m_noise_shift)); - save_item(NAME(m_noise_state)); - save_item(NAME(m_noise_subcount)); - save_item(NAME(m_final_filter.capval)); - save_item(NAME(m_noise_filters[0].capval)); - save_item(NAME(m_noise_filters[1].capval)); - save_item(NAME(m_noise_filters[2].capval)); - save_item(NAME(m_noise_filters[3].capval)); - save_item(NAME(m_noise_filters[4].capval)); -} - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void usb_sound_device::device_reset() -{ - /* halt the USB CPU at reset time */ - m_ourcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); - - /* start the clock timer */ - m_t1_clock_mask = 0x10; -} - -/************************************* - * - * Initialization/reset - * - *************************************/ - -TIMER_DEVICE_CALLBACK_MEMBER( usb_sound_device::increment_t1_clock_timer_cb ) -{ - /* only increment if it is not being forced clear */ - if (!(m_last_p2_value & 0x80)) - m_t1_clock++; -} - -/************************************* - * - * External access - * - *************************************/ - -uint8_t usb_sound_device::status_r() -{ - LOG("%s:usb_data_r = %02X\n", machine().describe_context(), (m_out_latch & 0x81) | (m_in_latch & 0x7e)); - - m_maincpu->adjust_icount(-200); - - /* only bits 0 and 7 are controlled by the I8035; the remaining */ - /* bits 1-6 reflect the current input latch values */ - return (m_out_latch & 0x81) | (m_in_latch & 0x7e); -} - - -TIMER_CALLBACK_MEMBER( usb_sound_device::delayed_usb_data_w ) -{ - int data = param; - - /* look for rising/falling edges of bit 7 to control the RESET line */ - m_ourcpu->set_input_line(INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE); - - /* if the CLEAR line is set, the low 7 bits of the input are ignored */ - if ((m_last_p2_value & 0x40) == 0) - data &= ~0x7f; - - /* update the effective input latch */ - m_in_latch = data; -} - - -void usb_sound_device::data_w(uint8_t data) -{ - LOG("%s:usb_data_w = %02X\n", machine().describe_context(), data); - machine().scheduler().synchronize(timer_expired_delegate(FUNC(usb_sound_device::delayed_usb_data_w), this), data); - - /* boost the interleave so that sequences can be sent */ - machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); -} - - -uint8_t usb_sound_device::ram_r(offs_t offset) -{ - return m_program_ram[offset]; -} - - -void usb_sound_device::ram_w(offs_t offset, uint8_t data) -{ - if (m_in_latch & 0x80) - m_program_ram[offset] = data; - else - LOG("%s:sega_usb_ram_w(%03X) = %02X while /LOAD disabled\n", machine().describe_context(), offset, data); -} - - - -/************************************* - * - * I8035 port accesses - * - *************************************/ - -uint8_t usb_sound_device::p1_r() -{ - /* bits 0-6 are inputs and map to bits 0-6 of the input latch */ - if ((m_in_latch & 0x7f) != 0) - LOG("%s: P1 read = %02X\n", machine().describe_context(), m_in_latch & 0x7f); - return m_in_latch & 0x7f; -} - - -void usb_sound_device::p1_w(uint8_t data) -{ - /* bit 7 maps to bit 0 on the output latch */ - m_out_latch = (m_out_latch & 0xfe) | (data >> 7); - LOG("%s: P1 write = %02X\n", machine().describe_context(), data); -} - - -void usb_sound_device::p2_w(uint8_t data) -{ - u8 old = m_last_p2_value; - m_last_p2_value = data; - - /* low 2 bits control the bank of work RAM we are addressing */ - m_work_ram_bank = data & 3; - - /* bit 6 controls the "ready" bit output to the host */ - /* it also clears the input latch from the host (active low) */ - m_out_latch = ((data & 0x40) << 1) | (m_out_latch & 0x7f); - if ((data & 0x40) == 0) - m_in_latch = 0; - - /* bit 7 controls the reset on the upper counter at U33 */ - if ((old & 0x80) && !(data & 0x80)) - m_t1_clock = 0; - - LOG("%s: P2 write -> bank=%d ready=%d clock=%d\n", machine().describe_context(), data & 3, (data >> 6) & 1, (data >> 7) & 1); -} - - -READ_LINE_MEMBER( usb_sound_device::t1_r ) -{ - /* T1 returns 1 based on the value of the T1 clock; the exact */ - /* pattern is determined by one or more jumpers on the board. */ - return (m_t1_clock & m_t1_clock_mask) != 0; -} - - - -/************************************* - * - * Sound generation - * - *************************************/ - -inline void usb_sound_device::timer8253::channel::clock() -{ - u8 const old_lastgate = lastgate; - - /* update the gate */ - lastgate = gate; - - /* if we're holding, skip */ - if (holding) - return; - - /* switch off the clock mode */ - switch (clockmode) - { - /* oneshot; waits for trigger to restart */ - case 1: - if (!old_lastgate && gate) - { - output = 0; - remain = count; - } - else - { - if (--remain == 0) - output = 1; - } - break; - - /* square wave: counts down by 2 and toggles output */ - case 3: - remain = (remain - 1) & ~1; - if (remain == 0) - { - output ^= 1; - remain = count; - } - break; - } -} - - -/************************************* - * - * USB timer and envelope controls - * - *************************************/ - -void usb_sound_device::timer_w(int which, u8 offset, u8 data) -{ - timer8253 *g = &m_timer_group[which]; - timer8253::channel *ch; - int was_holding; - - m_stream->update(); - - /* switch off the offset */ - switch (offset) - { - case 0: - case 1: - case 2: - ch = &g->chan[offset]; - was_holding = ch->holding; - - /* based on the latching mode */ - switch (ch->latchmode) - { - case 1: /* low word only */ - ch->count = data; - ch->holding = false; - break; - - case 2: /* high word only */ - ch->count = data << 8; - ch->holding = false; - break; - - case 3: /* low word followed by high word */ - if (ch->latchtoggle == 0) - { - ch->count = (ch->count & 0xff00) | (data & 0x00ff); - ch->latchtoggle = 1; - } - else - { - ch->count = (ch->count & 0x00ff) | (data << 8); - ch->holding = false; - ch->latchtoggle = 0; - } - break; - } - - /* if we're not holding, load the initial count for some modes */ - if (was_holding && !ch->holding) - ch->remain = 1; - break; - - case 3: - /* break out the components */ - if (((data & 0xc0) >> 6) < 3) - { - ch = &g->chan[(data & 0xc0) >> 6]; - - /* extract the bits */ - ch->holding = true; - ch->latchmode = (data >> 4) & 3; - ch->clockmode = (data >> 1) & 7; - ch->bcdmode = (data >> 0) & 1; - ch->latchtoggle = 0; - ch->output = (ch->clockmode == 1); - } - break; - } -} - - -void usb_sound_device::env_w(int which, u8 offset, u8 data) -{ - timer8253 *g = &m_timer_group[which]; - - m_stream->update(); - - if (offset < 3) - g->env[offset] = (double)data; - else - g->config = data & 1; -} - - - -/************************************* - * - * USB work RAM access - * - *************************************/ - -uint8_t usb_sound_device::workram_r(offs_t offset) -{ - offset += 256 * m_work_ram_bank; - return m_work_ram[offset]; -} - - -void usb_sound_device::workram_w(offs_t offset, uint8_t data) -{ - offset += 256 * m_work_ram_bank; - m_work_ram[offset] = data; - - /* writes to the low 32 bytes go to various controls */ - switch (offset & ~3) - { - case 0x00: /* CTC0 */ - timer_w(0, offset & 3, data); - break; - - case 0x04: /* ENV0 */ - env_w(0, offset & 3, data); - break; - - case 0x08: /* CTC1 */ - timer_w(1, offset & 3, data); - break; - - case 0x0c: /* ENV1 */ - env_w(1, offset & 3, data); - break; - - case 0x10: /* CTC2 */ - timer_w(2, offset & 3, data); - break; - - case 0x14: /* ENV2 */ - env_w(2, offset & 3, data); - break; - } -} - -//------------------------------------------------- -// sound_stream_update - handle a stream update -//------------------------------------------------- - -void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) -{ - stream_sample_t *dest = outputs[0]; - - /* iterate over samples */ - while (samples--) - { - double noiseval; - double sample = 0; - int group; - int step; - - - /*---------------- - Noise Source - ---------------- - - RC - MM5837 ---> FILTER ---> CR FILTER ---> 3.2x AMP ---> NOISE - LADDER - */ - - /* update the noise source */ - for (step = USB_2MHZ_CLOCK / SAMPLE_RATE; step >= m_noise_subcount; step -= m_noise_subcount) - { - m_noise_shift = (m_noise_shift << 1) | (((m_noise_shift >> 13) ^ (m_noise_shift >> 16)) & 1); - m_noise_state = (m_noise_shift >> 16) & 1; - m_noise_subcount = USB_2MHZ_CLOCK / MM5837_CLOCK; - } - m_noise_subcount -= step; - - /* update the filtered noise value -- this is just an approximation to the pink noise filter */ - /* being applied on the PCB, but it sounds pretty close */ - m_noise_filters[0].capval = 0.99765 * m_noise_filters[0].capval + m_noise_state * 0.0990460; - m_noise_filters[1].capval = 0.96300 * m_noise_filters[1].capval + m_noise_state * 0.2965164; - m_noise_filters[2].capval = 0.57000 * m_noise_filters[2].capval + m_noise_state * 1.0526913; - noiseval = m_noise_filters[0].capval + m_noise_filters[1].capval + m_noise_filters[2].capval + m_noise_state * 0.1848; - - /* final output goes through a CR filter; the scaling factor is arbitrary to get the noise to the */ - /* correct relative volume */ - noiseval = m_noise_filters[4].step_cr(noiseval); - noiseval *= 0.075; - - /* there are 3 identical groups of circuits, each with its own 8253 */ - for (group = 0; group < 3; group++) - { - timer8253 *g = &m_timer_group[group]; - double chan0, chan1, chan2, mix; - - - /*------------- - Channel 0 - ------------- - - 8253 CR AD7524 - OUT0 ---> FILTER ---> BUFFER---> VRef ---> 100k ---> mix - */ - - /* channel 0 clocks with the PCS clock */ - for (step = USB_2MHZ_CLOCK / SAMPLE_RATE; step >= g->chan[0].subcount; step -= g->chan[0].subcount) - { - g->chan[0].subcount = USB_2MHZ_CLOCK / USB_PCS_CLOCK; - g->chan[0].gate = 1; - g->chan[0].clock(); - } - g->chan[0].subcount -= step; - - /* channel 0 is mixed in with a resistance of 100k */ - chan0 = g->chan_filter[0].step_cr(g->chan[0].output) * g->env[0] * (1.0/100.0); - - - /*------------- - Channel 1 - ------------- - - 8253 CR AD7524 - OUT1 ---> FILTER ---> BUFFER---> VRef ---> 100k ---> mix - */ - - /* channel 1 clocks with the PCS clock */ - for (step = USB_2MHZ_CLOCK / SAMPLE_RATE; step >= g->chan[1].subcount; step -= g->chan[1].subcount) - { - g->chan[1].subcount = USB_2MHZ_CLOCK / USB_PCS_CLOCK; - g->chan[1].gate = 1; - g->chan[1].clock(); - } - g->chan[1].subcount -= step; - - /* channel 1 is mixed in with a resistance of 100k */ - chan1 = g->chan_filter[1].step_cr(g->chan[1].output) * g->env[1] * (1.0/100.0); - - - /*------------- - Channel 2 - ------------- - - If timer_mode == 0: - - SWITCHED AD7524 - NOISE ---> RC ---> 1.56x AMP ---> INVERTER ---> VRef ---> 33k ---> mix - FILTERS - - If timer mode == 1: - - AD7524 SWITCHED - NOISE ---> INVERTER ---> VRef ---> 33k ---> mix ---> INVERTER ---> RC ---> 1.56x AMP ---> finalmix - FILTERS - */ - - /* channel 2 clocks with the 2MHZ clock and triggers with the GOS clock */ - for (step = 0; step < USB_2MHZ_CLOCK / SAMPLE_RATE; step++) - { - if (g->chan[2].subcount-- == 0) - { - g->chan[2].subcount = USB_2MHZ_CLOCK / USB_GOS_CLOCK / 2 - 1; - g->chan[2].gate = !g->chan[2].gate; - } - g->chan[2].clock(); - } - - /* the exponents for the gate filters are determined by channel 2's output */ - g->gate1.exponent = m_gate_rc1_exp[g->chan[2].output]; - g->gate2.exponent = m_gate_rc2_exp[g->chan[2].output]; - - /* based on the envelope mode, we do one of two things with source 2 */ - if (g->config == 0) - { - chan2 = g->gate2.step_rc(g->gate1.step_rc(noiseval)) * -1.56 * g->env[2] * (1.0/33.0); - mix = chan0 + chan1 + chan2; - } - else - { - chan2 = -noiseval * g->env[2] * (1.0/33.0); - mix = chan0 + chan1 + chan2; - mix = g->gate2.step_rc(g->gate1.step_rc(-mix)) * 1.56; - } - - /* accumulate the sample */ - sample += mix; - } - - - /*------------- - Final mix - ------------- - - INPUTS - EQUAL ---> 1.2x INVERTER ---> CR FILTER ---> out - WEIGHT - - */ - *dest++ = 4000 * m_final_filter.step_cr(sample); - } -} - - -/************************************* - * - * USB address maps - * - *************************************/ - -void usb_sound_device::usb_map(address_map &map) -{ - map(0x0000, 0x0fff).ram().share("pgmram"); -} - -void usb_sound_device::usb_portmap(address_map &map) -{ - map(0x00, 0xff).rw(FUNC(usb_sound_device::workram_r), FUNC(usb_sound_device::workram_w)).share("workram"); -} - - -//------------------------------------------------- -// device_add_mconfig - add device configuration -//------------------------------------------------- - -void usb_sound_device::device_add_mconfig(machine_config &config) -{ - /* CPU for the usb board */ - I8035(config, m_ourcpu, USB_MASTER_CLOCK); /* divide by 15 in CPU */ - m_ourcpu->set_addrmap(AS_PROGRAM, &usb_sound_device::usb_map); - m_ourcpu->set_addrmap(AS_IO, &usb_sound_device::usb_portmap); - m_ourcpu->p1_in_cb().set(FUNC(usb_sound_device::p1_r)); - m_ourcpu->p1_out_cb().set(FUNC(usb_sound_device::p1_w)); - m_ourcpu->p2_out_cb().set(FUNC(usb_sound_device::p2_w)); - m_ourcpu->t1_in_cb().set(FUNC(usb_sound_device::t1_r)); - - TIMER(config, "usb_timer", 0).configure_periodic( - FUNC(usb_sound_device::increment_t1_clock_timer_cb), - attotime::from_hz(USB_2MHZ_CLOCK / 256)); -} - - -DEFINE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device, "segausbrom", "Sega Universal Sound Board with ROM") - -usb_rom_sound_device::usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : usb_sound_device(mconfig, SEGAUSBROM, tag, owner, clock) -{ -} - -void usb_sound_device::usb_map_rom(address_map &map) -{ - map(0x0000, 0x0fff).rom().region(":usbcpu", 0); -} - -void usb_rom_sound_device::device_add_mconfig(machine_config &config) -{ - usb_sound_device::device_add_mconfig(config); - - /* CPU for the usb board */ - m_ourcpu->set_addrmap(AS_PROGRAM, &usb_rom_sound_device::usb_map_rom); -} diff -Nru mame-0.223+dfsg.1/src/mame/audio/segasnd.h mame-0.224+dfsg.1/src/mame/audio/segasnd.h --- mame-0.223+dfsg.1/src/mame/audio/segasnd.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segasnd.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,214 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Aaron Giles -/************************************************************************* - - Sega g80 common sound hardware - -*************************************************************************/ -#ifndef MAME_AUDIO_SEGASND_H -#define MAME_AUDIO_SEGASND_H - -#pragma once - -#include "cpu/mcs48/mcs48.h" -#include "machine/timer.h" - -class segag80snd_common : public driver_device { -public: - segag80snd_common(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_audiocpu(*this, "audiocpu") - { } - - virtual ~segag80snd_common() = default; - - DECLARE_WRITE_LINE_MEMBER(segaspeech_int_w); - - void sega_speech_board(machine_config &config); - -protected: - void speech_map(address_map &map); - void speech_portmap(address_map &map); - - optional_device m_audiocpu; -}; - -#define SEGASND_SEGASPEECH_REGION "segaspeech:speech" - -class speech_sound_device : public device_t, public device_sound_interface -{ -public: - speech_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - - auto int_cb() { return m_int_cb.bind(); } - - void data_w(uint8_t data); - void control_w(uint8_t data); - - DECLARE_READ_LINE_MEMBER( t0_r ); - DECLARE_READ_LINE_MEMBER( t1_r ); - uint8_t p1_r(); - uint8_t rom_r(offs_t offset); - void p1_w(uint8_t data); - void p2_w(uint8_t data); - - DECLARE_WRITE_LINE_MEMBER(drq_w); - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - -private: - devcb_write_line m_int_cb; - required_memory_region m_speech; - - // internal state - u8 m_drq; - u8 m_latch; - u8 m_t0; - u8 m_p2; - - TIMER_CALLBACK_MEMBER( delayed_speech_w ); -}; - -DECLARE_DEVICE_TYPE(SEGASPEECH, speech_sound_device) - -class usb_sound_device : public device_t, public device_sound_interface -{ -public: - template usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, T &&maincpu_tag) - : usb_sound_device(mconfig, tag, owner, clock) - { - m_maincpu.set_tag(maincpu_tag); - } - - usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - - uint8_t status_r(); - void data_w(uint8_t data); - uint8_t ram_r(offs_t offset); - void ram_w(offs_t offset, uint8_t data); - - uint8_t workram_r(offs_t offset); - void workram_w(offs_t offset, uint8_t data); - - TIMER_DEVICE_CALLBACK_MEMBER( increment_t1_clock_timer_cb ); - - void usb_map(address_map &map); - void usb_map_rom(address_map &map); - void usb_portmap(address_map &map); - -protected: - usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); - - // device-level overrides - virtual void device_add_mconfig(machine_config &config) override; - virtual void device_start() override; - virtual void device_reset() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - - required_device m_ourcpu; - required_device m_maincpu; - -private: - struct g80_filter_state - { - g80_filter_state() { } - - void configure(double r, double c); - double step_rc(double input); - double step_cr(double input); - - double capval = 0.0; // current capacitor value - double exponent = 0.0; // constant exponent - }; - - - struct timer8253 - { - struct channel - { - channel() { } - - void clock(); - - u8 holding = 0; // holding until counts written? */ - u8 latchmode = 0; // latching mode */ - u8 latchtoggle = 0; // latching state */ - u8 clockmode = 0; // clocking mode */ - u8 bcdmode = 0; // BCD mode? */ - u8 output = 0; // current output value */ - u8 lastgate = 0; // previous gate value */ - u8 gate = 0; // current gate value */ - u8 subcount = 0; // subcount (2MHz clocks per input clock) */ - u16 count = 0; // initial count - u16 remain = 0; // current down counter value - }; - - timer8253() : env{ 0.0, 0.0, 0.0 } { } - - channel chan[3]; // three channels' worth of information - double env[3]; // envelope value for each channel - g80_filter_state chan_filter[2]; // filter states for the first two channels - g80_filter_state gate1; // first RC filter state - g80_filter_state gate2; // second RC filter state - u8 config = 0; // configuration for this timer - }; - - // internal state - sound_stream *m_stream; // output stream - u8 m_in_latch; // input latch - u8 m_out_latch; // output latch - u8 m_last_p2_value; // current P2 output value - optional_shared_ptr m_program_ram; // pointer to program RAM - required_shared_ptr m_work_ram; // pointer to work RAM - u8 m_work_ram_bank; // currently selected work RAM bank - u8 m_t1_clock; // T1 clock value - u8 m_t1_clock_mask; // T1 clock mask (configured via jumpers) - timer8253 m_timer_group[3]; // 3 groups of timers - u8 m_timer_mode[3]; // mode control for each group - u32 m_noise_shift; - u8 m_noise_state; - u8 m_noise_subcount; - double m_gate_rc1_exp[2]; - double m_gate_rc2_exp[2]; - g80_filter_state m_final_filter; - g80_filter_state m_noise_filters[5]; - - TIMER_CALLBACK_MEMBER( delayed_usb_data_w ); - void timer_w(int which, u8 offset, u8 data); - void env_w(int which, u8 offset, u8 data); - - uint8_t p1_r(); - void p1_w(uint8_t data); - void p2_w(uint8_t data); - DECLARE_READ_LINE_MEMBER( t1_r ); -}; - -DECLARE_DEVICE_TYPE(SEGAUSB, usb_sound_device) - - -class usb_rom_sound_device : public usb_sound_device -{ -public: - template usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, T &&maincpu_tag) - : usb_rom_sound_device(mconfig, tag, owner, clock) - { - m_maincpu.set_tag(maincpu_tag); - } - - usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual void device_add_mconfig(machine_config &config) override; -}; - -DECLARE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device) - -#endif // MAME_AUDIO_SEGASND_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/segaspeech.cpp mame-0.224+dfsg.1/src/mame/audio/segaspeech.cpp --- mame-0.223+dfsg.1/src/mame/audio/segaspeech.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segaspeech.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,217 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + segaspeech.cpp + + Sega Speech board for early G-80 games. + +***************************************************************************/ + +#include "emu.h" +#include "segaspeech.h" + +#include "sound/sp0250.h" +#include "includes/segag80r.h" +#include "includes/segag80v.h" +#include "audio/nl_segaspeech.h" + +#define VERBOSE 0 +#include "logmacro.h" + + +/*************************************************************************** + CONSTANTS +***************************************************************************/ + +#define SPEECH_MASTER_CLOCK 3120000 + + + +/*************************************************************************** + SPEECH BOARD +***************************************************************************/ + +DEFINE_DEVICE_TYPE(SEGA_SPEECH_BOARD, sega_speech_device, "sega_speech_device", "Sega Speech Sound Board") + +sega_speech_device::sega_speech_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + device_t(mconfig, SEGA_SPEECH_BOARD, tag, owner, clock), + device_mixer_interface(mconfig, *this), + m_speech(*this, "data"), + m_cpu(*this, "cpu"), + m_drq(0), + m_latch(0), + m_t0(0), + m_p2(0) +{ +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void sega_speech_device::device_start() +{ + save_item(NAME(m_latch)); + save_item(NAME(m_t0)); + save_item(NAME(m_p2)); + save_item(NAME(m_drq)); +} + + +/************************************* + * + * i8035 port accessors + * + *************************************/ + +READ_LINE_MEMBER( sega_speech_device::t0_r ) +{ + return m_t0; +} + +READ_LINE_MEMBER( sega_speech_device::t1_r ) +{ +//printf("%s: t1_r=%d\n", machine().scheduler().time().as_string(), m_drq); + return m_drq; +} + +uint8_t sega_speech_device::p1_r() +{ + return m_latch & 0x7f; +} + +uint8_t sega_speech_device::rom_r(offs_t offset) +{ + return m_speech->base()[0x100 * (m_p2 & 0x3f) + offset]; +} + +void sega_speech_device::p1_w(uint8_t data) +{ + if (!(data & 0x80)) + m_t0 = 0; +} + +void sega_speech_device::p2_w(uint8_t data) +{ + m_p2 = data; +} + + + +/************************************* + * + * i8035 port accessors + * + *************************************/ + +WRITE_LINE_MEMBER(sega_speech_device::drq_w) +{ +//printf("%s: DRQ=%d\n", machine().scheduler().time().as_string(), state); + m_drq = (state == ASSERT_LINE); +} + + + +/************************************* + * + * External access + * + *************************************/ + +TIMER_CALLBACK_MEMBER( sega_speech_device::delayed_speech_w ) +{ + int data = param; + u8 old = m_latch; + + /* all 8 bits are latched */ + m_latch = data; + + /* the high bit goes directly to the INT line */ + m_cpu->set_input_line(INPUT_LINE_IRQ0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + + /* a clock on the high bit clocks a 1 into T0 */ + if (!(old & 0x80) && (data & 0x80)) + m_t0 = 1; +} + + +void sega_speech_device::data_w(uint8_t data) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(sega_speech_device::delayed_speech_w), this), data); +} + + +void sega_speech_device::control_w(uint8_t data) +{ + // bit 3 controls channel #1 of a CD4053 to enable/disable + // speech output + this->set_input_gain(0, BIT(data, 3) ? 1.0 : 0.0); + + // bit 4 controls channel #2, but the source is unconnected + + // bit 5 controls channel #3, which comes from off-board + // and has a pot to control the incoming volume; at least on + // Star Trek, this is the audio from the Universal Sound Board + this->set_input_gain(1, BIT(data, 5) ? 1.0 : 0.0); + + LOG("Speech control = %X\n", data); +} + + +/************************************* + * + * Speech board address maps + * + *************************************/ + +void sega_speech_device::speech_map(address_map &map) +{ + map(0x0000, 0x07ff).mirror(0x0800).rom(); +} + + +void sega_speech_device::speech_portmap(address_map &map) +{ + map(0x00, 0xff).r(FUNC(sega_speech_device::rom_r)); + map(0x00, 0xff).w("sp0250", FUNC(sp0250_device::write)); +} + + +/************************************* + * + * Speech board machine drivers + * + *************************************/ + +void sega_speech_device::device_add_mconfig(machine_config &config) +{ + // CPU for the speech board + i8035_device &audiocpu(I8035(config, "cpu", SPEECH_MASTER_CLOCK)); // divide by 15 in CPU + audiocpu.set_addrmap(AS_PROGRAM, &sega_speech_device::speech_map); + audiocpu.set_addrmap(AS_IO, &sega_speech_device::speech_portmap); + audiocpu.p1_in_cb().set(FUNC(sega_speech_device::p1_r)); + audiocpu.p1_out_cb().set(FUNC(sega_speech_device::p1_w)); + audiocpu.p2_out_cb().set(FUNC(sega_speech_device::p2_w)); + audiocpu.t0_in_cb().set(FUNC(sega_speech_device::t0_r)); + audiocpu.t1_in_cb().set(FUNC(sega_speech_device::t1_r)); + + // speech chip + sp0250_device &speech(SP0250(config, "sp0250", SPEECH_MASTER_CLOCK)); + speech.drq().set(FUNC(sega_speech_device::drq_w)); +#if (ENABLE_NETLIST_FILTERING) + speech.set_pwm_mode(); + speech.add_route(ALL_OUTPUTS, "sound_nl", 1.0, 0); + + // netlist filtering + NETLIST_SOUND(config, "sound_nl", SPEECH_MASTER_CLOCK/2) + .set_source(NETLIST_NAME(segaspeech)) + .add_route(ALL_OUTPUTS, *this, 1.0); + + NETLIST_STREAM_INPUT(config, "sound_nl:cin0", 0, "I_SP0250.IN").set_mult_offset(1.0 / 32767.0, 0); + + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(75000.0, 0.0); +#else + speech.add_route(ALL_OUTPUTS, *this, 1.0); +#endif +} diff -Nru mame-0.223+dfsg.1/src/mame/audio/segaspeech.h mame-0.224+dfsg.1/src/mame/audio/segaspeech.h --- mame-0.223+dfsg.1/src/mame/audio/segaspeech.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segaspeech.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,61 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/************************************************************************* + + Sega speech board + +*************************************************************************/ +#ifndef MAME_AUDIO_SEGASPEECH_H +#define MAME_AUDIO_SEGASPEECH_H + +#pragma once + +#define ENABLE_NETLIST_FILTERING (0) + +#include "cpu/mcs48/mcs48.h" +#include "machine/netlist.h" +#include "machine/timer.h" + +class sega_speech_device : public device_t, public device_mixer_interface +{ +public: + sega_speech_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +// auto int_cb() { return m_int_cb.bind(); } + + void data_w(uint8_t data); + void control_w(uint8_t data); + +protected: + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + + DECLARE_READ_LINE_MEMBER( t0_r ); + DECLARE_READ_LINE_MEMBER( t1_r ); + uint8_t p1_r(); + uint8_t rom_r(offs_t offset); + void p1_w(uint8_t data); + void p2_w(uint8_t data); + + DECLARE_WRITE_LINE_MEMBER(drq_w); + +private: + void speech_map(address_map &map); + void speech_portmap(address_map &map); + + required_memory_region m_speech; + required_device m_cpu; + + // internal state + u8 m_drq; + u8 m_latch; + u8 m_t0; + u8 m_p2; + + TIMER_CALLBACK_MEMBER( delayed_speech_w ); +}; + +DECLARE_DEVICE_TYPE(SEGA_SPEECH_BOARD, sega_speech_device) + +#endif // MAME_AUDIO_SEGASPEECH_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/segausb.cpp mame-0.224+dfsg.1/src/mame/audio/segausb.cpp --- mame-0.223+dfsg.1/src/mame/audio/segausb.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segausb.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,859 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + segausb.cpp + + Sega Universal Sound Board. + +***************************************************************************/ + +#include "emu.h" +#include "segausb.h" +#include "nl_segausb.h" + +#include "includes/segag80r.h" +#include "includes/segag80v.h" + +#include + + +#define VERBOSE 0 +#include "logmacro.h" + + +/*************************************************************************** + CONSTANTS +***************************************************************************/ + +#define USB_MASTER_CLOCK 6000000 +#define USB_2MHZ_CLOCK (USB_MASTER_CLOCK/3) +#define USB_PCS_CLOCK (USB_2MHZ_CLOCK/2) +#define USB_GOS_CLOCK (USB_2MHZ_CLOCK/16/4) +#define MM5837_CLOCK 100000 + + +/*************************************************************************** + UNIVERSAL SOUND BOARD +***************************************************************************/ + +DEFINE_DEVICE_TYPE(SEGAUSB, usb_sound_device, "segausb", "Sega Universal Sound Board") + +usb_sound_device::usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock), + device_mixer_interface(mconfig, *this), + m_in_latch(0), + m_out_latch(0), + m_last_p2_value(0), + m_program_ram(*this, "pgmram"), + m_work_ram(*this, "workram"), + m_work_ram_bank(0), + m_t1_clock(0), + m_t1_clock_mask(0), + m_ourcpu(*this, "ourcpu"), + m_maincpu(*this, finder_base::DUMMY_TAG), +#if (ENABLE_SEGAUSB_NETLIST) + m_pit(*this, "pit_%u", 0), + m_nl_dac0(*this, "sound_nl:dac0_%u", 0), + m_nl_sel0(*this, "sound_nl:sel0"), + m_nl_pit0_out(*this, "sound_nl:pit0_out%u", 0), + m_nl_dac1(*this, "sound_nl:dac1_%u", 0), + m_nl_sel1(*this, "sound_nl:sel1"), + m_nl_pit1_out(*this, "sound_nl:pit1_out%u", 0), + m_nl_dac2(*this, "sound_nl:dac2_%u", 0), + m_nl_sel2(*this, "sound_nl:sel2"), + m_nl_pit2_out(*this, "sound_nl:pit2_out%u", 0), + m_gos_clock(0) +#else + m_stream(nullptr), + m_noise_shift(0), + m_noise_state(0), + m_noise_subcount(0) +#endif +{ +} + +usb_sound_device::usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : usb_sound_device(mconfig, SEGAUSB, tag, owner, clock) +{ +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void usb_sound_device::device_start() +{ + // register for save states + save_item(NAME(m_in_latch)); + save_item(NAME(m_out_latch)); + save_item(NAME(m_last_p2_value)); + save_item(NAME(m_work_ram_bank)); + save_item(NAME(m_t1_clock)); + +#if (ENABLE_SEGAUSB_NETLIST) + + for (int index = 0; index < 3; index++) + { + m_pit[index]->write_gate0(1); + m_pit[index]->write_gate1(1); + m_pit[index]->write_gate2(1); + } + save_item(NAME(m_gos_clock)); + +#else + + m_stream = stream_alloc(0, 1, USB_2MHZ_CLOCK); + + m_noise_shift = 0x15555; + + for (timer8253 &group : m_timer_group) + { + group.chan_filter[0].configure(10e3, 1e-6); + group.chan_filter[1].configure(10e3, 1e-6); + group.gate1.configure(100e3, 0.01e-6); + group.gate2.configure(2 * 100e3, 0.01e-6); + } + + g80_filter_state temp; + temp.configure(100e3, 0.01e-6); + m_gate_rc1_exp[0] = temp.exponent; + temp.configure(1e3, 0.01e-6); + m_gate_rc1_exp[1] = temp.exponent; + temp.configure(2 * 100e3, 0.01e-6); + m_gate_rc2_exp[0] = temp.exponent; + temp.configure(2 * 1e3, 0.01e-6); + m_gate_rc2_exp[1] = temp.exponent; + + m_noise_filters[0].configure(2.7e3 + 2.7e3, 1.0e-6); + m_noise_filters[1].configure(2.7e3 + 1e3, 0.30e-6); + m_noise_filters[2].configure(2.7e3 + 270, 0.15e-6); + m_noise_filters[3].configure(2.7e3 + 0, 0.082e-6); + m_noise_filters[4].configure(33e3, 0.1e-6); + + m_final_filter.configure(100e3, 4.7e-6); + + for (int tgroup = 0; tgroup < 3; tgroup++) + { + timer8253 &group = m_timer_group[tgroup]; + for (int tchan = 0; tchan < 3; tchan++) + { + timer8253::channel &channel = group.chan[tchan]; + save_item(NAME(channel.holding), tgroup * 3 + tchan); + save_item(NAME(channel.latchmode), tgroup * 3 + tchan); + save_item(NAME(channel.latchtoggle), tgroup * 3 + tchan); + save_item(NAME(channel.clockmode), tgroup * 3 + tchan); + save_item(NAME(channel.bcdmode), tgroup * 3 + tchan); + save_item(NAME(channel.output), tgroup * 3 + tchan); + save_item(NAME(channel.lastgate), tgroup * 3 + tchan); + save_item(NAME(channel.gate), tgroup * 3 + tchan); + save_item(NAME(channel.subcount), tgroup * 3 + tchan); + save_item(NAME(channel.count), tgroup * 3 + tchan); + save_item(NAME(channel.remain), tgroup * 3 + tchan); + } + save_item(NAME(group.env), tgroup); + save_item(NAME(group.chan_filter[0].capval), tgroup); + save_item(NAME(group.chan_filter[1].capval), tgroup); + save_item(NAME(group.gate1.capval), tgroup); + save_item(NAME(group.gate2.capval), tgroup); + save_item(NAME(group.config), tgroup); + } + + save_item(NAME(m_timer_mode)); + save_item(NAME(m_noise_shift)); + save_item(NAME(m_noise_state)); + save_item(NAME(m_noise_subcount)); + save_item(NAME(m_final_filter.capval)); + save_item(NAME(m_noise_filters[0].capval)); + save_item(NAME(m_noise_filters[1].capval)); + save_item(NAME(m_noise_filters[2].capval)); + save_item(NAME(m_noise_filters[3].capval)); + save_item(NAME(m_noise_filters[4].capval)); + +#endif +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void usb_sound_device::device_reset() +{ + // halt the USB CPU at reset time + m_ourcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + + // start the clock timer + m_t1_clock_mask = 0x10; +} + + +/************************************* + * + * Initialization/reset + * + *************************************/ + +TIMER_DEVICE_CALLBACK_MEMBER( usb_sound_device::increment_t1_clock_timer_cb ) +{ + // only increment if it is not being forced clear + if (!(m_last_p2_value & 0x80)) + m_t1_clock++; +} + + +/************************************* + * + * External access + * + *************************************/ + +u8 usb_sound_device::status_r() +{ + LOG("%s:usb_data_r = %02X\n", machine().describe_context(), (m_out_latch & 0x81) | (m_in_latch & 0x7e)); + + m_maincpu->adjust_icount(-200); + + // only bits 0 and 7 are controlled by the I8035; the remaining + // bits 1-6 reflect the current input latch values + return (m_out_latch & 0x81) | (m_in_latch & 0x7e); +} + + +TIMER_CALLBACK_MEMBER( usb_sound_device::delayed_usb_data_w ) +{ + // look for rising/falling edges of bit 7 to control the RESET line + int data = param; + m_ourcpu->set_input_line(INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE); + + // if the CLEAR line is set, the low 7 bits of the input are ignored + if ((m_last_p2_value & 0x40) == 0) + data &= ~0x7f; + + // update the effective input latch + m_in_latch = data; +} + + +void usb_sound_device::data_w(u8 data) +{ + LOG("%s:usb_data_w = %02X\n", machine().describe_context(), data); + machine().scheduler().synchronize(timer_expired_delegate(FUNC(usb_sound_device::delayed_usb_data_w), this), data); + + // boost the interleave so that sequences can be sent + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); +} + + +u8 usb_sound_device::ram_r(offs_t offset) +{ + return m_program_ram[offset]; +} + + +void usb_sound_device::ram_w(offs_t offset, u8 data) +{ + if (m_in_latch & 0x80) + m_program_ram[offset] = data; + else + LOG("%s:sega_usb_ram_w(%03X) = %02X while /LOAD disabled\n", machine().describe_context(), offset, data); +} + + + +/************************************* + * + * I8035 port accesses + * + *************************************/ + +u8 usb_sound_device::p1_r() +{ + // bits 0-6 are inputs and map to bits 0-6 of the input latch + if ((m_in_latch & 0x7f) != 0) + LOG("%s: P1 read = %02X\n", machine().describe_context(), m_in_latch & 0x7f); + return m_in_latch & 0x7f; +} + + +void usb_sound_device::p1_w(u8 data) +{ + // bit 7 maps to bit 0 on the output latch + m_out_latch = (m_out_latch & 0xfe) | (data >> 7); + LOG("%s: P1 write = %02X\n", machine().describe_context(), data); +} + + +void usb_sound_device::p2_w(u8 data) +{ + u8 old = m_last_p2_value; + m_last_p2_value = data; + + // low 2 bits control the bank of work RAM we are addressing + m_work_ram_bank = data & 3; + + // bit 6 controls the "ready" bit output to the host + // it also clears the input latch from the host (active low) + m_out_latch = ((data & 0x40) << 1) | (m_out_latch & 0x7f); + if ((data & 0x40) == 0) + m_in_latch = 0; + + // bit 7 controls the reset on the upper counter at U33 + if ((old & 0x80) && !(data & 0x80)) + m_t1_clock = 0; + + LOG("%s: P2 write -> bank=%d ready=%d clock=%d\n", machine().describe_context(), data & 3, (data >> 6) & 1, (data >> 7) & 1); +} + + +READ_LINE_MEMBER( usb_sound_device::t1_r ) +{ + // T1 returns 1 based on the value of the T1 clock; the exact + // pattern is determined by one or more jumpers on the board. + return (m_t1_clock & m_t1_clock_mask) != 0; +} + + + +/************************************* + * + * Sound generation + * + *************************************/ + +#if (!ENABLE_SEGAUSB_NETLIST) + +inline void usb_sound_device::g80_filter_state::configure(double r, double c) +{ + capval = 0.0; + exponent = 1.0 - std::exp(-1.0 / (r * c * USB_2MHZ_CLOCK)); +} + +inline void usb_sound_device::timer8253::channel::clock() +{ + u8 const old_lastgate = lastgate; + + // update the gate + lastgate = gate; + + // if we're holding, skip + if (holding) + return; + + // switch off the clock mode + switch (clockmode) + { + // oneshot; waits for trigger to restart + case 1: + if (!old_lastgate && gate) + { + output = 0; + remain = count; + } + else + { + if (--remain == 0) + output = 1; + } + break; + + // square wave: counts down by 2 and toggles output + case 3: + remain = (remain - 1) & ~1; + if (remain == 0) + { + output ^= 1; + remain = count; + } + break; + } +} + + +/************************************* + * + * USB timer and envelope controls + * + *************************************/ + +void usb_sound_device::timer_w(int which, u8 offset, u8 data) +{ + timer8253 &group = m_timer_group[which]; + + m_stream->update(); + + // switch off the offset + switch (offset) + { + case 0: + case 1: + case 2: + { + timer8253::channel &ch = group.chan[offset]; + bool was_holding = ch.holding; + + // based on the latching mode + switch (ch.latchmode) + { + case 1: // low word only + ch.count = data; + ch.holding = false; + break; + + case 2: // high word only + ch.count = data << 8; + ch.holding = false; + break; + + case 3: // low word followed by high word + if (ch.latchtoggle == 0) + { + ch.count = (ch.count & 0xff00) | (data & 0x00ff); + ch.latchtoggle = 1; + } + else + { + ch.count = (ch.count & 0x00ff) | (data << 8); + ch.holding = false; + ch.latchtoggle = 0; + } + break; + } + + // if we're not holding, load the initial count for some modes + if (was_holding && !ch.holding) + ch.remain = 1; + break; + } + + case 3: + // break out the components + if (((data & 0xc0) >> 6) < 3) + { + timer8253::channel &ch = group.chan[(data & 0xc0) >> 6]; + + // extract the bits + ch.holding = true; + ch.latchmode = (data >> 4) & 3; + ch.clockmode = (data >> 1) & 7; + ch.bcdmode = (data >> 0) & 1; + ch.latchtoggle = 0; + ch.output = (ch.clockmode == 1); + } + break; + } +} + + +void usb_sound_device::env_w(int which, u8 offset, u8 data) +{ + timer8253 &group = m_timer_group[which]; + + m_stream->update(); + + if (offset < 3) + group.env[offset] = double(data); + else + group.config = data & 1; +} + +//------------------------------------------------- +// sound_stream_update - handle a stream update +//------------------------------------------------- + +void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +{ + stream_sample_t *dest = outputs[0]; + + // iterate over samples + while (samples--) + { + /*---------------- + Noise Source + ---------------- + + RC + MM5837 ---> FILTER ---> CR FILTER ---> 3.2x AMP ---> NOISE + LADDER + */ + + // update the noise source + if (m_noise_subcount-- == 0) + { + m_noise_shift = (m_noise_shift << 1) | (((m_noise_shift >> 13) ^ (m_noise_shift >> 16)) & 1); + m_noise_state = (m_noise_shift >> 16) & 1; + m_noise_subcount += USB_2MHZ_CLOCK / MM5837_CLOCK; + } + + // update the filtered noise value -- this is just an approximation to the pink noise filter + // being applied on the PCB, but it sounds pretty close + m_noise_filters[0].capval = 0.99765 * m_noise_filters[0].capval + m_noise_state * 0.0990460; + m_noise_filters[1].capval = 0.96300 * m_noise_filters[1].capval + m_noise_state * 0.2965164; + m_noise_filters[2].capval = 0.57000 * m_noise_filters[2].capval + m_noise_state * 1.0526913; + double noiseval = m_noise_filters[0].capval + m_noise_filters[1].capval + m_noise_filters[2].capval + m_noise_state * 0.1848; + + // final output goes through a CR filter; the scaling factor is arbitrary to get the noise to the + // correct relative volume + noiseval = m_noise_filters[4].step_cr(noiseval); + noiseval *= 0.075; + + // there are 3 identical groups of circuits, each with its own 8253 + double sample = 0; + for (int groupnum = 0; groupnum < 3; groupnum++) + { + timer8253 &group = m_timer_group[groupnum]; + + /*------------- + Channel 0 + ------------- + + 8253 CR AD7524 + OUT0 ---> FILTER ---> BUFFER---> VRef ---> 100k ---> mix + */ + + // channel 0 clocks with the PCS clock + if (group.chan[0].subcount-- == 0) + { + group.chan[0].subcount += USB_2MHZ_CLOCK / USB_PCS_CLOCK; + group.chan[0].gate = 1; + group.chan[0].clock(); + } + + // channel 0 is mixed in with a resistance of 100k + double chan0 = group.chan_filter[0].step_cr(group.chan[0].output) * group.env[0] * (1.0/100.0); + + /*------------- + Channel 1 + ------------- + + 8253 CR AD7524 + OUT1 ---> FILTER ---> BUFFER---> VRef ---> 100k ---> mix + */ + + // channel 1 clocks with the PCS clock + if (group.chan[1].subcount-- == 0) + { + group.chan[1].subcount += USB_2MHZ_CLOCK / USB_PCS_CLOCK; + group.chan[1].gate = 1; + group.chan[1].clock(); + } + + // channel 1 is mixed in with a resistance of 100k + double chan1 = group.chan_filter[1].step_cr(group.chan[1].output) * group.env[1] * (1.0/100.0); + + /*------------- + Channel 2 + ------------- + + If timer_mode == 0: + + SWITCHED AD7524 + NOISE ---> RC ---> 1.56x AMP ---> INVERTER ---> VRef ---> 33k ---> mix + FILTERS + + If timer mode == 1: + + AD7524 SWITCHED + NOISE ---> INVERTER ---> VRef ---> 33k ---> mix ---> INVERTER ---> RC ---> 1.56x AMP ---> finalmix + FILTERS + */ + + // channel 2 clocks with the 2MHZ clock and triggers with the GOS clock + if (group.chan[2].subcount-- == 0) + { + group.chan[2].subcount += USB_2MHZ_CLOCK / USB_GOS_CLOCK / 2; + group.chan[2].gate = !group.chan[2].gate; + } + group.chan[2].clock(); + + // the exponents for the gate filters are determined by channel 2's output + group.gate1.exponent = m_gate_rc1_exp[group.chan[2].output]; + group.gate2.exponent = m_gate_rc2_exp[group.chan[2].output]; + + // based on the envelope mode, we do one of two things with source 2 + double chan2, mix; + if (group.config == 0) + { + chan2 = group.gate2.step_rc(group.gate1.step_rc(noiseval)) * -1.56 * group.env[2] * (1.0/33.0); + mix = chan0 + chan1 + chan2; + } + else + { + chan2 = -noiseval * group.env[2] * (1.0/33.0); + mix = chan0 + chan1 + chan2; + mix = group.gate2.step_rc(group.gate1.step_rc(-mix)) * 1.56; + } + + // accumulate the sample + sample += mix; + } + + /*------------- + Final mix + ------------- + + INPUTS + EQUAL ---> 1.2x INVERTER ---> CR FILTER ---> out + WEIGHT + + */ + *dest++ = 3000 * m_final_filter.step_cr(sample); + } +} + +#endif + + + +/************************************* + * + * USB work RAM access + * + *************************************/ + +u8 usb_sound_device::workram_r(offs_t offset) +{ + offset += 256 * m_work_ram_bank; + return m_work_ram[offset]; +} + + +void usb_sound_device::workram_w(offs_t offset, u8 data) +{ + offset += 256 * m_work_ram_bank; + m_work_ram[offset] = data; + + // writes to the low 32 bytes go to various controls +#if (ENABLE_SEGAUSB_NETLIST) + + switch (offset) + { + case 0x00: // 8253 U41 + case 0x01: // 8253 U41 + case 0x02: // 8253 U41 + case 0x03: // 8253 U41 + if ((offset & 3) != 3) + printf("%s: 2.%d count=%d\n", machine().scheduler().time().as_string(), offset & 3, data); + m_pit[0]->write(offset & 3, data); + break; + + case 0x04: // ENV0 U26 + case 0x05: // ENV0 U25 + case 0x06: // ENV0 U24 + m_nl_dac0[offset & 3]->write(double(data) / 255.0); + break; + + case 0x07: // ENV0 U38B + m_nl_sel0->write(data & 1); + break; + + case 0x08: // 8253 U42 + case 0x09: // 8253 U42 + case 0x0a: // 8253 U42 + case 0x0b: // 8253 U42 + if ((offset & 3) != 3) + printf("%s: 2.%d count=%d\n", machine().scheduler().time().as_string(), offset & 3, data); + m_pit[1]->write(offset & 3, data); + break; + + case 0x0c: // ENV1 U12 + case 0x0d: // ENV1 U13 + case 0x0e: // ENV1 U14 + m_nl_dac1[offset & 3]->write(double(data) / 255.0); + break; + + case 0x0f: // ENV1 U2B + m_nl_sel1->write(data & 1); + break; + + case 0x10: // 8253 U43 + case 0x11: // 8253 U43 + case 0x12: // 8253 U43 + case 0x13: // 8253 U43 + if ((offset & 3) != 3) + printf("%s: 2.%d count=%d\n", machine().scheduler().time().as_string(), offset & 3, data); + m_pit[2]->write(offset & 3, data); + break; + + case 0x14: // ENV2 U27 + case 0x15: // ENV2 U28 + case 0x16: // ENV2 U29 + m_nl_dac2[offset & 3]->write(double(data) / 255.0); + break; + + case 0x17: // ENV2 U38B + m_nl_sel2->write(data & 1); + break; + } + +#else + + switch (offset & ~3) + { + case 0x00: // CTC0 + timer_w(0, offset & 3, data); + break; + + case 0x04: // ENV0 + env_w(0, offset & 3, data); + break; + + case 0x08: // CTC1 + timer_w(1, offset & 3, data); + break; + + case 0x0c: // ENV1 + env_w(1, offset & 3, data); + break; + + case 0x10: // CTC2 + timer_w(2, offset & 3, data); + break; + + case 0x14: // ENV2 + env_w(2, offset & 3, data); + break; + } + +#endif +} + + + +/************************************* + * + * USB address maps + * + *************************************/ + +void usb_sound_device::usb_map(address_map &map) +{ + map(0x0000, 0x0fff).ram().share("pgmram"); +} + +void usb_sound_device::usb_portmap(address_map &map) +{ + map(0x00, 0xff).rw(FUNC(usb_sound_device::workram_r), FUNC(usb_sound_device::workram_w)).share("workram"); +} + + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +#if (ENABLE_SEGAUSB_NETLIST) + +TIMER_DEVICE_CALLBACK_MEMBER( usb_sound_device::gos_timer ) +{ + // technically we should clock at 2x and toggle between states + // however, in practice this is just used to trigger a oneshot + // so we can halve the high frequency rate and just toggle both + // ways to initiate the countdown + m_pit[0]->write_gate2(0); + m_pit[1]->write_gate2(0); + m_pit[2]->write_gate2(0); + m_pit[0]->write_gate2(1); + m_pit[1]->write_gate2(1); + m_pit[2]->write_gate2(1); +} + +#endif + + +void usb_sound_device::device_add_mconfig(machine_config &config) +{ + // CPU for the usb board + I8035(config, m_ourcpu, USB_MASTER_CLOCK); // divide by 15 in CPU + m_ourcpu->set_addrmap(AS_PROGRAM, &usb_sound_device::usb_map); + m_ourcpu->set_addrmap(AS_IO, &usb_sound_device::usb_portmap); + m_ourcpu->p1_in_cb().set(FUNC(usb_sound_device::p1_r)); + m_ourcpu->p1_out_cb().set(FUNC(usb_sound_device::p1_w)); + m_ourcpu->p2_out_cb().set(FUNC(usb_sound_device::p2_w)); + m_ourcpu->t1_in_cb().set(FUNC(usb_sound_device::t1_r)); + + TIMER(config, "usb_timer", 0).configure_periodic( + FUNC(usb_sound_device::increment_t1_clock_timer_cb), + attotime::from_hz(USB_2MHZ_CLOCK / 256)); + +#if (ENABLE_SEGAUSB_NETLIST) + + TIMER(config, "gos_timer", 0).configure_periodic( + FUNC(usb_sound_device::gos_timer), attotime::from_hz(USB_GOS_CLOCK)); + + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(segausb)) + .add_route(ALL_OUTPUTS, *this, 1.0); + + // channel 0 inputs + NETLIST_ANALOG_INPUT(config, m_nl_dac0[0], "I_U26_DAC.IN"); + NETLIST_ANALOG_INPUT(config, m_nl_dac0[1], "I_U25_DAC.IN"); + NETLIST_ANALOG_INPUT(config, m_nl_dac0[2], "I_U24_DAC.IN"); + NETLIST_LOGIC_INPUT(config, m_nl_sel0, "I_U38B_SEL.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit0_out[0], "I_U41_OUT0.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit0_out[1], "I_U41_OUT1.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit0_out[2], "I_U41_OUT2.IN", 0); + + // channel 1 inputs + NETLIST_ANALOG_INPUT(config, m_nl_dac1[0], "I_U12_DAC.IN"); + NETLIST_ANALOG_INPUT(config, m_nl_dac1[1], "I_U13_DAC.IN"); + NETLIST_ANALOG_INPUT(config, m_nl_dac1[2], "I_U14_DAC.IN"); + NETLIST_LOGIC_INPUT(config, m_nl_sel1, "I_U2B_SEL.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit1_out[0], "I_U42_OUT0.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit1_out[1], "I_U42_OUT1.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit1_out[2], "I_U42_OUT2.IN", 0); + + // channel 2 inputs + NETLIST_ANALOG_INPUT(config, m_nl_dac2[0], "I_U27_DAC.IN"); + NETLIST_ANALOG_INPUT(config, m_nl_dac2[1], "I_U28_DAC.IN"); + NETLIST_ANALOG_INPUT(config, m_nl_dac2[2], "I_U29_DAC.IN"); + NETLIST_LOGIC_INPUT(config, m_nl_sel2, "I_U2A_SEL.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit2_out[0], "I_U43_OUT0.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit2_out[1], "I_U43_OUT1.IN", 0); + NETLIST_LOGIC_INPUT(config, m_nl_pit2_out[2], "I_U43_OUT2.IN", 0); + + // final output + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(5000.0, 0.0); + + // configure the PIT clocks and gates + for (int index = 0; index < 3; index++) + { + PIT8253(config, m_pit[index], 0); + m_pit[index]->set_clk<0>(USB_PCS_CLOCK); + m_pit[index]->set_clk<1>(USB_PCS_CLOCK); + m_pit[index]->set_clk<2>(USB_2MHZ_CLOCK); + } + + // connect the PIT outputs to the netlist + m_pit[0]->out_handler<0>().set(m_nl_pit0_out[0], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[0]->out_handler<1>().set(m_nl_pit0_out[1], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[0]->out_handler<2>().set(m_nl_pit0_out[2], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[1]->out_handler<0>().set(m_nl_pit1_out[0], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[1]->out_handler<1>().set(m_nl_pit1_out[1], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[1]->out_handler<2>().set(m_nl_pit1_out[2], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[2]->out_handler<0>().set(m_nl_pit2_out[0], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[2]->out_handler<1>().set(m_nl_pit2_out[1], FUNC(netlist_mame_logic_input_device::write_line)); + m_pit[2]->out_handler<2>().set(m_nl_pit2_out[2], FUNC(netlist_mame_logic_input_device::write_line)); + +#endif +} + + +DEFINE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device, "segausbrom", "Sega Universal Sound Board with ROM") + +usb_rom_sound_device::usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : usb_sound_device(mconfig, SEGAUSBROM, tag, owner, clock) +{ +} + +void usb_sound_device::usb_map_rom(address_map &map) +{ + map(0x0000, 0x0fff).rom().region(":usbcpu", 0); +} + +void usb_rom_sound_device::device_add_mconfig(machine_config &config) +{ + usb_sound_device::device_add_mconfig(config); + + // CPU for the usb board + m_ourcpu->set_addrmap(AS_PROGRAM, &usb_rom_sound_device::usb_map_rom); +} diff -Nru mame-0.223+dfsg.1/src/mame/audio/segausb.h mame-0.224+dfsg.1/src/mame/audio/segausb.h --- mame-0.223+dfsg.1/src/mame/audio/segausb.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/segausb.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,192 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/************************************************************************* + + Sega g80 common sound hardware + +*************************************************************************/ +#ifndef MAME_AUDIO_SEGAUSB_H +#define MAME_AUDIO_SEGAUSB_H + +#pragma once + +#define ENABLE_SEGAUSB_NETLIST (0) + +#include "cpu/mcs48/mcs48.h" +#include "machine/netlist.h" +#include "machine/timer.h" +#include "netlist/nl_setup.h" +#include "nl_segausb.h" + +#if (ENABLE_SEGAUSB_NETLIST) +#include "machine/pit8253.h" +#endif + +class usb_sound_device : public device_t, public device_mixer_interface +{ +public: + template usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, T &&maincpu_tag) + : usb_sound_device(mconfig, tag, owner, clock) + { + m_maincpu.set_tag(maincpu_tag); + } + + usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + uint8_t status_r(); + void data_w(uint8_t data); + uint8_t ram_r(offs_t offset); + void ram_w(offs_t offset, uint8_t data); + + uint8_t workram_r(offs_t offset); + void workram_w(offs_t offset, uint8_t data); + + TIMER_DEVICE_CALLBACK_MEMBER( increment_t1_clock_timer_cb ); + + void usb_map(address_map &map); + void usb_map_rom(address_map &map); + void usb_portmap(address_map &map); + +#if (ENABLE_SEGAUSB_NETLIST) + TIMER_DEVICE_CALLBACK_MEMBER( gos_timer ); +#endif + +protected: + + usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + virtual void device_reset() override; + +#if (!ENABLE_SEGAUSB_NETLIST) + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; +#endif + +private: + // internal state + u8 m_in_latch; // input latch + u8 m_out_latch; // output latch + u8 m_last_p2_value; // current P2 output value + optional_shared_ptr m_program_ram; // pointer to program RAM + required_shared_ptr m_work_ram; // pointer to work RAM + u8 m_work_ram_bank; // currently selected work RAM bank + u8 m_t1_clock; // T1 clock value + u8 m_t1_clock_mask; // T1 clock mask (configured via jumpers) + +protected: + // devices + required_device m_ourcpu; + required_device m_maincpu; + +private: +#if (ENABLE_SEGAUSB_NETLIST) + // PIT devices + required_device_array m_pit; + + // channel 0 + required_device_array m_nl_dac0; + required_device m_nl_sel0; + required_device_array m_nl_pit0_out; + + // channel 1 + required_device_array m_nl_dac1; + required_device m_nl_sel1; + required_device_array m_nl_pit1_out; + + // channel 2 + required_device_array m_nl_dac2; + required_device m_nl_sel2; + required_device_array m_nl_pit2_out; + + u8 m_gos_clock; // state of the GOD clock +#else + struct g80_filter_state + { + g80_filter_state() { } + + void configure(double r, double c); + double step_rc(double input) { return capval += (input - capval) * exponent; } + double step_cr(double input) { double const result = input - capval; capval += result * exponent; return result; } + + double capval = 0.0; // current capacitor value + double exponent = 0.0; // constant exponent + }; + + struct timer8253 + { + struct channel + { + channel() { } + + void clock(); + + u8 holding = 0; // holding until counts written? + u8 latchmode = 0; // latching mode + u8 latchtoggle = 0; // latching state + u8 clockmode = 0; // clocking mode + u8 bcdmode = 0; // BCD mode? + u8 output = 0; // current output value + u8 lastgate = 0; // previous gate value + u8 gate = 0; // current gate value + u16 count = 0; // initial count + u16 remain = 0; // current down counter value + s32 subcount = 0; // subcount (2MHz clocks per input clock) + }; + + timer8253() : env{ 0.0, 0.0, 0.0 } { } + + channel chan[3]; // three channels' worth of information + double env[3]; // envelope value for each channel + g80_filter_state chan_filter[2]; // filter states for the first two channels + g80_filter_state gate1; // first RC filter state + g80_filter_state gate2; // second RC filter state + u8 config = 0; // configuration for this timer + }; + + sound_stream *m_stream; // output stream + timer8253 m_timer_group[3]; // 3 groups of timers + u8 m_timer_mode[3]; // mode control for each group + u32 m_noise_shift; + u8 m_noise_state; + s32 m_noise_subcount; + double m_gate_rc1_exp[2]; + double m_gate_rc2_exp[2]; + g80_filter_state m_final_filter; + g80_filter_state m_noise_filters[5]; +#endif + + TIMER_CALLBACK_MEMBER( delayed_usb_data_w ); + void timer_w(int which, u8 offset, u8 data); + void env_w(int which, u8 offset, u8 data); + + uint8_t p1_r(); + void p1_w(uint8_t data); + void p2_w(uint8_t data); + DECLARE_READ_LINE_MEMBER( t1_r ); +}; + +DECLARE_DEVICE_TYPE(SEGAUSB, usb_sound_device) + + +class usb_rom_sound_device : public usb_sound_device +{ +public: + template usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, T &&maincpu_tag) + : usb_rom_sound_device(mconfig, tag, owner, clock) + { + m_maincpu.set_tag(maincpu_tag); + } + + usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; +}; + +DECLARE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device) + +#endif // MAME_AUDIO_SEGAUSB_H diff -Nru mame-0.223+dfsg.1/src/mame/audio/wpcsnd.cpp mame-0.224+dfsg.1/src/mame/audio/wpcsnd.cpp --- mame-0.223+dfsg.1/src/mame/audio/wpcsnd.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/audio/wpcsnd.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,9 +1,42 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * wpcsnd.c - Williams WPC pinball sound + * wpcsnd.c - A-12738-50003 Williams WPC Sound Board * M6809E + YM2151 + HC55516 + DAC * + * TODO: The sound and io interface here needs to be verified from the ASIC on a real PCB, and documented better. + * The WPC mainboard has two connectors used for IO/sound: + * HDR 17X2 "I/O SOUND" + * has the 68B09E signals: + * A0-A4, D0-D7, and /FIRQ (with pullup) + * it also has the WPC ASIC signals: + * BLANK, WDEN, RESET + * HDR 2X13 "I/O EXTEND" + * has the 68B09E signals: + * A5-A12, /FIRQ (with pullup (as above)), /IRQ (with pullup), /E, /Q + * it also has the WPC ASIC signal: + * /IO + * + * The funhouse schematics show the A-12738-50003 WPC Sound Board to the HDR 17X2 "I/O SOUND" connector as such: + * A4 A3 A2 A1 A0 WDEN R/W + * 0 x x x x x x open bus + * x 0 x x x x x open bus + * x x 0 x x x x open bus + * x x x x x 1 x open bus + * 1 1 1 1 * 0 * open bus* (technically the 74LS138 is enabled here, with ** selecting between 4 unused outputs) + * 1 1 1 0 * 0 * The used registers, see below + * 1 1 1 0 0 0 W write to input gen_8_latch and set semamphore to assert /IRQ on the sound board 68B09E + * 1 1 1 0 0 0 R read the output gen_8_latch and clear semamphore to deassert /FIRQ on the main board 68B09E + * 1 1 1 0 1 0 W any write here causes the sound board to be reset + * 1 1 1 0 1 0 R read from here returns the sound->mainboard semaphore status on D7, all other pins are open bus + * + * Exactly which addresses cause the WPC ASIC to assert low the WDEN pin is not clear, + * but presumably it is asserted in the 0x0x3fc0-3fdf area, meaning that the addresses + * actually used are 0x3fdc and 0x3fdd (offsets 0x2c and 0x2d). + * See /machine/wpc.h + * + * TODO: add generic_latch_8 devices for the two latch+semaphore pairs. + * * Created on: 4/10/2013 */ diff -Nru mame-0.223+dfsg.1/src/mame/ci.lst mame-0.224+dfsg.1/src/mame/ci.lst --- mame-0.223+dfsg.1/src/mame/ci.lst 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/ci.lst 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,43 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/****************************************************************************** + + ci.lst + + List of all enabled drivers in the system. This file is parsed by + makelist.exe, sorted, and output as C code describing the drivers. + +******************************************************************************/ + +robby // (c) 1981 Bally Midway +gridlee // [1983 Videa] prototype - no copyright notice +alienar // (c) 1985 Duncan Brown + +carpolo // (c) 1977 Exidy +sidetrac // (c) 1979 Exidy +targ // (c) 1980 Exidy +spectar // (c) 1980 Exidy +teetert // (c) 1982 Exidy +hardhat // (c) 1982 +fax // (c) 1983 +fax2 // (c) 1983 +circus // (c) 1977 Exidy +robotbwl // (c) 197? Exidy +crash // (c) 1979 Exidy +ripcord // (c) 1979 Exidy +starfire // (c) 1979 Exidy +starfirea // (c) 1979 Exidy +fireone // (c) 1979 Exidy +starfir2 // (c) 1979 Exidy +victory // (c) 1982 +victorba // (c) 1982 +topgunnr // (c) 1986 + +looping // (c) 1982 Video Games GMBH +supertnk // (c) 1981 VIDEO GAMES GmbH, W.-GERMANY + +wrally // (c) 1993 - Ref 930705 + +kinst // (c) 1994 Rare + +akkaarrh // (c) 1982 Atari (prototype) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/39in1.cpp mame-0.224+dfsg.1/src/mame/drivers/39in1.cpp --- mame-0.223+dfsg.1/src/mame/drivers/39in1.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/39in1.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -18,7 +18,13 @@ * PCB also contains a custom ASIC, probably used for the decryption * * TODO: - * PXA255 peripherals + * - PXA255 peripherals + * - 4in1a and 4in1b are very similar to 39in1, currently boot but stuck at + * 'Hardware Check' with an error + * - rodent should be correctly decrypted but expects something different + from the CPLD (probably) + * - 19in1, 48in1, 48in1a, 48in1b seem to have a slightly different encryption + * - 60in1 expects something different from the CPLD (probably) * * 39in1 notes: * The actual PCB just normally boots up to the game, whereas in MAME it @@ -49,14 +55,24 @@ , m_maincpu(*this, "maincpu") { } - void _60in1(machine_config &config); void _39in1(machine_config &config); - void driver_init() override; + void init_4in1a(); + void init_4in1b(); + void init_19in1(); + void init_39in1(); + void init_48in1(); + void init_48in1a(); + void init_60in1(); + void init_rodent(); + private: uint32_t m_seed; uint32_t m_magic; uint32_t m_state; + uint32_t m_mcu_ipt_pc; + + void driver_init() override; required_device m_pxa_periphs; required_shared_ptr m_ram; @@ -68,12 +84,12 @@ uint32_t cpld_r(offs_t offset); void cpld_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); uint32_t prot_cheater_r(); - DECLARE_MACHINE_START(60in1); - virtual void machine_start() override; required_device m_maincpu; void _39in1_map(address_map &map); inline void ATTR_PRINTF(3,4) verboselog(int n_level, const char *s_fmt, ... ); + + void decrypt(uint8_t xor00, uint8_t xor08, uint8_t xor10, uint8_t xor20, uint8_t xor40, uint8_t bit7, uint8_t bit6, uint8_t bit5, uint8_t bit4, uint8_t bit3, uint8_t bit2, uint8_t bit1, uint8_t bit0); }; @@ -109,13 +125,13 @@ uint32_t _39in1_state::cpld_r(offs_t offset) { - //if (m_maincpu->pc() != 0xe3af4) printf("CPLD read @ %x (PC %x state %d)\n", offset, m_maincpu->pc(), state); + // if (m_maincpu->pc() != m_mcu_ipt_pc) printf("CPLD read @ %x (PC %x state %d)\n", offset, m_maincpu->pc(), m_state); if (m_maincpu->pc() == 0x3f04) { return 0xf0; // any non-zero value works here } - else if (m_maincpu->pc() == 0xe3af4) + else if (m_maincpu->pc() == m_mcu_ipt_pc) { return ioport("MCUIPT")->read(); } @@ -249,35 +265,64 @@ PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_SERVICE_NO_TOGGLE( 0x80000000, IP_ACTIVE_LOW ) -/* The following dips apply to 39in1 and 48in1. 60in1 is the same but the last unused dipsw#4 is test mode off/on. +// The following dips apply to 39in1 and 48in1. 60in1 is the same but the last unused dipsw#4 is test mode off/on. - PORT_START("DSW") // 1x 4-position DIP switch labelled SW3 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Display Mode" ) PORT_DIPLOCATION("SW3:2") - PORT_DIPSETTING( 0x02, "CGA 15.75kHz" ) - PORT_DIPSETTING( 0x00, "VGA 31.5kHz" ) - PORT_DIPNAME( 0x04, 0x04, "High Score Saver" ) PORT_DIPLOCATION("SW3:3") - PORT_DIPSETTING( 0x04, "Disabled" ) - PORT_DIPSETTING( 0x00, "Enabled" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW3:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -*/ + PORT_START("DSW") // 1x 4-position DIP switch labelled SW3 + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "Display Mode" ) PORT_DIPLOCATION("SW3:2") + PORT_DIPSETTING( 0x02, "VGA 31.5kHz" ) + PORT_DIPSETTING( 0x00, "CGA 15.75kHz" ) + PORT_DIPNAME( 0x04, 0x04, "High Score Saver" ) PORT_DIPLOCATION("SW3:3") + PORT_DIPSETTING( 0x04, "Disabled" ) + PORT_DIPSETTING( 0x00, "Enabled" ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW3:4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -void _39in1_state::machine_start() +void _39in1_state::decrypt(uint8_t xor00, uint8_t xor08, uint8_t xor10, uint8_t xor20, uint8_t xor40, uint8_t bit7, uint8_t bit6, uint8_t bit5, uint8_t bit4, uint8_t bit3, uint8_t bit2, uint8_t bit1, uint8_t bit0) { - uint8_t *ROM = memregion("maincpu")->base(); + uint8_t *rom = memregion("maincpu")->base(); + for (int i = 0; i < 0x80000; i += 2) { - ROM[i] = bitswap<8>(ROM[i],7,2,5,6,0,3,1,4) ^ bitswap<8>((i>>3)&0xf, 3,2,4,1,4,4,0,4) ^ 0x90; - } -} + if (i & 0x08) + rom[i] ^= xor08; + if (i & 0x10) + rom[i] ^= xor10; + if (i & 0x20) + rom[i] ^= xor20; + if (i & 0x40) + rom[i] ^= xor40; + + rom[i] = bitswap<8>(rom[i] ^ xor00, bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0); + } + + /*{ + char filename[256]; + sprintf(filename,"p_decrypted_%s", machine().system().name); + FILE *fp = fopen(filename, "w+b"); + if (fp) + { + fwrite(rom, 0x80000, 1, fp); + fclose(fp); + } + }*/ +} + +void _39in1_state::init_39in1() { driver_init(); decrypt(0xc0, 0x02, 0x40, 0x04, 0x80, 7, 2, 5, 6, 0, 3, 1, 4); m_mcu_ipt_pc = 0xe3af4; } // good +void _39in1_state::init_4in1a() { driver_init(); decrypt(0x25, 0x01, 0x80, 0x04, 0x40, 6, 0, 2, 1, 7, 5, 4, 3); m_mcu_ipt_pc = 0x45814; } // good +void _39in1_state::init_4in1b() { driver_init(); decrypt(0x43, 0x80, 0x04, 0x40, 0x08, 2, 4, 0, 6, 7, 3, 1, 5); m_mcu_ipt_pc = 0x57628; } // good +void _39in1_state::init_19in1() { driver_init(); decrypt(0x00, 0x04, 0x01, 0x80, 0x40, 2, 1, 7, 4, 5, 0, 6, 3); m_mcu_ipt_pc = 0x00000; } // TODO: seems to have different bitswaps depending on XOR address +void _39in1_state::init_48in1() { driver_init(); decrypt(0x00, 0x01, 0x40, 0x00, 0x20, 5, 3, 2, 1, 4, 6, 0, 7); m_mcu_ipt_pc = 0x00000; } // applies to both 48in1 and 48in1b, same main CPU ROM. TODO: see above +void _39in1_state::init_48in1a() { init_48in1(); m_mcu_ipt_pc = 0x00000; } // same encryption as 48in1 +void _39in1_state::init_rodent() { init_4in1b(); /*m_mcu_ipt_pc = 0x?????;*/ } // same encryption as 4in1b, thus good, but doesn't boot because of different CPLD calls -MACHINE_START_MEMBER(_39in1_state,60in1) +void _39in1_state::init_60in1() // different encryption scheme { + driver_init(); // TODO: Machine is marked as MNW; is this decrypt correct? uint8_t *ROM = memregion("maincpu")->base(); for (int i = 0; i < 0x80000; i += 2) @@ -287,6 +332,8 @@ ROM[i] = bitswap<8>(ROM[i],5,1,4,2,0,7,6,3)^bitswap<8>(i, 6,0,4,13,0,5,3,11); } } + + // m_mcu_ipt_pc = 0x?????; } void _39in1_state::_39in1(machine_config &config) @@ -299,12 +346,7 @@ PXA255_PERIPHERALS(config, m_pxa_periphs, 200000000, m_maincpu); m_pxa_periphs->gpio0_write().set(FUNC(_39in1_state::eeprom_w)); m_pxa_periphs->gpio0_read().set(FUNC(_39in1_state::eeprom_r)); -} - -void _39in1_state::_60in1(machine_config &config) -{ - _39in1(config); - MCFG_MACHINE_START_OVERRIDE(_39in1_state,60in1) + m_pxa_periphs->gpio1_read().set_ioport("DSW").lshift(21); } ROM_START( 39in1 ) @@ -436,12 +478,12 @@ ROM_LOAD( "93c66.u32", 0x000, 0x200, CRC(c311c7bc) SHA1(8328002b7f6a8b7a3ffca079b7960bc990211d7b) ) ROM_END -GAME(2004, 4in1a, 39in1, _39in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "4 in 1 MAME bootleg (set 1, ver 3.00)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 4in1b, 39in1, _39in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "4 in 1 MAME bootleg (set 2)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 19in1, 39in1, _39in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "19 in 1 MAME bootleg", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 39in1, 0, _39in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "39 in 1 MAME bootleg", MACHINE_IMPERFECT_SOUND) -GAME(2004, 48in1, 39in1, _39in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "48 in 1 MAME bootleg (set 1, ver 3.09)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 48in1b, 39in1, _39in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "48 in 1 MAME bootleg (set 2, ver 3.09, alt flash)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 48in1a, 39in1, _39in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "48 in 1 MAME bootleg (set 3, ver 3.02)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 60in1, 39in1, _60in1, 39in1, _39in1_state, driver_init, ROT270, "bootleg", "60 in 1 MAME bootleg (ver 3.00)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2005, rodent, 0, _39in1, 39in1, _39in1_state, driver_init, ROT270, "The Game Room", "Rodent Exterminator", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 4in1a, 39in1, _39in1, 39in1, _39in1_state, init_4in1a, ROT90, "bootleg", "4 in 1 MAME bootleg (set 1, ver 3.00, PLZ-V014)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 4in1b, 39in1, _39in1, 39in1, _39in1_state, init_4in1b, ROT90, "bootleg", "4 in 1 MAME bootleg (set 2, PLZ-V001)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 19in1, 39in1, _39in1, 39in1, _39in1_state, init_19in1, ROT90, "bootleg", "19 in 1 MAME bootleg (SAC-V000)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 39in1, 0, _39in1, 39in1, _39in1_state, init_39in1, ROT90, "bootleg", "39 in 1 MAME bootleg (GNO-V000)", MACHINE_IMPERFECT_SOUND) +GAME(2004, 48in1, 39in1, _39in1, 39in1, _39in1_state, init_48in1, ROT90, "bootleg", "48 in 1 MAME bootleg (set 1, ver 3.09)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 48in1b, 39in1, _39in1, 39in1, _39in1_state, init_48in1, ROT90, "bootleg", "48 in 1 MAME bootleg (set 2, ver 3.09, alt flash)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 48in1a, 39in1, _39in1, 39in1, _39in1_state, init_48in1a, ROT90, "bootleg", "48 in 1 MAME bootleg (set 3, ver 3.02)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 60in1, 39in1, _39in1, 39in1, _39in1_state, init_60in1, ROT90, "bootleg", "60 in 1 MAME bootleg (ver 3.00)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2005, rodent, 0, _39in1, 39in1, _39in1_state, init_rodent, ROT0, "The Game Room", "Rodent Exterminator", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/4dpi.cpp mame-0.224+dfsg.1/src/mame/drivers/4dpi.cpp --- mame-0.223+dfsg.1/src/mame/drivers/4dpi.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/4dpi.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -61,6 +61,8 @@ // video and audio #include "video/sgi_gr1.h" +#include "4dpi.lh" + #define LOG_GENERAL (1U << 0) #define VERBOSE (LOG_GENERAL) @@ -331,13 +333,13 @@ [this](u8 data) { // cpu leds - m_leds[LED_HBT] = !BIT(data, 0); - m_leds[LED_CPU] = !BIT(data, 1); - m_leds[LED_GFX] = !BIT(data, 2); - m_leds[LED_FPU] = !BIT(data, 3); + m_leds[LED_HBT] = BIT(data, 0); + m_leds[LED_CPU] = BIT(data, 1); + m_leds[LED_GFX] = BIT(data, 2); + m_leds[LED_FPU] = BIT(data, 3); // console led - m_leds[LED_CON] = !BIT(data, 4); + m_leds[LED_CON] = BIT(data, 4); // serial eeprom chip select and clock out m_eeprom->cs_write(BIT(data, 5)); @@ -770,6 +772,8 @@ // TODO: vme slot, cpu interrupt 0 SOFTWARE_LIST(config, m_softlist).set_original("sgi_mips"); + + config.set_default_layout(layout_4dpi); } void pi4d3x_state::common(machine_config &config) @@ -989,18 +993,24 @@ ROM_START(4d20) ROM_REGION32_BE(0x40000, "boot", 0) - ROM_SYSTEM_BIOS(0, "3.1c", "Version 4D1-3.1 Rev C, Tue Jan 10 15:11:42 PST 1989 SGI") - ROMX_LOAD("070_8000_005_boot_0.h1c5", 0x000000, 0x010000, CRC(c7a182de) SHA1(56038f54b5a3254960ad7c8232f1a7cf058b9ead), ROM_BIOS(0) | ROM_SKIP(3)) - ROMX_LOAD("070_8000_005_boot_1.h1d2", 0x000001, 0x010000, CRC(4b1395f5) SHA1(926f3172b79ebaf7040ff04b0cfdc3d48d03293c), ROM_BIOS(0) | ROM_SKIP(3)) - ROMX_LOAD("070_8000_005_boot_2.h1d9", 0x000002, 0x010000, CRC(e0a55120) SHA1(0b675489ea94bf85a5a0e5f0ebf0c0b7ff5fc389), ROM_BIOS(0) | ROM_SKIP(3)) - ROMX_LOAD("070_8000_005_boot_3.h1e6", 0x000003, 0x010000, CRC(11536526) SHA1(5149f453347ae566e9fee4447615dff88c7f6a37), ROM_BIOS(0) | ROM_SKIP(3)) - - // this firmware has been found in both 4D/20 and 4D/25 hardware - ROM_SYSTEM_BIOS(1, "3.2e", "Version 3.2 Rev E, Fri Jul 14 14:37:38 PDT 1989 SGI") - ROMX_LOAD("070_8000_007_boot_0.h1c5", 0x000000, 0x010000, CRC(e448b865) SHA1(f0276b76360ea0b3250dbdaa7a1e57ea8f6144d6), ROM_BIOS(1) | ROM_SKIP(3)) - ROMX_LOAD("070_8000_007_boot_1.h1d2", 0x000001, 0x010000, CRC(59fda717) SHA1(ef3ccb1f8a815e7b13c79deeea0d73006deed09f), ROM_BIOS(1) | ROM_SKIP(3)) - ROMX_LOAD("070_8000_007_boot_2.h1d9", 0x000002, 0x010000, CRC(569146ad) SHA1(5442a13ed93afdaa55c1951b97e335cf60dde834), ROM_BIOS(1) | ROM_SKIP(3)) - ROMX_LOAD("070_8000_007_boot_3.h1e6", 0x000003, 0x010000, CRC(682977c3) SHA1(d9bcf7cdc5caef4221929fe26eccf34253fa7f29), ROM_BIOS(1) | ROM_SKIP(3)) + // 3.2e firmware has been found in both 4D/20 and 4D/25 hardware + ROM_SYSTEM_BIOS(0, "3.2e", "Version 3.2 Rev E, Fri Jul 14 14:37:38 PDT 1989 SGI") + ROMX_LOAD("070_8000_007_boot_0.h1c5", 0x000000, 0x010000, CRC(e448b865) SHA1(f0276b76360ea0b3250dbdaa7a1e57ea8f6144d6), ROM_BIOS(0) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_007_boot_1.h1d2", 0x000001, 0x010000, CRC(59fda717) SHA1(ef3ccb1f8a815e7b13c79deeea0d73006deed09f), ROM_BIOS(0) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_007_boot_2.h1d9", 0x000002, 0x010000, CRC(569146ad) SHA1(5442a13ed93afdaa55c1951b97e335cf60dde834), ROM_BIOS(0) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_007_boot_3.h1e6", 0x000003, 0x010000, CRC(682977c3) SHA1(d9bcf7cdc5caef4221929fe26eccf34253fa7f29), ROM_BIOS(0) | ROM_SKIP(3)) + + ROM_SYSTEM_BIOS(1, "3.1c", "Version 4D1-3.1 Rev C, Tue Jan 10 15:11:42 PST 1989 SGI") + ROMX_LOAD("070_8000_005_boot_0.h1c5", 0x000000, 0x010000, CRC(c7a182de) SHA1(56038f54b5a3254960ad7c8232f1a7cf058b9ead), ROM_BIOS(1) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_005_boot_1.h1d2", 0x000001, 0x010000, CRC(4b1395f5) SHA1(926f3172b79ebaf7040ff04b0cfdc3d48d03293c), ROM_BIOS(1) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_005_boot_2.h1d9", 0x000002, 0x010000, CRC(e0a55120) SHA1(0b675489ea94bf85a5a0e5f0ebf0c0b7ff5fc389), ROM_BIOS(1) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_005_boot_3.h1e6", 0x000003, 0x010000, CRC(11536526) SHA1(5149f453347ae566e9fee4447615dff88c7f6a37), ROM_BIOS(1) | ROM_SKIP(3)) + + ROM_SYSTEM_BIOS(2, "3.1a", "Version 4D1-3.1 Rev A, Tue Aug 9 17:50:39 PDT 1988 SGI") + ROMX_LOAD("070_8000_003_boot_0.h1c5", 0x000000, 0x010000, CRC(32cdcdc5) SHA1(1568ae3877193d3c93bdcccd755736b6cd82cbf3), ROM_BIOS(2) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_003_boot_1.h1d2", 0x000001, 0x010000, CRC(4b3a02ee) SHA1(248e5cea8d3218686a044e5b013a1213441a5332), ROM_BIOS(2) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_003_boot_2.h1d9", 0x000002, 0x010000, CRC(3d80d19c) SHA1(42fb95f4d76ede073c5d9bbc2f144b4f2fbf407f), ROM_BIOS(2) | ROM_SKIP(3)) + ROMX_LOAD("070_8000_003_boot_3.h1e6", 0x000003, 0x010000, CRC(48b9322c) SHA1(600554a0ccc4bab4881a96a9886eea40cd04c8e4), ROM_BIOS(2) | ROM_SKIP(3)) ROM_END ROM_START(4d25) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/4enlinea.cpp mame-0.224+dfsg.1/src/mame/drivers/4enlinea.cpp --- mame-0.223+dfsg.1/src/mame/drivers/4enlinea.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/4enlinea.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -679,13 +679,27 @@ ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "cuatro_en_linea_27c256__cicplay-1.ic19", 0x0000, 0x8000, CRC(307a57a3) SHA1(241329d919ec43d0eeb1dad0a4db6cf6de06e7e1) ) - ROM_REGION( 0x0800, "eeprom", 0 ) // default serial EEPROM + ROM_REGION( 0x0800, "eeprom", 0 ) // default serial EEPROM ROM_LOAD( "cuatro_en_linea_x24c16p__nosticker.ic17", 0x0000, 0x0800, CRC(21f81f5a) SHA1(00b10eee5af1ca79ced2878f4be4cac2bb8d26a0) ) ROM_REGION( 0x0200, "plds", 0 ) ROM_LOAD( "cuatro_en_linea_gal16v8as__nosticker.ic04", 0x0000, 0x0117, CRC(094edf29) SHA1(428a2f6568ac1032833ee0c65fa8304967a58607) ) ROM_END +ROM_START( 4enlineb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cuatro_en_linea_2_a06.ic6", 0x0000, 0x8000, CRC(f8f14bf8) SHA1(e48fbedbd1b9be6fb56a0f65db80eddbedb487c7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "cuatro_en_linea_1_a06.ic19", 0x0000, 0x8000, CRC(993d0581) SHA1(d6e366dd827543508037d2071c4b6e638c2cf87b) ) + + ROM_REGION( 0x0800, "eeprom", 0 ) // From an operated PCB, a clean one for default need to be created... + ROM_LOAD( "cuatro_en_linea_24c16.ic17", 0x0000, 0x0800, CRC(56722dd4) SHA1(f818d882b3070f9b1fac486987a044ab1d418985) ) + + ROM_REGION( 0x0200, "plds", 0 ) + ROM_LOAD( "cuatro_en_linea_gal16v8a.ic04", 0x0000, 0x0117, CRC(1edaf06c) SHA1(51e44c2e6b54991330d6ef945e98fa2c8a49408d) ) +ROM_END + /* Kursaal K7 Olympic Darts PCB __________________________________________________ SUBBOARD CM3080 | ________ __ ______ ______________ | ________________ @@ -747,7 +761,8 @@ * Game Drivers * ***********************************/ -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS -GAME( 1991, 4enlinea, 0, _4enlinea, 4enlinea, _4enlinea_state, empty_init, ROT0, "Compumatic", "Cuatro en Linea", MACHINE_NOT_WORKING ) -GAME( 1994, k7_olym, 0, k7_olym, k7_olym, _4enlinea_state, empty_init, ROT0, "K7 Kursaal", "Olympic Darts (K7)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) -GAME( 1993, sprtdart, 0, k7_olym, k7_olym, _4enlinea_state, empty_init, ROT0, "Compumatic / Desarrollos y Recambios S.L.", "Sport Dart TV", MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS +GAME( 1991, 4enlinea, 0, _4enlinea, 4enlinea, _4enlinea_state, empty_init, ROT0, "Compumatic / CIC Play", "Cuatro en Linea (rev. A-07)", MACHINE_NOT_WORKING ) +GAME( 1991, 4enlineb, 4enlinea, _4enlinea, 4enlinea, _4enlinea_state, empty_init, ROT0, "Compumatic / CIC Play", "Cuatro en Linea (rev. A-06)", MACHINE_NOT_WORKING ) +GAME( 1994, k7_olym, 0, k7_olym, k7_olym, _4enlinea_state, empty_init, ROT0, "K7 Kursaal", "Olympic Darts (K7)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 1993, sprtdart, 0, k7_olym, k7_olym, _4enlinea_state, empty_init, ROT0, "Compumatic / Desarrollos y Recambios S.L.", "Sport Dart TV", MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/abc1600.cpp mame-0.224+dfsg.1/src/mame/drivers/abc1600.cpp --- mame-0.223+dfsg.1/src/mame/drivers/abc1600.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/abc1600.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -17,7 +17,7 @@ sa(40,0) y 5 - necd5126a + micr1325a How to install OS: ------------------ @@ -66,8 +66,6 @@ - CIO - optimize timers! - port C, open drain output bit PC1 (RTC/NVRAM data) - - hard disk - - 4105 SASI interface card - connect RS-232 printer port - Z80 SCC/DART interrupt chain - Z80 SCC DMA request @@ -463,19 +461,16 @@ m_sysscc = state; m_cio->pb5_w(!state); - m_bus1->pren_w(!state); - update_drdy1(); + update_drdy1(0); break; case 7: // SYSFS m_sysfs = state; m_cio->pb6_w(!state); - m_bus0i->pren_w(!state); - m_bus0x->pren_w(!state); - update_drdy0(); + update_drdy0(0); break; } } @@ -549,7 +544,23 @@ // Z80DMA 0 //------------------------------------------------- -void abc1600_state::update_drdy0() +void abc1600_state::update_pren0(int state) +{ + if (m_sysfs) + { + // floppy + m_dma0->iei_w(0); + } + else + { + // BUS0I/BUS0X + bool pren0 = m_bus0i->pren_r() && m_bus0x->pren_r(); + + m_dma0->iei_w(!pren0); + } +} + +void abc1600_state::update_drdy0(int state) { if (m_sysfs) { @@ -574,28 +585,32 @@ // Z80DMA 1 //------------------------------------------------- -void abc1600_state::update_drdy1() +void abc1600_state::update_pren1(int state) { if (m_sysscc) { // SCC - m_dma1->rdy_w(1); + m_dma1->iei_w(1); } else { // BUS1 - m_dma1->rdy_w(m_bus1->trrq_r()); + m_dma1->iei_w(!m_bus1->pren_r()); } } -//------------------------------------------------- -// Z80DMA 2 -//------------------------------------------------- - -void abc1600_state::update_drdy2() +void abc1600_state::update_drdy1(int state) { - // Winchester - m_dma2->rdy_w(1); + if (m_sysscc) + { + // SCC + m_dma1->rdy_w(m_sccrq_a && m_sccrq_b); + } + else + { + // BUS1 + m_dma1->rdy_w(m_bus1->trrq_r()); + } } //------------------------------------------------- @@ -779,11 +794,6 @@ device.option_add("525qd", FLOPPY_525_QD); } -WRITE_LINE_MEMBER( abc1600_state::fdc_drq_w ) -{ - update_drdy0(); -} - //------------------------------------------------- // ABC1600BUS_INTERFACE( abcbus_intf ) @@ -822,7 +832,10 @@ save_item(NAME(m_bus0)); save_item(NAME(m_csb)); save_item(NAME(m_atce)); - save_item(NAME(m_btce)); + save_item(NAME(m_sccrq_a)); + save_item(NAME(m_sccrq_b)); + save_item(NAME(m_scc_irq)); + save_item(NAME(m_dart_irq)); } @@ -863,35 +876,39 @@ ABC1600_MOVER(config, ABC1600_MOVER_TAG, 0); // devices - abc1600_mac_device &mac(ABC1600_MAC(config, "mac", 0)); - mac.set_addrmap(AS_PROGRAM, &abc1600_state::mac_mem); - mac.set_cpu_tag(m_maincpu); + ABC1600_MAC(config, m_mac, 0); + m_mac->set_addrmap(AS_PROGRAM, &abc1600_state::mac_mem); + m_mac->set_cpu_tag(m_maincpu); Z80DMA(config, m_dma0, 64_MHz_XTAL / 16); m_dma0->out_busreq_callback().set(FUNC(abc1600_state::dbrq_w)); m_dma0->out_bao_callback().set(m_dma1, FUNC(z80dma_device::bai_w)); - m_dma0->in_mreq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma0_mreq_r)); - m_dma0->out_mreq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma0_mreq_w)); - m_dma0->in_iorq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma0_iorq_r)); - m_dma0->out_iorq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma0_iorq_w)); + m_dma0->in_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma0_mreq_r)); + m_dma0->out_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma0_mreq_w)); + m_dma0->out_ieo_callback().set(m_bus0i, FUNC(abcbus_slot_device::prac_w)); + //m_dma0->out_ieo_callback().set(m_bus0x, FUNC(abcbus_slot_device::prac_w)); + m_dma0->in_iorq_callback().set(FUNC(abc1600_state::dma0_iorq_r)); + m_dma0->out_iorq_callback().set(FUNC(abc1600_state::dma0_iorq_w)); Z80DMA(config, m_dma1, 64_MHz_XTAL / 16); m_dma1->out_busreq_callback().set(FUNC(abc1600_state::dbrq_w)); m_dma1->out_bao_callback().set(m_dma2, FUNC(z80dma_device::bai_w)); - m_dma1->in_mreq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma1_mreq_r)); - m_dma1->out_mreq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma1_mreq_w)); - m_dma1->in_iorq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma1_iorq_r)); - m_dma1->out_iorq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma1_iorq_w)); + m_dma1->in_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma1_mreq_r)); + m_dma1->out_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma1_mreq_w)); + m_dma1->out_ieo_callback().set(m_bus1, FUNC(abcbus_slot_device::prac_w)); + m_dma1->in_iorq_callback().set(FUNC(abc1600_state::dma1_iorq_r)); + m_dma1->out_iorq_callback().set(FUNC(abc1600_state::dma1_iorq_w)); Z80DMA(config, m_dma2, 64_MHz_XTAL / 16); m_dma2->out_busreq_callback().set(FUNC(abc1600_state::dbrq_w)); - m_dma2->in_mreq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma2_mreq_r)); - m_dma2->out_mreq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma2_mreq_w)); - m_dma2->in_iorq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma2_iorq_r)); - m_dma2->out_iorq_callback().set(ABC1600_MAC_TAG, FUNC(abc1600_mac_device::dma2_iorq_w)); + m_dma2->in_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma2_mreq_r)); + m_dma2->out_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma2_mreq_w)); + m_dma2->out_ieo_callback().set(m_bus2, FUNC(abcbus_slot_device::prac_w)); + m_dma2->in_iorq_callback().set(m_bus2, FUNC(abcbus_slot_device::read_tren)); + m_dma2->out_iorq_callback().set(m_bus2, FUNC(abcbus_slot_device::write_tren)); Z80DART(config, m_dart, 64_MHz_XTAL / 16); - m_dart->out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5); // shared with SCC + m_dart->out_int_callback().set(FUNC(abc1600_state::dart_irq_w)); m_dart->out_txda_callback().set(RS232_PR_TAG, FUNC(rs232_port_device::write_txd)); //m_dart->out_dtra_callback().set(RS232_PR_TAG, FUNC(rs232_port_device::write_dcd)); //m_dart->out_rtsa_callback().set(RS232_PR_TAG, FUNC(rs232_port_device::write_cts)); @@ -903,14 +920,14 @@ kb.out_keydown_handler().set(m_dart, FUNC(z80dart_device::dcdb_w)); rs232_port_device &rs232pr(RS232_PORT(config, RS232_PR_TAG, default_rs232_devices, nullptr)); - rs232pr.rxd_handler().set(Z8470AB1_TAG, FUNC(z80dart_device::rxa_w)); - //rs232pr.rts_handler().set(Z8470AB1_TAG, FUNC(z80dart_device::ctsa_w)); - //rs232pr.dtr_handler().set(Z8470AB1_TAG, FUNC(z80dart_device::dcda_w)); + rs232pr.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); + //rs232pr.rts_handler().set(m_dart, FUNC(z80dart_device::ctsa_w)); + //rs232pr.dtr_handler().set(m_dart, FUNC(z80dart_device::dcda_w)); SCC8530N(config, m_scc, 64_MHz_XTAL / 16); - m_scc->out_int_callback().set_inputline(MC68008P8_TAG, M68K_IRQ_5); - //m_scc->out_wreqa_callback().set(FUNC(abc1600_state::sccrq_w)); - //m_scc->out_wreqb_callback().set(FUNC(abc1600_state::sccrq_w)); + m_scc->out_int_callback().set(FUNC(abc1600_state::scc_irq_w)); + m_scc->out_wreqa_callback().set(FUNC(abc1600_state::sccrq_a_w)); + m_scc->out_wreqb_callback().set(FUNC(abc1600_state::sccrq_b_w)); m_scc->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); m_scc->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts)); @@ -919,15 +936,16 @@ m_scc->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); - rs232a.rxd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::rxa_w)); - rs232a.cts_handler().set(Z8530B1_TAG, FUNC(scc8530_device::ctsa_w)); - rs232a.dcd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::dcda_w)); - rs232a.ri_handler().set(Z8530B1_TAG, FUNC(scc8530_device::synca_w)); + rs232a.rxd_handler().set(m_scc, FUNC(scc8530_device::rxa_w)); + rs232a.cts_handler().set(m_scc, FUNC(scc8530_device::ctsa_w)); + rs232a.dcd_handler().set(m_scc, FUNC(scc8530_device::dcda_w)); + rs232a.ri_handler().set(m_scc, FUNC(scc8530_device::synca_w)); + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); - rs232b.rxd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::rxb_w)); - rs232b.cts_handler().set(Z8530B1_TAG, FUNC(scc8530_device::ctsb_w)); - rs232b.dcd_handler().set(Z8530B1_TAG, FUNC(scc8530_device::dcdb_w)); - rs232b.ri_handler().set(Z8530B1_TAG, FUNC(scc8530_device::syncb_w)); + rs232b.rxd_handler().set(m_scc, FUNC(scc8530_device::rxb_w)); + rs232b.cts_handler().set(m_scc, FUNC(scc8530_device::ctsb_w)); + rs232b.dcd_handler().set(m_scc, FUNC(scc8530_device::dcdb_w)); + rs232b.ri_handler().set(m_scc, FUNC(scc8530_device::syncb_w)); Z8536(config, m_cio, 64_MHz_XTAL / 16); m_cio->irq_wr_cb().set_inputline(MC68008P8_TAG, M68K_IRQ_2); @@ -943,27 +961,36 @@ FD1797(config, m_fdc, 64_MHz_XTAL / 64); m_fdc->intrq_wr_callback().set(m_cio, FUNC(z8536_device::pb7_w)); - m_fdc->drq_wr_callback().set(FUNC(abc1600_state::fdc_drq_w)); + m_fdc->drq_wr_callback().set(FUNC(abc1600_state::update_drdy0)); FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":0", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":1", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":2", abc1600_floppies, "525qd", floppy_image_device::default_floppy_formats); - abcbus_slot_device &bus0i(ABCBUS_SLOT(config, "bus0i", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr)); - bus0i.irq_callback().set(m_cio, FUNC(z8536_device::pa7_w)); - abcbus_slot_device &bus0x(ABCBUS_SLOT(config, "bus0x", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr)); - bus0x.irq_callback().set(m_cio, FUNC(z8536_device::pa6_w)); - bus0x.nmi_callback().set(FUNC(abc1600_state::nmi_w)); - bus0x.xint2_callback().set(m_cio, FUNC(z8536_device::pa2_w)); - bus0x.xint3_callback().set(m_cio, FUNC(z8536_device::pa3_w)); - bus0x.xint4_callback().set(m_cio, FUNC(z8536_device::pa4_w)); - bus0x.xint5_callback().set(m_cio, FUNC(z8536_device::pa5_w)); - abcbus_slot_device &bus1(ABCBUS_SLOT(config, "bus1", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr)); - bus1.irq_callback().set(m_cio, FUNC(z8536_device::pa1_w)); - abcbus_slot_device &bus2(ABCBUS_SLOT(config, "bus2", 64_MHz_XTAL / 16, abc1600bus_cards, "4105")); - bus2.irq_callback().set(m_cio, FUNC(z8536_device::pa0_w)); - //bus2.pren_callback().set(Z8410AB1_2_TAG, FUNC(z80dma_device::iei_w)); - bus2.trrq_callback().set(Z8410AB1_2_TAG, FUNC(z80dma_device::rdy_w)); + ABCBUS_SLOT(config, m_bus0i, 64_MHz_XTAL / 16, abc1600bus_cards, nullptr); + m_bus0i->irq_callback().set(m_cio, FUNC(z8536_device::pa7_w)); + m_bus0i->pren_callback().set(FUNC(abc1600_state::update_pren0)); + m_bus0i->trrq_callback().set(FUNC(abc1600_state::update_drdy0)); + + ABCBUS_SLOT(config, m_bus0x, 64_MHz_XTAL / 16, abc1600bus_cards, nullptr); + m_bus0x->irq_callback().set(m_cio, FUNC(z8536_device::pa6_w)); + m_bus0x->nmi_callback().set(FUNC(abc1600_state::nmi_w)); + m_bus0x->xint2_callback().set(m_cio, FUNC(z8536_device::pa2_w)); + m_bus0x->xint3_callback().set(m_cio, FUNC(z8536_device::pa3_w)); + m_bus0x->xint4_callback().set(m_cio, FUNC(z8536_device::pa4_w)); + m_bus0x->xint5_callback().set(m_cio, FUNC(z8536_device::pa5_w)); + m_bus0x->pren_callback().set(FUNC(abc1600_state::update_pren0)); + m_bus0x->trrq_callback().set(FUNC(abc1600_state::update_drdy0)); + + ABCBUS_SLOT(config, m_bus1, 64_MHz_XTAL / 16, abc1600bus_cards, nullptr); + m_bus1->irq_callback().set(m_cio, FUNC(z8536_device::pa1_w)); + m_bus1->pren_callback().set(FUNC(abc1600_state::update_pren1)); + m_bus1->trrq_callback().set(FUNC(abc1600_state::update_drdy1)); + + ABCBUS_SLOT(config, m_bus2, 64_MHz_XTAL / 16, abc1600bus_cards, "4105"); + m_bus2->irq_callback().set(m_cio, FUNC(z8536_device::pa0_w)); + m_bus2->pren_callback().set(m_dma2, FUNC(z80dma_device::iei_w)); + m_bus2->trrq_callback().set(m_dma2, FUNC(z80dma_device::rdy_w)); // internal ram RAM(config, RAM_TAG).set_default_size("1M"); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/aci_prodigy.cpp mame-0.224+dfsg.1/src/mame/drivers/aci_prodigy.cpp --- mame-0.223+dfsg.1/src/mame/drivers/aci_prodigy.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/aci_prodigy.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -116,20 +116,14 @@ void shift_clock_w(int state); void shift_data_w(int state); - u8 m_select; - u8 m_led_data; - u8 m_shift_data; - u8 m_shift_clock; + u8 m_select = 0; + u8 m_led_data = 0; + u8 m_shift_data = 0; + u8 m_shift_clock = 0; }; void prodigy_state::machine_start() { - // zerofill - m_select = 0; - m_led_data = 0; - m_shift_data = 0; - m_shift_clock = 0; - // register for savestates save_item(NAME(m_select)); save_item(NAME(m_led_data)); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/altos486.cpp mame-0.224+dfsg.1/src/mame/drivers/altos486.cpp --- mame-0.223+dfsg.1/src/mame/drivers/altos486.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/altos486.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -237,6 +237,9 @@ ROM_REGION( 0x1000, "iocpu", 0 ) ROM_LOAD("16019_z80.bin", 0x0000, 0x1000, CRC(68b1b2e1) SHA1(5d83609a465029212d5e3f72ac9c520b3dbed838)) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "15020.bin", 0x0000, 0x0020, CRC(6a2bd961) SHA1(e9a9ed235574c9871dc32a80ff5ca4df6bd531e1) ) ROM_END COMP( 1984, altos486, 0, 0, altos486, 0, altos486_state, empty_init, "Altos Computer Systems", "Altos 486", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/amstrad.cpp mame-0.224+dfsg.1/src/mame/drivers/amstrad.cpp --- mame-0.223+dfsg.1/src/mame/drivers/amstrad.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/amstrad.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -86,7 +86,7 @@ - Implement full Asic for CPC+ emulation. Soft scroll is rather dodgy. - The KC Compact should not reuse the gate array functionality. Instead z8536 support should be added. (bug #42) - ******************************************************************************/ +******************************************************************************/ /* Core includes */ #include "emu.h" @@ -1327,5 +1327,5 @@ COMP( 1990, cpc464p, 0, 0, cpcplus, plus, amstrad_state, empty_init, "Amstrad plc", "Amstrad CPC464+", 0 ) COMP( 1990, cpc6128p, 0, 0, cpcplus, plus, amstrad_state, empty_init, "Amstrad plc", "Amstrad CPC6128+", 0 ) CONS( 1990, gx4000, 0, 0, gx4000, gx4000, amstrad_state, empty_init, "Amstrad plc", "Amstrad GX4000", 0 ) -COMP( 1989, kccomp, cpc464, 0, kccomp, kccomp, amstrad_state, empty_init, "VEB Mikroelektronik \"Wilhelm Pieck\" Muehlhausen", "KC Compact", 0 ) +COMP( 1989, kccomp, cpc464, 0, kccomp, kccomp, amstrad_state, empty_init, u8"VEB Mikroelektronik \"Wilhelm Pieck\" Mühlhausen", "KC Compact", 0 ) COMP( 1993, al520ex, cpc464, 0, aleste, aleste, amstrad_state, empty_init, "Patisonic", "Aleste 520EX", MACHINE_IMPERFECT_SOUND ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/apple2.cpp mame-0.224+dfsg.1/src/mame/drivers/apple2.cpp --- mame-0.223+dfsg.1/src/mame/drivers/apple2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/apple2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1408,6 +1408,7 @@ CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED); m_cassette->set_interface("apple2_cass"); + m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); } void apple2_state::apple2(machine_config &config) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/apple2e.cpp mame-0.224+dfsg.1/src/mame/drivers/apple2e.cpp --- mame-0.223+dfsg.1/src/mame/drivers/apple2e.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/apple2e.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -138,6 +138,7 @@ #include "bus/a2bus/a2cffa.h" #include "bus/a2bus/a2memexp.h" #include "bus/a2bus/a2scsi.h" +#include "bus/a2bus/cmsscsi.h" #include "bus/a2bus/a2hsscsi.h" #include "bus/a2bus/a2thunderclock.h" #include "bus/a2bus/a2softcard.h" @@ -3100,7 +3101,7 @@ map(0xc000, 0xc07f).rw(FUNC(apple2e_state::c000_iic_r), FUNC(apple2e_state::c000_iic_w)); map(0xc080, 0xc0ff).rw(FUNC(apple2e_state::c080_r), FUNC(apple2e_state::c080_w)); map(0xc098, 0xc09b).rw(m_acia1, FUNC(mos6551_device::read), FUNC(mos6551_device::write)); - map(0xc0a8, 0xc0ab).rw(IIC_ACIA2_TAG, FUNC(mos6551_device::read), FUNC(mos6551_device::write)); + map(0xc0a8, 0xc0ab).rw(m_acia2, FUNC(mos6551_device::read), FUNC(mos6551_device::write)); map(0xc100, 0xc2ff).m(m_c100bank, FUNC(address_map_bank_device::amap8)); map(0xc300, 0xc3ff).m(m_c300bank, FUNC(address_map_bank_device::amap8)); map(0xc400, 0xc7ff).m(m_c400bank, FUNC(address_map_bank_device::amap8)); @@ -3119,7 +3120,7 @@ map(0xc000, 0xc07f).rw(FUNC(apple2e_state::c000_iic_r), FUNC(apple2e_state::c000_iic_w)); map(0xc080, 0xc0ff).rw(FUNC(apple2e_state::c080_r), FUNC(apple2e_state::c080_w)); map(0xc098, 0xc09b).rw(m_acia1, FUNC(mos6551_device::read), FUNC(mos6551_device::write)); - map(0xc0a8, 0xc0ab).rw(IIC_ACIA2_TAG, FUNC(mos6551_device::read), FUNC(mos6551_device::write)); + map(0xc0a8, 0xc0ab).rw(m_acia2, FUNC(mos6551_device::read), FUNC(mos6551_device::write)); map(0xc0c0, 0xc0c3).rw(FUNC(apple2e_state::memexp_r), FUNC(apple2e_state::memexp_w)); map(0xc100, 0xc2ff).m(m_c100bank, FUNC(address_map_bank_device::amap8)); map(0xc300, 0xc3ff).m(m_c300bank, FUNC(address_map_bank_device::amap8)); @@ -3352,11 +3353,12 @@ static INPUT_PORTS_START( apple2_sysconfig ) PORT_START("a2_config") - PORT_CONFNAME(0x03, 0x00, "Composite monitor type") + PORT_CONFNAME(0x07, 0x00, "Monitor type") PORT_CONFSETTING(0x00, "Color") PORT_CONFSETTING(0x01, "B&W") PORT_CONFSETTING(0x02, "Green") PORT_CONFSETTING(0x03, "Amber") + PORT_CONFSETTING(0x04, "Video-7 RGB") PORT_CONFNAME(0x10, 0x00, "CPU type") PORT_CONFSETTING(0x00, "Standard") @@ -4497,6 +4499,7 @@ device.option_add("ceyes2", A2BUS_COMPUTEREYES2); /* ComputerEyes/2 Video Digitizer */ device.option_add("applesurance", A2BUS_APPLESURANCE); /* Applesurance Diagnostic Controller */ device.option_add("byte8251", A2BUS_BYTE8251); /* BYTE Magazine 8251 serial card */ + device.option_add("cmsscsi", A2BUS_CMSSCSI); /* CMS Apple II SCSI Card */ } static void apple2eaux_cards(device_slot_interface &device) @@ -4623,6 +4626,7 @@ CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED); + m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); } void apple2e_state::mprof3(machine_config &config) @@ -4691,10 +4695,12 @@ MOS6551(config, m_acia1, 0); m_acia1->set_xtal(XTAL(14'318'181) / 8); // ~1.789 MHz m_acia1->txd_handler().set(PRINTER_PORT_TAG, FUNC(rs232_port_device::write_txd)); + m_acia1->irq_handler().set(FUNC(apple2e_state::a2bus_irq_w)); MOS6551(config, m_acia2, 0); - m_acia2->set_xtal(XTAL(1'843'200)); // matches SSC so modem software is compatible + m_acia2->set_xtal(1.8432_MHz_XTAL); // matches SSC so modem software is compatible m_acia2->txd_handler().set("modem", FUNC(rs232_port_device::write_txd)); + m_acia2->irq_handler().set(FUNC(apple2e_state::a2bus_irq_w)); rs232_port_device &printer(RS232_PORT(config, PRINTER_PORT_TAG, default_rs232_devices, nullptr)); printer.rxd_handler().set(m_acia1, FUNC(mos6551_device::write_rxd)); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/apple2gs.cpp mame-0.224+dfsg.1/src/mame/drivers/apple2gs.cpp --- mame-0.223+dfsg.1/src/mame/drivers/apple2gs.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/apple2gs.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -79,6 +79,7 @@ #include "bus/a2bus/a2memexp.h" #include "bus/a2bus/a2scsi.h" #include "bus/a2bus/a2hsscsi.h" +#include "bus/a2bus/cmsscsi.h" #include "bus/a2bus/a2thunderclock.h" #include "bus/a2bus/a2softcard.h" #include "bus/a2bus/a2videoterm.h" @@ -106,6 +107,7 @@ //#include "bus/a2bus/pc_xporter.h" #include "bus/a2bus/byte8251.h" //#include "bus/a2bus/hostram.h" +//#include "bus/a2bus/ramfast.h" #include "bus/a2gameio/gameio.h" @@ -4566,6 +4568,8 @@ // device.option_add("pcxport", A2BUS_PCXPORTER); /* Applied Engineering PC Transporter */ device.option_add("byte8251", A2BUS_BYTE8251); /* BYTE Magazine 8251 serial card */ // device.option_add("hostram", A2BUS_HOSTRAM); /* Slot 7 RAM for GS Plus host protocol */ +// device.option_add("ramfast", A2BUS_RAMFAST); /* C.V. Technologies RAMFast SCSI card */ + device.option_add("cmsscsi", A2BUS_CMSSCSI); /* CMS Apple II SCSI Card */ } void apple2gs_state::apple2gs(machine_config &config) @@ -4615,8 +4619,7 @@ APPLE2_VIDEO(config, m_video, A2GS_14M).set_screen(m_screen); - APPLE2_COMMON(config, m_a2common, A2GS_14M); - m_a2common->set_GS_cputag(m_maincpu); + APPLE2_COMMON(config, m_a2common, A2GS_14M).set_GS_cputag(m_maincpu); // APPLE2_HOST(config, m_a2host, A2GS_14M); // m_a2host->set_cputag(m_maincpu); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/apple3.cpp mame-0.224+dfsg.1/src/mame/drivers/apple3.cpp --- mame-0.223+dfsg.1/src/mame/drivers/apple3.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/apple3.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -26,6 +26,7 @@ #include "bus/a2bus/a2thunderclock.h" #include "bus/a2bus/mouse.h" #include "bus/a2bus/a2zipdrive.h" +#include "bus/a2bus/cmsscsi.h" #include "bus/rs232/rs232.h" @@ -46,6 +47,7 @@ device.option_add("thclock", A2BUS_THUNDERCLOCK); // ThunderWare ThunderClock Plus - driver assumes slot 2 by default device.option_add("mouse", A2BUS_MOUSE); // Apple II Mouse Card device.option_add("focusdrive", A2BUS_FOCUSDRIVE); // Focus Drive IDE card + device.option_add("cmsscsi", A2BUS_CMSSCSI); // CMS Apple II SCSI Card } static void a3_floppies(device_slot_interface &device) @@ -354,7 +356,11 @@ ROM_START(apple3) ROM_REGION(0x1000,"maincpu",0) - ROM_LOAD( "apple3.rom", 0x0000, 0x1000, CRC(55e8eec9) SHA1(579ee4cd2b208d62915a0aa482ddc2744ff5e967)) + ROM_SYSTEM_BIOS(0, "soshd", "Rob Justice SOSHDBOOT") + ROMX_LOAD( "soshdboot.bin", 0x000000, 0x001000, CRC(fd5ac9e2) SHA1(ba466a54ddb7f618c4f18f344754343c5945b417), ROM_BIOS(0)) + + ROM_SYSTEM_BIOS(1, "original", "Apple /// boot ROM") + ROMX_LOAD( "apple3.rom", 0x0000, 0x1000, CRC(55e8eec9) SHA1(579ee4cd2b208d62915a0aa482ddc2744ff5e967), ROM_BIOS(1)) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ diff -Nru mame-0.223+dfsg.1/src/mame/drivers/atari_s1.cpp mame-0.224+dfsg.1/src/mame/drivers/atari_s1.cpp --- mame-0.223+dfsg.1/src/mame/drivers/atari_s1.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/atari_s1.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -531,7 +531,16 @@ ROM_LOAD("608.bin", 0x7800, 0x0800, CRC(28b92faf) SHA1(8585770f4059049f1dcbc0c6ef5718b6ff1a5431)) ROM_REGION(0x0200, "proms", 0) - ROM_LOAD("82s130.bin", 0x0000, 0x0200, CRC(da1f77b4) SHA1(b21fdc1c6f196c320ec5404013d672c35f95890b)) + ROM_LOAD("20252-01.bin", 0x0000, 0x0200, CRC(3d44551d) SHA1(926100f8169ab20230ad2168f94e6ad65fb1a7dc)) +ROM_END + +ROM_START(mideartha) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD("20855-01.bin", 0x7000, 0x0800, CRC(4a9d47ca) SHA1(57c4458822109c3ba2fa53ac1c1cd6e169e51b24)) + ROM_LOAD("20856-01.bin", 0x7800, 0x0800, CRC(8f119e37) SHA1(5a4d63605865f3ceca4c09dbdcd888498c615b89)) + + ROM_REGION(0x0200, "proms", 0) + ROM_LOAD("20252-01.bin", 0x0000, 0x0200, CRC(3d44551d) SHA1(926100f8169ab20230ad2168f94e6ad65fb1a7dc)) ROM_END /*------------------------------------------------------------------- @@ -547,8 +556,9 @@ ROM_END -GAME( 1976, atarians, 0, atarians, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "The Atarians", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1977, time2000, 0, atari_s1, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Time 2000", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1977, aavenger, 0, atari_s1, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Airborne Avenger", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1978, midearth, 0, midearth, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Middle Earth", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1978, spcrider, 0, atari_s1, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Space Riders", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1976, atarians, 0, atarians, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "The Atarians", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1977, time2000, 0, atari_s1, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Time 2000", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1977, aavenger, 0, atari_s1, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Airborne Avenger", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1978, midearth, 0, midearth, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Middle Earth", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1978, mideartha, midearth, midearth, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Middle Earth (alternate)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1978, spcrider, 0, atari_s1, atari_s1, atari_s1_state, empty_init, ROT0, "Atari", "Space Riders", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/atarittl.cpp mame-0.224+dfsg.1/src/mame/drivers/atarittl.cpp --- mame-0.223+dfsg.1/src/mame/drivers/atarittl.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/atarittl.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -56,12 +56,10 @@ netlist system per-game: TM-057 (Stunt Cycle) - 566 Voltage-Controlled Oscillator 1N751A Zener Diode 1N752A Zener Diode TM-055 (Indy 4) - 7406 Hex Inverter Buffers/Drivers with O.C. H.V. Outputs (note: Might not be needed, could just clone from 7404) 7417 Hex Buffers/Drivers 9301 1-of-10 Decoder LM339 Quad Comparator @@ -72,8 +70,10 @@ #include "emu.h" #include "machine/netlist.h" +#include "netlist/nl_setup.h" #include "machine/nl_stuntcyc.h" #include "machine/nl_gtrak10.h" +#include "machine/nl_tank.h" #include "netlist/devices/net_lib.h" #include "video/fixfreq.h" #include "screen.h" @@ -85,12 +85,12 @@ #define V_TOTAL (0x105+1) // 262 #define H_TOTAL (0x1C6+1) // 454 -#define HBSTART (H_TOTAL) -#define HBEND (32) -#define VBSTART (V_TOTAL) -#define VBEND (16) +#define HBSTART (H_TOTAL) +#define HBEND (32) +#define VBSTART (V_TOTAL) +#define VBEND (16) -#define HRES_MULT (1) +#define HRES_MULT (1) // end #define SC_VIDCLOCK (14318000/2) @@ -101,6 +101,10 @@ #define SC_VBSTART (SC_VTOTAL) #define SC_VBEND (8) +#define TANK_VIDCLOCK (14318181) +#define TANK_HTOTAL (952) +#define TANK_VTOTAL (262) + #define GTRAK10_VIDCLOCK 14318181 #define GTRAK10_HTOTAL 451 #define GTRAK10_VTOTAL 521 @@ -120,16 +124,6 @@ required_device m_video; void atarikee(machine_config &config); -protected: - - // driver_device overrides - virtual void machine_start() override; - virtual void machine_reset() override; - - virtual void video_start() override; - -private: - }; class stuntcyc_state : public driver_device @@ -143,11 +137,23 @@ } void stuntcyc(machine_config &config); -protected: - // driver_device overrides - virtual void machine_start() override; - virtual void machine_reset() override; +private: + required_device m_maincpu; + required_device m_video; +}; + +class tank_state : public driver_device +{ +public: + tank_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_video(*this, "fixfreq") + { + } + + void tank(machine_config &config); private: required_device m_maincpu; @@ -182,26 +188,6 @@ NETLIST_END() -void atarikee_state::machine_start() -{ -} - -void atarikee_state::machine_reset() -{ -} - -void atarikee_state::video_start() -{ -} - -void stuntcyc_state::machine_start() -{ -} - -void stuntcyc_state::machine_reset() -{ -} - void atarikee_state::atarikee(machine_config &config) { /* basic machine hardware */ @@ -217,7 +203,6 @@ m_video->set_threshold(0.30); } -//#define STUNTCYC_NL_CLOCK (14318181*69) #define STUNTCYC_NL_CLOCK (SC_HTOTAL*SC_VTOTAL*60*140) void stuntcyc_state::stuntcyc(machine_config &config) @@ -241,6 +226,38 @@ m_video->set_horz_scale(4); } +void tank_state::tank(machine_config &config) +{ + /* basic machine hardware */ + NETLIST_CPU(config, m_maincpu, netlist::config::DEFAULT_CLOCK()).set_source(NETLIST_NAME(tank)); + NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome)); + NETLIST_LOGIC_INPUT(config, "maincpu:p1lup", "P1_LEFT_UP.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p1ldown", "P1_LEFT_DOWN.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p1rup", "P1_RIGHT_UP.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p1rdown", "P1_RIGHT_DOWN.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p2lup", "P2_LEFT_UP.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p2ldown", "P2_LEFT_DOWN.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p2rup", "P2_RIGHT_UP.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p2rdown", "P2_RIGHT_DOWN.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p1fire", "P1_FIRE.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:p2fire", "P2_FIRE.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:coin1", "COIN1.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:coin2", "COIN2.POS", 0); + + /* video hardware */ + SCREEN(config, "screen", SCREEN_TYPE_RASTER); + FIXFREQ(config, m_video).set_screen("screen"); + m_video->set_monitor_clock(TANK_VIDCLOCK); + // Length of active video, end of front-porch, end of sync signal, end of back porch + m_video->set_horz_params(776, 776, 808, 904); + m_video->set_vert_params(512, 512, 520, 520); + m_video->set_fieldcount(2); + m_video->set_threshold(1.0); + m_video->set_vsync_threshold(0.3); + m_video->set_gain(0.47); + m_video->set_horz_scale(3); +} + void gtrak10_state::gtrak10(machine_config &config) { /* basic machine hardware */ @@ -286,12 +303,30 @@ INPUT_PORTS_END static INPUT_PORTS_START( stuntcyc ) - PORT_START("IN0") /* fake */ + PORT_START("IN0") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN1) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coinsw") PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START1) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw1") PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_START2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw2") INPUT_PORTS_END +static INPUT_PORTS_START( tank ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1lup") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1ldown") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rup") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rdown") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1lup") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1ldown") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rup") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1rdown") + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p1fire") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) NETLIST_LOGIC_PORT_CHANGED("maincpu", "p2fire") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coin1") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coin2") +INPUT_PORTS_END + /*************************************************************************** Game driver(s) @@ -486,7 +521,7 @@ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) /* The "custom" 24-pin ROM used in Atari/Kee Games "Tank" is known as a MOSTEK MK28000P. */ - ROM_REGION( 0x0801, "gfx", ROMREGION_ERASE00 ) + ROM_REGION( 0x0801, "maincpu:gfx", ROMREGION_ERASE00 ) ROM_LOAD( "90-2006.k10", 0x0000, 0x0800, CRC(87f5c365) SHA1(bc518a5795ef3ed8a7c0463653d70f60780ddda1) ) ROM_END @@ -596,7 +631,7 @@ GAME(1975, sharkjaw, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Horror Games", "Shark JAWS [TTL]", MACHINE_IS_SKELETON) GAME(1975, steeplec, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari", "Steeplechase [TTL]", MACHINE_IS_SKELETON) GAME(1976, stuntcyc, 0, stuntcyc, stuntcyc, stuntcyc_state, empty_init, ROT0, "Atari", "Stunt Cycle [TTL]", MACHINE_IS_SKELETON) -GAME(1974, tank, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_IS_SKELETON) +GAME(1974, tank, 0, tank, tank, tank_state, empty_init, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) GAME(1975, tankii, 0, atarikee, 0, atarikee_state, empty_init, ROT0, "Atari/Kee", "Tank II [TTL]", MACHINE_IS_SKELETON) // MISSING ROM DUMPS diff -Nru mame-0.223+dfsg.1/src/mame/drivers/atom.cpp mame-0.224+dfsg.1/src/mame/drivers/atom.cpp --- mame-0.223+dfsg.1/src/mame/drivers/atom.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/atom.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -110,13 +110,16 @@ * A 5v DC input is added in addition to the standard power in (but this may be a later upgrade), * The Utility ROM is labelled P2/FP is installed + - Cassette UEF not working - all data blocks overwrite each other at 0000 in ram + + */ #include "emu.h" #include "includes/atom.h" +#include "machine/clock.h" #include "formats/imageutl.h" #include "screen.h" -#include "softlist.h" #include "speaker.h" /*************************************************************************** @@ -150,7 +153,6 @@ */ uint8_t header[0x16] = { 0 }; - void *ptr; image.fread(header, 0x16); @@ -160,17 +162,28 @@ if (LOG) { - header[16] = 0; - logerror("ATM filename: %s\n", header); + char pgmname[17]; + for (u8 i = 0; i < 16; i++) + pgmname[i] = header[i]; + pgmname[16] = 0; + logerror("ATM filename: %s\n", pgmname); logerror("ATM start address: %04x\n", start_address); logerror("ATM run address: %04x\n", run_address); logerror("ATM size: %04x\n", size); } - ptr = m_maincpu->space(AS_PROGRAM).get_write_ptr(start_address); + void *ptr = m_maincpu->space(AS_PROGRAM).get_write_ptr(start_address); image.fread(ptr, size); - m_maincpu->set_pc(run_address); + if (run_address == 0xc2b2) + { + address_space &space = m_maincpu->space(AS_PROGRAM); + u16 end_address = start_address + size; + space.write_byte(13, end_address); + space.write_byte(14, end_address >> 8); + } + else + m_maincpu->set_state_int(M6502_PC, run_address); // if not basic, autostart program (set_pc doesn't work) return image_init_result::PASS; } @@ -233,7 +246,8 @@ { if (m_e0->exists() && !BIT(m_eprom, 7)) return m_e0->read_rom(offset); - else if (m_e1->exists() && BIT(m_eprom, 7)) + else + if (m_e1->exists() && BIT(m_eprom, 7)) return m_e1->read_rom(offset); else return 0xff; @@ -250,17 +264,15 @@ void atom_state::atom_mem(address_map &map) { - map(0x0000, 0x09ff).ram(); + map(0x0000, 0x9fff).ram(); map(0x0a00, 0x0a03).mirror(0x1f8).m(m_fdc, FUNC(i8271_device::map)); map(0x0a04, 0x0a04).mirror(0x1f8).rw(m_fdc, FUNC(i8271_device::data_r), FUNC(i8271_device::data_w)); - map(0x0a05, 0x7fff).ram(); - map(0x8000, 0x97ff).ram().share("video_ram"); - map(0x9800, 0x9fff).ram(); + map(0x8000, 0x97ff).ram().share("videoram"); // map(0xa000, 0xafff) // mapped by the cartslot - map(0xb000, 0xb003).mirror(0x3fc).rw(INS8255_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0xb000, 0xb003).mirror(0x3fc).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write)); // map(0xb400, 0xb403).rw(MC6854_TAG, FUNC(mc6854_device::read), FUNC(mc6854_device::write)); // map(0xb404, 0xb404).portr("ECONET"); - map(0xb800, 0xb80f).mirror(0x3f0).m(R6522_TAG, FUNC(via6522_device::map)); + map(0xb800, 0xb80f).mirror(0x3f0).m(m_via, FUNC(via6522_device::map)); map(0xc000, 0xffff).rom().region(SY6502_TAG, 0); } @@ -283,9 +295,9 @@ void atom_state::atombb_mem(address_map &map) { map(0x0000, 0x3fff).ram(); - map(0x4000, 0x57ff).ram().share("video_ram"); - map(0x7000, 0x7003).mirror(0x3fc).rw(INS8255_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)); - map(0x7800, 0x780f).mirror(0x3f0).m(R6522_TAG, FUNC(via6522_device::map)); + map(0x4000, 0x57ff).ram().share("videoram"); + map(0x7000, 0x7003).mirror(0x3fc).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x7800, 0x780f).mirror(0x3f0).m(m_via, FUNC(via6522_device::map)); map(0x8000, 0xbfff).rom().region("basic", 0); map(0xf000, 0xffff).rom().region(SY6502_TAG, 0); } @@ -296,13 +308,11 @@ void atom_state::prophet_mem(address_map &map) { - map(0x0000, 0x09ff).ram(); - map(0x0a00, 0x7fff).ram(); - map(0x8000, 0x97ff).ram().share("video_ram"); - map(0x9800, 0x9fff).ram(); + map(0x0000, 0x9fff).ram(); + map(0x8000, 0x97ff).ram().share("videoram"); map(0xa000, 0xafff).rom().region("ic24", 0); - map(0xb000, 0xb003).mirror(0x3fc).rw(INS8255_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)); - map(0xb800, 0xb80f).mirror(0x3f0).m(R6522_TAG, FUNC(via6522_device::map)); + map(0xb000, 0xb003).mirror(0x3fc).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0xb800, 0xb80f).mirror(0x3f0).m(m_via, FUNC(via6522_device::map)); map(0xc000, 0xffff).rom().region(SY6502_TAG, 0); } @@ -316,7 +326,12 @@ INPUT_CHANGED_MEMBER( atom_state::trigger_reset ) { - m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE); + if (newval) + { + m_ppi->reset(); + m_via->reset(); + m_maincpu->reset(); + } } /*------------------------------------------------- @@ -331,8 +346,6 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_TILDE) PORT_CHAR(UCHAR_MAMEKEY(ESC)) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -341,8 +354,6 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x87\x95") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) @@ -351,8 +362,6 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x87\x94") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) @@ -361,18 +370,14 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_TOGGLE + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DELETE") PORT_CODE(KEYCODE_DEL) PORT_CHAR(8) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR('^') @@ -381,8 +386,6 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(']') @@ -391,8 +394,6 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('\\') @@ -401,8 +402,6 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y8") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('[') @@ -411,8 +410,6 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y9") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(32) @@ -421,21 +418,13 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("Y10") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_START("RPT") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("REPT") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) + PORT_START("Y11") + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("REPT") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) PORT_START("BRK") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BREAK") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) PORT_CHANGED_MEMBER(DEVICE_SELF, atom_state, trigger_reset, 0) @@ -496,23 +485,12 @@ */ - uint8_t data = 0xff; + uint8_t data = 0x3f; - switch (m_keylatch) - { - case 0: data &= m_y0->read(); break; - case 1: data &= m_y1->read(); break; - case 2: data &= m_y2->read(); break; - case 3: data &= m_y3->read(); break; - case 4: data &= m_y4->read(); break; - case 5: data &= m_y5->read(); break; - case 6: data &= m_y6->read(); break; - case 7: data &= m_y7->read(); break; - case 8: data &= m_y8->read(); break; - case 9: data &= m_y9->read(); break; - } + if (m_keylatch < 10) + data = m_io_keyboard[m_keylatch]->read(); - data &= m_y10->read(); + data |= m_io_keyboard[10]->read(); return data; } @@ -534,19 +512,17 @@ */ - uint8_t data = 0; - /* 2400 Hz input */ - data |= m_hz2400 << 4; + u8 data = m_hz2400 ? 0x10 : 0; /* cassette input */ - data |= (m_cassette->input() > 0.0) << 5; + data |= (m_cassette->input() > 0.02) << 5; /* keyboard RPT */ - data |= BIT(m_rpt->read(), 0) << 6; + data |= m_io_keyboard[11]->read(); /* MC6847 FS */ - data |= (m_vdg->fs_r() ? 1 : 0) << 7; + data |= m_vdg->fs_r() ? 0x80 : 0; return data; } @@ -591,7 +567,7 @@ is cleared this will not cause another nmi */ /* I'll emulate it like this to be sure */ - if (state!=m_previous_i8271_int_state) + if (state != m_previous_i8271_int_state) { if (state) { @@ -606,23 +582,23 @@ WRITE_LINE_MEMBER( atom_state::motor_w ) { - for (int i=0; i != 2; i++) { + for (u8 i = 0; i < 2; i++) + { char devname[8]; sprintf(devname, "%d", i); floppy_connector *con = m_fdc->subdevice(devname); - if (con) { + if (con) con->get_device()->mon_w(!state); - } } } -TIMER_DEVICE_CALLBACK_MEMBER(atom_state::cassette_output_tick) +WRITE_LINE_MEMBER(atom_state::cassette_output_tick) { - int level = !(!(!m_hz2400 && m_pc1) && m_pc0); + m_hz2400 = state; - m_cassette->output(level ? -1.0 : +1.0); + bool level = m_pc0 && !(m_pc1 && !m_hz2400); - m_hz2400 = !m_hz2400; + m_cassette->output(level ? -1.0 : +1.0); } /*------------------------------------------------- @@ -633,11 +609,11 @@ { if (offset == ~0) return 0xff; - m_vdg->as_w(BIT(m_video_ram[offset], 6)); - m_vdg->intext_w(BIT(m_video_ram[offset], 6)); - m_vdg->inv_w(BIT(m_video_ram[offset], 7)); + m_vdg->as_w(BIT(m_vram[offset], 6)); + m_vdg->intext_w(BIT(m_vram[offset], 6)); + m_vdg->inv_w(BIT(m_vram[offset], 7)); - return m_video_ram[offset]; + return m_vram[offset]; } /*************************************************************************** @@ -664,6 +640,12 @@ if (m_cart.found() && m_cart->exists()) m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xafff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom))); + + save_item(NAME(m_keylatch)); + save_item(NAME(m_hz2400)); + save_item(NAME(m_pc0)); + save_item(NAME(m_pc1)); + save_item(NAME(m_previous_i8271_int_state)); } /*------------------------------------------------- @@ -673,6 +655,22 @@ void atomeb_state::machine_start() { atom_state::machine_start(); + save_item(NAME(m_eprom)); +} + +void atom_state::machine_reset() +{ + m_keylatch = 0; + m_hz2400 = 0; + m_pc0 = 0; + m_pc1 = 0; + m_previous_i8271_int_state = 0; +} + +void atomeb_state::machine_reset() +{ + atom_state::machine_reset(); + m_eprom = 0; } /*************************************************************************** @@ -708,46 +706,40 @@ MACHINE_DRIVER( atom ) -------------------------------------------------*/ -void atom_state::atom(machine_config &config) +void atom_state::atom_common(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, X2/4); - m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atom_mem); /* video hardware */ - SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER); + SCREEN(config, "screen", SCREEN_TYPE_RASTER); MC6847_PAL(config, m_vdg, XTAL(4'433'619)); m_vdg->input_callback().set(FUNC(atom_state::vdg_videoram_r)); - m_vdg->set_screen(SCREEN_TAG); + m_vdg->set_screen("screen"); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00); /* devices */ - TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806)); + clock_device &cass_clock(CLOCK(config, "cass_clock", X2/16/13/8)); + cass_clock.signal_handler().set(FUNC(atom_state::cassette_output_tick)); // 2403.846Hz - via6522_device &via(VIA6522(config, R6522_TAG, X2/4)); - via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); - via.ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); - via.irq_handler().set_inputline(SY6502_TAG, M6502_IRQ_LINE); - - i8255_device &ppi(I8255(config, INS8255_TAG)); - ppi.out_pa_callback().set(FUNC(atom_state::ppi_pa_w)); - ppi.in_pb_callback().set(FUNC(atom_state::ppi_pb_r)); - ppi.in_pc_callback().set(FUNC(atom_state::ppi_pc_r)); - ppi.out_pc_callback().set(FUNC(atom_state::ppi_pc_w)); - - I8271(config, m_fdc, 0); - m_fdc->intrq_wr_callback().set(FUNC(atom_state::atom_8271_interrupt_callback)); - m_fdc->hdl_wr_callback().set(FUNC(atom_state::motor_w)); - FLOPPY_CONNECTOR(config, I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true); - FLOPPY_CONNECTOR(config, I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true); + VIA6522(config, m_via, X2/4); + m_via->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); + m_via->ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); + m_via->irq_handler().set_inputline(SY6502_TAG, M6502_IRQ_LINE); + + I8255(config, m_ppi); + m_ppi->out_pa_callback().set(FUNC(atom_state::ppi_pa_w)); + m_ppi->in_pb_callback().set(FUNC(atom_state::ppi_pb_r)); + m_ppi->in_pc_callback().set(FUNC(atom_state::ppi_pc_r)); + m_ppi->out_pc_callback().set(FUNC(atom_state::ppi_pc_w)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); - m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1)); - m_centronics->busy_handler().set(R6522_TAG, FUNC(via6522_device::write_pa7)); + m_centronics->ack_handler().set(m_via, FUNC(via6522_device::write_ca1)); + m_centronics->busy_handler().set(m_via, FUNC(via6522_device::write_pa7)); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(cent_data_out); @@ -757,8 +749,20 @@ m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); m_cassette->set_formats(atom_cassette_formats); m_cassette->set_interface("atom_cass"); +} + +void atom_state::atom(machine_config &config) +{ + atom_common(config); + m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atom_mem); + + I8271(config, m_fdc, 0); + m_fdc->intrq_wr_callback().set(FUNC(atom_state::atom_8271_interrupt_callback)); + m_fdc->hdl_wr_callback().set(FUNC(atom_state::motor_w)); + FLOPPY_CONNECTOR(config, I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true); - QUICKLOAD(config, "quickload", "atm").set_load_callback(FUNC(atom_state::quickload_cb)); + QUICKLOAD(config, "quickload", "atm", attotime::from_seconds(2)).set_load_callback(FUNC(atom_state::quickload_cb)); /* utility rom slot */ GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atom_state::cart_load)); @@ -777,7 +781,7 @@ -------------------------------------------------*/ #define ATOM_ROM(_tag, _load) \ - GENERIC_SOCKET(config, _tag, generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atomeb_state::_load)) \ + GENERIC_SOCKET(config, _tag, generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atomeb_state::_load)) void atomeb_state::atomeb(machine_config &config) { @@ -814,46 +818,9 @@ void atom_state::atombb(machine_config &config) { - /* basic machine hardware */ - M6502(config, m_maincpu, X2/4); - m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atombb_mem); - - /* video hardware */ - SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER); - - MC6847_PAL(config, m_vdg, XTAL(4'433'619)); - m_vdg->input_callback().set(FUNC(atom_state::vdg_videoram_r)); - m_vdg->set_screen(SCREEN_TAG); + atom_common(config); - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00); - - /* devices */ - TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806)); - - via6522_device &via(VIA6522(config, R6522_TAG, X2/4)); - via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); - via.ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); - via.irq_handler().set_inputline(SY6502_TAG, M6502_IRQ_LINE); - - i8255_device &ppi(I8255(config, INS8255_TAG)); - ppi.out_pa_callback().set(FUNC(atom_state::ppi_pa_w)); - ppi.in_pb_callback().set(FUNC(atom_state::ppi_pb_r)); - ppi.in_pc_callback().set(FUNC(atom_state::ppi_pc_r)); - ppi.out_pc_callback().set(FUNC(atom_state::ppi_pc_w)); - - CENTRONICS(config, m_centronics, centronics_devices, "printer"); - m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1)); - m_centronics->busy_handler().set(R6522_TAG, FUNC(via6522_device::write_pa7)); - - output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); - m_centronics->set_output_latch(cent_data_out); - - CASSETTE(config, m_cassette); - m_cassette->set_formats(atom_cassette_formats); - m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); - m_cassette->set_interface("atom_cass"); + m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atombb_mem); /* internal ram */ RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("8K,12K"); @@ -972,9 +939,9 @@ ***************************************************************************/ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, atom, 0, 0, atom, atom, atom_state, empty_init, "Acorn", "Atom", 0) -COMP( 1979, atomeb, atom, 0, atomeb, atom, atomeb_state, empty_init, "Acorn", "Atom with Eprom Box", 0) -COMP( 1982, atombb, atom, 0, atombb, atom, atom_state, empty_init, "Acorn", "Atom with BBC Basic", 0) -//COMP( 1983, prophet2, atom, 0, prophet2, atom, driver_device, empty_init, "Busicomputers", "Prophet 2", 0) -//COMP( 1983, prophet3, atom, 0, prophet3, atom, driver_device, empty_init, "Busicomputers", "Prophet 3", 0) -//COMP( 2011, atommc, atom, 0, atommc, atom, driver_device, empty_init, "Acorn", "Atom with AtoMMC2", 0) +COMP( 1979, atom, 0, 0, atom, atom, atom_state, empty_init, "Acorn", "Atom", MACHINE_SUPPORTS_SAVE ) +COMP( 1979, atomeb, atom, 0, atomeb, atom, atomeb_state, empty_init, "Acorn", "Atom with Eprom Box", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, atombb, atom, 0, atombb, atom, atom_state, empty_init, "Acorn", "Atom with BBC Basic", MACHINE_SUPPORTS_SAVE ) +//COMP( 1983, prophet2, atom, 0, prophet2, atom, driver_device, empty_init, "Busicomputers", "Prophet 2", MACHINE_SUPPORTS_SAVE ) +//COMP( 1983, prophet3, atom, 0, prophet3, atom, driver_device, empty_init, "Busicomputers", "Prophet 3", MACHINE_SUPPORTS_SAVE ) +//COMP( 2011, atommc, atom, 0, atommc, atom, driver_device, empty_init, "Acorn", "Atom with AtoMMC2", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/atronic.cpp mame-0.224+dfsg.1/src/mame/drivers/atronic.cpp --- mame-0.223+dfsg.1/src/mame/drivers/atronic.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/atronic.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -359,7 +359,7 @@ required_device m_videocpu; required_device m_ramdac; - required_shared_ptr m_vidram; + required_shared_ptr m_vidram; TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg); TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg); @@ -422,17 +422,19 @@ TMS340X0_SCANLINE_RGB32_CB_MEMBER(atronic_state::scanline_update) { - uint32_t fulladdr = ((params->rowaddr << 16) | params->coladdr) >> 4; - uint16_t* bg0_base = &m_vidram[(fulladdr & 0xffc00)]; // this probably isn't screen ram, but some temp gfx are copied on startup + uint32_t fulladdr = ((params->rowaddr << 16) | params->coladdr) >> 5; + uint32_t* bg0_base = &m_vidram[(fulladdr & 0x7fe00)]; // this probably isn't screen ram, but some temp gfx are copied on startup uint32_t* dst = &bitmap.pix32(scanline); - int coladdr = fulladdr & 0x3ff; + int coladdr = fulladdr & 0x1ff; const pen_t *pens = m_palette->pens(); - for (int x = params->heblnk; x < params->hsblnk; x += 2, coladdr++) + for (int x = params->heblnk; x < params->hsblnk; x += 4, coladdr++) { - uint16_t bg0pix = bg0_base[coladdr & 0x3ff]; - dst[x + 0] = pens[(bg0pix & 0x00ff)]; - dst[x + 1] = pens[(bg0pix & 0xff00) >> 8]; + uint32_t bg0pix = bg0_base[coladdr & 0x1ff]; + dst[x + 0] = pens[(bg0pix & 0x000000ff)]; + dst[x + 1] = pens[(bg0pix & 0x0000ff00) >> 8]; + dst[x + 2] = pens[(bg0pix & 0x00ff0000) >> 16]; + dst[x + 3] = pens[(bg0pix & 0xff000000) >> 24]; } } @@ -440,9 +442,9 @@ { map(0x00000000, 0x01ffffff).ram().share("vidram"); - map(0xa0000010, 0xa000001f).w(m_ramdac, FUNC(ramdac_device::index_w)).umask16(0x00ff); - map(0xa0000020, 0xa000002f).w(m_ramdac, FUNC(ramdac_device::pal_w)).umask16(0x00ff); - map(0xa0000030, 0xa000003f).w(m_ramdac, FUNC(ramdac_device::mask_w)).umask16(0x00ff); + map(0xa0000000, 0xa000001f).w(m_ramdac, FUNC(ramdac_device::index_w)).umask32(0x00ff0000); + map(0xa0000020, 0xa000003f).w(m_ramdac, FUNC(ramdac_device::pal_w)).umask32(0x000000ff); + map(0xa0000020, 0xa000003f).w(m_ramdac, FUNC(ramdac_device::mask_w)).umask32(0x00ff0000); map(0xfc000000, 0xffffffff).rom().region("user1", 0); } @@ -503,7 +505,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "atronic u6.bin", 0x0000, 0x020000, CRC(9742b2d8) SHA1(9f5851c78f92055730b834de18f8dc7bd9b29a37) ) - ROM_REGION16_LE( 0x800000, "user1", ROMREGION_ERASE00 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", ROMREGION_ERASE00 ) /* TMS34020APCM-40 code (34020) */ ROM_REGION( 0x400000, "u18u21",ROMREGION_ERASE00 ) // sound ROM_REGION( 0x400000, "pals",ROMREGION_ERASE00 ) // pal (converted from JED) @@ -518,7 +520,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "atronic u6 std.bin", 0x0000, 0x020000, CRC(9ef7ae79) SHA1(3ed0ea056b23cee8829421c2369ff869b370ee80) ) - ROM_REGION16_LE( 0x800000, "user1", ROMREGION_ERASE00 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", ROMREGION_ERASE00 ) /* TMS34020APCM-40 code (34020) */ ROM_REGION( 0x400000, "u18u21",ROMREGION_ERASE00 ) // sound ROM_REGION( 0x400000, "pals",ROMREGION_ERASE00 ) // pal (converted from JED) ROM_END @@ -532,7 +534,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6.1 atla01-a-zb-std-5-xx-xx-axx", 0x0000, 0x020000, CRC(5d09a4bf) SHA1(94aea5396a968ff659ac9e2f4879262c55eba2fe) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9.8 atla01-a-e-std-5", 0x000000, 0x100000, CRC(7f8210fa) SHA1(f71faee0d606c6aa06287f6ea31f41727e2a22d9) ) ROM_LOAD32_BYTE( "u11.8 atla01-a-e-std-5", 0x000001, 0x100000, CRC(af648717) SHA1(8ab57dc9962ed47a8beb03dcfc686c57de326793) ) ROM_LOAD32_BYTE( "u13.8 atla01-a-e-std-5", 0x000002, 0x100000, CRC(6e89bf2b) SHA1(0c3346a5da6c67bf2ef38cf657860dccb03a0461) ) @@ -560,7 +562,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6.1 atla01-a-zb-std-5-xx-xx-axx", 0x0000, 0x020000, CRC(5d09a4bf) SHA1(94aea5396a968ff659ac9e2f4879262c55eba2fe) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(1c51f9e1) SHA1(9300c80409f28ba55b94b93a3359fac732262b27) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(b2b1f41f) SHA1(7551c7acc5c6c26b672e4a42d847ec9af79b50fe) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(515820fa) SHA1(2f5def7145b45f8cd63d5463880a548e58e2b2d3) ) @@ -589,7 +591,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(8b0ccfd2) SHA1(abdc59ebddc9e4fc3aa5b723a746de1419f7d6e7) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(1a5d8a4f) SHA1(ff8160f000ecb032831ef4320b686fdd37c19bc9) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(713e18c9) SHA1(eb14213101c3ee09601bf01000631c3a2509e876) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(dfbc8c2f) SHA1(1ae2dcd572fa5fc31be5cdb7d6de2bced06ff94e) ) @@ -614,7 +616,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6.bin", 0x0000, 0x020000, CRC(63690e7e) SHA1(9dcb3d64bae03556875185ead23d9b911773f5bd) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9.bin", 0x000000, 0x100000, CRC(d1c2ad08) SHA1(e53c7e91b2ab86e64f4ae753404aa86ae881becf) ) ROM_LOAD32_BYTE( "u11.bin", 0x000001, 0x100000, CRC(42872aef) SHA1(54d7cf6a9f3d5d8b2b14fa381fd7b9db974525e1) ) ROM_LOAD32_BYTE( "u13.bin", 0x000002, 0x100000, CRC(7da9415b) SHA1(aaa73465417dcf92838021b37cb412d52ccb4d85) ) @@ -639,7 +641,7 @@ ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(0db0531d) SHA1(391e41b2dcd38669dcc24e938e9838feee972559) ) ROM_LOAD( "u6low-10.bin", 0x0000, 0x020000, CRC(3cbad206) SHA1(d2a468d5bfd441b74ef85be088873d1f74d5c66e) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(37b3a499) SHA1(eb3252185596dd513d3cce95f3425241ca8513ab) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(d98b2b1d) SHA1(414d300d113e9737d63efea09b358aeb8eeed7fc) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(478bb4a5) SHA1(94304fe1477bfc66e8dcf2c2c91226754cb8c32a) ) @@ -664,7 +666,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(3cbad206) SHA1(d2a468d5bfd441b74ef85be088873d1f74d5c66e) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(19a47a1b) SHA1(ae9ad2027fddf96062833345a5e2b9e7101b3380) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(7d805f07) SHA1(0bb27a702e45d3d660363ac75c0f52f07248d40a) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(104110dc) SHA1(9322598a94e3c71f546da3b42f137a22fc78a894) ) @@ -689,7 +691,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(bac68023) SHA1(fdc5d540ceb4a2d44013dfd59b46103ec6745dea) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(1109b7d6) SHA1(c0f6f5d56ee95982688b595894a2985ef53629e7) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(5a1449f6) SHA1(3903858239223c37615f12a8db6a8e873722e34c) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(e1081c7a) SHA1(dd6390d64cda9af93093092361ca24b551d82549) ) @@ -714,7 +716,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(ab86b3d4) SHA1(b0d32887674f971a3ccd482775ec3f978a2ea0c1) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(8bcbb27f) SHA1(d953268213580af11a2cc0dbd8bf1652f97f3929) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(73fb3169) SHA1(8bbe5d8b8898e2d3368506e7b66d05b8f8ac7d02) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(47580998) SHA1(37a6e409618aa3fe7d24bd3580fa93269895b059) ) @@ -740,7 +742,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(94409a39) SHA1(99af058e48147fc75a8c23e4f1a28484f3d5f625) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(01e69d2d) SHA1(a6e6974aec52931aeeb1f90d8f917ab85ebe843e) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(6c39a180) SHA1(95f91ec10961d36c86dee5ce42fc7c8ab693e271) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(e60a093f) SHA1(fa0af661f869f80e11097e101ec6100a75d1e63f) ) @@ -765,7 +767,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(5e7d8a05) SHA1(255355cf594c2818d358860e616b5b578a87e974) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(db77fe46) SHA1(2502c5c165a9720e5ff1196eaa17189281c3145c) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(3a512c6c) SHA1(ba8592773d71e57b3dc6aaff7df1214a57429b10) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(75fadda8) SHA1(5a968f10e582fbe74000f3de33dc1e2d07c3fec1) ) @@ -791,7 +793,7 @@ ROM_LOAD( "u6-10.bin", 0x0000, 0x020000, CRC(4d37999a) SHA1(678dc788cfe00ab2599df08941660324793d7f6c) ) ROM_LOAD( "sphinx ii.bin", 0x0000, 0x020000, CRC(7fae09a6) SHA1(5c26798337d3691d81f853ee447cb7119fce7b14) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-80.bin", 0x000000, 0x100000, CRC(c54e4e07) SHA1(1249494773dae044a7bb4381b084e3d2e14367d7) ) ROM_LOAD32_BYTE( "u11-80.bin", 0x000001, 0x100000, CRC(5c1e82ab) SHA1(f22ba1dc6799388e855d8f3064b96d568619a75b) ) ROM_LOAD32_BYTE( "u13-80.bin", 0x000002, 0x100000, CRC(fb49ae3e) SHA1(bf0cb5815639ebc3db3333249ab2ed81d3bdc684) ) @@ -819,7 +821,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u06_crp5bs1a.bin", 0x0000, 0x020000, CRC(0db0531d) SHA1(391e41b2dcd38669dcc24e938e9838feee972559) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u09_bep5a01d.bin", 0x000000, 0x100000, CRC(0f4614de) SHA1(2181c552e9a3669fda5e87d0c596d5534d24d4b3) ) ROM_LOAD32_BYTE( "u11_bep5a01d.bin", 0x000001, 0x100000, CRC(4f8c6fee) SHA1(2b75fe948bddda899969ef4a7663a52dc7b0eb81) ) ROM_LOAD32_BYTE( "u13_bep5a01d.bin", 0x000002, 0x100000, CRC(ca9a24e5) SHA1(67276f680f3aedf480c54c666f0db1110cd77aee) ) @@ -847,7 +849,7 @@ ROM_LOAD( "u06_n5b0-a-05-b.648f.bin", 0x0000, 0x020000, CRC(2d2ff35f) SHA1(97759fbad4b6b30ca8f8ea74da74cfaa433a7fa2) ) ROM_LOAD( "u06_n5b0-a-06-b.64 56.bin", 0x0000, 0x020000, CRC(7b4a6a97) SHA1(e3d54476730ca34a9f7214219cf991a220e15d5c) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u09_7b88.bin", 0x000000, 0x100000, CRC(8443972b) SHA1(5f2eea84ba18a83502f36eeaa52cff49a1631668) ) ROM_LOAD32_BYTE( "u11_1957.bin", 0x000001, 0x100000, CRC(36c7e5c5) SHA1(2bad0bb6b363af6a37f5b11c7ca8b3b674df4072) ) ROM_LOAD32_BYTE( "u13_b661.bin", 0x000002, 0x100000, CRC(0e74726c) SHA1(3103d801a622315877fc09d9c99290b54b266885) ) @@ -874,7 +876,7 @@ ROM_LOAD( "big blue bags.bin", 0x0000, 0x020000, CRC(4ec3fc1c) SHA1(7a081d370c54a6ea333957958b1341560458e845) ) ROM_LOAD( "bbbu01-c-za-std_-5-xx-xx-axx.1mu06.bin", 0x0000, 0x020000, CRC(09e6df0b) SHA1(85961160f95cb8d223f73483d6edad79fa37d729) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "bbbu01-a_-a-std_-5_.8gu09.bin", 0x000000, 0x100000, CRC(6f11b908) SHA1(663382bc295615afbc3a9a39c7089470b8b55926) ) ROM_LOAD32_BYTE( "bbbu01-a_-a-std_-5_.8gu11.bin", 0x000001, 0x100000, CRC(4cddcb5a) SHA1(e23354ab36f814b22c39564111558d4935fe8d70) ) ROM_LOAD32_BYTE( "bbbu01-a_-a-std_-5_.8gu13.bin", 0x000002, 0x100000, CRC(3a6dd649) SHA1(0f2b6cdf4f10ded99adc4fe0b47e4fada4aa6643) ) @@ -898,7 +900,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6.1 c5bo-a-03-a", 0x0000, 0x020000, CRC(3917302a) SHA1(39b0672c36554712825a0e310522933be4b46d84) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9.8 cw5_b-03-b", 0x000000, 0x100000, CRC(c49aaf25) SHA1(5518312046208b4f912e9dee2ff24653a9976c6f) ) ROM_LOAD32_BYTE( "u11.8 cw5_b-03-b", 0x000001, 0x100000, CRC(24267b4b) SHA1(9103923dd1bba0b01f6020f7c357ac9b7bef4951) ) ROM_LOAD32_BYTE( "u13.8 cw5_b-03-b", 0x000002, 0x100000, CRC(3e606516) SHA1(5edad0a3099700bfeedff5a143591a85b3c4f582) ) @@ -922,7 +924,7 @@ ROM_REGION( 0x080000, "u6", 0 ) // config? ROM_LOAD( "u-6 m27c801.bin", 0x0000, 0x080000, CRC(86538b30) SHA1(6b8d732b59af2cc1a6524989f8cf12a4d4dac484) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ // seem to be half size, doesn't have the TMS vectors ROM_LOAD32_BYTE( "u-9 m27c801.bin", 0x000000, 0x080000, BAD_DUMP CRC(4a5efe38) SHA1(23e82eeadccdd0224858686b1d96bd5d184904cb) ) ROM_LOAD32_BYTE( "u-11 m27c801.bin", 0x000001, 0x080000, BAD_DUMP CRC(099e27e2) SHA1(4419ac8090ccab673e61f4f73c837971e341e7e2) ) @@ -952,7 +954,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "dasp01-d-za-std_-5-xx-xx-axx.1mu06", 0x0000, 0x020000, CRC(2d5f7976) SHA1(77de321ba2f46726a0c26aa498a4c3deb7f8c421) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "dasp01-a_-c-std_-5_.8gu09", 0x000000, 0x100000, CRC(e6941863) SHA1(c9fe08bd070c9fac7b8c9089a6ecbff581265b3a) ) ROM_LOAD32_BYTE( "dasp01-a_-c-std_-5_.8gu11", 0x000001, 0x100000, CRC(400b82ab) SHA1(5af6daf65e50b0c5ad27c43b0f3d4d8d24f38102) ) ROM_LOAD32_BYTE( "dasp01-a_-c-std_-5_.8gu13", 0x000002, 0x100000, CRC(b425a8f6) SHA1(82d8e0d8602a81c6d4cf528b73f3c84ab5dde11b) ) @@ -977,7 +979,7 @@ ROM_LOAD( "u6-1001", 0x0000, 0x020000, CRC(7a00ad2a) SHA1(67d90b10b4f62922c4ed94bb8a0f77e474ee385d) ) ROM_LOAD( "dream maker.bin", 0x0000, 0x020000, CRC(49c19eb3) SHA1(a55d4f9a0dd2b1db41fb28f475efa7e9f7c85be6) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9-801", 0x000000, 0x100000, CRC(e560eeff) SHA1(fe33927a91be7ecd2a283bb09b87f5f3d659cf09) ) ROM_LOAD32_BYTE( "u11-801", 0x000001, 0x100000, CRC(693cec8e) SHA1(83d33603fa11aa4341a40b2ffc4862992307dcfc) ) ROM_LOAD32_BYTE( "u13-801", 0x000002, 0x100000, CRC(8b78f6aa) SHA1(74804c44124b71f0f11446da342d0548130394f6) ) @@ -1004,7 +1006,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "jujp01-a-za-std_-5_u06.bin", 0x0000, 0x020000, CRC(0f19b0c1) SHA1(c118215bcf502287277c34e6f389af70ab945674) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "jujp01-a_-b-std_-5_u09.bin", 0x000000, 0x100000, CRC(7d3cb293) SHA1(e9f102620f01309327678e115e206fd29dcffde6) ) ROM_LOAD32_BYTE( "jujp01-a_-b-std_-5_u11.bin", 0x000001, 0x100000, CRC(d92c0c7e) SHA1(680032b81e76c74539ff56f8c5fc7d4d16fd4793) ) ROM_LOAD32_BYTE( "jujp01-a_-b-std_-5_u13.bin", 0x000002, 0x100000, CRC(555ced70) SHA1(1ec115a2e2a1c171070775913a3eb831efc81dab) ) @@ -1030,7 +1032,7 @@ ROM_REGION( 0x080000, "u6", 0 ) // config? ROM_LOAD( "mb-u06.bin", 0x0000, 0x080000, CRC(10e3f3f6) SHA1(458f5be7ee01e361b4c31c099fc721521fbe3864) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "gb-u09.bin", 0x000000, 0x100000, CRC(f2d82cee) SHA1(78a15f757bbbb1f4f0a5ab889a9807d886a543a8) ) ROM_LOAD32_BYTE( "gb-u11.bin", 0x000001, 0x100000, CRC(3ead238a) SHA1(21956bd6b24e3281db70b6d28d97ee7bbd9ae75f) ) ROM_LOAD32_BYTE( "gb-u13.bin", 0x000002, 0x100000, CRC(58c191e6) SHA1(b0f86f407958de2b8e0f5e61288f8b6c7a2c0c2f) ) @@ -1056,7 +1058,7 @@ ROM_LOAD( "mb-u6 ebda.bin", 0x0000, 0x020000, CRC(7e73e9c7) SHA1(a8b00af9a3bf936e54391a96777ac78773b3cee0) ) ROM_LOAD( "speel master.bin", 0x0000, 0x020000, CRC(04168ab7) SHA1(70a387599bf6629a9a8a6ff38ed0d40e92e54504) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "gb-u9 b408.bin", 0x000000, 0x100000, CRC(e7146c72) SHA1(21b143ae93a73dd59b652a0033ceaa9116575239) ) ROM_LOAD32_BYTE( "gb-u11 abf6.bin", 0x000001, 0x100000, CRC(de54f849) SHA1(b628a69c8ad5f81543cd78c458dd9348226114a7) ) ROM_LOAD32_BYTE( "gb-u13 6526.bin", 0x000002, 0x100000, CRC(e5744b4f) SHA1(8c36b087dc4fad6cd463abea5b1e7c0bd9c30074) ) @@ -1094,7 +1096,7 @@ ROM_LOAD32_BYTE( "t5_d01d.u12", 0x600002, 0x080000, CRC(c2ca0b17) SHA1(cfd553f1943552620f6d324f767fd1f1957e8e25) ) ROM_LOAD32_BYTE( "t5_d01d.u14", 0x600003, 0x080000, CRC(0d512057) SHA1(f5f43dad25940193516d467725ecbe1989cc9003) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) - is this an alt set, or a 2nd video board? */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) - is this an alt set, or a 2nd video board? */ ROM_LOAD32_BYTE( "u9", 0x400000, 0x080000, CRC(157b9860) SHA1(6e04f035a945a63617e32b196fa0c1b6fd26b281) ) ROM_LOAD32_BYTE( "u11", 0x400001, 0x080000, CRC(6aa2cecc) SHA1(7b1d6bb81fed7413f69e926e7cefe1ee171453b4) ) ROM_LOAD32_BYTE( "u13", 0x400002, 0x080000, CRC(5c091b7a) SHA1(d1c758a6d155bbc7359f3f46a29bac44d96ec4b1) ) @@ -1127,7 +1129,7 @@ ROM_LOAD( "three wishes.bin", 0x0000, 0x020000, CRC(37d85da7) SHA1(64db855e06dab5ea85c669bd72f1e8ee8856607a) ) ROM_LOAD( "590a13a.1u6", 0x0000, 0x020000, CRC(3e674907) SHA1(ca933c416764ebf355d8e04f871f8421c9039078) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "tw5b01a.8u9", 0x000000, 0x100000, CRC(2410659a) SHA1(2bcd2539c0e3e7389c27c21e58d9199b9c7c742e) ) ROM_LOAD32_BYTE( "tw5b01a.u11", 0x000001, 0x100000, CRC(44ca9ce1) SHA1(b1c6d83f749202c072c6ce99c0470a31cfab8986) ) ROM_LOAD32_BYTE( "tw5b01a.u13", 0x000002, 0x100000, CRC(6c60097b) SHA1(f5ddb86b481b7b95d6ec151b37d662b583817813) ) @@ -1156,7 +1158,7 @@ ROM_LOAD( "mb-u22-d.bin", 0x000, 0x117, CRC(dc097847) SHA1(305294284d0ffd578f9115b836ef1f9e906c1599) ) ROM_LOAD( "mb-u32-b.bin", 0x000, 0x117, CRC(78a9310b) SHA1(deb84d96b0411b05c54fb2c998bed020a37d5005) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u8.bin", 0x600000, 0x080000, CRC(4acafd98) SHA1(d516c55ddce1470e4e19725b6d7dfd5f70ba1129) ) ROM_LOAD32_BYTE( "u10.bin", 0x600001, 0x080000, CRC(804800be) SHA1(5fb2a5479c2a7073c2abd40e14a162fbf783eb70) ) ROM_LOAD32_BYTE( "u12.bin", 0x600002, 0x080000, CRC(0845ff27) SHA1(5012569a79c9fcbee178a0cee45d25769a1cf9be) ) @@ -1177,7 +1179,7 @@ ROM_LOAD( "mb-u32-d.bin", 0x000, 0x2e5, CRC(996854bc) SHA1(647d2f49b739f7ca55c0b85290b6a21256834fd8) ) ROM_LOAD( "mb-u35-65994077_icm-s.bin", 0x000, 0x2e5, CRC(996854bc) SHA1(647d2f49b739f7ca55c0b85290b6a21256834fd8) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "gb-u9.bin", 0x000000, 0x100000, CRC(eff83f95) SHA1(743f2fb0dd84a83387919db70175aa62f5f6f858) ) ROM_LOAD32_BYTE( "gb-u11.bin", 0x000001, 0x100000, CRC(3fc27ae9) SHA1(896da175c11b48fb28dbb0678849b8f167cf5f6e) ) ROM_LOAD32_BYTE( "gb-u13.bin", 0x000002, 0x100000, CRC(6ad50f67) SHA1(b32781f06acc3e9929467d6d1212cf0dc757e5b3) ) @@ -1210,7 +1212,7 @@ ROM_LOAD( "u6-b.bin", 0x000, 0x117, CRC(2750fb0a) SHA1(3814c4755a215073425a9d6bb048315498962c76) ) ROM_LOAD( "u7-a.bin", 0x000, 0x117, CRC(adcb2789) SHA1(cc2ebd69abec73d66665faaec19b8706e539b34c) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ ROM_LOAD32_BYTE( "u9.bin", 0x400000, 0x080000, CRC(5b8450f1) SHA1(27fc771c3fb824cdb845237324984778fcd0a737) ) ROM_LOAD32_BYTE( "u11.bin", 0x400001, 0x080000, CRC(c8c52bd1) SHA1(081b8b4c46f18d030329bf519a8ed50385f7c062) ) ROM_LOAD32_BYTE( "u13.bin", 0x400002, 0x080000, CRC(23164a85) SHA1(e6de6aac28f1dac9ea908aaab9760b56ded1bb91) ) @@ -1231,7 +1233,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "bigc21-d-zf-std_-5-xx-xx-axx.1mu06", 0x0000, 0x020000, CRC(0eb376fb) SHA1(34e1f28e71503ffb0e1e922bd3ba17bad0d37d99) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ // not valid TMS code, looks like some x86 drive image split into ROMs? ROM_LOAD( "bigc01-a_-f-rus_-5_-g101.wigu09", 0x000000, 0x100000, CRC(c87e6bb4) SHA1(387e2498625ff718fccaa7701dd595ee787b9a83) ) ROM_LOAD( "bigc01-a_-f-rus_-5_-g101.wigu11", 0x100000, 0x100000, CRC(c9e9fa7f) SHA1(1698215845f21cfde0274e880d89c66fb3226f04) ) @@ -1256,7 +1258,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u6_bene21-e-zg-std_-5-xx-xx-axx_0f78.bin", 0x0000, 0x020000, CRC(d956484f) SHA1(d2d659a4350d7204666234a511ebd4dd7a021d89) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ // not valid TMS code, looks like some x86 drive image split into ROMs? ROM_LOAD( "u09_a632.bin", 0x000000, 0x100000, CRC(a671b6e8) SHA1(86b97ba98fdd09575a371b5b7f7d42bf2916fe17) ) ROM_LOAD( "u11_947b.bin", 0x100000, 0x100000, CRC(3dc60963) SHA1(d824cd4fbe4116744727180762fbf0ffe22e6398) ) @@ -1281,7 +1283,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "goci21-e-zf-std_-5-xx-xx-axx.1mu06", 0x0000, 0x020000, CRC(73ab9c41) SHA1(0888923bdaede83f264979c0757894f5cb2e0ec8) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ // not valid TMS code, looks like some x86 drive image split into ROMs? ROM_LOAD( "goci01-a_-c-rus_-5_-g101.wigu09", 0x000000, 0x100000, CRC(72c9b584) SHA1(1345e7ea34a819fbc01b9a64e9f9c1a2de927dda) ) ROM_LOAD( "goci01-a_-c-rus_-5_-g101.wigu11", 0x100000, 0x100000, CRC(2ebe1d71) SHA1(1b540c3bb9b232f475c3fe2b56c55f473d8c09ee) ) @@ -1309,7 +1311,7 @@ ROM_REGION( 0x020000, "u6", 0 ) // config? ROM_LOAD( "u06_1m_m27c1001-10f_da21h.bin", 0x0000, 0x020000, CRC(51c0a380) SHA1(861c8b4f825f4bc11dd02ac03dcc2cc7e8c65129) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* TMS34020APCM-40 code (34020) */ // not valid TMS code, looks like some x86 drive image split into ROMs? ROM_LOAD( "gb_u09_8m_m27c801-100f1_9df6h.bin", 0x000000, 0x100000, CRC(470ccae5) SHA1(0521af7830cc59102edcc658df4d21a3d669d6db) ) ROM_LOAD( "gb_u11_8m_m27c801-100f1_7621h.bin", 0x100000, 0x100000, CRC(8f9a1031) SHA1(1aca654b62e73f3005e627625bea2b4198c04a99) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/bbc.cpp mame-0.224+dfsg.1/src/mame/drivers/bbc.cpp --- mame-0.223+dfsg.1/src/mame/drivers/bbc.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/bbc.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -329,7 +329,7 @@ { m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE); - if (newval) + if (!newval) { if (m_via6522_1) m_via6522_1->reset(); if (m_adlc) m_adlc->reset(); @@ -2930,7 +2930,7 @@ COMP ( 1986, bbcmc, 0, bbcm, bbcmc, bbcm, bbcm_state, init_bbc, "Acorn Computers", "BBC Master Compact", MACHINE_IMPERFECT_GRAPHICS) COMP ( 1986, bbcmc_ar, bbcmc, 0, bbcmc, bbcm, bbcm_state, init_bbc, "Acorn Computers", "BBC Master Compact (Arabic)", MACHINE_IMPERFECT_GRAPHICS) COMP ( 1987, pro128s, bbcmc, 0, pro128s, bbcm, bbcm_state, init_bbc, "Olivetti", "Prodest PC 128S", MACHINE_IMPERFECT_GRAPHICS) -COMP ( 1988, autoc15, bbcmc, 0, autoc15, autoc, bbcm_state, init_bbc, "Autocue Ltd.", "Autocue 1500", MACHINE_NOT_WORKING) +COMP ( 1988, autoc15, bbcmc, 0, autoc15, autoc, bbcm_state, init_bbc, "Autocue Ltd.", "Autocue 1500 Telepromter", MACHINE_NOT_WORKING) COMP ( 1988, discmon, bbcm, 0, discmon, bbcm, bbcm_state, init_bbc, "Arbiter Leisure", "Arbiter Discmonitor A-01", MACHINE_NOT_WORKING) COMP ( 1988, discmate, bbcm, 0, discmate, bbcm, bbcm_state, init_bbc, "Arbiter Leisure", "Arbiter Discmate A-02", MACHINE_NOT_WORKING) //COMP ( 1988, discmast, bbcm, 0, discmast, bbcm, bbcm_state, init_bbc, "Arbiter Leisure", "Arbiter Discmaster A-03", MACHINE_NOT_WORKING) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/bbl380.cpp mame-0.224+dfsg.1/src/mame/drivers/bbl380.cpp --- mame-0.223+dfsg.1/src/mame/drivers/bbl380.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/bbl380.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,139 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:David Haywood - -// the BBL 380 - 180 in 1 features similar menus / presentation / games to the 'ORB Gaming Retro Arcade Pocket Handheld Games Console with 153 Games' (eg has Matchstick Man, Gang Tie III etc.) -// https://www.youtube.com/watch?v=NacY2WHd-CY - -#include "emu.h" - -#include "cpu/m6502/st2205u.h" -#include "screen.h" -#include "emupal.h" -#include "speaker.h" - -class bbl380_state : public driver_device -{ -public: - bbl380_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_palette(*this, "palette"), - m_screen(*this, "screen") - { } - - void bbl380(machine_config &config); - void init_ragc153(); - -private: - void lcdc_command_w(u8 data); - u8 lcdc_data_r(); - void lcdc_data_w(u8 data); - - virtual void machine_start() override; - virtual void machine_reset() override; - - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - void bbl380_map(address_map &map); - - required_device m_maincpu; - required_device m_palette; - required_device m_screen; -}; - -uint32_t bbl380_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - return 0; -} - -void bbl380_state::machine_start() -{ -} - -void bbl380_state::machine_reset() -{ -} - -void bbl380_state::lcdc_command_w(u8 data) -{ - logerror("%s: LCDC command $%02X\n", machine().describe_context(), data); -} - -u8 bbl380_state::lcdc_data_r() -{ - if (!machine().side_effects_disabled()) - logerror("%s: LCDC data read\n", machine().describe_context()); - return 0; -} - -void bbl380_state::lcdc_data_w(u8 data) -{ - logerror("%s: LCDC data $%02X\n", machine().describe_context(), data); -} - -void bbl380_state::bbl380_map(address_map &map) -{ - map(0x000000, 0x3fffff).rom().region("maincpu", 0); // FIXME: probably not directly mapped (ST2205U has serial Flash interface on port F) - map(0x600000, 0x600000).w(FUNC(bbl380_state::lcdc_command_w)); - map(0x604000, 0x604000).rw(FUNC(bbl380_state::lcdc_data_r), FUNC(bbl380_state::lcdc_data_w)); -} - -static INPUT_PORTS_START( bbl380 ) -INPUT_PORTS_END - -void bbl380_state::bbl380(machine_config &config) -{ - ST2205U(config, m_maincpu, 8000000); // unknown clock; type guessed - m_maincpu->set_addrmap(AS_DATA, &bbl380_state::bbl380_map); - - SCREEN(config, m_screen, SCREEN_TYPE_LCD); // TFT color LCD - m_screen->set_refresh_hz(60); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); - m_screen->set_size(132, 162); - m_screen->set_visarea(0, 132-1, 0, 162-1); - m_screen->set_screen_update(FUNC(bbl380_state::screen_update)); - m_screen->set_palette(m_palette); - - PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200); - - // LCD controller seems to be either Sitronix ST7735R or (if RDDID bytes match) Ilitek ILI9163C - // (unless the SoC's built-in one is used and the routines which program these are leftovers) - // Several other LCDC models are identified by ragc153 and dphh8630 -} - -ROM_START( bbl380 ) - ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "bbl380_st2205u.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS - ROM_LOAD( "bbl 380 180 in 1.bin", 0x000000, 0x400000, CRC(146c88da) SHA1(7f18526a6d8cf991f86febce3418d35aac9f49ad) BAD_DUMP ) - // 0x0022XX, 0x0026XX, 0x002AXX, 0x002CXX, 0x002DXX, 0x0031XX, 0x0036XX, etc. should not be FF fill -ROM_END - - -ROM_START( ragc153 ) - ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "ragc153_st2205u.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS (addresses are different from bbl380) - ROM_LOAD( "25q32ams.bin", 0x000000, 0x400000, CRC(de328d73) SHA1(d17b97e9057be4add68b9f5a26e04c9f0a139673) ) // first 0x100 bytes would read as 0xff at regular speed, but give valid looking consistent data at a slower rate -ROM_END - -ROM_START( dphh8630 ) - ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "ragc153_st2205u.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS - ROM_LOAD( "bg25q16.bin", 0x000000, 0x200000, CRC(277850d5) SHA1(740087842e1e63bf99b4ca9c1b2053361f267269) ) -ROM_END - - - -void bbl380_state::init_ragc153() -{ - uint8_t *ROM = memregion("maincpu")->base(); - int size = memregion("maincpu")->bytes(); - - for (int i = 0; i < size; i++) - { - ROM[i] = ROM[i] ^ 0xe4; - } -} - -CONS( 200?, bbl380, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "BaoBaoLong", "BBL380 - 180 in 1", MACHINE_IS_SKELETON ) -CONS( 200?, ragc153, 0, 0, bbl380, bbl380, bbl380_state, init_ragc153, "Orb", "Retro Arcade Game Controller 153-in-1", MACHINE_IS_SKELETON ) -CONS( 200?, dphh8630, 0, 0, bbl380, bbl380, bbl380_state, init_ragc153, "", "Digital Pocket Hand Held System Model: 8630 - 230-in-1", MACHINE_IS_SKELETON ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/bfcobra.cpp mame-0.224+dfsg.1/src/mame/drivers/bfcobra.cpp --- mame-0.223+dfsg.1/src/mame/drivers/bfcobra.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/bfcobra.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -52,14 +52,32 @@ ================== A compact video expansion board for Scorpion II. - The Z80 is replaced by a Z180 and there is no Flare DSP or FDC - + The Z80 is replaced by a Z180 and there is no Flare DSP. + The FDC is replaced by a NCR53C80 SCSI controller. + Cyclone was never released due to reliability issues. + + Cobra II Jamma + ============== + Based on Cobra II but with a JAMMA edge connector for easy use in video game cabinets. + This is a standalone board which is not paired with any Scorpion boards. + Break Ball is the only released game for this platform. + The only other known software is for a functional test unit (FTU). + + Note that for Z8S180 boards the CPU has 20 address lines so can select the entire memory map + without using the Flare chipset paging option. I believe changing the addresses using chipset_w + have no effect on Z8S180 boards. To do: * Complete blitter emulation - * Cobra II support + * Cobra II support. * Hook up additional inputs, EM meters, lamps etc + * The prom range selected for the first 16K of Z80 memory map is not fixed so chipset_w + function needs changing to process offset 0. Note that no released software changes this anyway. + * Frame interrupt for Z80 boards is wrong. It isn't a frame interrupt but an interrupt which can be + triggered on any scan line. For Z80 boards the fact that it's treated as a frame interrupt doesn't + matter as no released software changes the position of the interrupt. Emulation for Z8S180 boards + is correct as Break Ball uses multiple scan line interrupts. Known issues: @@ -71,35 +89,50 @@ * Plane priority is probably wrong but it's only used in Treble Top. * Blitter loop counts and step are wrong - they are 9 bit counts, not 8. * Blitter emulation doesn't support hi-res mode (needed for Inquizitor) + * Blitter emulation currently runs until blit is complete then burns the required number of Z80 + cycles to simulate it holding the bus. On the real hardware the blitter halts the CPU until the + operation is complete or an interrupt is issued to CPU. When the interrupt line is asserted the + CPU is allowed to run until the interrupt line is released. This allows all interrupts to run at + the correct time. The current emulation is OK for Z80 boards and all released software for those + boards, however, for Cobra II/JAMMA this causes problems due to the UPD7759 audio chip issuing + dma requests which are then processed too late if the Z8S180 cycles are burnt. To get round this + the Z8S180 blitter emulation does not burn CPU cycles. + The blitter emulation ought to take account of irq/dma requests but I don't know how to do that! ******************************************************************************/ #include "emu.h" #include "cpu/m6809/m6809.h" #include "cpu/z80/z80.h" +#include "cpu/z180/z180.h" #include "machine/6850acia.h" #include "machine/clock.h" +#include "machine/i2cmem.h" #include "machine/meters.h" #include "machine/nvram.h" #include "sound/ay8910.h" #include "sound/upd7759.h" +#include "sound/ym2413.h" +#include "video/bfm_dm01.h" #include "video/ramdac.h" #include "emupal.h" #include "screen.h" #include "speaker.h" +#include "brkball.lh" /* Defines */ +#define Z8S180_XTAL 24000000 #define Z80_XTAL 5910000 /* Unconfirmed */ -#define M6809_XTAL 4000000 /* Unconfirmed */ +#define M6809_XTAL 4000000 /*************************************************************************** - Split into video\cobra.c ! + Split into video\bfcobra.cpp ! ***************************************************************************/ @@ -641,8 +674,7 @@ } if (blitter.compfunc & CMPFUNC_LT) { - /* Might be wrong */ - if ((srcdata & 0xc0) < (dstdata & 0xc0)) + if ((srcdata & 0xc0) > (dstdata & 0xc0)) { inhibit = 1; @@ -664,8 +696,7 @@ } if (blitter.compfunc & CMPFUNC_GT) { - /* Might be wrong */ - if ((srcdata & 0xc0) > (dstdata & 0xc0)) + if ((srcdata & 0xc0) < (dstdata & 0xc0)) { inhibit = 1; @@ -984,7 +1015,7 @@ /*************************************************************************** - Split into machine\cobra.c ! + Split into machine\bfcobra.cpp ! Alternatively chuck it all away and borrow the MESS implementation because it's a million times better. @@ -1691,111 +1722,1205 @@ } /*************************************************************************** + Cobra II Jamma. - Game driver(s) - - Note: Two different versions of each 6809 ROM exist: standard and protocol - It appears sets can be a combination of disk images, 6809 and Z80 ROMs! + This has a Z180 and no 6809 ***************************************************************************/ +class bfcobjam_state : public driver_device +{ +public: + bfcobjam_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_acia6850_0(*this, "acia6850_0"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_aux_upd7759(*this, "upd"), + m_upd7759_int(*this, "updint"), + m_ym2413(*this, "ymsnd"), + m_i2cmem(*this, "i2cmem"), + m_dm01(*this, "dm01"), + m_work_ram(*this, "work_ram"), + m_video_ram(*this, "video_ram") + { + } -ROM_START( inquiztr ) - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "inq6809", 0x08000, 0x08000, CRC(ae996600) SHA1(f360399e77b81399d910770fa8106c196f04363c) ) + void init_bfcobjam(); + void bfcobjam(machine_config &config); + void bfcobjam_with_dmd(machine_config &config); - ROM_REGION( 0x20000, "user1", 0 ) - ROM_LOAD( "9576002.bin", 0x00000, 0x10000, CRC(5b8c8a04) SHA1(af5328fee79c370f45bff36f534aaf50964b6900) ) +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; - ROM_REGION( 0x20000, "altuser1", 0 ) - ROM_LOAD( "9576028.bin", 0x10000, 0x10000, CRC(2d85682c) SHA1(baec47bff4b8beef5afbb737dc57b22bf93ebcf8) ) +private: + uint8_t m_bank_data[4]; + uint8_t m_rompage; + uint8_t m_h_scroll; + uint8_t m_v_scroll; + uint8_t m_flip_8; + uint8_t m_flip_22; + uint8_t m_videomode; + uint8_t m_data_r; + uint8_t m_data_t; + uint8_t m_port_0; + int m_irq_state; + int m_acia_irq; + int m_scanline_irq; + int m_blitter_irq; + int m_global_volume; + uint8_t dm_shift_data ; + int dm_shift = 0 ; + int dm_last_data = 0 ; - // these look quite different.. (like they belong together) but booting with these gives a checksum error (banking?) - ROM_LOAD( "inqvypp1", 0x00000, 0x010000, CRC(9bac8c6e) SHA1(15e24d60c2f3997e637694f60daa552b22628766) ) - ROM_LOAD( "inqvypp2", 0x10000, 0x010000, CRC(f9cd196c) SHA1(0ac31d87462cbee6f41e19aefe740d876910bdf5) ) + uint8_t m_z8s180_int; + uint8_t m_z8s180_inten; + uint8_t m_col4bit[16]; + uint8_t m_col3bit[16]; + uint8_t m_col8bit[256]; + uint8_t m_col7bit[256]; + uint8_t m_col6bit[256]; + struct bf_blitter_t m_blitter; + emu_timer *m_scanline_timer; + uint8_t m_genio ; + required_device m_maincpu; + required_device m_acia6850_0; + required_device m_screen; + required_device m_palette; + optional_device m_aux_upd7759; + required_device m_upd7759_int; + required_device m_ym2413; + required_device m_i2cmem; + optional_device m_dm01; + required_shared_ptr m_work_ram; + required_shared_ptr m_video_ram; - ROM_REGION( 0x1c2000, "user2", 0 ) - ROM_LOAD( "inqdisk.img", 0x000000, 0x1c2000, NO_DUMP ) -ROM_END + uint8_t chipset_r(offs_t offset); + void chipset_w(offs_t offset, uint8_t data); + void rombank_w(uint8_t data); + void upd7759_w(uint8_t data); + uint8_t aux_upd7759_r(); + void aux_upd7759_w(uint8_t data); + void output0_w(uint8_t data); + uint8_t input0_r(); + uint8_t input1_r(); + DECLARE_WRITE_LINE_MEMBER(z8s180_acia_irq); + DECLARE_WRITE_LINE_MEMBER(data_acia_tx_w); + DECLARE_WRITE_LINE_MEMBER(write_acia_clock); + DECLARE_WRITE_LINE_MEMBER(upd7759_generate_dreq ); + uint32_t screen_update_bfcobjam(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(timer_irq); + TIMER_CALLBACK_MEMBER( scanline_callback ) ; + void RunBlit(); + void update_irqs(); + void genio_w( uint8_t data ) ; + void dotmatrix_w( uint8_t data ); + inline uint8_t* blitter_get_addr(uint32_t addr); + inline void z8s180_bank(int num, int data); + void ramdac_map(address_map &map); + void z8s180_io_map(address_map &map); + void z8s180_prog_map(address_map &map); +}; +void bfcobjam_state::init_bfcobjam() +{ + m_rompage = 0 ; + m_bank_data[0] = 0; + m_bank_data[1] = 0; + m_bank_data[2] = 0; + m_bank_data[3] = 0; + /* Fixed 16kB ROM region */ + membank("bank4")->set_base(memregion("user1")->base()); + membank("bank1")->set_base(memregion("user1")->base()+0x04000); + membank("bank2")->set_base(memregion("user1")->base()+0x08000); + membank("bank3")->set_base(memregion("user1")->base()+0x0c000); -ROM_START( escounts ) - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "esc12int", 0x08000, 0x08000, CRC(741a1fe6) SHA1(e741d0ae0d2f11036a358120381e4b0df4a560a1) ) + m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(bfcobjam_state::scanline_callback),this)); - ROM_REGION( 0x10000, "altrevs", 0 ) - ROM_LOAD( "bfm_esc.bin", 0x08000, 0x08000, CRC(27acb5a5) SHA1(da50d650ab6456d61d0fb7f89247f2040b4bb9a8) ) - ROM_LOAD( "escint1b", 0x08000, 0x08000, CRC(fde413c9) SHA1(18724a1b771ba4c72e571c356591c5be32948d7a) ) + /* Finish this */ + save_item(NAME(m_data_r)); + save_item(NAME(m_data_t)); + save_item(NAME(m_h_scroll)); + save_item(NAME(m_v_scroll)); + save_item(NAME(m_flip_8)); + save_item(NAME(m_flip_22)); + save_item(NAME(m_z8s180_int)); + save_item(NAME(m_z8s180_inten)); + save_item(NAME(m_bank_data)); + save_item(NAME(m_genio)); + save_item(NAME(m_global_volume)); - ROM_REGION( 0x10000, "user1", 0 ) - ROM_LOAD( "esccobpa", 0x00000, 0x10000, CRC(d8eadeb7) SHA1(9b94f1454e6a17bf8321b0ef4ddd0ed1a56150f7) ) +} - /* 95-100-207 */ - ROM_REGION( 0x190000, "user2", 0 ) - ROM_LOAD( "escdisk4.img", 0x000000, 0x190000, CRC(24156e0f) SHA1(e163daa8effadd93ace2bc2ba1af0f4a190abd7f) ) -ROM_END +/* + This is based this on the Slipstream technical reference manual. + The Flare One blitter is a simpler design with slightly different parameters + and will require hardware tests to figure everything out correctly. +*/ +void bfcobjam_state::RunBlit() +{ +#define BLITPRG_READ(x) blitter.x = *(blitter_get_addr(blitter.program.addr++)) -ROM_START( trebltop ) - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "95740078.bin", 0x08000, 0x08000, CRC(aca1980b) SHA1(3d4ed1dc545cc80f56d7daa13028fb10a12a718b) ) + struct bf_blitter_t &blitter = m_blitter; + int cycles_used = 0; - ROM_REGION( 0x10000, "altrevs", 0 ) - ROM_LOAD( "ttopint", 0x08000, 0x08000, CRC(cc798f90) SHA1(c3f541ebbb3a2c29cc4f00bbd47e289bcff50ecb) ) - ROM_REGION( 0x20000, "user1", 0 ) - ROM_LOAD( "95760031.bin", 0x00000, 0x10000, CRC(8e75edb8) SHA1(0aaa3834d5ac20f92bdf1f2b8f1eb71854469cbe) ) - ROM_LOAD( "95760021.bin", 0x10000, 0x10000, CRC(f42016c0) SHA1(7067d018cb4bdcfba777267fb01cddf44e4216c3) ) + do + { + uint8_t srcdata = 0; + uint8_t dstdata = 0; - ROM_REGION( 0x1c2000, "user2", 0 ) - ROM_LOAD( "ttdisk1.img", 0x000000, 0x190000, CRC(b2003228) SHA1(5eb49f05137cdd404f22948d39aa79c1518c06eb) ) + /* Read the blitter command */ + BLITPRG_READ(source.as8bit.addr0); + BLITPRG_READ(source.as8bit.addr1); + BLITPRG_READ(source.as8bit.addr2); + BLITPRG_READ(dest.as8bit.addr0); + BLITPRG_READ(dest.as8bit.addr1); + BLITPRG_READ(dest.as8bit.addr2); + BLITPRG_READ(modectl); + BLITPRG_READ(compfunc); + BLITPRG_READ(outercnt); + BLITPRG_READ(innercnt); + BLITPRG_READ(step); + BLITPRG_READ(pattern); - ROM_REGION( 0x20000, "upd", 0 ) - ROM_LOAD( "95000172.bin", 0x00000, 0x10000, CRC(e85367a5) SHA1(695fd95ddeecdb16602f7b0f075cf5128a2fb808) ) - ROM_LOAD( "95000173.bin", 0x10000, 0x10000, CRC(8bda2c5e) SHA1(79aab5a2af7a5add5fe9132dc13bcc3705c6faf3) ) -ROM_END +#if 0 + /* This debug is now wrong ! */ + if (DEBUG_BLITTER) + { + osd_printf_debug("\n%s:Blitter: Running command from 0x%.5x\n\n", device->machine().describe_context(), blitter.program.addr - 12); + osd_printf_debug("Command Reg %.2x", blitter.command); + osd_printf_debug(" %s %s %s %s %s %s %s\n", + blitter.command & CMD_RUN ? "RUN" : " ", + blitter.command & CMD_COLST ? "COLST" : " ", + blitter.command & CMD_PARRD ? "PARRD" : " ", + blitter.command & CMD_SRCUP ? "SRCUP" : " ", + blitter.command & CMD_DSTUP ? "DSTUP" : " "); -ROM_START( beeline ) - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "bln12int.a", 0x08000, 0x08000, CRC(cb97905e) SHA1(9725156bf64e53a56bc0f90795d4b07db41d059e) ) + osd_printf_debug("Src Address Byte 0 %.2x\n", blitter.source.as8bit.addr0); + osd_printf_debug("Src Address Byte 1 %.2x\n", blitter.source.as8bit.addr1); + osd_printf_debug("Src Control %.2x\n", blitter.source.as8bit.addr2); + osd_printf_debug(" Src Address %.5x\n", blitter.source.addr & 0xfffff); + osd_printf_debug("Dest Address Byte 0 %.2x\n", blitter.dest.as8bit.addr0); + osd_printf_debug("Dest Address Byte 1 %.2x\n", blitter.dest.as8bit.addr1); + osd_printf_debug("Dest Control %.2x\n", blitter.dest.as8bit.addr2); + osd_printf_debug(" Dst. Address %.5x\n", blitter.dest.addr & 0xfffff); + osd_printf_debug("Mode Control %.2x", blitter.modectl); + osd_printf_debug(" %s\n", blitter.modectl & MODE_BITTOBYTE ? "BIT_TO_BYTE" : ""); - ROM_REGION( 0x10000, "altrevs", 0 ) - ROM_LOAD( "beeint12", 0x8000, 0x008000, CRC(0a77d0be) SHA1(8e55e7b4eb85cc2521d8fdf7ede02131ed80372e) ) + osd_printf_debug("Comp. and LFU %.2x\n", blitter.compfunc); + osd_printf_debug("Outer Loop Count %.2x (%d)\n", blitter.outercnt, blitter.outercnt); + osd_printf_debug("Inner Loop Count %.2x (%d)\n", blitter.innercnt, blitter.innercnt); + osd_printf_debug("Step Value %.2x\n", blitter.step); + osd_printf_debug("Pattern Byte %.2x\n", blitter.pattern); + } +#endif + /* Ignore these writes */ + if (blitter.dest.addr == 0) + return; - ROM_REGION( 0x20000, "user1", 0 ) - ROM_LOAD( "blncob.pa", 0x00000, 0x10000, CRC(8abc0017) SHA1(ecf6e7a4021b35295eb9bb9aed1b88fff27ffbd1) ) - ROM_LOAD( "blncob.pb", 0x10000, 0x10000, CRC(feb121fe) SHA1(e83bfd6db00a3264e5076f257e261a1cb4605a83) ) + /* Begin outer loop */ + for (;;) + { + uint8_t innercnt = blitter.innercnt; + dstdata = blitter.pattern; - ROM_REGION( 0x1c2000, "user2", 0 ) - ROM_LOAD( "beedisk.img", 0x000000, 0x1c2000, NO_DUMP ) -ROM_END + if (blitter.command & CMD_LINEDRAW) + { + do + { + if (blitter.modectl & MODE_YFRAC) + { + if (blitter.modectl & MODE_SSIGN ) + blitter.dest.as8bit.addr0--; + else + blitter.dest.as8bit.addr0++; + } + else + { + if (blitter.modectl & MODE_DSIGN ) + blitter.dest.as8bit.addr1--; + else + blitter.dest.as8bit.addr1++; + } + if( blitter.source.as8bit.addr0 < blitter.step ) + { + blitter.source.as8bit.addr0 -= blitter.step ; + blitter.source.as8bit.addr0 += blitter.source.as8bit.addr1; -ROM_START( quizvadr ) - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "q6809.bin", 0x08000, 0x8000, CRC(a74dff10) SHA1(87578694a022dc3d7ade9cc76d387c1ae5fc74d9) ) + if ( blitter.modectl & MODE_YFRAC ) + { + if (blitter.modectl & MODE_DSIGN ) + blitter.dest.as8bit.addr1--; + else + blitter.dest.as8bit.addr1++; + } + else + { + if (blitter.modectl & MODE_SSIGN ) + blitter.dest.as8bit.addr0--; + else + blitter.dest.as8bit.addr0++; + } + } + else + { + blitter.source.as8bit.addr0 -= blitter.step; + } - ROM_REGION( 0x10000, "altrevs", 0 ) - ROM_LOAD( "qvadrint", 0x08000, 0x08000, CRC(4c729943) SHA1(ab4e0fb6cfc66540ea1e9e36eebdf85f65c5fd2a) ) + *blitter_get_addr( blitter.dest.addr) = blitter.pattern; + cycles_used++; - ROM_REGION( 0x200000, "user1", 0 ) - ROM_LOAD( "5947011r.0", 0x000000, 0x80000, CRC(cac43c97) SHA1(3af529cd0f8ec57dd3596f5bca7b9c74cff171e4) ) - ROM_LOAD( "5947011r.1", 0x080000, 0x80000, CRC(120018dc) SHA1(cd153d2b7ed535b04dbcaf189d2fc96fe3c5b466) ) - ROM_LOAD( "5947011r.2", 0x100000, 0x80000, CRC(689b3b5a) SHA1(ea32d18acfd380de822efff4f2c95ce9873a33a2) ) - ROM_LOAD( "5947011r.3", 0x180000, 0x80000, CRC(c38dafeb) SHA1(d693387a5c3cde34c9d581f81a08a5fbc6f753f2) ) + } while (--innercnt); + } + else do + { + uint8_t inhibit = 0; - ROM_REGION( 0x20000, "upd", 0 ) - ROM_LOAD( "185snd2.bin", 0x00000, 0x10000, CRC(e36eccc2) SHA1(cfd8ca4c71528ea4e229074016240681b6de37cd) ) - ROM_LOAD( "184snd1.bin", 0x10000, 0x10000, CRC(aac058e8) SHA1(39e59ad9524130fc3bd8d46e1aa78bc4daf04e39) ) -ROM_END + /* TODO: Set this correctly */ + uint8_t result = blitter.pattern; -ROM_START( qos ) - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "39360107.bin", 0x08000, 0x8000, CRC(20844655) SHA1(b67c7f7bbabf6d5139b8ad8cbb5f8cc3f28e9cc7) ) + if (LOOPTYPE == 3 && innercnt == blitter.innercnt) + { + srcdata = *(blitter_get_addr( blitter.source.addr & 0xfffff)); + blitter.source.as16bit.loword++; + cycles_used++; + } - ROM_REGION( 0x200000, "user1", 0 ) - ROM_LOAD( "95000338.rm0", 0x000000, 0x80000, CRC(96918aae) SHA1(849ce7b8eccc89c45aacc840a73935f95788a141) ) - ROM_LOAD( "95000339.rm1", 0x080000, 0x80000, CRC(b4c6dcc0) SHA1(56d8761766dfbd5b0e71f8c3ca575e88f1bc9929) ) + /* Enable source address read and increment? */ + if (!(blitter.modectl & (MODE_BITTOBYTE | MODE_PALREMAP))) + { + if (LOOPTYPE == 0 || LOOPTYPE == 1) + { + srcdata = *(blitter_get_addr( blitter.source.addr & 0xfffff)); + cycles_used++; + + if (blitter.modectl & MODE_SSIGN) + blitter.source.as16bit.loword-- ; + else + blitter.source.as16bit.loword++; + + result = srcdata; + } + } + + /* Read destination pixel? */ + if (LOOPTYPE == 0) + { + dstdata = *blitter_get_addr( blitter.dest.addr & 0xfffff); + cycles_used++; + } + + /* Inhibit depending on the bit selected by the inner count */ + + /* Switch on comparator type? */ + if (blitter.modectl & MODE_BITTOBYTE) + { + inhibit = !(srcdata & (1 << (8 - innercnt))); + } + + if (blitter.compfunc & CMPFUNC_BEQ) + { + if (srcdata == blitter.pattern) + { + inhibit = 1; + + /* TODO: Resume from inhibit? */ + if (blitter.command & CMD_COLST) + return; + } + } + if (blitter.compfunc & CMPFUNC_LT) + { + if ((srcdata & 0xc0) > (dstdata & 0xc0)) + { + inhibit = 1; + + /* TODO: Resume from inhibit? */ + if (blitter.command & CMD_COLST) + return; + } + } + if (blitter.compfunc & CMPFUNC_EQ) + { + if ((srcdata & 0xc0) == (dstdata & 0xc0)) + { + inhibit = 1; + + /* TODO: Resume from inhibit? */ + if (blitter.command & CMD_COLST) + return; + } + } + if (blitter.compfunc & CMPFUNC_GT) + { + if ((srcdata & 0xc0) < (dstdata & 0xc0)) + { + inhibit = 1; + + /* TODO: Resume from inhibit? */ + if (blitter.command & CMD_COLST) + return; + } + } + + /* Write the data if not inhibited */ + if (!inhibit) + { + if (blitter.modectl == MODE_PALREMAP) + { + /* + In this mode, the source points to a 256 entry lookup table. + The existing destination pixel is used as a lookup + into the table and the colours is replaced. + */ + uint8_t dest = *blitter_get_addr( blitter.dest.addr); + uint8_t newcol = *(blitter_get_addr( (blitter.source.addr + dest) & 0xfffff)); + + *blitter_get_addr( blitter.dest.addr) = newcol; + cycles_used += 3; + } + else + { + uint8_t final_result = 0; + + if (blitter.compfunc & CMPFUNC_LOG3) + final_result |= result & dstdata; + + if (blitter.compfunc & CMPFUNC_LOG2) + final_result |= result & ~dstdata; + + if (blitter.compfunc & CMPFUNC_LOG1) + final_result |= ~result & dstdata; + + if (blitter.compfunc & CMPFUNC_LOG0) + final_result |= ~result & ~dstdata; + + *blitter_get_addr( blitter.dest.addr) = final_result; + cycles_used++; + } + } + + /* Update destination address */ + if (blitter.modectl & MODE_DSIGN) + blitter.dest.as16bit.loword--; + else + blitter.dest.as16bit.loword++; + + } while (--innercnt); + + if (!--blitter.outercnt) + { + break; + } + else + { + if (blitter.command & CMD_DSTUP) + blitter.dest.as16bit.loword += blitter.step; + + if (blitter.command & CMD_SRCUP) + blitter.source.as16bit.loword += blitter.step; + + if (blitter.command & CMD_PARRD) + { + BLITPRG_READ(innercnt); + BLITPRG_READ(step); + BLITPRG_READ(pattern); + } + } + } + + /* Read next command header */ + BLITPRG_READ(command); + + } while (blitter.command & CMD_RUN); + + /* Burn Z180 cycles while blitter is in operation */ + /* Don't burn for Z8S180 */ +// m_maincpu->spin_until_time(attotime::from_nsec( (1000000000 / Z8S180_XTAL)*cycles_used * 2 ) ); +} + +uint8_t* bfcobjam_state::blitter_get_addr(uint32_t addr) +{ + if (addr < 0x10000) + { + /* Is this region fixed? */ + return (uint8_t*)(memregion("user1")->base() + addr); + } + else if(addr < 0x20000) + { + addr &= 0xffff; + addr += m_rompage * 0x10000 ; + + return (uint8_t*)(memregion("user1")->base() + addr ); + } + else if (addr >= 0x20000 && addr < 0x40000) + { + return (uint8_t*)&m_video_ram[addr - 0x20000]; + } + else + { + return (uint8_t*)&m_work_ram[addr - 0x40000]; + } +} + +uint8_t bfcobjam_state::chipset_r(offs_t offset) +{ + uint8_t val = 0xff; + + switch(offset) + { + case 0: + case 1: + case 2: + case 3: + { + val = m_bank_data[offset]; + break; + } + case 6: + { + /* TODO */ + val = m_scanline_irq << 4; + break; + } + case 7: + { + m_scanline_irq = 0; + val = 0x1; + + /* TODO */ + update_irqs(); + break; + } + case 0x1C: + { + /* Blitter status ? */ + val = ioport("CJIN3")->read(); + break; + } + case 0x20: + { + /* Seems correct - used during RLE pic decoding */ + val = m_blitter.dest.as8bit.addr0; + break; + } + case 0x22: + { + val = 0x40 | ioport("CJIN2")->read() | ( m_upd7759_int->busy_r() ? 0x20 : 0 ) ; + break; + } + default: + { + osd_printf_debug("Flare One unknown read: 0x%.2x (PC:0x%.4x)\n", offset, m_maincpu->pcbase()); + } + } + + return val; +} + +void bfcobjam_state::chipset_w(offs_t offset, uint8_t data) +{ + switch (offset) + { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + { + popmessage("%x: Unusual bank access (%x)\n", m_maincpu->pcbase(), data); + + data &= 0x3f; + m_bank_data[offset] = data; + z8s180_bank(offset, data); + break; + } + + case 0x07: + m_scanline_timer->adjust(m_screen->time_until_pos(data)); + break ; + + case 0x08: + { + m_flip_8 = data; + break; + } + case 9: + m_videomode = data; + break; + + case 0x0B: + { + m_h_scroll = data; + break; + } + case 0x0C: + { + m_v_scroll = data; + break; + } + case 0x0E: + { + m_col4bit[5] = data; + m_col3bit[5] = data; + m_col3bit[5 + 8] = data; + break; + } + case 0x0f: + { + m_col4bit[6] = data; + m_col3bit[6] = data; + m_col3bit[6 + 8] = data; + break; + } + case 0x18: + { + m_blitter.program.as8bit.addr0 = data; + break; + } + case 0x19: + { + m_blitter.program.as8bit.addr1 = data; + break; + } + case 0x1A: + { + m_blitter.program.as8bit.addr2 = data; + break; + } + case 0x20: + { + m_blitter.command = data; + + if (data & CMD_RUN) + RunBlit(); + else + osd_printf_debug("Blitter stopped by IO.\n"); + + break; + } + case 0x22: + { + m_flip_22 = data; + genio_w( data ) ; + break; + } + default: + { + osd_printf_debug("Flare One unknown write: 0x%.2x with 0x%.2x (PC:0x%.4x)\n", offset, data, m_maincpu->pcbase()); + } + } +} + +uint32_t bfcobjam_state::screen_update_bfcobjam(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + int x, y; + uint8_t *src; + uint32_t *dest; + uint32_t offset; + uint8_t *hirescol; + uint8_t *lorescol; + + + /* Select screen has to be programmed into two registers */ + /* No idea what happens if the registers are different */ + if (m_flip_8 & 0x40 && m_flip_22 & 0x40) + offset = 0x10000; + else + offset = 0; + + if(m_videomode & 0x20) + { + hirescol = m_col3bit; + lorescol = m_col7bit; + } + else if(m_videomode & 0x40) + { + hirescol = m_col4bit; + lorescol = m_col6bit; + } + else + { + hirescol = m_col4bit; + lorescol = m_col8bit; + } + + for (y = cliprect.top(); y <= cliprect.bottom(); ++y) + { + uint16_t y_offset = (y + m_v_scroll) * 256; + src = &m_video_ram[offset + y_offset]; + dest = &bitmap.pix32(y); + + for (x = cliprect.left(); x <= cliprect.right() / 2; ++x) + { + uint8_t x_offset = x + m_h_scroll; + uint8_t pen = *(src + x_offset); + + if ( ( m_videomode & 0x81 ) == 1 || (m_videomode & 0x80 && pen & 0x80) ) + { + *dest++ = m_palette->pen(hirescol[pen & 0x0f]); + *dest++ = m_palette->pen(hirescol[(pen >> 4) & 0x0f]); + } + else + { + *dest++ = m_palette->pen(lorescol[pen]); + *dest++ = m_palette->pen(lorescol[pen]); + } + } + } + + return 0; +} + +void bfcobjam_state::ramdac_map(address_map &map) +{ + map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w)); +} + + +void bfcobjam_state::z8s180_bank(int num, int data) +{ + static const char * const bank_names[] = { "bank4","bank1", "bank2", "bank3" }; + + if (data < 0x04) + { + membank(bank_names[num])->set_base(memregion("user1")->base() + (data*0x4000)); + } + else if (data < 0x08) + { + uint32_t offset ; + offset = m_rompage * 0x10000 ; + offset += (data-4) * 0x4000 ; + + membank(bank_names[num])->set_base(memregion("user1")->base() + offset); + } + else if (data < 0x10) + { + membank(bank_names[num])->set_base(&m_video_ram[(data - 0x08) * 0x4000]); + } + else + { + membank(bank_names[num])->set_base(&m_work_ram[(data - 0x10) * 0x4000]); + } +} + +void bfcobjam_state::update_irqs() +{ + int newstate = m_blitter_irq || m_scanline_irq || m_acia_irq; + + if (newstate != m_irq_state) + { + m_irq_state = newstate; + m_maincpu->set_input_line(0, m_irq_state ? ASSERT_LINE : CLEAR_LINE); + } +} + +TIMER_CALLBACK_MEMBER( bfcobjam_state::scanline_callback ) +{ + m_scanline_timer->adjust(m_screen->time_until_pos(0)); + m_scanline_irq = 1; + update_irqs(); +} + +WRITE_LINE_MEMBER(bfcobjam_state::z8s180_acia_irq) +{ + m_acia_irq = state; + update_irqs(); +} + + +void bfcobjam_state::rombank_w(uint8_t data) +{ + m_rompage = data ; + + membank("bank5")->set_entry(m_rompage & 0x0f); +} + +/* + This parallel port is used for bit-bashing the following devices. + 1. Dot matrix display + 2. I2C 24C08 + The bit use is as follows: + b0 = + b1 = + b2 = Dot matrix clock + b3 = Dot matrix data + b4 = Dot matrix reset + b5 = I2C SDA + b6 = I2C SCL + b7 = +*/ +void bfcobjam_state::output0_w(uint8_t data) +{ + uint8_t changed = m_port_0 ^ data ; + m_port_0 = data ; + + dotmatrix_w( data ) ; + + //cobra handling of scl and sda is wrong but devices handle it ok + //unfortunately mame emulation of i2c 24c08 doesn't :( + //we frig the driving of scl/sda to correct this + changed &= 0x60 ; + + if( changed == 0x60 ) + { + if( data & 0x40 ) + { + m_i2cmem->write_scl(!(BIT(data, 6))); + m_i2cmem->write_sda(!(BIT(data, 5))); + } + else + { + m_i2cmem->write_sda(!(BIT(data, 5))); + m_i2cmem->write_scl(!(BIT(data, 6))); + } + } + else + { + m_i2cmem->write_scl(!(BIT(data, 6))); + m_i2cmem->write_sda(!(BIT(data, 5))); + } +} + +void bfcobjam_state::dotmatrix_w( uint8_t data ) +{ + if( m_dm01 ) + { + data &= 0x1c ; + + if( data != dm_last_data ) + { + if( data & 0x10 ) + { + } + else + { + m_dm01->reset() ; + dm_shift=0; + dm_shift_data=0; + } + if( !(data & 4 ) && ( dm_last_data & 4 ) && data & 0x10 ) // clock is low but was high and out of reset + { + dm_shift_data <<= 1 ; + if( !(data & 0x08 )) + { + dm_shift_data |=1 ; + } + dm_shift++; + if( dm_shift == 8 ) + { + dm_shift=0; + m_dm01->writedata( dm_shift_data ) ; + } + } + dm_last_data = data ; + } + } +} + +uint8_t bfcobjam_state::input0_r() +{ + return ioport("CJIN0")->read() | (m_i2cmem->read_sda() ? 0x80 : 0x00); +} + +uint8_t bfcobjam_state::input1_r() +{ + return ioport("CJIN1")->read(); +} + +void bfcobjam_state::aux_upd7759_w(uint8_t data) +{ + if( m_aux_upd7759 ) + { + m_aux_upd7759->set_rom_bank((data>>2)&3); + + m_aux_upd7759->port_w((data>>4)&0xf); + + m_aux_upd7759->md_w(1); + + m_aux_upd7759->reset_w(BIT(data, 0)); + + m_aux_upd7759->start_w(!BIT(data, 1)); + } +} + +uint8_t bfcobjam_state::aux_upd7759_r() +{ + if( m_aux_upd7759 ) + { + return m_aux_upd7759->busy_r(); + } + else + { + return 0 ; + } +} + +void bfcobjam_state::genio_w( uint8_t data ) +{ + //bit 0 = ?? + //bit 1 = upd7759 start + //bit 2 = upd7759 reset + //bit 3 = ?? + //bit 4 = digital volume clock + //bit 5 = digital volume up/down + //bit 6 = ?? + //bit 7 = ?? + + uint8_t changed = m_genio ^ data ; + + m_genio = data ; + + if ( changed & 0x10) + { // digital volume clock line changed + if ( !(data & 0x10) ) + { // changed from high to low, + if ( data & 0x20 ) + { + if ( m_global_volume < 31 ) m_global_volume++; //0-31 expressed as 1-32 + } + else + { + if ( m_global_volume > 0 ) m_global_volume--; + } + + { + if (m_ym2413) + { + float percent = (32 - m_global_volume) / 32.0f; + + m_ym2413->set_output_gain(ALL_OUTPUTS, percent); + m_upd7759_int->set_output_gain(ALL_OUTPUTS, percent); + if( m_aux_upd7759 ) + { + m_aux_upd7759->set_output_gain(ALL_OUTPUTS, percent); + } + } + } + } + } + + //bits 1 and 2 are for upd7759 + m_upd7759_int->md_w(0); + m_upd7759_int->reset_w(!BIT(data,2)); + m_upd7759_int->start_w(BIT(data,1)); +} + +void bfcobjam_state::upd7759_w(uint8_t data) +{ + m_upd7759_int->port_w(data); +} + +WRITE_LINE_MEMBER( bfcobjam_state::upd7759_generate_dreq ) +{ + if( state ) + { + m_maincpu->set_input_line(Z180_INPUT_LINE_DREQ0, ASSERT_LINE ); + } + else + { + m_maincpu->set_input_line(Z180_INPUT_LINE_DREQ0, CLEAR_LINE ); + } +} + +void bfcobjam_state::video_start() +{ + memcpy(m_col4bit, col4bit_default, sizeof(m_col4bit)); + memcpy(m_col3bit, col3bit_default, sizeof(m_col3bit)); + for (int i = 0; i < 256; ++i) + { + uint8_t col; + + m_col8bit[i] = i; + col = i & 0x7f; + col = (col & 0x1f) | (col76index[ ( (col & 0x60) >> 5 ) & 3] << 5); + m_col7bit[i] = col; + + col = (col & 3) | (col76index[( (col & 0x0c) >> 2) & 3] << 2 ) | + (col76index[( (col & 0x30) >> 4) & 3] << 5 ); + m_col6bit[i] = col; + } +} + +/*************************************************************************** + + Cobra II Z8S180 Memory Map + +***************************************************************************/ + +void bfcobjam_state::z8s180_prog_map(address_map &map) +{ + map(0x00000, 0x03fff).bankrw("bank4"); + map(0x04000, 0x07fff).bankrw("bank1"); + map(0x08000, 0x0bfff).bankrw("bank2"); + map(0x0c000, 0x0ffff).bankrw("bank3"); + map(0x10000, 0x1ffff).bankrw("bank5"); + map(0x20000, 0x3ffff).ram().share(m_video_ram); + map(0x40000, 0xfffff).ram().share(m_work_ram); +} + +void bfcobjam_state::z8s180_io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x23).rw(FUNC(bfcobjam_state::chipset_r), FUNC(bfcobjam_state::chipset_w)); + map(0x24, 0x25).w(m_acia6850_0, FUNC(acia6850_device::write)); + map(0x26, 0x27).r(m_acia6850_0, FUNC(acia6850_device::read)); + map(0x2c, 0x2c).w(FUNC(bfcobjam_state::rombank_w)); + map(0x30, 0x30).w(FUNC(bfcobjam_state::upd7759_w)); + map(0x50, 0x50).w("ramdac", FUNC(ramdac_device::index_w)); + map(0x51, 0x51).rw("ramdac", FUNC(ramdac_device::pal_r), FUNC(ramdac_device::pal_w)); + map(0x52, 0x52).w("ramdac", FUNC(ramdac_device::mask_w)); + map(0x53, 0x53).w("ramdac", FUNC(ramdac_device::index_r_w)); + map(0x80, 0x87).r(FUNC(bfcobjam_state::input1_r)); + map(0x88, 0x8f).r(FUNC(bfcobjam_state::input0_r)); + map(0x88, 0x8f).w(FUNC(bfcobjam_state::output0_w)); + map(0x90, 0x97).r(FUNC(bfcobjam_state::aux_upd7759_r)); + map(0x90, 0x97).w(m_ym2413,FUNC(ym2413_device::write)); + map(0x98, 0x9f).w(FUNC(bfcobjam_state::aux_upd7759_w)); +} + + +static INPUT_PORTS_START( brkball ) + PORT_START("CJIN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 FIRE C") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) + + PORT_START("CJIN1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Left Flip") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Right Flip") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START("CJIN2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P1 Left Flip") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P1 Right Flip") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN2 ) + + PORT_START("CJIN3") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_TILT ) PORT_NAME("TEST") PORT_CODE(KEYCODE_F1) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) +INPUT_PORTS_END + + +void bfcobjam_state::machine_start() +{ + membank("bank5")->configure_entries(0, 0x10, memregion("user1")->base(), 0x10000); + membank("bank5")->set_entry(1); +} + +void bfcobjam_state::machine_reset() +{ + for (unsigned int pal = 0; pal < 256; ++pal) + { + m_palette->set_pen_color(pal, pal3bit((pal>>5)&7), pal3bit((pal>>2)&7), pal2bit(pal&3)); + } + + m_rompage = 0 ; + m_bank_data[0] = 0; + m_bank_data[1] = 0; + m_bank_data[2] = 0; + m_bank_data[3] = 0; + + m_genio = 0 ; + m_global_volume = 0; + + m_ym2413->reset(); + + + m_irq_state = m_blitter_irq = m_scanline_irq = m_acia_irq = 0; + + m_scanline_timer->adjust(m_screen->time_until_pos(0)); + + if( m_dm01 ) + m_dm01->reset() ; +} + +WRITE_LINE_MEMBER(bfcobjam_state::write_acia_clock) +{ + m_acia6850_0->write_txc(state); + m_acia6850_0->write_rxc(state); +} + +void bfcobjam_state::bfcobjam(machine_config &config) +{ + Z8S180(config, m_maincpu, Z8S180_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &bfcobjam_state::z8s180_prog_map); + m_maincpu->set_addrmap(AS_IO, &bfcobjam_state::z8s180_io_map); + + /* TODO */ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_size(512, 256); + m_screen->set_visarea_full(); + m_screen->set_screen_update(FUNC(bfcobjam_state::screen_update_bfcobjam)); + + PALETTE(config, m_palette).set_entries(256); + + ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); // MUSIC Semiconductor TR9C1710 RAMDAC or equivalent + ramdac.set_addrmap(0, &bfcobjam_state::ramdac_map); + ramdac.set_split_read(1); + + SPEAKER(config, "mono").front_center(); + + UPD7759(config, m_upd7759_int); + m_upd7759_int->add_route(ALL_OUTPUTS, "mono", 0.40); + m_upd7759_int->drq().set(FUNC(bfcobjam_state::upd7759_generate_dreq)); + + YM2413(config, m_ym2413, XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); + + + /* ACIAs */ + ACIA6850(config, m_acia6850_0, 0); + m_acia6850_0->irq_handler().set(FUNC(bfcobjam_state::z8s180_acia_irq)); + + clock_device &acia_clock(CLOCK(config, "acia_clock", 31250*16)); // What are the correct ACIA clocks ? + acia_clock.signal_handler().set(FUNC(bfcobjam_state::write_acia_clock)); + + I2C_24C08(config, m_i2cmem); +} + +void bfcobjam_state::bfcobjam_with_dmd(machine_config &config) +{ + bfcobjam( config ) ; + + UPD7759(config, m_aux_upd7759); + m_aux_upd7759->add_route(ALL_OUTPUTS, "mono", 0.40); + + BFM_DM01(config, m_dm01, 0); +} + +/*************************************************************************** + + Game driver(s) + + Note: Two different versions of each 6809 ROM exist: standard and protocol + It appears sets can be a combination of disk images, 6809 and Z80 ROMs! + +***************************************************************************/ + +ROM_START( inquiztr ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "inq6809", 0x08000, 0x08000, CRC(ae996600) SHA1(f360399e77b81399d910770fa8106c196f04363c) ) + + ROM_REGION( 0x20000, "user1", 0 ) + ROM_LOAD( "9576002.bin", 0x00000, 0x10000, CRC(5b8c8a04) SHA1(af5328fee79c370f45bff36f534aaf50964b6900) ) + + ROM_REGION( 0x20000, "altuser1", 0 ) + ROM_LOAD( "9576028.bin", 0x10000, 0x10000, CRC(2d85682c) SHA1(baec47bff4b8beef5afbb737dc57b22bf93ebcf8) ) + + // these look quite different.. (like they belong together) but booting with these gives a checksum error (banking?) + ROM_LOAD( "inqvypp1", 0x00000, 0x010000, CRC(9bac8c6e) SHA1(15e24d60c2f3997e637694f60daa552b22628766) ) + ROM_LOAD( "inqvypp2", 0x10000, 0x010000, CRC(f9cd196c) SHA1(0ac31d87462cbee6f41e19aefe740d876910bdf5) ) + + ROM_REGION( 0x1c2000, "user2", 0 ) + ROM_LOAD( "inqdisk.img", 0x000000, 0x1c2000, NO_DUMP ) +ROM_END + + + + +ROM_START( escounts ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "esc12int", 0x08000, 0x08000, CRC(741a1fe6) SHA1(e741d0ae0d2f11036a358120381e4b0df4a560a1) ) + + ROM_REGION( 0x10000, "altrevs", 0 ) + ROM_LOAD( "bfm_esc.bin", 0x08000, 0x08000, CRC(27acb5a5) SHA1(da50d650ab6456d61d0fb7f89247f2040b4bb9a8) ) + ROM_LOAD( "escint1b", 0x08000, 0x08000, CRC(fde413c9) SHA1(18724a1b771ba4c72e571c356591c5be32948d7a) ) + + ROM_REGION( 0x10000, "user1", 0 ) + ROM_LOAD( "esccobpa", 0x00000, 0x10000, CRC(d8eadeb7) SHA1(9b94f1454e6a17bf8321b0ef4ddd0ed1a56150f7) ) + + /* 95-100-207 */ + ROM_REGION( 0x190000, "user2", 0 ) + ROM_LOAD( "escdisk4.img", 0x000000, 0x190000, CRC(24156e0f) SHA1(e163daa8effadd93ace2bc2ba1af0f4a190abd7f) ) +ROM_END + +ROM_START( trebltop ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "95740078.bin", 0x08000, 0x08000, CRC(aca1980b) SHA1(3d4ed1dc545cc80f56d7daa13028fb10a12a718b) ) + + ROM_REGION( 0x10000, "altrevs", 0 ) + ROM_LOAD( "ttopint", 0x08000, 0x08000, CRC(cc798f90) SHA1(c3f541ebbb3a2c29cc4f00bbd47e289bcff50ecb) ) + + ROM_REGION( 0x20000, "user1", 0 ) + ROM_LOAD( "95760031.bin", 0x00000, 0x10000, CRC(8e75edb8) SHA1(0aaa3834d5ac20f92bdf1f2b8f1eb71854469cbe) ) + ROM_LOAD( "95760021.bin", 0x10000, 0x10000, CRC(f42016c0) SHA1(7067d018cb4bdcfba777267fb01cddf44e4216c3) ) + + ROM_REGION( 0x1c2000, "user2", 0 ) + ROM_LOAD( "ttdisk1.img", 0x000000, 0x190000, CRC(b2003228) SHA1(5eb49f05137cdd404f22948d39aa79c1518c06eb) ) + + ROM_REGION( 0x20000, "upd", 0 ) + ROM_LOAD( "95000172.bin", 0x00000, 0x10000, CRC(e85367a5) SHA1(695fd95ddeecdb16602f7b0f075cf5128a2fb808) ) + ROM_LOAD( "95000173.bin", 0x10000, 0x10000, CRC(8bda2c5e) SHA1(79aab5a2af7a5add5fe9132dc13bcc3705c6faf3) ) +ROM_END + +ROM_START( beeline ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "bln12int.a", 0x08000, 0x08000, CRC(cb97905e) SHA1(9725156bf64e53a56bc0f90795d4b07db41d059e) ) + + ROM_REGION( 0x10000, "altrevs", 0 ) + ROM_LOAD( "beeint12", 0x8000, 0x008000, CRC(0a77d0be) SHA1(8e55e7b4eb85cc2521d8fdf7ede02131ed80372e) ) + + + ROM_REGION( 0x20000, "user1", 0 ) + ROM_LOAD( "blncob.pa", 0x00000, 0x10000, CRC(8abc0017) SHA1(ecf6e7a4021b35295eb9bb9aed1b88fff27ffbd1) ) + ROM_LOAD( "blncob.pb", 0x10000, 0x10000, CRC(feb121fe) SHA1(e83bfd6db00a3264e5076f257e261a1cb4605a83) ) + + ROM_REGION( 0x1c2000, "user2", 0 ) + ROM_LOAD( "beedisk.img", 0x000000, 0x1c2000, NO_DUMP ) +ROM_END + +ROM_START( quizvadr ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "q6809.bin", 0x08000, 0x8000, CRC(a74dff10) SHA1(87578694a022dc3d7ade9cc76d387c1ae5fc74d9) ) + + ROM_REGION( 0x10000, "altrevs", 0 ) + ROM_LOAD( "qvadrint", 0x08000, 0x08000, CRC(4c729943) SHA1(ab4e0fb6cfc66540ea1e9e36eebdf85f65c5fd2a) ) + + ROM_REGION( 0x200000, "user1", 0 ) + ROM_LOAD( "5947011r.0", 0x000000, 0x80000, CRC(cac43c97) SHA1(3af529cd0f8ec57dd3596f5bca7b9c74cff171e4) ) + ROM_LOAD( "5947011r.1", 0x080000, 0x80000, CRC(120018dc) SHA1(cd153d2b7ed535b04dbcaf189d2fc96fe3c5b466) ) + ROM_LOAD( "5947011r.2", 0x100000, 0x80000, CRC(689b3b5a) SHA1(ea32d18acfd380de822efff4f2c95ce9873a33a2) ) + ROM_LOAD( "5947011r.3", 0x180000, 0x80000, CRC(c38dafeb) SHA1(d693387a5c3cde34c9d581f81a08a5fbc6f753f2) ) + + ROM_REGION( 0x20000, "upd", 0 ) + ROM_LOAD( "185snd2.bin", 0x00000, 0x10000, CRC(e36eccc2) SHA1(cfd8ca4c71528ea4e229074016240681b6de37cd) ) + ROM_LOAD( "184snd1.bin", 0x10000, 0x10000, CRC(aac058e8) SHA1(39e59ad9524130fc3bd8d46e1aa78bc4daf04e39) ) +ROM_END + +ROM_START( qos ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "39360107.bin", 0x08000, 0x8000, CRC(20844655) SHA1(b67c7f7bbabf6d5139b8ad8cbb5f8cc3f28e9cc7) ) + + ROM_REGION( 0x200000, "user1", 0 ) + ROM_LOAD( "95000338.rm0", 0x000000, 0x80000, CRC(96918aae) SHA1(849ce7b8eccc89c45aacc840a73935f95788a141) ) + ROM_LOAD( "95000339.rm1", 0x080000, 0x80000, CRC(b4c6dcc0) SHA1(56d8761766dfbd5b0e71f8c3ca575e88f1bc9929) ) ROM_LOAD( "95000340.rm2", 0x100000, 0x80000, CRC(66d121fd) SHA1(ac65cc0ac6b0a41e78a3159c21ee44f765bdb5c8) ) ROM_LOAD( "95000341.rm3", 0x180000, 0x80000, CRC(ef13658d) SHA1(240bc589900214eac79c91a531f254a9ac2f4ef6) ) @@ -1846,12 +2971,28 @@ ROM_END +/* The dot matrix software "ledv1.bin" is development software and not the release version. + Everything appears to work correctly except there are issues when the machine first starts with the + display showing a strange animation. +*/ +ROM_START( brkball ) + ROM_REGION( 0x200000, "user1", 0 ) + ROM_LOAD( "95000352.bin", 0x000000, 0x80000, CRC(8daad60a) SHA1(10ac31b7791c2215d0561972ae63e1405361b908) ) + ROM_LOAD( "95000353.bin", 0x080000, 0x80000, CRC(8e7b84ed) SHA1(b5e9ffe08eabe1446aa583fb85548451d944e811) ) + + ROM_REGION( 0x80000, "upd", 0 ) + ROM_LOAD( "sounds.bin", 0x00000, 0x80000, CRC(4e84402d) SHA1(f6056669f005d8790331be5b0f34d9441190b120) ) + + ROM_REGION( 0x20000, "dm01:matrix", 0 ) + ROM_LOAD("ledv1.bin", 0x00000, 0x10000, CRC(ea918cb9) SHA1(9e7047613cf1cb4b9a7fefb8a02d8479a7b09e6a)) +ROM_END -GAME( 1989, inquiztr, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Inquizitor", MACHINE_NOT_WORKING ) -GAME( 1990, escounts, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Every Second Counts (39-360-053)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1991, trebltop, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Treble Top (39-360-070)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1991, beeline, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Beeline (39-360-075)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1991, quizvadr, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Quizvaders (39-360-078)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, qos, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "A Question of Sport (set 1, 39-960-107)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, qosa, qos, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "A Question of Sport (set 2, 39-960-099)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, qosb, qos, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "A Question of Sport (set 3, 39-960-089)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1989, inquiztr, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Inquizitor", MACHINE_NOT_WORKING ) +GAME( 1990, escounts, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Every Second Counts (39-360-053)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1991, trebltop, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Treble Top (39-360-070)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1991, beeline, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Beeline (39-360-075)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1991, quizvadr, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "Quizvaders (39-360-078)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, qos, 0, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "A Question of Sport (set 1, 39-960-107)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, qosa, qos, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "A Question of Sport (set 2, 39-960-099)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, qosb, qos, bfcobra, bfcobra, bfcobra_state, init_bfcobra, ROT0, "BFM", "A Question of Sport (set 3, 39-960-089)", MACHINE_IMPERFECT_GRAPHICS ) +GAMEL(1994, brkball, 0, bfcobjam_with_dmd,brkball, bfcobjam_state,init_bfcobjam,ROT0, "BFM/ATOD", "Break Ball", MACHINE_IMPERFECT_GRAPHICS, layout_brkball ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/blktiger.cpp mame-0.224+dfsg.1/src/mame/drivers/blktiger.cpp --- mame-0.223+dfsg.1/src/mame/drivers/blktiger.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/blktiger.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -586,7 +586,7 @@ ROM_LOAD( "10.9a", 0x20000, 0x10000, CRC(fc33ccc6) SHA1(d492626a88565c2626f98ecb1d74535f1ad68e4c) ) ROM_LOAD( "9.8a", 0x30000, 0x10000, CRC(f449de01) SHA1(f6b40e9eb2471b89c42ab84f4214295d284db0c3) ) - ROM_REGION( 0x0400, "proms", 0 ) /* PROMs (function unknown) */ // misisng in this dump + ROM_REGION( 0x0400, "proms", 0 ) // PROMs (function unknown), missing in this dump ROM_LOAD( "bd01.8j", 0x0000, 0x0100, CRC(29b459e5) SHA1(0034734a533df3dea16b7b48e072485d7f26f850) ) ROM_LOAD( "bd02.9j", 0x0100, 0x0100, CRC(8b741e66) SHA1(6c1fda59936a7217b05949f5c54b1f91f4b49dbe) ) ROM_LOAD( "bd03.11k", 0x0200, 0x0100, CRC(27201c75) SHA1(c54d87f06bfe0b0908389c005014d97156e272c2) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/blktiger_ms.cpp mame-0.224+dfsg.1/src/mame/drivers/blktiger_ms.cpp --- mame-0.223+dfsg.1/src/mame/drivers/blktiger_ms.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/blktiger_ms.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -38,6 +38,8 @@ void blktigerm(machine_config &config); + void init_blktigerm(); + protected: virtual void machine_start() override; @@ -48,14 +50,31 @@ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void blktigerm_map(address_map &map); + void blktigerm_sound_map(address_map &map); }; void blktiger_ms_state::blktigerm_map(address_map &map) { - map(0x0000, 0x7fff).rom(); + map(0x0000, 0x7fff).rom().region("maincpu", 0); + //map(0x8000, 0xbfff).bankr("mainbank"); + //map(0xc003, 0xc003).r(); // ?? + //map(0xd800, 0xd800).w(); // bankswitch? + map(0xe000, 0xffff).ram(); } +void blktiger_ms_state::blktigerm_sound_map(address_map &map) // seems similar to toki_ms.cpp and raiden_ms.cpp +{ + map(0x0000, 0x7fff).rom().region("audiocpu", 0); + map(0xc000, 0xc7ff).ram(); + map(0xc900, 0xc900).noprw(); // what lives here? + map(0xdff8, 0xdff8).r("soundlatch", FUNC(generic_latch_8_device::read)); + map(0xdff0, 0xdfff).nopw(); // what lives here? + map(0xe000, 0xe001).w("ym1", FUNC(ym2203_device::write)); + map(0xe002, 0xe003).w("ym2", FUNC(ym2203_device::write)); + map(0xe008, 0xe009).r("ym1", FUNC(ym2203_device::read)); + map(0xe00a, 0xe00b).r("ym2", FUNC(ym2203_device::read)); +} void blktiger_ms_state::machine_start() { @@ -75,16 +94,17 @@ void blktiger_ms_state::blktigerm(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware Z80(config, m_maincpu, 24_MHz_XTAL / 4); // divisor unknown m_maincpu->set_addrmap(AS_PROGRAM, &blktiger_ms_state::blktigerm_map); - Z80(config, "audiocpu", 24_MHz_XTAL / 8).set_disable(); // divisor unknown, no XTAL on the PCB, might also use the 20 MHz one + z80_device &audiocpu(Z80(config, "audiocpu", 24_MHz_XTAL / 8)); // divisor unknown, no XTAL on the PCB, might also use the 20 MHz one + audiocpu.set_addrmap(AS_PROGRAM, &blktiger_ms_state::blktigerm_sound_map); - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); // all wrong m_screen->set_refresh_hz(60); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate m_screen->set_size(256, 256); m_screen->set_visarea(0, 256-1, 0, 256-32-1); m_screen->set_screen_update(FUNC(blktiger_ms_state::screen_update)); @@ -94,7 +114,7 @@ GFXDECODE(config, "gfxdecode", "palette", gfx_blktiger_ms); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); @@ -106,34 +126,34 @@ ROM_START( blktigerm ) ROM_REGION( 0x50000, "maincpu", 0 ) // on MOD 3/4 board - ROM_LOAD( "3_bl_301.ic14", 0x00000, 0x08000, CRC(b4525312) SHA1(958ce9a7f41422f3011412e4a16dd3ad65019733) ) // encrypted / scrambled? + ROM_LOAD( "3_bl_301.ic14", 0x00000, 0x08000, CRC(b4525312) SHA1(958ce9a7f41422f3011412e4a16dd3ad65019733) ) ROM_LOAD( "3_bl_302_c.ic13", 0x10000, 0x10000, CRC(c943415f) SHA1(08e82d2557de01c979a0a58b5433e9bdcdb118cb) ) ROM_LOAD( "3_bl_303_b.ic12", 0x20000, 0x10000, CRC(72114f6b) SHA1(049e747431cd95db2e7414467754424f68a8d757) ) - ROM_LOAD( "3_bl_304.ic18", 0x30000, 0x10000, CRC(36f669c6) SHA1(e91fd222919904d4d4b3ef70a22ab599a7cfa263) ) - ROM_LOAD( "3_bl_305.ic19", 0x40000, 0x10000, CRC(b30a99af) SHA1(19d6dbe11ffeb9a21dbfe75eb39ce9ceaef5eb31) ) + ROM_LOAD( "3_bl_304.ic18", 0x30000, 0x10000, CRC(36f669c6) SHA1(e91fd222919904d4d4b3ef70a22ab599a7cfa263) ) // this and the following ROM are swapped wrt to the sets in blktiger.cpp + ROM_LOAD( "3_bl_305.ic19", 0x40000, 0x10000, CRC(b30a99af) SHA1(19d6dbe11ffeb9a21dbfe75eb39ce9ceaef5eb31) ) // leaving them in the order suggested by the labels for now, since the banking calls have been changed - ROM_REGION( 0x10000, "audiocpu", 0 ) // + ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "1_bl_101.ic12", 0x0000, 0x8000, CRC(14028686) SHA1(64dc219d906f1bdd0c2bc05aff5aa73e001a6901) ) ROM_REGION( 0x08000, "gfx1", 0 ) // on one of the MOD 4/3 boards, both ROMs 0xxxxxxxxxxxxxx = 0xFF - ROM_LOAD( "4_bl_401.ic17", 0x00000, 0x04000, CRC(ab1afb3d) SHA1(555332ccfb69e65b776f94ffac9a4a051fb6f09e) ) /* characters */ + ROM_LOAD( "4_bl_401.ic17", 0x00000, 0x04000, CRC(ab1afb3d) SHA1(555332ccfb69e65b776f94ffac9a4a051fb6f09e) ) // characters ROM_CONTINUE( 0x00000, 0x04000) ROM_LOAD( "4_bl_402.ic16", 0x04000, 0x04000, CRC(89445b11) SHA1(7d9ab6e88d7de3a0e31b3b8a5e57dd39afd7940d) ) ROM_CONTINUE( 0x04000, 0x04000) ROM_REGION( 0x40000, "gfx2", 0 ) // on the other MOD 4/3 board - ROM_LOAD( "4_a_bl_4a01.ic17", 0x00000, 0x10000, CRC(fc00fd6c) SHA1(066714421fa782c6cfad9f695f05e6e3551ffdc7) ) /* tiles */ + ROM_LOAD( "4_a_bl_4a01.ic17", 0x00000, 0x10000, CRC(fc00fd6c) SHA1(066714421fa782c6cfad9f695f05e6e3551ffdc7) ) // tiles ROM_LOAD( "4_a_bl_4a02.ic16", 0x10000, 0x10000, CRC(49cd8afa) SHA1(147b65dad4f05b940d1f7a4028f5748ba1b7daa5) ) ROM_LOAD( "4_a_bl_4a03.ic15", 0x20000, 0x10000, CRC(50207dd4) SHA1(bee343fbefc817fa14b8b303f013bf5b89e911f8) ) ROM_LOAD( "4_a_bl_4a04.ic14", 0x30000, 0x10000, CRC(4bb0c1ba) SHA1(9433c78f0de7cb1f92b22612b9f3c51d813b025a) ) ROM_REGION( 0x40000, "gfx3", 0 ) // on MOD 51/1 board - ROM_LOAD( "51_bl_501.ic43", 0x00000, 0x10000, CRC(ace32b94) SHA1(4a09e8dc73bd16f7d378aefbe5d433dd1396f97d) ) /* sprites */ + ROM_LOAD( "51_bl_501.ic43", 0x00000, 0x10000, CRC(ace32b94) SHA1(4a09e8dc73bd16f7d378aefbe5d433dd1396f97d) ) // sprites ROM_LOAD( "51_bl_502.ic42", 0x10000, 0x10000, CRC(f6c4cc0b) SHA1(678fd71e90237f8e19eae78fe150a4c5d3494c6c) ) ROM_LOAD( "51_bl_503.ic41", 0x20000, 0x10000, CRC(61e3ae0b) SHA1(cbb83827f027acd6b905f4210476810bcd4b03a9) ) ROM_LOAD( "51_bl_504.ic40", 0x30000, 0x10000, CRC(2cb45034) SHA1(b2fd3b7b7b9d68b6ff1985166b106e65b17dbb23) ) - ROM_REGION( 0x0700, "proms", 0 ) /* PROMs (function unknown) */ + ROM_REGION( 0x0700, "proms", 0 ) // PROMs (function unknown) ROM_LOAD( "1_p0101_82s123.ic20", 0x0000, 0x0020, CRC(3fd60d3a) SHA1(8100fa7453638ac40193b5d92404f41b101ed2cc) ) ROM_LOAD( "21_p0201_82s129.ic4", 0x0100, 0x0100, CRC(2697da58) SHA1(e62516b886ff6e204b718e5f0c6ce2712e4b7fc5) ) ROM_LOAD( "21_p0202_82s129.ic12", 0x0200, 0x0100, CRC(e434128a) SHA1(ef0f6d8daef8b25211095577a182cdf120a272c1) ) @@ -147,4 +167,21 @@ ROM_LOAD( "51_p0503_pal16r8a.ic56", 0x000, 0x104, CRC(07eb86d2) SHA1(482eb325df5bc60353bac85412cf45429cd03c6d) ) ROM_END -GAME( 1991, blktigerm, blktiger, blktigerm, blktigerm, blktiger_ms_state, empty_init, ROT0, "bootleg (Gaelco / Ervisa)", "Black Tiger (Modular System)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +void blktiger_ms_state::init_blktigerm() +{ + uint8_t *src = memregion("maincpu")->base(); + int len = 0x50000; + + // bitswap data + for (int i = 0; i < len; i++) + src[i] = bitswap<8>(src[i], 5, 3, 7, 2, 0, 1, 4, 6); + + // descramble address + std::vector buffer(len); + memcpy(&buffer[0], src, len); + + for (int i = 0; i < len; i++) + src[i] = buffer[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 10, 8, 6, 4, 0, 2, 7, 3, 1, 9, 11, 5)]; +} + +GAME( 1991, blktigerm, blktiger, blktigerm, blktigerm, blktiger_ms_state, init_blktigerm, ROT0, "bootleg (Gaelco / Ervisa)", "Black Tiger (Modular System)", MACHINE_IS_SKELETON ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/bmjr.cpp mame-0.224+dfsg.1/src/mame/drivers/bmjr.cpp --- mame-0.223+dfsg.1/src/mame/drivers/bmjr.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/bmjr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -6,10 +6,10 @@ preliminary driver by Angelo Salese + To enter the monitor: MON + To quit: E + TODO: - - for whatever reason, BASIC won't work if you try to use it directly, - it does if you enter into MON first then exit (with E) - - tape hook-up doesn't work yet (shouldn't be hard to fix) - Break key is unemulated (tied with the NMI) ****************************************************************************/ @@ -17,6 +17,7 @@ #include "emu.h" #include "cpu/m6800/m6800.h" #include "imagedev/cassette.h" +#include "machine/timer.h" #include "sound/beep.h" #include "emupal.h" #include "screen.h" @@ -33,8 +34,12 @@ , m_beep(*this, "beeper") , m_p_wram(*this, "wram") , m_p_chargen(*this, "chargen") + , m_io_keyboard(*this, "KEY%d", 0U) { } + void bmjr(machine_config &config); + +private: u8 key_r(); void key_w(u8 data); u8 ff_r(); @@ -44,15 +49,14 @@ u8 tape_stop_r(); u8 tape_start_r(); void xor_display_w(u8 data); - void init_bmjr(); - u32 screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - void bmjr(machine_config &config); - void bmjr_mem(address_map &map); -private: + u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void mem_map(address_map &map); bool m_tape_switch; u8 m_xor_display; u8 m_key_mux; + u16 m_casscnt; + bool m_cassold, m_cassbit; + TIMER_DEVICE_CALLBACK_MEMBER(kansas_r); virtual void machine_start() override; virtual void machine_reset() override; required_device m_maincpu; @@ -60,11 +64,12 @@ required_device m_beep; required_shared_ptr m_p_wram; required_region_ptr m_p_chargen; + required_ioport_array<16> m_io_keyboard; }; -u32 bmjr_state::screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +u32 bmjr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { u8 y,ra,chr,gfx,fg=4; u16 sy=0,ma=0x100,x; @@ -100,9 +105,7 @@ u8 bmjr_state::key_r() { - char kbdrow[6]; - sprintf(kbdrow,"KEY%X", m_key_mux); - return (ioport(kbdrow)->read() & 15) | (ioport("KEYMOD")->read() << 4); + return m_io_keyboard[m_key_mux]->read() | ioport("KEYMOD")->read(); } void bmjr_state::key_w(u8 data) @@ -124,11 +127,31 @@ return 0x30; } +TIMER_DEVICE_CALLBACK_MEMBER( bmjr_state::kansas_r ) +{ + /* cassette - turn pulses into a bit */ + bool cass_ws = (m_cass->input() > +0.04) ? 1 : 0; + m_casscnt++; + + if (cass_ws != m_cassold) + { + m_cassold = cass_ws; + m_cassbit = (m_casscnt < 12) ? 1 : 0; + m_casscnt = 0; + } + else + if (m_casscnt > 32) + { + m_casscnt = 32; + m_cassbit = 0; + } +} + u8 bmjr_state::tape_r() { //m_cass->change_state(CASSETTE_PLAY,CASSETTE_MASK_UISTATE); - return ((m_cass->input()) > 0.03) ? 0xff : 0x00; + return m_cassbit ? 0xff : 0x00; } void bmjr_state::tape_w(u8 data) @@ -164,7 +187,7 @@ m_xor_display = data; } -void bmjr_state::bmjr_mem(address_map &map) +void bmjr_state::mem_map(address_map &map) { map.unmap_value_high(); //0x0100, 0x03ff basic vram @@ -195,93 +218,80 @@ PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY1") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY2") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY3") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY4") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY5") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY6") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("7 \'") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY7") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY8") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_START("KEY9") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) - PORT_START("KEYA") + PORT_START("KEY10") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_UNUSED ) PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("@ Up") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR('@') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) - PORT_START("KEYB") + PORT_START("KEY11") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("[ Down") PORT_CODE(KEYCODE_OPENBRACE) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR('[') PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("^ Right") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR('^') - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) - PORT_START("KEYC") + PORT_START("KEY12") PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_UNUSED) PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("\xC2\xA5 / Left") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) - PORT_START("KEYD") + PORT_START("KEY13") PORT_DIPNAME( 0x01, 0x01, "D" ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -294,20 +304,18 @@ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("KEYE") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_START("KEY14") + PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("KEYF") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_START("KEY15") + PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("KEYMOD") /* Note: you should press Normal to return from a Kana state and vice-versa */ - PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME(DEF_STR( Normal )) PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Kana Shift") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Kana") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT(0xf0,IP_ACTIVE_LOW,IPT_UNUSED ) + PORT_BIT(0x10,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME(DEF_STR( Normal )) PORT_CODE(KEYCODE_LCONTROL) + PORT_BIT(0x20,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) + PORT_BIT(0x40,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Kana Shift") PORT_CODE(KEYCODE_LALT) + PORT_BIT(0x80,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Kana") PORT_CODE(KEYCODE_RCONTROL) INPUT_PORTS_END static const gfx_layout bmjr_charlayout = @@ -327,30 +335,38 @@ void bmjr_state::machine_start() { - m_beep->set_state(0); + save_item(NAME(m_tape_switch)); + save_item(NAME(m_xor_display)); + save_item(NAME(m_key_mux)); + save_item(NAME(m_casscnt)); + save_item(NAME(m_cassold)); + save_item(NAME(m_cassbit)); } void bmjr_state::machine_reset() { + m_beep->set_state(0); m_tape_switch = 0; + m_xor_display = 0; + m_key_mux = 0; m_cass->change_state(CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR); } void bmjr_state::bmjr(machine_config &config) { /* basic machine hardware */ - M6800(config, m_maincpu, XTAL(4'000'000)/4); //unknown clock / divider - m_maincpu->set_addrmap(AS_PROGRAM, &bmjr_state::bmjr_mem); + // 750khz gets the cassette sound close to a normal kansas city 300 baud + M6800(config, m_maincpu, 750'000); //XTAL(4'000'000)/4); //unknown clock / divider + m_maincpu->set_addrmap(AS_PROGRAM, &bmjr_state::mem_map); m_maincpu->set_vblank_int("screen", FUNC(bmjr_state::irq0_line_hold)); - /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(256, 192); screen.set_visarea_full(); - screen.set_screen_update(FUNC(bmjr_state::screen_update_bmjr)); + screen.set_screen_update(FUNC(bmjr_state::screen_update)); screen.set_palette("palette"); PALETTE(config, "palette", palette_device::BRG_3BIT); @@ -363,6 +379,7 @@ /* Devices */ CASSETTE(config, m_cass); m_cass->add_route(ALL_OUTPUTS, "mono", 0.05); + TIMER(config, "kansas_r").configure_periodic(FUNC(bmjr_state::kansas_r), attotime::from_hz(40000)); } /* ROM definition */ @@ -377,9 +394,7 @@ ROM_END /* Driver */ -void bmjr_state::init_bmjr() -{ -} + /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, bmjr, 0, 0, bmjr, bmjr, bmjr_state, init_bmjr, "Hitachi", "Basic Master Jr", MACHINE_NOT_WORKING) +COMP( 1982, bmjr, 0, 0, bmjr, bmjr, bmjr_state, empty_init, "Hitachi", "Basic Master Jr", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/btoads.cpp mame-0.224+dfsg.1/src/mame/drivers/btoads.cpp --- mame-0.223+dfsg.1/src/mame/drivers/btoads.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/btoads.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -28,11 +28,34 @@ void btoads_state::machine_start() { + m_nvram_data = std::make_unique(0x2000); + subdevice("nvram")->set_base(m_nvram_data.get(), 0x2000); + save_item(NAME(m_main_to_sound_data)); save_item(NAME(m_main_to_sound_ready)); save_item(NAME(m_sound_to_main_data)); save_item(NAME(m_sound_to_main_ready)); save_item(NAME(m_sound_int_state)); + save_pointer(NAME(m_nvram_data), 0x2000); +} + + + +/************************************* + * + * NVRAM + * + *************************************/ + +void btoads_state::nvram_w(offs_t offset, uint8_t data) +{ + m_nvram_data[offset] = data; +} + + +uint8_t btoads_state::nvram_r(offs_t offset) +{ + return m_nvram_data[offset]; } @@ -180,11 +203,11 @@ map(0x20000180, 0x200001ff).w(FUNC(btoads_state::display_control_w)); map(0x20000200, 0x2000027f).w(FUNC(btoads_state::scroll0_w)); map(0x20000280, 0x200002ff).w(FUNC(btoads_state::scroll1_w)); - map(0x20000300, 0x2000037f).rw(FUNC(btoads_state::paletteram_r), FUNC(btoads_state::paletteram_w)); + map(0x20000300, 0x2000037f).rw(m_tlc34076, FUNC(tlc34076_device::read), FUNC(tlc34076_device::write)).umask32(0x000000ff); map(0x20000380, 0x200003ff).rw(FUNC(btoads_state::main_sound_r), FUNC(btoads_state::main_sound_w)); map(0x20000400, 0x2000047f).w(FUNC(btoads_state::misc_control_w)); - map(0x40000000, 0x4000000f).nopw(); /* watchdog? */ - map(0x60000000, 0x6003ffff).ram().share("nvram"); + map(0x40000000, 0x4000001f).nopw(); /* watchdog? */ + map(0x60000000, 0x6003ffff).rw(FUNC(btoads_state::nvram_r), FUNC(btoads_state::nvram_w)).umask32(0x000000ff); map(0xa0000000, 0xa03fffff).rw(FUNC(btoads_state::vram_fg_display_r), FUNC(btoads_state::vram_fg_display_w)).share("vram_fg0"); map(0xa4000000, 0xa43fffff).rw(FUNC(btoads_state::vram_fg_draw_r), FUNC(btoads_state::vram_fg_draw_w)).share("vram_fg1"); map(0xa8000000, 0xa87fffff).ram().share("vram_fg_data"); @@ -228,46 +251,46 @@ static INPUT_PORTS_START( btoads ) PORT_START("P1") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("P2") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("P3") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START3 ) + PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("UNK") - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("SPECIAL") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(btoads_state, sound_to_main_r) + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(btoads_state, sound_to_main_r) PORT_SERVICE_NO_TOGGLE( 0x0002, IP_ACTIVE_LOW ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(btoads_state, main_to_sound_r) - PORT_BIT( 0xff7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(btoads_state, main_to_sound_r) + PORT_BIT( 0xffffff7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("SW1") PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds )) PORT_DIPLOCATION("SW1:1") @@ -292,7 +315,7 @@ PORT_DIPSETTING( 0x0040, DEF_STR( Off )) PORT_DIPSETTING( 0x0000, DEF_STR( On )) PORT_DIPUNKNOWN_DIPLOC(0x0080, 0x0080, "SW1:8") - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -348,7 +371,7 @@ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound program, M27C256B rom */ ROM_LOAD( "bt.u102", 0x0000, 0x8000, CRC(a90b911a) SHA1(6ec25161e68df1c9870d48cc2b1f85cd1a49aba9) ) - ROM_REGION16_LE( 0x800000, "user1", 0 ) /* 34020 code, M27C322 roms */ + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* 34020 code, M27C322 roms */ ROM_LOAD32_WORD( "btc0-p0.u120", 0x000000, 0x400000, CRC(0dfd1e35) SHA1(733a0a4235bebd598c600f187ed2628f28cf9bd0) ) ROM_LOAD32_WORD( "btc0-p1.u121", 0x000002, 0x400000, CRC(df7487e1) SHA1(67151b900767bb2653b5261a98c81ff8827222c3) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/c128.cpp mame-0.224+dfsg.1/src/mame/drivers/c128.cpp --- mame-0.223+dfsg.1/src/mame/drivers/c128.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/c128.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1750,13 +1750,16 @@ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128)); // software list - SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("NTSC"); - SOFTWARE_LIST(config, "cart_list_c64").set_original("c64_cart").set_filter("NTSC"); SOFTWARE_LIST(config, "cart_list").set_original("c128_cart").set_filter("NTSC"); - SOFTWARE_LIST(config, "cass_list_c64").set_original("c64_cass").set_filter("NTSC"); - SOFTWARE_LIST(config, "flop_list_c64").set_original("c64_flop").set_filter("NTSC"); SOFTWARE_LIST(config, "flop_list").set_original("c128_flop").set_filter("NTSC"); SOFTWARE_LIST(config, "from_list").set_original("c128_rom").set_filter("NTSC"); + SOFTWARE_LIST(config, "cart_list_c64").set_original("c64_cart").set_filter("NTSC"); + SOFTWARE_LIST(config, "cass_list_c64").set_original("c64_cass").set_filter("NTSC"); + SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("NTSC"); + // disk softlist split into originals, cleanly cracked, and misc (homebrew and defaced cracks) + SOFTWARE_LIST(config, "flop525_orig").set_original("c64_flop_orig").set_filter("NTSC"); + SOFTWARE_LIST(config, "flop525_clean").set_compatible("c64_flop_clcracked").set_filter("NTSC"); + SOFTWARE_LIST(config, "flop525_misc").set_compatible("c64_flop_misc").set_filter("NTSC"); // function ROM GENERIC_SOCKET(config, "from", generic_plain_slot, "c128_rom", "bin,rom"); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/carpolo.cpp mame-0.224+dfsg.1/src/mame/drivers/carpolo.cpp --- mame-0.223+dfsg.1/src/mame/drivers/carpolo.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/carpolo.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -24,7 +24,7 @@ #include "machine/74153.h" #include "machine/6821pia.h" #include "screen.h" - +#include "speaker.h" /************************************* @@ -290,6 +290,21 @@ GFXDECODE(config, m_gfxdecode, m_palette, gfx_carpolo); PALETTE(config, m_palette, FUNC(carpolo_state::carpolo_palette), 12*2+2*16+4*2); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(carpolo)) + .add_route(ALL_OUTPUTS, "mono", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:player_crash1", "PL1_CRASH.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:player_crash2", "PL2_CRASH.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:player_crash3", "PL3_CRASH.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:player_crash4", "PL4_CRASH.IN", 0); + + // Temporarily just tied to an arbitrary value to preserve lack of audio. + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "PL1_CRASH.GND").set_mult_offset(10000.0, 0.0); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/casloopy.cpp mame-0.224+dfsg.1/src/mame/drivers/casloopy.cpp --- mame-0.223+dfsg.1/src/mame/drivers/casloopy.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/casloopy.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -81,9 +81,8 @@ like a V60. The BIOS is tied directly to it. RH-7500 - Casio RH-7500 5C315 (QFP208). This is the graphics generator chip. RH-7501 - Casio RH-7501 5C350 (QFP64). This is probably the sound chip. - SH7021 - Hitachi HD6437021TE20 SuperH RISC Engine SH-2A CPU with 32k internal maskROM (TQFP100) - The internal ROM (BIOS1) is not dumped. A SH-2A software programming manual is available here... - http://documentation.renesas.com/eng/products/mpumcu/rej09b0051_sh2a.pdf + SH7021 - Hitachi HD6437021TE20 SuperH RISC Engine SH-1 CPU with 32k internal maskROM (TQFP100) + The internal ROM (BIOS1) is not dumped. CXA1645M - Sony CXA1645M RGB Encoder (RGB -> Composite Video) (SOIC24) A1603C - NEC uPA1603C Compound Field Effect Power Transistor Array (DIP16) HM514260 - Hitachi HM514260 256k x 16 DRAM (SOJ40) @@ -431,7 +430,7 @@ // map(0x05ffff00, 0x05ffffff).rw(FUNC(casloopy_state::sh7021_r), FUNC(casloopy_state::sh7021_w)); // map(0x05ffff00, 0x05ffffff) - SH7021 internal i/o map(0x06000000, 0x062fffff).r(m_cart, FUNC(generic_cartslot_device::read32_rom)); - map(0x07000000, 0x070003ff).ram().share("oram");// on-chip RAM, actually at 0xf000000 (1 kb) + //map(0x07000000, 0x070003ff).ram();// area 7 (CS7), NOT on-chip RAM mirror map(0x09000000, 0x0907ffff).ram().share("wram"); map(0x0e000000, 0x0e2fffff).r(m_cart, FUNC(generic_cartslot_device::read32_rom)); map(0x0f000000, 0x0f0003ff).ram().share("oram"); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cdi.cpp mame-0.224+dfsg.1/src/mame/drivers/cdi.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cdi.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cdi.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -885,14 +885,14 @@ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ // BIOS / System -CONS( 1991, cdimono1, 0, 0, cdimono1, cdi, cdi_state, empty_init, "Philips", "CD-i (Mono-I) (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1991, cdimono1, 0, 0, cdimono1, cdi, cdi_state, empty_init, "Philips", "CD-i (Mono-I) (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) CONS( 1991, cdimono2, 0, 0, cdimono2, cdimono2, cdi_state, empty_init, "Philips", "CD-i (Mono-II) (NTSC)", MACHINE_NOT_WORKING ) CONS( 1991, cdi910, 0, 0, cdi910, cdimono2, cdi_state, empty_init, "Philips", "CD-i 910-17P Mini-MMC (PAL)", MACHINE_NOT_WORKING ) CONS( 1991, cdi490a, 0, 0, cdimono1, cdi, cdi_state, empty_init, "Philips", "CD-i 490", MACHINE_NOT_WORKING ) // The Quizard games are retail CD-i units in a cabinet, with an additional JAMMA adapter and dongle for protection, hence being clones of the system. /* YEAR NAME PARENT MACHINE INPUT DEVICE INIT MONITOR COMPANY FULLNAME */ -GAME( 1995, cdibios, 0, cdimono1, quizard, cdi_state, empty_init, ROT0, "Philips", "CD-i (Mono-I) (PAL) BIOS", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IS_BIOS_ROOT ) +GAME( 1995, cdibios, 0, cdimono1, quizard, cdi_state, empty_init, ROT0, "Philips", "CD-i (Mono-I) (PAL) BIOS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IS_BIOS_ROOT ) GAME( 1995, quizard, cdibios, quizard, quizard, quizard_state, empty_init, ROT0, "TAB Austria", "Quizard (v1.8, German, i8751 DE 11 D3)", MACHINE_IMPERFECT_SOUND ) GAME( 1995, quizard_17, quizard, quizard, quizard, quizard_state, empty_init, ROT0, "TAB Austria", "Quizard (v1.7, German, i8751 DE 11 D3)", MACHINE_IMPERFECT_SOUND ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/champbas.cpp mame-0.224+dfsg.1/src/mame/drivers/champbas.cpp --- mame-0.223+dfsg.1/src/mame/drivers/champbas.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/champbas.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1182,37 +1182,37 @@ ROM_LOAD( "prom2.8r", 0x0120, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ ROM_END -ROM_START( exctscc2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "vr.3j", 0x0000, 0x2000, CRC(c6115362) SHA1(6a258631abd72ef6b8d7968bb4b2bc88e89e597d) ) - ROM_LOAD( "vr.3k", 0x2000, 0x2000, CRC(de36ba00) SHA1(0a0d92e710b8c749f145571bc8a204609456d19d) ) - ROM_LOAD( "vr.3l", 0x4000, 0x2000, CRC(1ddfdf65) SHA1(313d0a7f13fc2de15aa32492c38a59fbafad9f01) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "vr.7d", 0x0000, 0x2000, CRC(2c675a43) SHA1(aa0a8dbcae955e3da92c435202f2a1ed238c377e) ) - ROM_LOAD( "vr.7e", 0x2000, 0x2000, CRC(e571873d) SHA1(2dfff24f5dac86e92612f40cf3642005c7f36ad3) ) - ROM_LOAD( "8_d6.bin", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) ) /* vr.7f */ - ROM_LOAD( "7_c6.bin", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) ) /* vr.7h */ - ROM_LOAD( "1_a6.bin", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) ) /* vr.7k */ - - ROM_REGION( 0x2000, "alpha_8201:mcu", 0 ) - ROM_LOAD( "alpha-8303_44801b42.bin", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) ) - - ROM_REGION( 0x04000, "gfx1", 0 ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only chars - ROM_LOAD( "vr.5a", 0x0000, 0x2000, CRC(4ff1783d) SHA1(c45074864c3a4bcbf3a87d164027ae16dca53d9c) ) /* planes 0,1 */ - ROM_LOAD( "vr.5c", 0x2000, 0x2000, CRC(1fb84ee6) SHA1(56ceb86c509be783f806403ac21e7c9684760d5f) ) /* plane 3 */ - - ROM_REGION( 0x04000, "gfx2", 0 ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only sprites - ROM_LOAD( "vr.5b", 0x0000, 0x2000, CRC(5605b60b) SHA1(19d5909896ae4a3d7552225c369d30475c56793b) ) /* planes 0,1 */ - - ROM_REGION( 0x02000, "gfx3", 0 ) // 4bpp sprites - ROM_LOAD( "vr.5k", 0x0000, 0x1000, CRC(1d37edfa) SHA1(184fa6dd7b1b3fff4c5fc19b42301ccb7979ac84) ) - ROM_LOAD( "vr.5l", 0x1000, 0x1000, CRC(b97f396c) SHA1(4ffe512acf047230bd593911a615fc0ef66b481d) ) - - ROM_REGION( 0x0220, "proms", 0 ) - ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */ - ROM_LOAD( "prom3.k5", 0x0020, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */ - ROM_LOAD( "prom2.8r", 0x0120, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ +ROM_START( exctscc2 ) // 2-PCB stack: CPU & SOUND BOARD + DISPLAY BOARD N. 58AS51-1 + ROM_REGION( 0x10000, "maincpu", 0 ) // on CPU & sound board + ROM_LOAD( "eprom_1_vr_alpha_denshi.3j", 0x0000, 0x2000, CRC(c6115362) SHA1(6a258631abd72ef6b8d7968bb4b2bc88e89e597d) ) + ROM_LOAD( "eprom_2_vr_alpha_denshi.3k", 0x2000, 0x2000, CRC(de36ba00) SHA1(0a0d92e710b8c749f145571bc8a204609456d19d) ) + ROM_LOAD( "eprom_3_vr_alpha_denshi.3l", 0x4000, 0x2000, CRC(1ddfdf65) SHA1(313d0a7f13fc2de15aa32492c38a59fbafad9f01) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) // on CPU & sound board + ROM_LOAD( "eprom_0_vr_alpha_denshi.7d", 0x0000, 0x2000, CRC(2c675a43) SHA1(aa0a8dbcae955e3da92c435202f2a1ed238c377e) ) // yes 0, not 10 + ROM_LOAD( "eprom_9_vr_alpha_denshi.7e", 0x2000, 0x2000, CRC(e571873d) SHA1(2dfff24f5dac86e92612f40cf3642005c7f36ad3) ) + ROM_LOAD( "eprom_8_vr_alpha_denshi.7f", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) ) + ROM_LOAD( "eprom_7_vr_alpha_denshi.7h", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) ) + ROM_LOAD( "eprom_1_vr_alpha_denshi.7k", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) ) // marked for a 2764 but populated with a 2732 + + ROM_REGION( 0x2000, "alpha_8201:mcu", 0 ) // on CPU & sound board + ROM_LOAD( "alpha-8303_44801b42.1d", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only chars, on display board + ROM_LOAD( "eprom_4_vr_alpha_denshi.5a", 0x0000, 0x2000, CRC(4ff1783d) SHA1(c45074864c3a4bcbf3a87d164027ae16dca53d9c) ) // planes 0,1 + ROM_LOAD( "eprom_6_vr_alpha_denshi.5c", 0x2000, 0x2000, CRC(1fb84ee6) SHA1(56ceb86c509be783f806403ac21e7c9684760d5f) ) // plane 3 + + ROM_REGION( 0x04000, "gfx2", 0 ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only sprites, on display board + ROM_LOAD( "eprom_5_vr_alpha_denshi.5b", 0x0000, 0x2000, CRC(5605b60b) SHA1(19d5909896ae4a3d7552225c369d30475c56793b) ) // planes 0,1 + + ROM_REGION( 0x02000, "gfx3", 0 ) // 4bpp sprites, on display board + ROM_LOAD( "eprom_7_vr_alpha_denshi.5k", 0x0000, 0x1000, CRC(1d37edfa) SHA1(184fa6dd7b1b3fff4c5fc19b42301ccb7979ac84) ) + ROM_LOAD( "eprom_8_vr_alpha_denshi.5l", 0x1000, 0x1000, CRC(b97f396c) SHA1(4ffe512acf047230bd593911a615fc0ef66b481d) ) + + ROM_REGION( 0x0220, "proms", 0 ) // it's suspected these weren't dumped for this set, but taken from an Exciting Soccer (see MT5026) + ROM_LOAD( "prom1.5j", 0x0000, 0x0020, BAD_DUMP CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) // palette, marked as 7051 on CPU & sound board + ROM_LOAD( "prom3.60h", 0x0020, 0x0100, BAD_DUMP CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) // lookup table, marked as 7052 on display board + ROM_LOAD( "prom2.61d", 0x0120, 0x0100, BAD_DUMP CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) // lookup table, marked as 7052 on display board ROM_END diff -Nru mame-0.223+dfsg.1/src/mame/drivers/chihiro.cpp mame-0.224+dfsg.1/src/mame/drivers/chihiro.cpp --- mame-0.223+dfsg.1/src/mame/drivers/chihiro.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/chihiro.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -36,7 +36,8 @@ | | 2004 | Wangan Midnight Maximum Tune (Export) | Namco | GDROM | GDX-0009 | 317-5101-COM | | | 2004 | Wangan Midnight Maximum Tune (Export, Rev A) | Namco | GDROM | GDX-0009A | 317-5101-COM | |*| 20040610 | Wangan Midnight Maximum Tune (Export, Rev B) | Namco | GDROM | GDX-0009B | 317-5101-COM | -| | 2004 | Sega Club Golf | Sega | GDROM | GDX-0010 | | +| | 2004 | Sega Golf Club Network Pro Tour 2005 | Sega | GDROM | GDX-0010 | ??? | +|*| 2004 | Sega Golf Club Network Pro Tour 2005 (Rev C) | Sega | GDROM | GDX-0010C | ??? | |*| 20040909 | OutRun 2 Special Tours (Japan) | Sega | GDROM | GDX-0011 | 317-0396-COM | |*| 20041229 | OutRun 2 Special Tours (Japan, Rev A) | Sega | GDROM | GDX-0011A | 317-0396-COM | |*| 20040914 | Ghost Squad | Sega | GDROM | GDX-0012 | 317-0398-COM | @@ -2162,6 +2163,16 @@ ROM_LOAD("crp1231lr10_ver0110.ic2", 0, 0x20000, CRC(0d30707c) SHA1(425e25c6203d0b400d12391916db3f7cdad00f7a) ) // H8/3003 code ROM_END +ROM_START( scg05nt ) + CHIHIRO_BIOS + + DISK_REGION( "gdrom" ) + DISK_IMAGE_READONLY( "gdx-0010c", 0, SHA1(ef3d7577960a21cc71b4523fa26880f7897b628c) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD( "317-0xxx.pic", 0x000000, 0x004000, NO_DUMP ) +ROM_END + ROM_START( outr2stjo ) CHIHIRO_BIOS @@ -2577,7 +2588,8 @@ // 0009 GAME( 2004, wangmido, wangmid, chihirogd, chihiro, chihiro_state, empty_init, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (GDX-0009)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) // 0009A GAME( 2004, wangmida, wangmid, chihirogd, chihiro, chihiro_state, empty_init, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export, Rev A) (GDX-0009A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) /* 0009B */ GAME( 2004, wangmid, chihiro, chihirogd, chihiro, chihiro_state, empty_init, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export, Rev B) (GDX-0009B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0010 Sega Golf Club +// 0010 Sega Golf Club Network Pro Tour 2005 +/* 0010C */ GAME( 2004, scg05nt, chihiro, chihirogd, chihiro, chihiro_state, empty_init, ROT0, "Sega", "Sega Golf Club Network Pro Tour 2005 (Rev C) (GDX-0010C)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) /* 0011 */ GAME( 2004, outr2stjo,outr2st, chihirogd, chihiro, chihiro_state, empty_init, ROT0, "Sega", "OutRun 2 Special Tours (Japan) (GDX-0011)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* 0011A */ GAME( 2004, outr2stj, outr2st, chihirogd, chihiro, chihiro_state, empty_init, ROT0, "Sega", "OutRun 2 Special Tours (Japan, Rev A) (GDX-0011A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* 0012 */ GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, chihiro_state, empty_init, ROT0, "Sega", "Ghost Squad (GDX-0012)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cinemat.cpp mame-0.224+dfsg.1/src/mame/drivers/cinemat.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cinemat.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cinemat.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -37,6 +37,7 @@ #include "demon.lh" #include "starcas.lh" #include "solarq.lh" +#include "speedfrk.lh" #include "sundance.lh" #include "tailg.lh" #include "warrior.lh" @@ -82,15 +83,15 @@ * *************************************/ -uint8_t cinemat_state::inputs_r(offs_t offset) +u8 cinemat_state::inputs_r(offs_t offset) { return (m_inputs->read() >> offset) & 1; } -uint8_t cinemat_state::switches_r(offs_t offset) +u8 cinemat_state::switches_r(offs_t offset) { - static const uint8_t switch_shuffle[8] = { 2,5,4,3,0,1,6,7 }; + static const u8 switch_shuffle[8] = { 2,5,4,3,0,1,6,7 }; return (m_switches->read() >> switch_shuffle[offset]) & 1; } @@ -110,7 +111,7 @@ } -uint8_t cinemat_state::coin_input_r() +u8 cinemat_state::coin_input_r() { return !m_coin_detected; } @@ -144,13 +145,13 @@ * *************************************/ -uint8_t cinemat_state::joystick_read() +u8 cinemat_state::joystick_read() { if (machine().phase() != machine_phase::RUNNING) return 0; else { - int const xval = int16_t(m_maincpu->state_int(ccpu_cpu_device::CCPU_X) << 4) >> 4; + int const xval = s16(m_maincpu->state_int(ccpu_cpu_device::CCPU_X) << 4) >> 4; return ((m_mux_select ? m_analog_x : m_analog_y).read_safe(0) - xval) < 0x800; } } @@ -163,13 +164,13 @@ * *************************************/ -uint8_t cinemat_state::speedfrk_wheel_r(offs_t offset) +u8 cinemat_state::speedfrk_wheel_r(offs_t offset) { - static const uint8_t speedfrk_steer[] = {0xe, 0x6, 0x2, 0x0, 0x3, 0x7, 0xf}; + static const u8 speedfrk_steer[] = {0xe, 0x6, 0x2, 0x0, 0x3, 0x7, 0xf}; int delta_wheel; /* the shift register is cleared once per 'frame' */ - delta_wheel = int8_t(m_wheel->read()) / 8; + delta_wheel = s8(m_wheel->read()) / 8; if (delta_wheel > 3) delta_wheel = 3; else if (delta_wheel < -3) @@ -179,23 +180,14 @@ } -uint8_t cinemat_state::speedfrk_gear_r(offs_t offset) +u8 cinemat_state::speedfrk_gear_r(offs_t offset) { - int gearval = m_gear_input->read(); - - /* check the fake gear input port and determine the bit settings for the gear */ - if ((gearval & 0x0f) != 0x0f) - m_gear = gearval & 0x0f; - - /* add the start key into the mix -- note that it overlaps 4th gear */ - if (!(m_inputs->read() & 0x80)) - m_gear &= ~0x08; - - return (m_gear >> offset) & 1; + return (m_gear != offset); } + /************************************* * * Sundance inputs @@ -205,7 +197,7 @@ static const struct { const char *portname; - uint16_t bitmask; + u16 bitmask; } sundance_port_map[16] = { { "PAD1", 0x155 }, /* bit 0 is set if P1 1,3,5,7,9 is pressed */ @@ -230,7 +222,7 @@ }; -uint8_t cinemat_16level_state::sundance_inputs_r(offs_t offset) +u8 cinemat_16level_state::sundance_inputs_r(offs_t offset) { /* handle special keys first */ if (sundance_port_map[offset].portname) @@ -247,7 +239,7 @@ * *************************************/ -uint8_t cinemat_color_state::boxingb_dial_r(offs_t offset) +u8 cinemat_color_state::boxingb_dial_r(offs_t offset) { int value = ioport("DIAL")->read(); if (!m_mux_select) offset += 4; @@ -262,7 +254,7 @@ * *************************************/ -uint8_t qb3_state::qb3_frame_r() +u8 qb3_state::qb3_frame_r() { attotime next_update = m_screen->time_until_update(); attotime frame_period = m_screen->frame_period(); @@ -273,7 +265,7 @@ } -void qb3_state::qb3_ram_bank_w(uint8_t data) +void qb3_state::qb3_ram_bank_w(u8 data) { membank("bank1")->set_entry(m_maincpu->state_int(ccpu_cpu_device::CCPU_P) & 3); } @@ -480,10 +472,13 @@ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_RESET PORT_START("GEAR") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("1st gear") PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("2nd gear") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("3rd gear") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("4th gear") PORT_PLAYER(2) + PORT_BIT (0x03, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(cinemat_state, speedfrk_gear_number_r) + + PORT_START("GEARRAW") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("1st gear") PORT_PLAYER(2) PORT_WRITE_LINE_MEMBER(cinemat_state, speedfrk_gear_change_w<0>) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("2nd gear") PORT_PLAYER(2) PORT_WRITE_LINE_MEMBER(cinemat_state, speedfrk_gear_change_w<1>) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("3rd gear") PORT_PLAYER(2) PORT_WRITE_LINE_MEMBER(cinemat_state, speedfrk_gear_change_w<2>) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("4th gear") PORT_PLAYER(2) PORT_WRITE_LINE_MEMBER(cinemat_state, speedfrk_gear_change_w<3>) INPUT_PORTS_END @@ -1504,7 +1499,6 @@ void cinemat_state::init_speedfrk() { - m_gear = 0xe; m_maincpu->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(*this, FUNC(cinemat_state::speedfrk_wheel_r))); m_maincpu->space(AS_IO).install_read_handler(0x04, 0x06, read8sm_delegate(*this, FUNC(cinemat_state::speedfrk_gear_r))); save_item(NAME(m_gear)); @@ -1542,7 +1536,7 @@ GAME( 1977, spacewar, 0, spacewar, spacewar, cinemat_state, empty_init, ORIENTATION_FLIP_Y, "Cinematronics", "Space Wars", MACHINE_SUPPORTS_SAVE ) GAME( 1978, spaceshp, spacewar, spacewar, spaceshp, cinemat_state, empty_init, ORIENTATION_FLIP_Y, "Cinematronics (Sega license)", "Space Ship", MACHINE_SUPPORTS_SAVE ) GAMEL( 1979, barrier, 0, barrier, barrier, cinemat_state, empty_init, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics (Vectorbeam license)", "Barrier", MACHINE_SUPPORTS_SAVE, layout_barrier ) // developed by Cinematronics, then (when they noticed it wasn't going to be a successful game) sold to Vectorbeam, and ultimately back in the hands of Cinematronics again after they bought the dying company Vectorbeam -GAME( 1979, speedfrk, 0, speedfrk, speedfrk, cinemat_state, init_speedfrk, ORIENTATION_FLIP_Y, "Vectorbeam", "Speed Freak", MACHINE_SUPPORTS_SAVE ) +GAMEL( 1979, speedfrk, 0, speedfrk, speedfrk, cinemat_state, init_speedfrk, ORIENTATION_FLIP_Y, "Vectorbeam", "Speed Freak", MACHINE_SUPPORTS_SAVE, layout_speedfrk ) GAME( 1979, starhawk, 0, starhawk, starhawk, cinemat_state, empty_init, ORIENTATION_FLIP_Y, "Cinematronics", "Star Hawk", MACHINE_SUPPORTS_SAVE ) GAMEL( 1979, sundance, 0, sundance, sundance, cinemat_16level_state, init_sundance, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics", "Sundance", MACHINE_SUPPORTS_SAVE, layout_sundance ) GAMEL( 1979, tailg, 0, tailg, tailg, cinemat_state, empty_init, ORIENTATION_FLIP_Y, "Cinematronics", "Tailgunner", MACHINE_SUPPORTS_SAVE, layout_tailg ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/circus.cpp mame-0.224+dfsg.1/src/mame/drivers/circus.cpp --- mame-0.223+dfsg.1/src/mame/drivers/circus.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/circus.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -501,23 +501,27 @@ ROM_START( robotbwl ) ROM_REGION( 0x10000, "maincpu", 0 ) // code - ROM_LOAD( "robotbwl.1a", 0xf000, 0x0200, CRC(df387a0b) SHA1(97291f1a93cbbff987b0fbc16c2e87ad0db96e12) ) - ROM_LOAD( "robotbwl.2a", 0xf200, 0x0200, CRC(c948274d) SHA1(1bf8c6e994d601d4e6d30ca2a9da97e140ff5eee) ) - ROM_LOAD( "robotbwl.3a", 0xf400, 0x0200, CRC(8fdb3ec5) SHA1(a9290edccb8f75e7ec91416d46617516260d5944) ) - ROM_LOAD( "robotbwl.5a", 0xf600, 0x0200, CRC(ba9a6929) SHA1(9cc6e85431b5d82bf3a624f7b35ddec399ad6c80) ) - ROM_LOAD( "robotbwl.6a", 0xf800, 0x0200, CRC(16fd8480) SHA1(935bb0c87d25086f326571c83f94f831b1a8b036) ) - ROM_LOAD( "robotbwl.7a", 0xfa00, 0x0200, CRC(4cadbf06) SHA1(380c10aa83929bfbfd89facb252e68c307545755) ) - ROM_LOAD( "robotbwl.8a", 0xfc00, 0x0200, CRC(bc809ed3) SHA1(2bb4cdae8c9619eebea30cc323960a46a509bb58) ) - ROM_LOAD( "robotbwl.9a", 0xfe00, 0x0200, CRC(07487e27) SHA1(b5528fb3fec474df2b66f36e28df13a7e81f9ce3) ) + ROM_LOAD( "4020.1a", 0xf000, 0x0200, CRC(df387a0b) SHA1(97291f1a93cbbff987b0fbc16c2e87ad0db96e12) ) // these are all N82S141N BPROMs + ROM_LOAD( "4021.2a", 0xf200, 0x0200, CRC(c948274d) SHA1(1bf8c6e994d601d4e6d30ca2a9da97e140ff5eee) ) + ROM_LOAD( "4022.3a", 0xf400, 0x0200, CRC(8fdb3ec5) SHA1(a9290edccb8f75e7ec91416d46617516260d5944) ) + ROM_LOAD( "4023.5a", 0xf600, 0x0200, CRC(ba9a6929) SHA1(9cc6e85431b5d82bf3a624f7b35ddec399ad6c80) ) + ROM_LOAD( "4024.6a", 0xf800, 0x0200, CRC(16fd8480) SHA1(935bb0c87d25086f326571c83f94f831b1a8b036) ) + ROM_LOAD( "4025.7a", 0xfa00, 0x0200, CRC(4cadbf06) SHA1(380c10aa83929bfbfd89facb252e68c307545755) ) + ROM_LOAD( "4026a.8a", 0xfc00, 0x0200, CRC(bc809ed3) SHA1(2bb4cdae8c9619eebea30cc323960a46a509bb58) ) + ROM_LOAD( "4027b.9a", 0xfe00, 0x0200, CRC(07487e27) SHA1(b5528fb3fec474df2b66f36e28df13a7e81f9ce3) ) ROM_REGION( 0x0800, "gfx1", 0 ) // character set - ROM_LOAD( "robotbwl.4c", 0x0000, 0x0200, CRC(a5f7acb9) SHA1(556dd34d0fa50415b128477e208e96bf0c050c2c) ) - ROM_LOAD( "robotbwl.3c", 0x0200, 0x0200, CRC(d5380c9b) SHA1(b9670e87011a1b3aebd1d386f1fe6a74f8c77be9) ) - ROM_LOAD( "robotbwl.2c", 0x0400, 0x0200, CRC(47b3e39c) SHA1(393c680fba3bd384e2c773150c3bae4d735a91bf) ) - ROM_LOAD( "robotbwl.1c", 0x0600, 0x0200, CRC(b2991e7e) SHA1(32b6d42bb9312d6cbe5b4113fcf2262bfeef3777) ) + ROM_LOAD( "4010.4c", 0x0000, 0x0200, CRC(a5f7acb9) SHA1(556dd34d0fa50415b128477e208e96bf0c050c2c) ) // these are all N82S141N BPROMs + ROM_LOAD( "4011.3c", 0x0200, 0x0200, CRC(d5380c9b) SHA1(b9670e87011a1b3aebd1d386f1fe6a74f8c77be9) ) + ROM_LOAD( "4012.2c", 0x0400, 0x0200, CRC(47b3e39c) SHA1(393c680fba3bd384e2c773150c3bae4d735a91bf) ) + ROM_LOAD( "4013.1c", 0x0600, 0x0200, CRC(b2991e7e) SHA1(32b6d42bb9312d6cbe5b4113fcf2262bfeef3777) ) ROM_REGION( 0x0020, "gfx2", ROMREGION_INVERT ) // ball sprite - ROM_LOAD( "robotbwl.14d",0x0000, 0x0020, CRC(a402ac06) SHA1(3bd75630786bcc86d9e9fbc826adc909eef9b41f) ) + ROM_LOAD( "6000.14d",0x0000, 0x0020, CRC(a402ac06) SHA1(3bd75630786bcc86d9e9fbc826adc909eef9b41f) ) + + ROM_REGION( 0x100, "extra_proms", 0 ) // timing? not used by the emulation + ROM_LOAD( "5000.4d", 0x000, 0x020, NO_DUMP ) // both of these are MMI6306-1J (N82S131 equivalent) BPROMs + ROM_LOAD( "5001.5d", 0x020, 0x020, NO_DUMP ) ROM_END ROM_START( crash ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cischeat.cpp mame-0.224+dfsg.1/src/mame/drivers/cischeat.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cischeat.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cischeat.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -626,6 +626,24 @@ /************************************************************************** Arm Champs II + +The Arm Champs II start-up arm movement and info +--------------------------------------------------------------------- +At power-on, the arm moves left, then right then to center and stops. +The center position is 0000. +Note when the arm is at 0000 (center) the center limit switch is not +on. It comes on when the arm is moved just off center (+-0002 or greater +away from center) and stays on as long as the arm is not on +0001-0000-FFFF (both left and right side). When the arm hits the +left/right limit, both center and that left or right limit switch is on. + +Full movement to left limit switch is 0000-0040 (0x41h) and full right +limit switch movement is 0000-FFC2 (0x3eh). Obviously the pot and arm +are not 100% accurate and there's a small amount of slop between the +arm shaft / motor mechanism and the pot. +The limit switches are triggered just before the full movement. +For the purpose of MAME emulation it can be rounded off so both sides +move +- 0x40h. **************************************************************************/ uint16_t armchamp2_state::motor_status_r() diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cit101.cpp mame-0.224+dfsg.1/src/mame/drivers/cit101.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cit101.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cit101.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2,7 +2,7 @@ // copyright-holders:AJR /*********************************************************************************************************************************** -Preliminary driver for first-generation C. Itoh video terminals. +Preliminary driver for first-generation C. Itoh/CIE video terminals. CIT-101 (released December 1980) C. Itoh's first terminal, based on DEC VT100. ANSI X3.64 and V52 compatible. @@ -30,6 +30,8 @@ Ergonomic redesign of CIT-101. Competitive with DEC VT220 (which was released several months later). 14-inch monochrome screen with tilt/swivel, 24 lines of 80 or 132 characters. + 10 x 12 (80 columns)/9 x 12 (132 columns) display cell. + 19,610 Hz (80 columns)/18,870 Hz (132 columns) horizontal frequency. 85-key low-profile keyboard. CIG-201 Plug-in graphics card for CIT-101 and CIT-101e. @@ -47,7 +49,9 @@ * CTRL+D: Restore default NVR settings * CTRL+A: Set answerback message * CTRL+X: Enable/disable Bidirectional Auxiliary I/O Channel and SET-UP D Mode - (undocumented; SET-UP B Mode only) + (SET-UP B Mode only; documented only for CIT-101e but also valid on original) + +The NVR checksum error reported when the terminal is first used is nonfatal. Default settings will be used and can be saved. ************************************************************************************************************************************/ @@ -63,27 +67,35 @@ #include "machine/cit101_kbd.h" - class cit101_state : public driver_device { public: cit101_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") , m_screen(*this, "screen") , m_nvr(*this, "nvr") , m_comuart(*this, "comuart") , m_kbduart(*this, "kbduart") + , m_rombank(*this, "rombank") , m_chargen(*this, "chargen") , m_mainram(*this, "mainram") , m_extraram(*this, "extraram") - { } + { + } void cit101(machine_config &config); + void cit101e(machine_config &config); + protected: virtual void machine_start() override; + private: void draw_line(uint32_t *pixptr, int minx, int maxx, int line, bool last_line, u16 rowaddr, u16 rowattr, u8 scrattr); u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + void screen_reconfigure(const XTAL &xtal, int visible_width, int total_width, int visible_height, int total_height); + + u8 bank_switch_r(offs_t offset); u8 c000_ram_r(offs_t offset); void c000_ram_w(offs_t offset, u8 data); @@ -92,23 +104,29 @@ DECLARE_WRITE_LINE_MEMBER(blink_w); void screen_control_w(u8 data); + void screen_control_101e_w(u8 data); void brightness_w(u8 data); + void brightness_101e_w(u8 data); void nvr_address_w(u8 data); void nvr_control_w(u8 data); void mem_map(address_map &map); + void mem_map_101e(address_map &map); void io_map(address_map &map); + void io_map_101e(address_map &map); u8 m_e0_latch; bool m_blink; u8 m_brightness; + required_device m_maincpu; required_device m_screen; required_device m_nvr; required_device m_comuart; required_device m_kbduart; + optional_memory_bank m_rombank; required_region_ptr m_chargen; required_shared_ptr m_mainram; required_shared_ptr m_extraram; @@ -117,6 +135,12 @@ void cit101_state::machine_start() { + if (m_rombank.found()) + { + m_rombank->configure_entries(0, 8, memregion("banked")->base(), 0x1000); + m_rombank->set_entry(0); + } + m_comuart->write_cts(0); m_kbduart->write_cts(0); @@ -166,8 +190,8 @@ char_data = m_chargen[(m_mainram[rowaddr] << 4) | line]; if (last_line && BIT(attr, 0)) char_data ^= 0xff; - on_color = BIT(attr, 1) ? rgb_t::black() : rgb_t(m_brightness, m_brightness, m_brightness); - off_color = BIT(attr, 1) ? rgb_t(m_brightness, m_brightness, m_brightness) : rgb_t::black(); + on_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::black() : rgb_t(m_brightness, m_brightness, m_brightness); + off_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t(m_brightness, m_brightness, m_brightness) : rgb_t::black(); if (BIT(attr, 3) && m_blink) on_color = rgb_t(m_brightness * 0.75, m_brightness * 0.75, m_brightness * 0.75); last_bit = false; @@ -217,6 +241,24 @@ } +void cit101_state::screen_reconfigure(const XTAL &xtal, int visible_width, int total_width, int visible_height, int total_height) +{ + const rectangle visarea(0, visible_width - 1, 0, visible_height - 1); + const attoseconds_t frame_period = attotime::from_ticks(total_width * total_height, xtal).as_attoseconds(); + + m_screen->set_unscaled_clock(xtal); + m_screen->configure(total_width, total_height, visarea, frame_period); +} + + +u8 cit101_state::bank_switch_r(offs_t offset) +{ + if (!machine().side_effects_disabled()) + m_rombank->set_entry(offset); + + return 0xc9; // RET +} + u8 cit101_state::c000_ram_r(offs_t offset) { if (!machine().side_effects_disabled()) @@ -250,19 +292,25 @@ if ((m_extraram[0] & 0x06) != (data & 0x06)) { const int height = BIT(data, 2) ? 312 : 260; - const attoseconds_t frame_period = HZ_TO_ATTOSECONDS(BIT(data, 2) ? 50 : 60); if (BIT(data, 1)) - { - const rectangle visarea(0, 799, 0, 239); - m_screen->set_unscaled_clock(14.976_MHz_XTAL); - m_screen->configure(960, height, visarea, frame_period); - } + screen_reconfigure(14.976_MHz_XTAL, 800, 960, 240, height); else - { - const rectangle visarea(0, 1187, 0, 239); - m_screen->set_unscaled_clock(22.464_MHz_XTAL); - m_screen->configure(1440, height, visarea, frame_period); - } + screen_reconfigure(22.464_MHz_XTAL, 1188, 1440, 240, height); + } + + m_extraram[0] = data; +} + +void cit101_state::screen_control_101e_w(u8 data) +{ + if ((m_extraram[0] & 0x06) != (data & 0x06)) + { + // TODO: interlace mode + const int height = 300; + if (BIT(data, 1)) + screen_reconfigure(19.6608_MHz_XTAL, 800, 1000, 288, height); + else + screen_reconfigure(27.956_MHz_XTAL, 1188, 1476, 288, height); } m_extraram[0] = data; @@ -274,6 +322,12 @@ m_brightness = pal5bit(~data & 0x1f); } +void cit101_state::brightness_101e_w(u8 data) +{ + // Function of most significant bit is unknown + m_brightness = pal7bit(~data & 0x7f); +} + void cit101_state::nvr_address_w(u8 data) { m_nvr->set_address(data & 0x3f); @@ -300,6 +354,23 @@ map(0xfcc0, 0xfcc3).w("pit1", FUNC(pit8253_device::write)); } +void cit101_state::mem_map_101e(address_map &map) +{ + map(0x0000, 0x2fff).rom().region("maincpu", 0); + map(0x3000, 0x3ff7).bankr("rombank"); + map(0x3ff8, 0x3fff).r(FUNC(cit101_state::bank_switch_r)); + map(0x4000, 0x7fff).ram().share("mainram"); + map(0x8000, 0xbfff).ram().share("extraram"); // 6 bits wide here? + map(0x8000, 0x8000).w(FUNC(cit101_state::screen_control_101e_w)); + map(0xc000, 0xfbff).rw(FUNC(cit101_state::c000_ram_r), FUNC(cit101_state::c000_ram_w)); + map(0xfc00, 0xfc01).rw("auxuart", FUNC(i8251_device::read), FUNC(i8251_device::write)); + map(0xfc20, 0xfc21).rw("comuart", FUNC(i8251_device::read), FUNC(i8251_device::write)); + map(0xfc40, 0xfc41).rw("kbduart", FUNC(i8251_device::read), FUNC(i8251_device::write)); + map(0xfc60, 0xfc63).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0xfc80, 0xfc83).w("pit0", FUNC(pit8253_device::write)); + map(0xfcc0, 0xfcc3).w("pit1", FUNC(pit8253_device::write)); +} + void cit101_state::io_map(address_map &map) { map(0x00, 0x01).rw("auxuart", FUNC(i8251_device::read), FUNC(i8251_device::write)); @@ -310,18 +381,24 @@ map(0xe0, 0xe0).rw(FUNC(cit101_state::e0_latch_r), FUNC(cit101_state::e0_latch_w)); } +void cit101_state::io_map_101e(address_map &map) +{ + io_map(map); + map(0xa0, 0xa0).w(FUNC(cit101_state::brightness_101e_w)); +} -static INPUT_PORTS_START( cit101 ) + +static INPUT_PORTS_START(cit101) INPUT_PORTS_END void cit101_state::cit101(machine_config &config) { - i8085a_cpu_device &maincpu(I8085A(config, "maincpu", 6.144_MHz_XTAL)); - maincpu.set_addrmap(AS_PROGRAM, &cit101_state::mem_map); - maincpu.set_addrmap(AS_IO, &cit101_state::io_map); - maincpu.in_sid_func().set_constant(0); // used to time NVR reads - maincpu.out_sod_func().set(FUNC(cit101_state::blink_w)); + I8085A(config, m_maincpu, 6.144_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &cit101_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &cit101_state::io_map); + m_maincpu->in_sid_func().set_constant(0); // used to time NVR reads + m_maincpu->out_sod_func().set(FUNC(cit101_state::blink_w)); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); //m_screen->set_raw(14.976_MHz_XTAL, 960, 0, 800, 260, 0, 240); @@ -354,10 +431,10 @@ INPUT_MERGER_ANY_HIGH(config, "uartint").output_handler().set_inputline("maincpu", I8085_RST55_LINE); I8251(config, m_kbduart, 6.144_MHz_XTAL / 2); - m_kbduart->txd_handler().set("keyboard", FUNC(cit101_hle_keyboard_device::write_rxd)); + m_kbduart->txd_handler().set("keyboard", FUNC(cit101_keyboard_device::write_rxd)); m_kbduart->rxrdy_handler().set_inputline("maincpu", I8085_RST65_LINE); - CIT101_HLE_KEYBOARD(config, "keyboard").txd_callback().set("kbduart", FUNC(i8251_device::write_rxd)); + CIT101_KEYBOARD(config, "keyboard").txd_callback().set("kbduart", FUNC(i8251_device::write_rxd)); pit8253_device &pit0(PIT8253(config, "pit0", 0)); pit0.set_clk<0>(6.144_MHz_XTAL / 4); @@ -390,29 +467,69 @@ ER2055(config, m_nvr); } +void cit101_state::cit101e(machine_config &config) +{ + cit101(config); + + m_maincpu->set_addrmap(AS_PROGRAM, &cit101_state::mem_map_101e); + m_maincpu->set_addrmap(AS_IO, &cit101_state::io_map_101e); + + //m_screen->set_raw(19.6608_MHz_XTAL, 1000, 0, 800, 300, 0, 288); // 65.3 Hz nominal vertical frequency + m_screen->set_raw(27.956_MHz_XTAL, 1476, 0, 1188, 300, 0, 288); // 63.2 Hz nominal vertical frequency + + CIT101E_KEYBOARD(config.replace(), "keyboard").txd_callback().set("kbduart", FUNC(i8251_device::write_rxd)); +} + // PCB ID: HAV-2P005B / CIT-101 / C. ITOH // CPU: NEC D8085AC // RAM: 12x NEC D416C-2 (16 positions labeled 8116E, including 4 unpopulated ones) // Peripherals: 3x M5L8251AP-5 (2M, 7J, 7K); 2x NEC D8253C-2 (7I, 7L); NEC D8255AC-2 (7N); GI ER-2055 (8P) // Oscillators: 6.144 (XTAL1), 14.976 (XTAL2), 22.464 (XTAL3) -ROM_START( cit101 ) +ROM_START(cit101) ROM_REGION(0x4000, "maincpu", 0) - ROM_LOAD( "ic1_=3g04=_v10a.bin", 0x0000, 0x1000, CRC(5601fcac) SHA1(cad0d0335d133dd43993bc718ff72d12b8445cd1) ) // TMM2732D-45 - ROM_LOAD( "ic2_=3h04=_v10a.bin", 0x1000, 0x1000, CRC(23d263e0) SHA1(586e8185f9804987e0a4081724c060e74769d41d) ) // TMM2732D-45 - ROM_LOAD( "ic3_=3i04=_v10a.bin", 0x2000, 0x1000, CRC(15994b1d) SHA1(6d125db4ef5e1dd4d5a4d2f4d6f6bdf574e5bad8) ) // TMM2732D-45 - ROM_LOAD( "ic4_=3j04=_v10a.bin", 0x3000, 0x0800, CRC(d786995f) SHA1(943b521dcc7abc0662d6e136169b7db480ae1e5c) ) // MB8516 + ROM_LOAD("ic1_=3g04=_v10a.bin", 0x0000, 0x1000, CRC(5601fcac) SHA1(cad0d0335d133dd43993bc718ff72d12b8445cd1)) // TMM2732D-45 + ROM_LOAD("ic2_=3h04=_v10a.bin", 0x1000, 0x1000, CRC(23d263e0) SHA1(586e8185f9804987e0a4081724c060e74769d41d)) // TMM2732D-45 + ROM_LOAD("ic3_=3i04=_v10a.bin", 0x2000, 0x1000, CRC(15994b1d) SHA1(6d125db4ef5e1dd4d5a4d2f4d6f6bdf574e5bad8)) // TMM2732D-45 + ROM_LOAD("ic4_=3j04=_v10a.bin", 0x3000, 0x0800, CRC(d786995f) SHA1(943b521dcc7abc0662d6e136169b7db480ae1e5c)) // MB8516 ROM_RELOAD(0x3800, 0x0800) ROM_REGION(0x1000, "chargen", 0) - ROM_LOAD( "1h =5h 1 02= char rom.bin", 0x0000, 0x1000, CRC(ee0ff889) SHA1(a74ada19d19041b29e1b49aaf57ba7d9d54575e1) ) // TMM2332P + ROM_LOAD("1h =5h 1 02= char rom.bin", 0x0000, 0x1000, CRC(ee0ff889) SHA1(a74ada19d19041b29e1b49aaf57ba7d9d54575e1)) // TMM2332P ROM_REGION(0x180, "proms", 0) - ROM_LOAD( "2i_=3a00=.bin", 0x000, 0x100, NO_DUMP ) // position labeled (MB)7052 - ROM_LOAD( "2f_=6g00=.bin", 0x100, 0x020, NO_DUMP ) // position labeled TBP18S030 - ROM_LOAD( "2e_=7i00=.bin", 0x120, 0x020, NO_DUMP ) // position labeled TBP18S030 - ROM_LOAD( "5d_=4l00=.bin", 0x140, 0x020, NO_DUMP ) // position labeled TBP18S030 - ROM_LOAD( "5g_=7f00=.bin", 0x160, 0x020, NO_DUMP ) // position labeled TBP18S030 + ROM_LOAD("2i_=3a00=.bin", 0x000, 0x100, NO_DUMP) // position labeled (MB)7052 + ROM_LOAD("2f_=6g00=.bin", 0x100, 0x020, NO_DUMP) // position labeled TBP18S030 + ROM_LOAD("2e_=7i00=.bin", 0x120, 0x020, NO_DUMP) // position labeled TBP18S030 + ROM_LOAD("5d_=4l00=.bin", 0x140, 0x020, NO_DUMP) // position labeled TBP18S030 + ROM_LOAD("5g_=7f00=.bin", 0x160, 0x020, NO_DUMP) // position labeled TBP18S030 +ROM_END + +// PCB ID: C.ITOH CIT-101e HBG-2P002 +// CPU: NEC D8085AHC +// RAM: 14x Fujitsu MB8118-12 (16 positions labeled 8118, including 2 unpopulated ones) +// Peripherals: 3x NEC D8251AFC (7M, 7N, 7R); 2x NEC D8253C-2 (7J, 7K); NEC D8255AC-2 (6N); GI ER-2055 (5R) +// Oscillators: 19.6608 (XTAL1), 27.956 (XTAL2), 6.144 (XTAL3) +ROM_START(cit101e) + ROM_REGION(0x3000, "maincpu", 0) + ROM_LOAD("101e_v12c__12.7a", 0x0000, 0x2000, CRC(bc71ad27) SHA1(e61481752e20b115531b76688242691d265853e7)) + ROM_LOAD("101e_v12c__3.7c", 0x2000, 0x1000, CRC(b4c63dd1) SHA1(aff9bd8e79e83c176c882fa3251a1419a283e753)) + + ROM_REGION(0x8000, "banked", ROMREGION_ERASEFF) + ROM_LOAD("101e_v12c__ab.7f", 0x0000, 0x2000, CRC(6d6bc1ee) SHA1(f42596b379bfda0468045d9e3810a1f0990f76f6)) + + ROM_REGION(0x1000, "chargen", 0) + ROM_LOAD("cit-101e_char_gen.3g", 0x0000, 0x1000, CRC(ccf259b4) SHA1(d918f16ce148c813a865280a43a766983673464a)) // position labeled 2732/2332 + + ROM_REGION(0x1c0, "proms", 0) + ROM_LOAD("2c=atr=__.bin", 0x000, 0x100, NO_DUMP) // position labeled MB7052 + ROM_LOAD("6j=adr=00.bin", 0x100, 0x020, NO_DUMP) // position labeled (TBP)18S030 + ROM_LOAD("1n=hs=00.bin", 0x120, 0x020, NO_DUMP) // position labeled (TBP)18S030 + ROM_LOAD("2n=hl=__.bin", 0x140, 0x020, NO_DUMP) // position labeled (TBP)18S030 + ROM_LOAD("1s=vs=__.bin", 0x160, 0x020, NO_DUMP) // position labeled (TBP)18S030 + ROM_LOAD("4s=it1=__.bin", 0x180, 0x020, NO_DUMP) // position labeled (TBP)18S030 + ROM_LOAD("4t=it2=06.bin", 0x1a0, 0x020, NO_DUMP) // position labeled (TBP)18S030 ROM_END -COMP( 1980, cit101, 0, 0, cit101, cit101, cit101_state, empty_init, "C. Itoh Electronics", "CIT-101", MACHINE_NOT_WORKING ) +COMP(1980, cit101, 0, 0, cit101, cit101, cit101_state, empty_init, "C. Itoh Electronics", "CIT-101 Video Terminal", MACHINE_SUPPORTS_SAVE) +COMP(1983, cit101e, 0, 0, cit101e, cit101, cit101_state, empty_init, "C. Itoh Electronics", "CIT-101e Video Terminal", MACHINE_SUPPORTS_SAVE) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cit101xl.cpp mame-0.224+dfsg.1/src/mame/drivers/cit101xl.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cit101xl.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cit101xl.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,112 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/*********************************************************************************************************************************** + +Skeleton driver for CIE Terminals (C. Itoh) CIT-50+ and CIT-101XL video terminals. + +***********************************************************************************************************************************/ + +#include "emu.h" +//#include "bus/rs232/rs232.h" +#include "cpu/z180/z180.h" +#include "machine/nvram.h" +#include "video/scn2674.h" +#include "screen.h" + +class cit101xl_state : public driver_device +{ +public: + cit101xl_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_avdc(*this, "avdc") + { + } + + void cit101xl(machine_config &config); + +private: + SCN2674_DRAW_CHARACTER_MEMBER(draw_character); + + void mem_map(address_map &map); + void io_map(address_map &map); + void char_map(address_map &map); + void attr_map(address_map &map); + + required_device m_maincpu; + required_device m_avdc; +}; + + +SCN2674_DRAW_CHARACTER_MEMBER(cit101xl_state::draw_character) +{ +} + + +void cit101xl_state::mem_map(address_map &map) +{ + map(0x00000, 0x07fff).rom().region("program", 0); + map(0x1c000, 0x1ffff).rom().region("program", 0x8000); + map(0x2e000, 0x2ffff).ram().share("nvram"); +} + +void cit101xl_state::io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x3f).noprw(); // HD64180 internal registers + map(0x40, 0x47).rw(m_avdc, FUNC(scn2674_device::read), FUNC(scn2674_device::write)); + map(0x48, 0x48).nopr(); // watchdog? + map(0x60, 0x60).w(m_avdc, FUNC(scn2674_device::buffer_w)); + map(0x68, 0x68).r(m_avdc, FUNC(scn2674_device::buffer_r)); + map(0x70, 0x70).w(m_avdc, FUNC(scn2674_device::attr_buffer_w)); + map(0x78, 0x78).r(m_avdc, FUNC(scn2674_device::attr_buffer_r)); +} + +void cit101xl_state::char_map(address_map &map) +{ + map(0x0000, 0x3fff).ram(); // TMM2063P-12 x2 +} + +void cit101xl_state::attr_map(address_map &map) +{ + map(0x0000, 0x3fff).ram(); // TMM2063P-12 x2 +} + + +static INPUT_PORTS_START(cit101xl) +INPUT_PORTS_END + + +void cit101xl_state::cit101xl(machine_config &config) +{ + HD64180RP(config, m_maincpu, 12.288_MHz_XTAL); // HD64B180R0P + m_maincpu->set_addrmap(AS_PROGRAM, &cit101xl_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &cit101xl_state::io_map); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // TC5564APL-15 + battery? + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(24.27_MHz_XTAL, 980, 0, 820, 413, 0, 364); + screen.set_screen_update(m_avdc, FUNC(scn2674_device::screen_update)); + + SCN2674(config, m_avdc, 24.27_MHz_XTAL / 10); // SCN2674BC4N40 + //m_avdc->intr_callback().set_inputline(m_maincpu, ???); + m_avdc->set_character_width(10); // 10x13 character cell + m_avdc->set_display_callback(FUNC(cit101xl_state::draw_character)); + m_avdc->set_addrmap(0, &cit101xl_state::char_map); + m_avdc->set_addrmap(1, &cit101xl_state::attr_map); + m_avdc->set_screen("screen"); +} + +// XTAL OSCs: 12.288 MHz (CPU), 24.270 MHz, 36.000 MHz +// Gate arrays: HG61H09R84F (QFP80), L7A0084 4155P 00416A (LCC68) +ROM_START(cit101xl) + ROM_REGION(0xc000, "program", 0) + ROM_LOAD("cit50p-101xl_v.1.1_0800.u2", 0x0000, 0x8000, CRC(2dbbd7f6) SHA1(f87b32e803bda5a8dd0e39e2e339357cfa4082ad)) // HN27256G-25 with handwritten label + ROM_LOAD("cit50p-101xl_v.1.1_8456.u4", 0x8000, 0x4000, CRC(4df0b677) SHA1(1916c65935c47cb0e11a8c7f293b608e648c542b)) // M5L27128K with handwritten label + + ROM_REGION(0x2000, "chargen", 0) + ROM_LOAD("tmm2464ap_1104_cit50p_v1.2.u3", 0x0000, 0x2000, CRC(e07723f7) SHA1(466d69382cc75ac0abcda08e1a227da73fc77980)) // Toshiba OTP ROM with silkscreened label +ROM_END + +COMP(1987, cit101xl, 0, 0, cit101xl, cit101xl, cit101xl_state, empty_init, "CIE Terminals", "CIT-101XL Video Display Terminal", MACHINE_IS_SKELETON) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cking_master.cpp mame-0.224+dfsg.1/src/mame/drivers/cking_master.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cking_master.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cking_master.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -4,6 +4,7 @@ /****************************************************************************** Chess King Master (yes, it's plainly named "Master") +According to the manual, the chess engine is Cyrus (by Richard Lang). Hardware notes: - Z80 CPU(NEC D780C-1) @ 4MHz(8MHz XTAL), IRQ from 555 timer @@ -80,13 +81,12 @@ u8 input_r(); void control_w(u8 data); - u16 m_inp_mux; + u16 m_inp_mux = 0; }; void master_state::machine_start() { - // zerofill, register for savestates - m_inp_mux = 0; + // register for savestates save_item(NAME(m_inp_mux)); } @@ -225,14 +225,14 @@ m_maincpu->set_addrmap(AS_PROGRAM, &master_state::main_trampoline); ADDRESS_MAP_BANK(config, "mainmap").set_map(&master_state::main_map).set_options(ENDIANNESS_LITTLE, 8, 16); - const attotime irq_period = attotime::from_hz(429); // theoretical frequency from 555 timer (22nF, 150K, 1K5), measurement was 418Hz + const attotime irq_period = attotime::from_hz(418); // 555 timer (22nF, 150K, 1K5), measured 418Hz TIMER(config, m_irq_on).configure_periodic(FUNC(master_state::irq_on), irq_period); m_irq_on->set_start_delay(irq_period - attotime::from_nsec(22870)); // active for 22.87us TIMER(config, "irq_off").configure_periodic(FUNC(master_state::irq_off), irq_period); SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess)); - m_board->set_delay(attotime::from_msec(100)); + m_board->set_delay(attotime::from_msec(150)); /* video hardware */ PWM_DISPLAY(config, m_display).set_size(9, 2); @@ -254,7 +254,7 @@ ROM_START( ckmaster ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("ckmaster.ic2", 0x0000, 0x2000, CRC(59cbec9e) SHA1(2e0629e65778da62bed857406b91a334698d2fe8) ) // D2764C, no label + ROM_LOAD("d2764c-3.ic2", 0x0000, 0x2000, CRC(59cbec9e) SHA1(2e0629e65778da62bed857406b91a334698d2fe8) ) // no custom label ROM_END } // anonymous namespace diff -Nru mame-0.223+dfsg.1/src/mame/drivers/copsnrob.cpp mame-0.224+dfsg.1/src/mame/drivers/copsnrob.cpp --- mame-0.223+dfsg.1/src/mame/drivers/copsnrob.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/copsnrob.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -251,15 +251,15 @@ void copsnrob_state::copsnrob(machine_config &config) { /* basic machine hardware */ - M6502(config, m_maincpu, 14318180/16); /* 894886.25 kHz */ + M6502(config, m_maincpu, 14.318181_MHz_XTAL / 16); /* 894886.25 kHz */ m_maincpu->set_addrmap(AS_PROGRAM, &copsnrob_state::main_map); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(60); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); - m_screen->set_size(32*8, 32*8); - m_screen->set_visarea(0*8, 32*8-1, 0*8, 26*8-1); + m_screen->set_raw(14.318181_MHz_XTAL / 2, 457, 0, 256, 261, 0, 200); + // H RESET (synchronous) = 256H & 8H & 64H & 128H + // V RESET (synchronous) = 256V & 4V + // H BLANK signal should begin at 304, but 256H gates all relevant graphics m_screen->set_screen_update(FUNC(copsnrob_state::screen_update_copsnrob)); m_screen->set_palette(m_palette); @@ -299,12 +299,12 @@ ROM_REGION( 0x0100, "gfx3", 0 ) ROM_LOAD( "5770.m2", 0x0000, 0x0100, CRC(b00bbe77) SHA1(3fd6113aa3a572ec9f5ff248ba1bf53fc9225dfb) ) - ROM_REGION( 0x0260, "proms", 0 ) /* misc. PROMs (timing?) */ - ROM_LOAD( "5765.h8", 0x0000, 0x0020, CRC(6cd58931) SHA1(a90ae8ddffdfc33f60cb9ff8f42f9155c2b09ca1) ) - ROM_LOAD( "5766.k8", 0x0020, 0x0020, CRC(e63edf4f) SHA1(1dc8691dde033062491b03d4c926047229c45a14) ) - ROM_LOAD( "5767.j8", 0x0040, 0x0020, CRC(381b5ae4) SHA1(91cd237878c0e092197e3025c2498b8f26f90109) ) - ROM_LOAD( "5768.n4", 0x0060, 0x0100, CRC(cb7fc836) SHA1(dc115c8dcee9298623f1e91add2dc17d0ed870e4) ) - ROM_LOAD( "5769.d5", 0x0160, 0x0100, CRC(75081a5a) SHA1(c7d60fc4c44cf9c160b874de92d37600c079e7b6) ) + ROM_REGION( 0x0260, "proms", 0 ) /* misc. PROMs */ + ROM_LOAD( "5765.h8", 0x0000, 0x0020, CRC(6cd58931) SHA1(a90ae8ddffdfc33f60cb9ff8f42f9155c2b09ca1) ) // "µp Enable" + ROM_LOAD( "5766.k8", 0x0020, 0x0020, CRC(e63edf4f) SHA1(1dc8691dde033062491b03d4c926047229c45a14) ) // "Enable A" + ROM_LOAD( "5767.j8", 0x0040, 0x0020, CRC(381b5ae4) SHA1(91cd237878c0e092197e3025c2498b8f26f90109) ) // "Enable B" + ROM_LOAD( "5768.n4", 0x0060, 0x0100, CRC(cb7fc836) SHA1(dc115c8dcee9298623f1e91add2dc17d0ed870e4) ) // horizontal timing + ROM_LOAD( "5769.d5", 0x0160, 0x0100, CRC(75081a5a) SHA1(c7d60fc4c44cf9c160b874de92d37600c079e7b6) ) // vertical timing ROM_END diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cps2.cpp mame-0.224+dfsg.1/src/mame/drivers/cps2.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cps2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cps2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -641,10 +641,10 @@ * *************************************/ -/* Maximum size of Q Sound Z80 region */ +// Maximum size of QSound Z80 region #define QSOUND_SIZE 0x50000 -/* Maximum 68000 code size */ +// Maximum 68000 code size #undef CODE_SIZE #define CODE_SIZE 0x0400000 @@ -657,7 +657,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps2_state::cps2_interrupt) { - /* direct irq line connection, IPL1 is vblank, IPL2 is some sort of scanline interrupt. */ + // Direct irq line connection, IPL1 is vblank, IPL2 is some sort of scanline interrupt. if (param == 0) m_scancalls = 0; @@ -669,7 +669,7 @@ // popmessage("%04x %04x - %04x %04x",m_scanline1,m_scanline2,m_cps_b_regs[0x10/2],m_cps_b_regs[0x12/2]); - /* raster effects */ + // Raster effects if (m_scanline1 == param || (m_scanline1 < param && !m_scancalls)) { m_cps_b_regs[0x10/2] = 0; @@ -679,7 +679,7 @@ // popmessage("IRQ4 scancounter = %04i", param); } - /* raster effects */ + // Raster effects if(m_scanline2 == param || (m_scanline2 < param && !m_scancalls)) { m_cps_b_regs[0x12 / 2] = 0; @@ -689,7 +689,7 @@ // popmessage("IRQ4 scancounter = %04i", param); } - if (param == 240) /* VBlank */ + if (param == 240) // VBlank { m_cps_b_regs[0x10 / 2] = m_scanline1; m_cps_b_regs[0x12 / 2] = m_scanline2; @@ -719,7 +719,7 @@ /* bit 6 - */ /* bit 7 - */ - /* EEPROM */ + // EEPROM ioport("EEPROMOUT")->write(data, 0xffff); if (m_cps2_dial_type == 2) // ecofghtr { @@ -738,7 +738,7 @@ /* bit 6 - */ /* bit 7 - */ - /* Z80 Reset */ + // Z80 Reset if (m_audiocpu != nullptr) m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x0008) ? CLEAR_LINE : ASSERT_LINE); @@ -753,7 +753,7 @@ machine().bookkeeping().coin_counter_w(1, data & 0x0002); } - if (strncmp(machine().system().name, "mmatrix", 7) == 0) // Mars Matrix seems to require the coin lockout bit to be reversed + if (strncmp(machine().system().name, "mmatrix", 7) == 0) // Mars Matrix seems to require the coin lockout bit to be reversed { machine().bookkeeping().coin_lockout_w(0, data & 0x0010); machine().bookkeeping().coin_lockout_w(1, data & 0x0020); @@ -816,10 +816,10 @@ /* Only game known to use both these so far is SSF2TB */ if (m_cps2networkpresent) - return 0x2021; /* SSF2TB doesn't have a digital slider in the test screen */ + return 0x2021; // SSF2TB doesn't have a digital slider in the test screen else if (m_cps2disabledigitalvolume) - return 0xd000; /* digital display isn't shown in test mode */ + return 0xd000; // Digital display isn't shown in test mode else return result; } @@ -850,7 +850,7 @@ uint16_t cps2_state::joy_or_paddle_ecofghtr_r() { - if (m_readpaddle == 0 || (m_io_in1->read() & 0x10) == 0x10) // ignore bit if spinner not enabled + if (m_readpaddle == 0 || (m_io_in1->read() & 0x10) == 0x10) // Ignore bit if spinner not enabled { uint16_t ret = m_io_in0->read(); @@ -919,64 +919,64 @@ void cps2_state::cps2_map(address_map &map) { - map(0x000000, 0x3fffff).rom(); /* 68000 ROM */ - map(0x400000, 0x40000b).ram().share("output"); /* CPS2 object output */ - map(0x618000, 0x619fff).rw(FUNC(cps2_state::qsound_sharedram1_r), FUNC(cps2_state::qsound_sharedram1_w)); /* Q RAM */ - map(0x660000, 0x663fff).ram(); /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */ - // map(0x662000, 0x662001).ram(); /* Network adapter related, accessed in SSF2TB */ - // map(0x662008, 0x662009).ram(); /* Network adapter related, accessed in SSF2TB */ - // map(0x662020, 0x662021).ram(); /* Network adapter related, accessed in SSF2TB */ - map(0x664000, 0x664001).ram(); /* Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) */ - map(0x700000, 0x701fff).w(FUNC(cps2_state::cps2_objram1_w)).share("objram1"); /* Object RAM, no game seems to use it directly */ - map(0x708000, 0x709fff).mirror(0x006000).rw(FUNC(cps2_state::cps2_objram2_r), FUNC(cps2_state::cps2_objram2_w)).share("objram2"); /* Object RAM */ - map(0x800100, 0x80013f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); /* mirror (sfa) */ - map(0x800140, 0x80017f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)).share("cps_b_regs"); /* mirror (sfa) */ - map(0x804000, 0x804001).portr("IN0"); /* IN0 */ - map(0x804010, 0x804011).portr("IN1"); /* IN1 */ - map(0x804020, 0x804021).portr("IN2"); /* IN2 + EEPROM */ - map(0x804030, 0x804031).r(FUNC(cps2_state::cps2_qsound_volume_r)); /* Master volume. Also when bit 14=0 addon memory is present, when bit 15=0 network adapter present. */ - map(0x804040, 0x804041).w(FUNC(cps2_state::cps2_eeprom_port_w)); /* EEPROM */ - map(0x8040a0, 0x8040a1).nopw(); /* Unknown (reset once on startup) */ - map(0x8040b0, 0x8040b3).r(FUNC(cps2_state::kludge_r)); /* unknown (xmcotaj hangs if this is 0) */ - map(0x8040e0, 0x8040e1).w(FUNC(cps2_state::cps2_objram_bank_w)); /* bit 0 = Object ram bank swap */ - map(0x804100, 0x80413f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); /* CPS-A custom */ - map(0x804140, 0x80417f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)); /* CPS-B custom */ - map(0x900000, 0x92ffff).ram().w(FUNC(cps2_state::cps1_gfxram_w)).share("gfxram"); /* Video RAM */ - map(0xff0000, 0xffffff).ram(); /* RAM */ + map(0x000000, 0x3fffff).rom(); // 68000 ROM + map(0x400000, 0x40000b).ram().share("output"); // CPS2 object output + map(0x618000, 0x619fff).rw(FUNC(cps2_state::qsound_sharedram1_r), FUNC(cps2_state::qsound_sharedram1_w)); // Q RAM + map(0x660000, 0x663fff).ram(); // When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. + // map(0x662000, 0x662001).ram(); // Network adapter related, accessed in SSF2TB + // map(0x662008, 0x662009).ram(); // Network adapter related, accessed in SSF2TB + // map(0x662020, 0x662021).ram(); // Network adapter related, accessed in SSF2TB + map(0x664000, 0x664001).ram(); // Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) + map(0x700000, 0x701fff).w(FUNC(cps2_state::cps2_objram1_w)).share("objram1"); // Object RAM, no game seems to use it directly + map(0x708000, 0x709fff).mirror(0x006000).rw(FUNC(cps2_state::cps2_objram2_r), FUNC(cps2_state::cps2_objram2_w)).share("objram2"); // Object RAM + map(0x800100, 0x80013f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); // Mirror (sfa) + map(0x800140, 0x80017f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)).share("cps_b_regs"); // Mirror (sfa) + map(0x804000, 0x804001).portr("IN0"); // IN0 + map(0x804010, 0x804011).portr("IN1"); // IN1 + map(0x804020, 0x804021).portr("IN2"); // IN2 + EEPROM + map(0x804030, 0x804031).r(FUNC(cps2_state::cps2_qsound_volume_r)); // Master volume. Also when bit 14=0 addon memory is present, when bit 15=0 network adapter present. + map(0x804040, 0x804041).w(FUNC(cps2_state::cps2_eeprom_port_w)); // EEPROM + map(0x8040a0, 0x8040a1).nopw(); // Unknown (reset once on startup) + map(0x8040b0, 0x8040b3).r(FUNC(cps2_state::kludge_r)); // Unknown (xmcotaj hangs if this is 0) + map(0x8040e0, 0x8040e1).w(FUNC(cps2_state::cps2_objram_bank_w)); // bit 0 = Object ram bank swap + map(0x804100, 0x80413f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); // CPS-A custom + map(0x804140, 0x80417f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)); // CPS-B custom + map(0x900000, 0x92ffff).ram().w(FUNC(cps2_state::cps1_gfxram_w)).share("gfxram"); // Video RAM + map(0xff0000, 0xffffff).ram(); // RAM } void cps2_state::decrypted_opcodes_map(address_map &map) { - map(0x000000, 0x3fffff).rom().share("decrypted_opcodes"); /* 68000 ROM */ + map(0x000000, 0x3fffff).rom().share("decrypted_opcodes"); // 68000 ROM } void cps2_state::dead_cps2_map(address_map &map) { - map(0x000000, 0x3fffff).rom(); /* 68000 ROM */ - map(0x400000, 0x40000b).ram().share("output"); /* CPS2 object output */ - map(0x618000, 0x619fff).rw(FUNC(cps2_state::qsound_sharedram1_r), FUNC(cps2_state::qsound_sharedram1_w)); /* Q RAM */ - map(0x660000, 0x663fff).ram(); /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */ - // map(0x662000, 0x662001).ram(); /* Network adapter related, accessed in SSF2TB */ - // map(0x662008, 0x662009).ram(); /* Network adapter related, accessed in SSF2TB */ - // map(0x662020, 0x662021).ram(); /* Network adapter related, accessed in SSF2TB */ - map(0x664000, 0x664001).ram(); /* Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) */ - map(0x700000, 0x701fff).w(FUNC(cps2_state::cps2_objram1_w)).share("objram1"); /* Object RAM, no game seems to use it directly */ - map(0x708000, 0x709fff).mirror(0x006000).rw(FUNC(cps2_state::cps2_objram2_r), FUNC(cps2_state::cps2_objram2_w)).share("objram2"); /* Object RAM */ - map(0x800100, 0x80013f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); /* mirror (sfa) */ - map(0x800140, 0x80017f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)).share("cps_b_regs"); /* mirror (sfa) */ - map(0x804000, 0x804001).portr("IN0"); /* IN0 */ - map(0x804010, 0x804011).portr("IN1"); /* IN1 */ - map(0x804020, 0x804021).portr("IN2"); /* IN2 + EEPROM */ - map(0x804030, 0x804031).r(FUNC(cps2_state::cps2_qsound_volume_r)); /* Master volume. Also when bit 14=0 addon memory is present, when bit 15=0 network adapter present. */ - map(0x804040, 0x804041).w(FUNC(cps2_state::cps2_eeprom_port_w)); /* EEPROM */ - map(0x8040a0, 0x8040a1).nopw(); /* Unknown (reset once on startup) */ - map(0x8040b0, 0x8040b3).r(FUNC(cps2_state::kludge_r)); /* unknown (xmcotaj hangs if this is 0) */ - map(0x8040e0, 0x8040e1).w(FUNC(cps2_state::cps2_objram_bank_w)); /* bit 0 = Object ram bank swap */ - map(0x804100, 0x80413f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); /* CPS-A custom */ - map(0x804140, 0x80417f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)); /* CPS-B custom */ - map(0x900000, 0x92ffff).ram().w(FUNC(cps2_state::cps1_gfxram_w)).share("gfxram"); /* Video RAM */ - map(0xff0000, 0xffffef).ram(); /* RAM */ - map(0xfffff0, 0xfffffb).ram().share("output"); /* CPS2 output */ + map(0x000000, 0x3fffff).rom(); // 68000 ROM + map(0x400000, 0x40000b).ram().share("output"); // CPS2 object output + map(0x618000, 0x619fff).rw(FUNC(cps2_state::qsound_sharedram1_r), FUNC(cps2_state::qsound_sharedram1_w)); // Q RAM + map(0x660000, 0x663fff).ram(); // When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. + // map(0x662000, 0x662001).ram(); // Network adapter related, accessed in SSF2TB + // map(0x662008, 0x662009).ram(); // Network adapter related, accessed in SSF2TB + // map(0x662020, 0x662021).ram(); // Network adapter related, accessed in SSF2TB + map(0x664000, 0x664001).ram(); // Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) + map(0x700000, 0x701fff).w(FUNC(cps2_state::cps2_objram1_w)).share("objram1"); // Object RAM, no game seems to use it directly + map(0x708000, 0x709fff).mirror(0x006000).rw(FUNC(cps2_state::cps2_objram2_r), FUNC(cps2_state::cps2_objram2_w)).share("objram2"); // Object RAM + map(0x800100, 0x80013f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); // Mirror (sfa) + map(0x800140, 0x80017f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)).share("cps_b_regs"); // Mirror (sfa) + map(0x804000, 0x804001).portr("IN0"); // IN0 + map(0x804010, 0x804011).portr("IN1"); // IN1 + map(0x804020, 0x804021).portr("IN2"); // IN2 + EEPROM + map(0x804030, 0x804031).r(FUNC(cps2_state::cps2_qsound_volume_r)); // Master volume. Also when bit 14=0 addon memory is present, when bit 15=0 network adapter present. + map(0x804040, 0x804041).w(FUNC(cps2_state::cps2_eeprom_port_w)); // EEPROM + map(0x8040a0, 0x8040a1).nopw(); // Unknown (reset once on startup) + map(0x8040b0, 0x8040b3).r(FUNC(cps2_state::kludge_r)); // Unknown (xmcotaj hangs if this is 0) + map(0x8040e0, 0x8040e1).w(FUNC(cps2_state::cps2_objram_bank_w)); // bit 0 = Object ram bank swap + map(0x804100, 0x80413f).w(FUNC(cps2_state::cps1_cps_a_w)).share("cps_a_regs"); // CPS-A custom + map(0x804140, 0x80417f).rw(FUNC(cps2_state::cps1_cps_b_r), FUNC(cps2_state::cps1_cps_b_w)); // CPS-B custom + map(0x900000, 0x92ffff).ram().w(FUNC(cps2_state::cps1_gfxram_w)).share("gfxram"); // Video RAM + map(0xff0000, 0xffffef).ram(); // RAM + map(0xfffff0, 0xfffffb).ram().share("output"); // CPS2 output map(0xfffffc, 0xffffff).ram(); } @@ -987,9 +987,9 @@ * *************************************/ -/* 4 players and 4 buttons */ +// 4 players and 4 buttons static INPUT_PORTS_START( cps2_4p4b ) - PORT_START("IN0") /* (0x00) */ + PORT_START("IN0") // (0x00) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) @@ -1007,7 +1007,7 @@ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_START("IN1") /* (0x10) */ + PORT_START("IN1") // (0x10) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) @@ -1025,7 +1025,7 @@ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) - PORT_START("IN2") /* (0x20) */ + PORT_START("IN2") // (0x20) PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) PORT_SERVICE_NO_TOGGLE( 0x0002, IP_ACTIVE_LOW ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -1044,73 +1044,73 @@ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) - /* fake inputs for digital volume buttons */ + // Fake inputs for digital volume buttons PORT_START( "DIGITALVOL" ) PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_VOLUME_UP ) INPUT_PORTS_END -/* 4 players and 3 buttons */ +// 4 players and 3 buttons static INPUT_PORTS_START( cps2_4p3b ) PORT_INCLUDE(cps2_4p4b) PORT_MODIFY("IN0") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(1) */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(2) */ + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(1) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(2) PORT_MODIFY("IN1") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(3) */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(4) */ + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(3) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(4) INPUT_PORTS_END -/* 4 players and 2 buttons */ +// 4 players and 2 buttons static INPUT_PORTS_START( cps2_4p2b ) PORT_INCLUDE(cps2_4p3b) PORT_MODIFY("IN0") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(1) */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(2) */ + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(1) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(2) PORT_MODIFY("IN1") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(3) */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(4) */ + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(3) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(4) INPUT_PORTS_END -/* 3 players and 4 buttons */ +// 3 players and 4 buttons static INPUT_PORTS_START( cps2_3p4b ) PORT_INCLUDE(cps2_4p4b) PORT_MODIFY("IN1") - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) /* PORT_PLAYER(4) inputs */ + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_PLAYER(4) inputs PORT_MODIFY("IN2") - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) /* START4 */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) /* COIN4 */ + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) // START4 + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) // COIN4 INPUT_PORTS_END -/* 3 players and 3 buttons */ +// 3 players and 3 buttons static INPUT_PORTS_START( cps2_3p3b ) PORT_INCLUDE(cps2_3p4b) PORT_MODIFY("IN0") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(1) */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(2) */ + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(1) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(2) PORT_MODIFY("IN1") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(3) */ + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(3) INPUT_PORTS_END -/* 3 players and 2 buttons */ +// 3 players and 2 buttons #ifdef UNUSED_DEFINITION static INPUT_PORTS_START( cps2_3p2b ) PORT_INCLUDE(cps2_3p3b) PORT_MODIFY("IN0") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(1) */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(2) */ + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(1) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(2) PORT_MODIFY("IN1") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(3) */ + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(3) INPUT_PORTS_END #endif @@ -1119,20 +1119,20 @@ PORT_INCLUDE(cps2_3p4b) PORT_MODIFY("IN1") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) /* PORT_PLAYER(3) inputs */ + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_PLAYER(3) inputs PORT_MODIFY("IN2") - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) /* START3 */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) /* COIN3 */ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) // START3 + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // COIN3 INPUT_PORTS_END -/* 2 players and 3 buttons */ +// 2 players and 3 buttons static INPUT_PORTS_START( cps2_2p3b ) PORT_INCLUDE(cps2_2p4b) PORT_MODIFY("IN0") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(1) */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(2) */ + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(1) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(2) INPUT_PORTS_END static INPUT_PORTS_START( ecofghtr ) @@ -1140,7 +1140,7 @@ PORT_MODIFY("IN1") // If this bit is set then the Test Mode shows 'Rolling' instead of Shot2/3 - this is the 'spinner' mode. - // in this mode the IN0 port is multiplexed with an analog input, what would be Button 2 ends up being 'direction' + // In this mode the IN0 port is multiplexed with an analog input, what would be Button 2 ends up being 'direction' PORT_CONFNAME( 0x10, 0x00, "Use Spinners" ) PORT_CONFSETTING( 0x00, DEF_STR( Yes ) ) PORT_CONFSETTING( 0x10, DEF_STR( No ) ) @@ -1154,25 +1154,25 @@ -/* 2 players and 2 buttons */ +// 2 players and 2 buttons static INPUT_PORTS_START( cps2_2p2b ) PORT_INCLUDE(cps2_2p3b) PORT_MODIFY("IN0") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(1) */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(2) */ + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(1) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(2) INPUT_PORTS_END -/* 2 players and 1 button */ +// 2 players and 1 button static INPUT_PORTS_START( cps2_2p1b ) PORT_INCLUDE(cps2_2p2b) PORT_MODIFY("IN0") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON2 PORT_PLAYER(1) */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON2 PORT_PLAYER(2) */ + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON2 PORT_PLAYER(1) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON2 PORT_PLAYER(2) INPUT_PORTS_END -/* 2 players and 6 buttons (2 rows of 3 buttons) */ +// 2 players and 6 buttons (2 rows of 3 buttons) static INPUT_PORTS_START( cps2_2p6b ) PORT_INCLUDE(cps2_2p3b) @@ -1187,40 +1187,40 @@ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) INPUT_PORTS_END -/* 2 players, 6 buttons, and 1 ticket dispenser (2 rows of 3 buttons) */ +// 2 players, 6 buttons, and 1 ticket dispenser (2 rows of 3 buttons) static INPUT_PORTS_START( cps2_2p6bt ) PORT_INCLUDE(cps2_2p6b) PORT_MODIFY("IN1") - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Ticket Empty line*/ + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED ) // Ticket Empty line INPUT_PORTS_END -/* 1 player and 4 buttons */ +// 1 player and 4 buttons static INPUT_PORTS_START( cps2_1p4b ) PORT_INCLUDE(cps2_2p4b) PORT_MODIFY("IN0") - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) /* PORT_PLAYER(2) inputs */ + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_PLAYER(2) inputs PORT_MODIFY("IN2") - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) /* START2 */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) /* COIN2 */ + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) // START2 + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) // COIN2 INPUT_PORTS_END -/* 1 player and 3 buttons */ +// 1 player and 3 buttons static INPUT_PORTS_START( cps2_1p3b ) PORT_INCLUDE(cps2_1p4b) PORT_MODIFY("IN0") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON4 PORT_PLAYER(1) */ + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON4 PORT_PLAYER(1) INPUT_PORTS_END -/* 1 player and 2 buttons */ +// 1 player and 2 buttons static INPUT_PORTS_START( cps2_1p2b ) PORT_INCLUDE(cps2_1p3b) PORT_MODIFY("IN0") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON3 PORT_PLAYER(1) */ + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 PORT_PLAYER(1) INPUT_PORTS_END @@ -1230,22 +1230,22 @@ * *************************************/ -/* According to the "test mode", buttons layout look like a 2 players 6 buttons machine where buttons have been removed */ +// According to the "test mode", buttons layout look like a 2 players 6 buttons machine where buttons have been removed static INPUT_PORTS_START( cybots ) PORT_INCLUDE(cps2_2p6b) PORT_MODIFY("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON5 PORT_PLAYER(1) */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON6 PORT_PLAYER(1) */ + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON5 PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON6 PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON5 PORT_PLAYER(2) */ + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON5 PORT_PLAYER(2) PORT_MODIFY("IN2") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) /* BUTTON6 PORT_PLAYER(2) */ + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON6 PORT_PLAYER(2) INPUT_PORTS_END -/* 2 players, no joysticks which are replaced with 4 buttons, no other buttons */ +// 2 players, no joysticks which are replaced with 4 buttons, no other buttons static INPUT_PORTS_START( qndream ) PORT_INCLUDE(cps2_2p4b) @@ -1262,7 +1262,7 @@ PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -/* 2 players and 1 button - either 2 8-way joysticks, 2 2-way joysticks, or 2 paddles */ +// 2 players and 1 button - either 2 8-way joysticks, 2 2-way joysticks, or 2 paddles static INPUT_PORTS_START( pzloop2 ) PORT_INCLUDE(cps2_2p1b) @@ -1273,7 +1273,7 @@ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(2) INPUT_PORTS_END -/* 1 player and 3 buttons, but 2 coins slots */ +// 1 player and 3 buttons, but 2 coins slots static INPUT_PORTS_START( choko ) PORT_INCLUDE(cps2_1p3b) @@ -1297,7 +1297,7 @@ void cps2_state::cps2(machine_config &config) { - /* basic machine hardware */ + // Basic machine hardware M68000(config, m_maincpu, XTAL(16'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &cps2_state::cps2_map); m_maincpu->set_addrmap(AS_OPCODES, &cps2_state::decrypted_opcodes_map); @@ -1313,7 +1313,7 @@ EEPROM_93C46_16BIT(config, "eeprom"); - /* video hardware */ + // Video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART); @@ -1324,7 +1324,7 @@ GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); PALETTE(config, m_palette, palette_device::BLACK).set_entries(0xc00); - /* sound hardware */ + // Sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -1361,7 +1361,7 @@ *************************************/ ROM_START( 1944 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "nffu.03", 0x000000, 0x80000, CRC(9693cf8f) SHA1(c296cb008e282f77b44374d1c3638a3f4d5d5d4e) ) ROM_LOAD16_WORD_SWAP( "nff.04", 0x080000, 0x80000, CRC(dba1c66e) SHA1(4764e77d4da5d19d9acded27df1e1bcba06b0fcf) ) ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) ) @@ -1376,11 +1376,11 @@ ROM_LOAD64_WORD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) ) ROM_LOAD64_WORD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) ) ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) ) @@ -1389,7 +1389,7 @@ ROM_END ROM_START( 1944j ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "nffj.03", 0x000000, 0x80000, CRC(247521ef) SHA1(c6a04f514dd5ab40d8813dcfb8430bce54e7aa28) ) ROM_LOAD16_WORD_SWAP( "nff.04", 0x080000, 0x80000, CRC(dba1c66e) SHA1(4764e77d4da5d19d9acded27df1e1bcba06b0fcf) ) ROM_LOAD16_WORD_SWAP( "nffj.05", 0x100000, 0x80000, CRC(7f20c2ef) SHA1(380dc54d94c29c049a4c00ed58013e04eec87086) ) @@ -1404,11 +1404,11 @@ ROM_LOAD64_WORD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) ) ROM_LOAD64_WORD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) ) ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) ) @@ -1417,7 +1417,7 @@ ROM_END ROM_START( 19xx ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xe.03b", 0x000000, 0x080000, CRC(9bf9d9b1) SHA1(df32f2e6b3ebafd892368430d786a58e3614ef80) ) ROM_LOAD16_WORD_SWAP( "19xe.04b", 0x080000, 0x080000, CRC(9aa46476) SHA1(dd677b87620198c22738e9f54105998a761298de) ) ROM_LOAD16_WORD_SWAP( "19xe.05b", 0x100000, 0x080000, CRC(a04a2c5e) SHA1(aff5a324daa4641bfdef486824127010e4b803f7) ) @@ -1434,11 +1434,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1447,7 +1447,7 @@ ROM_END ROM_START( 19xxu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xu.03", 0x000000, 0x80000, CRC(05955268) SHA1(d3b6b416f1f9eb1c1cbca6647630d1155647082d) ) ROM_LOAD16_WORD_SWAP( "19xu.04", 0x080000, 0x80000, CRC(3111ab7f) SHA1(8bbce20ae7ba47949f4939b2f35014fb6decd283) ) ROM_LOAD16_WORD_SWAP( "19xu.05", 0x100000, 0x80000, CRC(38df4a63) SHA1(1303f7ab6296f1454907a24d64878bdbd1ef88a7) ) @@ -1464,11 +1464,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1477,7 +1477,7 @@ ROM_END ROM_START( 19xxj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xj-03b.6a", 0x000000, 0x80000, CRC(bcad93dd) SHA1(9b08cfdf278fc0cf60827518c4fecb99f224578b) ) ROM_LOAD16_WORD_SWAP( "19xj-04b.7a", 0x080000, 0x80000, CRC(931882a1) SHA1(940a4fe52c1eb208071ab9d0a0c256eb39620091) ) ROM_LOAD16_WORD_SWAP( "19xj-05b.8a", 0x100000, 0x80000, CRC(e7eeddc4) SHA1(40c79bc454d5fb8e5004db3df4fdcb10fae6c1e9) ) @@ -1506,11 +1506,11 @@ ROM_LOAD64_WORD( "19x-95.10p", 0x0c00006, 0x080000, CRC(2b86fa67) SHA1(96a3cb8b203738fff33e2ca6340fdef928a816b9) ) ROM_LOAD64_WORD( "19x-96.11p", 0x0e00006, 0x080000, CRC(ae6eb692) SHA1(4b564a375a08872aea534635ec526cce62dcdadd) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x-01.1a", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x-51.6a", 0x000000, 0x080000, CRC(e9cd7780) SHA1(23c3d3968c2aec01ca25338b687be14407580b32) ) ROM_LOAD16_WORD_SWAP( "19x-52.7a", 0x080000, 0x080000, CRC(b27b91a8) SHA1(1fd424c118fabcdb70ea025804552e99b8f8348a) ) ROM_LOAD16_WORD_SWAP( "19x-53.8a", 0x100000, 0x080000, CRC(2e563ee2) SHA1(ed91404f27e36ff7c4bf4c297e81c4ebeb125db7) ) @@ -1525,7 +1525,7 @@ ROM_END ROM_START( 19xxjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xj.03a", 0x000000, 0x80000, CRC(ed08bdd1) SHA1(4b49f988faf4a6a99d3596bb12e4685862a20a3e) ) ROM_LOAD16_WORD_SWAP( "19xj.04a", 0x080000, 0x80000, CRC(fb8e3f29) SHA1(513b85bfe5b86692faa4d20b755fe261a7f95bfc) ) ROM_LOAD16_WORD_SWAP( "19xj.05a", 0x100000, 0x80000, CRC(aa508ac4) SHA1(c906f4a92872f4ecda662146690acbe5165ae79e) ) @@ -1542,11 +1542,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1555,7 +1555,7 @@ ROM_END ROM_START( 19xxjr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xj.03", 0x000000, 0x80000, CRC(26a381ed) SHA1(9a6bd9a8c152096f653c0b5a161dd08314fdb5e7) ) ROM_LOAD16_WORD_SWAP( "19xj.04", 0x080000, 0x80000, CRC(30100cca) SHA1(3fc964e6daffa5dd7b9f72c8ace3a4b9d515e9ce) ) ROM_LOAD16_WORD_SWAP( "19xj.05", 0x100000, 0x80000, CRC(de67e938) SHA1(5f977c07c6ffa816ccfa2c7bab8a77b64c232610) ) @@ -1572,11 +1572,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1585,12 +1585,12 @@ ROM_END ROM_START( 19xxa ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "09xa.03b", 0x000000, 0x80000, CRC(2e994897) SHA1(8dee5d84fd01f416fa6dfef76be0dfff90f45595) ) /* Yes it's actually 09xa, that's not a typo */ - ROM_LOAD16_WORD_SWAP( "09xa.04b", 0x080000, 0x80000, CRC(6364d001) SHA1(a6f3f0015c9a3c27bc2109d557b88d0773a83465) ) /* Yes it's actually 09xa, that's not a typo */ - ROM_LOAD16_WORD_SWAP( "09xa.05b", 0x100000, 0x80000, CRC(00c1949b) SHA1(4120a57d06638c637b74442b200e46d9b13fa431) ) /* Yes it's actually 09xa, that's not a typo */ - ROM_LOAD16_WORD_SWAP( "09xa.06b", 0x180000, 0x80000, CRC(363c1f6e) SHA1(2e358e345f1d5963836b0ac8c6a1b455638bd19d) ) /* Yes it's actually 09xa, that's not a typo */ - ROM_LOAD16_WORD_SWAP( "19xa.07", 0x200000, 0x80000, CRC(61c0296c) SHA1(9e225beccffd14bb53a32f8c0f2aef7f331dae30) ) /* This one was different, it actually was 19xa */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code + ROM_LOAD16_WORD_SWAP( "09xa.03b", 0x000000, 0x80000, CRC(2e994897) SHA1(8dee5d84fd01f416fa6dfef76be0dfff90f45595) ) // Yes it's actually 09xa, that's not a typo + ROM_LOAD16_WORD_SWAP( "09xa.04b", 0x080000, 0x80000, CRC(6364d001) SHA1(a6f3f0015c9a3c27bc2109d557b88d0773a83465) ) // Yes it's actually 09xa, that's not a typo + ROM_LOAD16_WORD_SWAP( "09xa.05b", 0x100000, 0x80000, CRC(00c1949b) SHA1(4120a57d06638c637b74442b200e46d9b13fa431) ) // Yes it's actually 09xa, that's not a typo + ROM_LOAD16_WORD_SWAP( "09xa.06b", 0x180000, 0x80000, CRC(363c1f6e) SHA1(2e358e345f1d5963836b0ac8c6a1b455638bd19d) ) // Yes it's actually 09xa, that's not a typo + ROM_LOAD16_WORD_SWAP( "19xa.07", 0x200000, 0x80000, CRC(61c0296c) SHA1(9e225beccffd14bb53a32f8c0f2aef7f331dae30) ) // This one was different, it actually was 19xa ROM_REGION( 0x1000000, "gfx", 0 ) ROM_LOAD64_WORD( "19x.13m", 0x0000000, 0x080000, CRC(427aeb18) SHA1(901029b5423e4bda85f592735036c06b7d426680) ) @@ -1602,11 +1602,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1615,7 +1615,7 @@ ROM_END ROM_START( 19xxar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xa.03", 0x000000, 0x80000, CRC(0c20fd50) SHA1(3aeb698ac67e6c8d0224e68d9258ef45f735432a) ) ROM_LOAD16_WORD_SWAP( "19xa.04", 0x080000, 0x80000, CRC(1fc37508) SHA1(f4b858b5dc6243c5cd432d1a72d828831c8eca6f) ) ROM_LOAD16_WORD_SWAP( "19xa.05", 0x100000, 0x80000, CRC(6c9cc4ed) SHA1(2b01ffe0bba41640ffc0c13dfdacf3cf0e3e131d) ) @@ -1632,11 +1632,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1645,7 +1645,7 @@ ROM_END ROM_START( 19xxh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xh.03a", 0x000000, 0x80000, CRC(357be2ac) SHA1(660641d8cd2f7b574809badf99924f0a31a0cccd) ) ROM_LOAD16_WORD_SWAP( "19xh.04a", 0x080000, 0x80000, CRC(bb13ea3b) SHA1(3ae0fa09ae031e2a0f1ea8645a9baced44289383) ) ROM_LOAD16_WORD_SWAP( "19xh.05a", 0x100000, 0x80000, CRC(cbd76601) SHA1(a6b64e5f4b35a120dc463a6c9e98e2ec8e739e59) ) @@ -1662,11 +1662,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1675,7 +1675,7 @@ ROM_END ROM_START( 19xxb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xb.03a", 0x000000, 0x80000, CRC(341bdf4a) SHA1(e7deccd034f2a2664507dbb7fed9757c2424dbf7) ) ROM_LOAD16_WORD_SWAP( "19xb.04a", 0x080000, 0x80000, CRC(dff8069e) SHA1(3b31d1f66680cee1da3f3d3fd822739e99f48ccd) ) ROM_LOAD16_WORD_SWAP( "19xb.05a", 0x100000, 0x80000, CRC(a47a92a8) SHA1(20254ec70029ec027793d4fbd9a7067c2a756315) ) @@ -1692,11 +1692,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -1705,7 +1705,7 @@ ROM_END ROM_START( armwar ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwge.03c", 0x000000, 0x80000, CRC(31f74931) SHA1(66150fc9896acca1691c9d586abeb2c7299bb9ad) ) ROM_LOAD16_WORD_SWAP( "pwge.04c", 0x080000, 0x80000, CRC(16f34f5f) SHA1(b831e3915d8cbffdfe4720d356e5196cdebdb6e7) ) ROM_LOAD16_WORD_SWAP( "pwge.05b", 0x100000, 0x80000, CRC(4403ed08) SHA1(cc78c84105a58e43e7a6429281397d68b91e86e5) ) @@ -1725,12 +1725,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1739,7 +1739,7 @@ ROM_END ROM_START( armwarr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwge.03b", 0x000000, 0x80000, CRC(e822e3e9) SHA1(dcd153bb70f6c2baffa2f3687def30d85fca44ba) ) ROM_LOAD16_WORD_SWAP( "pwge.04b", 0x080000, 0x80000, CRC(4f89de39) SHA1(1e54ed70a6ed9330ec83fb189f76e9417c6dfc13) ) ROM_LOAD16_WORD_SWAP( "pwge.05a", 0x100000, 0x80000, CRC(83df24e5) SHA1(39801452769569c3271b26c6be8d3ce5e72b0629) ) @@ -1759,12 +1759,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1773,7 +1773,7 @@ ROM_END ROM_START( armwaru ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwgu.03b", 0x000000, 0x80000, CRC(8b95497a) SHA1(0c037b8a484d69f5e8c9600de71177fb78e9ede0) ) ROM_LOAD16_WORD_SWAP( "pwgu.04b", 0x080000, 0x80000, CRC(29eb5661) SHA1(7ee9150072882c9e158ca8231f26a9f62c8fa50e) ) ROM_LOAD16_WORD_SWAP( "pwgu.05b", 0x100000, 0x80000, CRC(a54e9e44) SHA1(e235dcdbd0111f018519d9c8eef130121ea20a20) ) @@ -1793,12 +1793,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1807,7 +1807,7 @@ ROM_END ROM_START( armwaru1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwgu.03a", 0x000000, 0x80000, CRC(73d397b1) SHA1(43c33f5268e98411fbbb27f8b59c2ff5dcaf3c34) ) ROM_LOAD16_WORD_SWAP( "pwgu.04a", 0x080000, 0x80000, CRC(1f1de215) SHA1(b0a74a4effddd30fbc972d94e4bf3848c4893363) ) ROM_LOAD16_WORD_SWAP( "pwgu.05a", 0x100000, 0x80000, CRC(835fbe73) SHA1(6218aa1b480105ffabded980c92679fafb19b824) ) @@ -1827,12 +1827,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1841,7 +1841,7 @@ ROM_END ROM_START( pgear ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwgj.03a", 0x000000, 0x80000, CRC(c79c0c02) SHA1(4e24d34be255bb3886bd6b767779ee5fc81dca6e) ) ROM_LOAD16_WORD_SWAP( "pwgj.04a", 0x080000, 0x80000, CRC(167c6ed8) SHA1(23a4a7faae817ffc6c5faa4db5b96b8c8c0dfe86) ) ROM_LOAD16_WORD_SWAP( "pwgj.05a", 0x100000, 0x80000, CRC(a63fb400) SHA1(b27464b000cd12d9247254f843be27639fbf3a48) ) @@ -1861,12 +1861,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1875,7 +1875,7 @@ ROM_END ROM_START( pgearr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwgj.03", 0x000000, 0x80000, CRC(f264e74b) SHA1(db0a675a9d46df9227334259db633e27f7dc79ab) ) ROM_LOAD16_WORD_SWAP( "pwgj.04", 0x080000, 0x80000, CRC(23a84983) SHA1(a3ed606f6213bb6e447c4ff84d6d3435a0170762) ) ROM_LOAD16_WORD_SWAP( "pwgj.05", 0x100000, 0x80000, CRC(bef58c62) SHA1(178c255171c4010cec758ee11d96bdcee85abee0) ) @@ -1895,12 +1895,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1909,7 +1909,7 @@ ROM_END ROM_START( armwara ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwga.03b", 0x000000, 0x80000, CRC(347743e1) SHA1(0cf27209792e70c361e2981b82a4d37643d1b298) ) ROM_LOAD16_WORD_SWAP( "pwga.04b", 0x080000, 0x80000, CRC(42dbfb2e) SHA1(cbb7ac2a97de977394eb015f3582ea72432a4529) ) ROM_LOAD16_WORD_SWAP( "pwga.05b", 0x100000, 0x80000, CRC(835fbe73) SHA1(6218aa1b480105ffabded980c92679fafb19b824) ) @@ -1929,12 +1929,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1943,7 +1943,7 @@ ROM_END ROM_START( armwarar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwga.03a", 0x000000, 0x80000, CRC(8d474ab1) SHA1(46baa3a263189001cfc6003fcb346a1996be8b24) ) ROM_LOAD16_WORD_SWAP( "pwga.04a", 0x080000, 0x80000, CRC(81b5aec7) SHA1(f1371149a00e7c52d022d5c0cb6f8821c6474d35) ) ROM_LOAD16_WORD_SWAP( "pwga.05a", 0x100000, 0x80000, CRC(2618e819) SHA1(58c857988e0ad2839d936d3e405637d8e2a45fe9) ) @@ -1963,12 +1963,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -1977,7 +1977,7 @@ ROM_END ROM_START( avsp ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "avpe.03d", 0x000000, 0x80000, CRC(774334a9) SHA1(f60b0e39139ea40e0b0ba97ed01d4a757ed65e1a) ) ROM_LOAD16_WORD_SWAP( "avpe.04d", 0x080000, 0x80000, CRC(7fa83769) SHA1(930f02e4d35686e80fbdd673380c4b2bd784a9e5) ) ROM_LOAD16_WORD_SWAP( "avp.05d", 0x100000, 0x80000, CRC(fbfb5d7a) SHA1(5549bc9d780753bc9c10fba82588e5c3d4a2acb2) ) @@ -1993,11 +1993,11 @@ ROM_LOAD64_WORD( "avp.18m", 0x0800004, 0x200000, CRC(34fb7232) SHA1(8b1f15bfa758a61e6ad519af24ca774edc70d194) ) ROM_LOAD64_WORD( "avp.20m", 0x0800006, 0x200000, CRC(f90baa21) SHA1(20a900819a9d321316e3dfd241210725d7191ecf) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "avp.01", 0x00000, 0x08000, CRC(2d3b4220) SHA1(2b2d04d4282550fa9f6e1ad8528f20d1f2ac02eb) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "avp.11m", 0x000000, 0x200000, CRC(83499817) SHA1(e65b0ebd61ddc748842a9d4d92404b5305307623) ) ROM_LOAD16_WORD_SWAP( "avp.12m", 0x200000, 0x200000, CRC(f4110d49) SHA1(f27538776cc1ba8213f19f98728ed8c02508d3ac) ) @@ -2006,7 +2006,7 @@ ROM_END ROM_START( avspu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "avpu.03d", 0x000000, 0x80000, CRC(42757950) SHA1(e6acae73a300c0e07c21f776e6aa87628184b152) ) ROM_LOAD16_WORD_SWAP( "avpu.04d", 0x080000, 0x80000, CRC(5abcdee6) SHA1(205e1ac8f4e359fd04e3a1e12425ba0b8330b1c1) ) ROM_LOAD16_WORD_SWAP( "avp.05d", 0x100000, 0x80000, CRC(fbfb5d7a) SHA1(5549bc9d780753bc9c10fba82588e5c3d4a2acb2) ) @@ -2022,11 +2022,11 @@ ROM_LOAD64_WORD( "avp.18m", 0x0800004, 0x200000, CRC(34fb7232) SHA1(8b1f15bfa758a61e6ad519af24ca774edc70d194) ) ROM_LOAD64_WORD( "avp.20m", 0x0800006, 0x200000, CRC(f90baa21) SHA1(20a900819a9d321316e3dfd241210725d7191ecf) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "avp.01", 0x00000, 0x08000, CRC(2d3b4220) SHA1(2b2d04d4282550fa9f6e1ad8528f20d1f2ac02eb) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "avp.11m", 0x000000, 0x200000, CRC(83499817) SHA1(e65b0ebd61ddc748842a9d4d92404b5305307623) ) ROM_LOAD16_WORD_SWAP( "avp.12m", 0x200000, 0x200000, CRC(f4110d49) SHA1(f27538776cc1ba8213f19f98728ed8c02508d3ac) ) @@ -2035,7 +2035,7 @@ ROM_END ROM_START( avspj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "avpj.03d", 0x000000, 0x80000, CRC(49799119) SHA1(71a938b779291c3092ef6ef22935d89fd9c1186c) ) ROM_LOAD16_WORD_SWAP( "avpj.04d", 0x080000, 0x80000, CRC(8cd2bba8) SHA1(1ea493d0d4b6e202ad38843b93035fa3f7e1b8c7) ) ROM_LOAD16_WORD_SWAP( "avp.05d", 0x100000, 0x80000, CRC(fbfb5d7a) SHA1(5549bc9d780753bc9c10fba82588e5c3d4a2acb2) ) @@ -2051,11 +2051,11 @@ ROM_LOAD64_WORD( "avp.18m", 0x0800004, 0x200000, CRC(34fb7232) SHA1(8b1f15bfa758a61e6ad519af24ca774edc70d194) ) ROM_LOAD64_WORD( "avp.20m", 0x0800006, 0x200000, CRC(f90baa21) SHA1(20a900819a9d321316e3dfd241210725d7191ecf) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "avp.01", 0x00000, 0x08000, CRC(2d3b4220) SHA1(2b2d04d4282550fa9f6e1ad8528f20d1f2ac02eb) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "avp.11m", 0x000000, 0x200000, CRC(83499817) SHA1(e65b0ebd61ddc748842a9d4d92404b5305307623) ) ROM_LOAD16_WORD_SWAP( "avp.12m", 0x200000, 0x200000, CRC(f4110d49) SHA1(f27538776cc1ba8213f19f98728ed8c02508d3ac) ) @@ -2064,7 +2064,7 @@ ROM_END ROM_START( avspa ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "avpa.03d", 0x000000, 0x80000, CRC(6c1c1858) SHA1(29af268cf070ea2adc0aac0c5187debdd9706037) ) ROM_LOAD16_WORD_SWAP( "avpa.04d", 0x080000, 0x80000, CRC(94f50b0c) SHA1(607b13e4cb4968c47a598f7dfec965c6d6ba68f0) ) ROM_LOAD16_WORD_SWAP( "avp.05d", 0x100000, 0x80000, CRC(fbfb5d7a) SHA1(5549bc9d780753bc9c10fba82588e5c3d4a2acb2) ) @@ -2080,11 +2080,11 @@ ROM_LOAD64_WORD( "avp.18m", 0x0800004, 0x200000, CRC(34fb7232) SHA1(8b1f15bfa758a61e6ad519af24ca774edc70d194) ) ROM_LOAD64_WORD( "avp.20m", 0x0800006, 0x200000, CRC(f90baa21) SHA1(20a900819a9d321316e3dfd241210725d7191ecf) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "avp.01", 0x00000, 0x08000, CRC(2d3b4220) SHA1(2b2d04d4282550fa9f6e1ad8528f20d1f2ac02eb) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "avp.11m", 0x000000, 0x200000, CRC(83499817) SHA1(e65b0ebd61ddc748842a9d4d92404b5305307623) ) ROM_LOAD16_WORD_SWAP( "avp.12m", 0x200000, 0x200000, CRC(f4110d49) SHA1(f27538776cc1ba8213f19f98728ed8c02508d3ac) ) @@ -2093,7 +2093,7 @@ ROM_END ROM_START( avsph ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "avph.03d", 0x000000, 0x80000, CRC(3e440447) SHA1(5b7431de6b9e243f041d0e76b3a69002662c321a) ) ROM_LOAD16_WORD_SWAP( "avph.04d", 0x080000, 0x80000, CRC(af6fc82f) SHA1(c0293d71a657dbbe14ce15121d0970ccc7e584cf) ) ROM_LOAD16_WORD_SWAP( "avp.05d", 0x100000, 0x80000, CRC(fbfb5d7a) SHA1(5549bc9d780753bc9c10fba82588e5c3d4a2acb2) ) @@ -2109,11 +2109,11 @@ ROM_LOAD64_WORD( "avp.18m", 0x0800004, 0x200000, CRC(34fb7232) SHA1(8b1f15bfa758a61e6ad519af24ca774edc70d194) ) ROM_LOAD64_WORD( "avp.20m", 0x0800006, 0x200000, CRC(f90baa21) SHA1(20a900819a9d321316e3dfd241210725d7191ecf) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "avp.01", 0x00000, 0x08000, CRC(2d3b4220) SHA1(2b2d04d4282550fa9f6e1ad8528f20d1f2ac02eb) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "avp.11m", 0x000000, 0x200000, CRC(83499817) SHA1(e65b0ebd61ddc748842a9d4d92404b5305307623) ) ROM_LOAD16_WORD_SWAP( "avp.12m", 0x200000, 0x200000, CRC(f4110d49) SHA1(f27538776cc1ba8213f19f98728ed8c02508d3ac) ) @@ -2122,7 +2122,7 @@ ROM_END ROM_START( batcir ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "btce.03", 0x000000, 0x80000, CRC(bc60484b) SHA1(9b4e46d0f3d96edcd1c3707409507a5027c69039) ) ROM_LOAD16_WORD_SWAP( "btce.04", 0x080000, 0x80000, CRC(457d55f6) SHA1(19a39ec30166d4b797babe9d70328ac572d1f916) ) ROM_LOAD16_WORD_SWAP( "btce.05", 0x100000, 0x80000, CRC(e86560d7) SHA1(a978a7f5e0069cd78c8588c2d91b825796c723a5) ) @@ -2137,12 +2137,12 @@ ROM_LOAD64_WORD( "btc.17m", 0x000004, 0x400000, CRC(b33f4112) SHA1(e501fd921c8bcede69946b029e05d422714c1040) ) ROM_LOAD64_WORD( "btc.19m", 0x000006, 0x400000, CRC(a6fcdb7e) SHA1(7a28d5d7aa036d23d97fad17d0cdb8210dc8153a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "btc.01", 0x00000, 0x08000, CRC(1e194310) SHA1(3b29de0aca9dbca59d6b50fb2509e2a913c6b0af) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "btc.02", 0x28000, 0x20000, CRC(01aeb8e6) SHA1(50a5d1cce0caf7c5143d4904431e8f41e2a57464) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "btc.11m", 0x000000, 0x200000, CRC(c27f2229) SHA1(df2459493af40937b6656a16fad43ff51bed2204) ) ROM_LOAD16_WORD_SWAP( "btc.12m", 0x200000, 0x200000, CRC(418a2e33) SHA1(0642ddff2ab9255f154419da24ba644ed63f34ab) ) @@ -2151,7 +2151,7 @@ ROM_END ROM_START( batcirj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "btcj.03", 0x000000, 0x80000, CRC(6b7e168d) SHA1(7e95cc436d53d1ce34b575bc7e2b6e2a7ae06cfb) ) ROM_LOAD16_WORD_SWAP( "btcj.04", 0x080000, 0x80000, CRC(46ba3467) SHA1(0cc4a6c82f110d2334fd81f2d3abe5de882768bd) ) ROM_LOAD16_WORD_SWAP( "btcj.05", 0x100000, 0x80000, CRC(0e23a859) SHA1(6c7eec9bf823c66fddbc6b297ea6aa883d03bff5) ) @@ -2166,12 +2166,12 @@ ROM_LOAD64_WORD( "btc.17m", 0x000004, 0x400000, CRC(b33f4112) SHA1(e501fd921c8bcede69946b029e05d422714c1040) ) ROM_LOAD64_WORD( "btc.19m", 0x000006, 0x400000, CRC(a6fcdb7e) SHA1(7a28d5d7aa036d23d97fad17d0cdb8210dc8153a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "btc.01", 0x00000, 0x08000, CRC(1e194310) SHA1(3b29de0aca9dbca59d6b50fb2509e2a913c6b0af) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "btc.02", 0x28000, 0x20000, CRC(01aeb8e6) SHA1(50a5d1cce0caf7c5143d4904431e8f41e2a57464) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "btc.11m", 0x000000, 0x200000, CRC(c27f2229) SHA1(df2459493af40937b6656a16fad43ff51bed2204) ) ROM_LOAD16_WORD_SWAP( "btc.12m", 0x200000, 0x200000, CRC(418a2e33) SHA1(0642ddff2ab9255f154419da24ba644ed63f34ab) ) @@ -2180,7 +2180,7 @@ ROM_END ROM_START( batcira ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "btca.03", 0x000000, 0x80000, CRC(1ad20d87) SHA1(0ad8b7725604a61314883cd4ed8599445fe1cbf8) ) ROM_LOAD16_WORD_SWAP( "btca.04", 0x080000, 0x80000, CRC(2b3f4dbe) SHA1(be4ab2ac411523def5e05081a754b651ead52e1f) ) ROM_LOAD16_WORD_SWAP( "btca.05", 0x100000, 0x80000, CRC(8238a3d9) SHA1(4b0fe0e6c6a8a6572fc3554f2ee77dc01c2f75c3) ) @@ -2195,12 +2195,12 @@ ROM_LOAD64_WORD( "btc.17m", 0x000004, 0x400000, CRC(b33f4112) SHA1(e501fd921c8bcede69946b029e05d422714c1040) ) ROM_LOAD64_WORD( "btc.19m", 0x000006, 0x400000, CRC(a6fcdb7e) SHA1(7a28d5d7aa036d23d97fad17d0cdb8210dc8153a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "btc.01", 0x00000, 0x08000, CRC(1e194310) SHA1(3b29de0aca9dbca59d6b50fb2509e2a913c6b0af) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "btc.02", 0x28000, 0x20000, CRC(01aeb8e6) SHA1(50a5d1cce0caf7c5143d4904431e8f41e2a57464) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "btc.11m", 0x000000, 0x200000, CRC(c27f2229) SHA1(df2459493af40937b6656a16fad43ff51bed2204) ) ROM_LOAD16_WORD_SWAP( "btc.12m", 0x200000, 0x200000, CRC(418a2e33) SHA1(0642ddff2ab9255f154419da24ba644ed63f34ab) ) @@ -2209,34 +2209,34 @@ ROM_END ROM_START( choko ) - ROM_REGION( CODE_SIZE, "maincpu", ROMREGION_ERASEFF ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", ROMREGION_ERASEFF ) // 68000 code ROM_LOAD16_WORD_SWAP( "tkoj.03", 0x000000, 0x80000, CRC(11f5452f) SHA1(1575729cdbb857a3a780df6e3e0efd6968926fb8) ) ROM_LOAD16_WORD_SWAP( "tkoj.04", 0x080000, 0x80000, CRC(68655378) SHA1(a2d82996394cc28622e93f6c338f9b78aa798775) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "tkoj1_d.simm1", 0x0000000, 0x200000, CRC(6933377d) SHA1(a79e129e5faaadd401379905ac76a24fa616d736) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "tkoj1_c.simm1", 0x0000001, 0x200000, CRC(7f668950) SHA1(247b2b3fa24afd43b0fe6cfb3df987a38c7385cf) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "tkoj1_b.simm1", 0x0000002, 0x200000, CRC(cfb68ca9) SHA1(36460724b8df36a4ccf88228d9d5f027714c6628) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "tkoj1_a.simm1", 0x0000003, 0x200000, CRC(437e21c5) SHA1(2c4ace6fa421c91effab8ab8db931b8451b8e6b1) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "tkoj3_d.simm3", 0x0000004, 0x200000, CRC(a9e32b57) SHA1(0ddbfefa0cc110e46297ecbfbf4b8bc87ce43c95) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "tkoj3_c.simm3", 0x0000005, 0x200000, CRC(b7ab9338) SHA1(0bb57640eed167e672b5f40cdff0a7b177ff2507) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "tkoj3_b.simm3", 0x0000006, 0x200000, CRC(4d3f919a) SHA1(eb7f90415a263f0a2b94d9699d72c1d14b4fdaad) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "tkoj3_a.simm3", 0x0000007, 0x200000, CRC(cfef17ab) SHA1(1de738c1e537c3df80171e82bc1cc05a25d9cc13) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "tkoj1_d.simm1", 0x0000000, 0x200000, CRC(6933377d) SHA1(a79e129e5faaadd401379905ac76a24fa616d736) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "tkoj1_c.simm1", 0x0000001, 0x200000, CRC(7f668950) SHA1(247b2b3fa24afd43b0fe6cfb3df987a38c7385cf) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "tkoj1_b.simm1", 0x0000002, 0x200000, CRC(cfb68ca9) SHA1(36460724b8df36a4ccf88228d9d5f027714c6628) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "tkoj1_a.simm1", 0x0000003, 0x200000, CRC(437e21c5) SHA1(2c4ace6fa421c91effab8ab8db931b8451b8e6b1) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "tkoj3_d.simm3", 0x0000004, 0x200000, CRC(a9e32b57) SHA1(0ddbfefa0cc110e46297ecbfbf4b8bc87ce43c95) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "tkoj3_c.simm3", 0x0000005, 0x200000, CRC(b7ab9338) SHA1(0bb57640eed167e672b5f40cdff0a7b177ff2507) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "tkoj3_b.simm3", 0x0000006, 0x200000, CRC(4d3f919a) SHA1(eb7f90415a263f0a2b94d9699d72c1d14b4fdaad) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "tkoj3_a.simm3", 0x0000007, 0x200000, CRC(cfef17ab) SHA1(1de738c1e537c3df80171e82bc1cc05a25d9cc13) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "tko.01", 0x00000, 0x08000, CRC(6eda50c2) SHA1(7e67c104094a3ced8b3fdd81f52ee42483b30fc5) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_BYTE( "tkoj5_a.simm5", 0x000000, 0x200000, CRC(ab45d509) SHA1(c58cf87d3828dfe0643cf4c58615f3352bd45508) ) // ROM on a simm - ROM_LOAD16_BYTE( "tkoj5_b.simm5", 0x000001, 0x200000, CRC(fa905c3d) SHA1(3eae65b01d50ec4ec4aeff49f434b9b88a50463c) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_BYTE( "tkoj5_a.simm5", 0x000000, 0x200000, CRC(ab45d509) SHA1(c58cf87d3828dfe0643cf4c58615f3352bd45508) ) // ROM on a SIMM + ROM_LOAD16_BYTE( "tkoj5_b.simm5", 0x000001, 0x200000, CRC(fa905c3d) SHA1(3eae65b01d50ec4ec4aeff49f434b9b88a50463c) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "choko.key", 0x000000, 0x000014, CRC(08505e8b) SHA1(5c481ffaa93faec57d0b80b678c8c0cca1a699c0) ) ROM_END ROM_START( csclub ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "csce.03a", 0x000000, 0x80000, CRC(824082be) SHA1(a44e7e17d73e089b4e7784317f2387d135d01482) ) ROM_LOAD16_WORD_SWAP( "csce.04a", 0x080000, 0x80000, CRC(74e6a4fe) SHA1(2a732a6e57088885e77256eb17ddd3ae523db09f) ) ROM_LOAD16_WORD_SWAP( "csce.05a", 0x100000, 0x80000, CRC(8ae0df19) SHA1(88e7bf1ee0e18d74748cecd875cb96524dfa01cf) ) @@ -2262,11 +2262,11 @@ ROM_LOAD64_WORD( "csc.95", 0xc00006, 0x080000, CRC(4d014297) SHA1(df172a3723793b9955ff1f65e76fe5c20fc37b89) ) ROM_LOAD64_WORD( "csc.96", 0xe00006, 0x080000, CRC(6754b1ef) SHA1(ab5d62056b19999ccecd0eeec7b7c5869ca8fea8) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "csc.01", 0x00000, 0x08000, CRC(ee162111) SHA1(ce8d4bd32bb10ee8b0274ba6fcef05a583b39d48) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "csc.51", 0x000000, 0x080000, CRC(5a52afd5) SHA1(ab873ec556933b75be82ba249357cceb01a7a0bd) ) ROM_LOAD16_WORD_SWAP( "csc.52", 0x080000, 0x080000, CRC(1408a811) SHA1(1d31e3cd505245b5ff4d3c55d5fa7017c0f1e168) ) ROM_LOAD16_WORD_SWAP( "csc.53", 0x100000, 0x080000, CRC(4fb9f57c) SHA1(093e8e3a03b62783a84fe4ae239e9eb46cbfd71e) ) @@ -2281,7 +2281,7 @@ ROM_END ROM_START( csclub1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "csce.03", 0x000000, 0x80000, CRC(f2c852ef) SHA1(bc2d403958640d7ab0785d01a3df79ec31d0c239) ) ROM_LOAD16_WORD_SWAP( "csce.04", 0x080000, 0x80000, CRC(1184530f) SHA1(18565f6a06e6078fc20dd9cf70802ac1da60c67a) ) ROM_LOAD16_WORD_SWAP( "csce.05", 0x100000, 0x80000, CRC(804e2b6b) SHA1(e638f73442e3165ace84cdb1bd2a9d419e2d8c41) ) @@ -2295,11 +2295,11 @@ ROM_LOAD64_WORD( "csc.18m", 0x800004, 0x200000, CRC(c030df5a) SHA1(6d5e5a05531e168d0d44c591f9185ae300908fc2) ) ROM_LOAD64_WORD( "csc.20m", 0x800006, 0x200000, CRC(b4e55863) SHA1(da66f0a36266b906e4c149aec152c323bb184c57) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "csc.01", 0x00000, 0x08000, CRC(ee162111) SHA1(ce8d4bd32bb10ee8b0274ba6fcef05a583b39d48) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "csc.11m", 0x000000, 0x200000, CRC(a027b827) SHA1(6d58a63efc7bd5d07353d9b55826c01a3c416c33) ) ROM_LOAD16_WORD_SWAP( "csc.12m", 0x200000, 0x200000, CRC(cb7f6e55) SHA1(b64e6b663fd09e887d2dc0f4b545e88688c0af55) ) @@ -2308,7 +2308,7 @@ ROM_END ROM_START( csclubj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "cscj.03", 0x000000, 0x80000, CRC(ec4ddaa2) SHA1(f84af8bd01cc994ecd6ac24e829e2bd33817d862) ) ROM_LOAD16_WORD_SWAP( "cscj.04", 0x080000, 0x80000, CRC(60c632bb) SHA1(0d42c33aa476d2cc4efcdad78667353b88225966) ) ROM_LOAD16_WORD_SWAP( "cscj.05", 0x100000, 0x80000, CRC(ad042003) SHA1(1e167c88f3b0617c38c9f43bdc816045ac0296e0) ) @@ -2317,25 +2317,25 @@ ROM_REGION( 0x1000000, "gfx", 0 ) ROM_FILL( 0x000000, 0x800000, 0x00 ) - ROM_LOAD64_WORD( "csc.14m", 0x800000, 0x200000, CRC(e8904afa) SHA1(39713ffca4e3a754c7c44c0ef4d99fb5a77d8da7) ) /* roms 73 to 76 joined in all eprom version */ - ROM_LOAD64_WORD( "csc.16m", 0x800002, 0x200000, CRC(c98c8079) SHA1(22d68ba2ef62b51981bb3e99ec2cde8d1b36514b) ) /* roms 63 to 66 joined in all eprom version */ - ROM_LOAD64_WORD( "csc.18m", 0x800004, 0x200000, CRC(c030df5a) SHA1(6d5e5a05531e168d0d44c591f9185ae300908fc2) ) /* roms 83 to 86 joined in all eprom version */ - ROM_LOAD64_WORD( "csc.20m", 0x800006, 0x200000, CRC(b4e55863) SHA1(da66f0a36266b906e4c149aec152c323bb184c57) ) /* roms 93 to 96 joined in all eprom version */ + ROM_LOAD64_WORD( "csc.14m", 0x800000, 0x200000, CRC(e8904afa) SHA1(39713ffca4e3a754c7c44c0ef4d99fb5a77d8da7) ) // ROMs 73 to 76 joined in all EPROM version + ROM_LOAD64_WORD( "csc.16m", 0x800002, 0x200000, CRC(c98c8079) SHA1(22d68ba2ef62b51981bb3e99ec2cde8d1b36514b) ) // ROMs 63 to 66 joined in all EPROM version + ROM_LOAD64_WORD( "csc.18m", 0x800004, 0x200000, CRC(c030df5a) SHA1(6d5e5a05531e168d0d44c591f9185ae300908fc2) ) // ROMs 83 to 86 joined in all EPROM version + ROM_LOAD64_WORD( "csc.20m", 0x800006, 0x200000, CRC(b4e55863) SHA1(da66f0a36266b906e4c149aec152c323bb184c57) ) // ROMs 93 to 96 joined in all EPROM version - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "csc.01", 0x00000, 0x08000, CRC(ee162111) SHA1(ce8d4bd32bb10ee8b0274ba6fcef05a583b39d48) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "csc.11m", 0x000000, 0x200000, CRC(a027b827) SHA1(6d58a63efc7bd5d07353d9b55826c01a3c416c33) ) /* roms 51 to 54 joined in all eprom version */ - ROM_LOAD16_WORD_SWAP( "csc.12m", 0x200000, 0x200000, CRC(cb7f6e55) SHA1(b64e6b663fd09e887d2dc0f4b545e88688c0af55) ) /* roms 55 to 58 joined in all eprom version */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "csc.11m", 0x000000, 0x200000, CRC(a027b827) SHA1(6d58a63efc7bd5d07353d9b55826c01a3c416c33) ) // ROMs 51 to 54 joined in all EPROM version + ROM_LOAD16_WORD_SWAP( "csc.12m", 0x200000, 0x200000, CRC(cb7f6e55) SHA1(b64e6b663fd09e887d2dc0f4b545e88688c0af55) ) // ROMs 55 to 58 joined in all EPROM version ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "csclubj.key", 0x000000, 0x000014, CRC(519a04db) SHA1(8f792831dc7e07fb621806c4e320a047f801e9b8) ) ROM_END -ROM_START( csclubjy ) // this is fairly redundant, same code as csclubj, same gfx as csclub (yellow case - all eprom), but it's a valid shipped combination - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ +ROM_START( csclubjy ) // This is fairly redundant, same code as csclubj, same gfx as csclub (yellow case - all eprom), but it's a valid shipped combination + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "cscj.03", 0x000000, 0x80000, CRC(ec4ddaa2) SHA1(f84af8bd01cc994ecd6ac24e829e2bd33817d862) ) ROM_LOAD16_WORD_SWAP( "cscj.04", 0x080000, 0x80000, CRC(60c632bb) SHA1(0d42c33aa476d2cc4efcdad78667353b88225966) ) ROM_LOAD16_WORD_SWAP( "cscj.05", 0x100000, 0x80000, CRC(ad042003) SHA1(1e167c88f3b0617c38c9f43bdc816045ac0296e0) ) @@ -2361,11 +2361,11 @@ ROM_LOAD64_WORD( "csc.95", 0xc00006, 0x080000, CRC(4d014297) SHA1(df172a3723793b9955ff1f65e76fe5c20fc37b89) ) ROM_LOAD64_WORD( "csc.96", 0xe00006, 0x080000, CRC(6754b1ef) SHA1(ab5d62056b19999ccecd0eeec7b7c5869ca8fea8) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "csc.01", 0x00000, 0x08000, CRC(ee162111) SHA1(ce8d4bd32bb10ee8b0274ba6fcef05a583b39d48) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "csc.51", 0x000000, 0x080000, CRC(5a52afd5) SHA1(ab873ec556933b75be82ba249357cceb01a7a0bd) ) ROM_LOAD16_WORD_SWAP( "csc.52", 0x080000, 0x080000, CRC(1408a811) SHA1(1d31e3cd505245b5ff4d3c55d5fa7017c0f1e168) ) ROM_LOAD16_WORD_SWAP( "csc.53", 0x100000, 0x080000, CRC(4fb9f57c) SHA1(093e8e3a03b62783a84fe4ae239e9eb46cbfd71e) ) @@ -2381,7 +2381,7 @@ ROM_START( cscluba ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "csca.03", 0x000000, 0x80000, CRC(b6acd708) SHA1(27d316053b0e74b1e9db979d500767cfa49fbce3) ) ROM_LOAD16_WORD_SWAP( "csca.04", 0x080000, 0x80000, CRC(d44ae35f) SHA1(cd464792fe777183b0b0587239fb1b52bd7f9ec7) ) ROM_LOAD16_WORD_SWAP( "csca.05", 0x100000, 0x80000, CRC(8da76aec) SHA1(04552f2c9c424d808703136a7909df903aec290a) ) @@ -2395,11 +2395,11 @@ ROM_LOAD64_WORD( "csc.18m", 0x800004, 0x200000, CRC(c030df5a) SHA1(6d5e5a05531e168d0d44c591f9185ae300908fc2) ) ROM_LOAD64_WORD( "csc.20m", 0x800006, 0x200000, CRC(b4e55863) SHA1(da66f0a36266b906e4c149aec152c323bb184c57) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "csc.01", 0x00000, 0x08000, CRC(ee162111) SHA1(ce8d4bd32bb10ee8b0274ba6fcef05a583b39d48) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "csc.11m", 0x000000, 0x200000, CRC(a027b827) SHA1(6d58a63efc7bd5d07353d9b55826c01a3c416c33) ) ROM_LOAD16_WORD_SWAP( "csc.12m", 0x200000, 0x200000, CRC(cb7f6e55) SHA1(b64e6b663fd09e887d2dc0f4b545e88688c0af55) ) @@ -2408,7 +2408,7 @@ ROM_END ROM_START( csclubh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "csch.03", 0x000000, 0x80000, CRC(0dd7e46d) SHA1(deacd350b8954998636065cf070c9955d08402b8) ) ROM_LOAD16_WORD_SWAP( "csch.04", 0x080000, 0x80000, CRC(486e8143) SHA1(d50ab8a5fdc194a9cded74cff94e5b3b69069826) ) ROM_LOAD16_WORD_SWAP( "csch.05", 0x100000, 0x80000, CRC(9e509dfb) SHA1(4a6cd8488a63ad3f7d5a08f2a6af4728dc147790) ) @@ -2417,25 +2417,25 @@ ROM_REGION( 0x1000000, "gfx", 0 ) ROM_FILL( 0x000000, 0x800000, 0x00 ) - ROM_LOAD64_WORD( "csc.14m", 0x800000, 0x200000, CRC(e8904afa) SHA1(39713ffca4e3a754c7c44c0ef4d99fb5a77d8da7) ) /* roms 73 to 76 joined in all eprom version */ - ROM_LOAD64_WORD( "csc.16m", 0x800002, 0x200000, CRC(c98c8079) SHA1(22d68ba2ef62b51981bb3e99ec2cde8d1b36514b) ) /* roms 63 to 66 joined in all eprom version */ - ROM_LOAD64_WORD( "csc.18m", 0x800004, 0x200000, CRC(c030df5a) SHA1(6d5e5a05531e168d0d44c591f9185ae300908fc2) ) /* roms 83 to 86 joined in all eprom version */ - ROM_LOAD64_WORD( "csc.20m", 0x800006, 0x200000, CRC(b4e55863) SHA1(da66f0a36266b906e4c149aec152c323bb184c57) ) /* roms 93 to 96 joined in all eprom version */ + ROM_LOAD64_WORD( "csc.14m", 0x800000, 0x200000, CRC(e8904afa) SHA1(39713ffca4e3a754c7c44c0ef4d99fb5a77d8da7) ) // ROMs 73 to 76 joined in all EPROM version + ROM_LOAD64_WORD( "csc.16m", 0x800002, 0x200000, CRC(c98c8079) SHA1(22d68ba2ef62b51981bb3e99ec2cde8d1b36514b) ) // ROMs 63 to 66 joined in all EPROM version + ROM_LOAD64_WORD( "csc.18m", 0x800004, 0x200000, CRC(c030df5a) SHA1(6d5e5a05531e168d0d44c591f9185ae300908fc2) ) // ROMs 83 to 86 joined in all EPROM version + ROM_LOAD64_WORD( "csc.20m", 0x800006, 0x200000, CRC(b4e55863) SHA1(da66f0a36266b906e4c149aec152c323bb184c57) ) // ROMs 93 to 96 joined in all EPROM version - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "csc.01", 0x00000, 0x08000, CRC(ee162111) SHA1(ce8d4bd32bb10ee8b0274ba6fcef05a583b39d48) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "csc.11m", 0x000000, 0x200000, CRC(a027b827) SHA1(6d58a63efc7bd5d07353d9b55826c01a3c416c33) ) /* roms 51 to 54 joined in all eprom version */ - ROM_LOAD16_WORD_SWAP( "csc.12m", 0x200000, 0x200000, CRC(cb7f6e55) SHA1(b64e6b663fd09e887d2dc0f4b545e88688c0af55) ) /* roms 55 to 58 joined in all eprom version */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "csc.11m", 0x000000, 0x200000, CRC(a027b827) SHA1(6d58a63efc7bd5d07353d9b55826c01a3c416c33) ) // ROMs 51 to 54 joined in all EPROM version + ROM_LOAD16_WORD_SWAP( "csc.12m", 0x200000, 0x200000, CRC(cb7f6e55) SHA1(b64e6b663fd09e887d2dc0f4b545e88688c0af55) ) // ROMs 55 to 58 joined in all EPROM version ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "csclubh.key", 0x000000, 0x000014, CRC(b0adc39e) SHA1(37f29580497d24c8f248031acdfab06374ed77fd) ) ROM_END ROM_START( cybots ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "cybe.03", 0x000000, 0x80000, CRC(234381cd) SHA1(6202a2a318feda525e16fd7b31c03af9ccc5d964) ) ROM_LOAD16_WORD_SWAP( "cybe.04", 0x080000, 0x80000, CRC(80691061) SHA1(4f3ef24fc76d3a5b369aa6192ad390d9c3c9b0e8) ) ROM_LOAD16_WORD_SWAP( "cyb.05", 0x100000, 0x80000, CRC(ec40408e) SHA1(dd611c1708e7ef86e4f7cac4b7b0dff7baaee5ed) ) @@ -2455,12 +2455,12 @@ ROM_LOAD64_WORD( "cyb.18m", 0x1000004, 0x400000, CRC(d83e977d) SHA1(e03f4a120c95a2f476ffc8492bca85e0c5cea068) ) ROM_LOAD64_WORD( "cyb.20m", 0x1000006, 0x400000, CRC(77cdad5c) SHA1(94d0cc5f05de4bc2d43977d91f887005dc10310c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "cyb.01", 0x00000, 0x08000, CRC(9c0fb079) SHA1(06d260875a76da08d56ea2b2ae277e8c2dbae6e3) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "cyb.02", 0x28000, 0x20000, CRC(51cb0c4e) SHA1(c322957558d8d3e9dad090aebbe485978cbce8f5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "cyb.11m", 0x000000, 0x200000, CRC(362ccab2) SHA1(28e537067d4846f22657ee37166d18b8f05f4da1) ) ROM_LOAD16_WORD_SWAP( "cyb.12m", 0x200000, 0x200000, CRC(7066e9cc) SHA1(eb6a9d4998b3311344d73bae88d661d81609c492) ) @@ -2469,7 +2469,7 @@ ROM_END ROM_START( cybotsu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "cybu.03", 0x000000, 0x80000, CRC(db4da8f4) SHA1(de9f3f261003f4f70ae32114a15e498387c23f6d) ) ROM_LOAD16_WORD_SWAP( "cybu.04", 0x080000, 0x80000, CRC(1eec68ac) SHA1(b2b9379c84b121048cb83a8c48756b48cdbc3ea1) ) ROM_LOAD16_WORD_SWAP( "cyb.05", 0x100000, 0x80000, CRC(ec40408e) SHA1(dd611c1708e7ef86e4f7cac4b7b0dff7baaee5ed) ) @@ -2489,12 +2489,12 @@ ROM_LOAD64_WORD( "cyb.18m", 0x1000004, 0x400000, CRC(d83e977d) SHA1(e03f4a120c95a2f476ffc8492bca85e0c5cea068) ) ROM_LOAD64_WORD( "cyb.20m", 0x1000006, 0x400000, CRC(77cdad5c) SHA1(94d0cc5f05de4bc2d43977d91f887005dc10310c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "cyb.01", 0x00000, 0x08000, CRC(9c0fb079) SHA1(06d260875a76da08d56ea2b2ae277e8c2dbae6e3) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "cyb.02", 0x28000, 0x20000, CRC(51cb0c4e) SHA1(c322957558d8d3e9dad090aebbe485978cbce8f5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "cyb.11m", 0x000000, 0x200000, CRC(362ccab2) SHA1(28e537067d4846f22657ee37166d18b8f05f4da1) ) ROM_LOAD16_WORD_SWAP( "cyb.12m", 0x200000, 0x200000, CRC(7066e9cc) SHA1(eb6a9d4998b3311344d73bae88d661d81609c492) ) @@ -2503,7 +2503,7 @@ ROM_END ROM_START( cybotsj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "cybj.03", 0x000000, 0x80000, CRC(6096eada) SHA1(ea3fa2e6229d90cc3f69c59f447b6b373d64d2aa) ) ROM_LOAD16_WORD_SWAP( "cybj.04", 0x080000, 0x80000, CRC(7b0ffaa9) SHA1(595c3e679ea02282bf8a5aa6c7c09e5c30e839c7) ) ROM_LOAD16_WORD_SWAP( "cyb.05", 0x100000, 0x80000, CRC(ec40408e) SHA1(dd611c1708e7ef86e4f7cac4b7b0dff7baaee5ed) ) @@ -2523,12 +2523,12 @@ ROM_LOAD64_WORD( "cyb.18m", 0x1000004, 0x400000, CRC(d83e977d) SHA1(e03f4a120c95a2f476ffc8492bca85e0c5cea068) ) ROM_LOAD64_WORD( "cyb.20m", 0x1000006, 0x400000, CRC(77cdad5c) SHA1(94d0cc5f05de4bc2d43977d91f887005dc10310c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "cyb.01", 0x00000, 0x08000, CRC(9c0fb079) SHA1(06d260875a76da08d56ea2b2ae277e8c2dbae6e3) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "cyb.02", 0x28000, 0x20000, CRC(51cb0c4e) SHA1(c322957558d8d3e9dad090aebbe485978cbce8f5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "cyb.11m", 0x000000, 0x200000, CRC(362ccab2) SHA1(28e537067d4846f22657ee37166d18b8f05f4da1) ) ROM_LOAD16_WORD_SWAP( "cyb.12m", 0x200000, 0x200000, CRC(7066e9cc) SHA1(eb6a9d4998b3311344d73bae88d661d81609c492) ) @@ -2537,7 +2537,7 @@ ROM_END ROM_START( ddtod ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dade.03c", 0x000000, 0x80000, CRC(8e73533d) SHA1(6eece222e562dd0c453d8dec188c9553c46dfe3c) ) ROM_LOAD16_WORD_SWAP( "dade.04c", 0x080000, 0x80000, CRC(00c2e82e) SHA1(fad4dcdac8d6ef04b71e987936bf27e3d93809fc) ) ROM_LOAD16_WORD_SWAP( "dade.05c", 0x100000, 0x80000, CRC(ea996008) SHA1(9f41679531e971e62483415c07ef4ee7489ff779) ) @@ -2554,11 +2554,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2567,7 +2567,7 @@ ROM_END ROM_START( ddtodr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dade.03a", 0x000000, 0x80000, CRC(665a035e) SHA1(4aa81f7055bc288be1282dcbf9a33c77d3c963f5) ) ROM_LOAD16_WORD_SWAP( "dade.04a", 0x080000, 0x80000, CRC(02613207) SHA1(a29258848e8f6ac7469c88668a83e07bf325f96a) ) ROM_LOAD16_WORD_SWAP( "dade.05a", 0x100000, 0x80000, CRC(36845996) SHA1(a767564b62c1e25c62e4d31201f10d8c4a368197) ) @@ -2584,11 +2584,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2597,7 +2597,7 @@ ROM_END ROM_START( ddtodu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadu.03b", 0x000000, 0x80000, CRC(a519905f) SHA1(7f846d7ac5d5e0d06657f712a7a09bee984a4f4b) ) ROM_LOAD16_WORD_SWAP( "dadu.04b", 0x080000, 0x80000, CRC(52562d38) SHA1(3ee21399a19ee5e2db2a8c2a893d8a31a3419399) ) ROM_LOAD16_WORD_SWAP( "dadu.05b", 0x100000, 0x80000, CRC(ee1cfbfe) SHA1(4107e495827ada1712a2393dffcdf52d98aca2e0) ) @@ -2614,11 +2614,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2627,7 +2627,7 @@ ROM_END ROM_START( ddtodur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadu.03a", 0x000000, 0x80000, CRC(4413f177) SHA1(26c8d06adc83ffc5bec4abf05aa64e874e85d539) ) ROM_LOAD16_WORD_SWAP( "dadu.04a", 0x080000, 0x80000, CRC(168de230) SHA1(3f8af1625bb0d9097e538f8ba7cd23d95b0233aa) ) ROM_LOAD16_WORD_SWAP( "dadu.05a", 0x100000, 0x80000, CRC(03d39e91) SHA1(92461b87c55cb41bbe89bcb3e3f2e9b1ed521067) ) @@ -2644,11 +2644,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2657,7 +2657,7 @@ ROM_END ROM_START( ddtodj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadj.03c", 0x000000, 0x80000, CRC(0b1b5798) SHA1(ce2749164a6cf4c99db4bfa7e515a9022006cf92) ) ROM_LOAD16_WORD_SWAP( "dadj.04c", 0x080000, 0x80000, CRC(c6a2fbc8) SHA1(cb7105e9d35c9e64f5535eb5f491e3f2cf6de64e) ) ROM_LOAD16_WORD_SWAP( "dadj.05c", 0x100000, 0x80000, CRC(189b15fe) SHA1(91baef189549a25122fd5ab238a849bad2766862) ) @@ -2674,11 +2674,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2687,7 +2687,7 @@ ROM_END ROM_START( ddtodjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadj.03b", 0x000000, 0x80000, CRC(87606b85) SHA1(1311c9ae321207db4632572f6c838b732974b087) ) ROM_LOAD16_WORD_SWAP( "dadj.04b", 0x080000, 0x80000, CRC(24d49575) SHA1(419d7d2f970c23c39334a7f2e8c5caa237769c5d) ) ROM_LOAD16_WORD_SWAP( "dadj.05b", 0x100000, 0x80000, CRC(56ce51f7) SHA1(3a15537c479e3798ec30d5e313a727d7f91955c0) ) @@ -2704,11 +2704,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2717,7 +2717,7 @@ ROM_END ROM_START( ddtodjr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadj.03a", 0x000000, 0x80000, CRC(711638dc) SHA1(30c1d1a694aa8e51d072b26b47ba55aed6d77b7b) ) ROM_LOAD16_WORD_SWAP( "dadj.04a", 0x080000, 0x80000, CRC(4869639c) SHA1(1544813e6712a78267c1d27b6b49148d42c11127) ) ROM_LOAD16_WORD_SWAP( "dadj.05a", 0x100000, 0x80000, CRC(484c0efa) SHA1(d4ddef54149ef0141dcbe05df5f669fccf462559) ) @@ -2734,11 +2734,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2747,7 +2747,7 @@ ROM_END ROM_START( ddtoda ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dada.03c", 0x000000, 0x80000, CRC(bf243e15) SHA1(6ee212defb69064a9caddf2e3aab71c24cb67a82) ) ROM_LOAD16_WORD_SWAP( "dada.04c", 0x080000, 0x80000, CRC(76551eec) SHA1(71f4fd59ccbca6b212ec21729ac024933abafb74) ) ROM_LOAD16_WORD_SWAP( "dada.05c", 0x100000, 0x80000, CRC(0a0ad827) SHA1(f17a3100f40c24862d717edc8e2a75b9cb29f4fe) ) @@ -2764,11 +2764,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2777,7 +2777,7 @@ ROM_END ROM_START( ddtodar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dada.03a", 0x000000, 0x80000, CRC(fc6f2dd7) SHA1(82f59670ec77a11e9765e2acd0e846d1c768b542) ) ROM_LOAD16_WORD_SWAP( "dada.04a", 0x080000, 0x80000, CRC(d4be4009) SHA1(c914ddc8f0c237efb52dd1a8f56395b17a6583be) ) ROM_LOAD16_WORD_SWAP( "dada.05a", 0x100000, 0x80000, CRC(6712d1cf) SHA1(a716ee5ca434badc57f67e0802c6b184bf243dbb) ) @@ -2794,11 +2794,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2807,7 +2807,7 @@ ROM_END ROM_START( ddtodh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadh.03c", 0x000000, 0x80000, CRC(5750a861) SHA1(3b94999779f1b5f7cdaf78468256e2b60ba8c076) ) ROM_LOAD16_WORD_SWAP( "dadh.04c", 0x080000, 0x80000, CRC(cfbf1b56) SHA1(d8919397f1d6dacddc6811889b69b65cd91be683) ) ROM_LOAD16_WORD_SWAP( "dadh.05c", 0x100000, 0x80000, CRC(a6e562ba) SHA1(42998024a3bb4464843411ebe7283c6f5369694d) ) @@ -2824,11 +2824,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2837,7 +2837,7 @@ ROM_END ROM_START( ddtodhr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadh.03b", 0x000000, 0x80000, CRC(ae0cb98e) SHA1(e85fb56d8f55fd1626a47301953b66597814e516) ) ROM_LOAD16_WORD_SWAP( "dadh.04b", 0x080000, 0x80000, CRC(b5774363) SHA1(c91a6b257de4355a29d0a9742909592e69d287fb) ) ROM_LOAD16_WORD_SWAP( "dadh.05b", 0x100000, 0x80000, CRC(6ce2a485) SHA1(7397105bbf88f6f2aa46614395df38b205e6461c) ) @@ -2854,11 +2854,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2867,7 +2867,7 @@ ROM_END ROM_START( ddtodhr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dadh.03a", 0x000000, 0x80000, CRC(43d04aa3) SHA1(550fcc8ebf48d704223347abee759d0ed903432b) ) ROM_LOAD16_WORD_SWAP( "dadh.04a", 0x080000, 0x80000, CRC(8b8d296c) SHA1(4cd6612855317ba13dd4c6b0dd024243677b5fbe) ) ROM_LOAD16_WORD_SWAP( "dadh.05a", 0x100000, 0x80000, CRC(daae6b14) SHA1(ee132b19f8d8c17da6fd2d2da24205f2404a62d1) ) @@ -2884,11 +2884,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -2897,7 +2897,7 @@ ROM_END ROM_START( ddsom ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2e.03e", 0x000000, 0x80000, CRC(449361af) SHA1(14af2b35e6f43f92c9e071f1dc85b18cf73ecb35) ) ROM_LOAD16_WORD_SWAP( "dd2e.04e", 0x080000, 0x80000, CRC(5b7052b6) SHA1(8a5f069f450da939d0f02518751cd9815d621d81) ) ROM_LOAD16_WORD_SWAP( "dd2e.05e", 0x100000, 0x80000, CRC(788d5f60) SHA1(b8b42c11530a34c2878fb119c0a388e33067b66d) ) @@ -2917,12 +2917,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -2931,7 +2931,7 @@ ROM_END ROM_START( ddsomr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2e.03d", 0x000000, 0x80000, CRC(6c084ab5) SHA1(edfb4094086836c9ba47fed149b5756cf40d8bc1) ) ROM_LOAD16_WORD_SWAP( "dd2e.04d", 0x080000, 0x80000, CRC(9b94a947) SHA1(6b170d9d07c5fe98a186c2eb7d65639cbbe828fc) ) ROM_LOAD16_WORD_SWAP( "dd2e.05d", 0x100000, 0x80000, CRC(5d6a63c6) SHA1(2f1cefe2531688c305b3ddcc4c8adae39dcadb33) ) @@ -2951,12 +2951,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -2965,7 +2965,7 @@ ROM_END ROM_START( ddsomr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2e.03b", 0x000000, 0x80000, CRC(cd2deb66) SHA1(8a3fa5aca364f11bea76f69504e82416efc0ec11) ) ROM_LOAD16_WORD_SWAP( "dd2e.04b", 0x080000, 0x80000, CRC(bfee43cc) SHA1(16cb34103bede42599ff3083a70ff918fdce9929) ) ROM_LOAD16_WORD_SWAP( "dd2e.05b", 0x100000, 0x80000, CRC(049ab19d) SHA1(dfd2ed64c409389fed9b1d96955cbe0cf2abd2b7) ) @@ -2985,12 +2985,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -2999,7 +2999,7 @@ ROM_END ROM_START( ddsomr3 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2e.03a", 0x000000, 0x80000, CRC(6de67678) SHA1(df4846b963ea0449fbd16152600a9628d20b278a) ) ROM_LOAD16_WORD_SWAP( "dd2e.04a", 0x080000, 0x80000, CRC(0e45739a) SHA1(4fa9dc8109fad30e4037047ddec1b367b5b7600f) ) ROM_LOAD16_WORD_SWAP( "dd2e.05a", 0x100000, 0x80000, CRC(3dce8025) SHA1(5fb0a58b7cccc889507b0085b5e74d7aef507f08) ) @@ -3019,12 +3019,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3033,7 +3033,7 @@ ROM_END ROM_START( ddsomu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2u.03g", 0x000000, 0x80000, CRC(fb089b39) SHA1(2d00ad87d5e862745d730a84a8b9b9a8c9423282) ) ROM_LOAD16_WORD_SWAP( "dd2u.04g", 0x080000, 0x80000, CRC(cd432b73) SHA1(7c5ddad66f9f08fef79efb01ccf230a9eae366c6) ) ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) ) @@ -3053,12 +3053,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3067,7 +3067,7 @@ ROM_END ROM_START( ddsomur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2u.03d", 0x000000, 0x80000, CRC(0f700d84) SHA1(f4788d4046e0f6aba146c18a930196f5f9f8f14a) ) ROM_LOAD16_WORD_SWAP( "dd2u.04d", 0x080000, 0x80000, CRC(b99eb254) SHA1(507ad31b0d77dfbaaaf0fa5830c4ef14845a80de) ) ROM_LOAD16_WORD_SWAP( "dd2.05d", 0x100000, 0x80000, CRC(b23061f3) SHA1(471a1238770a5109f34a0b450b214a5490cc6ecb) ) @@ -3087,12 +3087,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3101,7 +3101,7 @@ ROM_END ROM_START( ddsomj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2j.03g", 0x000000, 0x80000, CRC(e6c8c985) SHA1(0736a84d7d9d37d51826eac6826a7728260bc625) ) ROM_LOAD16_WORD_SWAP( "dd2j.04g", 0x080000, 0x80000, CRC(8386c0bd) SHA1(59bfc71914ec2bb7d1b9f327b25d2399181d4bb2) ) ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) ) @@ -3121,12 +3121,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3135,7 +3135,7 @@ ROM_END ROM_START( ddsomjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2j.03b", 0x000000, 0x80000, CRC(965d74e5) SHA1(d7aa1b78043cdf09ee71a6dd5fe78e0588ca7875) ) ROM_LOAD16_WORD_SWAP( "dd2j.04b", 0x080000, 0x80000, CRC(958eb8f3) SHA1(3d9747bc9091b0b42c953a19992b94cb2bf69159) ) ROM_LOAD16_WORD_SWAP( "dd2.05b", 0x100000, 0x80000, CRC(d38571ca) SHA1(f0105a4f201e11f489e44c8061b0025de2e32f93) ) @@ -3155,12 +3155,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3169,7 +3169,7 @@ ROM_END ROM_START( ddsomjr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2j.03b", 0x000000, 0x80000, CRC(b2fd4a24) SHA1(6b5bd11e665e84a9de56d167a5d8957a3a967f8c) ) ROM_LOAD16_WORD_SWAP( "dd2j.04b", 0x080000, 0x80000, CRC(3a68c310) SHA1(8806ea2765e82f396158f0ae8a906cda90bd3472) ) ROM_LOAD16_WORD_SWAP( "dd2.05b", 0x100000, 0x80000, CRC(aa56f42f) SHA1(2795a1c8978c5f459daaca57985c24027139d7e1) ) @@ -3189,12 +3189,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3203,7 +3203,7 @@ ROM_END ROM_START( ddsoma ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2a.03g", 0x000000, 0x80000, CRC(0b4fec22) SHA1(4dd69637898e0bc64d1b1dc34561ce1807da314b) ) ROM_LOAD16_WORD_SWAP( "dd2a.04g", 0x080000, 0x80000, CRC(055b7019) SHA1(5dab39552fee20bd6f94c992c1c3a995595fdf94) ) ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) ) @@ -3223,12 +3223,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3238,7 +3238,7 @@ ROM_START( ddsomar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2a.03c", 0x000000, 0x80000, CRC(17162039) SHA1(d6e161cc888c2c7cd7b955ef9f1fc47a5302e29d) ) ROM_LOAD16_WORD_SWAP( "dd2a.04c", 0x080000, 0x80000, CRC(950bec38) SHA1(99b50388015730142d28263de1b4f918f7a353fa) ) ROM_LOAD16_WORD_SWAP( "dd2a.05c", 0x100000, 0x80000, CRC(fa298eba) SHA1(64d248de4e5655129bb3a420020ca041f5e7b740) ) @@ -3258,12 +3258,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3272,7 +3272,7 @@ ROM_END ROM_START( ddsomb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2b.03a", 0x000000, 0x80000, CRC(e8ce7fbb) SHA1(645133fb07b34f663709896a0f55a9a51de4ee9b) ) ROM_LOAD16_WORD_SWAP( "dd2b.04a", 0x080000, 0x80000, CRC(6b679664) SHA1(480d8b225c69d528528b6a4db86797a9d9e6ac80) ) ROM_LOAD16_WORD_SWAP( "dd2b.05a", 0x100000, 0x80000, CRC(9b2534eb) SHA1(04a9f9b75f817dff1b94641aba399d487b57a9f7) ) @@ -3292,12 +3292,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3306,7 +3306,7 @@ ROM_END ROM_START( ddsomh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2h.03a", 0x000000, 0x80000, CRC(e472c9f3) SHA1(43e0767cca3ce0c151f1bd12d476cc2f0013b5e5) ) ROM_LOAD16_WORD_SWAP( "dd2h.04a", 0x080000, 0x80000, CRC(315a7706) SHA1(de6ced251a483455b0d0371c60bce0c209879b43) ) ROM_LOAD16_WORD_SWAP( "dd2h.05a", 0x100000, 0x80000, CRC(9b2534eb) SHA1(04a9f9b75f817dff1b94641aba399d487b57a9f7) ) /* Roms 05 through 10 are the same as the Brazil set */ @@ -3326,12 +3326,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -3340,7 +3340,7 @@ ROM_END ROM_START( dimahoo ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "gmde.03", 0x000000, 0x80000, CRC(968fcecd) SHA1(82d6eb6488df48bc7b977fc900c24b29bd6573a9) ) ROM_LOAD16_WORD_SWAP( "gmd.04", 0x080000, 0x80000, CRC(37485567) SHA1(643c41fce6057bcaef0e0bedc62914c33d97eeaf) ) ROM_LOAD16_WORD_SWAP( "gmd.05", 0x100000, 0x80000, CRC(da269ffb) SHA1(e99b04192030b6006cf67b563f40cea29c1b2e78) ) @@ -3352,12 +3352,12 @@ ROM_LOAD64_WORD( "gmd.17m", 0x000004, 0x400000, CRC(16356520) SHA1(058713bef30c1b1d8b7dd0ceaaa57a3ab9751a70) ) ROM_LOAD64_WORD( "gmd.19m", 0x000006, 0x400000, CRC(dfc33031) SHA1(a1ceaeddc2a79d5b79f1b107cac2ef6a5e621e77) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "gmd.01", 0x00000, 0x08000, CRC(3f9bc985) SHA1(1616bbee82877b1052a07531066f5009a80706be) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "gmd.02", 0x28000, 0x20000, CRC(3fd39dde) SHA1(6a6e3ef9baa430ee83ab2312aa0221bae4d73dbd) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "gmd.11m", 0x000000, 0x400000, CRC(06a65542) SHA1(a1b3df70c90055a3cd59d0149fd18a74eff5bcc9) ) ROM_LOAD16_WORD_SWAP( "gmd.12m", 0x400000, 0x400000, CRC(50bc7a31) SHA1(7283569fc646c39f4c693f14e0ce7ff2ee49111a) ) @@ -3366,7 +3366,7 @@ ROM_END ROM_START( dimahoou ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "gmdu.03", 0x000000, 0x80000, CRC(43bcb15f) SHA1(8cf758f9b3b416273e5b20e5d1c09c0a67029a01) ) ROM_LOAD16_WORD_SWAP( "gmd.04", 0x080000, 0x80000, CRC(37485567) SHA1(643c41fce6057bcaef0e0bedc62914c33d97eeaf) ) ROM_LOAD16_WORD_SWAP( "gmd.05", 0x100000, 0x80000, CRC(da269ffb) SHA1(e99b04192030b6006cf67b563f40cea29c1b2e78) ) @@ -3378,12 +3378,12 @@ ROM_LOAD64_WORD( "gmd.17m", 0x000004, 0x400000, CRC(16356520) SHA1(058713bef30c1b1d8b7dd0ceaaa57a3ab9751a70) ) ROM_LOAD64_WORD( "gmd.19m", 0x000006, 0x400000, CRC(dfc33031) SHA1(a1ceaeddc2a79d5b79f1b107cac2ef6a5e621e77) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "gmd.01", 0x00000, 0x08000, CRC(3f9bc985) SHA1(1616bbee82877b1052a07531066f5009a80706be) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "gmd.02", 0x28000, 0x20000, CRC(3fd39dde) SHA1(6a6e3ef9baa430ee83ab2312aa0221bae4d73dbd) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "gmd.11m", 0x000000, 0x400000, CRC(06a65542) SHA1(a1b3df70c90055a3cd59d0149fd18a74eff5bcc9) ) ROM_LOAD16_WORD_SWAP( "gmd.12m", 0x400000, 0x400000, CRC(50bc7a31) SHA1(7283569fc646c39f4c693f14e0ce7ff2ee49111a) ) @@ -3392,7 +3392,7 @@ ROM_END ROM_START( gmahou ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "gmdj.03", 0x000000, 0x80000, CRC(cd6979e3) SHA1(b033408f49299eac376fc798c3429e5db97dd4fe) ) ROM_LOAD16_WORD_SWAP( "gmd.04", 0x080000, 0x80000, CRC(37485567) SHA1(643c41fce6057bcaef0e0bedc62914c33d97eeaf) ) ROM_LOAD16_WORD_SWAP( "gmd.05", 0x100000, 0x80000, CRC(da269ffb) SHA1(e99b04192030b6006cf67b563f40cea29c1b2e78) ) @@ -3404,12 +3404,12 @@ ROM_LOAD64_WORD( "gmd.17m", 0x000004, 0x400000, CRC(16356520) SHA1(058713bef30c1b1d8b7dd0ceaaa57a3ab9751a70) ) ROM_LOAD64_WORD( "gmd.19m", 0x000006, 0x400000, CRC(dfc33031) SHA1(a1ceaeddc2a79d5b79f1b107cac2ef6a5e621e77) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "gmd.01", 0x00000, 0x08000, CRC(3f9bc985) SHA1(1616bbee82877b1052a07531066f5009a80706be) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "gmd.02", 0x28000, 0x20000, CRC(3fd39dde) SHA1(6a6e3ef9baa430ee83ab2312aa0221bae4d73dbd) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "gmd.11m", 0x000000, 0x400000, CRC(06a65542) SHA1(a1b3df70c90055a3cd59d0149fd18a74eff5bcc9) ) ROM_LOAD16_WORD_SWAP( "gmd.12m", 0x400000, 0x400000, CRC(50bc7a31) SHA1(7283569fc646c39f4c693f14e0ce7ff2ee49111a) ) @@ -3418,7 +3418,7 @@ ROM_END ROM_START( dstlk ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vame.03a", 0x000000, 0x80000, CRC(004c9cff) SHA1(9cab8ab734b29abf321b47e46271dab549bf46df) ) ROM_LOAD16_WORD_SWAP( "vame.04a", 0x080000, 0x80000, CRC(ae413ff2) SHA1(e9b85ac04d6d1a57368c70aa24e3ab8a8d67409f) ) ROM_LOAD16_WORD_SWAP( "vame.05a", 0x100000, 0x80000, CRC(60678756) SHA1(5d10829ad7522b5de3b318dd8cbf1b506ba4c2d4) ) @@ -3438,12 +3438,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3452,7 +3452,7 @@ ROM_END ROM_START( dstlku ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vamu.03b", 0x000000, 0x80000, CRC(68a6343f) SHA1(9e1b13e3419470b3c14065c85342b2dcf42eb4cd) ) ROM_LOAD16_WORD_SWAP( "vamu.04b", 0x080000, 0x80000, CRC(58161453) SHA1(7b5674b8bdb7e3165e090105f6716073696d4bd0) ) ROM_LOAD16_WORD_SWAP( "vamu.05b", 0x100000, 0x80000, CRC(dfc038b8) SHA1(1b8911033a458f2d20f740c1bd1b3a2157d24b8a) ) @@ -3472,12 +3472,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3486,7 +3486,7 @@ ROM_END ROM_START( dstlkur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vamu.03a", 0x000000, 0x80000, CRC(628899f9) SHA1(989414a62aed67504f15a542a148e32a4b349949) ) ROM_LOAD16_WORD_SWAP( "vamu.04a", 0x080000, 0x80000, CRC(696d9b25) SHA1(743c53ac7fc27960ecc80fed3f2a3c506ee655a1) ) ROM_LOAD16_WORD_SWAP( "vamu.05a", 0x100000, 0x80000, CRC(673ed50a) SHA1(7dff27dba1da55a18eb459e4a2d679cf699f2804) ) @@ -3506,12 +3506,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3520,7 +3520,7 @@ ROM_END ROM_START( vampj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vamj.03a", 0x000000, 0x80000, CRC(f55d3722) SHA1(e26bbcc47a2485914d567a6cf1cddd0f668689a1) ) /* Incomplete updated set? At least rom 03 */ ROM_LOAD16_WORD_SWAP( "vamj.04b", 0x080000, 0x80000, CRC(4d9c43c4) SHA1(2087090306646fed959d503ee75e24996ad95b88) ) /* should be "B" revision too. Both this */ ROM_LOAD16_WORD_SWAP( "vamj.05a", 0x100000, 0x80000, CRC(6c497e92) SHA1(7c1ccdfd77fb50afe024c8402376daaeab641a24) ) /* set & "vampja" below have the same date */ @@ -3540,12 +3540,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3554,7 +3554,7 @@ ROM_END ROM_START( vampja ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vamj.03a", 0x000000, 0x80000, CRC(f55d3722) SHA1(e26bbcc47a2485914d567a6cf1cddd0f668689a1) ) ROM_LOAD16_WORD_SWAP( "vamj.04a", 0x080000, 0x80000, CRC(fdcbdae3) SHA1(46a1251a2affbe13b200448cf77a455d840f3c9f) ) ROM_LOAD16_WORD_SWAP( "vamj.05a", 0x100000, 0x80000, CRC(6c497e92) SHA1(7c1ccdfd77fb50afe024c8402376daaeab641a24) ) @@ -3574,12 +3574,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3588,7 +3588,7 @@ ROM_END ROM_START( vampjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vamj.03", 0x000000, 0x80000, CRC(8895bf77) SHA1(7977dad8c4baf89f28668f54225233a8e759aa3e) ) ROM_LOAD16_WORD_SWAP( "vamj.04", 0x080000, 0x80000, CRC(5027db3d) SHA1(64bd09f2b5fd2435d8ec86f64543b640ab08f82f) ) ROM_LOAD16_WORD_SWAP( "vamj.05", 0x100000, 0x80000, CRC(97c66fdb) SHA1(fe5c099dd29797aef28a247913f8931aa8ce6160) ) @@ -3608,12 +3608,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3622,7 +3622,7 @@ ROM_END ROM_START( dstlka ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vama.03a", 0x000000, 0x80000, CRC(294e0bec) SHA1(e90844cd18ad431e999e606d076738384b346b9d) ) ROM_LOAD16_WORD_SWAP( "vama.04a", 0x080000, 0x80000, CRC(bc18e128) SHA1(53116cddb7123b573d76064640c3829fd978c67a) ) ROM_LOAD16_WORD_SWAP( "vama.05a", 0x100000, 0x80000, CRC(e709fa59) SHA1(824d2b22c5627b9dba046b76c1ff5a46f577eddd) ) @@ -3642,12 +3642,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3656,7 +3656,7 @@ ROM_END ROM_START( dstlkh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vamh.03c", 0x000000, 0x80000, CRC(4d7b9e8f) SHA1(08555da1b024e6ab4dfe802352065c132ddc2abb) ) ROM_LOAD16_WORD_SWAP( "vamh.04c", 0x080000, 0x80000, CRC(2217e9a0) SHA1(b86ee89457d8a0cf828f1bed247f3b2c0c91b170) ) ROM_LOAD16_WORD_SWAP( "vamh.05c", 0x100000, 0x80000, CRC(3a05b13c) SHA1(14b58954bdff8dd699f867037a86f0bae8095e9d) ) @@ -3676,12 +3676,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -3690,7 +3690,7 @@ ROM_END ROM_START( ecofghtr ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "uece.03", 0x000000, 0x80000, CRC(ec2c1137) SHA1(19c5b68cccd682d3996faf8c5f07a644b2384b1c) ) ROM_LOAD16_WORD_SWAP( "uece.04", 0x080000, 0x80000, CRC(b35f99db) SHA1(4dd5c4840406a9323431f5bda7224cadacf8b419) ) ROM_LOAD16_WORD_SWAP( "uece.05", 0x100000, 0x80000, CRC(d9d42d31) SHA1(58e7438fa212655ca56cbb477ea353e1083e0933) ) @@ -3706,11 +3706,11 @@ ROM_LOAD64_WORD( "uec.18m", 0x800004, 0x100000, CRC(b167ae12) SHA1(48c552d02caad27d680aa51170560794f2a51478) ) ROM_LOAD64_WORD( "uec.20m", 0x800006, 0x100000, CRC(1064bdc2) SHA1(c51f75ac8d3f02a771feda0a933314a928555c4e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "uec.01", 0x00000, 0x08000, CRC(c235bd15) SHA1(feb7cd7db9dc0b9887b33eed9796bb0205fb719d) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "uec.11m", 0x000000, 0x200000, CRC(81b25d39) SHA1(448adfcc7d98873a48c710d857225cdd1580e5c9) ) ROM_LOAD16_WORD_SWAP( "uec.12m", 0x200000, 0x200000, CRC(27729e52) SHA1(a55c8159adf766dda70cb047f5ac85ce6bc0a3f3) ) @@ -3719,7 +3719,7 @@ ROM_END ROM_START( ecofghtru ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "uecu.03a", 0x000000, 0x80000, CRC(22d88a4d) SHA1(0aa5a4b51ae98b8b3bfc65aef9449796ffad7f10) ) ROM_LOAD16_WORD_SWAP( "uecu.04a", 0x080000, 0x80000, CRC(6436cfcd) SHA1(adb4e1ab2a01a1ea1b08a76ecf58654450e13cf9) ) ROM_LOAD16_WORD_SWAP( "uecu.05a", 0x100000, 0x80000, CRC(336f121b) SHA1(93800c459b516382cc62cebeb456274f48322fab) ) @@ -3735,11 +3735,11 @@ ROM_LOAD64_WORD( "uec.18m", 0x800004, 0x100000, CRC(b167ae12) SHA1(48c552d02caad27d680aa51170560794f2a51478) ) ROM_LOAD64_WORD( "uec.20m", 0x800006, 0x100000, CRC(1064bdc2) SHA1(c51f75ac8d3f02a771feda0a933314a928555c4e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "uec.01", 0x00000, 0x08000, CRC(c235bd15) SHA1(feb7cd7db9dc0b9887b33eed9796bb0205fb719d) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "uec.11m", 0x000000, 0x200000, CRC(81b25d39) SHA1(448adfcc7d98873a48c710d857225cdd1580e5c9) ) ROM_LOAD16_WORD_SWAP( "uec.12m", 0x200000, 0x200000, CRC(27729e52) SHA1(a55c8159adf766dda70cb047f5ac85ce6bc0a3f3) ) @@ -3748,7 +3748,7 @@ ROM_END ROM_START( ecofghtru1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "uecu.03", 0x000000, 0x80000, CRC(6792480c) SHA1(89d7095a36a1094237f9e1d82a0dc482409999ca) ) ROM_LOAD16_WORD_SWAP( "uecu.04", 0x080000, 0x80000, CRC(95ce69d5) SHA1(d32c7e2a99ae29cbf9fee1e092a418f300a218ca) ) ROM_LOAD16_WORD_SWAP( "uecu.05", 0x100000, 0x80000, CRC(3a1e78ad) SHA1(133b65cd4bfd45a9d9d3feec9ccb1e6fc2891818) ) @@ -3764,11 +3764,11 @@ ROM_LOAD64_WORD( "uec.18m", 0x800004, 0x100000, CRC(b167ae12) SHA1(48c552d02caad27d680aa51170560794f2a51478) ) ROM_LOAD64_WORD( "uec.20m", 0x800006, 0x100000, CRC(1064bdc2) SHA1(c51f75ac8d3f02a771feda0a933314a928555c4e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "uec.01", 0x00000, 0x08000, CRC(c235bd15) SHA1(feb7cd7db9dc0b9887b33eed9796bb0205fb719d) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "uec.11m", 0x000000, 0x200000, CRC(81b25d39) SHA1(448adfcc7d98873a48c710d857225cdd1580e5c9) ) ROM_LOAD16_WORD_SWAP( "uec.12m", 0x200000, 0x200000, CRC(27729e52) SHA1(a55c8159adf766dda70cb047f5ac85ce6bc0a3f3) ) @@ -3777,7 +3777,7 @@ ROM_END ROM_START( uecology ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "uecj.03", 0x000000, 0x80000, CRC(94c40a4c) SHA1(6446b22a30a9a3c87b7a9fc2f15fbceccfbfb942) ) ROM_LOAD16_WORD_SWAP( "uecj.04", 0x080000, 0x80000, CRC(8d6e3a09) SHA1(80167275f288a4c4b2bb61bdde956015f4206b78) ) ROM_LOAD16_WORD_SWAP( "uecj.05", 0x100000, 0x80000, CRC(8604ecd7) SHA1(e1690565b40db84f4ce30e6eb2d7940b82989678) ) @@ -3793,11 +3793,11 @@ ROM_LOAD64_WORD( "uec.18m", 0x800004, 0x100000, CRC(b167ae12) SHA1(48c552d02caad27d680aa51170560794f2a51478) ) ROM_LOAD64_WORD( "uec.20m", 0x800006, 0x100000, CRC(1064bdc2) SHA1(c51f75ac8d3f02a771feda0a933314a928555c4e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "uec.01", 0x00000, 0x08000, CRC(c235bd15) SHA1(feb7cd7db9dc0b9887b33eed9796bb0205fb719d) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "uec.11m", 0x000000, 0x200000, CRC(81b25d39) SHA1(448adfcc7d98873a48c710d857225cdd1580e5c9) ) ROM_LOAD16_WORD_SWAP( "uec.12m", 0x200000, 0x200000, CRC(27729e52) SHA1(a55c8159adf766dda70cb047f5ac85ce6bc0a3f3) ) @@ -3806,7 +3806,7 @@ ROM_END ROM_START( ecofghtra ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ueca.03", 0x000000, 0x80000, CRC(bd4589b1) SHA1(8ec03a750de155c6ce0a2c3a6b57e6a6dcaf9ebc) ) ROM_LOAD16_WORD_SWAP( "ueca.04", 0x080000, 0x80000, CRC(1d134b7d) SHA1(c9dd725ff45f29a3fa68bfe6d5aea2e8c3c64bd8) ) ROM_LOAD16_WORD_SWAP( "ueca.05", 0x100000, 0x80000, CRC(9c581fc7) SHA1(300983148da59da7d2fcbc5bc45b068fdfbcb512) ) @@ -3822,11 +3822,11 @@ ROM_LOAD64_WORD( "uec.18m", 0x800004, 0x100000, CRC(b167ae12) SHA1(48c552d02caad27d680aa51170560794f2a51478) ) ROM_LOAD64_WORD( "uec.20m", 0x800006, 0x100000, CRC(1064bdc2) SHA1(c51f75ac8d3f02a771feda0a933314a928555c4e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "uec.01", 0x00000, 0x08000, CRC(c235bd15) SHA1(feb7cd7db9dc0b9887b33eed9796bb0205fb719d) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "uec.11m", 0x000000, 0x200000, CRC(81b25d39) SHA1(448adfcc7d98873a48c710d857225cdd1580e5c9) ) ROM_LOAD16_WORD_SWAP( "uec.12m", 0x200000, 0x200000, CRC(27729e52) SHA1(a55c8159adf766dda70cb047f5ac85ce6bc0a3f3) ) @@ -3835,7 +3835,7 @@ ROM_END ROM_START( ecofghtrh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "uech.03", 0x000000, 0x80000, CRC(14c9365e) SHA1(caba5e617a2c9516c6f24a327451edcff39b1bfd) ) ROM_LOAD16_WORD_SWAP( "uech.04", 0x080000, 0x80000, CRC(579495dc) SHA1(4b0f59da30c86d6c433429c46b4f24c7c55d6731) ) ROM_LOAD16_WORD_SWAP( "uech.05", 0x100000, 0x80000, CRC(96807a8e) SHA1(6f12d5fbff17797338f26e2b32e9f27d8288262e) ) @@ -3851,11 +3851,11 @@ ROM_LOAD64_WORD( "uec.18m", 0x800004, 0x100000, CRC(b167ae12) SHA1(48c552d02caad27d680aa51170560794f2a51478) ) ROM_LOAD64_WORD( "uec.20m", 0x800006, 0x100000, CRC(1064bdc2) SHA1(c51f75ac8d3f02a771feda0a933314a928555c4e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "uec.01", 0x00000, 0x08000, CRC(c235bd15) SHA1(feb7cd7db9dc0b9887b33eed9796bb0205fb719d) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "uec.11m", 0x000000, 0x200000, CRC(81b25d39) SHA1(448adfcc7d98873a48c710d857225cdd1580e5c9) ) ROM_LOAD16_WORD_SWAP( "uec.12m", 0x200000, 0x200000, CRC(27729e52) SHA1(a55c8159adf766dda70cb047f5ac85ce6bc0a3f3) ) @@ -3864,7 +3864,7 @@ ROM_END ROM_START( gigawing ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ggwu.03", 0x000000, 0x80000, CRC(ac725eb2) SHA1(a4be9fe537cdb47b37478c8397f6effe8a536233) ) ROM_LOAD16_WORD_SWAP( "ggwu.04", 0x080000, 0x80000, CRC(392f4118) SHA1(3bb0bd9503ef60892d5abd8640af524cf71da848) ) ROM_LOAD16_WORD_SWAP( "ggw.05", 0x100000, 0x80000, CRC(3239d642) SHA1(2fe3984c46a72aedb30a28e3db5af2612bdf0045) ) @@ -3875,11 +3875,11 @@ ROM_LOAD64_WORD( "ggw.17m", 0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) ) ROM_LOAD64_WORD( "ggw.19m", 0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ggw.01", 0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "ggw.11m", 0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) ) ROM_LOAD16_WORD_SWAP( "ggw.12m", 0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) ) @@ -3888,7 +3888,7 @@ ROM_END ROM_START( gigawingj ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ggwj.03a", 0x000000, 0x80000, CRC(fdd23b91) SHA1(c805473d3dc6bdb7ce232a9d7181d213544b2e7b) ) ROM_LOAD16_WORD_SWAP( "ggwj.04a", 0x080000, 0x80000, CRC(8c6e093c) SHA1(a4864b3b54cf648af81f74e2936d2bb8b99d68a9) ) ROM_LOAD16_WORD_SWAP( "ggwj.05a", 0x100000, 0x80000, CRC(43811454) SHA1(2a9563c840bd934c7e94f434a01686b7ff92e6d2) ) @@ -3899,11 +3899,11 @@ ROM_LOAD64_WORD( "ggw.17m", 0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) ) ROM_LOAD64_WORD( "ggw.19m", 0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ggw.01", 0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "ggw.11m", 0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) ) ROM_LOAD16_WORD_SWAP( "ggw.12m", 0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) ) @@ -3912,7 +3912,7 @@ ROM_END ROM_START( gigawinga ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ggwa.03a", 0x000000, 0x80000, CRC(116f8837) SHA1(9ade6c2fae319e0111e7afd3af10096d8d88f0c5) ) ROM_LOAD16_WORD_SWAP( "ggwa.04a", 0x080000, 0x80000, CRC(e6e3f0c4) SHA1(3c28cc050f36fb070a8abf057f0972dc16bc5629) ) ROM_LOAD16_WORD_SWAP( "ggwa.05a", 0x100000, 0x80000, CRC(465e8ac9) SHA1(da94fb64c7ea64ac9e4e847b69e2b870f716dd34) ) @@ -3923,11 +3923,11 @@ ROM_LOAD64_WORD( "ggw.17m", 0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) ) ROM_LOAD64_WORD( "ggw.19m", 0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ggw.01", 0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "ggw.11m", 0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) ) ROM_LOAD16_WORD_SWAP( "ggw.12m", 0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) ) @@ -3936,7 +3936,7 @@ ROM_END ROM_START( gigawingh ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ggwh.03a", 0x000000, 0x80000, CRC(b9ee36eb) SHA1(7b977dcd27c1ed8f9d2ebaccf2497abeafcc6081) ) ROM_LOAD16_WORD_SWAP( "ggwh.04a", 0x080000, 0x80000, CRC(72e548fe) SHA1(67d4870d6f7df4b947f1ac6f6605a2344bfc04c1) ) ROM_LOAD16_WORD_SWAP( "ggw.05", 0x100000, 0x80000, CRC(3239d642) SHA1(2fe3984c46a72aedb30a28e3db5af2612bdf0045) ) @@ -3947,11 +3947,11 @@ ROM_LOAD64_WORD( "ggw.17m", 0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) ) ROM_LOAD64_WORD( "ggw.19m", 0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ggw.01", 0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "ggw.11m", 0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) ) ROM_LOAD16_WORD_SWAP( "ggw.12m", 0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) ) @@ -3960,7 +3960,7 @@ ROM_END ROM_START( gigawingb ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ggwb.03", 0x000000, 0x80000, CRC(a1f8a448) SHA1(a88ed9fea9ec08fda59a1ca9622dfb9f8afdda78) ) ROM_LOAD16_WORD_SWAP( "ggwb.04", 0x080000, 0x80000, CRC(6a423e76) SHA1(f6ed20f09e852b4fad78ee32617122d5deb98789) ) ROM_LOAD16_WORD_SWAP( "ggw.05", 0x100000, 0x80000, CRC(3239d642) SHA1(2fe3984c46a72aedb30a28e3db5af2612bdf0045) ) @@ -3971,11 +3971,11 @@ ROM_LOAD64_WORD( "ggw.17m", 0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) ) ROM_LOAD64_WORD( "ggw.19m", 0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ggw.01", 0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "ggw.11m", 0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) ) ROM_LOAD16_WORD_SWAP( "ggw.12m", 0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) ) @@ -3984,7 +3984,7 @@ ROM_END ROM_START( hsf2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "hs2u.03", 0x000000, 0x80000, CRC(b308151e) SHA1(afdfd3b049c6435e2291bc35d8c26ff5bff223d8) ) ROM_LOAD16_WORD_SWAP( "hs2u.04", 0x080000, 0x80000, CRC(327aa49c) SHA1(6719cd6ecc2a4487fdbf5cbcd47e35fc43000607) ) ROM_LOAD16_WORD_SWAP( "hs2.05", 0x100000, 0x80000, CRC(dde34a35) SHA1(f5be2d2916db6e86e0886d61d55bddf138273ebc) ) @@ -4000,12 +4000,12 @@ ROM_LOAD64_WORD( "hs2.17m", 0x0000004, 0x800000, CRC(adfa7726) SHA1(8d36ec125a8c91abfe5213893d794f8bc11c8acd) ) ROM_LOAD64_WORD( "hs2.19m", 0x0000006, 0x800000, CRC(bb3ae322) SHA1(ecd289d7a0fe365fdd7c5527cb17796002beb553) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "hs2.01", 0x00000, 0x08000, CRC(c1a13786) SHA1(c7392c7efb15ea4042e75bd9007e974293d8935d) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "hs2.02", 0x28000, 0x20000, CRC(2d8794aa) SHA1(c634affdc2568020cce6af97b4fa79925d9943f3) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "hs2.11m", 0x000000, 0x800000, CRC(0e15c359) SHA1(176108b0d76d821a849324680aba0cd04b5016c1) ) ROM_REGION( 0x20, "key", 0 ) @@ -4013,7 +4013,7 @@ ROM_END ROM_START( hsf2a ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "hs2a.03", 0x000000, 0x80000, CRC(d50a17e0) SHA1(5d8d6d309260cc2d862aa080d44a72886ee08c77) ) ROM_LOAD16_WORD_SWAP( "hs2a.04", 0x080000, 0x80000, CRC(a27f42de) SHA1(7a355831b57a35e327b2618fd5dca11afed2a233) ) ROM_LOAD16_WORD_SWAP( "hs2.05", 0x100000, 0x80000, CRC(dde34a35) SHA1(f5be2d2916db6e86e0886d61d55bddf138273ebc) ) @@ -4029,12 +4029,12 @@ ROM_LOAD64_WORD( "hs2.17m", 0x0000004, 0x800000, CRC(adfa7726) SHA1(8d36ec125a8c91abfe5213893d794f8bc11c8acd) ) ROM_LOAD64_WORD( "hs2.19m", 0x0000006, 0x800000, CRC(bb3ae322) SHA1(ecd289d7a0fe365fdd7c5527cb17796002beb553) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "hs2.01", 0x00000, 0x08000, CRC(c1a13786) SHA1(c7392c7efb15ea4042e75bd9007e974293d8935d) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "hs2.02", 0x28000, 0x20000, CRC(2d8794aa) SHA1(c634affdc2568020cce6af97b4fa79925d9943f3) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "hs2.11m", 0x000000, 0x800000, CRC(0e15c359) SHA1(176108b0d76d821a849324680aba0cd04b5016c1) ) ROM_REGION( 0x20, "key", 0 ) @@ -4042,7 +4042,7 @@ ROM_END ROM_START( hsf2j ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "hs2j.03c", 0x000000, 0x80000, CRC(6efe661f) SHA1(5e8df6183cc04ae0f3002f85ffedaa09b4397cd9) ) ROM_LOAD16_WORD_SWAP( "hs2j.04b", 0x080000, 0x80000, CRC(93f2500a) SHA1(d340e8afd0a05066e19d795fdea31b4d1e00ad97) ) ROM_LOAD16_WORD_SWAP( "hs2j.05", 0x100000, 0x80000, CRC(dde34a35) SHA1(f5be2d2916db6e86e0886d61d55bddf138273ebc) ) @@ -4058,12 +4058,12 @@ ROM_LOAD64_WORD( "hs2.17m", 0x0000004, 0x800000, CRC(adfa7726) SHA1(8d36ec125a8c91abfe5213893d794f8bc11c8acd) ) ROM_LOAD64_WORD( "hs2.19m", 0x0000006, 0x800000, CRC(bb3ae322) SHA1(ecd289d7a0fe365fdd7c5527cb17796002beb553) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "hs2.01", 0x00000, 0x08000, CRC(c1a13786) SHA1(c7392c7efb15ea4042e75bd9007e974293d8935d) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "hs2.02", 0x28000, 0x20000, CRC(2d8794aa) SHA1(c634affdc2568020cce6af97b4fa79925d9943f3) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "hs2.11m", 0x000000, 0x800000, CRC(0e15c359) SHA1(176108b0d76d821a849324680aba0cd04b5016c1) ) ROM_REGION( 0x20, "key", 0 ) @@ -4071,7 +4071,7 @@ ROM_END ROM_START( hsf2j1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "hs2j.03", 0x000000, 0x80000, CRC(00738f73) SHA1(99947a621f21a88dc4c425d9bfbc30b3c5f76ecd) ) ROM_LOAD16_WORD_SWAP( "hs2j.04", 0x080000, 0x80000, CRC(40072c4a) SHA1(85b95bd3c907b4276a31777e092b8c40d3763257) ) ROM_LOAD16_WORD_SWAP( "hs2.05", 0x100000, 0x80000, CRC(dde34a35) SHA1(f5be2d2916db6e86e0886d61d55bddf138273ebc) ) @@ -4087,12 +4087,12 @@ ROM_LOAD64_WORD( "hs2.17m", 0x0000004, 0x800000, CRC(adfa7726) SHA1(8d36ec125a8c91abfe5213893d794f8bc11c8acd) ) ROM_LOAD64_WORD( "hs2.19m", 0x0000006, 0x800000, CRC(bb3ae322) SHA1(ecd289d7a0fe365fdd7c5527cb17796002beb553) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "hs2.01", 0x00000, 0x08000, CRC(c1a13786) SHA1(c7392c7efb15ea4042e75bd9007e974293d8935d) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "hs2.02", 0x28000, 0x20000, CRC(2d8794aa) SHA1(c634affdc2568020cce6af97b4fa79925d9943f3) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "hs2.11m", 0x000000, 0x800000, CRC(0e15c359) SHA1(176108b0d76d821a849324680aba0cd04b5016c1) ) ROM_REGION( 0x20, "key", 0 ) @@ -4100,33 +4100,33 @@ ROM_END ROM_START( jyangoku ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "majj.03", 0x000000, 0x80000, CRC(4614a3b2) SHA1(f7226006feafaf561046ae7fce18bf62289d41df) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "maj1_d.simm1", 0x0000000, 0x200000, CRC(ba0fe27b) SHA1(60a4fdee8da663777af1e126a1aa6308c9d9a5a9) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "maj1_c.simm1", 0x0000001, 0x200000, CRC(2cd141bf) SHA1(57ec73ea24d594fc1e4d2d194a3c548a7043666e) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "maj1_b.simm1", 0x0000002, 0x200000, CRC(e29e4c26) SHA1(51e99536f40481c4c208695354e90fb3fe9416d5) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "maj1_a.simm1", 0x0000003, 0x200000, CRC(7f68b88a) SHA1(944bf34dc998dffe39b25c3e9fcec17ad421ce81) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "maj3_d.simm3", 0x0000004, 0x200000, CRC(3aaeb90b) SHA1(d426d5c7ae5ca99321ec1280abdd1fdfe4882829) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "maj3_c.simm3", 0x0000005, 0x200000, CRC(97894cea) SHA1(a501cd80e6da75409e3381d66bd0a13e021e89f3) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "maj3_b.simm3", 0x0000006, 0x200000, CRC(ec737d9d) SHA1(cfff42cc24ac011fab2670dec42cab16f4e0d84d) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "maj3_a.simm3", 0x0000007, 0x200000, CRC(c23b6f22) SHA1(fb3120ea28c67ecb7c4a2b61a64feb62c033ef68) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "maj1_d.simm1", 0x0000000, 0x200000, CRC(ba0fe27b) SHA1(60a4fdee8da663777af1e126a1aa6308c9d9a5a9) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "maj1_c.simm1", 0x0000001, 0x200000, CRC(2cd141bf) SHA1(57ec73ea24d594fc1e4d2d194a3c548a7043666e) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "maj1_b.simm1", 0x0000002, 0x200000, CRC(e29e4c26) SHA1(51e99536f40481c4c208695354e90fb3fe9416d5) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "maj1_a.simm1", 0x0000003, 0x200000, CRC(7f68b88a) SHA1(944bf34dc998dffe39b25c3e9fcec17ad421ce81) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "maj3_d.simm3", 0x0000004, 0x200000, CRC(3aaeb90b) SHA1(d426d5c7ae5ca99321ec1280abdd1fdfe4882829) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "maj3_c.simm3", 0x0000005, 0x200000, CRC(97894cea) SHA1(a501cd80e6da75409e3381d66bd0a13e021e89f3) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "maj3_b.simm3", 0x0000006, 0x200000, CRC(ec737d9d) SHA1(cfff42cc24ac011fab2670dec42cab16f4e0d84d) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "maj3_a.simm3", 0x0000007, 0x200000, CRC(c23b6f22) SHA1(fb3120ea28c67ecb7c4a2b61a64feb62c033ef68) ) // ROM on a SIMM - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "maj.01", 0x00000, 0x08000, CRC(1fe8c213) SHA1(e0045566337851d8261ed65d5bea483f09ae96b4) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_BYTE( "maj5_a.simm5", 0x000000, 0x200000, CRC(5ad9ee53) SHA1(acfb7ec137209409c1a439ebc62d8fa3f87e7012) ) // ROM on a simm - ROM_LOAD16_BYTE( "maj5_b.simm5", 0x000001, 0x200000, CRC(efb3dbfb) SHA1(3b32b9890f79805b6a2e1ec63f2cadaca14cf11a) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_BYTE( "maj5_a.simm5", 0x000000, 0x200000, CRC(5ad9ee53) SHA1(acfb7ec137209409c1a439ebc62d8fa3f87e7012) ) // ROM on a SIMM + ROM_LOAD16_BYTE( "maj5_b.simm5", 0x000001, 0x200000, CRC(efb3dbfb) SHA1(3b32b9890f79805b6a2e1ec63f2cadaca14cf11a) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "jyangoku.key", 0x000000, 0x000014, CRC(95b0a560) SHA1(6c0684ab321bd555ec9f8f16e63f6c358318ad7e) ) ROM_END ROM_START( megaman2 ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rm2u.03", 0x000000, 0x80000, CRC(8ffc2cd1) SHA1(919ef08311008288b31ed42fb13172580d50433a) ) ROM_LOAD16_WORD_SWAP( "rm2u.04", 0x080000, 0x80000, CRC(bb30083a) SHA1(466b818a01ad367a8df6df8661f616f5a0236714) ) ROM_LOAD16_WORD_SWAP( "rm2.05", 0x100000, 0x80000, CRC(02ee9efc) SHA1(1b80c40389b51a03b930051f232630616c12e6c5) ) @@ -4138,12 +4138,12 @@ ROM_LOAD64_WORD( "rm2.18m", 0x800004, 0x200000, CRC(12257251) SHA1(20cb58afda0e6200991277817485340a6a41ae2b) ) ROM_LOAD64_WORD( "rm2.20m", 0x800006, 0x200000, CRC(f9b6e786) SHA1(aeb4acff7208e66a35198143fd2478039fdaa3a6) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rm2.01a", 0x00000, 0x08000, CRC(d18e7859) SHA1(0939fac70042d0b4db5c2fdcef1f79b95febd45e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "rm2.02", 0x28000, 0x20000, CRC(c463ece0) SHA1(5c3e41eb61610b3f8c431206f6672907e3a0bdb0) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rm2.11m", 0x000000, 0x200000, CRC(2106174d) SHA1(0a35d9ca8ebcad74904b20648d5320f839d6377e) ) ROM_LOAD16_WORD_SWAP( "rm2.12m", 0x200000, 0x200000, CRC(546c1636) SHA1(f96b172ab899f2c6ee17a5dd1fb61af9432e3cd2) ) @@ -4152,7 +4152,7 @@ ROM_END ROM_START( megaman2a ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rm2a.03", 0x000000, 0x80000, CRC(2b330ca7) SHA1(afa86ef73f5660600d18ff221ed135c026042e05) ) ROM_LOAD16_WORD_SWAP( "rm2a.04", 0x080000, 0x80000, CRC(8b47942b) SHA1(160574a38e89d31b975c56264f3f5a7a68ce760c) ) ROM_LOAD16_WORD_SWAP( "rm2.05", 0x100000, 0x80000, CRC(02ee9efc) SHA1(1b80c40389b51a03b930051f232630616c12e6c5) ) @@ -4164,12 +4164,12 @@ ROM_LOAD64_WORD( "rm2.18m", 0x800004, 0x200000, CRC(12257251) SHA1(20cb58afda0e6200991277817485340a6a41ae2b) ) ROM_LOAD64_WORD( "rm2.20m", 0x800006, 0x200000, CRC(f9b6e786) SHA1(aeb4acff7208e66a35198143fd2478039fdaa3a6) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rm2.01a", 0x00000, 0x08000, CRC(d18e7859) SHA1(0939fac70042d0b4db5c2fdcef1f79b95febd45e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "rm2.02", 0x28000, 0x20000, CRC(c463ece0) SHA1(5c3e41eb61610b3f8c431206f6672907e3a0bdb0) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rm2.11m", 0x000000, 0x200000, CRC(2106174d) SHA1(0a35d9ca8ebcad74904b20648d5320f839d6377e) ) ROM_LOAD16_WORD_SWAP( "rm2.12m", 0x200000, 0x200000, CRC(546c1636) SHA1(f96b172ab899f2c6ee17a5dd1fb61af9432e3cd2) ) @@ -4178,7 +4178,7 @@ ROM_END ROM_START( rockman2j ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rm2j.03", 0x000000, 0x80000, CRC(dbaa1437) SHA1(849572090bdbde7d9f191959f4b6ad26f46811f4) ) ROM_LOAD16_WORD_SWAP( "rm2j.04", 0x080000, 0x80000, CRC(cf5ba612) SHA1(f0b56db8df7ad676e00325c97cf16791f409e35a) ) ROM_LOAD16_WORD_SWAP( "rm2.05", 0x100000, 0x80000, CRC(02ee9efc) SHA1(1b80c40389b51a03b930051f232630616c12e6c5) ) @@ -4190,12 +4190,12 @@ ROM_LOAD64_WORD( "rm2.18m", 0x800004, 0x200000, CRC(12257251) SHA1(20cb58afda0e6200991277817485340a6a41ae2b) ) ROM_LOAD64_WORD( "rm2.20m", 0x800006, 0x200000, CRC(f9b6e786) SHA1(aeb4acff7208e66a35198143fd2478039fdaa3a6) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rm2.01a", 0x00000, 0x08000, CRC(d18e7859) SHA1(0939fac70042d0b4db5c2fdcef1f79b95febd45e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "rm2.02", 0x28000, 0x20000, CRC(c463ece0) SHA1(5c3e41eb61610b3f8c431206f6672907e3a0bdb0) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rm2.11m", 0x000000, 0x200000, CRC(2106174d) SHA1(0a35d9ca8ebcad74904b20648d5320f839d6377e) ) ROM_LOAD16_WORD_SWAP( "rm2.12m", 0x200000, 0x200000, CRC(546c1636) SHA1(f96b172ab899f2c6ee17a5dd1fb61af9432e3cd2) ) @@ -4204,7 +4204,7 @@ ROM_END ROM_START( megaman2h ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rm2h.03", 0x000000, 0x80000, CRC(bb180378) SHA1(ecf5e9907500139073e3b1b4e384039957dca354) ) ROM_LOAD16_WORD_SWAP( "rm2h.04", 0x080000, 0x80000, CRC(205ffcd6) SHA1(d1e3a164f4fd4f372ad2f3b4e2026d6487395503) ) ROM_LOAD16_WORD_SWAP( "rm2.05", 0x100000, 0x80000, CRC(02ee9efc) SHA1(1b80c40389b51a03b930051f232630616c12e6c5) ) @@ -4216,12 +4216,12 @@ ROM_LOAD64_WORD( "rm2.18m", 0x800004, 0x200000, CRC(12257251) SHA1(20cb58afda0e6200991277817485340a6a41ae2b) ) ROM_LOAD64_WORD( "rm2.20m", 0x800006, 0x200000, CRC(f9b6e786) SHA1(aeb4acff7208e66a35198143fd2478039fdaa3a6) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rm2.01a", 0x00000, 0x08000, CRC(d18e7859) SHA1(0939fac70042d0b4db5c2fdcef1f79b95febd45e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "rm2.02", 0x28000, 0x20000, CRC(c463ece0) SHA1(5c3e41eb61610b3f8c431206f6672907e3a0bdb0) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rm2.11m", 0x000000, 0x200000, CRC(2106174d) SHA1(0a35d9ca8ebcad74904b20648d5320f839d6377e) ) ROM_LOAD16_WORD_SWAP( "rm2.12m", 0x200000, 0x200000, CRC(546c1636) SHA1(f96b172ab899f2c6ee17a5dd1fb61af9432e3cd2) ) @@ -4245,7 +4245,7 @@ */ ROM_START( gigaman2 ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sys_rom1.bin", 0x000000, 0x400000, CRC(2eaa5e10) SHA1(79f9a137bf5b3317579c548f346c1dc1cccdb771) ) ROM_REGION(0x10000, "mcu", 0 ) /* sound MCU code */ @@ -4257,13 +4257,13 @@ ROM_LOAD( "cg_rom2.bin", 0x0400000, 0x400000, CRC(63918c05) SHA1(3a7fdf88e87bdbc622504276287740c08df38f6f) ) ROM_IGNORE( 0x400000 ) - ROM_REGION( 0x800000, "oki", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "oki", 0 ) // QSound samples /* No Qsound, OKI instead.. */ ROM_LOAD( "pcm_rom1.bin", 0x000000, 0x800000, CRC(41a854ab) SHA1(206448c3e27d260d0650c28a9cd524854ce0b64d) ) ROM_END ROM_START( mmatrix ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mmxu.03", 0x000000, 0x80000, CRC(ab65b599) SHA1(d4c35f5a6cf0b37a35c466f0e347a660b2e0b21b) ) ROM_LOAD16_WORD_SWAP( "mmxu.04", 0x080000, 0x80000, CRC(0135fc6c) SHA1(e40c8fa51dcb300b3ee72dc7de137e0b39dea490) ) ROM_LOAD16_WORD_SWAP( "mmxu.05", 0x100000, 0x80000, CRC(f1fd2b84) SHA1(d34816eff4af98009f94f5dd14097b39426e0468) ) @@ -4278,11 +4278,11 @@ ROM_LOAD64_WORD( "mmx.18m", 0x1000004, 0x400000, CRC(2562c9d5) SHA1(e7defc3d33db632c4035ae069f2f2332c58afaf5) ) ROM_LOAD64_WORD( "mmx.20m", 0x1000006, 0x400000, CRC(583a9687) SHA1(1d0b08b1e88509245db3c2090f0201938fd750b4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mmx.01", 0x00000, 0x08000, CRC(c57e8171) SHA1(dedb92af1910d38727f816e6f507d25148f31b74) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mmx.11m", 0x000000, 0x400000, CRC(4180b39f) SHA1(cabb1c358eae1bb6cfed07f5b92e4acd38650667) ) ROM_LOAD16_WORD_SWAP( "mmx.12m", 0x400000, 0x400000, CRC(95e22a59) SHA1(b3431d170c0a1a0d826ad0af21300b9180e3f114) ) @@ -4291,7 +4291,7 @@ ROM_END ROM_START( mmatrixj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mmxj.03", 0x000000, 0x80000, CRC(1d5de213) SHA1(2d7ad9cb50540a14aa0ac564d4ab84a3779d595c) ) ROM_LOAD16_WORD_SWAP( "mmxj.04", 0x080000, 0x80000, CRC(d943a339) SHA1(ae3d217b35f92fc727bda3b14f13f3658dab3dd8) ) ROM_LOAD16_WORD_SWAP( "mmxj.05", 0x100000, 0x80000, CRC(0c8b4abb) SHA1(c136186b9f57d68c0b36f5a4273347f696a227c0) ) @@ -4306,11 +4306,11 @@ ROM_LOAD64_WORD( "mmx.18m", 0x1000004, 0x400000, CRC(2562c9d5) SHA1(e7defc3d33db632c4035ae069f2f2332c58afaf5) ) ROM_LOAD64_WORD( "mmx.20m", 0x1000006, 0x400000, CRC(583a9687) SHA1(1d0b08b1e88509245db3c2090f0201938fd750b4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mmx.01", 0x00000, 0x08000, CRC(c57e8171) SHA1(dedb92af1910d38727f816e6f507d25148f31b74) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mmx.11m", 0x000000, 0x400000, CRC(4180b39f) SHA1(cabb1c358eae1bb6cfed07f5b92e4acd38650667) ) ROM_LOAD16_WORD_SWAP( "mmx.12m", 0x400000, 0x400000, CRC(95e22a59) SHA1(b3431d170c0a1a0d826ad0af21300b9180e3f114) ) @@ -4319,7 +4319,7 @@ ROM_END ROM_START( msh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshe.03e", 0x000000, 0x80000, CRC(bd951414) SHA1(5585bdd1484dc18c7630d689f60d91c068aafc97) ) ROM_LOAD16_WORD_SWAP( "mshe.04e", 0x080000, 0x80000, CRC(19dd42f2) SHA1(48bd3e4d2d7e9e07275bd9c00530719deb100090) ) ROM_LOAD16_WORD_SWAP( "msh.05", 0x100000, 0x80000, CRC(6a091b9e) SHA1(7fa54e69e1a1ca348cb08d892d55023e9a3ff4cb) ) @@ -4339,12 +4339,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4353,7 +4353,7 @@ ROM_END ROM_START( mshu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshu.03", 0x000000, 0x80000, CRC(d2805bdd) SHA1(a6f78c31a82168bb5f7d614dcebbeab8231e2d75) ) ROM_LOAD16_WORD_SWAP( "mshu.04", 0x080000, 0x80000, CRC(743f96ff) SHA1(abb82359bb68966028ea33e94996803599f3e273) ) ROM_LOAD16_WORD_SWAP( "msh.05", 0x100000, 0x80000, CRC(6a091b9e) SHA1(7fa54e69e1a1ca348cb08d892d55023e9a3ff4cb) ) @@ -4373,12 +4373,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4387,7 +4387,7 @@ ROM_END ROM_START( mshj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshj.03g", 0x000000, 0x80000, CRC(261f4091) SHA1(f4509780768e3601720d0d78c8a9824d410d59da) ) ROM_LOAD16_WORD_SWAP( "mshj.04g", 0x080000, 0x80000, CRC(61d791c6) SHA1(9f883bcc48058a99c4ba653d0855c58c5d081243) ) ROM_LOAD16_WORD_SWAP( "msh.05a", 0x100000, 0x80000, CRC(f37539e6) SHA1(770febc25ca5615b6c2023727edab3c68b15b2c4) ) @@ -4407,12 +4407,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4421,7 +4421,7 @@ ROM_END ROM_START( mshjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshj.03f", 0x000000, 0x80000, CRC(ff172fd2) SHA1(2dd507e3fcf1a30fde1e6ce63d4233a67e7bfc9e) ) ROM_LOAD16_WORD_SWAP( "mshj.04f", 0x080000, 0x80000, CRC(ebbb205a) SHA1(0b110ea4c71bdab819b72e6f9736368575e4cccf) ) ROM_LOAD16_WORD_SWAP( "msh.05", 0x100000, 0x80000, CRC(6a091b9e) SHA1(7fa54e69e1a1ca348cb08d892d55023e9a3ff4cb) ) @@ -4441,12 +4441,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4455,7 +4455,7 @@ ROM_END ROM_START( msha ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "msha.03e", 0x000000, 0x80000, CRC(ec84ec44) SHA1(4d434df6cf5c961f0dbba352d1353db0a8f353dc) ) ROM_LOAD16_WORD_SWAP( "msha.04e", 0x080000, 0x80000, CRC(098b8503) SHA1(4cc74754796d5e41f13bf5cd4e8868b0d0c7852c) ) ROM_LOAD16_WORD_SWAP( "msh.05", 0x100000, 0x80000, CRC(6a091b9e) SHA1(7fa54e69e1a1ca348cb08d892d55023e9a3ff4cb) ) @@ -4475,12 +4475,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4489,7 +4489,7 @@ ROM_END ROM_START( mshh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshh.03c", 0x000000, 0x80000, CRC(8d84b0fa) SHA1(e1fd2869abbe4f8736e496f194e23a1ab0526811) ) ROM_LOAD16_WORD_SWAP( "mshh.04c", 0x080000, 0x80000, CRC(d638f601) SHA1(cbdd9776f71c6ef8d80be23a57cba3529d53a070) ) ROM_LOAD16_WORD_SWAP( "msh.05a", 0x100000, 0x80000, CRC(f37539e6) SHA1(770febc25ca5615b6c2023727edab3c68b15b2c4) ) @@ -4509,12 +4509,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4523,7 +4523,7 @@ ROM_END ROM_START( mshb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshb.03c", 0x000000, 0x80000, CRC(19697f74) SHA1(c3809ecbdb242bdbb57f8d9b029264e9c0ed8a13) ) ROM_LOAD16_WORD_SWAP( "mshb.04c", 0x080000, 0x80000, CRC(95317a6f) SHA1(143a26e349f21d3a720320bb7010a26f767e5e73) ) ROM_LOAD16_WORD_SWAP( "msh.05a", 0x100000, 0x80000, CRC(f37539e6) SHA1(770febc25ca5615b6c2023727edab3c68b15b2c4) ) @@ -4543,12 +4543,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4557,7 +4557,7 @@ ROM_END ROM_START( mshbr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshb.03b", 0x000000, 0x80000, CRC(eb16165b) SHA1(37ca9d7f2ee5320aff1d9de56f766e2dcad5935c) ) ROM_LOAD16_WORD_SWAP( "mshb.04b", 0x080000, 0x80000, CRC(94fb3c97) SHA1(fd5fe7ed39bb1bae436ccd510f88979a16c1e4ab) ) ROM_LOAD16_WORD_SWAP( "msh.05", 0x100000, 0x80000, CRC(6a091b9e) SHA1(7fa54e69e1a1ca348cb08d892d55023e9a3ff4cb) ) @@ -4577,12 +4577,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -4591,7 +4591,7 @@ ROM_END ROM_START( mshvsf ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvse.03f", 0x000000, 0x80000, CRC(b72dc199) SHA1(61bd581ea4b969298f8a39fe03023b5456cac750) ) ROM_LOAD16_WORD_SWAP( "mvse.04f", 0x080000, 0x80000, CRC(6ef799f9) SHA1(2d45dbf7bc277b84c6bcd9615ab3b80c42af7781) ) ROM_LOAD16_WORD_SWAP( "mvs.05a", 0x100000, 0x80000, CRC(1a5de0cb) SHA1(738a27f83704c208d36d73bf766d861ef2d51a89) ) @@ -4611,12 +4611,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4625,7 +4625,7 @@ ROM_END ROM_START( mshvsfu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsu.03g", 0x000000, 0x80000, CRC(0664ab15) SHA1(939fb1e3c06c33fc212b26ecfceac3180e108e9d) ) ROM_LOAD16_WORD_SWAP( "mvsu.04g", 0x080000, 0x80000, CRC(97e060ee) SHA1(787924e04508c83ecd4c3a872882d2be9e57eb50) ) ROM_LOAD16_WORD_SWAP( "mvs.05d", 0x100000, 0x80000, CRC(921fc542) SHA1(b813082a480d42d663c713062892245faabe9101) ) @@ -4645,12 +4645,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4659,7 +4659,7 @@ ROM_END ROM_START( mshvsfu1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsu.03d", 0x000000, 0x80000, CRC(ae60a66a) SHA1(1fa7e6534d02ec8059153705b1161a55b9cfe803) ) ROM_LOAD16_WORD_SWAP( "mvsu.04d", 0x080000, 0x80000, CRC(91f67d8a) SHA1(e95f7a3fb281e1bafdbe7a1b22532c4fab5ec89d) ) ROM_LOAD16_WORD_SWAP( "mvs.05a", 0x100000, 0x80000, CRC(1a5de0cb) SHA1(738a27f83704c208d36d73bf766d861ef2d51a89) ) @@ -4679,12 +4679,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4693,7 +4693,7 @@ ROM_END ROM_START( mshvsfj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsj.03i", 0x000000, 0x80000, CRC(d8cbb691) SHA1(16820cf3bc7285477e61bd598a3ed4ea5e0e770d) ) ROM_LOAD16_WORD_SWAP( "mvsj.04i", 0x080000, 0x80000, CRC(32741ace) SHA1(36db3a3aeaf29369977593c051bf5665cffefb2d) ) ROM_LOAD16_WORD_SWAP( "mvs.05h", 0x100000, 0x80000, CRC(77870dc3) SHA1(924a7c82456bb44d7b0be65af11dbe1a2420a3f0) ) @@ -4713,12 +4713,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4727,7 +4727,7 @@ ROM_END ROM_START( mshvsfj1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsj.03h", 0x000000, 0x80000, CRC(fbe2115f) SHA1(b2d8a62e394c2eb4070cac742b0f403252e46a25) ) ROM_LOAD16_WORD_SWAP( "mvsj.04h", 0x080000, 0x80000, CRC(b528a367) SHA1(ecac71b032b431c63a4cf73a1d1d1be1faebc12b) ) ROM_LOAD16_WORD_SWAP( "mvs.05g", 0x100000, 0x80000, CRC(9515a245) SHA1(eafa877fd4a4e58e7c98336658e986a4a27d6b91) ) @@ -4747,12 +4747,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4761,7 +4761,7 @@ ROM_END ROM_START( mshvsfj2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsj.03g", 0x000000, 0x80000, CRC(fdfa7e26) SHA1(e9fb93249e48e1bb7c769c3ce674dd4be404574f) ) ROM_LOAD16_WORD_SWAP( "mvsj.04g", 0x080000, 0x80000, CRC(c921825f) SHA1(471e44268cebba631b81f131bf31e27b8a28c548) ) ROM_LOAD16_WORD_SWAP( "mvs.05a", 0x100000, 0x80000, CRC(1a5de0cb) SHA1(738a27f83704c208d36d73bf766d861ef2d51a89) ) @@ -4781,12 +4781,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4795,7 +4795,7 @@ ROM_END ROM_START( mshvsfh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsh.03f", 0x000000, 0x80000, CRC(4f60f41e) SHA1(dd926a9cac4bff05845615d0b61948e2dc4b1ed8) ) ROM_LOAD16_WORD_SWAP( "mvsh.04f", 0x080000, 0x80000, CRC(dc08ec12) SHA1(594e4383eb776c09075577cd1f4e42ef11748f0f) ) ROM_LOAD16_WORD_SWAP( "mvs.05a", 0x100000, 0x80000, CRC(1a5de0cb) SHA1(738a27f83704c208d36d73bf766d861ef2d51a89) ) @@ -4815,12 +4815,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4829,7 +4829,7 @@ ROM_END ROM_START( mshvsfa ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsa.03f", 0x000000, 0x80000, CRC(5b863716) SHA1(6a129274711765bbf5acbb225e3fce6d93d7f421) ) ROM_LOAD16_WORD_SWAP( "mvsa.04f", 0x080000, 0x80000, CRC(4886e65f) SHA1(758fc9c453a864e32588c7fb33166c93e798a39c) ) ROM_LOAD16_WORD_SWAP( "mvs.05a", 0x100000, 0x80000, CRC(1a5de0cb) SHA1(738a27f83704c208d36d73bf766d861ef2d51a89) ) @@ -4849,12 +4849,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4863,7 +4863,7 @@ ROM_END ROM_START( mshvsfa1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsa.03", 0x000000, 0x80000, CRC(92ef1933) SHA1(34e6a074734032af74afa52bfebbc213a9c886d7) ) ROM_LOAD16_WORD_SWAP( "mvsa.04", 0x080000, 0x80000, CRC(4b24373c) SHA1(f340dda7d5339645fd1ea523e72783fb7bb7aba1) ) ROM_LOAD16_WORD_SWAP( "mvs.05", 0x100000, 0x80000, CRC(ac180c1c) SHA1(1b368ebe7680796dc068b511b72359eec546cd9f) ) @@ -4883,12 +4883,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4897,7 +4897,7 @@ ROM_END ROM_START( mshvsfb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsb.03g", 0x000000, 0x80000, CRC(143895ef) SHA1(0664fad64996118df86e9887bd6e301d04d84978) ) ROM_LOAD16_WORD_SWAP( "mvsb.04g", 0x080000, 0x80000, CRC(dd8a886c) SHA1(a16f262fd14e726c7837980d0556a9c3bdc7fb11) ) ROM_LOAD16_WORD_SWAP( "mvs.05d", 0x100000, 0x80000, CRC(921fc542) SHA1(b813082a480d42d663c713062892245faabe9101) ) @@ -4917,12 +4917,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4931,7 +4931,7 @@ ROM_END ROM_START( mshvsfb1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsb.03f", 0x000000, 0x80000, CRC(9c4bb950) SHA1(85d0026a691682c195d6e617bf28def50029cb03) ) ROM_LOAD16_WORD_SWAP( "mvsb.04f", 0x080000, 0x80000, CRC(d3320d13) SHA1(c6fa2b8b727a1192fd21131496067447053b5547) ) ROM_LOAD16_WORD_SWAP( "mvs.05a", 0x100000, 0x80000, CRC(1a5de0cb) SHA1(738a27f83704c208d36d73bf766d861ef2d51a89) ) @@ -4951,12 +4951,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -4975,7 +4975,7 @@ */ ROM_START( mvsc ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvce.03a", 0x000000, 0x80000, CRC(824e4a90) SHA1(5c79c166d988d8a75d9941f4ee6fa4d6476e55e1) ) // ROM_LOAD16_WORD_SWAP( "mvce.04a", 0x080000, 0x80000, BAD_DUMP CRC(cac02153) SHA1(ee9f9da6fda53f21ba7b74367612c90281269690) ) ROM_LOAD16_WORD_SWAP( "mvce.04a", 0x080000, 0x80000, CRC(436c5a4e) SHA1(82f4586e888f2550c53bfdc93a53791a595e05bd) ) @@ -4996,12 +4996,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5010,7 +5010,7 @@ ROM_END ROM_START( mvscr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvce.03", 0x000000, 0x80000, CRC(e0633fc0) SHA1(d2feffb5505a2f8940192ae267f49561fc580b87) ) ROM_LOAD16_WORD_SWAP( "mvce.04", 0x080000, 0x80000, CRC(a450a251) SHA1(1e34fa55bb93c7573ab0205f8c5620a51765d3eb) ) ROM_LOAD16_WORD_SWAP( "mvc.05", 0x100000, 0x80000, CRC(7db71ce9) SHA1(a0097109e9f4aba40791932269d600c0ffa099a7) ) @@ -5030,12 +5030,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5044,7 +5044,7 @@ ROM_END ROM_START( mvscu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvcu.03d", 0x000000, 0x80000, CRC(c6007557) SHA1(c027c1a204345ce611cb042d60939e4de156763f) ) ROM_LOAD16_WORD_SWAP( "mvcu.04d", 0x080000, 0x80000, CRC(724b2b20) SHA1(872bbcf5d344d634f3523318fa4763e6d6302bb5) ) ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) ) @@ -5064,12 +5064,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5078,7 +5078,7 @@ ROM_END ROM_START( mvscur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvcu.03", 0x000000, 0x80000, CRC(13f2be57) SHA1(229520c5f4171abae1acdfb9544b356b568b5f2d) ) ROM_LOAD16_WORD_SWAP( "mvcu.04", 0x080000, 0x80000, CRC(5e9b380d) SHA1(8989192b575fb717c13bfb8175e83d7f1a285310) ) ROM_LOAD16_WORD_SWAP( "mvcu.05", 0x100000, 0x80000, CRC(12f321be) SHA1(32942c4690253c1545ce05dc084de227e46d942a) ) @@ -5098,12 +5098,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5112,7 +5112,7 @@ ROM_END ROM_START( mvscj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvcj.03a", 0x000000, 0x80000, CRC(3df18879) SHA1(2b91da6e5dd792967337e873ebb08ecf5194a97b) ) ROM_LOAD16_WORD_SWAP( "mvcj.04a", 0x080000, 0x80000, CRC(07d212e8) SHA1(c5420e9bd580910c1f1d0264240aeef20aac30a7) ) ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) ) @@ -5132,12 +5132,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5146,7 +5146,7 @@ ROM_END ROM_START( mvscjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvcj.03", 0x000000, 0x80000, CRC(2164213f) SHA1(00e3500ed334bb80d4d159eacf439860a2bfc3b7) ) ROM_LOAD16_WORD_SWAP( "mvcj.04", 0x080000, 0x80000, CRC(c905c86f) SHA1(965fa3bdc29bd901e9efcc53b195c6be3a74c9f9) ) ROM_LOAD16_WORD_SWAP( "mvc.05", 0x100000, 0x80000, CRC(7db71ce9) SHA1(a0097109e9f4aba40791932269d600c0ffa099a7) ) @@ -5166,12 +5166,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5206,7 +5206,7 @@ */ ROM_START( mvscjsing ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "mvc_ja.simm1", 0x000000, 0x200000, CRC(6a2ef7c2) SHA1(625530b92217375014db4694196e6ab2a4684db6) ) // == mvc_ja.simm4 ROM_LOAD16_BYTE( "mvc_ja.simm3", 0x000001, 0x200000, CRC(699d09ad) SHA1(67f6587808f55f10f58e067512f8db3f67dda770) ) // == mvc_ja.simm6 @@ -5216,12 +5216,12 @@ ROM_LOAD64_WORD( "mvc64-17m.17", 0x0000004, 0x800000, CRC(308ca826) SHA1(2ef1fb4999e7e25e7f605c788f61a85da6715475) ) ROM_LOAD64_WORD( "mvc64-19m.19", 0x0000006, 0x800000, CRC(10699fe1) SHA1(4bb65999c2a73c46cd0c7b6ea26ffb0d8ab24602) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc64-11m.11", 0x000000, 0x800000, CRC(5d8819e0) SHA1(afe2ec7fa4786e6d9a9a0ffa5787862ad69b0010) ) ROM_REGION( 0x20, "key", 0 ) @@ -5229,7 +5229,7 @@ ROM_END ROM_START( mvsca ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvca.03a", 0x000000, 0x80000, CRC(2ff4ae25) SHA1(74cc3656a265f912c72cc6e591de14791fa9a50d) ) ROM_LOAD16_WORD_SWAP( "mvca.04a", 0x080000, 0x80000, CRC(f28427ef) SHA1(3e4c91753b19c6307abd0ad87a0184730a418efb) ) ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) ) @@ -5249,12 +5249,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5263,7 +5263,7 @@ ROM_END ROM_START( mvscar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvca.03", 0x000000, 0x80000, CRC(fe5fa7b9) SHA1(c27b987ffb631c3433aa32a29989dbf2b3e53f1e) ) ROM_LOAD16_WORD_SWAP( "mvca.04", 0x080000, 0x80000, CRC(082b701c) SHA1(363770ecd5f4e160db6448845ba6d7fd0beea291) ) ROM_LOAD16_WORD_SWAP( "mvc.05", 0x100000, 0x80000, CRC(7db71ce9) SHA1(a0097109e9f4aba40791932269d600c0ffa099a7) ) @@ -5283,12 +5283,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5297,7 +5297,7 @@ ROM_END ROM_START( mvsch ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvch.03", 0x000000, 0x80000, CRC(6a0ec9f7) SHA1(62d7b28cc9ddf975ccdc8992d51bd3d085e3e136) ) ROM_LOAD16_WORD_SWAP( "mvch.04", 0x080000, 0x80000, CRC(00f03fa4) SHA1(3a79400a7ac6e7594ca7e0fbb2486ddf6c759d18) ) ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) ) @@ -5317,12 +5317,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5331,7 +5331,7 @@ ROM_END ROM_START( mvscb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvcb.03a", 0x000000, 0x80000, CRC(7155953b) SHA1(acd1f86bc24636a02aeef566994d38ffa6dbf72f) ) ROM_LOAD16_WORD_SWAP( "mvcb.04a", 0x080000, 0x80000, CRC(fb117d0e) SHA1(c513f430e7c4f32e220a800c53ffdcea68c6cfcf) ) ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) ) @@ -5351,12 +5351,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -5365,61 +5365,61 @@ ROM_END ROM_START( mpang ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mpne.03c", 0x000000, 0x80000, CRC(fe16fc9f) SHA1(be22bf8a0abd53d2e7ebc12d3d0020bf799a25e9) ) ROM_LOAD16_WORD_SWAP( "mpne.04c", 0x080000, 0x80000, CRC(2cc5ec22) SHA1(c188349c26a64bad325cfa218849ed1e94303087) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "mpang.key", 0x000000, 0x000014, CRC(95354b0f) SHA1(6e015eda29ac94aa420d7c70cdebffee52fde032) ) ROM_END ROM_START( mpangr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mpne.03b", 0x000000, 0x80000, CRC(6ef0f9b2) SHA1(fd1c76e151466fe27b02a6d07683fdd9c6a4816d) ) ROM_LOAD16_WORD_SWAP( "mpne.04b", 0x080000, 0x80000, CRC(30a468bb) SHA1(f2f8f600a079ff050c9a0c12e1a6368943bdc536) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "mpang.key", 0x000000, 0x000014, CRC(95354b0f) SHA1(6e015eda29ac94aa420d7c70cdebffee52fde032) ) ROM_END ROM_START( mpangu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mpnu.03", 0x000000, 0x80000, CRC(6e7ed03c) SHA1(3562362d9573252d4d19dbfd0ec7e47e9eaa5f46) ) /* USA version, but has no "u" in label code */ ROM_LOAD16_WORD_SWAP( "mpnu.04", 0x080000, 0x80000, CRC(de079131) SHA1(95da2a03cb642963aabfebd8337003961ca4db71) ) @@ -5430,11 +5430,11 @@ ROM_LOAD64_WORD( "mpn.17m", 0x800004, 0x200000, CRC(cfcd73d2) SHA1(3415c063ac3632159df0fa74899bde8c90f4a2a1) ) ROM_LOAD64_WORD( "mpn.19m", 0x800006, 0x200000, CRC(2db1ffbc) SHA1(ca58c9359c2c629896c40e78c14907f562e2cdad) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mpn.q1", 0x000000, 0x100000, CRC(d21c1f5a) SHA1(94cfcf01e656c0fb690e6204964ac70fbc89064d) ) /* This version uses roms chips */ ROM_LOAD16_WORD_SWAP( "mpn.q2", 0x100000, 0x100000, CRC(d22090b1) SHA1(0ba65c0efb46af3cfb8ea3fe5087186248c57420) ) ROM_LOAD16_WORD_SWAP( "mpn.q3", 0x200000, 0x100000, CRC(60aa5ef2) SHA1(03fa994d7f5b43e05e8417a8769e07c22548a27a) ) @@ -5445,34 +5445,61 @@ ROM_END ROM_START( mpangj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mpnj.03a", 0x000000, 0x80000, CRC(bf597b1c) SHA1(0412e826eec7a9f3e70c84b64c9fbcecf7e0c56a) ) ROM_LOAD16_WORD_SWAP( "mpnj.04a", 0x080000, 0x80000, CRC(f4a3ab0f) SHA1(2e54bbc95304827fcd24dab35e4895f4e6566be0) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a SIMM + + ROM_REGION( 0x20, "key", 0 ) + ROM_LOAD( "mpang.key", 0x000000, 0x000014, CRC(95354b0f) SHA1(6e015eda29ac94aa420d7c70cdebffee52fde032) ) +ROM_END + +ROM_START( mpanga ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code + ROM_LOAD16_WORD_SWAP( "mpn_03a.6a", 0x000000, 0x80000, CRC(b05ebc34) SHA1(b30784dcc1aaf0f37930c125331dfa41240c5859) ) + ROM_LOAD16_WORD_SWAP( "mpn_04a.7a", 0x080000, 0x80000, CRC(8e4814b4) SHA1(f86e0b7986de115b76c579e6ffd4e77da2360a01) ) + + ROM_REGION( 0x1000000, "gfx", 0 ) + ROM_LOAD64_BYTE( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) ) // ROM on a SIMM + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) + ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "mpang.key", 0x000000, 0x000014, CRC(95354b0f) SHA1(6e015eda29ac94aa420d7c70cdebffee52fde032) ) ROM_END ROM_START( nwarr ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphe.03f", 0x000000, 0x80000, CRC(a922c44f) SHA1(aa06c7ee9b9878d999a21201f4ff3134cef1fff0) ) ROM_LOAD16_WORD_SWAP( "vphe.04c", 0x080000, 0x80000, CRC(7312d890) SHA1(8cf2ff6eb2c13e308e65d7ac7a5f9664c44170df) ) ROM_LOAD16_WORD_SWAP( "vphe.05d", 0x100000, 0x80000, CRC(cde8b506) SHA1(1c4f7fa6799be1aa444ed31464cddb79fee22928) ) @@ -5492,12 +5519,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5506,7 +5533,7 @@ ROM_END ROM_START( nwarru ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphu.03f", 0x000000, 0x80000, CRC(85d6a359) SHA1(38f4bb5cf2e1e82ce9673b911329fdc8220ce0dc) ) ROM_LOAD16_WORD_SWAP( "vphu.04c", 0x080000, 0x80000, CRC(cb7fce77) SHA1(85a8c8b1c71df0eee5f23e0bf28b2d95af2ce830) ) ROM_LOAD16_WORD_SWAP( "vphu.05e", 0x100000, 0x80000, CRC(e08f2bba) SHA1(0f6d01a3b05085df23ead4c09c5363a1587b527e) ) @@ -5526,12 +5553,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5540,7 +5567,7 @@ ROM_END ROM_START( nwarrh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphh.03d", 0x000000, 0x80000, CRC(6029c7be) SHA1(687c382d02d18ef5781c9d928e74f161461c2641) ) ROM_LOAD16_WORD_SWAP( "vphh.04a", 0x080000, 0x80000, CRC(d26625ee) SHA1(2b415a28ee39949a1e80e7e65b89f3d707bdfae7) ) ROM_LOAD16_WORD_SWAP( "vphh.05c", 0x100000, 0x80000, CRC(73ee0b8a) SHA1(d31ccb2cbc6133972f6dc76f0a40154368953625) ) @@ -5560,12 +5587,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5574,7 +5601,7 @@ ROM_END ROM_START( nwarrb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphb.03d", 0x000000, 0x80000, CRC(3a426d3f) SHA1(76d7c39c901aa768bb1600179509752d1fc0d558) ) ROM_LOAD16_WORD_SWAP( "vphb.04a", 0x080000, 0x80000, CRC(51c4bb2f) SHA1(c885813ff13bfd251accf38da1bc0bd9c526e4c5) ) ROM_LOAD16_WORD_SWAP( "vphb.05c", 0x100000, 0x80000, CRC(ac44d997) SHA1(b28e55d83a33e885125f2def76259d0ab21b0f9b) ) @@ -5594,12 +5621,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5608,7 +5635,7 @@ ROM_END ROM_START( nwarra ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vpha.03b", 0x000000, 0x80000, CRC(0a70cdd6) SHA1(08d3f3892bfc8e741c59071150e6c3a8bf5ffbef) ) ROM_LOAD16_WORD_SWAP( "vpha.04b", 0x080000, 0x80000, CRC(70ce62e4) SHA1(8bc9066071585805b6420bcc40eb03e641e3f027) ) ROM_LOAD16_WORD_SWAP( "vpha.05b", 0x100000, 0x80000, CRC(5692a03f) SHA1(7c2ba1022ee4045d985477a6c9026140b7809234) ) @@ -5628,12 +5655,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5642,7 +5669,7 @@ ROM_END ROM_START( vhuntj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphj.03f", 0x000000, 0x80000, CRC(3de2e333) SHA1(2f9f756c5c91646625d70debd5b19b8dbd13a62f) ) ROM_LOAD16_WORD_SWAP( "vphj.04c", 0x080000, 0x80000, CRC(c95cf304) SHA1(0544ab9d0f398b558e1119d94885058ad4a7d929) ) ROM_LOAD16_WORD_SWAP( "vphj.05d", 0x100000, 0x80000, CRC(50de5ddd) SHA1(2bcc6c254ead06e9ea0a9ae4348195d3d55de277) ) @@ -5662,12 +5689,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5676,7 +5703,7 @@ ROM_END ROM_START( vhuntjr1s ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphjstop.03b", 0x000000, 0x80000,CRC(9c4e6191) SHA1(a247beae3400583d5bf950b7c856befef45d3ad6) ) // should be 03c?, handwritten label.. ROM_LOAD16_WORD_SWAP( "vphj.04c", 0x080000, 0x80000, CRC(c95cf304) SHA1(0544ab9d0f398b558e1119d94885058ad4a7d929) ) ROM_LOAD16_WORD_SWAP( "vphj.05d", 0x100000, 0x80000, CRC(50de5ddd) SHA1(2bcc6c254ead06e9ea0a9ae4348195d3d55de277) ) @@ -5696,12 +5723,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5710,7 +5737,7 @@ ROM_END ROM_START( vhuntjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphj.03c", 0x000000, 0x80000, CRC(606b682a) SHA1(dd5c1b90a050e344b4f29fc468cfbd92aa392edf) ) ROM_LOAD16_WORD_SWAP( "vphj.04b", 0x080000, 0x80000, CRC(a3b40393) SHA1(04929e24c14b40f55745e02f07ff6af61739a8b4) ) ROM_LOAD16_WORD_SWAP( "vphj.05b", 0x100000, 0x80000, CRC(fccd5558) SHA1(a4d0f4cad7666e61c11e2571850df79b48332f28) ) @@ -5730,12 +5757,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5744,7 +5771,7 @@ ROM_END ROM_START( vhuntjr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphj.03b", 0x000000, 0x80000, CRC(679c3fa9) SHA1(25c3f595e4d93c16ac483e4f9ba20ad714ecf4ef) ) ROM_LOAD16_WORD_SWAP( "vphj.04a", 0x080000, 0x80000, CRC(eb6e71e4) SHA1(7a7cd34f7a70d87b817c0a4242844103db3e9f66) ) ROM_LOAD16_WORD_SWAP( "vphj.05a", 0x100000, 0x80000, CRC(eaf634ea) SHA1(d46cb9d5172bb626396354ff2742d4394f0816f1) ) @@ -5764,12 +5791,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -5778,181 +5805,181 @@ ROM_END ROM_START( progear ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pgau.03", 0x000000, 0x80000, CRC(343a783e) SHA1(7ba8ae041b062767bf64328adf22ef100c38cdfd) ) ROM_LOAD16_WORD_SWAP( "pgau.04", 0x080000, 0x80000, CRC(16208d79) SHA1(c477de7f31df44144a60d10dc4d933f3a7c20722) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a simm + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "progear.key", 0x000000, 0x000014, CRC(46736b17) SHA1(3fd0cc78fad80210a7cf8b1150cba1e6121998dd) ) ROM_END ROM_START( progearj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pgaj.03", 0x000000, 0x80000, CRC(06dbba54) SHA1(b0b808e9974c727bd187f2cdcba71a301b78c759) ) ROM_LOAD16_WORD_SWAP( "pgaj.04", 0x080000, 0x80000, CRC(a1f1f1bc) SHA1(839cdc89d9483632883c185951c76deb4ff7657e) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a simm + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "progearj.key", 0x000000, 0x000014, CRC(d8d515e5) SHA1(d0cfe4effac0e9ede8ad31db8972436638ff8d6f) ) ROM_END ROM_START( progeara ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pgaa.03", 0x000000, 0x80000, CRC(25e6e2ce) SHA1(15b702ccc2bab7f2f9e7724ed83931c686763ffe) ) ROM_LOAD16_WORD_SWAP( "pgaa.04", 0x080000, 0x80000, CRC(8104307e) SHA1(3ed134fcbf5c1c9f068f59b49b96d01a1ea33eeb) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a simm + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "progeara.key", 0x000000, 0x000014, CRC(30a0fab6) SHA1(be3884a223e76750abe2556b000a821a262423f0) ) ROM_END ROM_START( pzloop2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pl2e.03", 0x000000, 0x80000, CRC(3b1285b2) SHA1(f90f98fb15068306a57109ad954845be0a99e8ab) ) ROM_LOAD16_WORD_SWAP( "pl2e.04", 0x080000, 0x80000, CRC(40a2d647) SHA1(d1c5fa87b368efe0d2cc3f614d0165bd95748b81) ) ROM_LOAD16_WORD_SWAP( "pl2e.05", 0x100000, 0x80000, CRC(0f11d818) SHA1(ca2d5ea892aebfa1a2a825fb45c57b7923936917) ) ROM_LOAD16_WORD_SWAP( "pl2e.06", 0x180000, 0x80000, CRC(86fbbdf4) SHA1(325ba5dc54f3d82f39e1299d5f27de7227a458b2) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pl2.01", 0x00000, 0x08000, CRC(35697569) SHA1(13718923cffb9ec53cef9e22d8875370b5f3dd74) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "pzloop2.key", 0x000000, 0x000014, CRC(ae13be78) SHA1(5c715f0ef1e0664027faa6c2a7f0f878462cb7ae) ) ROM_END ROM_START( pzloop2j ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pl2j.03c", 0x000000, 0x80000, CRC(3b76b806) SHA1(743808ccd470da075ca2f4a8872b22feb7e993ef) ) // 'c' handwritten over 'a' label ROM_LOAD16_WORD_SWAP( "pl2j.04c", 0x080000, 0x80000, CRC(8878a42a) SHA1(178efe9be9ab7f209489f35d653cb5fef4e9565b) ) // ^^ ROM_LOAD16_WORD_SWAP( "pl2j.05c", 0x100000, 0x80000, CRC(51081ea4) SHA1(175dc70ba0b6a158d23e7271dd65f28e7beea746) ) // ^^ ROM_LOAD16_WORD_SWAP( "pl2j.06c", 0x180000, 0x80000, CRC(51c68494) SHA1(c3b2055af11138f5280fe89e248536069a22ddca) ) // ^^ ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pl2.01", 0x00000, 0x08000, CRC(35697569) SHA1(13718923cffb9ec53cef9e22d8875370b5f3dd74) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "pzloop2.key", 0x000000, 0x000014, CRC(ae13be78) SHA1(5c715f0ef1e0664027faa6c2a7f0f878462cb7ae) ) ROM_END ROM_START( pzloop2jr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pl2j.03a", 0x000000, 0x80000, CRC(0a751bd0) SHA1(a5a0b60387aacdafdf46ecd1acd764c9cb086b90) ) ROM_LOAD16_WORD_SWAP( "pl2j.04a", 0x080000, 0x80000, CRC(c3f72afe) SHA1(597a302e4bba50193c53f239e715962fcc4e3e5e) ) ROM_LOAD16_WORD_SWAP( "pl2j.05a", 0x100000, 0x80000, CRC(6ea9dbfc) SHA1(c3065e02516755e8b94a741dd2ab960c96d0ff8c) ) ROM_LOAD16_WORD_SWAP( "pl2j.06a", 0x180000, 0x80000, CRC(0f14848d) SHA1(94a3ee00d65cd9a310b3a330e2c37467b5863c64) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pl2.01", 0x00000, 0x08000, CRC(35697569) SHA1(13718923cffb9ec53cef9e22d8875370b5f3dd74) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "pzloop2.key", 0x000000, 0x000014, CRC(ae13be78) SHA1(5c715f0ef1e0664027faa6c2a7f0f878462cb7ae) ) ROM_END ROM_START( qndream ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "tqzj.03a", 0x000000, 0x80000, CRC(7acf3e30) SHA1(5e2a697f98185731afc4130286a2699033dd02af) ) ROM_LOAD16_WORD_SWAP( "tqzj.04", 0x080000, 0x80000, CRC(f1044a87) SHA1(3fd6e5dd6be8c037c8a77cb840bf7d387497a98b) ) ROM_LOAD16_WORD_SWAP( "tqzj.05", 0x100000, 0x80000, CRC(4105ba0e) SHA1(73aacdf4176029f8e21506319e41ce03ed480122) ) @@ -5965,11 +5992,11 @@ ROM_LOAD64_WORD( "tqz.18m", 0x800004, 0x200000, CRC(42f132ff) SHA1(0e0a128524010dba033a9b9ab2c56fe92a1767da) ) ROM_LOAD64_WORD( "tqz.20m", 0x800006, 0x200000, CRC(b2e128a3) SHA1(8ae3161749d5206f16b755c29466cd5ca249b665) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "tqz.01", 0x00000, 0x08000, CRC(e9ce9d0a) SHA1(29f2987788e914e0a55f9130a99e411d15a7cc9b) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "tqz.11m", 0x000000, 0x200000, CRC(78e7884f) SHA1(82fbbf704ac4bc0e0e7a6f407686861aa3693c23) ) ROM_LOAD16_WORD_SWAP( "tqz.12m", 0x200000, 0x200000, CRC(2e049b13) SHA1(e026f444b905e679e8240c7dd371658c4a3fd713) ) @@ -5978,7 +6005,7 @@ ROM_END ROM_START( ringdest ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "smbe.03b", 0x000000, 0x80000, CRC(b8016278) SHA1(f744b08b27c11b8567ca7a94fbd75e398563c008) ) ROM_LOAD16_WORD_SWAP( "smbe.04b", 0x080000, 0x80000, CRC(18c4c447) SHA1(3723ad6d6939fa1ac7dd016254b32017b5e7b24e) ) ROM_LOAD16_WORD_SWAP( "smbe.05b", 0x100000, 0x80000, CRC(18ebda7f) SHA1(eacc3e76af5c47abe0a778be7a7beacf0924884e) ) @@ -6000,12 +6027,12 @@ ROM_LOAD64_WORD( "smb.25m", 0x1000004, 0x080000, CRC(82d6c4ec) SHA1(ed8ed02a00f59a048b9891ec2a77720bb6a5e03d) ) ROM_LOAD64_WORD( "smb.27m", 0x1000006, 0x080000, CRC(9b48678b) SHA1(4fa300d356c538947983ae85bb5c5cfd1fb835e7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "smb.01", 0x00000, 0x08000, CRC(0abc229a) SHA1(967f574e6358dfc1b01e6a4a4df1a8f34eb3d814) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "smb.02", 0x28000, 0x20000, CRC(d051679a) SHA1(583c2521a30db1740d95dd94a38751fbeff3aae5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "smb.11m", 0x000000, 0x200000, CRC(c56935f9) SHA1(ca1705e48e31ddc13505e6297bceca2bec1bb209) ) ROM_LOAD16_WORD_SWAP( "smb.12m", 0x200000, 0x200000, CRC(955b0782) SHA1(ee09500e7b44e923126533613bfe26cdabc7ab5f) ) @@ -6014,7 +6041,7 @@ ROM_END ROM_START( smbomb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "smbj.03a", 0x000000, 0x80000, CRC(1c5613de) SHA1(e6257078ad2e18537aa606b0d0c5e04806244386) ) ROM_LOAD16_WORD_SWAP( "smbj.04a", 0x080000, 0x80000, CRC(29071ed7) SHA1(eb438fcb42e3fbe38e20bc021be079a3dd7a89fa) ) ROM_LOAD16_WORD_SWAP( "smbj.05a", 0x100000, 0x80000, CRC(eb20bce4) SHA1(b78a447d3d1d3f9a62a6b5abcd893f5e091f1bbc) ) @@ -6036,12 +6063,12 @@ ROM_LOAD64_WORD( "smb.25m", 0x1000004, 0x080000, CRC(82d6c4ec) SHA1(ed8ed02a00f59a048b9891ec2a77720bb6a5e03d) ) ROM_LOAD64_WORD( "smb.27m", 0x1000006, 0x080000, CRC(9b48678b) SHA1(4fa300d356c538947983ae85bb5c5cfd1fb835e7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "smb.01", 0x00000, 0x08000, CRC(0abc229a) SHA1(967f574e6358dfc1b01e6a4a4df1a8f34eb3d814) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "smb.02", 0x28000, 0x20000, CRC(d051679a) SHA1(583c2521a30db1740d95dd94a38751fbeff3aae5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "smb.11m", 0x000000, 0x200000, CRC(c56935f9) SHA1(ca1705e48e31ddc13505e6297bceca2bec1bb209) ) ROM_LOAD16_WORD_SWAP( "smb.12m", 0x200000, 0x200000, CRC(955b0782) SHA1(ee09500e7b44e923126533613bfe26cdabc7ab5f) ) @@ -6050,7 +6077,7 @@ ROM_END ROM_START( smbombr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "smbj.03", 0x000000, 0x80000, CRC(52eafb10) SHA1(5abfe07e948748eba982dc8f2e21462aec187590) ) ROM_LOAD16_WORD_SWAP( "smbj.04", 0x080000, 0x80000, CRC(aa6e8078) SHA1(58b4e15e7e3209e59a37ce48d8b9f0dc8b933cdc) ) ROM_LOAD16_WORD_SWAP( "smbj.05", 0x100000, 0x80000, CRC(b69e7d5f) SHA1(e66430ef05ed0d1c848d24c7436ee5f1b511dcea) ) @@ -6072,12 +6099,12 @@ ROM_LOAD64_WORD( "smb.25m", 0x1000004, 0x080000, CRC(82d6c4ec) SHA1(ed8ed02a00f59a048b9891ec2a77720bb6a5e03d) ) ROM_LOAD64_WORD( "smb.27m", 0x1000006, 0x080000, CRC(9b48678b) SHA1(4fa300d356c538947983ae85bb5c5cfd1fb835e7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "smb.01", 0x00000, 0x08000, CRC(0abc229a) SHA1(967f574e6358dfc1b01e6a4a4df1a8f34eb3d814) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "smb.02", 0x28000, 0x20000, CRC(d051679a) SHA1(583c2521a30db1740d95dd94a38751fbeff3aae5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "smb.11m", 0x000000, 0x200000, CRC(c56935f9) SHA1(ca1705e48e31ddc13505e6297bceca2bec1bb209) ) ROM_LOAD16_WORD_SWAP( "smb.12m", 0x200000, 0x200000, CRC(955b0782) SHA1(ee09500e7b44e923126533613bfe26cdabc7ab5f) ) @@ -6086,7 +6113,7 @@ ROM_END ROM_START( ringdesta ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "smba.03a", 0x000000, 0x80000, CRC(d3744dfd) SHA1(462dbdbdda75c498680889355cc4897d67ceddec) ) ROM_LOAD16_WORD_SWAP( "smba.04a", 0x080000, 0x80000, CRC(f32d5b4f) SHA1(de001ff00c4bc7797f4dd4c2d0b59b9b0cbb6d1f) ) ROM_LOAD16_WORD_SWAP( "smba.05a", 0x100000, 0x80000, CRC(1016454f) SHA1(3b176afdf550d565a75a0f3e8238c79d4e6863ac) ) @@ -6108,12 +6135,12 @@ ROM_LOAD64_WORD( "smb.25m", 0x1000004, 0x080000, CRC(82d6c4ec) SHA1(ed8ed02a00f59a048b9891ec2a77720bb6a5e03d) ) ROM_LOAD64_WORD( "smb.27m", 0x1000006, 0x080000, CRC(9b48678b) SHA1(4fa300d356c538947983ae85bb5c5cfd1fb835e7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "smb.01", 0x00000, 0x08000, CRC(0abc229a) SHA1(967f574e6358dfc1b01e6a4a4df1a8f34eb3d814) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "smb.02", 0x28000, 0x20000, CRC(d051679a) SHA1(583c2521a30db1740d95dd94a38751fbeff3aae5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "smb.11m", 0x000000, 0x200000, CRC(c56935f9) SHA1(ca1705e48e31ddc13505e6297bceca2bec1bb209) ) ROM_LOAD16_WORD_SWAP( "smb.12m", 0x200000, 0x200000, CRC(955b0782) SHA1(ee09500e7b44e923126533613bfe26cdabc7ab5f) ) @@ -6122,7 +6149,7 @@ ROM_END ROM_START( ringdesth ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "smbh.03b", 0x000000, 0x80000, CRC(2e316584) SHA1(7a7c2ec21bd46d784c2971e1dbb8d8312362371a) ) ROM_LOAD16_WORD_SWAP( "smbh.04b", 0x080000, 0x80000, CRC(9950a23a) SHA1(5afd12ae7f3e7283ba42f844f2ee5a96875dc74e) ) ROM_LOAD16_WORD_SWAP( "smbh.05b", 0x100000, 0x80000, CRC(41e0b3fc) SHA1(67fea6e194650c2a45cc0408ab1b0c2743ec6efa) ) @@ -6144,12 +6171,12 @@ ROM_LOAD64_WORD( "smb.25m", 0x1000004, 0x080000, CRC(82d6c4ec) SHA1(ed8ed02a00f59a048b9891ec2a77720bb6a5e03d) ) ROM_LOAD64_WORD( "smb.27m", 0x1000006, 0x080000, CRC(9b48678b) SHA1(4fa300d356c538947983ae85bb5c5cfd1fb835e7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "smb.01", 0x00000, 0x08000, CRC(0abc229a) SHA1(967f574e6358dfc1b01e6a4a4df1a8f34eb3d814) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "smb.02", 0x28000, 0x20000, CRC(d051679a) SHA1(583c2521a30db1740d95dd94a38751fbeff3aae5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "smb.11m", 0x000000, 0x200000, CRC(c56935f9) SHA1(ca1705e48e31ddc13505e6297bceca2bec1bb209) ) ROM_LOAD16_WORD_SWAP( "smb.12m", 0x200000, 0x200000, CRC(955b0782) SHA1(ee09500e7b44e923126533613bfe26cdabc7ab5f) ) @@ -6157,8 +6184,54 @@ ROM_LOAD( "ringdesth.key", 0x000000, 0x000014, CRC(ffb8d049) SHA1(c6d111412c3960b24a1be5c49fe4ec4d17324e06) ) ROM_END +/* +About the Ring of Destruction: Slammasters II (Brazil 940902) below: + +Only ROM smbb.03b is different then the above Hispanic (ringdesth) set, while ROMs 04 through 08 match. ROM smbb.03b has 3 bytes changed: + 0x00C1 == 0A (vs 05 for smbh.03b), this is the region byte. + 0x1D20 == 6D (vs 6E for smbh.03b), this is a checksum byte. + 0x1D24 == 73 (vs 66 for smbh.03b), this is a checksum byte. + +It also uses the ringdesth key for decryption. For all intents and purposes, this set is a factory region hack which has been verified on multiple boards. +*/ +ROM_START( ringdestb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code + ROM_LOAD16_WORD_SWAP( "smbb.03b", 0x000000, 0x80000, CRC(234eebcc) SHA1(61ae407d0b2fb6e685231849f4db7ddf249466d1) ) /* all hand written labels */ + ROM_LOAD16_WORD_SWAP( "smbb.04b", 0x080000, 0x80000, CRC(9950a23a) SHA1(5afd12ae7f3e7283ba42f844f2ee5a96875dc74e) ) + ROM_LOAD16_WORD_SWAP( "smbb.05b", 0x100000, 0x80000, CRC(41e0b3fc) SHA1(67fea6e194650c2a45cc0408ab1b0c2743ec6efa) ) + ROM_LOAD16_WORD_SWAP( "smbb.06b", 0x180000, 0x80000, CRC(89c80007) SHA1(4c85aa5b224fdbb64f719a7b8b5b2e7413107c70) ) + ROM_LOAD16_WORD_SWAP( "smbb.07b", 0x200000, 0x80000, CRC(b9a11577) SHA1(e9b58ef8acd1fedd3c9e0a3489593c7e931106c0) ) + ROM_LOAD16_WORD_SWAP( "smbb.08b", 0x280000, 0x80000, CRC(f931b76b) SHA1(0b7e8d1278dcba89f0063bd09cda96d6ae1bc282) ) + + ROM_REGION( 0x1200000, "gfx", 0 ) + ROM_LOAD64_WORD( "smb.13m", 0x0000000, 0x200000, CRC(d9b2d1de) SHA1(e8658983070dadcd1300a680a42c8431579e2b4f) ) + ROM_LOAD64_WORD( "smb.15m", 0x0000002, 0x200000, CRC(9a766d92) SHA1(afdf88afbec527268d63c11ea32f861b52e11489) ) + ROM_LOAD64_WORD( "smb.17m", 0x0000004, 0x200000, CRC(51800f0f) SHA1(9526cd69a23340a81841271b51de03d9bf2b979f) ) + ROM_LOAD64_WORD( "smb.19m", 0x0000006, 0x200000, CRC(35757e96) SHA1(c915f3b9e4fdec3defc7eecb2c1f7377e6072228) ) + ROM_LOAD64_WORD( "smb.14m", 0x0800000, 0x200000, CRC(e5bfd0e7) SHA1(327e626df4c2152f921f15535c01dda6c4437527) ) + ROM_LOAD64_WORD( "smb.16m", 0x0800002, 0x200000, CRC(c56c0866) SHA1(1e2218e852ae72a9a95861dd37129fe78d4b1329) ) + ROM_LOAD64_WORD( "smb.18m", 0x0800004, 0x200000, CRC(4ded3910) SHA1(d883541ce4d83f4e7ab095f2ef273408d9911f9a) ) + ROM_LOAD64_WORD( "smb.20m", 0x0800006, 0x200000, CRC(26ea1ec5) SHA1(22be249b1f73272feacf4026f09fc877f5d86353) ) + ROM_LOAD64_WORD( "smb.21m", 0x1000000, 0x080000, CRC(0a08c5fc) SHA1(ff3fad4fbc98e3013291c7ba7ee5e057a2628b36) ) + ROM_LOAD64_WORD( "smb.23m", 0x1000002, 0x080000, CRC(0911b6c4) SHA1(e7a7061b192658724d98cae8693f63dd5bc40c00) ) + ROM_LOAD64_WORD( "smb.25m", 0x1000004, 0x080000, CRC(82d6c4ec) SHA1(ed8ed02a00f59a048b9891ec2a77720bb6a5e03d) ) + ROM_LOAD64_WORD( "smb.27m", 0x1000006, 0x080000, CRC(9b48678b) SHA1(4fa300d356c538947983ae85bb5c5cfd1fb835e7) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) + ROM_LOAD( "smb.01", 0x00000, 0x08000, CRC(0abc229a) SHA1(967f574e6358dfc1b01e6a4a4df1a8f34eb3d814) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "smb.02", 0x28000, 0x20000, CRC(d051679a) SHA1(583c2521a30db1740d95dd94a38751fbeff3aae5) ) + + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "smb.11m", 0x000000, 0x200000, CRC(c56935f9) SHA1(ca1705e48e31ddc13505e6297bceca2bec1bb209) ) + ROM_LOAD16_WORD_SWAP( "smb.12m", 0x200000, 0x200000, CRC(955b0782) SHA1(ee09500e7b44e923126533613bfe26cdabc7ab5f) ) + + ROM_REGION( 0x20, "key", 0 ) + ROM_LOAD( "ringdesth.key", 0x000000, 0x000014, CRC(ffb8d049) SHA1(c6d111412c3960b24a1be5c49fe4ec4d17324e06) ) /* Brazilian set, but still uses the Hispanic key */ +ROM_END + ROM_START( mmancp2u ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rcmu.03b", 0x000000, 0x80000, CRC(c39f037f) SHA1(eefc5aa0fde322c6f895a37399424060c702a459) ) ROM_LOAD16_WORD_SWAP( "rcmu.04b", 0x080000, 0x80000, CRC(cd6f5e99) SHA1(46d5298bdf7dd3ccfe5d491c61f3c2e2da011e3b) ) ROM_LOAD16_WORD_SWAP( "rcm.05b", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) ) // == rcma_21a.rom from CPS1 version @@ -6182,11 +6255,11 @@ ROM_LOAD64_WORD( "rcm.86", 0xe00004, 0x080000, CRC(6d974ebd) SHA1(41de66481a64fa8a6471c512fc5dcaf96d95ee69) ) ROM_LOAD64_WORD( "rcm.96", 0xe00006, 0x080000, CRC(7da4cd24) SHA1(dd44377ff9f83f15cac032c4e7ef2071adcfa196) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rcm.01", 0x00000, 0x08000, CRC(d60cf8a3) SHA1(dccd84b93e62489c703011422d0fe84444c7f7db) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rcm.51", 0x000000, 0x80000, CRC(b6d07080) SHA1(b8f07553c01b1f67b0696110cd4e35e4cf4fa158) ) ROM_LOAD16_WORD_SWAP( "rcm.52", 0x080000, 0x80000, CRC(dfddc493) SHA1(56b5129f24d05d2c85a767b0a632bf260f5425b2) ) ROM_LOAD16_WORD_SWAP( "rcm.53", 0x100000, 0x80000, CRC(6062ae3a) SHA1(28a4d59bce0c341c240ee8cc92f85850ea8ffb10) ) @@ -6201,7 +6274,7 @@ ROM_END ROM_START( mmancp2ur1 ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rcmu.03a", 0x000000, 0x80000, CRC(c6b75320) SHA1(652aa5cf916fa50ce5e4023cebc234fbf404cd01) ) ROM_LOAD16_WORD_SWAP( "rcmu.04a", 0x080000, 0x80000, CRC(47880111) SHA1(893da977b3b1153646a524b106407c43ef8209c8) ) ROM_LOAD16_WORD_SWAP( "rcmu.05a", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) ) @@ -6225,11 +6298,11 @@ ROM_LOAD64_WORD( "rcm.86", 0xe00004, 0x080000, CRC(6d974ebd) SHA1(41de66481a64fa8a6471c512fc5dcaf96d95ee69) ) ROM_LOAD64_WORD( "rcm.96", 0xe00006, 0x080000, CRC(7da4cd24) SHA1(dd44377ff9f83f15cac032c4e7ef2071adcfa196) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rcm.01", 0x00000, 0x08000, CRC(d60cf8a3) SHA1(dccd84b93e62489c703011422d0fe84444c7f7db) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rcm.51", 0x000000, 0x80000, CRC(b6d07080) SHA1(b8f07553c01b1f67b0696110cd4e35e4cf4fa158) ) ROM_LOAD16_WORD_SWAP( "rcm.52", 0x080000, 0x80000, CRC(dfddc493) SHA1(56b5129f24d05d2c85a767b0a632bf260f5425b2) ) ROM_LOAD16_WORD_SWAP( "rcm.53", 0x100000, 0x80000, CRC(6062ae3a) SHA1(28a4d59bce0c341c240ee8cc92f85850ea8ffb10) ) @@ -6245,7 +6318,7 @@ ROM_START( rmancp2j ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rcmj.03a", 0x000000, 0x80000, CRC(30559f60) SHA1(7a7c7c00613e379317383d68cac47dfbbb2200c9) ) ROM_LOAD16_WORD_SWAP( "rcmj.04a", 0x080000, 0x80000, CRC(5efc9366) SHA1(33420ac6ccf3c4982ce7644c574414574f706bd3) ) ROM_LOAD16_WORD_SWAP( "rcm.05a", 0x100000, 0x80000, CRC(517ccde2) SHA1(492256c192f0c4814efa1ee1dd390453dd2e5865) ) @@ -6269,11 +6342,11 @@ ROM_LOAD64_WORD( "rcm.86", 0xe00004, 0x080000, CRC(6d974ebd) SHA1(41de66481a64fa8a6471c512fc5dcaf96d95ee69) ) ROM_LOAD64_WORD( "rcm.96", 0xe00006, 0x080000, CRC(7da4cd24) SHA1(dd44377ff9f83f15cac032c4e7ef2071adcfa196) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rcm.01", 0x00000, 0x08000, CRC(d60cf8a3) SHA1(dccd84b93e62489c703011422d0fe84444c7f7db) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rcm.51", 0x000000, 0x80000, CRC(b6d07080) SHA1(b8f07553c01b1f67b0696110cd4e35e4cf4fa158) ) ROM_LOAD16_WORD_SWAP( "rcm.52", 0x080000, 0x80000, CRC(dfddc493) SHA1(56b5129f24d05d2c85a767b0a632bf260f5425b2) ) ROM_LOAD16_WORD_SWAP( "rcm.53", 0x100000, 0x80000, CRC(6062ae3a) SHA1(28a4d59bce0c341c240ee8cc92f85850ea8ffb10) ) @@ -6288,7 +6361,7 @@ ROM_END ROM_START( sfa ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfze.03d", 0x000000, 0x80000, CRC(ebf2054d) SHA1(6e7b9e4202b86ab237ea5634c98b71b82d812ef2) ) ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) ) // also found as sfze.04c, same hash ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) // also found as sfze.05b, same hash @@ -6301,12 +6374,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6315,7 +6388,7 @@ ROM_END ROM_START( sfar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfze.03c", 0x000000, 0x80000, CRC(a1b69dd7) SHA1(b41440eba8f33eed955c987a04d99fca6c5c90e5) ) // Rom name dosnt appear to follow normal capcom naming system and was written on rom by hand ROM_LOAD16_WORD_SWAP( "sfze.04b", 0x080000, 0x80000, CRC(bb90acd5) SHA1(a19795963b90f1152f44cae29e78dd2ce67a41d6) ) // Rom name dosnt appear to follow normal capcom naming system and was written on rom by hand ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6328,12 +6401,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6342,7 +6415,7 @@ ROM_END ROM_START( sfar2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfze.03b", 0x000000, 0x80000, CRC(2bf5708e) SHA1(6ce55082e0befef47f25b4be76c607d79ec0828c) ) // Rom name dosnt appear to follow normal capcom naming system and was written on rom by hand ROM_LOAD16_WORD_SWAP( "sfz.04a", 0x080000, 0x80000, CRC(5f99e9a5) SHA1(e9f286315d17096adc08e6b4e6ff7c5351f5bef3) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6355,12 +6428,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6369,7 +6442,7 @@ ROM_END ROM_START( sfar3 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfze.03a", 0x000000, 0x80000, CRC(fdbcd434) SHA1(1d5f9b821d9e0d45be61896969500b877a112fad) ) ROM_LOAD16_WORD_SWAP( "sfz.04", 0x080000, 0x80000, CRC(0c436d30) SHA1(84229896c99bb2a4fbbab33644f779c9f86704fb) ) ROM_LOAD16_WORD_SWAP( "sfz.05", 0x100000, 0x80000, CRC(1f363612) SHA1(87203b5db2d3887762da431d6fc2f2b76d4feedb) ) @@ -6382,12 +6455,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6396,7 +6469,7 @@ ROM_END ROM_START( sfau ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzu.03a", 0x000000, 0x80000, CRC(49fc7db9) SHA1(2a13d987fade88e0372f418cf451f34de67372d5) ) // If there's a US 950605 then this should be sfzu.03b ROM_LOAD16_WORD_SWAP( "sfz.04a", 0x080000, 0x80000, CRC(5f99e9a5) SHA1(e9f286315d17096adc08e6b4e6ff7c5351f5bef3) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6409,12 +6482,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6423,7 +6496,7 @@ ROM_END ROM_START( sfza ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfza.03b", 0x000000, 0x80000, CRC(ca91bed9) SHA1(af238a4a1b87fa09ae7da7e0c41964c95dae6513) ) ROM_LOAD16_WORD_SWAP( "sfz.04a", 0x080000, 0x80000, CRC(5f99e9a5) SHA1(e9f286315d17096adc08e6b4e6ff7c5351f5bef3) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6436,12 +6509,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6450,7 +6523,7 @@ ROM_END ROM_START( sfzar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfza.03a", 0x000000, 0x80000, CRC(f38d8c8d) SHA1(06770ea1944da5867483e647a306591be454d25e) ) ROM_LOAD16_WORD_SWAP( "sfz.04", 0x080000, 0x80000, CRC(0c436d30) SHA1(84229896c99bb2a4fbbab33644f779c9f86704fb) ) ROM_LOAD16_WORD_SWAP( "sfz.05", 0x100000, 0x80000, CRC(1f363612) SHA1(87203b5db2d3887762da431d6fc2f2b76d4feedb) ) @@ -6463,12 +6536,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6477,7 +6550,7 @@ ROM_END ROM_START( sfzj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzj.03c", 0x000000, 0x80000, CRC(f5444120) SHA1(22158894971754ad83b8eeb8bdfb9874794b98c0) ) ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6490,12 +6563,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6504,7 +6577,7 @@ ROM_END ROM_START( sfzjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzj.03b", 0x000000, 0x80000, CRC(844220c2) SHA1(ff295207e0f9679285d805aa494537ae7daf1634) ) ROM_LOAD16_WORD_SWAP( "sfz.04a", 0x080000, 0x80000, CRC(5f99e9a5) SHA1(e9f286315d17096adc08e6b4e6ff7c5351f5bef3) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6517,12 +6590,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6531,7 +6604,7 @@ ROM_END ROM_START( sfzjr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzj.03a", 0x000000, 0x80000, CRC(3cfce93c) SHA1(5f64e9707cb3d911f44e041d980e4b2250f49d75) ) ROM_LOAD16_WORD_SWAP( "sfz.04", 0x080000, 0x80000, CRC(0c436d30) SHA1(84229896c99bb2a4fbbab33644f779c9f86704fb) ) ROM_LOAD16_WORD_SWAP( "sfz.05", 0x100000, 0x80000, CRC(1f363612) SHA1(87203b5db2d3887762da431d6fc2f2b76d4feedb) ) @@ -6544,12 +6617,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6558,7 +6631,7 @@ ROM_END ROM_START( sfzh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzh.03d", 0x000000, 0x80000, CRC(6e08cbe0) SHA1(c9d0e709004677b51efe0b62e0ae9b681dde1744) ) ROM_LOAD16_WORD_SWAP( "sfz.04c", 0x080000, 0x80000, CRC(bb90acd5) SHA1(a19795963b90f1152f44cae29e78dd2ce67a41d6) ) ROM_LOAD16_WORD_SWAP( "sfz.05c", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) /* Same as revision "A" below */ @@ -6571,12 +6644,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6585,7 +6658,7 @@ ROM_END ROM_START( sfzhr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzh.03c", 0x000000, 0x80000, CRC(bce635aa) SHA1(323da2de6c3ff6fd8c2c66ce6bd1d287873db9b1) ) ROM_LOAD16_WORD_SWAP( "sfz.04a", 0x080000, 0x80000, CRC(5f99e9a5) SHA1(e9f286315d17096adc08e6b4e6ff7c5351f5bef3) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6598,12 +6671,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6612,7 +6685,7 @@ ROM_END ROM_START( sfzb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzb.03g", 0x000000, 0x80000, CRC(348862d4) SHA1(b48c7df17f8b681fc726931dbf81f5aeb762a5b3) ) ROM_LOAD16_WORD_SWAP( "sfzb.04e", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6625,12 +6698,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6639,7 +6712,7 @@ ROM_END ROM_START( sfzbr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzb.03e", 0x000000, 0x80000, CRC(ecba89a3) SHA1(5a3d7a978b6dc1f334eddf8e065318d60501f223) ) ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -6652,12 +6725,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -6666,7 +6739,7 @@ ROM_END ROM_START( sfa2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2e.03", 0x000000, 0x80000, CRC(1061e6bb) SHA1(f9b05e5cbcb1dc874de6874b01058defd6e4c407) ) ROM_LOAD16_WORD_SWAP( "sz2e.04", 0x080000, 0x80000, CRC(22d17b26) SHA1(2d7a9cedae1bb2b7cfb80d2bfcf24cb7738df0bf) ) ROM_LOAD16_WORD_SWAP( "sz2.05", 0x100000, 0x80000, CRC(4b442a7c) SHA1(a0d7d229cff8efb2a253ff06270258b0b4d2761e) ) @@ -6684,12 +6757,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6698,7 +6771,7 @@ ROM_END ROM_START( sfa2u ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2u.03a", 0x000000, 0x80000, CRC(d03e504f) SHA1(14173d650ca4ca7f53e6dab76bac6e2724ff3d9d) ) ROM_LOAD16_WORD_SWAP( "sz2u.04a", 0x080000, 0x80000, CRC(fae0e9c3) SHA1(d84cfbf16079f9987df683911b83896b80b52b1a) ) ROM_LOAD16_WORD_SWAP( "sz2u.05a", 0x100000, 0x80000, CRC(d02dd758) SHA1(581bcd451b1d081b9b73d4a1b485da9f29756613) ) @@ -6716,12 +6789,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6730,7 +6803,7 @@ ROM_END ROM_START( sfa2ur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2u.03", 0x000000, 0x80000, CRC(84a09006) SHA1(334c33f9eb324d71443cc9c44e94f5a72451fa3f) ) ROM_LOAD16_WORD_SWAP( "sz2u.04", 0x080000, 0x80000, CRC(ac46e5ed) SHA1(a01b57daba4c255d5f07465c553bcbfe51d9ab0d) ) ROM_LOAD16_WORD_SWAP( "sz2u.05", 0x100000, 0x80000, CRC(6c0c79d3) SHA1(ae2a4e2903beec1f10fff6edac1a2385d6ac1c38) ) @@ -6748,12 +6821,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6762,7 +6835,7 @@ ROM_END ROM_START( sfz2j ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2j.03b", 0x000000, 0x80000, CRC(3e1e2e85) SHA1(11447b08803d6bf7aeca7aa348b817bd6d448fe8) ) ROM_LOAD16_WORD_SWAP( "sz2j.04b", 0x080000, 0x80000, CRC(f53d6c45) SHA1(674c06b2775834887db3b7705941feea7367f500) ) ROM_LOAD16_WORD_SWAP( "sz2j.05b", 0x100000, 0x80000, CRC(dd224156) SHA1(85d29f2a288430d51c53b88130f255131e5dc601) ) @@ -6780,12 +6853,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6794,7 +6867,7 @@ ROM_END ROM_START( sfz2jr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2j.03a", 0x000000, 0x80000, CRC(97461e28) SHA1(8fbe4c9a59f51612f86adb8ef5057e43be0348bf) ) ROM_LOAD16_WORD_SWAP( "sz2j.04a", 0x080000, 0x80000, CRC(ae4851a9) SHA1(4771bc22fe1b376b753a68506c012c52bd4b886d) ) ROM_LOAD16_WORD_SWAP( "sz2.05a", 0x100000, 0x80000, CRC(98e8e992) SHA1(41745b63e6b3888081d189b8315ed3b7526b3d20) ) @@ -6812,12 +6885,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6826,7 +6899,7 @@ ROM_END ROM_START( sfz2a ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2a.03a", 0x000000, 0x80000, CRC(30d2099f) SHA1(d4c7d8c2ad08cae228544bd692aedecd4fab829c) ) ROM_LOAD16_WORD_SWAP( "sz2a.04a", 0x080000, 0x80000, CRC(1cc94db1) SHA1(518151f443ff5219b20c9fd59b7614920302aecd) ) ROM_LOAD16_WORD_SWAP( "sz2.05a", 0x100000, 0x80000, CRC(98e8e992) SHA1(41745b63e6b3888081d189b8315ed3b7526b3d20) ) @@ -6844,12 +6917,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6858,7 +6931,7 @@ ROM_END ROM_START( sfz2b ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2b.03b", 0x000000, 0x80000, CRC(1ac12812) SHA1(b948b939021ffe20437b19325fe94daa072c1271) ) ROM_LOAD16_WORD_SWAP( "sz2b.04b", 0x080000, 0x80000, CRC(e4ffaf68) SHA1(e22bb4f92a965108570c2beee1fd533380838d90) ) ROM_LOAD16_WORD_SWAP( "sz2b.05a", 0x100000, 0x80000, CRC(dd224156) SHA1(85d29f2a288430d51c53b88130f255131e5dc601) ) @@ -6876,12 +6949,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6890,7 +6963,7 @@ ROM_END ROM_START( sfz2br1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2b.03", 0x000000, 0x80000, CRC(e6ce530b) SHA1(044c3f6f6c64d18f4f9ce96b67ff86b3c8bcd065) ) ROM_LOAD16_WORD_SWAP( "sz2b.04", 0x080000, 0x80000, CRC(1605a0cb) SHA1(5041c87dbb3ed41fe1cb3e9eade195bc2f7cba2a) ) ROM_LOAD16_WORD_SWAP( "sz2.05", 0x100000, 0x80000, CRC(4b442a7c) SHA1(a0d7d229cff8efb2a253ff06270258b0b4d2761e) ) @@ -6908,12 +6981,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6922,7 +6995,7 @@ ROM_END ROM_START( sfz2h ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2h.03", 0x000000, 0x80000, CRC(bfeddf5b) SHA1(dd4a748ba8674725a399b78e721ff9c7adaaf890) ) ROM_LOAD16_WORD_SWAP( "sz2h.04", 0x080000, 0x80000, CRC(ea5009fb) SHA1(9186c702994f99488d52d4dbccb3823d2b9a6dd9) ) ROM_LOAD16_WORD_SWAP( "sz2.05", 0x100000, 0x80000, CRC(4b442a7c) SHA1(a0d7d229cff8efb2a253ff06270258b0b4d2761e) ) @@ -6940,12 +7013,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6954,7 +7027,7 @@ ROM_END ROM_START( sfz2n ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2n.03", 0x000000, 0x80000, CRC(58924741) SHA1(b077867a6a601b5f87a644ebfe9b8d0c87d0471f) ) ROM_LOAD16_WORD_SWAP( "sz2n.04", 0x080000, 0x80000, CRC(592a17c5) SHA1(7262f9017834e932858e81dadfba9d9feb946530) ) ROM_LOAD16_WORD_SWAP( "sz2.05", 0x100000, 0x80000, CRC(4b442a7c) SHA1(a0d7d229cff8efb2a253ff06270258b0b4d2761e) ) @@ -6972,12 +7045,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -6986,7 +7059,7 @@ ROM_END ROM_START( sfz2al ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "szaa.03", 0x000000, 0x80000, CRC(88e7023e) SHA1(34e74ec54c05d75e5cf207abb6e536fcca233b8b) ) ROM_LOAD16_WORD_SWAP( "szaa.04", 0x080000, 0x80000, CRC(ae8ec36e) SHA1(b2f3de9e33169f6266aaabd5eae6c057ea10dcab) ) ROM_LOAD16_WORD_SWAP( "szaa.05", 0x100000, 0x80000, CRC(f053a55e) SHA1(f98a8af5cd33a543a5596d59381f9adafed38854) ) @@ -7004,12 +7077,12 @@ ROM_LOAD64_WORD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -7018,7 +7091,7 @@ ROM_END ROM_START( sfz2alj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "szaj.03a", 0x000000, 0x80000, CRC(a3802fe3) SHA1(c983a15ed675b22aebfe6ac55890b4e0b5eb8d48) ) ROM_LOAD16_WORD_SWAP( "szaj.04a", 0x080000, 0x80000, CRC(e7ca87c7) SHA1(e44c930b27431dd2b983d93471a440d292e7a8bb) ) ROM_LOAD16_WORD_SWAP( "szaj.05a", 0x100000, 0x80000, CRC(c88ebf88) SHA1(e37cf232fc70b9a3254dea99754e288232f04e25) ) @@ -7036,12 +7109,12 @@ ROM_LOAD64_WORD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -7050,7 +7123,7 @@ ROM_END ROM_START( sfz2alh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "szah.03", 0x000000, 0x80000, CRC(06f93d1d) SHA1(495de176ba55b35270fc05f19edf17a0f249ff0e) ) ROM_LOAD16_WORD_SWAP( "szah.04", 0x080000, 0x80000, CRC(e62ee914) SHA1(def4f27c1b64be5143234f1f402260adae66cdde) ) ROM_LOAD16_WORD_SWAP( "szah.05", 0x100000, 0x80000, CRC(2b7f4b20) SHA1(5511263f5f6e532ee7fe1995f08f16651a1d45a1) ) @@ -7068,12 +7141,12 @@ ROM_LOAD64_WORD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -7082,7 +7155,7 @@ ROM_END ROM_START( sfz2alb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "szab.03", 0x000000, 0x80000, CRC(cb436eca) SHA1(406bea614429f78c0150c2f5042abc8673a6722e) ) ROM_LOAD16_WORD_SWAP( "szab.04", 0x080000, 0x80000, CRC(14534bea) SHA1(8fff2cd9221ef12de9364cc15429b6df6bacc48e) ) ROM_LOAD16_WORD_SWAP( "szab.05", 0x100000, 0x80000, CRC(7fb10658) SHA1(f9eba0271d92d6d29156a7b4dd8b1cdb3dd8aa48) ) @@ -7100,12 +7173,12 @@ ROM_LOAD64_WORD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -7114,7 +7187,7 @@ ROM_END ROM_START( sfa3 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3e.03c", 0x000000, 0x80000, CRC(9762b206) SHA1(fc4561ca990dd11ed2c5203540102078b721db2f) ) ROM_LOAD16_WORD_SWAP( "sz3e.04c", 0x080000, 0x80000, CRC(5ad3f721) SHA1(fec11cc5f63593f0181eb28ae85ad916686793eb) ) ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) ) @@ -7134,12 +7207,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7148,7 +7221,7 @@ ROM_END ROM_START( sfa3u ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3u.03c", 0x000000, 0x80000, CRC(e007da2e) SHA1(d190ac7ca2c27f11b9b4f96860b226bbea0ee403) ) ROM_LOAD16_WORD_SWAP( "sz3u.04c", 0x080000, 0x80000, CRC(5f78f0e7) SHA1(f4df30fd3515fe9f1125f470b96028052c61f57b) ) ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) ) @@ -7168,12 +7241,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7183,7 +7256,7 @@ ROM_START( sfa3ur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3u.03", 0x000000, 0x80000, CRC(b5984a19) SHA1(e225dd1d3a5d1b94adcfc5f720775e9ba321996e) ) ROM_LOAD16_WORD_SWAP( "sz3u.04", 0x080000, 0x80000, CRC(7e8158ba) SHA1(a9984d7c9d02a9ebaf98cfd0dcbcf26e82e904de) ) ROM_LOAD16_WORD_SWAP( "sz3.05", 0x100000, 0x80000, CRC(9b21518a) SHA1(5a928307cb90a98a62e7598cb101fb66d62b85f9) ) @@ -7203,12 +7276,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7217,7 +7290,7 @@ ROM_END ROM_START( sfa3us ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3-usam_03.6a", 0x000000, 0x80000, CRC(14319e29) SHA1(6de0c08f887d334d720d4c8ba7d5745f5282adfb) ) ROM_LOAD16_WORD_SWAP( "sz3-usam_04.7a", 0x080000, 0x80000, CRC(65fbc272) SHA1(d320a3c0dae03ea7c32cd521b99afb0e2d62dfaf) ) ROM_LOAD16_WORD_SWAP( "sz3-usam_05.8a", 0x100000, 0x80000, CRC(e93c47d1) SHA1(18c388e55b852ad46b784e0cf3fd4c72e8bb6850) ) @@ -7237,12 +7310,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3-usam_01.1a", 0x00000, 0x08000, CRC(c180947d) SHA1(829c8cf45029676acde369b890ac1b941981f750) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3-usam_02.2a", 0x28000, 0x20000, CRC(9ebc280f) SHA1(33fa0934c046eaae3c841d5be0bbdf7b190ef5e7) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7251,7 +7324,7 @@ ROM_END ROM_START( sfz3j ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3j.03c", 0x000000, 0x80000, CRC(cadf4a51) SHA1(a0511512f55c0befa4a905ceff8c6f5775cf40ba) ) ROM_LOAD16_WORD_SWAP( "sz3j.04c", 0x080000, 0x80000, CRC(fcb31228) SHA1(093f40083b5a4e4cae433d5856c48014063fe6ad) ) ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) ) @@ -7271,12 +7344,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7285,7 +7358,7 @@ ROM_END ROM_START( sfz3jr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3j.03a", 0x000000, 0x80000, CRC(6ee0beae) SHA1(243436fb64628f70cd130c7029d365ae97f3f42d) ) ROM_LOAD16_WORD_SWAP( "sz3j.04a", 0x080000, 0x80000, CRC(a6e2978d) SHA1(27e350e78aa204670c0ee6c60baddee46a92a584) ) ROM_LOAD16_WORD_SWAP( "sz3.05a", 0x100000, 0x80000, CRC(05964b7d) SHA1(ac9fa2c69c712a01647f0572381d875b1eb90886) ) @@ -7305,12 +7378,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7319,7 +7392,7 @@ ROM_END ROM_START( sfz3jr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3j.03", 0x000000, 0x80000, CRC(f7cb4b13) SHA1(5f86d23cf3725d9440200732405b437545ac8dd7) ) ROM_LOAD16_WORD_SWAP( "sz3j.04", 0x080000, 0x80000, CRC(0846c29d) SHA1(f2e96b4f6e0187c382411276ff3a485cdc2df289) ) ROM_LOAD16_WORD_SWAP( "sz3.05", 0x100000, 0x80000, CRC(9b21518a) SHA1(5a928307cb90a98a62e7598cb101fb66d62b85f9) ) @@ -7339,12 +7412,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7353,7 +7426,7 @@ ROM_END ROM_START( sfz3a ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3a.03d", 0x000000, 0x80000, CRC(d7e140d6) SHA1(7eae4dc61432e1aaf73194377f787093379d53a9) ) ROM_LOAD16_WORD_SWAP( "sz3a.04d", 0x080000, 0x80000, CRC(e06869a2) SHA1(9442f7dda95d20c5eff549bfdd60b89eea5483a9) ) ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) ) @@ -7373,12 +7446,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7387,7 +7460,7 @@ ROM_END ROM_START( sfz3ar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3a.03a", 0x000000, 0x80000, CRC(29c681fd) SHA1(5ee4c4e282789e4cdba5a317c7049e8c0d8b774b) ) ROM_LOAD16_WORD_SWAP( "sz3a.04", 0x080000, 0x80000, CRC(9ddd1484) SHA1(d484b93d1653f522ee33285e58139167b3214902) ) ROM_LOAD16_WORD_SWAP( "sz3.05", 0x100000, 0x80000, CRC(9b21518a) SHA1(5a928307cb90a98a62e7598cb101fb66d62b85f9) ) @@ -7407,12 +7480,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7421,7 +7494,7 @@ ROM_END ROM_START( sfa3h ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3h.03c", 0x000000, 0x80000, CRC(b3b563a3) SHA1(27863508fedeb5d85e78b8d64361f0000d00e0a5) ) ROM_LOAD16_WORD_SWAP( "sz3h.04c", 0x080000, 0x80000, CRC(47891fec) SHA1(c17421785a0f65edebb6abe54ff161ace4aa67e5) ) ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) ) @@ -7441,12 +7514,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7455,7 +7528,7 @@ ROM_END ROM_START( sfa3hr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3h.03", 0x000000, 0x80000, CRC(4b16cb3e) SHA1(2e1f45c9076ce231a545146d475f410397f20e27) ) ROM_LOAD16_WORD_SWAP( "sz3h.04", 0x080000, 0x80000, CRC(88ad2e6a) SHA1(2a1de667ebeffd247ab9ee11687813b3397fc8de) ) ROM_LOAD16_WORD_SWAP( "sz3.05", 0x100000, 0x80000, CRC(9b21518a) SHA1(5a928307cb90a98a62e7598cb101fb66d62b85f9) ) @@ -7475,12 +7548,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7489,7 +7562,7 @@ ROM_END ROM_START( sfa3b ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3b.03", 0x000000, 0x80000, CRC(046c9b4d) SHA1(aa2b19f2d4a9bab6e273635b43da7538025f9d77) ) ROM_LOAD16_WORD_SWAP( "sz3b.04", 0x080000, 0x80000, CRC(da211919) SHA1(bffeca36c9c78168f44e288ba34bb682a1626f8f) ) ROM_LOAD16_WORD_SWAP( "sz3.05", 0x100000, 0x80000, CRC(9b21518a) SHA1(5a928307cb90a98a62e7598cb101fb66d62b85f9) ) @@ -7509,12 +7582,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -7523,7 +7596,7 @@ ROM_END ROM_START( sgemf ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pcfu.03", 0x000000, 0x80000, CRC(ac2e8566) SHA1(5975aae46bded231c0f478f40c7257434ade36b0) ) ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) ) ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) ) @@ -7540,12 +7613,12 @@ ROM_LOAD64_WORD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) ) ROM_LOAD64_WORD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) ) ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) ) @@ -7554,7 +7627,7 @@ ROM_END ROM_START( pfghtj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pcfj.03", 0x000000, 0x80000, CRC(681da43e) SHA1(1bd4b6b395ac7208c0208b254455276719e98c4b) ) ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) ) ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) ) @@ -7571,12 +7644,12 @@ ROM_LOAD64_WORD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) ) ROM_LOAD64_WORD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) ) ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) ) @@ -7585,7 +7658,7 @@ ROM_END ROM_START( sgemfa ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pcfa.03", 0x000000, 0x80000, CRC(e17c089a) SHA1(59529957aeb430df48a88414637e67848fdaaaca) ) ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) ) ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) ) @@ -7602,12 +7675,12 @@ ROM_LOAD64_WORD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) ) ROM_LOAD64_WORD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) ) ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) ) @@ -7616,7 +7689,7 @@ ROM_END ROM_START( sgemfh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pcfh.03", 0x000000, 0x80000, CRC(e9103347) SHA1(7a32a151146a15bf5fb5ed993fee2f616077a58c) ) ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) ) ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) ) @@ -7633,12 +7706,12 @@ ROM_LOAD64_WORD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) ) ROM_LOAD64_WORD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) ) ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) ) @@ -7647,7 +7720,7 @@ ROM_END ROM_START( spf2t ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pzfe.03", 0x000000, 0x80000, CRC(2af51954) SHA1(51f8797918391e772cf3cc27074ed6ca419806bd) ) ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) // marked pzfe.04 but same as pzf.04 @@ -7658,12 +7731,12 @@ ROM_LOAD64_WORD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) ) ROM_LOAD64_WORD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) @@ -7672,7 +7745,7 @@ ROM_END ROM_START( spf2tu ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pzfu.03a", 0x000000, 0x80000, CRC(346e62ef) SHA1(9db5ea0aac2d459be957f8b6e2e0d18421587d4d) ) ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) @@ -7683,12 +7756,12 @@ ROM_LOAD64_WORD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) ) ROM_LOAD64_WORD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) @@ -7698,7 +7771,7 @@ ROM_START( spf2xj ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pzfj.03a", 0x000000, 0x80000, CRC(2070554a) SHA1(fa818e6bd2e11667345d3d8f2397b60802ef72f9) ) ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) @@ -7709,12 +7782,12 @@ ROM_LOAD64_WORD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) ) ROM_LOAD64_WORD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) @@ -7723,7 +7796,7 @@ ROM_END ROM_START( spf2ta ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pzfa.03", 0x000000, 0x80000, CRC(3cecfa78) SHA1(c315531de87f7dc579f744e84ad2dbf068e61f46) ) ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) @@ -7734,12 +7807,12 @@ ROM_LOAD64_WORD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) ) ROM_LOAD64_WORD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) @@ -7748,7 +7821,7 @@ ROM_END ROM_START( spf2th ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pzfh.03", 0x000000, 0x80000, CRC(20510f2d) SHA1(dcdfc0f6b849499732b76811edb682fea758f530) ) ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) @@ -7759,12 +7832,12 @@ ROM_LOAD64_WORD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) ) ROM_LOAD64_WORD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) @@ -7773,7 +7846,7 @@ ROM_END ROM_START( ssf2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfe-03b", 0x000000, 0x80000, CRC(af654792) SHA1(a8e84154a639c036413f1423aaf2312a5affa55a) ) ROM_LOAD16_WORD_SWAP( "ssfe.04", 0x080000, 0x80000, CRC(b082aa67) SHA1(ca26b4bb1947cb30eaf6b61f606b859d18da4c4c) ) ROM_LOAD16_WORD_SWAP( "ssfe.05", 0x100000, 0x80000, CRC(02b9c137) SHA1(ba624441e1b4bfb67c71f6a116fe43539eaa4a15) ) @@ -7790,11 +7863,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf-01a", 0x00000, 0x08000, CRC(71fcdfc9) SHA1(c816f47ce10b8e85504638ada9117ec26ddaab77) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -7809,7 +7882,7 @@ ROM_END ROM_START( ssf2r1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfe.03", 0x000000, 0x80000, CRC(a597745d) SHA1(5b12e09c14f0ea93b668b97ca2d27a686c85f641) ) ROM_LOAD16_WORD_SWAP( "ssfe.04", 0x080000, 0x80000, CRC(b082aa67) SHA1(ca26b4bb1947cb30eaf6b61f606b859d18da4c4c) ) ROM_LOAD16_WORD_SWAP( "ssfe.05", 0x100000, 0x80000, CRC(02b9c137) SHA1(ba624441e1b4bfb67c71f6a116fe43539eaa4a15) ) @@ -7826,11 +7899,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -7845,7 +7918,7 @@ ROM_END ROM_START( ssf2u ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfu.03a", 0x000000, 0x80000, CRC(72f29c33) SHA1(c24769ca9568d4f6847979929b2a059e57dae6b3) ) ROM_LOAD16_WORD_SWAP( "ssfu.04a", 0x080000, 0x80000, CRC(935cea44) SHA1(1360254debf179919def1485b5758f529c94f65a) ) ROM_LOAD16_WORD_SWAP( "ssfu.05", 0x100000, 0x80000, CRC(a0acb28a) SHA1(55c0c0ea9b9e6ef8d7c12f888cf42b6418bbf82e) ) @@ -7862,11 +7935,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -7881,7 +7954,7 @@ ROM_END ROM_START( ssf2a ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfa.03b", 0x000000, 0x80000, CRC(83a059bf) SHA1(3279a792fb884f856cd5bac59eaae7d9e3be286c) ) ROM_LOAD16_WORD_SWAP( "ssfa.04a", 0x080000, 0x80000, CRC(5d873642) SHA1(74e3541ed586454a8b56e331bc9ffdb8d69f7983) ) ROM_LOAD16_WORD_SWAP( "ssfa.05", 0x100000, 0x80000, CRC(f8fb4de2) SHA1(e3cde329405d4d59b7c234a30a7c178afb22deef) ) @@ -7898,11 +7971,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -7917,7 +7990,7 @@ ROM_END ROM_START( ssf2ar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfa.03a", 0x000000, 0x80000, CRC(d2a3c520) SHA1(514131f0d8a7c6b5bf68630250e4b1b5983d490d) ) ROM_LOAD16_WORD_SWAP( "ssfa.04a", 0x080000, 0x80000, CRC(5d873642) SHA1(74e3541ed586454a8b56e331bc9ffdb8d69f7983) ) ROM_LOAD16_WORD_SWAP( "ssfa.05", 0x100000, 0x80000, CRC(f8fb4de2) SHA1(e3cde329405d4d59b7c234a30a7c178afb22deef) ) @@ -7934,11 +8007,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -7953,7 +8026,7 @@ ROM_END ROM_START( ssf2j ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfj.03b", 0x000000, 0x80000, CRC(5c2e356d) SHA1(379f1e508778adda4a4087ec52c89b2253265f82) ) ROM_LOAD16_WORD_SWAP( "ssfj.04a", 0x080000, 0x80000, CRC(013bd55c) SHA1(2482f823a980d45baeea8009dadae7f996bcdb5d) ) ROM_LOAD16_WORD_SWAP( "ssfj.05", 0x100000, 0x80000, CRC(0918d19a) SHA1(c23be61dd193058eb1391d39fbc22fbcf0640ee0) ) @@ -7970,11 +8043,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -7989,7 +8062,7 @@ ROM_END ROM_START( ssf2jr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfj.03a", 0x000000, 0x80000, CRC(0bbf1304) SHA1(be93b559ebfcc0fd72cde787c5ea4f50eac52bbf) ) ROM_LOAD16_WORD_SWAP( "ssfj.04a", 0x080000, 0x80000, CRC(013bd55c) SHA1(2482f823a980d45baeea8009dadae7f996bcdb5d) ) ROM_LOAD16_WORD_SWAP( "ssfj.05", 0x100000, 0x80000, CRC(0918d19a) SHA1(c23be61dd193058eb1391d39fbc22fbcf0640ee0) ) @@ -8006,11 +8079,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8025,7 +8098,7 @@ ROM_END ROM_START( ssf2jr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfj.03", 0x000000, 0x80000, CRC(7eb0efed) SHA1(c389301cf26cc72ef10c20a7d37223622d05e9ca) ) ROM_LOAD16_WORD_SWAP( "ssfj.04", 0x080000, 0x80000, CRC(d7322164) SHA1(b83c8523d152384a3eb9f459685b11c6e77cd6d4) ) ROM_LOAD16_WORD_SWAP( "ssfj.05", 0x100000, 0x80000, CRC(0918d19a) SHA1(c23be61dd193058eb1391d39fbc22fbcf0640ee0) ) @@ -8042,11 +8115,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8061,7 +8134,7 @@ ROM_END ROM_START( ssf2h ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfh.03", 0x000000, 0x80000, CRC(b086b355) SHA1(c0ee70fa44081ebf09a72910ce1b733b019aaf71) ) ROM_LOAD16_WORD_SWAP( "ssfh.04", 0x080000, 0x80000, CRC(1e629b29) SHA1(1c1043610cae9ea6cb3139a1c14d53a6fcd91d02) ) ROM_LOAD16_WORD_SWAP( "ssfh.05", 0x100000, 0x80000, CRC(b5997e10) SHA1(fe9502a5dfc1dfba80d0246056eae5f3b47897a7) ) @@ -8078,11 +8151,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8097,7 +8170,7 @@ ROM_END ROM_START( ssf2tb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfe.03tc", 0x000000, 0x80000, CRC(496a8409) SHA1(3101689e86ab78c544524e31057478fce336ddaa) ) ROM_LOAD16_WORD_SWAP( "ssfe.04tc", 0x080000, 0x80000, CRC(4b45c18b) SHA1(9c7ecb6fee70e317d1005bcadadf59cf11f58050) ) ROM_LOAD16_WORD_SWAP( "ssfe.05t", 0x100000, 0x80000, CRC(6a9c6444) SHA1(76ba626136268a48b139f6aacd6eeded94d1354d) ) @@ -8114,11 +8187,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8133,7 +8206,7 @@ ROM_END ROM_START( ssf2tbr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfe.03t", 0x000000, 0x80000, CRC(1e018e34) SHA1(b9ca6655f0fc67a4f047df7ec944c9b4b85ab8ef) ) ROM_LOAD16_WORD_SWAP( "ssfe.04t", 0x080000, 0x80000, CRC(ac92efaf) SHA1(340b2b6a60bf3195c0d42e214dcec49f8cc35f35) ) ROM_LOAD16_WORD_SWAP( "ssfe.05t", 0x100000, 0x80000, CRC(6a9c6444) SHA1(76ba626136268a48b139f6aacd6eeded94d1354d) ) @@ -8150,11 +8223,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8169,7 +8242,7 @@ ROM_END ROM_START( ssf2tbu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfu.03t", 0x000000, 0x80000, CRC(4635b35e) SHA1(e4438812c7424d28f1caef9c2e19bc68aba81c43) ) ROM_LOAD16_WORD_SWAP( "ssfu.04t", 0x080000, 0x80000, CRC(2630b3dd) SHA1(c5f84fb2e93d3a4dbce6ec33cf6dae3513957837) ) ROM_LOAD16_WORD_SWAP( "ssfu.05t", 0x100000, 0x80000, CRC(c0293c97) SHA1(2f322e59364b9c030a3a163dc5b38778e4c7ba49) ) @@ -8186,11 +8259,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8205,7 +8278,7 @@ ROM_END ROM_START( ssf2tbj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssftj.03b", 0x000000, 0x80000, CRC(e78a3433) SHA1(c5a1f209e467f8f5a791b2d2f184e71650c8c9df) ) ROM_LOAD16_WORD_SWAP( "ssftj.04t", 0x080000, 0x80000, CRC(b4dc1906) SHA1(b29497c8562d004c6f0393eb61ba80978f4b3aff) ) ROM_LOAD16_WORD_SWAP( "ssftj.05", 0x100000, 0x80000, CRC(a7e35fbc) SHA1(c59737f4dbd9ccde30b0a1e2f151a78f162ceafc) ) @@ -8222,11 +8295,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8241,7 +8314,7 @@ ROM_END ROM_START( ssf2tbj1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfj.03t", 0x000000, 0x80000, CRC(980d4450) SHA1(1a7a7000dc11473d06e2bb552c7a506eb0019235) ) ROM_LOAD16_WORD_SWAP( "ssfj.04t", 0x080000, 0x80000, CRC(b4dc1906) SHA1(b29497c8562d004c6f0393eb61ba80978f4b3aff) ) ROM_LOAD16_WORD_SWAP( "ssfj.05t", 0x100000, 0x80000, CRC(a7e35fbc) SHA1(c59737f4dbd9ccde30b0a1e2f151a78f162ceafc) ) @@ -8258,11 +8331,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8277,7 +8350,7 @@ ROM_END ROM_START( ssf2tba ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfa.03tb", 0x000000, 0x80000, CRC(8de631d2) SHA1(e9249413149c6799faaece09226cdd37906b1a63) ) ROM_LOAD16_WORD_SWAP( "ssfa.04ta", 0x080000, 0x80000, CRC(abef3042) SHA1(71062765bd1337780fb347d277ebeca5d7f91c05) ) ROM_LOAD16_WORD_SWAP( "ssfa.05t", 0x100000, 0x80000, CRC(edfa018f) SHA1(61f80f3a1674c900df34095601db92d98bb28096) ) @@ -8294,11 +8367,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf-01a", 0x00000, 0x08000, CRC(71fcdfc9) SHA1(c816f47ce10b8e85504638ada9117ec26ddaab77) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8313,7 +8386,7 @@ ROM_END ROM_START( ssf2tbh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfh.03tb", 0x000000, 0x80000, CRC(6db7d28b) SHA1(b37f3287c51564ee0fdab499787b37166d1eb76d) ) ROM_LOAD16_WORD_SWAP( "ssfh.04t", 0x080000, 0x80000, CRC(0fe7d895) SHA1(e9603eebc711641684b15d97e1a4e4dcaf5b92ae) ) ROM_LOAD16_WORD_SWAP( "ssfh.05t", 0x100000, 0x80000, CRC(41be4f2d) SHA1(e90061bf00cac2050e90a89bc5d1e8b0e4df35e2) ) @@ -8330,11 +8403,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -8349,7 +8422,7 @@ ROM_END ROM_START( ssf2t ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxe.03c", 0x000000, 0x80000, CRC(2fa1f396) SHA1(2aa58309811f34901554b84396556630a22ce9bc) ) ROM_LOAD16_WORD_SWAP( "sfxe.04a", 0x080000, 0x80000, CRC(d0bc29c6) SHA1(d9f89bcd79cba26db2100a00dd7bd8ee6ecb75f3) ) ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) ) @@ -8372,12 +8445,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -8386,7 +8459,7 @@ ROM_END ROM_START( ssf2tu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxu.03e", 0x000000, 0x80000, CRC(d6ff689e) SHA1(bea1a8aafbbbe9cb0895561a57dead1579361a8e) ) ROM_LOAD16_WORD_SWAP( "sfxu.04a", 0x080000, 0x80000, CRC(532b5ffd) SHA1(769a8a9d4e04e291ce7427b89e537bba2258ca82) ) ROM_LOAD16_WORD_SWAP( "sfxu.05", 0x100000, 0x80000, CRC(ffa3c6de) SHA1(7cce55a3e07b5ba2e2e37e4c66a52678a1b19a63) ) @@ -8409,12 +8482,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -8423,7 +8496,7 @@ ROM_END ROM_START( ssf2tur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxu.03c", 0x000000, 0x80000, CRC(86e4a335) SHA1(04db3fd519973aeb7b32be62871e0fb4605946eb) ) ROM_LOAD16_WORD_SWAP( "sfxu.04a", 0x080000, 0x80000, CRC(532b5ffd) SHA1(769a8a9d4e04e291ce7427b89e537bba2258ca82) ) ROM_LOAD16_WORD_SWAP( "sfxu.05", 0x100000, 0x80000, CRC(ffa3c6de) SHA1(7cce55a3e07b5ba2e2e37e4c66a52678a1b19a63) ) @@ -8446,12 +8519,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -8460,7 +8533,7 @@ ROM_END ROM_START( ssf2ta ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxa.03c", 0x000000, 0x80000, CRC(04b9ff34) SHA1(69feb2c9c03634e6f964dae310d7b72b4c76140d) ) ROM_LOAD16_WORD_SWAP( "sfxa.04a", 0x080000, 0x80000, CRC(16ea5f7a) SHA1(08404c6a79b9a36eceb06e0d3e1d747a21fac186) ) ROM_LOAD16_WORD_SWAP( "sfxa.05", 0x100000, 0x80000, CRC(53d61f0c) SHA1(b30e666d0dae7b738a76a27d1d68fbb9a630c27c) ) @@ -8483,12 +8556,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -8497,7 +8570,7 @@ ROM_END ROM_START( ssf2th ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxh.03c", 0x000000, 0x80000, CRC(fbe80dfe) SHA1(b9c5f0a0f6ae7839e348c870ac87b16dbb665bd9) ) ROM_LOAD16_WORD_SWAP( "sfxh.04a", 0x080000, 0x80000, CRC(ef9dd4b1) SHA1(3c5d76e6ae7db91f9287f341c32e3b7a75e256f6) ) ROM_LOAD16_WORD_SWAP( "sfxh.05", 0x100000, 0x80000, CRC(09e56ecc) SHA1(a333a67994ca543826466a17342cfe4be6da0024) ) @@ -8520,12 +8593,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -8534,7 +8607,7 @@ ROM_END ROM_START( ssf2xj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxj.03d", 0x000000, 0x80000, CRC(50b52b37) SHA1(dc0330fcbffbc0077faa20d34a28d6a49b04639e) ) ROM_LOAD16_WORD_SWAP( "sfxj.04a", 0x080000, 0x80000, CRC(af7767b4) SHA1(61e7364408bf07c01634913c112b6245acce48ab) ) ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) ) @@ -8557,12 +8630,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -8572,7 +8645,7 @@ ROM_START( ssf2xjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxj.03c", 0x000000, 0x80000, CRC(a7417b79) SHA1(189c3ed546bb2844e9fa9fe7e9aacef728bc8939) ) ROM_LOAD16_WORD_SWAP( "sfxj.04a", 0x080000, 0x80000, CRC(af7767b4) SHA1(61e7364408bf07c01634913c112b6245acce48ab) ) ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) ) @@ -8595,12 +8668,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -8610,7 +8683,7 @@ // interesting version, yellow case (rental?), shows OP instead of AM on startup, uses a different (unique) key to the usual Japan set ROM_START( ssf2xjr1r ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxo.03c", 0x000000, 0x80000, CRC(2ba33dc6) SHA1(ab31046c1604eae30e55eb0e03804c98765d578e) ) ROM_LOAD16_WORD_SWAP( "sfxo.04a", 0x080000, 0x80000, CRC(ba663dd7) SHA1(46baf0a48e4fd807098aa48e34625964b279a223) ) ROM_LOAD16_WORD_SWAP( "sfxo.05", 0x100000, 0x80000, CRC(1321625c) SHA1(af5bce813bc2d8d406c7cb30ba5cb61b17b74efd) ) @@ -8653,12 +8726,12 @@ ROM_LOAD64_WORD( "sfx.95", 0xc00006, 0x080000, CRC(86c97869) SHA1(179117e7c887685e322f97a21461eb05de44d1ee) ) ROM_LOAD64_WORD( "sfx.96", 0xe00006, 0x080000, CRC(1c0e1989) SHA1(fac63bae9129a656c12e5665dc0eaddc9017821f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ // identical content, different board layout + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples // identical content, different board layout ROM_LOAD16_WORD_SWAP( "ssf.51a", 0x000000, 0x080000, CRC(9eda6954) SHA1(28e007e8dcea127ffd82fe243a4729fa765347d6) ) ROM_LOAD16_WORD_SWAP( "ssf.52a", 0x080000, 0x080000, CRC(355f6589) SHA1(86f7243bc8ed22760658779d0f8810b1e1f9cdd6) ) ROM_LOAD16_WORD_SWAP( "ssf.53a", 0x100000, 0x080000, CRC(d5d08a05) SHA1(78549077a105384c7b1b609dc2e9e115dea4a220) ) @@ -8673,7 +8746,7 @@ ROM_END ROM_START( vhunt2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vh2j.03a", 0x000000, 0x80000, CRC(9ae8f186) SHA1(f4e3a1b6ae823737d3b18561469f206921b48587) ) ROM_LOAD16_WORD_SWAP( "vh2j.04a", 0x080000, 0x80000, CRC(e2fabf53) SHA1(78c53f8e984b00245486b751515248879df77437) ) ROM_LOAD16_WORD_SWAP( "vh2j.05", 0x100000, 0x80000, CRC(de34f624) SHA1(60bbbd1765e76839b01c38765da2368c5188ec61) ) @@ -8693,12 +8766,12 @@ ROM_LOAD64_WORD( "vh2.18m", 0x1000004, 0x400000, CRC(778dc4f6) SHA1(8d0cd1c387b4b6ac7f92bb2e5a25983856328cdc) ) ROM_LOAD64_WORD( "vh2.20m", 0x1000006, 0x400000, CRC(605d9d1d) SHA1(99bc27557741527ca678d7b6307164bc04ebedc6) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vh2.01", 0x00000, 0x08000, CRC(67b9f779) SHA1(3994c65f888004b56ea9f478b1feaa81e306347e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vh2.02", 0x28000, 0x20000, CRC(aaf15fcb) SHA1(6f61daa162c835165a8aabaf1d0ea8816fbfbd40) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vh2.11m", 0x000000, 0x400000, CRC(38922efd) SHA1(8cfb36bdce3a524d0a81fec12ca0cba82222fa30) ) ROM_LOAD16_WORD_SWAP( "vh2.12m", 0x400000, 0x400000, CRC(6e2430af) SHA1(b475faf943bec4171ba0130f287e1948743ca273) ) @@ -8707,7 +8780,7 @@ ROM_END ROM_START( vhunt2r1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vh2j.03", 0x000000, 0x80000, CRC(1a5feb13) SHA1(a6dd6af2601e2da14032bcbf17e9f79c7a4ba2db) ) ROM_LOAD16_WORD_SWAP( "vh2j.04", 0x080000, 0x80000, CRC(434611a5) SHA1(ee093017405db6c16bfee3fe446bae659c6accc2) ) ROM_LOAD16_WORD_SWAP( "vh2j.05", 0x100000, 0x80000, CRC(de34f624) SHA1(60bbbd1765e76839b01c38765da2368c5188ec61) ) @@ -8727,12 +8800,12 @@ ROM_LOAD64_WORD( "vh2.18m", 0x1000004, 0x400000, CRC(778dc4f6) SHA1(8d0cd1c387b4b6ac7f92bb2e5a25983856328cdc) ) ROM_LOAD64_WORD( "vh2.20m", 0x1000006, 0x400000, CRC(605d9d1d) SHA1(99bc27557741527ca678d7b6307164bc04ebedc6) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vh2.01", 0x00000, 0x08000, CRC(67b9f779) SHA1(3994c65f888004b56ea9f478b1feaa81e306347e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vh2.02", 0x28000, 0x20000, CRC(aaf15fcb) SHA1(6f61daa162c835165a8aabaf1d0ea8816fbfbd40) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vh2.11m", 0x000000, 0x400000, CRC(38922efd) SHA1(8cfb36bdce3a524d0a81fec12ca0cba82222fa30) ) ROM_LOAD16_WORD_SWAP( "vh2.12m", 0x400000, 0x400000, CRC(6e2430af) SHA1(b475faf943bec4171ba0130f287e1948743ca273) ) @@ -8741,7 +8814,7 @@ ROM_END ROM_START( vsav ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vm3e.03d", 0x000000, 0x80000, CRC(f5962a8c) SHA1(e37d48b78186c7c097894d6c17faf7c9333f61eb) ) ROM_LOAD16_WORD_SWAP( "vm3e.04d", 0x080000, 0x80000, CRC(21b40ea2) SHA1(6790fa3e618850f518cbd470f44434a71be6f29f) ) ROM_LOAD16_WORD_SWAP( "vm3.05a", 0x100000, 0x80000, CRC(4118e00f) SHA1(94ce8abc5ff547667f4c6022d84d0ed4cd062d7e) ) @@ -8761,12 +8834,12 @@ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) ) ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) ) ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) ) @@ -8775,7 +8848,7 @@ ROM_END ROM_START( vsavu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vm3u.03d", 0x000000, 0x80000, CRC(1f295274) SHA1(c926d8af4fccee5104507ee0196b05dcd419ee20) ) ROM_LOAD16_WORD_SWAP( "vm3u.04d", 0x080000, 0x80000, CRC(c46adf81) SHA1(85ffb9b3282874d6ce9318a88429666e98f67cea) ) ROM_LOAD16_WORD_SWAP( "vm3.05a", 0x100000, 0x80000, CRC(4118e00f) SHA1(94ce8abc5ff547667f4c6022d84d0ed4cd062d7e) ) @@ -8795,12 +8868,12 @@ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) ) ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) ) ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) ) @@ -8809,7 +8882,7 @@ ROM_END ROM_START( vsavj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vm3j.03d", 0x000000, 0x80000, CRC(2a2e74a4) SHA1(e9e7bce3c2ad0c9eebcbcd5139979d1fa19187ad) ) ROM_LOAD16_WORD_SWAP( "vm3j.04d", 0x080000, 0x80000, CRC(1c2427bc) SHA1(9047ac0ccd875d91a8ceafdf1ccf9d21c4c71644) ) ROM_LOAD16_WORD_SWAP( "vm3j.05a", 0x100000, 0x80000, CRC(95ce88d5) SHA1(ba5e64c2551d97a71d2f4d7a78663aede4b722e8) ) @@ -8829,12 +8902,12 @@ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) ) ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) ) ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) ) @@ -8843,7 +8916,7 @@ ROM_END ROM_START( vsava ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vm3a.03d", 0x000000, 0x80000, CRC(44c1198f) SHA1(35714b2f6ebeafea93be6467b5b22ea41b9f3826) ) ROM_LOAD16_WORD_SWAP( "vm3a.04d", 0x080000, 0x80000, CRC(2218b781) SHA1(5dd28cc1b70b2953fbd4d5fd14abeeb3b83b193e) ) ROM_LOAD16_WORD_SWAP( "vm3.05a", 0x100000, 0x80000, CRC(4118e00f) SHA1(94ce8abc5ff547667f4c6022d84d0ed4cd062d7e) ) @@ -8863,12 +8936,12 @@ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) ) ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) ) ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) ) @@ -8877,7 +8950,7 @@ ROM_END ROM_START( vsavh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vm3h.03a", 0x000000, 0x80000, CRC(7cc62df8) SHA1(716ad31f0e253868a5b1b89943ddc980f130d5b7) ) ROM_LOAD16_WORD_SWAP( "vm3h.04d", 0x080000, 0x80000, CRC(d716f3b5) SHA1(7900440071eafa4d1559b1fa8faefaa0588a65d5) ) ROM_LOAD16_WORD_SWAP( "vm3.05a", 0x100000, 0x80000, CRC(4118e00f) SHA1(94ce8abc5ff547667f4c6022d84d0ed4cd062d7e) ) @@ -8897,12 +8970,12 @@ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) ) ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) ) ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) ) @@ -8911,7 +8984,7 @@ ROM_END ROM_START( vsavb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vm3b.03d", 0x000000, 0x080000, CRC(22ffba4b) SHA1(2c214c43115fc0978d5ebb814a19b8ee23faab3f) ) ROM_LOAD16_WORD_SWAP( "vm3b.04d", 0x080000, 0x080000, CRC(88624909) SHA1(052c8f49ac3bc3d231cfea38c5bad89c3380834e) ) ROM_LOAD16_WORD_SWAP( "vm3.05a", 0x100000, 0x080000, CRC(4118e00f) SHA1(94ce8abc5ff547667f4c6022d84d0ed4cd062d7e) ) @@ -8931,12 +9004,12 @@ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) ) ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) ) ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) ) @@ -8945,7 +9018,7 @@ ROM_END ROM_START( vsav2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vs2j.03", 0x000000, 0x80000, CRC(89fd86b4) SHA1(a52f40618d7f12f1df5862ad8e15fea60bef22a2) ) ROM_LOAD16_WORD_SWAP( "vs2j.04", 0x080000, 0x80000, CRC(107c091b) SHA1(bf5c2e4339e1a66b3c819900cc9b723a537adf6b) ) ROM_LOAD16_WORD_SWAP( "vs2j.05", 0x100000, 0x80000, CRC(61979638) SHA1(4d5625a9a06926c1a42c8f6e3a4c943f17750ec2) ) @@ -8965,12 +9038,12 @@ ROM_LOAD64_WORD( "vs2.18m", 0x1000004, 0x400000, CRC(778dc4f6) SHA1(8d0cd1c387b4b6ac7f92bb2e5a25983856328cdc) ) ROM_LOAD64_WORD( "vs2.20m", 0x1000006, 0x400000, CRC(605d9d1d) SHA1(99bc27557741527ca678d7b6307164bc04ebedc6) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vs2.01", 0x00000, 0x08000, CRC(35190139) SHA1(07f8e53ea398461de5dcda9814dde7c09faf9f65) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vs2.02", 0x28000, 0x20000, CRC(c32dba09) SHA1(1fe337ff334fab79847f9677ba0e168e93daa1c8) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vs2.11m", 0x000000, 0x400000, CRC(d67e47b7) SHA1(15a3f6779eccb10551ed94edf7e6e406a79b3de7) ) ROM_LOAD16_WORD_SWAP( "vs2.12m", 0x400000, 0x400000, CRC(6d020a14) SHA1(e98f862fac1e357c90949768bb2646263d9981a0) ) @@ -8979,7 +9052,7 @@ ROM_END ROM_START( xmcota ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmne.03f", 0x000000, 0x80000, CRC(5a726d13) SHA1(046d068f1f3c3d2a0b73df5b1f69a6afdde8d030) ) ROM_LOAD16_WORD_SWAP( "xmne.04f", 0x080000, 0x80000, CRC(06a83f3a) SHA1(2f30de88fccb104bfd038310483a63de7bee4b94) ) ROM_LOAD16_WORD_SWAP( "xmne.05b", 0x100000, 0x80000, CRC(87b0ed0f) SHA1(f4d78fdd9fcf864e909d9a2bb351b49a5f8ec7a0) ) @@ -8999,12 +9072,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9013,7 +9086,7 @@ ROM_END ROM_START( xmcotar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmne.03e", 0x000000, 0x80000, CRC(a9a09b09) SHA1(e316f443d393139894592dbb1b676f3a2385ed14) ) ROM_LOAD16_WORD_SWAP( "xmne.04e", 0x080000, 0x80000, CRC(52fa2106) SHA1(6904eef0fb11e44046e160a1c0ff6ea48337f630) ) ROM_LOAD16_WORD_SWAP( "xmn.05a", 0x100000, 0x80000, CRC(ac0d7759) SHA1(650d4474b13f16af7910a0f721fcda2ddb2414fd) ) @@ -9033,12 +9106,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9047,7 +9120,7 @@ ROM_END ROM_START( xmcotau ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnu.03e", 0x000000, 0x80000, CRC(0bafeb0e) SHA1(170c819bd7ffafefb9b2a587509bdf2c0415474b) ) ROM_LOAD16_WORD_SWAP( "xmnu.04e", 0x080000, 0x80000, CRC(c29bdae3) SHA1(c605a4fd90336459c7b24cd7b2b243eef10f6407) ) ROM_LOAD16_WORD_SWAP( "xmn.05a", 0x100000, 0x80000, CRC(ac0d7759) SHA1(650d4474b13f16af7910a0f721fcda2ddb2414fd) ) @@ -9067,12 +9140,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9081,7 +9154,7 @@ ROM_END ROM_START( xmcotah ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnh.03f", 0x000000, 0x80000, CRC(e4b85a90) SHA1(1eaf94ce42438eea45cd5c813f2859abf258dd3a) ) ROM_LOAD16_WORD_SWAP( "xmnh.04f", 0x080000, 0x80000, CRC(7dfe1406) SHA1(4ddc0a8947d78ce587220f8188c8a8f00c7372c4) ) ROM_LOAD16_WORD_SWAP( "xmnh.05b", 0x100000, 0x80000, CRC(87b0ed0f) SHA1(f4d78fdd9fcf864e909d9a2bb351b49a5f8ec7a0) ) @@ -9101,12 +9174,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9115,7 +9188,7 @@ ROM_END ROM_START( xmcotahr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnh.03d", 0x000000, 0x80000, CRC(63b0a84f) SHA1(4a0d604ff11e68313a0711702803390cb0d2f234) ) ROM_LOAD16_WORD_SWAP( "xmnh.04d", 0x080000, 0x80000, CRC(b1b9b727) SHA1(b04ae3b7aab88cbb1a55068343ff9a9806d331a4) ) ROM_LOAD16_WORD_SWAP( "xmn.05a", 0x100000, 0x80000, CRC(ac0d7759) SHA1(650d4474b13f16af7910a0f721fcda2ddb2414fd) ) @@ -9135,12 +9208,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9149,7 +9222,7 @@ ROM_END ROM_START( xmcotaj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnj.03e", 0x000000, 0x80000, CRC(0df29f5f) SHA1(83993ea90e7a602c3db137d08c008dcd9bee3055) ) ROM_LOAD16_WORD_SWAP( "xmnj.04e", 0x080000, 0x80000, CRC(4a65833b) SHA1(cd899674ba6448fb3841247d3f434e82b19c5399) ) ROM_LOAD16_WORD_SWAP( "xmn.05a", 0x100000, 0x80000, CRC(ac0d7759) SHA1(650d4474b13f16af7910a0f721fcda2ddb2414fd) ) @@ -9169,12 +9242,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9183,7 +9256,7 @@ ROM_END ROM_START( xmcotaj1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnj.03d", 0x000000, 0x80000, CRC(79086d62) SHA1(d99a48bd40593aa9c1ff1fcbfc40cfe3bc882fc5) ) ROM_LOAD16_WORD_SWAP( "xmnj.04d", 0x080000, 0x80000, CRC(38eed613) SHA1(86ecb58bf03adda705a39a9779862fe2c85cadad) ) ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) ) @@ -9203,12 +9276,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9217,7 +9290,7 @@ ROM_END ROM_START( xmcotaj2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnj.03b", 0x000000, 0x80000, CRC(c8175fb3) SHA1(ea25bd165f8794324a1e07719312798cf9742924) ) ROM_LOAD16_WORD_SWAP( "xmnj.04b", 0x080000, 0x80000, CRC(54b3fba3) SHA1(47eaff5d36a45e4196f87ed3d02e54d5407e7962) ) ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) ) @@ -9237,12 +9310,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9251,7 +9324,7 @@ ROM_END ROM_START( xmcotaj3 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnj.03a", 0x000000, 0x80000, CRC(00761611) SHA1(e780dbe1d21a0d5b6981f0395942c9fa59688113) ) ROM_LOAD16_WORD_SWAP( "xmnj.04a", 0x080000, 0x80000, CRC(614d3f60) SHA1(2272ae243557562a0bc85d2cd2b37dd876f6902c) ) ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) ) @@ -9271,12 +9344,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9285,7 +9358,7 @@ ROM_END ROM_START( xmcotajr ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmno.03a", 0x000000, 0x80000, CRC(7ab19acf) SHA1(ca02e58f1d713ee74c6c1515772da0ca26f9deb9) ) ROM_LOAD16_WORD_SWAP( "xmno.04a", 0x080000, 0x80000, CRC(7615dd21) SHA1(f393c985ae1c7f378f9184fd2c8530b7494ba06d) ) ROM_LOAD16_WORD_SWAP( "xmno.05a", 0x100000, 0x80000, CRC(0303d672) SHA1(4816b5ac6a9bf78665112d54a8f3569d590721b2) ) @@ -9305,12 +9378,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01", 0x00000, 0x08000, CRC(7178336e) SHA1(d94cddcc144336fa3ee2778b3531badcc4646e9d) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02", 0x28000, 0x20000, CRC(0ec58501) SHA1(3af500049f901897086bd35b83ca83f4bbc8b3f6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9319,7 +9392,7 @@ ROM_END ROM_START( xmcotaa ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmna.03e", 0x000000, 0x80000, CRC(f1ade6e7) SHA1(b212b6107a7ab01db3a60ccc7e1376fdba6f2e6a) ) ROM_LOAD16_WORD_SWAP( "xmna.04e", 0x080000, 0x80000, CRC(b5a8843d) SHA1(e45381725a7356760dc71e027f3b7059e5919621) ) ROM_LOAD16_WORD_SWAP( "xmn.05a", 0x100000, 0x80000, CRC(ac0d7759) SHA1(650d4474b13f16af7910a0f721fcda2ddb2414fd) ) @@ -9339,12 +9412,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9353,7 +9426,7 @@ ROM_END ROM_START( xmcotaar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmna.03b", 0x000000, 0x80000, CRC(2280d03f) SHA1(554753ff7abd5b66d2ffede64e4c459f3df42209) ) ROM_LOAD16_WORD_SWAP( "xmna.04b", 0x080000, 0x80000, CRC(ebbbf11e) SHA1(7f6c4555330923641310fae2beda1047a1c711b4) ) ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) ) @@ -9373,12 +9446,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9387,7 +9460,7 @@ ROM_END ROM_START( xmcotaar2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmna.03a", 0x000000, 0x80000, CRC(7df8b27e) SHA1(2f0ce6b10857e04ddaf7a76edf126282c53511b3) ) ROM_LOAD16_WORD_SWAP( "xmna.04a", 0x080000, 0x80000, CRC(b44e30a7) SHA1(27b0a8b06aa11673dd145717c6286eb27186cf79) ) ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) ) @@ -9407,12 +9480,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9421,7 +9494,7 @@ ROM_END ROM_START( xmcotab ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmnb.03c", 0x000000, 0x80000, CRC(ab48bcb0) SHA1(856168752cdd4d248eb43b2794e989a3409dc8b0) ) ROM_LOAD16_WORD_SWAP( "xmnb.04c", 0x080000, 0x80000, CRC(8d8fcbb1) SHA1(f98712374006d44e6121abc65ba2c78c5ebf6de5) ) ROM_LOAD16_WORD_SWAP( "xmne.05b", 0x100000, 0x80000, CRC(87b0ed0f) SHA1(f4d78fdd9fcf864e909d9a2bb351b49a5f8ec7a0) ) @@ -9441,12 +9514,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -9455,7 +9528,7 @@ ROM_END ROM_START( xmvsf ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvse.03f", 0x000000, 0x80000, CRC(db06413f) SHA1(c6d8aa1e43fc541e5b4e938258f27ab9ee30ca33) ) ROM_LOAD16_WORD_SWAP( "xvse.04f", 0x080000, 0x80000, CRC(ef015aef) SHA1(d3504cb8c38f720b1f4528157266db60c8c6c075) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9474,12 +9547,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9488,7 +9561,7 @@ ROM_END ROM_START( xmvsfr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvse.03d", 0x000000, 0x80000, CRC(5ae5bd3b) SHA1(f687f018008cef24f86f53373c3f5547741a4c5b) ) ROM_LOAD16_WORD_SWAP( "xvse.04d", 0x080000, 0x80000, CRC(5eb9c02e) SHA1(25a392913213b98ce1bbd463bf5e5e10729bde0c) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9507,12 +9580,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9521,7 +9594,7 @@ ROM_END ROM_START( xmvsfu ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsu.03k", 0x000000, 0x80000, CRC(8739ef61) SHA1(2eb5912d3026bed0f720d28e1bf3a7ceb5b80803) ) ROM_LOAD16_WORD_SWAP( "xvsu.04k", 0x080000, 0x80000, CRC(e11d35c1) SHA1(d838199b2767d9f02fa0f103c5d587a4c78c0d21) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9540,12 +9613,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9554,7 +9627,7 @@ ROM_END ROM_START( xmvsfur1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsu.03i", 0x000000, 0x80000, CRC(5481155a) SHA1(799a2488684cbead33206498d13261b79624a46e) ) ROM_LOAD16_WORD_SWAP( "xvsu.04i", 0x080000, 0x80000, CRC(1e236388) SHA1(329c08103840fadbc4176785c4b24013a7a2b1bc) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9573,12 +9646,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9588,7 +9661,7 @@ ROM_START( xmvsfur2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsu.03d", 0x000000, 0x80000, CRC(bd8b152f) SHA1(6b029b7314ce2516c67e5a71508f86aa01d30ab8) ) ROM_LOAD16_WORD_SWAP( "xvsu.04d", 0x080000, 0x80000, CRC(7c7d1da3) SHA1(96dd1f83c8f8053177b91ad31c4c051b28dd0208) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9607,12 +9680,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9622,7 +9695,7 @@ ROM_START( xmvsfj ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsj.03k", 0x000000, 0x80000, CRC(2a167526) SHA1(779d1be2149b1feb2c5f710ed70b162e11bd0de4) ) ROM_LOAD16_WORD_SWAP( "xvsj.04k", 0x080000, 0x80000, CRC(d993436b) SHA1(b3279f4fe3728700adf086bf27133c5a74c6302c) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9641,12 +9714,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9655,7 +9728,7 @@ ROM_END ROM_START( xmvsfjr1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsj.03i", 0x000000, 0x80000, CRC(ef24da96) SHA1(8f4a2a626a059bcf36048770153a9ffc85bba304) ) ROM_LOAD16_WORD_SWAP( "xvsj.04i", 0x080000, 0x80000, CRC(70a59b35) SHA1(786d9b243373024735848f785503c6aa883b1c2f) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9674,12 +9747,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9688,7 +9761,7 @@ ROM_END ROM_START( xmvsfjr2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsj.03d", 0x000000, 0x80000, CRC(beb81de9) SHA1(fce0d43b193a521d026be6508a91be6e2d03f480) ) ROM_LOAD16_WORD_SWAP( "xvsj.04d", 0x080000, 0x80000, CRC(23d11271) SHA1(45e4ac52001f0c2b6cd6e07413b5e503c2b90329) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9707,12 +9780,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9721,7 +9794,7 @@ ROM_END ROM_START( xmvsfjr3 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsj.03c", 0x000000, 0x80000, CRC(180656a1) SHA1(aec2dfcfe8bcab03a48f749977e6f08fc21558bc) ) ROM_LOAD16_WORD_SWAP( "xvsj.04c", 0x080000, 0x80000, CRC(5832811c) SHA1(e900b343241310d4dd1b45f42573e1e90f2dcbda) ) ROM_LOAD16_WORD_SWAP( "xvs.05", 0x100000, 0x80000, CRC(030e0e1e) SHA1(164e3023bb1965768448e1bf6c45ff9e0ac964c7) ) @@ -9740,12 +9813,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9754,7 +9827,7 @@ ROM_END ROM_START( xmvsfa ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsa.03k", 0x000000, 0x80000, CRC(d0cca7a8) SHA1(70e0dd0725a52208e9e71fed82fba1d851a6bb42) ) ROM_LOAD16_WORD_SWAP( "xvsa.04k", 0x080000, 0x80000, CRC(8c8e76fd) SHA1(ac1c8200951131bea0bda417b6bc2f77130b5fdd) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9773,12 +9846,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9787,7 +9860,7 @@ ROM_END ROM_START( xmvsfar1 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsa.03", 0x000000, 0x80000, CRC(520054df) SHA1(98fd30aeb4cc9120607434f258a1c00204d75d63) ) /* Missing revision letter */ ROM_LOAD16_WORD_SWAP( "xvsa.04", 0x080000, 0x80000, CRC(13086e55) SHA1(0d9a4b2a4278a98423155702c66df3f2e1e8ef56) ) /* Missing revision letter */ ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9806,12 +9879,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9820,7 +9893,7 @@ ROM_END ROM_START( xmvsfar2 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsa.03e", 0x000000, 0x80000, CRC(9bdde21c) SHA1(56c295d9e908a1496d6a08ff1cd10c87de1d4ff5) ) ROM_LOAD16_WORD_SWAP( "xvsa.04e", 0x080000, 0x80000, CRC(33300edf) SHA1(8ec4203c1bc23a6284c47ee873b151da9f072edc) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9839,12 +9912,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9853,7 +9926,7 @@ ROM_END ROM_START( xmvsfar3 ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsa.03d", 0x000000, 0x80000, CRC(2b164fd7) SHA1(90eefa309202978c914897f30b2e6caf23fcd9f3) ) /* Came in a Blue cart on Euro MB, maybe Rent??? */ ROM_LOAD16_WORD_SWAP( "xvsa.04d", 0x080000, 0x80000, CRC(2d32f039) SHA1(515bdb1ad99106a5b8aa3a94be4fc4ceb31a6711) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9872,12 +9945,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvsa.02", 0x28000, 0x20000, CRC(19272e4c) SHA1(8a4a85cbdfb867a2014af2405cc8214541250b50) ) /* Different sound code than other sets */ - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9886,7 +9959,7 @@ ROM_END ROM_START( xmvsfh ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsh.03a", 0x000000, 0x80000, CRC(d4fffb04) SHA1(989ed975cfc1318998c2da26f450949bdac41d0c) ) ROM_LOAD16_WORD_SWAP( "xvsh.04a", 0x080000, 0x80000, CRC(1b4ea638) SHA1(7523be63c1eef153e47fc8e1c10eb99ab40b94a0) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9905,12 +9978,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9919,7 +9992,7 @@ ROM_END ROM_START( xmvsfb ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsb.03h", 0x000000, 0x80000, CRC(05baccca) SHA1(7124e49e2180f77674ae014257a816cd4409d613) ) ROM_LOAD16_WORD_SWAP( "xvsb.04h", 0x080000, 0x80000, CRC(e350c755) SHA1(5e615fd4b9954410c05b34151fae70d910340a6c) ) ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) ) @@ -9938,12 +10011,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -9960,10 +10033,10 @@ void cps2_state::init_digital_volume() { - m_cps2digitalvolumelevel = 39; /* maximum */ + m_cps2digitalvolumelevel = 39; // maximum m_cps2disabledigitalvolume = 0; - /* create a timer to update our volume state from the fake switches - read it every 6 frames or so to enable some granularity */ + // create a timer to update our volume state from the fake switches - read it every 6 frames or so to enable some granularity m_digital_volume_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps2_state::cps2_update_digital_volume), this)); m_digital_volume_timer->adjust(attotime::from_msec(100), 0, attotime::from_msec(100)); } @@ -9972,21 +10045,21 @@ void cps2_state::init_cps2() { - /* Decrypt the game - see machine/cps2crypt.cpp */ + // Decrypt the game - see machine/cps2crypt.cpp init_cps2crypt(); init_cps2nc(); } void cps2_state::init_cps2nc() { - /* Initialize some video elements */ + // Initialize some video elements init_cps2_video(); m_cps2networkpresent = 0; init_digital_volume(); - m_maincpu->set_clock_scale(0.7375f); /* RAM access waitstates etc. aren't emulated - slow the CPU to compensate */ + m_maincpu->set_clock_scale(0.7375f); // RAM access waitstates etc. aren't emulated - slow the CPU to compensate } @@ -10018,7 +10091,7 @@ { init_cps2(); - /* the single board games don't have a digital volume switch */ + // The single board games don't have a digital volume switch m_cps2disabledigitalvolume = 1; m_digital_volume_timer->adjust(attotime::never, 0, attotime::never); } @@ -10033,7 +10106,7 @@ m_gigaman2_dummyqsound_ram[offset] = data; } -/* rearrange the graphics data into the normal order */ +// rearrange the graphics data into the normal order void cps2_state::gigaman2_gfx_reorder() { int i; @@ -10063,7 +10136,7 @@ memcpy(m_decrypted_opcodes, memregion("maincpu")->base()+0x200000, 0x200000); - /* no digital volume switches on this? */ + // No digital volume switches on this? m_digital_volume_timer->adjust(attotime::never, 0, attotime::never); } @@ -10088,282 +10161,284 @@ * *************************************/ -GAME( 1993, ssf2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 931005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2r1, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 930911)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2u, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (USA 930911)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2a, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 931005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2ar1, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 930914)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2j, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 931005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2jr1, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930911)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2jr2, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930910)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2h, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Hispanic 930911)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2tb, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 931119)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // works, but not in tournament mode -GAME( 1993, ssf2tbr1, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 930911)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // works, but not in tournament mode -GAME( 1993, ssf2tbu, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (USA 930911)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // works, but not in tournament mode -GAME( 1993, ssf2tbj, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Japan 931005)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // works, but not in tournament mode -GAME( 1993, ssf2tbj1, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Japan 930911)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // works, but not in tournament mode -GAME( 1993, ssf2tba, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Asia 931005)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // works, but not in tournament mode -GAME( 1993, ssf2tbh, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Hispanic 931005)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // works, but not in tournament mode -GAME( 1993, ecofghtr, 0, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (World 931203)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ecofghtru, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (USA 940215)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ecofghtru1, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (USA 931203)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, uecology, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Ultimate Ecology (Japan 931203)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ecofghtra, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (Asia 931203)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ecofghtrh, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (Hispanic 931203)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtod, 0, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940412)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodr1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940113)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodu, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940125)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodur1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940113)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodj, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940412)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodjr1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940125)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodjr2, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940113)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtoda, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940412)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodar1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940113)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodh, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940412)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodhr1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940125)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ddtodhr2, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940113)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2t, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (World 940223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2ta, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (Asia 940223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2th, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (Hispanic 940223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2tu, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940323)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2tur1, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2xj, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940311)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2xjr1, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 931005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2r1, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 930911)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2u, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (USA 930911)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2a, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 931005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2ar1, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 930914)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2j, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 931005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2jr1, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930911)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2jr2, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930910)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2h, ssf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Hispanic 930911)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2tb, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 931119)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // Works, but not in tournament mode +GAME( 1993, ssf2tbr1, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 930911)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // Works, but not in tournament mode +GAME( 1993, ssf2tbu, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (USA 930911)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // Works, but not in tournament mode +GAME( 1993, ssf2tbj, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Japan 931005)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // Works, but not in tournament mode +GAME( 1993, ssf2tbj1, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Japan 930911)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // Works, but not in tournament mode +GAME( 1993, ssf2tba, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Asia 931005)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // Works, but not in tournament mode +GAME( 1993, ssf2tbh, ssf2, cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Hispanic 931005)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // Works, but not in tournament mode +GAME( 1993, ecofghtr, 0, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (World 931203)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ecofghtru, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (USA 940215)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ecofghtru1, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (USA 931203)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, uecology, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Ultimate Ecology (Japan 931203)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ecofghtra, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (Asia 931203)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ecofghtrh, ecofghtr, cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "Capcom", "Eco Fighters (Hispanic 931203)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtod, 0, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940412)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodr1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940113)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodu, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940125)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodur1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940113)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodj, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940412)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodjr1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940125)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodjr2, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940113)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtoda, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940412)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodar1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940113)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodh, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940412)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodhr1, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940125)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodhr2, ddtod, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940113)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2t, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (World 940223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2ta, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (Asia 940223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2th, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (Hispanic 940223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2tu, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940323)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2tur1, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2xj, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940311)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2xjr1, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940223)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, ssf2xjr1r, ssf2t, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, avsp, 0, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Euro 940520)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, avspu, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (USA 940520)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, avspj, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Japan 940520)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, avspa, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Asia 940520)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, avsph, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Hispanic 940520)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dstlk, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Euro 940705)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dstlku, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940818)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dstlkur1, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940705)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dstlka, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Asia 940705)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dstlkh, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Hispanic 940818)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, vampj, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705)", MACHINE_SUPPORTS_SAVE ) // partial update set? Only rom 04 is "B" revision -GAME( 1994, vampja, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705 alt)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, vampjr1, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940630)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ringdest, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Euro 940902)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ringdesta, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Asia 940831)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ringdesth, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Hispanic 940902)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, smbomb, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940831)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, smbombr1, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940808)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, armwar, 0, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Euro 941024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, armwarr1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Euro 941011)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, armwaru, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (USA 941024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, armwaru1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (USA 940920)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, pgear, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 941024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, pgearr1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 940916)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, armwara, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Asia 941024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, armwarar1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Asia 940920)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcota, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950331)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotar1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950105)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotau, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (USA 950105)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotab, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Brazil 950331)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotah, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950331)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotahr1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950105)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotaj, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 950105)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotaj1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941222)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotaj2, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941219)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotaj3, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941217)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotajr, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941208 rent version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotaa, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 950105)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotaar1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 941219)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotaar2, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 941217)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nwarr, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Euro 950316)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nwarru, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (USA 950406)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nwarrh, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Hispanic 950403)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nwarrb, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Brazil 950403)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nwarra, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Asia 950302)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, vhuntj, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950316)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, vhuntjr1s, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, vhuntjr1, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, vhuntjr2, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950302)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cybots, 0, cps2, cybots, cps2_state, init_cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Euro 950424)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cybotsu, cybots, cps2, cybots, cps2_state, init_cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (USA 950424)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cybotsj, cybots, cps2, cybots, cps2_state, init_cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Japan 950420)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfa, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950727)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfar1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950718)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfar2, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950627)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfar3, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950605)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfau, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (USA 950627)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfza, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950627)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzar1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950605)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzj, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950727)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzjr1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950627)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzjr2, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950605)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzh, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950718)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzhr1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950627)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzb, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 951109)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfzbr1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 950727)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mmancp2u, megaman, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 951006, SAMPLE Version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mmancp2ur1, megaman, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 950926, SAMPLE Version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rmancp2j, megaman, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Rockman: The Power Battle (CPS2, Japan 950922)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, msh, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Euro 951024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mshu, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (USA 951024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mshj, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951117)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mshjr1, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, msha, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Asia 951024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mshh, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Hispanic 951117)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mshb, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Brazil 951117)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mshbr1, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Brazil 951024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xx, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Euro 960104)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxu, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (USA 951207)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxa, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 960104)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxar1, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 951207)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxj, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 960104, yellow case)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxjr1, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951225)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxjr2, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951207)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxh, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Hispanic 951218)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxb, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Brazil 951218)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsom, 0, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960619)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomr1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomr2, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960209)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomr3, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960208)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomu, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960619)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomur1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960209)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomj, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960619)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomjr1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960206)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomjr2, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsoma, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 960619)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomar1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 960208)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomh, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Hispanic 960223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomb, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Brazil 960223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfa2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (Euro 960229)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfa2u, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960430)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfa2ur1, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960306)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2j, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960430)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2jr1, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960227)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2a, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Asia 960227)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2b, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960531)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2br1, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960304)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2h, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Hispanic 960304)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2n, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Oceania 960229)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2al, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Asia 960826)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2alj, sfz2al, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Japan 960805)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2alh, sfz2al, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Hispanic 960813)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2alb, sfz2al, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Brazil 960813)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spf2t, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Euro 960529)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spf2tu, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (USA 960620)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spf2xj, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II X (Japan 960531)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spf2ta, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Asia 960529)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spf2th, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Hispanic 960531)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, megaman2, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (USA 960708)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, megaman2a, megaman2, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Asia 960708)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, rockman2j, megaman2, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Rockman 2: The Power Fighters (Japan 960708)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, megaman2h, megaman2, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Hispanic 960712)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, qndream, 0, cps2, qndream, cps2_state, init_cps2, ROT0, "Capcom", "Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 960826)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsf, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 961004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfr1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 960910)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfu, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961023)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfur1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfur2, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 960910)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfj, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 961023)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfjr1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 961004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfjr2, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960910)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfjr3, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960909)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfa, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961023)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfar1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfar2, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960919)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfar3, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960910)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfh, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Hispanic 961004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfb, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Brazil 961023)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, batcir, 0, cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "Capcom", "Battle Circuit (Euro 970319)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, batcira, batcir, cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "Capcom", "Battle Circuit (Asia 970319)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, batcirj, batcir, cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "Capcom", "Battle Circuit (Japan 970319)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsav, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Euro 970519)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsavu, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (USA 970519)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsavj, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Japan 970519)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsava, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Asia 970519)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsavh, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Hispanic 970519)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsavb, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Brazil 970519)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsf, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Euro 970625)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfu, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970827)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfu1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970625)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfj, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970707)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfj1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970702)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfj2, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970625)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfh, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Hispanic 970625)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfa, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970625)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfa1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970620)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfb, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970827)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfb1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970625)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, csclub, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 971017)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, csclub1, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 970722)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, cscluba, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Asia 970722)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, csclubj, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, csclubjy, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722, yellow case)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, csclubh, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Hispanic 970722)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, sgemf, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Super Gem Fighter Mini Mix (USA 970904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, pfghtj, sgemf, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Pocket Fighter (Japan 970904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, sgemfa, sgemf, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Asia 970904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, sgemfh, sgemf, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Hispanic 970904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vhunt2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vhunt2r1, vhunt2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsav2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior 2: The Lord of Vampire (Japan 970913)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvsc, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscr1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980112)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscu, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscur1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 971222)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscj, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscjr1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980112)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscjsing, mvsc, cps2, cps2_2p6b, cps2_state, init_singbrd, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123) (Single PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvsca, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980123)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscar1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980112)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvsch, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Hispanic 980123)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscb, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Brazil 980123)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Euro 980904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3u, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3ur1, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980629)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3us, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980616, SAMPLE Version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3h, sfa3, cps2, cps2_2p6bt, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3hr1, sfa3, cps2, cps2_2p6bt, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980629)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3b, sfa3, cps2, cps2_2p6bt, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Brazil 980629)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfz3j, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfz3jr1, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980727)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfz3jr2, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980629)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfz3a, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfz3ar1, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980701)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, jyangoku, 0, cps2, cps2_1p2b, cps2_state, init_cps2, ROT0, "Capcom", "Jyangokushi: Haoh no Saihai (Japan 990527)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, hsf2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (USA 040202)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, hsf2a, hsf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, hsf2j, hsf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Japan 040202)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, hsf2j1, hsf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Japan 031222)", MACHINE_SUPPORTS_SAVE ) - -/* Games released on CPS-2 hardware by Takumi */ - -GAME( 1999, gigawing, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (USA 990222)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gigawingj, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Japan 990223)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gigawinga, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Asia 990222)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gigawingh, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Hispanic 990222)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gigawingb, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Brazil 990222)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mmatrix, 0, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Mars Matrix: Hyper Solid Shooting (USA 000412)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, avsp, 0, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Euro 940520)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, avspu, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (USA 940520)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, avspj, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Japan 940520)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, avspa, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Asia 940520)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, avsph, avsp, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Alien vs. Predator (Hispanic 940520)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, dstlk, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Euro 940705)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, dstlku, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940818)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, dstlkur1, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940705)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, dstlka, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Asia 940705)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, dstlkh, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Hispanic 940818)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, vampj, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705)", MACHINE_SUPPORTS_SAVE ) // Partial update set? Only rom 04 is "B" revision +GAME( 1994, vampja, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705 alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, vampjr1, dstlk, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940630)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ringdest, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Euro 940902)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ringdesta, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Asia 940831)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ringdesth, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Hispanic 940902)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ringdestb, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Brazil 940902)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, smbomb, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940831)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, smbombr1, ringdest, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940808)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, armwar, 0, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Euro 941024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, armwarr1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Euro 941011)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, armwaru, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (USA 941024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, armwaru1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (USA 940920)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pgear, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 941024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pgearr1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 940916)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, armwara, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Asia 941024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, armwarar1, armwar, cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "Capcom", "Armored Warriors (Asia 940920)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcota, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950331)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotar1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950105)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotau, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (USA 950105)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotab, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Brazil 950331)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotah, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950331)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotahr1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950105)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotaj, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 950105)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotaj1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotaj2, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941219)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotaj3, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941217)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotajr, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941208 rent version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotaa, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 950105)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotaar1, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 941219)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotaar2, xmcota, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 941217)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nwarr, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Euro 950316)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nwarru, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (USA 950406)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nwarrh, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Hispanic 950403)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nwarrb, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Brazil 950403)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nwarra, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Asia 950302)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, vhuntj, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950316)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, vhuntjr1s, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, vhuntjr1, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, vhuntjr2, nwarr, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950302)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cybots, 0, cps2, cybots, cps2_state, init_cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Euro 950424)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cybotsu, cybots, cps2, cybots, cps2_state, init_cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (USA 950424)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cybotsj, cybots, cps2, cybots, cps2_state, init_cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Japan 950420)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfa, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950727)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfar1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950718)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfar2, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950627)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfar3, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950605)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfau, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (USA 950627)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfza, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950627)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzar1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950605)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzj, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950727)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzjr1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950627)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzjr2, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950605)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzh, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950718)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzhr1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950627)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzb, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 951109)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfzbr1, sfa, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 950727)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mmancp2u, megaman, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 951006, SAMPLE Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mmancp2ur1, megaman, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 950926, SAMPLE Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rmancp2j, megaman, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Rockman: The Power Battle (CPS2, Japan 950922)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, msh, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Euro 951024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mshu, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (USA 951024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mshj, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951117)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mshjr1, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, msha, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Asia 951024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mshh, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Hispanic 951117)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mshb, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Brazil 951117)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mshbr1, msh, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes (Brazil 951024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xx, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Euro 960104)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxu, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (USA 951207)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxa, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 960104)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxar1, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 951207)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxj, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 960104, yellow case)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxjr1, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951225)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxjr2, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951207)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxh, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Hispanic 951218)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxb, 19xx, cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Brazil 951218)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsom, 0, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960619)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomr1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomr2, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960209)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomr3, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960208)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomu, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960619)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomur1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960209)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomj, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960619)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomjr1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960206)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomjr2, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 96022)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsoma, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 96061)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomar1, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 960208)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomh, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Hispanic 960223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomb, ddsom, cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Brazil 960223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfa2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (Euro 960229)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfa2u, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960430)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfa2ur1, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960306)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2j, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960430)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2jr1, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960227)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2a, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Asia 960227)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2b, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960531)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2br1, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960304)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2h, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Hispanic 960304)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2n, sfa2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Oceania 960229)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2al, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Asia 960826)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2alj, sfz2al, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Japan 960805)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2alh, sfz2al, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Hispanic 960813)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2alb, sfz2al, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Brazil 960813)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2t, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Euro 960529)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2tu, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (USA 960620)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2xj, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II X (Japan 960531)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2ta, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Asia 960529)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2th, spf2t, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Hispanic 960531)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, megaman2, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (USA 960708)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, megaman2a, megaman2, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Asia 960708)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rockman2j, megaman2, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Rockman 2: The Power Fighters (Japan 960708)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, megaman2h, megaman2, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Hispanic 960712)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, qndream, 0, cps2, qndream, cps2_state, init_cps2, ROT0, "Capcom", "Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 96086)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsf, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 961004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfr1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 960910)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfu, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961023)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfur1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfur2, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 960910)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfj, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 961023)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfjr1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 961004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfjr2, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960910)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfjr3, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960909)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfa, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961023)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfar1, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfar2, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960919)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfar3, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960910)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfh, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Hispanic 961004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfb, xmvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Brazil 961023)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, batcir, 0, cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "Capcom", "Battle Circuit (Euro 970319)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, batcira, batcir, cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "Capcom", "Battle Circuit (Asia 970319)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, batcirj, batcir, cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "Capcom", "Battle Circuit (Japan 970319)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsav, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Euro 970519)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsavu, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (USA 970519)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsavj, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Japan 970519)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsava, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Asia 970519)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsavh, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Hispanic 970519)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsavb, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Brazil 970519)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsf, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Euro 970625)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfu, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970827)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfu1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970625)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfj, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970707)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfj1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970702)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfj2, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970625)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfh, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Hispanic 970625)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfa, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970625)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfa1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970620)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfb, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970827)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfb1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970625)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, csclub, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 971017)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, csclub1, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 970722)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, cscluba, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Asia 970722)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, csclubj, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, csclubjy, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722, yellow case)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, csclubh, csclub, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Capcom Sports Club (Hispanic 970722)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sgemf, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Super Gem Fighter Mini Mix (USA 970904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, pfghtj, sgemf, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Pocket Fighter (Japan 970904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sgemfa, sgemf, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Asia 970904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sgemfh, sgemf, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Hispanic 970904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vhunt2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vhunt2r1, vhunt2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsav2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior 2: The Lord of Vampire (Japan 970913)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvsc, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscr1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980112)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscu, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscur1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 971222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscj, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscjr1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980112)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscjsing, mvsc, cps2, cps2_2p6b, cps2_state, init_singbrd, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123) (Single PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvsca, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980123)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscar1, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980112)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvsch, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Hispanic 980123)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscb, mvsc, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Brazil 980123)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Euro 980904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3u, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3ur1, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980629)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3us, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980616, SAMPLE Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3h, sfa3, cps2, cps2_2p6bt, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3hr1, sfa3, cps2, cps2_2p6bt, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980629)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3b, sfa3, cps2, cps2_2p6bt, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Brazil 980629)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfz3j, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfz3jr1, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980727)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfz3jr2, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980629)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfz3a, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfz3ar1, sfa3, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980701)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, jyangoku, 0, cps2, cps2_1p2b, cps2_state, init_cps2, ROT0, "Capcom", "Jyangokushi: Haoh no Saihai (Japan 990527)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, hsf2, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (USA 040202)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, hsf2a, hsf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, hsf2j, hsf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Japan 040202)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, hsf2j1, hsf2, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Japan 031222)", MACHINE_SUPPORTS_SAVE ) + +// Games released on CPS-2 hardware by Takumi + +GAME( 1999, gigawing, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (USA 990222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gigawingj, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Japan 990223)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gigawinga, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Asia 990222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gigawingh, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Hispanic 990222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gigawingb, gigawing, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Brazil 990222)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mmatrix, 0, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Mars Matrix: Hyper Solid Shooting (USA 000412)", MACHINE_SUPPORTS_SAVE ) GAME( 2000, mmatrixj, mmatrix, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Takumi (Capcom license)", "Mars Matrix: Hyper Solid Shooting (Japan 000412)", MACHINE_SUPPORTS_SAVE ) -/* Games released on CPS-2 hardware by Mitchell */ +// Games released on CPS-2 hardware by Mitchell -GAME( 2000, mpang, 0, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 001010)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mpangr1, mpang, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 000925)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mpangu, mpang, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (USA 001010)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mpangj, mpang, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Japan 001011)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, pzloop2, 0, cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Euro 010302)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, pzloop2j, pzloop2, cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010226)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, pzloop2jr1, pzloop2, cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010205)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mpang, 0, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 001010)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mpangr1, mpang, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 000925)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mpangu, mpang, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (USA 001010)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mpangj, mpang, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Japan 001011)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mpanga, mpang, cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Asia 001010)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pzloop2, 0, cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Euro 010302)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pzloop2j, pzloop2, cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010226)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pzloop2jr1, pzloop2, cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010205)", MACHINE_SUPPORTS_SAVE ) GAME( 2001, choko, 0, cps2, choko, cps2_state, init_cps2, ROT0, "Mitchell (Capcom license)", "Janpai Puzzle Choukou (Japan 010820)", MACHINE_SUPPORTS_SAVE ) -/* Games released on CPS-2 hardware by Eighting/Raizing */ +// Games released on CPS-2 hardware by Eighting/Raizing -GAME( 2000, dimahoo, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (Euro 000121)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, dimahoou, dimahoo, cps2, cps2_2p3b, cps2_state, init_cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (USA 000121)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dimahoo, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (Euro 000121)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dimahoou, dimahoo, cps2, cps2_2p3b, cps2_state, init_cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (USA 000121)", MACHINE_SUPPORTS_SAVE ) GAME( 2000, gmahou, dimahoo, cps2, cps2_2p3b, cps2_state, init_cps2, ROT270, "Eighting / Raizing (Capcom license)", "Great Mahou Daisakusen (Japan 000121)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, 1944, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (USA 000620)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, 1944j, 1944, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (Japan 000620)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, 1944, 0, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (USA 000620)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, 1944j, 1944, cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (Japan 000620)", MACHINE_SUPPORTS_SAVE ) -/* Games released on CPS-2 hardware by Cave */ +// Games released on CPS-2 hardware by Cave -GAME( 2001, progear, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Cave (Capcom license)", "Progear (USA 010117)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, progear, 0, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Cave (Capcom license)", "Progear (USA 010117)", MACHINE_SUPPORTS_SAVE ) GAME( 2001, progearj, progear, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Cave (Capcom license)", "Progear no Arashi (Japan 010117)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, progeara, progear, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Cave (Capcom license)", "Progear (Asia 010117)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, progeara, progear, cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "Cave (Capcom license)", "Progear (Asia 010117)", MACHINE_SUPPORTS_SAVE ) /* ------------------------ @@ -10398,7 +10473,7 @@ ROM_START( 1944d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "nffud.03", 0x000000, 0x80000, CRC(28e8aae4) SHA1(b2ae11bddbf156cbf38eafdc705067bff9256752) ) ROM_LOAD16_WORD_SWAP( "nff.04", 0x080000, 0x80000, CRC(dba1c66e) SHA1(4764e77d4da5d19d9acded27df1e1bcba06b0fcf) ) ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) ) @@ -10416,11 +10491,11 @@ ROM_LOAD64_WORD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) ) ROM_LOAD64_WORD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) ) ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) ) @@ -10429,7 +10504,7 @@ ROM_END ROM_START( 19xxd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "19xud.03", 0x000000, 0x80000, CRC(f81b60e5) SHA1(6f246ed7779a3a75e7ad7fa8c913c901ea423828) ) ROM_LOAD16_WORD_SWAP( "19xud.04", 0x080000, 0x80000, CRC(cc44638c) SHA1(a11df36b98bb59cf64c47bab29721e80d64054ff) ) ROM_LOAD16_WORD_SWAP( "19xud.05", 0x100000, 0x80000, CRC(33a168de) SHA1(11e1977cda6269f1a7d6a0f53b73e3094649bd2f) ) @@ -10449,11 +10524,11 @@ ROM_LOAD64_WORD( "19x.18m", 0x0800004, 0x200000, CRC(2213e798) SHA1(b1a9d5547f3f6c3ab59e8b761d224793c6ca33cb) ) ROM_LOAD64_WORD( "19x.20m", 0x0800006, 0x200000, CRC(ab9d5b96) SHA1(52b755da401fde90c13181b02ab33e5e4b2aa1f7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "19x.01", 0x00000, 0x08000, CRC(ef55195e) SHA1(813f465f2d392f6abeadbf661c54cf51171fa006) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) ) ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) ) @@ -10462,7 +10537,7 @@ ROM_END ROM_START( sfz2ad ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2ad.03a", 0x000000, 0x80000, CRC(017f8fab) SHA1(5546d935c569464c29999914c697c2a171659f42) ) ROM_LOAD16_WORD_SWAP( "sz2ad.04a", 0x080000, 0x80000, CRC(f50e5ea2) SHA1(ec75aa69bd18cdfac4f5783d9c6c3691bb4914c9) ) ROM_LOAD16_WORD_SWAP( "sz2.05a", 0x100000, 0x80000, CRC(98e8e992) SHA1(41745b63e6b3888081d189b8315ed3b7526b3d20) ) @@ -10480,12 +10555,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -10494,7 +10569,7 @@ ROM_END ROM_START( avspd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "avped.03d", 0x000000, 0x80000, CRC(66aa8aad) SHA1(eb1928393d0dd4cc1a96c00324508f83f36a7622) ) ROM_LOAD16_WORD_SWAP( "avped.04d", 0x080000, 0x80000, CRC(579306c2) SHA1(cabee3fdb624e681013a5a57d2a37339b96518fb) ) ROM_LOAD16_WORD_SWAP( "avp.05d", 0x100000, 0x80000, CRC(fbfb5d7a) SHA1(5549bc9d780753bc9c10fba82588e5c3d4a2acb2) ) @@ -10513,11 +10588,11 @@ ROM_LOAD64_WORD( "avp.18m", 0x0800004, 0x200000, CRC(34fb7232) SHA1(8b1f15bfa758a61e6ad519af24ca774edc70d194) ) ROM_LOAD64_WORD( "avp.20m", 0x0800006, 0x200000, CRC(f90baa21) SHA1(20a900819a9d321316e3dfd241210725d7191ecf) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "avp.01", 0x00000, 0x08000, CRC(2d3b4220) SHA1(2b2d04d4282550fa9f6e1ad8528f20d1f2ac02eb) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "avp.11m", 0x000000, 0x200000, CRC(83499817) SHA1(e65b0ebd61ddc748842a9d4d92404b5305307623) ) ROM_LOAD16_WORD_SWAP( "avp.12m", 0x200000, 0x200000, CRC(f4110d49) SHA1(f27538776cc1ba8213f19f98728ed8c02508d3ac) ) @@ -10526,7 +10601,7 @@ ROM_END ROM_START( batcird ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "btced.03", 0x000000, 0x80000, CRC(0737db6d) SHA1(e7f02f568a8013d5abf32e0e7dc120c004adb6c9) ) ROM_LOAD16_WORD_SWAP( "btced.04", 0x080000, 0x80000, CRC(ef1a8823) SHA1(9326e031b937af18b98dc3f236caaac632dac66d) ) ROM_LOAD16_WORD_SWAP( "btced.05", 0x100000, 0x80000, CRC(20bdbb14) SHA1(fe3a202741ca657b2b67e89050788b67d709a36d) ) @@ -10544,12 +10619,12 @@ ROM_LOAD64_WORD( "btc.17m", 0x000004, 0x400000, CRC(b33f4112) SHA1(e501fd921c8bcede69946b029e05d422714c1040) ) ROM_LOAD64_WORD( "btc.19m", 0x000006, 0x400000, CRC(a6fcdb7e) SHA1(7a28d5d7aa036d23d97fad17d0cdb8210dc8153a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "btc.01", 0x00000, 0x08000, CRC(1e194310) SHA1(3b29de0aca9dbca59d6b50fb2509e2a913c6b0af) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "btc.02", 0x28000, 0x20000, CRC(01aeb8e6) SHA1(50a5d1cce0caf7c5143d4904431e8f41e2a57464) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "btc.11m", 0x000000, 0x200000, CRC(c27f2229) SHA1(df2459493af40937b6656a16fad43ff51bed2204) ) ROM_LOAD16_WORD_SWAP( "btc.12m", 0x200000, 0x200000, CRC(418a2e33) SHA1(0642ddff2ab9255f154419da24ba644ed63f34ab) ) @@ -10558,7 +10633,7 @@ ROM_END ROM_START( ddtodd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "daded.03c", 0x000000, 0x80000, CRC(843330f4) SHA1(3f77876ac5d61b595c22697724a16034b16954af) ) ROM_LOAD16_WORD_SWAP( "daded.04c", 0x080000, 0x80000, CRC(306f14fc) SHA1(b684ee72acc3087ada20b2d13202366c3cff1014) ) ROM_LOAD16_WORD_SWAP( "daded.05c", 0x100000, 0x80000, CRC(8c6b8328) SHA1(ab5d2c608bd3cdb298a9743d819616bf2df02ddd) ) @@ -10578,11 +10653,11 @@ ROM_LOAD64_WORD( "dad.18m", 0x800004, 0x100000, CRC(cef393ef) SHA1(830b33c86cc24776d17ad65fa89a3b16c40446a1) ) ROM_LOAD64_WORD( "dad.20m", 0x800006, 0x100000, CRC(8953fe9e) SHA1(f4795beb006335d13e3934aa9760e775eb0bb950) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dad.01", 0x00000, 0x08000, CRC(3f5e2424) SHA1(4aa744576bc6752c43a90a27a816ebd90076b248) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) ) ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) ) @@ -10591,7 +10666,7 @@ ROM_END ROM_START( ddsomud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "dd2ud.03g", 0x000000, 0x80000, CRC(816f695a) SHA1(5e590d36c04ceac1b48954c0554a733b4c3a5277) ) ROM_LOAD16_WORD_SWAP( "dd2ud.04g", 0x080000, 0x80000, CRC(7cc81c6b) SHA1(2619cb25d5ae62adc5c2292e25c0d33674f5cc13) ) ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) ) @@ -10614,12 +10689,12 @@ ROM_LOAD64_WORD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) ) ROM_LOAD64_WORD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) @@ -10628,7 +10703,7 @@ ROM_END ROM_START( ecofghtrd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ueced.03", 0x000000, 0x80000, CRC(ac725d2b) SHA1(f77a37d160aed34319ef810728de88a87bccb7a5) ) ROM_LOAD16_WORD_SWAP( "ueced.04", 0x080000, 0x80000, CRC(f800138d) SHA1(a8c05da5d33c338a82fed4f7b59c6ba8c10e8597) ) ROM_LOAD16_WORD_SWAP( "ueced.05", 0x100000, 0x80000, CRC(eb6a12f2) SHA1(5253a193a38b566eefbb8644511f283ac4a69850) ) @@ -10644,11 +10719,11 @@ ROM_LOAD64_WORD( "uec.18m", 0x800004, 0x100000, CRC(b167ae12) SHA1(48c552d02caad27d680aa51170560794f2a51478) ) ROM_LOAD64_WORD( "uec.20m", 0x800006, 0x100000, CRC(1064bdc2) SHA1(c51f75ac8d3f02a771feda0a933314a928555c4e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "uec.01", 0x00000, 0x08000, CRC(c235bd15) SHA1(feb7cd7db9dc0b9887b33eed9796bb0205fb719d) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "uec.11m", 0x000000, 0x200000, CRC(81b25d39) SHA1(448adfcc7d98873a48c710d857225cdd1580e5c9) ) ROM_LOAD16_WORD_SWAP( "uec.12m", 0x200000, 0x200000, CRC(27729e52) SHA1(a55c8159adf766dda70cb047f5ac85ce6bc0a3f3) ) @@ -10657,7 +10732,7 @@ ROM_END ROM_START( gigawingjd ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ggwjd.03a", 0x000000, 0x80000, CRC(cb1c756e) SHA1(f8b37120b429e14aad6e7d2106f8f8c422f2ce2b) ) ROM_LOAD16_WORD_SWAP( "ggwjd.04a", 0x080000, 0x80000, CRC(fa158e04) SHA1(bd0f0351fabe376944c28e327bcf83a8d9229441) ) ROM_LOAD16_WORD_SWAP( "ggwjd.05a", 0x100000, 0x80000, CRC(1c5bc4e7) SHA1(7f338cb45686b24b9136dd1e575fd842f9fd0b05) ) @@ -10671,11 +10746,11 @@ ROM_LOAD64_WORD( "ggw.17m", 0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) ) ROM_LOAD64_WORD( "ggw.19m", 0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ggw.01", 0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "ggw.11m", 0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) ) ROM_LOAD16_WORD_SWAP( "ggw.12m", 0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) ) @@ -10684,7 +10759,7 @@ ROM_END ROM_START( gigawingd ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ggwu_d.03", 0x000000, 0x80000, CRC(dde92dfa) SHA1(37b052438663d771c256c6cc61cd3f15c560f1b8) ) ROM_LOAD16_WORD_SWAP( "ggwu_d.04", 0x080000, 0x80000, CRC(e0509ae2) SHA1(6962cda86351194fe901edd2b99d9da622c00c36) ) ROM_LOAD16_WORD_SWAP( "ggw_d.05", 0x100000, 0x80000, CRC(722d0042) SHA1(8587e42d4781c503bc8871b88d3f85e21659c50e) ) @@ -10698,11 +10773,11 @@ ROM_LOAD64_WORD( "ggw.17m", 0x000004, 0x400000, CRC(466e0ba4) SHA1(9563455b95d36fafe508290659088b153539cfdf) ) ROM_LOAD64_WORD( "ggw.19m", 0x000006, 0x400000, CRC(840c8dea) SHA1(ea04afce17f00b45d3d2cd5140d0dd7ab4bccc00) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ggw.01", 0x00000, 0x08000, CRC(4c6351d5) SHA1(cef81fb7c4b8cb2ef1f8f3c27982aefbcbe38160) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "ggw.11m", 0x000000, 0x400000, CRC(e172acf5) SHA1(d7b0963d66165f3607d887741c5e7ab952bcf2ff) ) ROM_LOAD16_WORD_SWAP( "ggw.12m", 0x400000, 0x400000, CRC(4bee4e8f) SHA1(c440b5a38359ec3b8002f39690b79bf78703f5d0) ) @@ -10711,7 +10786,7 @@ ROM_END ROM_START( hsf2d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "hs2ad.03", 0x000000, 0x80000, CRC(0153d371) SHA1(137f89b4ca41346abd8d1ef4a17605f6622b741e) ) ROM_LOAD16_WORD_SWAP( "hs2ad.04", 0x080000, 0x80000, CRC(0276b78a) SHA1(3f5502f77eb9889ca4658eb323579e05b35c9868) ) ROM_LOAD16_WORD_SWAP( "hs2.05", 0x100000, 0x80000, CRC(dde34a35) SHA1(f5be2d2916db6e86e0886d61d55bddf138273ebc) ) @@ -10730,12 +10805,12 @@ ROM_LOAD64_WORD( "hs2.17m", 0x0000004, 0x800000, CRC(adfa7726) SHA1(8d36ec125a8c91abfe5213893d794f8bc11c8acd) ) ROM_LOAD64_WORD( "hs2.19m", 0x0000006, 0x800000, CRC(bb3ae322) SHA1(ecd289d7a0fe365fdd7c5527cb17796002beb553) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "hs2.01", 0x00000, 0x08000, CRC(c1a13786) SHA1(c7392c7efb15ea4042e75bd9007e974293d8935d) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "hs2.02", 0x28000, 0x20000, CRC(2d8794aa) SHA1(c634affdc2568020cce6af97b4fa79925d9943f3) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "hs2.11m", 0x000000, 0x800000, CRC(0e15c359) SHA1(176108b0d76d821a849324680aba0cd04b5016c1) ) ROM_REGION( 0x20, "key", 0 ) @@ -10743,7 +10818,7 @@ ROM_END ROM_START( megamn2d ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "rm2ud.03", 0x000000, 0x80000, CRC(d3635f25) SHA1(69a5a44bdc040754efa7fb96a267f8dcc2c5a23f) ) ROM_LOAD16_WORD_SWAP( "rm2ud.04", 0x080000, 0x80000, CRC(768a1705) SHA1(9b0f206ef15d72c9d0cb496845353ce7fdf2d25e) ) ROM_LOAD16_WORD_SWAP( "rm2.05", 0x100000, 0x80000, CRC(02ee9efc) SHA1(1b80c40389b51a03b930051f232630616c12e6c5) ) @@ -10758,12 +10833,12 @@ ROM_LOAD64_WORD( "rm2.18m", 0x800004, 0x200000, CRC(12257251) SHA1(20cb58afda0e6200991277817485340a6a41ae2b) ) ROM_LOAD64_WORD( "rm2.20m", 0x800006, 0x200000, CRC(f9b6e786) SHA1(aeb4acff7208e66a35198143fd2478039fdaa3a6) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "rm2.01a", 0x00000, 0x08000, CRC(d18e7859) SHA1(0939fac70042d0b4db5c2fdcef1f79b95febd45e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "rm2.02", 0x28000, 0x20000, CRC(c463ece0) SHA1(5c3e41eb61610b3f8c431206f6672907e3a0bdb0) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "rm2.11m", 0x000000, 0x200000, CRC(2106174d) SHA1(0a35d9ca8ebcad74904b20648d5320f839d6377e) ) ROM_LOAD16_WORD_SWAP( "rm2.12m", 0x200000, 0x200000, CRC(546c1636) SHA1(f96b172ab899f2c6ee17a5dd1fb61af9432e3cd2) ) @@ -10772,7 +10847,7 @@ ROM_END ROM_START( mvscud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvcud.03d", 0x000000, 0x80000, CRC(75cde3e5) SHA1(5453056da68cdd4675cb585a9c6ae85e073193f5) ) ROM_LOAD16_WORD_SWAP( "mvcud.04d", 0x080000, 0x80000, CRC(b32ea484) SHA1(742b35a45eadea3457bfb93808cbba599e9744e3) ) ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) ) @@ -10795,12 +10870,12 @@ ROM_LOAD64_WORD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) ) ROM_LOAD64_WORD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) ) ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) ) @@ -10809,7 +10884,7 @@ ROM_END ROM_START( nwarrud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vphud.03f", 0x000000, 0x80000, CRC(20d4d5a8) SHA1(420396c77a9f77feaba4be2e0faaab995842fb57) ) ROM_LOAD16_WORD_SWAP( "vphud.04c", 0x080000, 0x80000, CRC(61be9b42) SHA1(679381f279f51f28fdc4c4dbefabe6139855303b) ) ROM_LOAD16_WORD_SWAP( "vphud.05e", 0x100000, 0x80000, CRC(1ba906d8) SHA1(9e1db8af4070c68f25b8fb898e9d29a97f775e4c) ) @@ -10832,12 +10907,12 @@ ROM_LOAD64_WORD( "vph.18m", 0x1000004, 0x400000, CRC(64498eed) SHA1(d64e54a9ad1cbb927b7bac2eb16e1487834c5706) ) ROM_LOAD64_WORD( "vph.20m", 0x1000006, 0x400000, CRC(17f2433f) SHA1(0cbf8c96f92016fefb4a9c668ce5fd260342d712) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vph.01", 0x00000, 0x08000, CRC(5045dcac) SHA1(fd1a6586fbdd48a707df1fa52309b4cf50e3cc4c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vph.02", 0x28000, 0x20000, CRC(86b60e59) SHA1(197d07ced8b9850729c83fa59b7afc283500bdee) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vph.11m", 0x000000, 0x200000, CRC(e1837d33) SHA1(e3cb69f64767bacbec7286d0b4cd0ce7a0ba13d8) ) ROM_LOAD16_WORD_SWAP( "vph.12m", 0x200000, 0x200000, CRC(fbd3cd90) SHA1(4813c25802ad71b77ca04fd8f3a86344f99f0d6a) ) @@ -10846,7 +10921,7 @@ ROM_END ROM_START( ringdstd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "smbed.03b", 0x000000, 0x80000, CRC(f6fba4cd) SHA1(aecea7a4c3ed2153017b465b075c7558d914cdc8) ) ROM_LOAD16_WORD_SWAP( "smbed.04b", 0x080000, 0x80000, CRC(193bc493) SHA1(d2c6af56d3514c6d392aa3f2ea4778bbe5ef513f) ) ROM_LOAD16_WORD_SWAP( "smbed.05b", 0x100000, 0x80000, CRC(168cccbb) SHA1(c3e1695e013f1197f7093aa499482ff8d7f75b5b) ) @@ -10871,12 +10946,12 @@ ROM_LOAD64_WORD( "smb.25m", 0x1000004, 0x080000, CRC(82d6c4ec) SHA1(ed8ed02a00f59a048b9891ec2a77720bb6a5e03d) ) ROM_LOAD64_WORD( "smb.27m", 0x1000006, 0x080000, CRC(9b48678b) SHA1(4fa300d356c538947983ae85bb5c5cfd1fb835e7) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "smb.01", 0x00000, 0x08000, CRC(0abc229a) SHA1(967f574e6358dfc1b01e6a4a4df1a8f34eb3d814) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "smb.02", 0x28000, 0x20000, CRC(d051679a) SHA1(583c2521a30db1740d95dd94a38751fbeff3aae5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "smb.11m", 0x000000, 0x200000, CRC(c56935f9) SHA1(ca1705e48e31ddc13505e6297bceca2bec1bb209) ) ROM_LOAD16_WORD_SWAP( "smb.12m", 0x200000, 0x200000, CRC(955b0782) SHA1(ee09500e7b44e923126533613bfe26cdabc7ab5f) ) @@ -10885,7 +10960,7 @@ ROM_END ROM_START( sfad ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfzed.03d", 0x000000, 0x80000, CRC(a1a54827) SHA1(85dd1a6f807af56b63cd2880e6e32794eb11c61e) ) ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) ) ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) @@ -10901,12 +10976,12 @@ ROM_LOAD64_WORD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) ) ROM_LOAD64_WORD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) @@ -10915,7 +10990,7 @@ ROM_END ROM_START( mshud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mshud.03",0x000000, 0x80000, CRC(c1d8c4c6) SHA1(9d367d23a438fd22edce58ce814a4b3b36e5fc2a) ) ROM_LOAD16_WORD_SWAP( "mshud.04",0x080000, 0x80000, CRC(e73dda16) SHA1(f86cd74bdfa82bf0249770694de9419ffc3d3f63) ) ROM_LOAD16_WORD_SWAP( "mshud.05",0x100000, 0x80000, CRC(3b493e84) SHA1(875e616270e839218c924e09627bcf79211ee694) ) @@ -10935,12 +11010,12 @@ ROM_LOAD64_WORD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) ) ROM_LOAD64_WORD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) ) ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) ) @@ -10949,7 +11024,7 @@ ROM_END ROM_START( sfz2ald ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "szaad.03", 0x000000, 0x80000, CRC(89f9483b) SHA1(5da4f82ddc79d9b5697ba2fea96dcaf460118248) ) ROM_LOAD16_WORD_SWAP( "szaad.04", 0x080000, 0x80000, CRC(aef27ae5) SHA1(5877a05e7355195d686a4d0a97062aacbd3277ee) ) ROM_LOAD16_WORD_SWAP( "szaa.05", 0x100000, 0x80000, CRC(f053a55e) SHA1(f98a8af5cd33a543a5596d59381f9adafed38854) ) @@ -10970,12 +11045,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -10984,7 +11059,7 @@ ROM_END ROM_START( sfa3ud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3ud.03c", 0x000000, 0x80000, CRC(6db8add7) SHA1(f6dc8ed330254acab16e42a8e729bca7713c8dc1) ) ROM_LOAD16_WORD_SWAP( "sz3ud.04c", 0x080000, 0x80000, CRC(d9c65a26) SHA1(8293ef112eaa534b58a3b56721af5d2f53fd1576) ) ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) ) @@ -11007,12 +11082,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -11021,7 +11096,7 @@ ROM_END ROM_START( spf2xjd ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pzfjd.03a", 0x000000, 0x80000, CRC(5e85ed08) SHA1(8242030daf24d8058368d2e7bfe8199db62966c3) ) ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) @@ -11035,12 +11110,12 @@ ROM_LOAD64_WORD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) ) ROM_LOAD64_WORD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) @@ -11049,7 +11124,7 @@ ROM_END ROM_START( vsavd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vm3ed.03d", 0x000000, 0x80000, CRC(97d805e3) SHA1(394398fbeb0b375a79cefb48c57d14b330311247) ) ROM_LOAD16_WORD_SWAP( "vm3ed.04d", 0x080000, 0x80000, CRC(5e07fdce) SHA1(897d1c10fb0de2a62360d9b43cb78faaa9976eb9) ) ROM_LOAD16_WORD_SWAP( "vm3.05a", 0x100000, 0x80000, CRC(4118e00f) SHA1(94ce8abc5ff547667f4c6022d84d0ed4cd062d7e) ) @@ -11072,12 +11147,12 @@ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) ) ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) ) ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) ) @@ -11086,7 +11161,7 @@ ROM_END ROM_START( xmcotar1d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xmned.03e", 0x000000, 0x80000, CRC(bef56003) SHA1(4264f9d7236b00e513664932685b3d93ea636f21) ) ROM_LOAD16_WORD_SWAP( "xmned.04e", 0x080000, 0x80000, CRC(b1a21fa6) SHA1(cbb577b180f28e2af5d6518679f3b16967129ef5) ) ROM_LOAD16_WORD_SWAP( "xmn.05a", 0x100000, 0x80000, CRC(ac0d7759) SHA1(650d4474b13f16af7910a0f721fcda2ddb2414fd) ) @@ -11109,12 +11184,12 @@ ROM_LOAD64_WORD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) ) ROM_LOAD64_WORD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) ) ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) ) @@ -11123,7 +11198,7 @@ ROM_END ROM_START( xmvsfu1d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "xvsud.03h", 0x000000, 0x80000, CRC(4e2e76b7) SHA1(812ebe4063a1c5d8c86200a51e6ab00e57e02869) ) ROM_LOAD16_WORD_SWAP( "xvsud.04h", 0x080000, 0x80000, CRC(290c61a7) SHA1(f0d409048c9d477ee98e6df92febcd4492a291ee) ) // ROM_LOAD16_WORD_SWAP( "xvsd.05a", 0x100000, 0x80000, CRC(de347b11) SHA1(297ae207811df9a4973de1df00b2efaa14a0137d) ) // bad dump? @@ -11147,12 +11222,12 @@ ROM_LOAD64_WORD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) ) ROM_LOAD64_WORD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) ) ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) ) @@ -11161,7 +11236,7 @@ ROM_END ROM_START( dstlku1d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vamud.03a", 0x000000, 0x80000, CRC(47b7a680) SHA1(ea51d784f1ed49b70aa8addce987a7c09a5c653c) ) ROM_LOAD16_WORD_SWAP( "vamud.04a", 0x080000, 0x80000, CRC(3b7a4939) SHA1(020f9768f4d3afb193b1d5a824674f7fb3434369) ) ROM_LOAD16_WORD_SWAP( "vamu.05a", 0x100000, 0x80000, CRC(673ed50a) SHA1(7dff27dba1da55a18eb459e4a2d679cf699f2804) ) @@ -11181,12 +11256,12 @@ ROM_LOAD64_WORD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) ) ROM_LOAD64_WORD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) @@ -11195,65 +11270,65 @@ ROM_END ROM_START( progearud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pgau_d.03", 0x000000, 0x80000, CRC(ba22b9c5) SHA1(3bacef465ad137b7d618ad7dbe4a0f29b3422a31) ) ROM_LOAD16_WORD_SWAP( "pgau_d.04", 0x080000, 0x80000, CRC(df3927ef) SHA1(2869f3f7c1ae76e9b3ce5c66eed277ee8484aeba) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a simm + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) ) ROM_END ROM_START( progearjd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pgaj_d.03", 0x000000, 0x80000, CRC(0271f3a3) SHA1(caf5ce19aa3471e65931ebd7ef06693e9fdf11a7) ) ROM_LOAD16_WORD_SWAP( "pgaj_d.04", 0x080000, 0x80000, CRC(be4b7799) SHA1(0414922296079ca9380a41bf3c628ce67acec06d) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pga-simm.01c", 0x0000000, 0x200000, CRC(452f98b0) SHA1(a10e615c32098f6d25becd466da8faa967523a7b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01d", 0x0000001, 0x200000, CRC(9e672092) SHA1(fce0b8b43a1c069262f4e3e81c1a04621e232c88) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01a", 0x0000002, 0x200000, CRC(ae9ddafe) SHA1(afbb26fed6cd0cb5c0099a10d35aeb453318c14d) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.01b", 0x0000003, 0x200000, CRC(94d72d94) SHA1(df6a3fe49c008f73b160eb6f2a44dc371ff73cba) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03c", 0x0000004, 0x200000, CRC(48a1886d) SHA1(ebf44b42d784924e08a832a7e5f66a887bab244b) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03d", 0x0000005, 0x200000, CRC(172d7e37) SHA1(0eaedd24cd3fa87b6f35fbd63078d40c493c92d0) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03a", 0x0000006, 0x200000, CRC(9ee33d98) SHA1(85d1bd31940e35ac8c732165020881a2d65cd6b1) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pga-simm.03b", 0x0000007, 0x200000, CRC(848dee32) SHA1(c591288e86ad1624d0fe66563808af9fac786e64) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a simm + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pga-simm.05a", 0x000000, 0x200000, CRC(c0aac80c) SHA1(91784d35d4f7e113529bb5be6081b67094b150ea) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.05b", 0x200000, 0x200000, CRC(37a65d86) SHA1(374d562a4648734f82aa2ddb6d258e870896dd45) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06a", 0x400000, 0x200000, CRC(d3f1e934) SHA1(5dcea28c873d0d472f5b94e07d97cd77ace2b252) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pga-simm.06b", 0x600000, 0x200000, CRC(8b39489a) SHA1(fd790efaf37dc2c4c16f657941044e3e2d3c2711) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) ) ROM_END ROM_START( progearjbl ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pgaj_bl.03", 0x000000, 0x80000, CRC(4fef676c) SHA1(f50f32403315f77e115141bbee6a1b9a800821eb) ) ROM_LOAD16_WORD_SWAP( "pgaj_bl.04", 0x080000, 0x80000, CRC(a069bd3b) SHA1(6b7e20c883221da9b8eccb4f86017bb93e1fc11f) ) @@ -11263,11 +11338,11 @@ ROM_LOAD64_WORD( "pga.17m", 0x0000004, 0x400000, CRC(87f22918) SHA1(7f048d66593f385526bd2c669cf6b8ad58d12bbf) ) ROM_LOAD64_WORD( "pga.19m", 0x0000006, 0x400000, CRC(65ffb45b) SHA1(9c21187519c1ec95c5a960b2c815ee41ace4fa7e) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pga.11m", 0x000000, 0x400000, CRC(abdd224e) SHA1(3316708e050204eeee91c642a2546fab80984c60) ) ROM_LOAD16_WORD_SWAP( "pga.12m", 0x400000, 0x400000, CRC(dac53406) SHA1(53fd271495429a7cbdeecbbc62b322f019f854a5) ) @@ -11276,7 +11351,7 @@ ROM_END ROM_START( ssf2ud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfud.03a", 0x000000, 0x80000, CRC(fad5daf8) SHA1(5bed5d5af8dffc54d3b3371274a3905f46384f79) ) ROM_LOAD16_WORD_SWAP( "ssfud.04a", 0x080000, 0x80000, CRC(0d31af65) SHA1(7e903e18cb899627fedd8ad92594b75b5d8ee8fd) ) ROM_LOAD16_WORD_SWAP( "ssfud.05", 0x100000, 0x80000, CRC(75c651ef) SHA1(8c6f60d3cf10d802190438c403a719bc30ccbeaa) ) @@ -11293,11 +11368,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -11312,7 +11387,7 @@ ROM_END ROM_START( ssf2tbd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "ssfed.3tc", 0x000000, 0x80000, CRC(5d86caf8) SHA1(6209caad6613f0b35002fb13350ae3f81c8c9c5f) ) ROM_LOAD16_WORD_SWAP( "ssfed.4tc", 0x080000, 0x80000, CRC(f6e1f98d) SHA1(2d7506fdf12c8ca8766da1458420e0764f159a9b) ) ROM_LOAD16_WORD_SWAP( "ssfed.5t", 0x100000, 0x80000, CRC(75c651ef) SHA1(8c6f60d3cf10d802190438c403a719bc30ccbeaa) ) @@ -11329,11 +11404,11 @@ ROM_LOAD64_WORD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) ) ROM_LOAD64_WORD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) @@ -11348,7 +11423,7 @@ ROM_END ROM_START( ssf2xjr1d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxjd.03c", 0x000000, 0x80000, CRC(316de996) SHA1(4036539a554a9ccd8b5fc364dfc4c97f3d5efa96) ) ROM_LOAD16_WORD_SWAP( "sfxjd.04a", 0x080000, 0x80000, CRC(9bf3bb2e) SHA1(4bdc6fa585cc67d3b6695f390c95c518cba2bea6) ) ROM_LOAD16_WORD_SWAP( "sfxjd.05", 0x100000, 0x80000, CRC(c63358d0) SHA1(dde4d9e9adce4dee02322c0fd71615eed0af62e6) ) @@ -11371,12 +11446,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -11385,7 +11460,7 @@ ROM_END ROM_START( ssf2tad ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sfxad.03c", 0x000000, 0x80000, CRC(e3c92ece) SHA1(8b0d6f632f51719c3e13add5d27701578b6ce0d6) ) ROM_LOAD16_WORD_SWAP( "sfxad.04a", 0x080000, 0x80000, CRC(9bf3bb2e) SHA1(4bdc6fa585cc67d3b6695f390c95c518cba2bea6) ) ROM_LOAD16_WORD_SWAP( "sfxad.05", 0x100000, 0x80000, CRC(c63358d0) SHA1(dde4d9e9adce4dee02322c0fd71615eed0af62e6) ) @@ -11408,12 +11483,12 @@ ROM_LOAD64_WORD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) ) ROM_LOAD64_WORD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) @@ -11422,7 +11497,7 @@ ROM_END ROM_START( sgemfd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pcfud.03",0x000000, 0x80000, CRC(8b83674a) SHA1(053a2cb6aab9aa43f4c0d4ba9f0eb5a964133b28) ) ROM_LOAD16_WORD_SWAP( "pcfd.04", 0x080000, 0x80000, CRC(b58f1d03) SHA1(592649956471363967b9920f47bde23da3e9cc2b) ) ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) ) @@ -11439,12 +11514,12 @@ ROM_LOAD64_WORD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) ) ROM_LOAD64_WORD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) ) ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) ) @@ -11453,7 +11528,7 @@ ROM_END ROM_START( armwar1d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pwged.03b", 0x000000, 0x80000, CRC(496bd483) SHA1(c3a116ea019843aba666a0d7e7bd2975622306e3) ) ROM_LOAD16_WORD_SWAP( "pwged.04b", 0x080000, 0x80000, CRC(9bd6a38f) SHA1(da90162b7bff223df59ac362a5f61c580a86d967) ) ROM_LOAD16_WORD_SWAP( "pwged.05a", 0x100000, 0x80000, CRC(4c11d30f) SHA1(463ba1845b1239c839e9419cbc6762d52b7918db) ) @@ -11473,12 +11548,12 @@ ROM_LOAD64_WORD( "pwg.18m", 0x1000004, 0x100000, CRC(0109c71b) SHA1(eb51284ee0c85ff8f605fe1d166b7aa202be1344) ) ROM_LOAD64_WORD( "pwg.20m", 0x1000006, 0x100000, CRC(eb75ffbe) SHA1(e9d1deca60be696ac5bff2017fb5de3525e5239a) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pwg.01", 0x00000, 0x08000, CRC(18a5c0e4) SHA1(bb1353dd74884aaeec9b5f1d0b284d9cad53c0ff) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pwg.02", 0x28000, 0x20000, CRC(c9dfffa6) SHA1(64e71028befe9a2514074be765dd020e1d2ea70b) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pwg.11m", 0x000000, 0x200000, CRC(a78f7433) SHA1(e47ffba7b9dac9d0dda985c5d966194be18260f7) ) ROM_LOAD16_WORD_SWAP( "pwg.12m", 0x200000, 0x200000, CRC(77438ed0) SHA1(733ca6c6a792e66e2aa12c5fc06dd459527afe4b) ) @@ -11487,7 +11562,7 @@ ROM_END ROM_START( dimahoud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "gmdud.03", 0x000000, 0x80000, CRC(12888435) SHA1(38204359c505ae861341936cd0fd2517411b8995) ) ROM_LOAD16_WORD_SWAP( "gmd.04", 0x080000, 0x80000, CRC(37485567) SHA1(643c41fce6057bcaef0e0bedc62914c33d97eeaf) ) ROM_LOAD16_WORD_SWAP( "gmd.05", 0x100000, 0x80000, CRC(da269ffb) SHA1(e99b04192030b6006cf67b563f40cea29c1b2e78) ) @@ -11499,12 +11574,12 @@ ROM_LOAD64_WORD( "gmd.17m", 0x000004, 0x400000, CRC(16356520) SHA1(058713bef30c1b1d8b7dd0ceaaa57a3ab9751a70) ) ROM_LOAD64_WORD( "gmd.19m", 0x000006, 0x400000, CRC(dfc33031) SHA1(a1ceaeddc2a79d5b79f1b107cac2ef6a5e621e77) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "gmd.01", 0x00000, 0x08000, CRC(3f9bc985) SHA1(1616bbee82877b1052a07531066f5009a80706be) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "gmd.02", 0x28000, 0x20000, CRC(3fd39dde) SHA1(6a6e3ef9baa430ee83ab2312aa0221bae4d73dbd) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "gmd.11m", 0x000000, 0x400000, CRC(06a65542) SHA1(a1b3df70c90055a3cd59d0149fd18a74eff5bcc9) ) ROM_LOAD16_WORD_SWAP( "gmd.12m", 0x400000, 0x400000, CRC(50bc7a31) SHA1(7283569fc646c39f4c693f14e0ce7ff2ee49111a) ) @@ -11513,7 +11588,7 @@ ROM_END ROM_START( mmatrixd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mmxud.03", 0x000000, 0x80000, CRC(36711e60) SHA1(a192e786798f69320761017437ee4d2d47dc80c5) ) ROM_LOAD16_WORD_SWAP( "mmxud.04", 0x080000, 0x80000, CRC(4687226f) SHA1(b831582f578eb1e40bce1d1cbf231e4c27f510cd) ) ROM_LOAD16_WORD_SWAP( "mmxud.05", 0x100000, 0x80000, CRC(52124398) SHA1(0a18b9d2a7e3335ddf7ff9ac5c5f8298951f8c67) ) @@ -11528,11 +11603,11 @@ ROM_LOAD64_WORD( "mmx.18m", 0x1000004, 0x400000, CRC(2562c9d5) SHA1(e7defc3d33db632c4035ae069f2f2332c58afaf5) ) ROM_LOAD64_WORD( "mmx.20m", 0x1000006, 0x400000, CRC(583a9687) SHA1(1d0b08b1e88509245db3c2090f0201938fd750b4) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mmx.01", 0x00000, 0x08000, CRC(c57e8171) SHA1(dedb92af1910d38727f816e6f507d25148f31b74) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mmx.11m", 0x000000, 0x400000, CRC(4180b39f) SHA1(cabb1c358eae1bb6cfed07f5b92e4acd38650667) ) ROM_LOAD16_WORD_SWAP( "mmx.12m", 0x400000, 0x400000, CRC(95e22a59) SHA1(b3431d170c0a1a0d826ad0af21300b9180e3f114) ) @@ -11541,7 +11616,7 @@ ROM_END ROM_START( vhunt2d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vh2j_d.03a", 0x000000, 0x80000, CRC(696e0157) SHA1(a5c8c7e389f76952ce40ce5792eddb185dd76c41) ) ROM_LOAD16_WORD_SWAP( "vh2j_d.04a", 0x080000, 0x80000, CRC(ced9bba3) SHA1(ef7be9d39ae93ffde7d940736de9711a24585ef4) ) ROM_LOAD16_WORD_SWAP( "vh2j.05", 0x100000, 0x80000, CRC(de34f624) SHA1(60bbbd1765e76839b01c38765da2368c5188ec61) ) @@ -11561,12 +11636,12 @@ ROM_LOAD64_WORD( "vh2.18m", 0x1000004, 0x400000, CRC(778dc4f6) SHA1(8d0cd1c387b4b6ac7f92bb2e5a25983856328cdc) ) ROM_LOAD64_WORD( "vh2.20m", 0x1000006, 0x400000, CRC(605d9d1d) SHA1(99bc27557741527ca678d7b6307164bc04ebedc6) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vh2.01", 0x00000, 0x08000, CRC(67b9f779) SHA1(3994c65f888004b56ea9f478b1feaa81e306347e) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vh2.02", 0x28000, 0x20000, CRC(aaf15fcb) SHA1(6f61daa162c835165a8aabaf1d0ea8816fbfbd40) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vh2.11m", 0x000000, 0x400000, CRC(38922efd) SHA1(8cfb36bdce3a524d0a81fec12ca0cba82222fa30) ) ROM_LOAD16_WORD_SWAP( "vh2.12m", 0x400000, 0x400000, CRC(6e2430af) SHA1(b475faf943bec4171ba0130f287e1948743ca273) ) @@ -11575,7 +11650,7 @@ ROM_END ROM_START( vsav2d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "vs2j_d.03", 0x000000, 0x80000, CRC(50865f7b) SHA1(30914bde1caec55847f28167bfb48bc4473a376c) ) ROM_LOAD16_WORD_SWAP( "vs2j_d.04", 0x080000, 0x80000, CRC(c3bff0e3) SHA1(5b81dfdc3bf4e78a9d023cd8c753ce0839c0e175) ) ROM_LOAD16_WORD_SWAP( "vs2j.05", 0x100000, 0x80000, CRC(61979638) SHA1(4d5625a9a06926c1a42c8f6e3a4c943f17750ec2) ) @@ -11595,12 +11670,12 @@ ROM_LOAD64_WORD( "vs2.18m", 0x1000004, 0x400000, CRC(778dc4f6) SHA1(8d0cd1c387b4b6ac7f92bb2e5a25983856328cdc) ) ROM_LOAD64_WORD( "vs2.20m", 0x1000006, 0x400000, CRC(605d9d1d) SHA1(99bc27557741527ca678d7b6307164bc04ebedc6) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "vs2.01", 0x00000, 0x08000, CRC(35190139) SHA1(07f8e53ea398461de5dcda9814dde7c09faf9f65) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "vs2.02", 0x28000, 0x20000, CRC(c32dba09) SHA1(1fe337ff334fab79847f9677ba0e168e93daa1c8) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "vs2.11m", 0x000000, 0x400000, CRC(d67e47b7) SHA1(15a3f6779eccb10551ed94edf7e6e406a79b3de7) ) ROM_LOAD16_WORD_SWAP( "vs2.12m", 0x400000, 0x400000, CRC(6d020a14) SHA1(e98f862fac1e357c90949768bb2646263d9981a0) ) @@ -11609,7 +11684,7 @@ ROM_END ROM_START( csclub1d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "csce_d.03", 0x000000, 0x80000, CRC(5aedc6e6) SHA1(1330959ac96b0c267e81237974ec44ed7189495a) ) ROM_LOAD16_WORD_SWAP( "csce_d.04", 0x080000, 0x80000, CRC(a3d9aa25) SHA1(d7a98cf4506c30b321d8c5a0687fa6938740f951) ) ROM_LOAD16_WORD_SWAP( "csce_d.05", 0x100000, 0x80000, CRC(0915c9d1) SHA1(071c6bcfb0ed1047f06c2fbe43a0340aef73dc1d) ) @@ -11635,11 +11710,11 @@ ROM_LOAD64_WORD( "csc.95", 0xc00006, 0x080000, CRC(4d014297) SHA1(df172a3723793b9955ff1f65e76fe5c20fc37b89) ) ROM_LOAD64_WORD( "csc.96", 0xe00006, 0x080000, CRC(6754b1ef) SHA1(ab5d62056b19999ccecd0eeec7b7c5869ca8fea8) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "csc.01", 0x00000, 0x08000, CRC(ee162111) SHA1(ce8d4bd32bb10ee8b0274ba6fcef05a583b39d48) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "csc.51", 0x000000, 0x080000, CRC(5a52afd5) SHA1(ab873ec556933b75be82ba249357cceb01a7a0bd) ) ROM_LOAD16_WORD_SWAP( "csc.52", 0x080000, 0x080000, CRC(1408a811) SHA1(1d31e3cd505245b5ff4d3c55d5fa7017c0f1e168) ) ROM_LOAD16_WORD_SWAP( "csc.53", 0x100000, 0x080000, CRC(4fb9f57c) SHA1(093e8e3a03b62783a84fe4ae239e9eb46cbfd71e) ) @@ -11654,7 +11729,7 @@ ROM_END ROM_START( cybotsud ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "cybu_d.03", 0x000000, 0x80000, CRC(ee7560fb) SHA1(632e057a7b3a61127beee4ed833a39dcec4ccbd5) ) ROM_LOAD16_WORD_SWAP( "cybu_d.04", 0x080000, 0x80000, CRC(7e7425a0) SHA1(6368cf5b04271e68b27abecd67d107bbf58976b4) ) ROM_LOAD16_WORD_SWAP( "cyb.05", 0x100000, 0x80000, CRC(ec40408e) SHA1(dd611c1708e7ef86e4f7cac4b7b0dff7baaee5ed) ) @@ -11674,12 +11749,12 @@ ROM_LOAD64_WORD( "cyb.18m", 0x1000004, 0x400000, CRC(d83e977d) SHA1(e03f4a120c95a2f476ffc8492bca85e0c5cea068) ) ROM_LOAD64_WORD( "cyb.20m", 0x1000006, 0x400000, CRC(77cdad5c) SHA1(94d0cc5f05de4bc2d43977d91f887005dc10310c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "cyb.01", 0x00000, 0x08000, CRC(9c0fb079) SHA1(06d260875a76da08d56ea2b2ae277e8c2dbae6e3) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "cyb.02", 0x28000, 0x20000, CRC(51cb0c4e) SHA1(c322957558d8d3e9dad090aebbe485978cbce8f5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "cyb.11m", 0x000000, 0x200000, CRC(362ccab2) SHA1(28e537067d4846f22657ee37166d18b8f05f4da1) ) ROM_LOAD16_WORD_SWAP( "cyb.12m", 0x200000, 0x200000, CRC(7066e9cc) SHA1(eb6a9d4998b3311344d73bae88d661d81609c492) ) @@ -11688,7 +11763,7 @@ ROM_END ROM_START( cybotsjd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "cybj_d.03", 0x000000, 0x80000, CRC(9eb34071) SHA1(b9ef1fa79f79bbb821862764c65a65357a79aa91) ) ROM_LOAD16_WORD_SWAP( "cybj_d.04", 0x080000, 0x80000, CRC(cf223cd7) SHA1(834833ae68c3f14f1e06c92273fadfe6918cf3c5) ) ROM_LOAD16_WORD_SWAP( "cyb.05", 0x100000, 0x80000, CRC(ec40408e) SHA1(dd611c1708e7ef86e4f7cac4b7b0dff7baaee5ed) ) @@ -11708,12 +11783,12 @@ ROM_LOAD64_WORD( "cyb.18m", 0x1000004, 0x400000, CRC(d83e977d) SHA1(e03f4a120c95a2f476ffc8492bca85e0c5cea068) ) ROM_LOAD64_WORD( "cyb.20m", 0x1000006, 0x400000, CRC(77cdad5c) SHA1(94d0cc5f05de4bc2d43977d91f887005dc10310c) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "cyb.01", 0x00000, 0x08000, CRC(9c0fb079) SHA1(06d260875a76da08d56ea2b2ae277e8c2dbae6e3) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "cyb.02", 0x28000, 0x20000, CRC(51cb0c4e) SHA1(c322957558d8d3e9dad090aebbe485978cbce8f5) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "cyb.11m", 0x000000, 0x200000, CRC(362ccab2) SHA1(28e537067d4846f22657ee37166d18b8f05f4da1) ) ROM_LOAD16_WORD_SWAP( "cyb.12m", 0x200000, 0x200000, CRC(7066e9cc) SHA1(eb6a9d4998b3311344d73bae88d661d81609c492) ) @@ -11722,7 +11797,7 @@ ROM_END ROM_START( mshvsfu1d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "mvsu_d.03d", 0x000000, 0x80000, CRC(1c88bee3) SHA1(53ab6df85a900b221cabd62948e68d91cf6146e4) ) ROM_LOAD16_WORD_SWAP( "mvsu_d.04d", 0x080000, 0x80000, CRC(1e8b2535) SHA1(51ebede487f955e3f838b7906b619830e67fea52) ) ROM_LOAD16_WORD_SWAP( "mvs_d.05a", 0x100000, 0x80000, CRC(373856fb) SHA1(777bf7c74110c029c44a363ce79e50c1863950c2) ) @@ -11742,12 +11817,12 @@ ROM_LOAD64_WORD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) ) ROM_LOAD64_WORD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) ) ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) ) @@ -11756,7 +11831,7 @@ ROM_END ROM_START( spf2td ) - ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION(CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pzfu_d.03a", 0x000000, 0x80000, CRC(7836b903) SHA1(9a96a9080716a0cc4d13f51490fd850afe4479a7) ) ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) @@ -11770,12 +11845,12 @@ ROM_LOAD64_WORD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) ) ROM_LOAD64_WORD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) ) - ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) @@ -11784,7 +11859,7 @@ ROM_END ROM_START( sfz3jr2d ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz3j_d.03", 0x000000, 0x80000, CRC(b0436151) SHA1(5170390d5d38bb003602d5714d557005bd7218be) ) ROM_LOAD16_WORD_SWAP( "sz3j_d.04", 0x080000, 0x80000, CRC(642d8170) SHA1(1a73f6090a384e7399e49e3a13fe02aa284d4775) ) ROM_LOAD16_WORD_SWAP( "sz3.05", 0x100000, 0x80000, CRC(9b21518a) SHA1(5a928307cb90a98a62e7598cb101fb66d62b85f9) ) @@ -11804,12 +11879,12 @@ ROM_LOAD64_WORD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) ) ROM_LOAD64_WORD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz3.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) ) - ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x800000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) ) ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) ) @@ -11818,7 +11893,7 @@ ROM_END ROM_START( sfz2jd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "sz2j_d.03a", 0x000000, 0x80000, CRC(b7325df8) SHA1(cd6e242a5681017463102dcb9133d8dcb262f923) ) ROM_LOAD16_WORD_SWAP( "sz2j_d.04a", 0x080000, 0x80000, CRC(a1022a3e) SHA1(4806637ddf22169f12d31f959982cb2f11693066) ) ROM_LOAD16_WORD_SWAP( "sz2.05a", 0x100000, 0x80000, CRC(98e8e992) SHA1(41745b63e6b3888081d189b8315ed3b7526b3d20) ) @@ -11836,12 +11911,12 @@ ROM_LOAD64_WORD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) ) ROM_LOAD64_WORD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) ) - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) ROM_CONTINUE( 0x10000, 0x18000 ) ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) @@ -11850,78 +11925,78 @@ ROM_END ROM_START( pzloop2jd ) - ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) // 68000 code ROM_LOAD16_WORD_SWAP( "pl2j_d.03a", 0x000000, 0x80000, CRC(1f5d41c9) SHA1(a205f8c73136d22c127ee547df724e300647c45a) ) ROM_LOAD16_WORD_SWAP( "pl2j_d.04a", 0x080000, 0x80000, CRC(60721b73) SHA1(48918d94b8a21c1bb2bd2fc6166cde6bb427d862) ) ROM_LOAD16_WORD_SWAP( "pl2j_d.05a", 0x100000, 0x80000, CRC(0c39799f) SHA1(3c16a814a5bbb2b00bd82a01f17e0ca797192c98) ) ROM_LOAD16_WORD_SWAP( "pl2j_d.06a", 0x180000, 0x80000, CRC(f3974d76) SHA1(01f8caf5a85d27b24a18a313e459f508ba98a123) ) ROM_REGION( 0x1000000, "gfx", 0 ) - ROMX_LOAD( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm - ROMX_LOAD( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROM_LOAD64_BYTE( "pl2-simm.01c", 0x0000000, 0x200000, CRC(137b13a7) SHA1(a1ca1bc8699ddfc54d5de1b39a9db9a5ac8b12e5) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01d", 0x0000001, 0x200000, CRC(a2db1507) SHA1(61c84c8d698a846d54a571b5f7b4824e22136db7) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01a", 0x0000002, 0x200000, CRC(7e80ff8e) SHA1(afcebfa995ace8b8973e75f1589980c5c4535bca) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.01b", 0x0000003, 0x200000, CRC(cd93e6ed) SHA1(e4afce48fe481d8291ed2475d5de446afad65351) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03c", 0x0000004, 0x200000, CRC(0f52bbca) SHA1(e76c29d445062f5e16d06bdc4ab44640ba35aaac) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03d", 0x0000005, 0x200000, CRC(a62712c3) SHA1(2abfe0209e188010a0ae969f0d9eb7d28820b3f2) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03a", 0x0000006, 0x200000, CRC(b60c9f8e) SHA1(40c7985e04463fb2bd59b3bb6aa5897328d37ff3) ) // ROM on a SIMM + ROM_LOAD64_BYTE( "pl2-simm.03b", 0x0000007, 0x200000, CRC(83fef284) SHA1(ef4429f54c456d6485a7d642d49dffafef4435fe) ) // ROM on a SIMM - ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) // 64k for the audio CPU (+banks) ROM_LOAD( "pl2.01", 0x00000, 0x08000, CRC(35697569) SHA1(13718923cffb9ec53cef9e22d8875370b5f3dd74) ) ROM_CONTINUE( 0x10000, 0x18000 ) - ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ - ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a simm - ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a simm + ROM_REGION( 0x400000, "qsound", 0 ) // QSound samples + ROM_LOAD16_WORD_SWAP( "pl2-simm.05a", 0x000000, 0x200000, CRC(85d8fbe8) SHA1(c19d5e9084d07e610379b6e1b6be7bdf0b9b7f7f) ) // ROM on a SIMM + ROM_LOAD16_WORD_SWAP( "pl2-simm.05b", 0x200000, 0x200000, CRC(1ed62584) SHA1(28411f610f48cca6424a2d53e2a4ac691e826317) ) // ROM on a SIMM ROM_REGION( 0x20, "key", 0 ) ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) ) ROM_END -GAME( 1993, ddtodd, ddtod, dead_cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "bootleg", "Dungeons & Dragons: Tower of Doom (Euro 940412 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ecofghtrd, ecofghtr, dead_cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "bootleg", "Eco Fighters (World 931203 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2ud, ssf2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Super Street Fighter II: The New Challengers (USA 930911 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ssf2tbd, ssf2, dead_cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "bootleg", "Super Street Fighter II: The Tournament Battle (World 931119 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1994, armwar1d, armwar, dead_cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "bootleg", "Armored Warriors (Euro 941011 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, avspd, avsp, dead_cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "bootleg", "Alien vs. Predator (Euro 940520 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dstlku1d, dstlk, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Darkstalkers: The Night Warriors (USA 940705 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ringdstd, ringdest, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Ring of Destruction: Slammasters II (Euro 940902 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssf2tad, ssf2t, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Super Street Fighter II Turbo (Asia 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ddtodd, ddtod, dead_cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "bootleg", "Dungeons & Dragons: Tower of Doom (Euro 940412 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ecofghtrd, ecofghtr, dead_cps2, ecofghtr, cps2_state, init_ecofghtr, ROT0, "bootleg", "Eco Fighters (World 931203 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2ud, ssf2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Super Street Fighter II: The New Challengers (USA 930911 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ssf2tbd, ssf2, dead_cps2, cps2_2p6b, cps2_state, init_ssf2tb, ROT0, "bootleg", "Super Street Fighter II: The Tournament Battle (World 931119 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1994, armwar1d, armwar, dead_cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "bootleg", "Armored Warriors (Euro 941011 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, avspd, avsp, dead_cps2, cps2_3p3b, cps2_state, init_cps2, ROT0, "bootleg", "Alien vs. Predator (Euro 940520 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, dstlku1d, dstlk, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Darkstalkers: The Night Warriors (USA 940705 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ringdstd, ringdest, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Ring of Destruction: Slammasters II (Euro 940902 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2tad, ssf2t, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Super Street Fighter II Turbo (Asia 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, ssf2xjr1d, ssf2t, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, xmcotar1d, xmcota, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "X-Men: Children of the Atom (Euro 950105 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, mshud, msh, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Marvel Super Heroes (US 951024 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cybotsud, cybots, dead_cps2, cybots, cps2_state, init_cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (USA 950424 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cybotsjd, cybots, dead_cps2, cybots, cps2_state, init_cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (Japan 950424) (decrypted bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nwarrud, nwarr, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Night Warriors: Darkstalkers' Revenge (USA 950406 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sfad, sfa, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Alpha: Warriors' Dreams (Euro 950727 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 19xxd, 19xx, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "bootleg", "19XX: The War Against Destiny (USA 951207 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ddsomud, ddsom, dead_cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "bootleg", "Dungeons & Dragons: Shadow over Mystara (USA 960619 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, gigaman2, megaman2, gigaman2, cps2_2p3b, cps2_state, init_gigaman2, ROT0, "bootleg", "Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // different layer offsets and sound system -GAME( 1996, megamn2d, megaman2, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Mega Man 2: The Power Fighters (USA 960708 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2ad, sfa2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Asia 960227 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2jd, sfa2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Japan 960227 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spf2td, spf2t, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Super Puzzle Fighter II Turbo (USA 960620 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, spf2xjd, spf2t, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Super Puzzle Fighter II X (Japan 960531 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sfz2ald, sfz2al, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 2 Alpha (Asia 960826 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, xmvsfu1d, xmvsf, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "X-Men Vs. Street Fighter (USA 961004 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, batcird, batcir, dead_cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "bootleg", "Battle Circuit (Euro 970319 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, csclub1d, csclub, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Capcom Sports Club (Euro 970722 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mshvsfu1d, mshvsf, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Marvel Super Heroes Vs. Street Fighter (USA 970625 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, sgemfd, sgemf, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Super Gem Fighter Mini Mix (USA 970904 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsavd, vsav, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Vampire Savior: The Lord of Vampire (Euro 970519 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vhunt2d, vhunt2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, vsav2d, vsav2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Vampire Savior 2: The Lord of Vampire (Japan 970913 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, mvscud, mvsc, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfa3ud, sfa3, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Alpha 3 (USA 980904 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sfz3jr2d, sfa3, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 3 (Japan 980629 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gigawingd, gigawing, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Giga Wing (USA 990222 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gigawingjd, gigawing, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Giga Wing (Japan 990223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, 1944d, 1944, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, dimahoud, dimahoo, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT270, "bootleg", "Dimahoo (USA 000121 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mmatrixd, mmatrix, dead_cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "bootleg", "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, progearud, progear, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Progear (USA 010117 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, progearjd, progear, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, progearjbl, progear, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117) (decrypted bootleg)", MACHINE_SUPPORTS_SAVE ) // not an actual phoenix set, but works as one -GAME( 2001, pzloop2jd, pzloop2, dead_cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010226 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, hsf2d, hsf2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, xmcotar1d, xmcota, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "X-Men: Children of the Atom (Euro 950105 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mshud, msh, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Marvel Super Heroes (US 951024 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cybotsud, cybots, dead_cps2, cybots, cps2_state, init_cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (USA 950424 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cybotsjd, cybots, dead_cps2, cybots, cps2_state, init_cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (Japan 950424) (decrypted bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nwarrud, nwarr, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Night Warriors: Darkstalkers' Revenge (USA 950406 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfad, sfa, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Alpha: Warriors' Dreams (Euro 950727 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 19xxd, 19xx, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT270, "bootleg", "19XX: The War Against Destiny (USA 951207 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ddsomud, ddsom, dead_cps2, cps2_4p4b, cps2_state, init_cps2, ROT0, "bootleg", "Dungeons & Dragons: Shadow over Mystara (USA 960619 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, gigaman2, megaman2, gigaman2, cps2_2p3b, cps2_state, init_gigaman2, ROT0, "bootleg", "Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // Different layer offsets and sound system +GAME( 1996, megamn2d, megaman2, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Mega Man 2: The Power Fighters (USA 960708 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2ad, sfa2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Asia 960227 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2jd, sfa2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Japan 960227 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2td, spf2t, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Super Puzzle Fighter II Turbo (USA 960620 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2xjd, spf2t, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Super Puzzle Fighter II X (Japan 960531 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2ald, sfz2al, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 2 Alpha (Asia 960826 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, xmvsfu1d, xmvsf, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "X-Men Vs. Street Fighter (USA 961004 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, batcird, batcir, dead_cps2, cps2_4p2b, cps2_state, init_cps2, ROT0, "bootleg", "Battle Circuit (Euro 970319 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, csclub1d, csclub, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Capcom Sports Club (Euro 970722 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mshvsfu1d, mshvsf, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Marvel Super Heroes Vs. Street Fighter (USA 970625 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sgemfd, sgemf, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Super Gem Fighter Mini Mix (USA 970904 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsavd, vsav, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Vampire Savior: The Lord of Vampire (Euro 970519 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vhunt2d, vhunt2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, vsav2d, vsav2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Vampire Savior 2: The Lord of Vampire (Japan 970913 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mvscud, mvsc, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfa3ud, sfa3, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Alpha 3 (USA 980904 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sfz3jr2d, sfa3, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Street Fighter Zero 3 (Japan 980629 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gigawingd, gigawing, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Giga Wing (USA 990222 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gigawingjd, gigawing, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "Giga Wing (Japan 990223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, 1944d, 1944, dead_cps2, cps2_2p2b, cps2_state, init_cps2, ROT0, "bootleg", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dimahoud, dimahoo, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT270, "bootleg", "Dimahoo (USA 000121 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mmatrixd, mmatrix, dead_cps2, cps2_2p1b, cps2_state, init_cps2, ROT0, "bootleg", "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, progearud, progear, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Progear (USA 010117 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, progearjd, progear, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, progearjbl, progear, dead_cps2, cps2_2p3b, cps2_state, init_cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117) (decrypted bootleg)", MACHINE_SUPPORTS_SAVE ) // Not an actual phoenix set, but works as one +GAME( 2001, pzloop2jd, pzloop2, dead_cps2, pzloop2, cps2_state, init_pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010226 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, hsf2d, hsf2, dead_cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "bootleg", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/cxg_ch2001.cpp mame-0.224+dfsg.1/src/mame/drivers/cxg_ch2001.cpp --- mame-0.223+dfsg.1/src/mame/drivers/cxg_ch2001.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/cxg_ch2001.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,7 +3,8 @@ // thanks-to:Berger /****************************************************************************** -CXG Chess 2001, also sold by Hanimex as HCG 1900 and by CGL as Computachess Champion. +CXG Chess 2001, also sold by Hanimex as Computachess (model HCG 1900), +and by CGL as Computachess Champion. CXG Chess 3000 is assumed to be on similar hardware as this. The chess engine is by Richard Lang, based on Cyrus. @@ -74,16 +75,12 @@ void leds_w(u8 data); u8 input_r(); - u16 m_inp_mux; - int m_dac_data; + u16 m_inp_mux = 0; + int m_dac_data = 0; }; void ch2001_state::machine_start() { - // zerofill - m_inp_mux = 0; - m_dac_data = 0; - // register for savestates save_item(NAME(m_inp_mux)); save_item(NAME(m_dac_data)); @@ -188,7 +185,7 @@ Z80(config, m_maincpu, 8_MHz_XTAL/2); m_maincpu->set_addrmap(AS_PROGRAM, &ch2001_state::main_map); - const attotime irq_period = attotime::from_hz(533); // theoretical frequency from 555 timer (20nF, 100K+33K, 1K2), measurement was 568Hz + const attotime irq_period = attotime::from_hz(568); // 555 timer (20nF, 100K+33K, 1K2), measured 568Hz TIMER(config, m_irq_on).configure_periodic(FUNC(ch2001_state::irq_on), irq_period); m_irq_on->set_start_delay(irq_period - attotime::from_nsec(16600)); // active for 16.6us TIMER(config, "irq_off").configure_periodic(FUNC(ch2001_state::irq_off), irq_period); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/dai.cpp mame-0.224+dfsg.1/src/mame/drivers/dai.cpp --- mame-0.223+dfsg.1/src/mame/drivers/dai.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/dai.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -63,26 +63,21 @@ #include "emu.h" #include "includes/dai.h" #include "screen.h" -#include "softlist.h" #include "speaker.h" -/* I/O ports */ -void dai_state::dai_io(address_map &map) -{ -} /* memory w/r functions */ -void dai_state::dai_mem(address_map &map) +void dai_state::mem_map(address_map &map) { - map(0x0000, 0xbfff).bankrw("bank1"); - map(0xc000, 0xdfff).rom(); + map(0x0000, 0xbfff).ram().share("mainram"); + map(0xc000, 0xdfff).rom().region("maincpu",0); map(0xe000, 0xefff).bankr("bank2"); - map(0xf000, 0xf7ff).w(FUNC(dai_state::dai_stack_interrupt_circuit_w)); + map(0xf000, 0xf7ff).w(FUNC(dai_state::stack_interrupt_circuit_w)); map(0xf800, 0xf8ff).ram(); - map(0xfb00, 0xfbff).rw(FUNC(dai_state::dai_amd9511_r), FUNC(dai_state::dai_amd9511_w)); - map(0xfc00, 0xfcff).rw(FUNC(dai_state::dai_pit_r), FUNC(dai_state::dai_pit_w)); // .rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write)); - map(0xfd00, 0xfdff).rw(FUNC(dai_state::dai_io_discrete_devices_r), FUNC(dai_state::dai_io_discrete_devices_w)); - map(0xfe00, 0xfeff).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0xfb00, 0xfbff).rw(FUNC(dai_state::amd9511_r), FUNC(dai_state::amd9511_w)); + map(0xfc00, 0xfcff).rw(FUNC(dai_state::pit_r), FUNC(dai_state::pit_w)); // .rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)); + map(0xfd00, 0xfdff).rw(FUNC(dai_state::io_discrete_devices_r), FUNC(dai_state::io_discrete_devices_w)); + map(0xfe00, 0xfeff).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)); map(0xff00, 0xff0f).mirror(0xf0).m(m_tms5501, FUNC(tms5501_device::io_map)); } @@ -183,7 +178,7 @@ }; static GFXDECODE_START( gfx_dai ) - GFXDECODE_ENTRY( "gfx1", 0x0000, dai_charlayout, 0, 8 ) + GFXDECODE_ENTRY( "chargen", 0x0000, dai_charlayout, 0, 8 ) GFXDECODE_END /* machine definition */ @@ -191,8 +186,7 @@ { /* basic machine hardware */ I8080(config, m_maincpu, 2000000); - m_maincpu->set_addrmap(AS_PROGRAM, &dai_state::dai_mem); - m_maincpu->set_addrmap(AS_IO, &dai_state::dai_io); + m_maincpu->set_addrmap(AS_PROGRAM, &dai_state::mem_map); m_maincpu->set_irq_acknowledge_callback(FUNC(dai_state::int_ack)); config.set_maximum_quantum(attotime::from_hz(60)); @@ -204,7 +198,7 @@ m_pit->set_clk<2>(2000000); m_pit->out_handler<2>().set(m_sound, FUNC(dai_sound_device::set_input_ch2)); - I8255(config, "ppi8255"); + I8255(config, "ppi"); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -212,7 +206,7 @@ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(1056, 542); screen.set_visarea(0, 1056-1, 0, 302-1); - screen.set_screen_update(FUNC(dai_state::screen_update_dai)); + screen.set_screen_update(FUNC(dai_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_dai); @@ -234,11 +228,8 @@ /* tms5501 */ TMS5501(config, m_tms5501, 2000000); m_tms5501->int_callback().set_inputline("maincpu", I8085_INTR_LINE); - m_tms5501->xi_callback().set(FUNC(dai_state::dai_keyboard_r)); - m_tms5501->xo_callback().set(FUNC(dai_state::dai_keyboard_w)); - - /* internal ram */ - RAM(config, RAM_TAG).set_default_size("48K"); + m_tms5501->xi_callback().set(FUNC(dai_state::keyboard_r)); + m_tms5501->xo_callback().set(FUNC(dai_state::keyboard_w)); /* software lists */ SOFTWARE_LIST(config, "cass_list").set_original("dai_cass"); @@ -246,15 +237,16 @@ ROM_START(dai) - ROM_REGION(0x14000,"maincpu",0) - ROM_LOAD("dai.bin", 0xc000, 0x2000, CRC(ca71a7d5) SHA1(6bbe2336c717354beab2ae201debeb4fd055bdcb)) - ROM_LOAD("dai00.bin", 0x10000, 0x1000, CRC(fa7d39ac) SHA1(3d1824a1f273882f934249ef3cb1b38ef99de7b9)) - ROM_LOAD("dai01.bin", 0x11000, 0x1000, CRC(cb5809f2) SHA1(523656f0a9d98888cd3e2bd66886c589e9ae75b4)) - ROM_LOAD("dai02.bin", 0x12000, 0x1000, CRC(03f72d4a) SHA1(573d65dc82321970dcaf81d7638a02252ea18a7a)) - ROM_LOAD("dai03.bin", 0x13000, 0x1000, CRC(c475c96f) SHA1(96fc3cc4b8a2873f0d044bd8033d1e7b7197dd97)) - ROM_REGION(0x2000, "gfx1",0) + ROM_REGION(0x6000,"maincpu",0) + ROM_LOAD("dai.bin", 0x0000, 0x2000, CRC(ca71a7d5) SHA1(6bbe2336c717354beab2ae201debeb4fd055bdcb)) + ROM_LOAD("dai00.bin", 0x2000, 0x1000, CRC(fa7d39ac) SHA1(3d1824a1f273882f934249ef3cb1b38ef99de7b9)) + ROM_LOAD("dai01.bin", 0x3000, 0x1000, CRC(cb5809f2) SHA1(523656f0a9d98888cd3e2bd66886c589e9ae75b4)) + ROM_LOAD("dai02.bin", 0x4000, 0x1000, CRC(03f72d4a) SHA1(573d65dc82321970dcaf81d7638a02252ea18a7a)) + ROM_LOAD("dai03.bin", 0x5000, 0x1000, CRC(c475c96f) SHA1(96fc3cc4b8a2873f0d044bd8033d1e7b7197dd97)) + + ROM_REGION(0x2000, "chargen",0) ROM_LOAD ("nch.bin", 0x0000, 0x1000, CRC(a9f5b30b) SHA1(24119b2984ab4e50dc0dabae1065ff6d6c1f237d)) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1978, dai, 0, 0, dai, dai, dai_state, empty_init, "Data Applications International", "DAI Personal Computer", 0) +COMP( 1978, dai, 0, 0, dai, dai, dai_state, empty_init, "Data Applications International", "DAI Personal Computer", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/dblewing.cpp mame-0.224+dfsg.1/src/mame/drivers/dblewing.cpp --- mame-0.223+dfsg.1/src/mame/drivers/dblewing.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/dblewing.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -423,6 +423,11 @@ ROM_REGION( 0x40000, "oki", 0 ) /* Oki samples */ ROM_LOAD( "kp_03-.16h", 0x000000, 0x020000, CRC(5d7f930d) SHA1(ad23aa804ea3ccbd7630ade9b53fc3ea2718a6ec) ) ROM_RELOAD( 0x020000, 0x020000 ) + + ROM_REGION( 0x600, "plds", 0 ) + ROM_LOAD( "pal16l8-vg-00.1f", 0x000, 0x117, CRC(8c2849e5) SHA1(72c5142dd78ea7d009229bad9f1a5651eec1e858) ) + ROM_LOAD( "pal16l8-vg-01.1h", 0x200, 0x117, CRC(04b0bab6) SHA1(6b1ad69506b385eeeac6cb952e166304bf6fbb40) ) + ROM_LOAD( "pal16r8-vg-02.11b", 0x400, 0x117, NO_DUMP ) ROM_END ROM_START( dblewinga ) @@ -443,6 +448,11 @@ ROM_REGION( 0x40000, "oki", 0 ) /* Oki samples */ ROM_LOAD( "kp_03-.16h", 0x000000, 0x020000, CRC(5d7f930d) SHA1(ad23aa804ea3ccbd7630ade9b53fc3ea2718a6ec) ) ROM_RELOAD( 0x020000, 0x020000 ) + + ROM_REGION( 0x600, "plds", 0 ) + ROM_LOAD( "pal16l8-vg-00.1f", 0x000, 0x117, CRC(8c2849e5) SHA1(72c5142dd78ea7d009229bad9f1a5651eec1e858) ) + ROM_LOAD( "pal16l8-vg-01.1h", 0x200, 0x117, CRC(04b0bab6) SHA1(6b1ad69506b385eeeac6cb952e166304bf6fbb40) ) + ROM_LOAD( "pal16r8-vg-02.11b", 0x400, 0x117, NO_DUMP ) ROM_END /* @@ -467,6 +477,11 @@ ROM_REGION( 0x40000, "oki", 0 ) /* Oki samples */ ROM_LOAD( "kp_03-.16h", 0x000000, 0x020000, CRC(5d7f930d) SHA1(ad23aa804ea3ccbd7630ade9b53fc3ea2718a6ec) ) ROM_RELOAD( 0x020000, 0x020000 ) + + ROM_REGION( 0x600, "plds", 0 ) + ROM_LOAD( "pal16l8-vg-00.1f", 0x000, 0x117, CRC(8c2849e5) SHA1(72c5142dd78ea7d009229bad9f1a5651eec1e858) ) + ROM_LOAD( "pal16l8-vg-01.1h", 0x200, 0x117, CRC(04b0bab6) SHA1(6b1ad69506b385eeeac6cb952e166304bf6fbb40) ) + ROM_LOAD( "pal16r8-vg-02.11b", 0x400, 0x117, NO_DUMP ) ROM_END void dblewing_state::init_dblewing() diff -Nru mame-0.223+dfsg.1/src/mame/drivers/dct11em.cpp mame-0.224+dfsg.1/src/mame/drivers/dct11em.cpp --- mame-0.223+dfsg.1/src/mame/drivers/dct11em.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/dct11em.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,17 +1,31 @@ // license:BSD-3-Clause -// copyright-holders:Miodrag Milanovic +// copyright-holders:Miodrag Milanovic,Robbbert /*************************************************************************** - DEC DCT11-EM +DEC DCT11-EM (Evaluation Module) + +2010-12-03 Skeleton driver. + +System currently works, but with some hacks to replace the unemulated DC319 +DLART (Digital Link Asynchronous Receiver/Transmitter). + + +TODO: +- user LED (it's there but it doesn't work) +- DLART device to be emulated +- hookups between DLART (and its DL terminal), UART and remaining interrupts - 03/12/2010 Skeleton driver. ****************************************************************************/ #include "emu.h" #include "cpu/t11/t11.h" -#include "emupal.h" -#include "screen.h" +#include "machine/i8251.h" +#include "machine/i8255.h" +#include "bus/rs232/rs232.h" +#include "machine/clock.h" +#include "machine/terminal.h" +#include "dct11em.lh" class dct11em_state : public driver_device @@ -20,77 +34,280 @@ dct11em_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") + , m_ppi(*this, "ppi") + , m_uart(*this, "uart") + , m_terminal(*this, "terminal") + , m_io_keyboard(*this, "X%u", 0U) + , m_digits(*this, "digit%d", 0U) { } void dct11em(machine_config &config); + DECLARE_INPUT_CHANGED_MEMBER(halt_button); + DECLARE_INPUT_CHANGED_MEMBER(int_button); private: - virtual void machine_reset() override; - virtual void video_start() override; + void machine_reset() override; + void machine_start() override; - void dct11em_mem(address_map &map); + void porta_w(u8); + void portc_w(u8); + u8 portc_r(); + void irq_encoder(u8, bool); + u8 dlart_r(offs_t); + void dlart_w(offs_t, u8); + void kbd_put(u8 data); + + u8 m_term_data; + u8 m_seg_lower; + u8 m_seg_upper; + u8 m_portc; + u16 m_irqs; + bool m_dlart_maintmode; - uint32_t screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void mem_map(address_map &map); required_device m_maincpu; + required_device m_ppi; + required_device m_uart; + required_device m_terminal; + required_ioport_array<5> m_io_keyboard; + output_finder<12> m_digits; }; -void dct11em_state::dct11em_mem(address_map &map) +void dct11em_state::mem_map(address_map &map) { map.unmap_value_high(); - map(0x0000, 0x0fff).ram(); // RAM - map(0x2000, 0x2fff).ram(); // Optional RAM - map(0xa000, 0xdfff).rom(); // RAM + map(0x0000, 0x0fff).ram(); // 2x 6116 + map(0x1000, 0x1fff).noprw(); // the ram test reads/writes here even though there's no ram + map(0x2000, 0x2fff).ram(); // expansion sockets, 2x 6116 + map(0xa000, 0xdfff).rom(); + map(0xff20, 0xff27).nopr().lw8(NAME([this] (offs_t offset, u8 data) { m_ppi->write(offset>>1, data); })); + map(0xff28, 0xff2b).nopr().lw8(NAME([this] (offs_t offset, u8 data) { m_uart->write(offset>>1, data); })); + map(0xff60, 0xff67).lr8(NAME([this] (offs_t offset) { return m_ppi->read(offset>>1); })); + map(0xff68, 0xff6b).lr8(NAME([this] (offs_t offset) { return m_uart->read(offset>>1); })); + //map(0xff70, 0xff7f). // DC319 DLART unemulated device - uart to terminal + map(0xff70, 0xff7f).rw(FUNC(dct11em_state::dlart_r), FUNC(dct11em_state::dlart_w)); } -/* Input ports */ -static INPUT_PORTS_START( dct11em ) -INPUT_PORTS_END +// dummy routines to pass the DLART test and to talk to the ascii terminal +u8 dct11em_state::dlart_r(offs_t offset) +{ + offset >>= 1; + switch (offset) + { + case 0: + if (m_term_data) + return 0xff; + else + return 0xfd; + case 1: + { + u8 ret = m_term_data; + irq_encoder(3, 0); // Release IRQ3 + m_term_data = 0; + return ret; + } + default: + return 0xfd; + } +} + +void dct11em_state::dlart_w(offs_t offset, u8 data) +{ + offset >>= 1; + switch (offset) + { + case 3: + if (m_dlart_maintmode) + m_term_data = data; + else + m_terminal->write(data); + break; + case 2: + m_dlart_maintmode = BIT(data, 4); + break; + default: + break; + } +} + +void dct11em_state::porta_w(u8 data) +{ + m_seg_lower = data; + if (BIT(m_portc, 3)) + m_seg_upper = data; +} + +void dct11em_state::portc_w(u8 data) +{ + data &= 15; + m_portc = data; + if (BIT(data, 3)) + { + m_seg_upper = m_seg_lower; + irq_encoder(10, 0); // Release IRQ10 + } + if (data < 6) + { + m_digits[data] = m_seg_lower; + m_digits[data+6] = m_seg_upper; + } + output().set_value("led0", (data!=9)); +} +u8 dct11em_state::portc_r() +{ + if (m_portc < 5) + return m_io_keyboard[m_portc]->read(); + else + return 0; +} + +/* + * interrupts (p. 101) + * + * IRQ CPx Pri Vec Device + * --- --- --- --- ------ + * 15 LLLL 7 140 DLART receiver break + * 11 LHLL 6 100 External interrupt + * 10 LHLH 6 104 Keypad/LED scanning + * 7 HLLL 5 120 8251 receiver + * 6 HLLH 5 124 8251 transmitter + * 3 HHLL 4 060 DLART receiver + * 2 HHLH 4 064 DLART transmitter */ + void dct11em_state::irq_encoder(u8 irq, bool state) +{ + if (state) + m_irqs |= (1 << irq); + else + m_irqs &= ~(1 << irq); + + int i; + for (i = 15; i > 0; i--) + if (BIT(m_irqs, i)) + break; + + m_maincpu->set_input_line(t11_device::CP3_LINE, BIT(i, 3) ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(t11_device::CP2_LINE, BIT(i, 2) ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(t11_device::CP1_LINE, BIT(i, 1) ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(t11_device::CP0_LINE, BIT(i, 0) ? ASSERT_LINE : CLEAR_LINE); +} void dct11em_state::machine_reset() { + m_irqs = 0; } -void dct11em_state::video_start() +void dct11em_state::machine_start() { + m_digits.resolve(); + save_item(NAME(m_seg_lower)); + save_item(NAME(m_seg_upper)); + save_item(NAME(m_portc)); + save_item(NAME(m_irqs)); + save_item(NAME(m_term_data)); + save_item(NAME(m_dlart_maintmode)); } -uint32_t dct11em_state::screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) + +/* Input ports */ +static INPUT_PORTS_START( dct11em ) + PORT_START("X0") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CLR") PORT_CODE(KEYCODE_SPACE) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1/GOLED") PORT_CODE(KEYCODE_1) // Go with LEDs + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4/PROTEC") PORT_CODE(KEYCODE_4) // Release protection + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7/PC") PORT_CODE(KEYCODE_7) + PORT_START("X1") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0/CANCEL") PORT_CODE(KEYCODE_0) // Cancel breakpoints + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2/CONSOL") PORT_CODE(KEYCODE_2) // Start console + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8/PS") PORT_CODE(KEYCODE_8) + PORT_START("X2") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EXA/ENTER") PORT_CODE(KEYCODE_ENTER) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3/BAUD") PORT_CODE(KEYCODE_3) // Set baud rates + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6/SP") PORT_CODE(KEYCODE_6) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9/WP") PORT_CODE(KEYCODE_9) + PORT_START("X3") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ADV") PORT_CODE(KEYCODE_UP) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("BAC") PORT_CODE(KEYCODE_DOWN) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("REG") PORT_CODE(KEYCODE_R) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ADR") PORT_CODE(KEYCODE_MINUS) // Address + PORT_START("X4") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("SST") PORT_CODE(KEYCODE_S) // Single-step + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("GO") PORT_CODE(KEYCODE_X) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("BPT") PORT_CODE(KEYCODE_B) // Breakpoint + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FNC") PORT_CODE(KEYCODE_LALT) // Function + PORT_START("X5") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("HALT") PORT_CODE(KEYCODE_H) PORT_CHANGED_MEMBER(DEVICE_SELF, dct11em_state, halt_button, 0) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INT") PORT_CODE(KEYCODE_I) PORT_CHANGED_MEMBER(DEVICE_SELF, dct11em_state, int_button, 0) +INPUT_PORTS_END + +INPUT_CHANGED_MEMBER(dct11em_state::halt_button) +{ + m_maincpu->set_input_line(t11_device::HLT_LINE, newval ? ASSERT_LINE : CLEAR_LINE); +} + +INPUT_CHANGED_MEMBER(dct11em_state::int_button) { - return 0; + m_maincpu->set_input_line(t11_device::PF_LINE, newval ? ASSERT_LINE : CLEAR_LINE); } +void dct11em_state::kbd_put(u8 data) +{ + m_term_data = data; + irq_encoder(3, 1); // Assert IRQ3 +} void dct11em_state::dct11em(machine_config &config) { /* basic machine hardware */ - T11(config, m_maincpu, 7500000); // 7.5MHz XTAL + T11(config, m_maincpu, 7'500'000); // 7.5MHz XTAL m_maincpu->set_initial_mode(0x1403); /* according to specs */ - m_maincpu->set_addrmap(AS_PROGRAM, &dct11em_state::dct11em_mem); + m_maincpu->set_addrmap(AS_PROGRAM, &dct11em_state::mem_map); + + config.set_default_layout(layout_dct11em); - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(50); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ - screen.set_size(640, 480); - screen.set_visarea(0, 640-1, 0, 480-1); - screen.set_screen_update(FUNC(dct11em_state::screen_update_dct11em)); - screen.set_palette("palette"); + I8255(config, m_ppi); + m_ppi->out_pa_callback().set(FUNC(dct11em_state::porta_w)); // segments + // port B - expansion interface + m_ppi->in_pc_callback().set(FUNC(dct11em_state::portc_r)); // keyboard + m_ppi->out_pc_callback().set(FUNC(dct11em_state::portc_w)); // digits + + I8251(config, m_uart, 2'457'600 / 8); + m_uart->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); + m_uart->dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); + m_uart->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); + m_uart->rxrdy_handler().set([this] (bool state) { irq_encoder(7, state); }); + m_uart->txrdy_handler().set([this] (bool state) { irq_encoder(6, state); }); + + clock_device &inta_clock(CLOCK(config, "inta_clock", 614'400 / 768)); // 800Hz, from DLART pin 25 + inta_clock.signal_handler().set([this] (bool state) { if (state) irq_encoder(10, 1); }); // Assert IRQ10 + + //clock_device &dlart_clock(CLOCK(config, "dlart_clock", 2'457'600 / 4)); --> to DLART CLK pin 32 + + clock_device &uart_clock(CLOCK(config, "uart_clock", 2'457'600 / 32)); // from DLART pin 34 + uart_clock.signal_handler().set(m_uart, FUNC(i8251_device::write_txc)); + uart_clock.signal_handler().append(m_uart, FUNC(i8251_device::write_rxc)); + + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); // connection to host mainframe, does nothing for us + rs232.rxd_handler().set(m_uart, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(m_uart, FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set(m_uart, FUNC(i8251_device::write_cts)); - PALETTE(config, "palette", palette_device::MONOCHROME); + GENERIC_TERMINAL(config, m_terminal, 0); // Main terminal for now + m_terminal->set_keyboard_callback(FUNC(dct11em_state::kbd_put)); } /* ROM definition */ ROM_START( dct11em ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) // Highest address line inverted - ROM_LOAD16_BYTE( "23-213e4.bin", 0x8000, 0x2000, CRC(bdd82f39) SHA1(347deeff77596b67eee27a39a9c40075fcf5c10d)) - ROM_LOAD16_BYTE( "23-214e4.bin", 0x8001, 0x2000, CRC(b523dae8) SHA1(cd1a64a2bce9730f7a9177d391663919c7f56073)) + ROM_LOAD16_BYTE( "23-213e4.e53", 0x8000, 0x2000, CRC(bdd82f39) SHA1(347deeff77596b67eee27a39a9c40075fcf5c10d)) + ROM_LOAD16_BYTE( "23-214e4.e45", 0x8001, 0x2000, CRC(b523dae8) SHA1(cd1a64a2bce9730f7a9177d391663919c7f56073)) ROM_COPY("maincpu", 0x8000, 0xc000, 0x2000) ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, dct11em, 0, 0, dct11em, dct11em, dct11em_state, empty_init, "Digital Equipment Corporation", "DCT11-EM", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1983, dct11em, 0, 0, dct11em, dct11em, dct11em_state, empty_init, "Digital Equipment Corporation", "DCT11-EM", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/ddenlovr.cpp mame-0.224+dfsg.1/src/mame/drivers/ddenlovr.cpp --- mame-0.223+dfsg.1/src/mame/drivers/ddenlovr.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/ddenlovr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -254,10 +254,8 @@ DECLARE_WRITE_LINE_MEMBER(ddenlovr_irq); DECLARE_WRITE_LINE_MEMBER(mmpanic_irq); DECLARE_WRITE_LINE_MEMBER(mmpanic_rtc_irq); - DECLARE_WRITE_LINE_MEMBER(hanakanz_irq); DECLARE_WRITE_LINE_MEMBER(funkyfig_sound_irq); DECLARE_WRITE_LINE_MEMBER(mjflove_irq); - DECLARE_WRITE_LINE_MEMBER(hanakanz_rtc_irq); DECLARE_WRITE_LINE_MEMBER(mjflove_rtc_irq); void ddenlovr_bgcolor_w(uint8_t data); @@ -9992,34 +9990,6 @@ 0xe2 is from the 6242RTC */ -WRITE_LINE_MEMBER(ddenlovr_state::hanakanz_irq) -{ - if (!state) - return; - - /* I haven't found a irq ack register, so I need this kludge to - make sure I don't lose any interrupt generated by the blitter, - otherwise quizchq would lock up. */ - //if (downcast(m_maincpu)->input_state(0)) - // return; - - m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe0); // Z80 -} - -WRITE_LINE_MEMBER(ddenlovr_state::hanakanz_rtc_irq) -{ - if (!state) - return; - - /* I haven't found a irq ack register, so I need this kludge to - make sure I don't lose any interrupt generated by the blitter, - otherwise quizchq would lock up. */ - //if (downcast(drvm_maincpu)->input_state(0)) - // return; - - m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe2); // Z80 -} - void ddenlovr_state::hanakanz(machine_config &config) { /* basic machine hardware */ @@ -10038,7 +10008,7 @@ m_screen->set_visarea(0, 336-1, 5, 256-11-1); m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr)); m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); - m_screen->screen_vblank().set(FUNC(ddenlovr_state::hanakanz_irq)); + m_screen->screen_vblank().set("maincpu:kp69", FUNC(kp69_device::ir_w<0>)); PALETTE(config, m_palette, palette_device::BLACK).set_entries(0x200); @@ -10054,7 +10024,7 @@ /* devices */ msm6242_device &rtc(MSM6242(config, "rtc", XTAL(32'768))); - rtc.out_int_handler().set(FUNC(ddenlovr_state::hanakanz_rtc_irq)); + rtc.out_int_handler().set("maincpu:kp69", FUNC(kp69_device::ir_w<1>)); } void ddenlovr_state::hkagerou(machine_config &config) @@ -10083,7 +10053,7 @@ m_screen->set_visarea(0, 336-1-1, 1+4, 256-15-1+4); m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr)); m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); - m_screen->screen_vblank().set(FUNC(ddenlovr_state::hanakanz_irq)); + m_screen->screen_vblank().set("maincpu:kp69", FUNC(kp69_device::ir_w<0>)); PALETTE(config, m_palette, palette_device::BLACK).set_entries(0x200); @@ -10098,7 +10068,7 @@ m_oki->add_route(ALL_OUTPUTS, "mono", 0.80); /* devices */ -// MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(FUNC(ddenlovr_state::hanakanz_rtc_irq)); +// MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set("maincpu:kp69", FUNC(kp69_device::ir_w<1>)); } void ddenlovr_state::kotbinsp(machine_config &config) @@ -10486,7 +10456,7 @@ m_screen->set_visarea(0, 336-1, 5, 256-11-1); m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr)); m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); - m_screen->screen_vblank().set(FUNC(ddenlovr_state::hanakanz_irq)); + m_screen->screen_vblank().set("maincpu:kp69", FUNC(kp69_device::ir_w<0>)); PALETTE(config, m_palette, palette_device::BLACK).set_entries(0x200); @@ -10502,7 +10472,7 @@ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80); /* devices */ - MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(FUNC(ddenlovr_state::hanakanz_rtc_irq)); + MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set("maincpu:kp69", FUNC(kp69_device::ir_w<1>)); } void ddenlovr_state::mjgnight(machine_config &config) @@ -10700,7 +10670,7 @@ m_screen->set_visarea(0, 336-1-1, 1, 256-15-1); m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr)); m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); - m_screen->screen_vblank().set(FUNC(ddenlovr_state::hanakanz_irq)); + m_screen->screen_vblank().set("maincpu:kp69", FUNC(kp69_device::ir_w<0>)); PALETTE(config, m_palette, palette_device::BLACK).set_entries(0x200); @@ -10714,7 +10684,7 @@ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80); /* devices */ - MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(FUNC(ddenlovr_state::hanakanz_rtc_irq)); + MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set("maincpu:kp69", FUNC(kp69_device::ir_w<1>)); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/de_3b.cpp mame-0.224+dfsg.1/src/mame/drivers/de_3b.cpp --- mame-0.223+dfsg.1/src/mame/drivers/de_3b.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/de_3b.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -522,8 +522,8 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("baycpud.400", 0x0000, 0x10000, CRC(45019616) SHA1(5a1e04cdfa00f179f010c09fae52d090553cd82e)) ROM_REGION(0x01000000, "cpu3", 0) - ROM_LOAD16_BYTE("bayrom0d.400", 0x00000000, 0x00080000, CRC(3f195829) SHA1(a10a1b7f125f239b0eff87ee6667c8250b7ffc87)) - ROM_LOAD16_BYTE("bayrom3d.400", 0x00000001, 0x00080000, CRC(ae3d8585) SHA1(28b38ebc2755ffb3859f8091a9bf50d868794a3e)) + ROM_LOAD16_BYTE("bayrom0a.400", 0x00000000, 0x00080000, CRC(43d615c6) SHA1(7c843b6d5215305b02a55c9fa1d62375ef0766ea)) + ROM_LOAD16_BYTE("bayrom3a.400", 0x00000001, 0x00080000, CRC(41bcb66b) SHA1(e6f0a9236e14c2e919881ca1ffe3356aaa121730)) ROM_REGION(0x010000, "soundcpu", 0) ROM_LOAD("bayw.u7", 0x0000, 0x10000, CRC(90d6d8a8) SHA1(482c5643453f21a078257aa13398845ef19cab3c)) ROM_REGION(0x1000000, "bsmt", 0) @@ -533,7 +533,7 @@ ROM_START(bay_e400) ROM_REGION(0x10000, "maincpu", 0) - ROM_LOAD("baycpua2.400", 0x0000, 0x10000, CRC(07b77fe2) SHA1(4f81a5b3d821907e06d6b547117ad39c238a900c)) + ROM_LOAD("baycpue.400", 0x0000, 0x10000, CRC(07b77fe2) SHA1(4f81a5b3d821907e06d6b547117ad39c238a900c)) ROM_REGION(0x01000000, "cpu3", 0) ROM_LOAD16_BYTE("bayrom0a.400", 0x00000000, 0x00080000, CRC(43d615c6) SHA1(7c843b6d5215305b02a55c9fa1d62375ef0766ea)) ROM_LOAD16_BYTE("bayrom3a.400", 0x00000001, 0x00080000, CRC(41bcb66b) SHA1(e6f0a9236e14c2e919881ca1ffe3356aaa121730)) @@ -549,8 +549,21 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("baycpud.300", 0x0000, 0x10000, CRC(c160f045) SHA1(d1f75d5ba292b25278539b01e0f4908276d34e34)) ROM_REGION(0x01000000, "cpu3", 0) - ROM_LOAD16_BYTE("bayrom0d.300", 0x00000000, 0x00080000, CRC(3f195829) SHA1(a10a1b7f125f239b0eff87ee6667c8250b7ffc87)) - ROM_LOAD16_BYTE("bayrom3d.300", 0x00000001, 0x00080000, CRC(ae3d8585) SHA1(28b38ebc2755ffb3859f8091a9bf50d868794a3e)) + ROM_LOAD16_BYTE("bayrom0a.300", 0x00000000, 0x00080000, CRC(3f195829) SHA1(a10a1b7f125f239b0eff87ee6667c8250b7ffc87)) + ROM_LOAD16_BYTE("bayrom3a.300", 0x00000001, 0x00080000, CRC(ae3d8585) SHA1(28b38ebc2755ffb3859f8091a9bf50d868794a3e)) + ROM_REGION(0x010000, "soundcpu", 0) + ROM_LOAD("bayw.u7", 0x0000, 0x10000, CRC(90d6d8a8) SHA1(482c5643453f21a078257aa13398845ef19cab3c)) + ROM_REGION(0x1000000, "bsmt", 0) + ROM_LOAD("bayw.u17", 0x000000, 0x80000, CRC(b20fde56) SHA1(2f2db49245e4a6a8251cbe896b2437fcec88d42d)) + ROM_LOAD("bayw.u21", 0x080000, 0x80000, CRC(b7598881) SHA1(19d1dde1cb6634a7c7b5cdb4fa01cd09cc7d7777)) +ROM_END + +ROM_START(bay_f201) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD("baycpuf.201", 0x0000, 0x10000, CRC(d2fddeaa) SHA1(839baca46823dc72a7ef1421764815f69f0e7084)) + ROM_REGION(0x01000000, "cpu3", 0) + ROM_LOAD16_BYTE("bayrom0f.200", 0x00000000, 0x00080000, CRC(6dc898b6) SHA1(087b043acf64b2a16c8e4c879b90dbea1d79c614)) + ROM_LOAD16_BYTE("bayrom3f.200", 0x00000001, 0x00080000, CRC(9db1b94e) SHA1(056c1a0fd1c99c1c9426f2e2cdd68f4bbaa89d81)) ROM_REGION(0x010000, "soundcpu", 0) ROM_LOAD("bayw.u7", 0x0000, 0x10000, CRC(90d6d8a8) SHA1(482c5643453f21a078257aa13398845ef19cab3c)) ROM_REGION(0x1000000, "bsmt", 0) @@ -700,6 +713,7 @@ GAME(1995, bay_d300, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (3.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1995, bay_d400, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (4.00 English)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1995, bay_e400, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (4.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_f201, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (2.01 French)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1994, frankst, 0, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein", MACHINE_IS_SKELETON_MECHANICAL) GAME(1995, frankstg, frankst, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein (Germany)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1994, mav_402, 0, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.02)", MACHINE_IS_SKELETON_MECHANICAL) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/destroyr.cpp mame-0.224+dfsg.1/src/mame/drivers/destroyr.cpp --- mame-0.223+dfsg.1/src/mame/drivers/destroyr.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/destroyr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -5,9 +5,6 @@ Atari Destroyer Driver TODO: -- discrete sound -- accurate implementation of scanline counter as documented in schematics, - generate irqs from there, and refresh rate 15750/262 (~60.1) instead of 60 - missing language roms means DIP switches related to these do not function ***************************************************************************/ @@ -15,9 +12,15 @@ #include "emu.h" #include "cpu/m6800/m6800.h" #include "machine/74259.h" +#include "machine/timer.h" #include "machine/watchdog.h" #include "emupal.h" #include "screen.h" +#include "speaker.h" +#include "machine/netlist.h" + +#include "netlist/nl_setup.h" +#include "audio/nl_destroyr.h" #include "destroyr.lh" @@ -25,27 +28,40 @@ class destroyr_state : public driver_device { public: - destroyr_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_watchdog(*this, "watchdog"), - m_gfxdecode(*this, "gfxdecode"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_alpha_num_ram(*this, "alpha_nuram"), - m_major_obj_ram(*this, "major_obj_ram"), - m_minor_obj_ram(*this, "minor_obj_ram") + destroyr_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_watchdog(*this, "watchdog") + , m_gfxdecode(*this, "gfxdecode") + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_inputs(*this, "IN%u", 0U) + , m_paddle(*this, "PADDLE") + , m_alpha_num_ram(*this, "alpha_nuram") + , m_major_obj_ram(*this, "major_obj_ram") + , m_minor_obj_ram(*this, "minor_obj_ram") + , m_sound_motor_speed(*this, "sound_nl:motor_speed") + , m_sound_noise(*this, "sound_nl:noise") + , m_sound_attract(*this, "sound_nl:attract") + , m_sound_songate(*this, "sound_nl:songate") + , m_sound_launch(*this, "sound_nl:launch") + , m_sound_explo(*this, "sound_nl:explo") + , m_sound_sonlat(*this, "sound_nl:sonlat") + , m_sound_hexplo(*this, "sound_nl:hexplo") + , m_sound_lexplo(*this, "sound_nl:lexplo") { } void destroyr(machine_config &config); private: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - enum - { - TIMER_DESTROYR_DIAL, - TIMER_DESTROYR_FRAME - }; + static const device_timer_id TIMER_DIAL = 0; + static const device_timer_id TIMER_FRAME = 1; + + void main_map(address_map &map); void misc_w(uint8_t data); void cursor_load_w(uint8_t data); @@ -53,17 +69,13 @@ uint8_t input_r(offs_t offset); uint8_t scanline_r(); - void destroyr_palette(palette_device &palette) const; + void palette_init(palette_device &palette) const; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(dial_callback); TIMER_CALLBACK_MEMBER(frame_callback); - - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - void destroyr_map(address_map &map); + TIMER_DEVICE_CALLBACK_MEMBER(scanline_irq); /* devices */ required_device m_maincpu; @@ -71,12 +83,25 @@ required_device m_gfxdecode; required_device m_screen; required_device m_palette; + required_ioport_array<3> m_inputs; + required_ioport m_paddle; /* memory pointers */ required_shared_ptr m_alpha_num_ram; required_shared_ptr m_major_obj_ram; required_shared_ptr m_minor_obj_ram; + /* audio triggers */ + required_device m_sound_motor_speed; + required_device m_sound_noise; + required_device m_sound_attract; + required_device m_sound_songate; + required_device m_sound_launch; + required_device m_sound_explo; + required_device m_sound_sonlat; + required_device m_sound_hexplo; + required_device m_sound_lexplo; + /* video-related */ int m_cursor; int m_wavemod; @@ -85,8 +110,6 @@ int m_potmask[2]; int m_potsense[2]; int m_attract; - int m_motor_speed; - int m_noise; emu_timer *m_dial_timer; emu_timer *m_frame_timer; }; @@ -94,12 +117,10 @@ uint32_t destroyr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - int i, j; - bitmap.fill(0, cliprect); /* draw major objects */ - for (i = 0; i < 16; i++) + for (int i = 0; i < 16; i++) { int attr = m_major_obj_ram[2 * i + 0] ^ 0xff; int horz = m_major_obj_ram[2 * i + 1]; @@ -123,9 +144,9 @@ } /* draw alpha numerics */ - for (i = 0; i < 8; i++) + for (int i = 0; i < 8; i++) { - for (j = 0; j < 32; j++) + for (int j = 0; j < 32; j++) { int num = m_alpha_num_ram[32 * i + j]; @@ -134,7 +155,7 @@ } /* draw minor objects */ - for (i = 0; i < 2; i++) + for (int i = 0; i < 2; i++) { int num = i << 4 | (m_minor_obj_ram[i + 0] & 0xf); int horz = 256 - m_minor_obj_ram[i + 2]; @@ -144,13 +165,13 @@ } /* draw waves */ - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) { m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0); } /* draw cursor */ - for (i = 0; i < 256; i++) + for (int i = 0; i < 256; i++) { if (i & 4) bitmap.pix16(m_cursor ^ 0xff, i) = 7; @@ -163,10 +184,10 @@ { switch (id) { - case TIMER_DESTROYR_DIAL: + case TIMER_DIAL: dial_callback(ptr, param); break; - case TIMER_DESTROYR_FRAME: + case TIMER_FRAME: frame_callback(ptr, param); break; default: @@ -201,11 +222,18 @@ m_potsense[1] = 0; /* PCB supports two dials, but cab has only got one */ - m_dial_timer->adjust(m_screen->time_until_pos(ioport("PADDLE")->read())); + m_dial_timer->adjust(m_screen->time_until_pos(m_paddle->read())); m_frame_timer->adjust(m_screen->time_until_pos(0)); } +TIMER_DEVICE_CALLBACK_MEMBER(destroyr_state::scanline_irq) +{ + // 16V clocks LS74 flip-flop with D = 32V and /Q output connected to /IRQ on 6800 + m_maincpu->set_input_line(M6800_IRQ_LINE, BIT(param, 5) ? ASSERT_LINE : CLEAR_LINE); +} + + void destroyr_state::machine_reset() { m_frame_timer->adjust(m_screen->time_until_pos(0)); @@ -217,20 +245,19 @@ m_potsense[0] = 0; m_potsense[1] = 0; m_attract = 0; - m_motor_speed = 0; - m_noise = 0; } void destroyr_state::misc_w(uint8_t data) { /* bits 0 to 2 connect to the sound circuits */ - m_attract = data & 0x01; - m_noise = data & 0x02; - m_motor_speed = data & 0x04; - m_potmask[0] = data & 0x08; - m_wavemod = data & 0x10; - m_potmask[1] = data & 0x20; + m_attract = BIT(data, 0); + m_sound_attract->write(m_attract); + m_sound_noise->write(BIT(data, 1)); + m_sound_motor_speed->write(BIT(data, 2)); + m_potmask[0] = BIT(data, 3); + m_wavemod = BIT(data, 4); + m_potmask[1] = BIT(data, 5); machine().bookkeeping().coin_lockout_w(0, !m_attract); machine().bookkeeping().coin_lockout_w(1, !m_attract); @@ -246,7 +273,7 @@ void destroyr_state::interrupt_ack_w(uint8_t data) { - m_maincpu->set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE); } @@ -254,18 +281,14 @@ { if (offset & 1) { - return ioport("IN1")->read(); + return m_inputs[1]->read(); } else { - uint8_t ret = ioport("IN0")->read(); - - if (m_potsense[0] && m_potmask[0]) - ret |= 4; - if (m_potsense[1] && m_potmask[1]) - ret |= 8; - + uint8_t ret = m_inputs[0]->read(); + ret |= (m_potsense[0] && m_potmask[0]) ? (1 << 2) : 0; + ret |= (m_potsense[1] && m_potmask[1]) ? (1 << 3) : 0; return ret; } } @@ -277,7 +300,7 @@ } -void destroyr_state::destroyr_map(address_map &map) +void destroyr_state::main_map(address_map &map) { map.global_mask(0x7fff); map(0x0000, 0x00ff).mirror(0xf00).ram(); @@ -438,7 +461,7 @@ GFXDECODE_END -void destroyr_state::destroyr_palette(palette_device &palette) const +void destroyr_state::palette_init(palette_device &palette) const { palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); // major objects palette.set_pen_color(1, rgb_t(0x50, 0x50, 0x50)); @@ -453,14 +476,12 @@ void destroyr_state::machine_start() { - m_dial_timer = timer_alloc(TIMER_DESTROYR_DIAL); - m_frame_timer = timer_alloc(TIMER_DESTROYR_FRAME); + m_dial_timer = timer_alloc(TIMER_DIAL); + m_frame_timer = timer_alloc(TIMER_FRAME); save_item(NAME(m_cursor)); save_item(NAME(m_wavemod)); save_item(NAME(m_attract)); - save_item(NAME(m_motor_speed)); - save_item(NAME(m_noise)); save_item(NAME(m_potmask)); save_item(NAME(m_potsense)); } @@ -468,34 +489,50 @@ void destroyr_state::destroyr(machine_config &config) { /* basic machine hardware */ - M6800(config, m_maincpu, XTAL(12'096'000) / 16); - m_maincpu->set_addrmap(AS_PROGRAM, &destroyr_state::destroyr_map); - m_maincpu->set_periodic_int(FUNC(destroyr_state::irq0_line_assert), attotime::from_hz(4*60)); + M6800(config, m_maincpu, 12.096_MHz_XTAL / 16); + m_maincpu->set_addrmap(AS_PROGRAM, &destroyr_state::main_map); + + TIMER(config, "scantimer").configure_scanline(FUNC(destroyr_state::scanline_irq), m_screen, 16, 32); f9334_device &outlatch(F9334(config, "outlatch")); // F8 outlatch.q_out_cb<0>().set_output("led0").invert(); // LED 1 outlatch.q_out_cb<1>().set_output("led1").invert(); // LED 2 (no second LED present on cab) - // Q2 => songate - // Q3 => launch - // Q4 => explosion - // Q5 => sonar - // Q6 => high explosion - // Q7 => low explosion + outlatch.q_out_cb<2>().set(m_sound_songate, FUNC(netlist_mame_logic_input_device::write)); + outlatch.q_out_cb<3>().set(m_sound_launch, FUNC(netlist_mame_logic_input_device::write)); + outlatch.q_out_cb<4>().set(m_sound_explo, FUNC(netlist_mame_logic_input_device::write)); + outlatch.q_out_cb<5>().set(m_sound_sonlat, FUNC(netlist_mame_logic_input_device::write)); + outlatch.q_out_cb<6>().set(m_sound_hexplo, FUNC(netlist_mame_logic_input_device::write)); + outlatch.q_out_cb<7>().set(m_sound_lexplo, FUNC(netlist_mame_logic_input_device::write)); WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(60); - m_screen->set_size(256, 262); - m_screen->set_visarea(0, 255, 0, 239); + m_screen->set_raw(12.096_MHz_XTAL / 2, 384, 0, 256, 263, 0, 240); m_screen->set_screen_update(FUNC(destroyr_state::screen_update)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_destroyr); - PALETTE(config, m_palette, FUNC(destroyr_state::destroyr_palette), 8); + PALETTE(config, m_palette, FUNC(destroyr_state::palette_init), 8); /* sound hardware */ + SPEAKER(config, "mono").front_center(); + + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(destroyr)) + .add_route(ALL_OUTPUTS, "mono", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:motor_speed", "MOTOR_SPEED.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:noise", "NOISE.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:attract", "ATTRACT.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:songate", "SONGATE.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:launch", "LAUNCH.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:explo", "EXPLO.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:sonlat", "SONLAT.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:hexplo", "HE.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:lexplo", "LE.IN", 0); + + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(32767.0, 0.0); } @@ -518,7 +555,7 @@ ROM_REGION( 0x0020, "gfx4", 0 ) /* waves */ ROM_LOAD( "030136-01.k2", 0x0000, 0x0020, CRC(532c11b1) SHA1(18ab5369a3f2cfcc9a44f38fa8649524bea5b203) ) - ROM_REGION( 0x0100, "user1", 0 ) /* sync (used for vsync/vblank signals, not hooked up yet) */ + ROM_REGION( 0x0100, "syncprom", 0 ) /* used for vsync/vblank signals */ ROM_LOAD( "030131-01.m1", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) ROM_END @@ -544,10 +581,10 @@ ROM_REGION( 0x0020, "gfx4", 0 ) /* waves */ ROM_LOAD( "030136-01.k2", 0x0000, 0x0020, CRC(532c11b1) SHA1(18ab5369a3f2cfcc9a44f38fa8649524bea5b203) ) - ROM_REGION( 0x0100, "user1", 0 ) /* sync (used for vsync/vblank signals, not hooked up yet) */ + ROM_REGION( 0x0100, "syncprom", 0 ) /* used for vsync/vblank signals */ ROM_LOAD( "030131-01.m1", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) ROM_END -GAMEL( 1977, destroyr, 0, destroyr, destroyr, destroyr_state, empty_init, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_destroyr ) -GAMEL( 1977, destroyr1, destroyr, destroyr, destroyr, destroyr_state, empty_init, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_destroyr ) +GAMEL( 1977, destroyr, 0, destroyr, destroyr, destroyr_state, empty_init, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O2)", MACHINE_SUPPORTS_SAVE, layout_destroyr ) +GAMEL( 1977, destroyr1, destroyr, destroyr, destroyr, destroyr_state, empty_init, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O1)", MACHINE_SUPPORTS_SAVE, layout_destroyr ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/dpb7000.cpp mame-0.224+dfsg.1/src/mame/drivers/dpb7000.cpp --- mame-0.223+dfsg.1/src/mame/drivers/dpb7000.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/dpb7000.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -45,7 +45,7 @@ #define LOG_ALL (LOG_UNKNOWN | LOG_CSR | LOG_CTRLBUS | LOG_SYS_CTRL | LOG_FDC_CTRL | LOG_FDC_PORT | LOG_FDC_CMD | LOG_FDC_MECH | LOG_BRUSH_ADDR | \ LOG_STORE_ADDR | LOG_COMBINER | LOG_SIZE_CARD | LOG_FILTER_CARD) -#define VERBOSE (LOG_ALL &~ LOG_FDC_CTRL) +#define VERBOSE (0)//(LOG_ALL &~ LOG_FDC_CTRL) #include "logmacro.h" class dpb7000_state : public driver_device @@ -143,6 +143,11 @@ void diskseq_y_w(uint16_t data); void diskseq_tick(); + void advance_line_count(); + void toggle_line_clock(); + void process_sample(); + void process_byte_from_disc(uint8_t data_byte); + required_device m_maincpu; required_device_array m_acia; required_device m_p_int; @@ -171,6 +176,7 @@ uint8_t m_fdd_ctrl; uint8_t m_fdd_port1; uint8_t m_fdd_track; + uint8_t m_fdd_side; fdc_pll_t m_fdd_pll; required_device m_floppy0; @@ -232,7 +238,8 @@ uint8_t m_diskseq_ed_cnt; // ED uint8_t m_diskseq_head_cnt; // EC uint16_t m_diskseq_cyl_from_cpu; // AE/BH - uint16_t m_diskseq_cmd_from_cpu; // DD/CC + uint16_t m_diskseq_cmd_word_from_cpu; // DD/CC + uint8_t m_diskseq_cmd; uint8_t m_diskseq_cyl_to_ctrl; uint8_t m_diskseq_cmd_to_ctrl; uint8_t m_diskseq_status_in; // CG @@ -253,6 +260,9 @@ uint16_t m_cursor_size_y; // Brush Address Card + uint8_t m_line_clock; + uint16_t m_line_count; + uint16_t m_line_length; uint16_t m_brush_addr_func; uint8_t m_bif; uint8_t m_bixos; @@ -303,6 +313,9 @@ uint8_t *m_filter_mult; uint8_t m_filter_acbc[16]; uint8_t m_filter_abbb[16]; + uint8_t m_incoming_lum; + uint8_t m_incoming_chr; + bool m_buffer_lum; // Size Card required_device m_size_yl; @@ -488,7 +501,8 @@ save_item(NAME(m_diskseq_ed_cnt)); save_item(NAME(m_diskseq_head_cnt)); save_item(NAME(m_diskseq_cyl_from_cpu)); - save_item(NAME(m_diskseq_cmd_from_cpu)); + save_item(NAME(m_diskseq_cmd_word_from_cpu)); + save_item(NAME(m_diskseq_cmd)); save_item(NAME(m_diskseq_cyl_to_ctrl)); save_item(NAME(m_diskseq_cmd_to_ctrl)); save_item(NAME(m_diskseq_status_in)); @@ -506,6 +520,7 @@ save_item(NAME(m_fdd_ctrl)); save_item(NAME(m_fdd_port1)); save_item(NAME(m_fdd_track)); + save_item(NAME(m_fdd_side)); // Disc Data Buffer Card save_item(NAME(m_diskbuf_ram_addr)); @@ -519,6 +534,9 @@ save_item(NAME(m_cursor_size_y)); // Brush Address Card + save_item(NAME(m_line_clock)); + save_item(NAME(m_line_count)); + save_item(NAME(m_line_length)); save_item(NAME(m_brush_addr_func)); save_item(NAME(m_bif)); save_item(NAME(m_bixos)); @@ -585,6 +603,9 @@ m_filter_mult = m_filter_multprom->base(); save_item(NAME(m_filter_acbc)); save_item(NAME(m_filter_abbb)); + save_item(NAME(m_incoming_lum)); + save_item(NAME(m_incoming_chr)); + save_item(NAME(m_buffer_lum)); m_yuv_lut = std::make_unique(0x1000000); for (uint16_t u = 0; u < 256; u++) @@ -623,11 +644,12 @@ m_diskseq_ed_cnt = 0; m_diskseq_head_cnt = 0; m_diskseq_cyl_from_cpu = 0; - m_diskseq_cmd_from_cpu = 0; + m_diskseq_cmd_word_from_cpu = 0; + m_diskseq_cmd = 0; m_diskseq_cyl_to_ctrl = 0; m_diskseq_cmd_to_ctrl = 0; m_diskseq_status_in = 0; - m_diskseq_status_out = 0xff; + m_diskseq_status_out = 0xf9; memset(m_diskseq_ucode_latch, 0, 7); memset(m_diskseq_cc_inputs, 0, 4); m_diskseq_cyl_read_pending = false; @@ -641,6 +663,7 @@ m_fdd_ctrl = 0; m_fdd_port1 = 0; m_fdd_track = 20; + m_fdd_side = 0; m_fdd_pll.set_clock(attotime::from_hz(1000000)); m_fdd_pll.reset(machine().time()); m_floppy = nullptr; @@ -657,6 +680,9 @@ m_cursor_size_y = 0; // Brush Address Card + m_line_clock = 0; + m_line_count = 0; + m_line_length = 0; m_brush_addr_func = 0; m_bif = 0; m_bixos = 0; @@ -708,6 +734,9 @@ // Filter Card memset(m_filter_acbc, 0, 16); memset(m_filter_abbb, 0, 16); + m_incoming_lum = 0; + m_incoming_chr = 0; + m_buffer_lum = true; // Size Card m_size_h = 0; @@ -812,9 +841,9 @@ m_diskseq_cc_inputs[2] |= BIT(m_diskseq_status_in, DSEQ_STATUS_RAM_ADDR_OVFLO_BIT); // C17..C19 tied low - m_diskseq_cc_inputs[2] |= ~(m_diskseq_cmd_from_cpu & 0xf) << 4; + m_diskseq_cc_inputs[2] |= ~(m_diskseq_cmd_word_from_cpu & 0xf) << 4; - m_diskseq_cc_inputs[3] = ~(m_diskseq_cmd_from_cpu >> 4) & 0xff; + m_diskseq_cc_inputs[3] = ~(m_diskseq_cmd_word_from_cpu >> 4) & 0xff; // S15, S16: Select which bank of 8 lines is treated as /CC input to Am2910 const uint8_t fx_bank_sel = (BIT(m_diskseq_ucode_latch[2], 0) << 1) | BIT(m_diskseq_ucode_latch[1], 7); @@ -981,7 +1010,7 @@ ret = m_diskseq_status_out; //req_b_w(0); break; - case 0x7: + case 7: ret = m_diskbuf_ram[m_diskbuf_ram_addr]; LOGMASKED(LOG_CTRLBUS, "%s: CPU read from Control Bus, Disc Data Buffer Card RAM read: %04x = %02x\n", machine().describe_context(), m_diskbuf_ram_addr, ret); m_diskbuf_ram_addr++; @@ -1097,6 +1126,8 @@ case 1: // Brush Store Read break; case 2: // Brush Store Write + m_bxlen_counter = m_bxlen; + m_bylen_counter = m_bylen; break; case 3: // Framestore Read break; @@ -1131,24 +1162,39 @@ { if (!BIT(data, 5 + i) && m_cxpos[i] < 800 && m_cypos[i] < 768) { - uint16_t bxlen = (((m_bxlen << 3) | (m_bixos & 7)) >> (m_bif & 3)) & 0xfff; - uint16_t bylen = (((m_bylen << 3) | (m_biyos & 7)) >> ((m_bif >> 2) & 3)) & 0xfff; - for (uint16_t y = m_cypos[i], by = bylen; by != 0x1000 && y < 768; by++, y++) + uint16_t bxlen = m_bxlen;//(((m_bxlen << 3) | (m_bixos & 7)) >> (m_bif & 3)) & 0xfff; + uint16_t bylen = m_bylen;//(((m_bylen << 3) | (m_biyos & 7)) >> ((m_bif >> 2) & 3)) & 0xfff; + for (uint16_t y = m_cypos[i], bly = bylen; bly != 0x1000 && y < 768; bly++, y++) { uint8_t *lum = &m_framestore_lum[i][y * 800]; uint8_t *chr = &m_framestore_chr[i][y * 800]; - for (uint16_t x = m_cxpos[i], bx = bxlen; bx != 0x1000 && x < 800; bx++, x++) + for (uint16_t x = m_cxpos[i], blx = bxlen; blx != 0x1000 && x < 800; blx++, x++) { if (BIT(data, 13)) // Fixed Colour Select { - uint8_t y = 0x00; - uint8_t u = 0x80; - uint8_t v = 0x80; + uint8_t y = m_bs_y_latch; + uint8_t u = m_bs_u_latch; + uint8_t v = m_bs_v_latch; if (!BIT(data, 12)) // Brush Zero { - y = m_bs_y_latch; - u = m_bs_u_latch; - v = m_bs_v_latch; + y = 0x00; + u = 0x80; + v = 0x80; + } + else if (!BIT(data, 9)) + { + uint16_t bx = ((((blx - bxlen) << 3) | (m_bixos & 7)) >> (3 - (m_bif & 3))) & 0xfff; + uint16_t by = ((((bly - bylen) << 3) | (m_biyos & 7)) >> ((3 - (m_bif >> 2)) & 3)) & 0xfff; + + // TODO: Actual Brush Processor functionality + uint16_t lum_sum = lum[x] + m_brushstore_lum[by * 256 + bx]; + uint16_t chr_sum = chr[x] + m_brushstore_chr[by * 256 + bx]; + y = lum_sum > 0xff ? 0xff : (uint16_t)lum_sum; + uint8_t chr_clamped = chr_sum > 0xff ? 0xff : (uint16_t)chr_sum; + if (m_cxpos[i] & 1) + v = chr_clamped; + else + u = chr_clamped; } lum[x] = y; chr[x] = (m_cxpos[i] & 1) ? v : u; @@ -1216,6 +1262,7 @@ uint16_t old_cyl = m_diskseq_cyl_from_cpu; m_diskseq_cyl_from_cpu = data & 0x3ff; LOGMASKED(LOG_CTRLBUS, "%s: CPU write to Control Bus, Disk Sequencer Card, Cylinder Number: %04x\n", machine().describe_context(), m_diskseq_cyl_from_cpu); + //printf("Cylinder %d\n", m_diskseq_cyl_from_cpu); if (old_cyl != m_diskseq_cyl_from_cpu && m_diskseq_cyl_from_cpu < 78 && m_floppy != nullptr) { if (m_diskseq_cyl_from_cpu < old_cyl) @@ -1248,87 +1295,78 @@ } else if (hi_nybble == 2) { - m_diskseq_cmd_from_cpu = data & 0xfff; + m_diskseq_cmd_word_from_cpu = data & 0xfff; + m_diskseq_cmd = (data >> 8) & 0xf; req_b_w(0); // Flag ourselves as in-use LOGMASKED(LOG_CTRLBUS, "%s: CPU write to Control Bus, Disk Sequencer Card, Command: %x (%04x)\n", machine().describe_context(), (data >> 8) & 0xf, data); LOGMASKED(LOG_CTRLBUS, "%s Head: %x\n", machine().describe_context(), data & 0xf); LOGMASKED(LOG_CTRLBUS, "%s Drive: %x\n", machine().describe_context(), (data >> 5) & 7); - switch ((data >> 8) & 0xf) + switch (m_diskseq_cmd) { case 1: - LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Unknown command nybble 1\n", machine().describe_context()); + case 5: + case 9: + case 13: + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: No command\n", machine().describe_context()); req_b_w(1); //m_diskseq_complete_clk->adjust(attotime::from_msec(1)); break; case 0: - LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Read (floppy?) track to RAM buffer?\n", machine().describe_context()); + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Read track to buffer RAM\n", machine().describe_context()); if (!BIT(m_diskseq_status_out, 3)) { m_diskseq_cyl_read_pending = true; + m_fdd_side = 0; + } + break; + case 2: + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Read track, stride 2, to buffer RAM\n", machine().describe_context()); + if (!BIT(m_diskseq_status_out, 3)) + { + m_diskseq_cyl_read_pending = true; + m_fdd_side = 0; } break; - case 6: case 4: - { - //req_b_w(1); - m_diskseq_cyl_read_pending = true; - LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: %s track read to Brush Store (ignored for now)\n", machine().describe_context(), - ((data >> 8) & 0xf) == 6 ? "Initiate" : "Continue"); - /*if (((data >> 8) & 0xf) == 6) + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Read Track\n", machine().describe_context()); + if (!BIT(m_diskseq_status_out, 3)) { - m_size_h = 0; - m_size_v = 0; + m_diskbuf_data_count = 0x2700; + m_line_count = 0; + m_line_clock = 0; + m_diskseq_cyl_read_pending = true; + m_fdd_side = 0; } - uint16_t disc_buffer_addr = 0; - uint16_t bx = m_bxlen_counter - m_bxlen; - uint16_t by = m_bylen_counter - m_bylen; - while (m_diskbuf_data_count > 0 && m_bylen_counter < 0x1000) + break; + case 6: + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Disc Clear, Read Track\n", machine().describe_context()); + if (!BIT(m_diskseq_status_out, 3)) { - uint8_t hv = (m_size_h << 4) | m_size_v; - uint8_t hv_permuted = bitswap<8>(hv,4,6,0,2,5,7,1,3); - - if (BIT(m_brush_addr_func, 7)) // Luma Enable - { - //printf("%02x ", m_diskbuf_ram[disc_buffer_addr]); - m_brushstore_lum[by * 256 + hv_permuted] = m_diskbuf_ram[disc_buffer_addr]; - } - - disc_buffer_addr++; - m_diskbuf_data_count--; - - if (BIT(m_brush_addr_func, 8)) // Chroma Enable - { - m_brushstore_chr[by * 256 + hv_permuted] = m_diskbuf_ram[disc_buffer_addr]; - } - - disc_buffer_addr++; - m_diskbuf_data_count--; - - m_size_h++; - if (m_size_h == 16) - { - m_size_h = 0; - m_size_v++; - if (m_size_v == 16) - { - m_size_v = 0; - } - } - - bx++; - m_bxlen_counter++; - if (m_bxlen_counter == 0x1000) - { - bx = 0; - by++; - m_bxlen_counter = m_bxlen; - m_bylen_counter++; - //printf("\n"); - } - }*/ - m_diskseq_complete_clk->adjust(attotime::from_msec(1)); + m_diskbuf_data_count = 0x2700; + m_diskseq_cyl_read_pending = true; + m_fdd_side = 0; + } + break; + case 8: + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Write Track from Buffer RAM (not yet implemented)\n", machine().describe_context()); + req_b_w(1); + //m_diskseq_complete_clk->adjust(attotime::from_msec(1)); + break; + case 10: + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Write Track, stride 2, from Buffer RAM (not yet implemented)\n", machine().describe_context()); + req_b_w(1); + //m_diskseq_complete_clk->adjust(attotime::from_msec(1)); + break; + case 12: + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Write Track (not yet implemented)\n", machine().describe_context()); + req_b_w(1); + //m_diskseq_complete_clk->adjust(attotime::from_msec(1)); + break; + case 14: + LOGMASKED(LOG_CTRLBUS, "%s: Disk Sequencer Card Command: Disc Clear, Write Track (not yet implemented)\n", machine().describe_context()); + req_b_w(1); + //m_diskseq_complete_clk->adjust(attotime::from_msec(1)); break; - } default: LOGMASKED(LOG_CTRLBUS, "%s: Unknown Disk Sequencer Card command.\n", machine().describe_context()); m_diskseq_complete_clk->adjust(attotime::from_msec(1)); @@ -1496,7 +1534,7 @@ const uint16_t ctrl = m_sys_ctrl &~ SYSCTRL_AUTO_START; const uint16_t auto_start = m_auto_start->read() ? SYSCTRL_AUTO_START : 0; const uint16_t ret = ctrl | auto_start; - LOGMASKED(LOG_SYS_CTRL, "%s: CPU read from System Control: %04x\n", machine().describe_context(), ret); + //LOGMASKED(LOG_SYS_CTRL, "%s: CPU read from System Control: %04x\n", machine().describe_context(), ret); return ret; } @@ -1528,82 +1566,182 @@ return ret; } +void dpb7000_state::advance_line_count() +{ + m_line_length = 0; + m_line_count++; + toggle_line_clock(); +} + +void dpb7000_state::toggle_line_clock() +{ + m_line_clock ^= 1; +} + +void dpb7000_state::process_sample() +{ + const uint16_t x = (m_bxlen_counter - m_bxlen); + const uint16_t y = (m_bylen_counter - m_bylen); + //printf("Processing sample %d,%d (%04x:%04x, %04x:%04x) LC:%d\n", x, y, m_bxlen_counter, m_bxlen, m_bylen_counter, m_bylen, m_line_count); + if (BIT(m_brush_addr_func, 7)) + m_brushstore_lum[y * 256 + x] = m_incoming_lum; + if (BIT(m_brush_addr_func, 8)) + m_brushstore_chr[y * 256 + x] = m_incoming_chr; + + m_bxlen_counter++; + if (m_bxlen_counter == 0x1000) + { + m_bxlen_counter = m_bxlen; + m_bylen_counter++; + if (m_bylen_counter == 0x1000) + { + m_diskseq_cyl_read_pending = false; + } + } +} + +void dpb7000_state::process_byte_from_disc(uint8_t data_byte) +{ + if (m_buffer_lum) + { + m_incoming_lum = data_byte; + } + else + { + m_incoming_chr = data_byte; + process_sample(); + } + + m_buffer_lum = !m_buffer_lum; + m_line_length++; + if (m_line_length == 0x300) + { + advance_line_count(); + } +} + void dpb7000_state::fdd_index_callback(floppy_image_device *floppy, int state) { - if (!state && m_diskseq_cyl_read_pending && m_floppy) + if (!state && m_diskseq_cyl_read_pending && m_floppy && m_fdd_side < 2) { + //printf("Cylinder read is pending, index just passed by, we have a floppy. Let's go.\n"); m_fdd_pll.read_reset(machine().time()); static const uint16_t PREGAP_MARK = 0xaaaa; static const uint16_t SYNC_MARK = 0x9125; - m_floppy->ss_w(0); + m_floppy->ss_w(m_fdd_side); - for (int side = 0; side < 2; side++) + bool seen_pregap = false; + bool in_track = false; + int curr_bit = -1; + uint16_t curr_window = 0; + uint16_t bit_idx = 0; + + //printf("Side %d, not seen pregap, not in the track, no current bit, no current window, no bit index.\n", m_fdd_side); + attotime tm = machine().time(); + attotime limit = machine().time() + attotime::from_ticks(1, 6); // One revolution at 360rpm on a Shugart SA850 + do { - bool seen_pregap = false; - bool in_track = false; - int curr_bit = -1; - uint16_t curr_window = 0; - uint16_t bit_idx = 0; - - attotime tm = machine().time(); - attotime limit = machine().time() + attotime::from_ticks(1, 6); // One revolution at 360rpm on a Shugart SA850 - do + curr_bit = m_fdd_pll.get_next_bit(tm, m_floppy, limit); + if (curr_bit < 0) { - curr_bit = m_fdd_pll.get_next_bit(tm, m_floppy, limit); - if (curr_bit < 0) + LOGMASKED(LOG_FDC_MECH, "Warning: Unable to retrieve full track %d side %d, curr_bit returned -1\n", m_floppy->get_cyl(), m_fdd_side); + } + else + { + curr_window <<= 1; + curr_window |= curr_bit; + bit_idx++; + + if (!seen_pregap && curr_window == PREGAP_MARK) { - LOGMASKED(LOG_FDC_MECH, "Warning: Unable to retrieve full track %d side %d!\n", m_floppy->get_cyl(), side); + seen_pregap = true; + //printf("\nFound pregap area.\n"); + bit_idx = 0; + curr_window = 0; } - else + else if (seen_pregap && !in_track && curr_window == SYNC_MARK) { - curr_window <<= 1; - curr_window |= curr_bit; - bit_idx++; - //if ((bit_idx % 8) == 0) - //{ - // printf("%02x ", (uint8_t)curr_window); - //} - - if (!seen_pregap && curr_window == PREGAP_MARK) - { - seen_pregap = true; - //printf("\nFound pregap area.\n"); - bit_idx = 0; - curr_window = 0; - } - else if (seen_pregap && !in_track && curr_window == SYNC_MARK) - { - in_track = true; - //printf("\nOh hi, mark.\n"); - bit_idx = 0; - curr_window = 0; - } - else if (seen_pregap && in_track && bit_idx == 16) + in_track = true; + //printf("\nOh hi, mark.\n"); + bit_idx = 0; + curr_window = 0; + } + else if (seen_pregap && in_track && bit_idx == 16) + { + uint8_t data_byte = (uint8_t)bitswap<16>((uint16_t)curr_window, 15, 13, 11, 9, 7, 5, 3, 1, 14, 12, 10, 8, 6, 4, 2, 0); + //printf("%02x ", data_byte); + switch (m_diskseq_cmd) { - uint8_t data_byte = (uint8_t)bitswap<16>((uint16_t)curr_window, 15, 13, 11, 9, 7, 5, 3, 1, 14, 12, 10, 8, 6, 4, 2, 0); - m_diskbuf_ram[m_diskbuf_ram_addr] = data_byte; - m_diskbuf_ram_addr++; - if (m_diskbuf_ram_addr >= 0x2700 && side == 0) + case 4: // Read Track + case 6: // Disc Clear, Read Track + m_diskbuf_data_count--; + process_byte_from_disc(data_byte); + if (!m_diskseq_cyl_read_pending) + { + curr_bit = -1; + m_fdd_side = 2; + //printf("\nThe whole world has betrayed me!\n"); + } + else if (m_fdd_side == 0 && m_diskbuf_data_count == 0) { - // If we've read the side 0 portion of the cylinder, yield out and begin processing side 1 curr_bit = -1; m_floppy->ss_w(1); + m_fdd_side++; + m_diskbuf_data_count = 0x2400; //printf("\nCatch you on the flip side!\n"); } - else if(m_diskbuf_ram_addr >= 0x4b00 && side == 1) + else if (m_fdd_side == 1 && m_diskbuf_data_count == 0) + { + curr_bit = -1; + m_fdd_side++; + //printf("\nYou're my favorite customer.\n"); + } + break; + case 0: // Read Track to Buffer RAM + case 2: // Read Track, stride 2, to Buffer RAM + if (BIT(m_diskseq_cmd, 1)) + { + if (!BIT(m_diskbuf_ram_addr, 0)) + { + m_diskbuf_ram[m_diskbuf_ram_addr >> 1] = data_byte; + } + m_diskbuf_ram_addr++; + } + else + { + m_diskbuf_ram[m_diskbuf_ram_addr] = data_byte; + m_diskbuf_ram_addr++; + } + + if (m_diskbuf_ram_addr >= 0x2700 && m_fdd_side == 0) + { + // If we've read the side 0 portion of the cylinder, yield out and wait for the next index pulse + curr_bit = -1; + m_floppy->ss_w(1); + m_fdd_side++; + //printf("\nCatch you on the flip side!\n"); + } + else if(m_diskbuf_ram_addr >= 0x4B00 && m_fdd_side == 1) { // If we've read the side 1 portion of the cylinder, yield out, we're done curr_bit = -1; + m_fdd_side++; //printf("\nYou're my favorite customer.\n"); } - bit_idx = 0; - curr_window = 0; + break; } + bit_idx = 0; + curr_window = 0; } - } while (curr_bit != -1); - } + } + } while (curr_bit != -1); + //printf("\n"); + } + + if (m_fdd_side == 2) + { m_diskseq_cyl_read_pending = false; req_b_w(1); } @@ -1642,7 +1780,7 @@ if (m_fdd_track == 0) { - m_fdd_ctrl |= 0x04; + m_fdd_ctrl |= 0x04; // On Cylinder } else { @@ -1654,10 +1792,11 @@ m_fdd_ctrl &= ~0x04; } + // C5 D READY if (BIT(m_fdd_port1, 7)) - m_diskseq_status_out &= ~0x08; + m_diskseq_status_out &= ~(1 << 3); else - m_diskseq_status_out |= 0x08; + m_diskseq_status_out |= (1 << 3); } void dpb7000_state::fddcpu_p2_w(uint8_t data) @@ -1731,7 +1870,7 @@ uint8_t *src_lum = &m_brushstore_lum[(py - 512) * 256]; uint8_t *src_chr = &m_brushstore_chr[(py - 512) * 256]; uint32_t *dst = &bitmap.pix32(py); - for (int px = 0; px < 256; px++) + for (int px = 0; px < 256; px += 2) { const uint32_t u = *src_chr++ << 16; const uint32_t v = *src_chr++ << 8; diff -Nru mame-0.223+dfsg.1/src/mame/drivers/drdmania.cpp mame-0.224+dfsg.1/src/mame/drivers/drdmania.cpp --- mame-0.223+dfsg.1/src/mame/drivers/drdmania.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/drdmania.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -4,14 +4,14 @@ Skeleton driver for Sleic Dardomania darts machines This game has a monitor to select the game type. - PCB is marked SLEIC and DIANA'94 + PCB is marked "SLEIC", "DIANA'94" and "13/94". Hardware overview: - Main CPU: Z0840006PSC - Sound: AY-3-8910 - Other: MK48Z02B-20 - OSCs: 18.432 MHz - Dips: 1 x 6 dips banks + -Main CPU: Z0840006PSC + -Sound: AY-3-8910 + -Other: MK48Z02B-20 + -OSCs: 18.432 MHz + -Dips: 1 x 6 dips banks *******************************************************************************/ @@ -58,9 +58,9 @@ m_maincpu->set_addrmap(AS_PROGRAM, &drdmania_state::mem_map); m_maincpu->set_addrmap(AS_IO, &drdmania_state::io_map); - //NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); + //NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // MK48Z02B-20 - // SCREEN(config, "screen", SCREEN_TYPE_RASTER); + //SCREEN(config, "screen", SCREEN_TYPE_RASTER); SPEAKER(config, "mono").front_center(); @@ -78,7 +78,7 @@ ROM_LOAD( "dardomania_dmp05_v2.1.ic10", 0x18000, 0x8000, CRC(e24f2a02) SHA1(16f3a9c80b3d60c66b070521a90c958b0fc690e7) ) // 1ST AND 2ND HALF IDENTICAL ROM_REGION(0x20, "proms", 0) - ROM_LOAD( "n82s123n.ic49", 0x00, 0x20, NO_DUMP ) + ROM_LOAD( "n82s123n.ic49", 0x00, 0x20, CRC(dcbd2352) SHA1(ce72e84129ed1b455aaf648e1dfaa4333e7e7628) ) ROM_END -GAME(199?, drdmania, 0, drdmania, drdmania, drdmania_state, empty_init, ROT0, "Sleic", "Dardomania (v2.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, drdmania, 0, drdmania, drdmania, drdmania_state, empty_init, ROT0, "Sleic", "Dardomania (v2.1)", MACHINE_IS_SKELETON_MECHANICAL) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/exidy.cpp mame-0.224+dfsg.1/src/mame/drivers/exidy.cpp --- mame-0.223+dfsg.1/src/mame/drivers/exidy.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/exidy.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -999,38 +999,42 @@ ROM_START( targ ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hrl10a-1", 0x1800, 0x0800, CRC(969744e1) SHA1(e123bdb02b3b5f6a59c1e7c9ef557fe6bb19c62c) ) - ROM_LOAD( "hrl9a-1", 0x2000, 0x0800, CRC(a177a72d) SHA1(0e705e3e32021e55af4414fa0e2ccbc4980ee848) ) - ROM_LOAD( "hrl8a-1", 0x2800, 0x0800, CRC(6e6928a5) SHA1(10c725b27225ac5aad8639b081df68dd61522cf2) ) - ROM_LOAD( "hrl7a-1", 0x3000, 0x0800, CRC(e2f37f93) SHA1(b66743c296d3d4caba3bcbe6aa68cd6edd414816) ) - ROM_LOAD( "hrl6a-1", 0x3800, 0x0800, CRC(a60a1bfc) SHA1(17c0e67e1a0b263b57d70a148cc5d5099fecbb40) ) + ROM_LOAD( "hrl_10a1.10a", 0x1800, 0x0800, CRC(969744e1) SHA1(e123bdb02b3b5f6a59c1e7c9ef557fe6bb19c62c) ) + ROM_LOAD( "hrl_9a1.9a", 0x2000, 0x0800, CRC(a177a72d) SHA1(0e705e3e32021e55af4414fa0e2ccbc4980ee848) ) + ROM_LOAD( "hrl_8a1.8a", 0x2800, 0x0800, CRC(6e6928a5) SHA1(10c725b27225ac5aad8639b081df68dd61522cf2) ) + ROM_LOAD( "hrl_7a4.7a", 0x3000, 0x0800, CRC(e2f37f93) SHA1(b66743c296d3d4caba3bcbe6aa68cd6edd414816) ) + ROM_LOAD( "hrl_6a3.6a", 0x3800, 0x0800, CRC(a60a1bfc) SHA1(17c0e67e1a0b263b57d70a148cc5d5099fecbb40) ) ROM_REGION( 0x0400, "gfx1", 0 ) - ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) + ROM_LOAD( "hrl_11d-1.11d", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) ROM_REGION( 0x0140, "proms", 0 ) - ROM_LOAD( "hrl5c-1", 0x0000, 0x0100, CRC(a24290d0) SHA1(5f2888d168de874021b51c5d19a62fb8165e4454) ) /* address decoder */ - ROM_LOAD( "stl6d-1", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) /* unknown */ - ROM_LOAD( "hrl14h-1", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) /* unknown */ + ROM_LOAD( "hrl_5c-1.5c", 0x0000, 0x0100, CRC(a24290d0) SHA1(5f2888d168de874021b51c5d19a62fb8165e4454) ) // IM5623CJE (N82S129 compatible) BPROM - address decoder + ROM_LOAD( "stl_6d-1.6d", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // IM5610CPE (N82S123 compatible) BPROM - video RAM control + ROM_LOAD( "hrl_14h-1.14h", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // IM5610CPE (N82S123 compatible) BPROM - sprite control ROM_REGION( 0x0020, "targ", 0 ) - ROM_LOAD( "hra2b-1", 0x0000, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) ) /* unknown */ + ROM_LOAD( "hra2b-1", 0x0000, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) ) // sound "program" (tone frequencies) ROM_END - ROM_START( targc ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ctl.10a", 0x1800, 0x0800, CRC(058b3983) SHA1(8079667613c9273e95131c3c68cd92ce34c18148) ) - ROM_LOAD( "ctl.9a1", 0x2000, 0x0800, CRC(3ac44b6b) SHA1(8261ee7ee1c3cb05b2549464086bf6df09685743) ) - ROM_LOAD( "ctl.8a1", 0x2800, 0x0800, CRC(5c470021) SHA1(3638fc6827640857848cd649f10c1493025014de) ) - ROM_LOAD( "ctl.7a1", 0x3000, 0x0800, CRC(c774fd9b) SHA1(46272a64ad5cda0ff5ef3e9eeedefc555100a71a) ) - ROM_LOAD( "ctl.6a1", 0x3800, 0x0800, CRC(3d020439) SHA1(ebde4c851c9ecc310f110c7643a80275d97dc02c) ) + ROM_LOAD( "358_ctl_10a-1_tsv_11-10-80.10a", 0x1800, 0x0800, CRC(058b3983) SHA1(8079667613c9273e95131c3c68cd92ce34c18148) ) // hand written label: 358 CTL 10A-1 TSV 11/10/80 + ROM_LOAD( "358_ctl_9a-1_tsv_11-10-80.9a", 0x2000, 0x0800, CRC(3ac44b6b) SHA1(8261ee7ee1c3cb05b2549464086bf6df09685743) ) // hand written label: 358 CTL 9A-1 TSV 11/10/80 + ROM_LOAD( "358_ctl_8a-1_tsv_11-10-80.8a", 0x2800, 0x0800, CRC(5c470021) SHA1(3638fc6827640857848cd649f10c1493025014de) ) // hand written label: 358 CTL 8A-1 TSV 11/10/80 + ROM_LOAD( "358_ctl_7a-1_tsv_11-10-80.7a", 0x3000, 0x0800, CRC(c774fd9b) SHA1(46272a64ad5cda0ff5ef3e9eeedefc555100a71a) ) // hand written label: 358 CTL 7A-1 TSV 11/10/80 + ROM_LOAD( "358_ctl_6a-1_tsv_11-10-80.6a", 0x3800, 0x0800, CRC(3d020439) SHA1(ebde4c851c9ecc310f110c7643a80275d97dc02c) ) // hand written label: 358 CTL 6A-1 TSV 11/10/80 ROM_REGION( 0x0400, "gfx1", 0 ) - ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) + ROM_LOAD( "hrl_11d-1.11d", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) + + ROM_REGION( 0x0140, "proms", 0 ) + ROM_LOAD( "hrl_5c-1.5c", 0x0000, 0x0100, CRC(a24290d0) SHA1(5f2888d168de874021b51c5d19a62fb8165e4454) ) // IM5623CJE (N82S129 compatible) BPROM - address decoder + ROM_LOAD( "stl_6d-1.6d", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // IM5610CPE (N82S123 compatible) BPROM - video RAM control + ROM_LOAD( "hrl_14h-1.14h", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // IM5610CPE (N82S123 compatible) BPROM - sprite control ROM_REGION( 0x0020, "targ", 0 ) - ROM_LOAD( "hra2b-1", 0x0000, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) ) /* unknown */ + ROM_LOAD( "hra2b-1", 0x0000, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) ) // sound "program" (tone frequencies) ROM_END @@ -1053,7 +1057,6 @@ ROM_LOAD( "hrl14h-1", 0x0120, 0x0020, BAD_DUMP CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // 6331 according to the Spectar manual ROM_END - ROM_START( spectar1 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "spl12a1", 0x0800, 0x0800, CRC(7002efb4) SHA1(fbb19ccd2aee49b78606eadcbef94e842e1be905) ) @@ -1184,29 +1187,28 @@ ROM_END - ROM_START( mtrap ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "mtl11a.bin", 0xa000, 0x1000, CRC(bd6c3eb5) SHA1(248956374222a09caa5b8c8fa842e9286d8e1c5d) ) - ROM_LOAD( "mtl10a.bin", 0xb000, 0x1000, CRC(75b0593e) SHA1(48ce5382905f7c52929a95267d65fd0d3f0dcc92) ) - ROM_LOAD( "mtl9a.bin", 0xc000, 0x1000, CRC(28dd20ff) SHA1(8ac44ec27ac25209c8b49da4c6b423917ed8907e) ) - ROM_LOAD( "mtl8a.bin", 0xd000, 0x1000, CRC(cc09f7a4) SHA1(e806dc0e10b909b61e347f3e28eb024f3b3a9702) ) - ROM_LOAD( "mtl7a.bin", 0xe000, 0x1000, CRC(caafbb6d) SHA1(96823ac4e49f192121c53f70382a20f7c52e290b) ) - ROM_LOAD( "mtl6a.bin", 0xf000, 0x1000, CRC(d85e52ca) SHA1(51296247e365a468fe9458b722bbdbbeeed59fa0) ) + ROM_LOAD( "mtl-5_11a.11a", 0xa000, 0x1000, CRC(bd6c3eb5) SHA1(248956374222a09caa5b8c8fa842e9286d8e1c5d) ) + ROM_LOAD( "mtl-5_10a.10a", 0xb000, 0x1000, CRC(75b0593e) SHA1(48ce5382905f7c52929a95267d65fd0d3f0dcc92) ) + ROM_LOAD( "mtl-5_9a.9a", 0xc000, 0x1000, CRC(28dd20ff) SHA1(8ac44ec27ac25209c8b49da4c6b423917ed8907e) ) + ROM_LOAD( "mtl-5_8a.8a", 0xd000, 0x1000, CRC(cc09f7a4) SHA1(e806dc0e10b909b61e347f3e28eb024f3b3a9702) ) + ROM_LOAD( "mtl-5_7a.7a", 0xe000, 0x1000, CRC(caafbb6d) SHA1(96823ac4e49f192121c53f70382a20f7c52e290b) ) + ROM_LOAD( "mtl-5_6a.6a", 0xf000, 0x1000, CRC(d85e52ca) SHA1(51296247e365a468fe9458b722bbdbbeeed59fa0) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "mta5a.bin", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) - ROM_LOAD( "mta6a.bin", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) - ROM_LOAD( "mta7a.bin", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) + ROM_LOAD( "mta_5a.5a", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) + ROM_LOAD( "mta_6a.6a", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) + ROM_LOAD( "mta_7a.7a", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) ROM_REGION( 0x4000, "soundbd:cvsdcpu", 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) + ROM_LOAD( "mta_2a.2a", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) + ROM_LOAD( "mta_3a.3a", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) + ROM_LOAD( "mta_4a.4a", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) + ROM_LOAD( "mta_1a.1a", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "mtl11d.bin", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) + ROM_LOAD( "mtl_11d.11d", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) ROM_REGION( 0x140, "proms", 0 ) // h14 taken from bootleg, very likely same and matches teetert, but marked bad dump until verification - same note applies to mtrap clone sets ROM_LOAD( "74s288.h14", 0x0000, 0x0020, BAD_DUMP CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // 6331 according to the Mouse Trap manual @@ -1214,29 +1216,28 @@ ROM_LOAD( "74s288.d6", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // 6331 according to the Mouse Trap manual ROM_END - -ROM_START( mtrap2 ) +ROM_START( mtrap4 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "mtl-2.11a", 0xa000, 0x1000, CRC(a8cc3a18) SHA1(09fa9eff5ae5cb923d6e9137ba9a4b6944acffb2) ) - ROM_LOAD( "mtl-2.10a", 0xb000, 0x1000, CRC(e26b074c) SHA1(e8882edc818860d887c08e8083a40c4717412b2f) ) - ROM_LOAD( "mtl-2.9a", 0xc000, 0x1000, CRC(845394f6) SHA1(a150a6f00465abb787d8d46a2e32d8985364554e) ) - ROM_LOAD( "mtl-2.8a", 0xd000, 0x1000, CRC(854d2d50) SHA1(4213999acbc03ee8300b2fcf86349cd7450adae5) ) - ROM_LOAD( "mtl-2.7a", 0xe000, 0x1000, CRC(3d235f95) SHA1(57031d9784c55853dcf6e396ee685d8dd0d3ef87) ) - ROM_LOAD( "mtl-2.6a", 0xf000, 0x1000, CRC(7ed7632a) SHA1(6800d3c1b901808373d3edd2a3fcf699f93d7daf) ) + ROM_LOAD( "mtl-4_11a.11a", 0xa000, 0x1000, CRC(2879cb8d) SHA1(738bd3cd968fd733adcfe0fb5efdb2e2fcfb344e) ) + ROM_LOAD( "mtl-4_10a.10a", 0xb000, 0x1000, CRC(d7378af9) SHA1(44c8ba4c84f51306e5bdd64e6c255d1c1018db72) ) + ROM_LOAD( "mtl-4_9a.9a", 0xc000, 0x1000, CRC(be667e64) SHA1(c5f686e3c403691f14992354af690dc89e1722f7) ) + ROM_LOAD( "mtl-4_8a.8a", 0xd000, 0x1000, CRC(de0442f8) SHA1(61774921adf016b3a2ae18baa79af60dca2d9e45) ) + ROM_LOAD( "mtl-4_7a.7a", 0xe000, 0x1000, CRC(cdf8c6a8) SHA1(932ae9c0ea5700bd79862efa94742136d8e15641) ) + ROM_LOAD( "mtl-4_6a.6a", 0xf000, 0x1000, CRC(77d3f2e6) SHA1(2c21dd7ee326ccb41d3c64eec90a19198382edea) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "mta5a.bin", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) - ROM_LOAD( "mta6a.bin", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) - ROM_LOAD( "mta7a.bin", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) + ROM_LOAD( "mta_5a.5a", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) + ROM_LOAD( "mta_6a.6a", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) + ROM_LOAD( "mta_7a.7a", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) ROM_REGION( 0x4000, "soundbd:cvsdcpu", 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) + ROM_LOAD( "mta_2a.2a", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) + ROM_LOAD( "mta_3a.3a", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) + ROM_LOAD( "mta_4a.4a", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) + ROM_LOAD( "mta_1a.1a", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "mtl11d.bin", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) + ROM_LOAD( "mtl_11d.11d", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "74s288.h14", 0x0000, 0x0020, BAD_DUMP CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // 6331 according to the Mouse Trap manual @@ -1244,29 +1245,28 @@ ROM_LOAD( "74s288.d6", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // 6331 according to the Mouse Trap manual ROM_END - ROM_START( mtrap3 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "mtl-3.11a", 0xa000, 0x1000, CRC(4091be6e) SHA1(a4432f4588915276583f4b2e8db527fd24eb4291) ) - ROM_LOAD( "mtl-3.10a", 0xb000, 0x1000, CRC(38250c2f) SHA1(b70a2a1d423ba90ca873cc43db40422abee07718) ) - ROM_LOAD( "mtl-3.9a", 0xc000, 0x1000, CRC(2eec988e) SHA1(52167dabd672d16d454df746fb2c83c9e4253624) ) - ROM_LOAD( "mtl-3.8a", 0xd000, 0x1000, CRC(744b4b1c) SHA1(94955d0703559d668988cb7045f835f955e5dd8a) ) - ROM_LOAD( "mtl-3.7a", 0xe000, 0x1000, CRC(ea8ec479) SHA1(785557a242d9343c83cdc403b1f726cbea9d230f) ) - ROM_LOAD( "mtl-3.6a", 0xf000, 0x1000, CRC(d72ba72d) SHA1(4c5b311bc7ecfc6133bc09e586635844e2f1d6a9) ) + ROM_LOAD( "mtl-3_11a.11a", 0xa000, 0x1000, CRC(4091be6e) SHA1(a4432f4588915276583f4b2e8db527fd24eb4291) ) + ROM_LOAD( "mtl-3_10a.10a", 0xb000, 0x1000, CRC(38250c2f) SHA1(b70a2a1d423ba90ca873cc43db40422abee07718) ) + ROM_LOAD( "mtl-3_9a.9a", 0xc000, 0x1000, CRC(2eec988e) SHA1(52167dabd672d16d454df746fb2c83c9e4253624) ) + ROM_LOAD( "mtl-3_8a.8a", 0xd000, 0x1000, CRC(744b4b1c) SHA1(94955d0703559d668988cb7045f835f955e5dd8a) ) + ROM_LOAD( "mtl-3_7a.7a", 0xe000, 0x1000, CRC(ea8ec479) SHA1(785557a242d9343c83cdc403b1f726cbea9d230f) ) + ROM_LOAD( "mtl-3_6a.6a", 0xf000, 0x1000, CRC(d72ba72d) SHA1(4c5b311bc7ecfc6133bc09e586635844e2f1d6a9) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "mta5a.bin", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) - ROM_LOAD( "mta6a.bin", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) - ROM_LOAD( "mta7a.bin", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) + ROM_LOAD( "mta_5a.5a", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) + ROM_LOAD( "mta_6a.6a", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) + ROM_LOAD( "mta_7a.7a", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) ROM_REGION( 0x4000, "soundbd:cvsdcpu", 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) + ROM_LOAD( "mta_2a.2a", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) + ROM_LOAD( "mta_3a.3a", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) + ROM_LOAD( "mta_4a.4a", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) + ROM_LOAD( "mta_1a.1a", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "mtl11d.bin", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) + ROM_LOAD( "mtl_11d.11d", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "74s288.h14", 0x0000, 0x0020, BAD_DUMP CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // 6331 according to the Mouse Trap manual @@ -1274,29 +1274,28 @@ ROM_LOAD( "74s288.d6", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // 6331 according to the Mouse Trap manual ROM_END - -ROM_START( mtrap4 ) +ROM_START( mtrap2 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "mta411a.bin", 0xa000, 0x1000, CRC(2879cb8d) SHA1(738bd3cd968fd733adcfe0fb5efdb2e2fcfb344e) ) - ROM_LOAD( "mta410a.bin", 0xb000, 0x1000, CRC(d7378af9) SHA1(44c8ba4c84f51306e5bdd64e6c255d1c1018db72) ) - ROM_LOAD( "mta49.bin", 0xc000, 0x1000, CRC(be667e64) SHA1(c5f686e3c403691f14992354af690dc89e1722f7) ) - ROM_LOAD( "mta48a.bin", 0xd000, 0x1000, CRC(de0442f8) SHA1(61774921adf016b3a2ae18baa79af60dca2d9e45) ) - ROM_LOAD( "mta47a.bin", 0xe000, 0x1000, CRC(cdf8c6a8) SHA1(932ae9c0ea5700bd79862efa94742136d8e15641) ) - ROM_LOAD( "mta46a.bin", 0xf000, 0x1000, CRC(77d3f2e6) SHA1(2c21dd7ee326ccb41d3c64eec90a19198382edea) ) + ROM_LOAD( "mtl-2_11a.11a", 0xa000, 0x1000, CRC(a8cc3a18) SHA1(09fa9eff5ae5cb923d6e9137ba9a4b6944acffb2) ) + ROM_LOAD( "mtl-2_10a.10a", 0xb000, 0x1000, CRC(e26b074c) SHA1(e8882edc818860d887c08e8083a40c4717412b2f) ) + ROM_LOAD( "mtl-2_9a.9a", 0xc000, 0x1000, CRC(845394f6) SHA1(a150a6f00465abb787d8d46a2e32d8985364554e) ) + ROM_LOAD( "mtl-2_8a.8a", 0xd000, 0x1000, CRC(854d2d50) SHA1(4213999acbc03ee8300b2fcf86349cd7450adae5) ) + ROM_LOAD( "mtl-2_7a.7a", 0xe000, 0x1000, CRC(3d235f95) SHA1(57031d9784c55853dcf6e396ee685d8dd0d3ef87) ) + ROM_LOAD( "mtl-2_6a.6a", 0xf000, 0x1000, CRC(7ed7632a) SHA1(6800d3c1b901808373d3edd2a3fcf699f93d7daf) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "mta5a.bin", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) - ROM_LOAD( "mta6a.bin", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) - ROM_LOAD( "mta7a.bin", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) + ROM_LOAD( "mta_5a.5a", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) + ROM_LOAD( "mta_6a.6a", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) + ROM_LOAD( "mta_7a.7a", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) ROM_REGION( 0x4000, "soundbd:cvsdcpu", 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000,0x1000,CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000,0x1000,CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000,0x1000,CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000,0x1000,CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) + ROM_LOAD( "mta_2a.2a", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) + ROM_LOAD( "mta_3a.3a", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) + ROM_LOAD( "mta_4a.4a", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) + ROM_LOAD( "mta_1a.1a", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "mtl11d.bin", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) + ROM_LOAD( "mtl_11d.11d", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "74s288.h14", 0x0000, 0x0020, BAD_DUMP CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // 6331 according to the Mouse Trap manual @@ -1317,10 +1316,10 @@ ROM_LOAD( "2564.j10", 0x6000, 0x2000, CRC(d4160aa8) SHA1(d3bae8fa54e71c397ec60f998a012e088588a2e4) ) ROM_REGION( 0x4000, "soundbd:cvsdcpu", 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000,0x1000,CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000,0x1000,CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000,0x1000,CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000,0x1000,CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) + ROM_LOAD( "mta_2a.2a", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) + ROM_LOAD( "mta_3a.3a", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) + ROM_LOAD( "mta_4a.4a", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) + ROM_LOAD( "mta_1a.1a", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) ROM_REGION( 0x0800, "gfx1", 0 ) ROM_LOAD( "2516.j6", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) @@ -1337,7 +1336,6 @@ piggyback PCB is marked: "LC" (it's Italian for "Lato Componenti" = Component Side) piggyback PCB fits into main PCB @ 8l */ - ROM_START( mtrapb2 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ms11.2p", 0xa000, 0x1000, CRC(2879cb8d) SHA1(738bd3cd968fd733adcfe0fb5efdb2e2fcfb344e) ) @@ -1348,16 +1346,16 @@ ROM_LOAD( "ms6.2f", 0xf000, 0x1000, CRC(77d3f2e6) SHA1(2c21dd7ee326ccb41d3c64eec90a19198382edea) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "ms1a.10j", 0x6000, 0x2000, CRC(d4160aa8) SHA1(d3bae8fa54e71c397ec60f998a012e088588a2e4) ) + ROM_LOAD( "ms1a.10j", 0x6000, 0x2000, CRC(d4160aa8) SHA1(d3bae8fa54e71c397ec60f998a012e088588a2e4) ) ROM_REGION( 0x4000, "soundbd:cvsdcpu", 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "ms2a.8d", 0x0000,0x1000,CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "ms3a.8e", 0x1000,0x1000,CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "ms4a.8f", 0x2000,0x1000,CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "ms5a.8h", 0x3000,0x1000,CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) + ROM_LOAD( "ms2a.8d", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) + ROM_LOAD( "ms3a.8e", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) + ROM_LOAD( "ms4a.8f", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) + ROM_LOAD( "ms5a.8h", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "ms11d.6j", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) + ROM_LOAD( "ms11d.6j", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "74s288.6c", 0x0000, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) @@ -1365,6 +1363,7 @@ ROM_LOAD( "74s288.3d", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) ROM_END + ROM_START( venture ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "13a-cpu", 0x8000, 0x1000, CRC(f4e4d991) SHA1(6683c1552b56b20f2296e461aff697af73563792) ) @@ -1377,14 +1376,15 @@ ROM_LOAD( "6a-cpu", 0xf000, 0x1000, CRC(7b78cf49) SHA1(1d484172465d3db6c4fc3733aa2b409e3a2e228f) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "3a-ac", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) - ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) - ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) - ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) - ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) + ROM_LOAD( "vea_3a-3.3a", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) + ROM_LOAD( "vea_4a-3.4a", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) + ROM_LOAD( "vea_5a-3.5a", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) + ROM_LOAD( "vea_6a-3.6a", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) + ROM_LOAD( "vea_7a-3.7a", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "11d-cpu", 0x0000, 0x0800, CRC(b4bb2503) SHA1(67303603b7c5e6301e976ef19f81c7519648b179) ) +// ROM_LOAD( "11d-cpu", 0x0000, 0x0800, BAD_DUMP CRC(b4bb2503) SHA1(67303603b7c5e6301e976ef19f81c7519648b179) ) // bytes 0x536 & 0x537 have the high bit set (IE:0x80 instead of 0x00 in vel_11d-2.11d) + ROM_LOAD( "vel_11d-2.11d", 0x0000, 0x0800, CRC(ea6fd981) SHA1(46b1658e1607423d5a073f14097c2a48d59057c0) ) ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "hrl14h 1.h14", 0x0000, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) @@ -1392,27 +1392,26 @@ ROM_LOAD( "hrl6d 1.d6", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) ROM_END - -ROM_START( venture2 ) +ROM_START( venture5a ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "vent_a13.cpu", 0x8000, 0x1000, CRC(4c833f99) SHA1(1ff4eafe48b9f0ab8a123659d78c3dfa0bf56d7d) ) - ROM_LOAD( "vent_a12.cpu", 0x9000, 0x1000, CRC(8163cefc) SHA1(7061819dd1105e8368c045dad2effae62d124539) ) - ROM_LOAD( "vent_a11.cpu", 0xa000, 0x1000, CRC(324a5054) SHA1(f845ff2f717ea627891e0dc9d6e66f690c0843d8) ) - ROM_LOAD( "vent_a10.cpu", 0xb000, 0x1000, CRC(24358203) SHA1(10c3ea83a892d6fd2751e590afe45bffa65bd6e0) ) - ROM_LOAD( "vent_a9.cpu", 0xc000, 0x1000, CRC(04428165) SHA1(6d8d860ce1f805ba2eb315f47c8660799256e921) ) - ROM_LOAD( "vent_a8.cpu", 0xd000, 0x1000, CRC(4c1a702a) SHA1(7f6a68d3cfdd885108eebb7ea76b3c2ce6070b18) ) - ROM_LOAD( "vent_a7.cpu", 0xe000, 0x1000, CRC(1aab27c2) SHA1(66c7274dbb8bda3c78cc61d96a6cb1a9b29939b5) ) - ROM_LOAD( "vent_a6.cpu", 0xf000, 0x1000, CRC(767bdd71) SHA1(334a903e05fc86186f90aa2d9ce3b0d367d7e516) ) - - ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "3a-ac", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) - ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) - ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) - ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) - ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) + ROM_LOAD( "vel_13a-57e.a13", 0x8000, 0x1000, CRC(4c833f99) SHA1(1ff4eafe48b9f0ab8a123659d78c3dfa0bf56d7d) ) + ROM_LOAD( "vel_12a-5.a12", 0x9000, 0x1000, CRC(8163cefc) SHA1(7061819dd1105e8368c045dad2effae62d124539) ) + ROM_LOAD( "vel_11a-5.a11", 0xa000, 0x1000, CRC(324a5054) SHA1(f845ff2f717ea627891e0dc9d6e66f690c0843d8) ) + ROM_LOAD( "vel_10a-5.a10", 0xb000, 0x1000, CRC(24358203) SHA1(10c3ea83a892d6fd2751e590afe45bffa65bd6e0) ) + ROM_LOAD( "vel_9a-5.a9", 0xc000, 0x1000, CRC(04428165) SHA1(6d8d860ce1f805ba2eb315f47c8660799256e921) ) + ROM_LOAD( "vel_8a-5.a8", 0xd000, 0x1000, CRC(4c1a702a) SHA1(7f6a68d3cfdd885108eebb7ea76b3c2ce6070b18) ) + ROM_LOAD( "vel_7a-5.a7", 0xe000, 0x1000, CRC(1aab27c2) SHA1(66c7274dbb8bda3c78cc61d96a6cb1a9b29939b5) ) + ROM_LOAD( "vel_6a-5.a6", 0xf000, 0x1000, CRC(767bdd71) SHA1(334a903e05fc86186f90aa2d9ce3b0d367d7e516) ) + + ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) + ROM_LOAD( "vea_3a-3.3a", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) + ROM_LOAD( "vea_4a-3.4a", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) + ROM_LOAD( "vea_5a-3.5a", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) + ROM_LOAD( "vea_6a-3.6a", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) + ROM_LOAD( "vea_7a-3.7a", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "11d-cpu", 0x0000, 0x0800, CRC(b4bb2503) SHA1(67303603b7c5e6301e976ef19f81c7519648b179) ) + ROM_LOAD( "vel_11d-2.11d", 0x0000, 0x0800, CRC(ea6fd981) SHA1(46b1658e1607423d5a073f14097c2a48d59057c0) ) ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "hrl14h 1.h14", 0x0000, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) @@ -1420,27 +1419,26 @@ ROM_LOAD( "hrl6d 1.d6", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) ROM_END - ROM_START( venture4 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "vel13a-4", 0x8000, 0x1000, CRC(1c5448f9) SHA1(59d3ca2a2d7048f5f7bd23fa5d9c9a2cc0734cb8) ) - ROM_LOAD( "vel12a-4", 0x9000, 0x1000, CRC(e62491cc) SHA1(a98b6c6e60d83fd4591d0de145a99c5e4576121a) ) - ROM_LOAD( "vel11a-4", 0xa000, 0x1000, CRC(e91faeaf) SHA1(ce50a9f1016671282d16f2d0ad3553598e0c7e89) ) - ROM_LOAD( "vel10a-4", 0xb000, 0x1000, CRC(da3a2991) SHA1(2b5175b0f3642e735b6d87fbd5b75118cf6b7faa) ) - ROM_LOAD( "vel9a-4", 0xc000, 0x1000, CRC(d1887b11) SHA1(40ed1e1bdcb95d6e317cb5e4fb8572a314b3fbf8) ) - ROM_LOAD( "vel8a-4", 0xd000, 0x1000, CRC(8e8153fc) SHA1(409cf0ed39ef04c1e9359f0499d7cba3aed8f36e) ) - ROM_LOAD( "vel7a-4", 0xe000, 0x1000, CRC(0a091701) SHA1(ffdea1d60371779d0c28fb3c6111639cace79dad) ) - ROM_LOAD( "vel6a-4", 0xf000, 0x1000, CRC(7b165f67) SHA1(4109797bcfd33c870234930790e3cecaaf90b706) ) - - ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "vea3a-2", 0x5800, 0x0800, CRC(83b8836f) SHA1(ec0e2de62caea61ceff56e924449213997bff8cd) ) - ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) - ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) - ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) - ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) + ROM_LOAD( "vel_13a-4.13a", 0x8000, 0x1000, CRC(1c5448f9) SHA1(59d3ca2a2d7048f5f7bd23fa5d9c9a2cc0734cb8) ) + ROM_LOAD( "vel_12a-4.12a", 0x9000, 0x1000, CRC(e62491cc) SHA1(a98b6c6e60d83fd4591d0de145a99c5e4576121a) ) + ROM_LOAD( "vel_11a-4.11a", 0xa000, 0x1000, CRC(e91faeaf) SHA1(ce50a9f1016671282d16f2d0ad3553598e0c7e89) ) + ROM_LOAD( "vel_10a-4.10a", 0xb000, 0x1000, CRC(da3a2991) SHA1(2b5175b0f3642e735b6d87fbd5b75118cf6b7faa) ) + ROM_LOAD( "vel_9a-4.a9", 0xc000, 0x1000, CRC(d1887b11) SHA1(40ed1e1bdcb95d6e317cb5e4fb8572a314b3fbf8) ) + ROM_LOAD( "vel_8a-4.a8", 0xd000, 0x1000, CRC(8e8153fc) SHA1(409cf0ed39ef04c1e9359f0499d7cba3aed8f36e) ) + ROM_LOAD( "vel_7a-4.a7", 0xe000, 0x1000, CRC(0a091701) SHA1(ffdea1d60371779d0c28fb3c6111639cace79dad) ) + ROM_LOAD( "vel_6a-4.a6", 0xf000, 0x1000, CRC(7b165f67) SHA1(4109797bcfd33c870234930790e3cecaaf90b706) ) + + ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) + ROM_LOAD( "vea_3a-2.3a", 0x5800, 0x0800, CRC(83b8836f) SHA1(ec0e2de62caea61ceff56e924449213997bff8cd) ) + ROM_LOAD( "vea_3a-2.4a", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) // here down, same data as the "-3" revision listed above + ROM_LOAD( "vea_3a-2.5a", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) + ROM_LOAD( "vea_3a-2.6a", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) + ROM_LOAD( "vea_3a-2.7a", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "vel11d-2", 0x0000, 0x0800, CRC(ea6fd981) SHA1(46b1658e1607423d5a073f14097c2a48d59057c0) ) + ROM_LOAD( "vel_11d-2.11d", 0x0000, 0x0800, CRC(ea6fd981) SHA1(46b1658e1607423d5a073f14097c2a48d59057c0) ) ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "hrl14h 1.h14", 0x0000, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) @@ -1448,8 +1446,7 @@ ROM_LOAD( "hrl6d 1.d6", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) ROM_END - -ROM_START( venture2b ) +ROM_START( venture5b ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "d2732.2s", 0x8000, 0x1000, CRC(87d69fe9) SHA1(d5ccf71af478873f32e23530a62515327f39f672) ) // only unique program ROM ROM_LOAD( "d2732.2r", 0x9000, 0x1000, CRC(8163cefc) SHA1(7061819dd1105e8368c045dad2effae62d124539) ) @@ -1461,11 +1458,11 @@ ROM_LOAD( "d2732.2f", 0xf000, 0x1000, CRC(767bdd71) SHA1(334a903e05fc86186f90aa2d9ce3b0d367d7e516) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "tms2516.10f", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) - ROM_LOAD( "tms2564.10j", 0x6000, 0x2000, CRC(da9d8588) SHA1(b2e6509748059fc317af56d66396427c5ca78748) ) // bigger ROM, but contents identical to venture2 + ROM_LOAD( "tms2516.10f", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) // == vea_3a-3.3a + ROM_LOAD( "tms2564.10j", 0x6000, 0x2000, CRC(da9d8588) SHA1(b2e6509748059fc317af56d66396427c5ca78748) ) // bigger ROM, but contents identical to venture5a ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "tms2516.6j", 0x0000, 0x0800, CRC(ea6fd981) SHA1(46b1658e1607423d5a073f14097c2a48d59057c0) ) // GFX ROM matches venture4, instead + ROM_LOAD( "tms2516.6j", 0x0000, 0x0800, CRC(ea6fd981) SHA1(46b1658e1607423d5a073f14097c2a48d59057c0) ) // == vel_11d-2.11d ROM_REGION( 0x140, "proms", 0 ) // only 2 PROMs ROM_LOAD( "sn74s288n.6c", 0x0000, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) @@ -1475,43 +1472,51 @@ ROM_START( pepper2 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "main_12a", 0x9000, 0x1000, CRC(33db4737) SHA1(d8f7a5d340ddbc4d06d403c3bff0102ce637d24e) ) - ROM_LOAD( "main_11a", 0xa000, 0x1000, CRC(a1f43b1f) SHA1(a669f2ef55d9a0617110f65863822fdcaf153511) ) - ROM_LOAD( "main_10a", 0xb000, 0x1000, CRC(4d7d7786) SHA1(ea1390b887404a67ea556720219e81007b954a7d) ) - ROM_LOAD( "main_9a", 0xc000, 0x1000, CRC(b3362298) SHA1(7adad138ec5f94caa39f9c0fabece538d5db4913) ) - ROM_LOAD( "main_8a", 0xd000, 0x1000, CRC(64d106ed) SHA1(49646a97def9e1793cac6ee0044f68232b294e4f) ) - ROM_LOAD( "main_7a", 0xe000, 0x1000, CRC(b1c6f07c) SHA1(53d07211d014336bb43671c51f4190c6515e9cde) ) - ROM_LOAD( "main_6a", 0xf000, 0x1000, CRC(515b1046) SHA1(bdcccd4e415c00ee8e5ec185597df75ecafe7d3d) ) + ROM_LOAD( "p2l-8_12a.12a", 0x9000, 0x1000, CRC(33db4737) SHA1(d8f7a5d340ddbc4d06d403c3bff0102ce637d24e) ) + ROM_LOAD( "p2l-8_11a.11a", 0xa000, 0x1000, CRC(a1f43b1f) SHA1(a669f2ef55d9a0617110f65863822fdcaf153511) ) + ROM_LOAD( "p2l-8_10a.10a", 0xb000, 0x1000, CRC(4d7d7786) SHA1(ea1390b887404a67ea556720219e81007b954a7d) ) + ROM_LOAD( "p2l-8_9a.9a", 0xc000, 0x1000, CRC(b3362298) SHA1(7adad138ec5f94caa39f9c0fabece538d5db4913) ) + ROM_LOAD( "p2l-8_8a.8a", 0xd000, 0x1000, CRC(64d106ed) SHA1(49646a97def9e1793cac6ee0044f68232b294e4f) ) + ROM_LOAD( "p2l-8_7a.7a", 0xe000, 0x1000, CRC(b1c6f07c) SHA1(53d07211d014336bb43671c51f4190c6515e9cde) ) + ROM_LOAD( "p2l-8_6a.6a", 0xf000, 0x1000, CRC(515b1046) SHA1(bdcccd4e415c00ee8e5ec185597df75ecafe7d3d) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "audio_5a", 0x6800, 0x0800, CRC(90e3c781) SHA1(d51a9e011167a132e8af9f4b1201600a58e86b62) ) - ROM_LOAD( "audio_6a", 0x7000, 0x0800, CRC(dd343e34) SHA1(4ec55bb73d6afbd167fa91d2606d1d55a15b5c39) ) - ROM_LOAD( "audio_7a", 0x7800, 0x0800, CRC(e02b4356) SHA1(9891e14d84221c1d6f2d15a29813eb41024290ca) ) + ROM_LOAD( "p2a_5a.5a", 0x6800, 0x0800, CRC(90e3c781) SHA1(d51a9e011167a132e8af9f4b1201600a58e86b62) ) // unknown revision + ROM_LOAD( "p2a_6a.6a", 0x7000, 0x0800, CRC(dd343e34) SHA1(4ec55bb73d6afbd167fa91d2606d1d55a15b5c39) ) + ROM_LOAD( "p2a_7a.7a", 0x7800, 0x0800, CRC(e02b4356) SHA1(9891e14d84221c1d6f2d15a29813eb41024290ca) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "main_11d", 0x0000, 0x0800, CRC(b25160cd) SHA1(3d768552960a3a660891dcb85da6a5c382b33991) ) -ROM_END + ROM_LOAD( "p2l-1_11d.11d", 0x0000, 0x0800, CRC(b25160cd) SHA1(3d768552960a3a660891dcb85da6a5c382b33991) ) + ROM_REGION( 0x120, "proms", 0 ) + ROM_LOAD( "p2l5c-1.c5", 0x0000, 0x0100, NO_DUMP ) + ROM_LOAD( "p2l6d-1.d6", 0x0100, 0x0020, NO_DUMP ) +ROM_END ROM_START( pepper27 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "p2l12ar7.bin", 0x9000, 0x1000, CRC(b3bc51cd) SHA1(12475ac5784bb2ab6887476ee8166c3585864cd6) ) - ROM_LOAD( "p2l11ar7.bin", 0xa000, 0x1000, CRC(c8b834cd) SHA1(28b4de322de845effaa1d2fc6c9f129145965b8a) ) - ROM_LOAD( "p2l10ar7.bin", 0xb000, 0x1000, CRC(c3e864a2) SHA1(cfc769b34d181724a5826d3a1bb3313ef5fbbd62) ) - ROM_LOAD( "p2l9ar7.bin", 0xc000, 0x1000, CRC(451003b2) SHA1(87b9aecfcf861b3d812f0e3c23b40c98c198e933) ) - ROM_LOAD( "p2l8ar7.bin", 0xd000, 0x1000, CRC(c666cafb) SHA1(5783fcfeeb651c850a1d9676e97a6beaafb06c6e) ) - ROM_LOAD( "p2l7ar7.bin", 0xe000, 0x1000, CRC(ac1282ef) SHA1(34023d8a01c1f26ec8268d7387660d6f7e875014) ) - ROM_LOAD( "p2l6ar7.bin", 0xf000, 0x1000, CRC(db8dd4fc) SHA1(9ae00f8d1a19280670dc65a20cf9cc4e7f1cc973) ) + ROM_LOAD( "p2l-7_12a.12a", 0x9000, 0x1000, CRC(b3bc51cd) SHA1(12475ac5784bb2ab6887476ee8166c3585864cd6) ) + ROM_LOAD( "p2l-7_11a.11a", 0xa000, 0x1000, CRC(c8b834cd) SHA1(28b4de322de845effaa1d2fc6c9f129145965b8a) ) + ROM_LOAD( "p2l-7_10a.10a", 0xb000, 0x1000, CRC(c3e864a2) SHA1(cfc769b34d181724a5826d3a1bb3313ef5fbbd62) ) + ROM_LOAD( "p2l-7_9a.9a", 0xc000, 0x1000, CRC(451003b2) SHA1(87b9aecfcf861b3d812f0e3c23b40c98c198e933) ) + ROM_LOAD( "p2l-7_8a.8a", 0xd000, 0x1000, CRC(c666cafb) SHA1(5783fcfeeb651c850a1d9676e97a6beaafb06c6e) ) + ROM_LOAD( "p2l-7_7a.7a", 0xe000, 0x1000, CRC(ac1282ef) SHA1(34023d8a01c1f26ec8268d7387660d6f7e875014) ) + ROM_LOAD( "p2l-7_6a.6a", 0xf000, 0x1000, CRC(db8dd4fc) SHA1(9ae00f8d1a19280670dc65a20cf9cc4e7f1cc973) ) ROM_REGION( 0x8000, "soundbd:audiocpu", 0 ) - ROM_LOAD( "audio_5a", 0x6800, 0x0800, CRC(90e3c781) SHA1(d51a9e011167a132e8af9f4b1201600a58e86b62) ) - ROM_LOAD( "audio_6a", 0x7000, 0x0800, CRC(dd343e34) SHA1(4ec55bb73d6afbd167fa91d2606d1d55a15b5c39) ) - ROM_LOAD( "audio_7a", 0x7800, 0x0800, CRC(e02b4356) SHA1(9891e14d84221c1d6f2d15a29813eb41024290ca) ) + ROM_LOAD( "p2a_5a.5a", 0x6800, 0x0800, CRC(90e3c781) SHA1(d51a9e011167a132e8af9f4b1201600a58e86b62) ) // unknown revision + ROM_LOAD( "p2a_6a.6a", 0x7000, 0x0800, CRC(dd343e34) SHA1(4ec55bb73d6afbd167fa91d2606d1d55a15b5c39) ) + ROM_LOAD( "p2a_7a.7a", 0x7800, 0x0800, CRC(e02b4356) SHA1(9891e14d84221c1d6f2d15a29813eb41024290ca) ) ROM_REGION( 0x0800, "gfx1", 0 ) - ROM_LOAD( "main_11d", 0x0000, 0x0800, CRC(b25160cd) SHA1(3d768552960a3a660891dcb85da6a5c382b33991) ) + ROM_LOAD( "p2l-1_11d.11d", 0x0000, 0x0800, CRC(b25160cd) SHA1(3d768552960a3a660891dcb85da6a5c382b33991) ) + + ROM_REGION( 0x120, "proms", 0 ) + ROM_LOAD( "p2l5c-1.c5", 0x0000, 0x0100, NO_DUMP ) + ROM_LOAD( "p2l6d-1.d6", 0x0100, 0x0020, NO_DUMP ) ROM_END + ROM_START( hardhat ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "hhl-2.11a", 0xa000, 0x1000, CRC(7623deea) SHA1(3c47c0439c80e66536af42c5ee4e522fea5f8374) ) @@ -1786,16 +1791,16 @@ GAME( 1980, phantom, spectar, rallys, phantoma, exidy_state, init_phantoma, ROT0, "bootleg (Proel)", "Phantom (bootleg of Spectar)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, mtrap, 0, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "Exidy", "Mouse Trap (version 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mtrap2, mtrap, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "Exidy", "Mouse Trap (version 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mtrap3, mtrap, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, mtrap4, mtrap, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "Exidy", "Mouse Trap (version 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtrap3, mtrap, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtrap2, mtrap, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "Exidy", "Mouse Trap (version 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, mtrapb, mtrap, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "bootleg", "Mouse Trap (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, mtrapb2, mtrap, mtrap, mtrap, exidy_state, init_mtrap, ROT0, "bootleg", "Mouse Trap (version 4, bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, venture, 0, venture, venture, exidy_state, init_venture, ROT0, "Exidy", "Venture (version 5 set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, venture2, venture, venture, venture, exidy_state, init_venture, ROT0, "Exidy", "Venture (version 5 set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, venture5a, venture, venture, venture, exidy_state, init_venture, ROT0, "Exidy", "Venture (version 5 set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, venture4, venture, venture, venture, exidy_state, init_venture, ROT0, "Exidy", "Venture (version 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, venture2b, venture, venture, venture, exidy_state, init_venture, ROT0, "bootleg", "Venture (version 5 set 2, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, venture5b, venture, venture, venture, exidy_state, init_venture, ROT0, "bootleg", "Venture (version 5 set 2, bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, teetert, 0, teetert, teetert, exidy_state, init_teetert, ROT0, "Exidy", "Teeter Torture (prototype)", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/fidel_cc1.cpp mame-0.224+dfsg.1/src/mame/drivers/fidel_cc1.cpp --- mame-0.223+dfsg.1/src/mame/drivers/fidel_cc1.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/fidel_cc1.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -90,7 +90,7 @@ // machine configs void cc1(machine_config &config); void cc3(machine_config &config); - void cc10(machine_config &config); + void cc10c(machine_config &config); protected: virtual void machine_start() override; @@ -106,7 +106,7 @@ // address maps void main_map(address_map &map); void main_io(address_map &map); - void cc10_map(address_map &map); + void cc10c_map(address_map &map); // I/O handlers void update_display(); @@ -144,6 +144,7 @@ // 74148(priority encoder) I0-I7: inputs // d0-d2: 74148 S0-S2, d3: 74148 GS u8 data = count_leading_zeros(m_inputs[0]->read()) - 24; + if (data == 8) data = 0xf; // d5-d7: more inputs (direct) data |= ~m_inputs[1]->read() << 5 & 0xe0; @@ -190,7 +191,7 @@ map(0x00, 0x03).mirror(0x04).rw(m_ppi8255, FUNC(i8255_device::read), FUNC(i8255_device::write)); } -void cc1_state::cc10_map(address_map &map) +void cc1_state::cc10c_map(address_map &map) { map.global_mask(0x3fff); map(0x0000, 0x0fff).rom(); @@ -238,7 +239,7 @@ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A) INPUT_PORTS_END -static INPUT_PORTS_START( cc10 ) +static INPUT_PORTS_START( cc10c ) PORT_INCLUDE( cc3 ) PORT_MODIFY("IN.1") @@ -279,12 +280,12 @@ config.set_default_layout(layout_fidel_cc3); } -void cc1_state::cc10(machine_config &config) +void cc1_state::cc10c(machine_config &config) { cc1(config); /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &cc1_state::cc10_map); + m_maincpu->set_addrmap(AS_PROGRAM, &cc1_state::cc10c_map); config.set_default_layout(layout_fidel_cc10c); } @@ -297,7 +298,7 @@ ROM_START( cc1 ) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) - ROM_LOAD("d2316ac_011", 0x0000, 0x0800, BAD_DUMP CRC(e27f9816) SHA1(ad9881b3bf8341829a27e86de27805fc2ccb5f7d) ) // A4 line was broken + ROM_LOAD("d2316ac_011", 0x0000, 0x0800, CRC(4af38ed6) SHA1(3f07691266196f3aa5c440a40bfe4802303e7c07) ) ROM_END ROM_START( cc3 ) @@ -320,6 +321,6 @@ ******************************************************************************/ // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1977, cc1, 0, 0, cc1, cc1, cc1_state, empty_init, "Fidelity Electronics", "Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING ) +CONS( 1977, cc1, 0, 0, cc1, cc1, cc1_state, empty_init, "Fidelity Electronics", "Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) CONS( 1977, cc3, 0, 0, cc3, cc3, cc1_state, empty_init, "Fidelity Electronics", "Chess Challenger (upgraded version, 3 levels)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) // aka Chess Challenger 3 -CONS( 1979, cc10c, 0, 0, cc10, cc10, cc1_state, empty_init, "Fidelity Electronics", "Chess Challenger (model UCC10, 10 levels)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) // aka Chess Challenger 10 C +CONS( 1979, cc10c, 0, 0, cc10c, cc10c, cc1_state, empty_init, "Fidelity Electronics", "Chess Challenger (model UCC10, 10 levels)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) // aka Chess Challenger 10 C diff -Nru mame-0.223+dfsg.1/src/mame/drivers/fidel_vcc.cpp mame-0.224+dfsg.1/src/mame/drivers/fidel_vcc.cpp --- mame-0.223+dfsg.1/src/mame/drivers/fidel_vcc.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/fidel_vcc.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -159,20 +159,14 @@ u8 ppi_portc_r(); void ppi_portc_w(u8 data); - u8 m_led_select; - u8 m_7seg_data; - u8 m_inp_mux; - u8 m_speech_bank; + u8 m_led_select = 0; + u8 m_7seg_data = 0; + u8 m_inp_mux = 0; + u8 m_speech_bank = 0; }; void vcc_state::machine_start() { - // zerofill - m_led_select = 0; - m_7seg_data = 0; - m_inp_mux = 0; - m_speech_bank = 0; - // register for savestates save_item(NAME(m_led_select)); save_item(NAME(m_7seg_data)); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/flyball.cpp mame-0.224+dfsg.1/src/mame/drivers/flyball.cpp --- mame-0.223+dfsg.1/src/mame/drivers/flyball.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/flyball.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Stefan Jokisch +// copyright-holders:Stefan Jokisch, Ivan Vangelista, Ryan Holtz /*************************************************************************** Atari Flyball Driver @@ -11,11 +11,6 @@ MADE IN USA PAT NO 3793483 - -TODO: -- discrete sound -- accurate video timing - ***************************************************************************/ #include "emu.h" @@ -23,7 +18,12 @@ #include "machine/74259.h" #include "emupal.h" #include "screen.h" +#include "speaker.h" #include "tilemap.h" +#include "machine/netlist.h" + +#include "netlist/nl_setup.h" +#include "audio/nl_flyball.h" static constexpr XTAL MASTER_CLOCK = 12.096_MHz_XTAL; static constexpr XTAL PIXEL_CLOCK = MASTER_CLOCK / 2; @@ -39,6 +39,11 @@ m_screen(*this, "screen"), m_palette(*this, "palette"), m_outlatch(*this, "outlatch"), + m_bat_sound(*this, "sound_nl:bat_sound"), + m_footstep(*this, "sound_nl:footstep"), + m_crowd_sl(*this, "sound_nl:crowd_sl"), + m_crowd_on(*this, "sound_nl:crowd_on"), + m_crowd_vl(*this, "sound_nl:crowd_vl"), m_playfield_ram(*this, "playfield_ram"), m_lamp(*this, "lamp0") { } @@ -87,6 +92,11 @@ required_device m_screen; required_device m_palette; required_device m_outlatch; + required_device m_bat_sound; + required_device m_footstep; + required_device m_crowd_sl; + required_device m_crowd_on; + required_device m_crowd_vl; /* memory pointers */ required_shared_ptr m_playfield_ram; @@ -317,7 +327,7 @@ map(0x0900, 0x0900).w(FUNC(flyball_state::potmask_w)); map(0x0a00, 0x0a07).w(FUNC(flyball_state::misc_w)); map(0x0b00, 0x0b00).r(FUNC(flyball_state::input_r)); - map(0x0d00, 0x0eff).writeonly().share("playfield_ram"); + map(0x0d00, 0x0eff).writeonly().share("playfield_ram").nopr(); map(0x1000, 0x1fff).rom().region("maincpu", 0); } @@ -358,6 +368,12 @@ PORT_START("IN1") /* IN5 */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0xFE, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("BAT_VOL") + PORT_ADJUSTER( 50, "Bat Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "bat_volume") + + PORT_START("MAIN_VOL") + PORT_ADJUSTER( 50, "Main Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "main_volume") INPUT_PORTS_END @@ -467,18 +483,16 @@ m_maincpu->set_addrmap(AS_PROGRAM, &flyball_state::flyball_map); F9334(config, m_outlatch); // F7 - m_outlatch->q_out_cb<2>().set_nop(); // bat hit - m_outlatch->q_out_cb<3>().set_nop(); // crowd soft-loud - m_outlatch->q_out_cb<4>().set_nop(); // crowd off-on - m_outlatch->q_out_cb<5>().set_nop(); // footstep off-on - m_outlatch->q_out_cb<6>().set_nop(); // crowd very loud + m_outlatch->q_out_cb<2>().set(m_bat_sound, FUNC(netlist_mame_logic_input_device::write)); + m_outlatch->q_out_cb<3>().set(m_crowd_sl, FUNC(netlist_mame_logic_input_device::write)); + m_outlatch->q_out_cb<4>().set(m_crowd_on, FUNC(netlist_mame_logic_input_device::write)); + m_outlatch->q_out_cb<5>().set(m_footstep, FUNC(netlist_mame_logic_input_device::write)); + m_outlatch->q_out_cb<6>().set(m_crowd_vl, FUNC(netlist_mame_logic_input_device::write)); m_outlatch->q_out_cb<7>().set(FUNC(flyball_state::lamp_w)); // 1 player lamp /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(60); - m_screen->set_size(256, 262); - m_screen->set_visarea(0, 255, 0, 239); + m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 262, 0, 240); m_screen->set_screen_update(FUNC(flyball_state::screen_update)); m_screen->set_palette(m_palette); m_screen->screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); @@ -487,6 +501,21 @@ PALETTE(config, m_palette, FUNC(flyball_state::flyball_palette), 4); /* sound hardware */ + SPEAKER(config, "mono").front_center(); + + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(flyball)) + .add_route(ALL_OUTPUTS, "mono", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:bat_sound", "BAT_SOUND.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:footstep", "FOOTSTEP.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:crowd_sl", "CROWD_SL.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:crowd_on", "CROWD_ON.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:crowd_vl", "CROWD_VL.IN", 0); + NETLIST_ANALOG_INPUT(config, "sound_nl:bat_volume", "R75.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:main_volume", "R95.DIAL"); + + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(32767.0 / 0.13, -(32767.0 / 0.13) * 0.78); } @@ -547,5 +576,5 @@ * *************************************/ -GAME( 1976, flyball, 0, flyball, flyball, flyball_state, empty_init, 0, "Atari", "Flyball (rev 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1976, flyball1, flyball, flyball, flyball, flyball_state, empty_init, 0, "Atari", "Flyball (rev 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1976, flyball, 0, flyball, flyball, flyball_state, empty_init, 0, "Atari", "Flyball (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1976, flyball1, flyball, flyball, flyball, flyball_state, empty_init, 0, "Atari", "Flyball (rev 1)", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/funworld.cpp mame-0.224+dfsg.1/src/mame/drivers/funworld.cpp --- mame-0.223+dfsg.1/src/mame/drivers/funworld.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/funworld.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -5,9 +5,10 @@ Fun World / TAB / Impera Series 7000 hardware. - 65C02 + 2x PIAs + M6845 CRTC + AY8910 + 65C02/65SC02 + 2x 6821 PIAs + 6845 CRTC + AY-3-8910. + From raw, to different ways of encryption. Even through custom CPUs. - Also from Amatic, CMC, Dino4 encrypted, and Leopard 4. + Also from Amatic, CMC, Dino4 (encrypted), and Leopard 4. Driver by Roberto Fresca. Based on a preliminary work of Curt Coder & Peter Trauner. @@ -71,7 +72,6 @@ * Royal Card Professional 2.0, Digital Dreams, 1993. * Royal Card / Royal Jackpot (with a third draw)(encrypted), TAB / Video Klein, 1991 * Witch Royal (Export version 2.1), Video Klein, 199?. - * Royal Card (Italian, Dino 4 hardware, encrypted), unknown, 1998. * Lucky Lady (3x3 deal), TAB Austria, 1991. * Lucky Lady (4x1 aces), TAB Austria, 1991. * Magic Card II (Bulgarian), Impera, 1996. @@ -82,12 +82,14 @@ * Royal Vegas Joker Card (Fast deal), Soft Design, 1993. * Royal Vegas Joker Card (Fast deal, english gfx), Soft Design, 1993. * Royal Vegas Joker Card (Fast deal, Mile), Mile, 1993. - * Jolly Joker (original, interleaved GFX). Impera, 198?. - * Jolly Joker (original, different encoded GFX). Impera, 198?. - * Jolly Joker (98bet, set 1). Impera, 198?. - * Jolly Joker (98bet, set 2). Impera, 198?. - * Jolly Joker (40bet, croatian hack), Impera, 198?. - * Jolly Joker (Apple Time), Apple Time, 198?. + * Jolly Joker (original, interleaved GFX). Impera, 199?. + * Jolly Joker (original, different encoded GFX). Impera, 199?. + * Jolly Joker (Solid State module in suicide board). Impera, 199?. + * Jolly Joker (98bet, set 1). Impera, 199?. + * Jolly Joker (98bet, set 2). Impera, 199?. + * Jolly Joker (40bet, higher paytable), Impera, 1985. + * Jolly Joker (40bet, lower paytable), Impera, 1985. + * Jolly Joker (Apple Time), Apple Time, 199?. * Multi Win (Ver.0167, encrypted), Fun World, 1992. * Power Card (Ver 0263, encrypted), Fun World, 1993. * Mega Card (Ver.0210, encrypted), Fun World, 1993. @@ -98,7 +100,9 @@ * Jolly Card (Italian, blue TAB board, encrypted), bootleg, 199?. * Jolly Card (Italian, encrypted bootleg, set 1), bootleg, 1990. * Jolly Card (Italian, encrypted bootleg, set 2), bootleg, 1993. + * Jolly Card (Italian, encrypted bootleg, set 3), bootleg, 1993. * Pool 10 (Italian, Dino 4 hardware, encrypted), C.M.C., 1997. + * Royal Card (Italian, Dino 4 hardware, encrypted), unknown, 1998. * China Town (Ver 1B, Dino4 HW), unknown, 1998. * Royal Card (Italian, Dino 4 hardware, encrypted), TAB Austria, 1998. * Mongolfier New (Italian), unknown, 199?. @@ -112,10 +116,17 @@ * Unknown Fun World A7-11 game 2, Fun World, 1985. * Unknown Fun World A0-1 game, Fun World, 1991. * Joker Card / Multi Card (Epoxy brick CPU), Fun World, 1991. + * Gratis Poker (V.204, set 1), Mega Soft, 1995. + * Gratis Poker (V.204, set 2), Mega Soft, 1995. + * Gkoulit (encrypted GFX), JK Amusement, 1995. + * Reflex Cards (English, serial protected), TAB Austria, 1999. * Royal Card (stealth with NES multigame), bootleg, 1991. * Royal Card (stealth with MSX multigame), bootleg, 1991. + Supported games: 104 + + ***************************************************************************************** The hardware is generally composed by: @@ -173,11 +184,12 @@ - Encryption. - A) Encrypted CPU. At least two Fun World boards have custom encrypted CPUs: + A) Encrypted CPU. At least five Fun World boards have custom encrypted CPUs: - - Joker Card from Vesely Svet use a custom unknown CPU and use encrypted prg roms. + - Joker Card from Vesely Svet, Mega Card, Power Card and Multi Win, + use custom unknown CPUs and also encrypted/scrambled prg roms. - Royal Card (slovak, encrypted) from Evona Electronic seems to use a block - with CPU + extras (ICs, TTL, etc) to manage the encryption. + with CPU + extras (ICs, TTL, etc) to manage the encryption. B) General encryption. Managed through hardware: @@ -353,6 +365,8 @@ * Joker Card 300 (Ver.A267BC, encrypted). * Multi Win (Fun World) + * Power Card (Fun World) + * Mega Card (Fun World) These sets seems to run in the same modified hardware. They are highly encrypted. @@ -620,16 +634,12 @@ *** TO DO *** - - Figure out the royalcdc encryption. - Figure out the remaining PIA connections for almost all games. - Reverse-engineering the boot code of Jolly Card Professional 2.0, and Royal Card Professional 2.0 to get the proper codes to boot. - Analyze the unknown writes to $2000/$4000 in some games. - Check for the reads to the ay8910 output ports in some games. - Implement the MCU in monglfir and soccernw. - - Check for a possible bug in the royalcrdf decryption scheme, that - doesn't cover the BRK instruction properly, changing the next value - on the fly turning a NOP into a PLA, messing the Stack Pointer. ****************************************************************************************/ @@ -673,17 +683,17 @@ -x-- ---- Hopper Motor (inverted). x--- ---- HOLD4 lamp. */ - m_lamps[0] = BIT(~data, 1); /* Hold1 (inverted) */ - m_lamps[2] = BIT(~data, 1); /* Hold3 (inverted, see pinouts) */ + m_lamps[0] = BIT(~data, 1); // Hold1 (inverted) + m_lamps[2] = BIT(~data, 1); // Hold3 (inverted, see pinouts) - m_lamps[1] = BIT(~data, 3); /* Hold2 / Low (inverted) */ - m_lamps[3] = BIT(data, 7); /* Hold4 / High */ - m_lamps[5] = BIT(~data, 5); /* Cancel / Collect (inverted) */ + m_lamps[1] = BIT(~data, 3); // Hold2 / Low (inverted) + m_lamps[3] = BIT(data, 7); // Hold4 / High + m_lamps[5] = BIT(~data, 5); // Cancel / Collect (inverted) - machine().bookkeeping().coin_counter_w(0, data & 0x01); /* Credit In counter */ - machine().bookkeeping().coin_counter_w(7, data & 0x04); /* Credit Out counter, mapped as coin 8 */ + machine().bookkeeping().coin_counter_w(0, data & 0x01); // Credit In counter + machine().bookkeeping().coin_counter_w(7, data & 0x04); // Credit Out counter, mapped as coin 8 - m_lamps[7] = BIT(~data, 6); /* Hopper Motor (inverted) */ + m_lamps[7] = BIT(~data, 6); // Hopper Motor (inverted) // popmessage("Lamps A: %02X", (data ^ 0xff)); } @@ -697,17 +707,17 @@ ---- -x-- Unknown (inverted). xxxx x--- Unknown. */ - m_lamps[4] = BIT(data, 0); /* Hold5 / Bet */ - m_lamps[6] = BIT(data, 1); /* Start / Deal / Draw */ + m_lamps[4] = BIT(data, 0); // Hold5 / Bet + m_lamps[6] = BIT(data, 1); // Start / Deal / Draw // popmessage("Lamps B: %02X", data); } WRITE_LINE_MEMBER(funworld_state::pia1_ca2_w) { -/* TAB and Impera games are writing 0x01 constantly, and 0x00 with each screen change. - This line is tied to sort of reset circuitery. -*/ +// TAB and Impera games are writing 0x01 constantly, and 0x00 with each screen change. +// This line is tied to some sort of reset circuitery. + // popmessage("PIA1 CA2: %02X", state); } @@ -779,9 +789,9 @@ map(0x0c00, 0x0c01).w("ay8910", FUNC(ay8910_device::address_data_w)); map(0x0e00, 0x0e00).w("crtc", FUNC(mc6845_device::address_w)); map(0x0e01, 0x0e01).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); - map(0x2c00, 0x2cff).ram(); /* range for protection */ - map(0x3600, 0x36ff).ram(); /* some games use $3603-05 range for protection */ - map(0x3c00, 0x3cff).ram(); /* range for protection */ + map(0x2c00, 0x2cff).ram(); // range for protection + map(0x3600, 0x36ff).ram(); // some games use $3603-05 range for protection + map(0x3c00, 0x3cff).ram(); // range for protection map(0x4000, 0x4fff).ram().w(FUNC(funworld_state::funworld_videoram_w)).share("videoram"); map(0x5000, 0x5fff).ram().w(FUNC(funworld_state::funworld_colorram_w)).share("colorram"); map(0x6000, 0xffff).rom(); @@ -796,9 +806,9 @@ map(0x0c00, 0x0c01).w("ay8910", FUNC(ay8910_device::address_data_w)); map(0x0e00, 0x0e00).w("crtc", FUNC(mc6845_device::address_w)); map(0x0e01, 0x0e01).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); - map(0x2000, 0x2000).nopr(); /* some unknown reads */ - map(0x3e00, 0x3fff).ram(); /* some games use $3e03-05 range for protection */ - map(0x4000, 0x5fff).rom(); /* used by rcdino4 (dino4 hw ) */ + map(0x2000, 0x2000).nopr(); // some unknown reads + map(0x3e00, 0x3fff).ram(); // some games use $3e03-05 range for protection + map(0x4000, 0x5fff).rom(); // used by rcdino4 (dino4 hw ) map(0x6000, 0x6fff).ram().w(FUNC(funworld_state::funworld_videoram_w)).share("videoram"); map(0x7000, 0x7fff).ram().w(FUNC(funworld_state::funworld_colorram_w)).share("colorram"); map(0x8000, 0xffff).rom(); @@ -984,6 +994,21 @@ } +void funworld_state::gratispk_map(address_map &map) +{ + map(0x0000, 0x07ff).ram().share("nvram"); + map(0x0800, 0x0803).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x0a00, 0x0a03).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x0c00, 0x0c00).r("ay8910", FUNC(ay8910_device::data_r)); + map(0x0c00, 0x0c01).w("ay8910", FUNC(ay8910_device::address_data_w)); + map(0x0e00, 0x0e00).w("crtc", FUNC(mc6845_device::address_w)); + map(0x0e01, 0x0e01).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); + map(0x4000, 0x4fff).ram().w(FUNC(funworld_state::funworld_videoram_w)).share("videoram"); + map(0x5000, 0x5fff).ram().w(FUNC(funworld_state::funworld_colorram_w)).share("colorram"); + map(0x6000, 0xffff).rom(); +} + + /************************* * Input ports * *************************/ @@ -1036,14 +1061,14 @@ PORT_DIPSETTING( 0x00, "Dattl Insert" ) PORT_DIPSETTING( 0x10, "TAB Insert" ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1085,7 +1110,7 @@ PORT_DIPNAME( 0x01, 0x01, "State" ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x00, "Keyboard Test" ) PORT_DIPSETTING( 0x01, "Play" ) - PORT_DIPNAME( 0x02, 0x00, "Remote Value" ) PORT_DIPLOCATION("SW1:7") + PORT_DIPNAME( 0x02, 0x00, "Remote Value" ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x00, "10 Points/Pulse" ) PORT_DIPSETTING( 0x02, "100 Points/Pulse" ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6") @@ -1098,14 +1123,14 @@ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x10, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1159,14 +1184,14 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1208,7 +1233,7 @@ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "Remote Value" ) PORT_DIPLOCATION("SW1:7") + PORT_DIPNAME( 0x02, 0x00, "Remote Value" ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x00, "10 Points/Pulse" ) PORT_DIPSETTING( 0x02, "100 Points/Pulse" ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6") @@ -1221,14 +1246,14 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enables Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* when is ON, allow the player to activate/deactivate the autohold through CANCEL button */ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // when is ON, allows the player to activate/deactivate the autohold through CANCEL button - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1283,11 +1308,11 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enables Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* when is ON, allow the player to activate/deactivate the autohold through CANCEL button */ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // when is ON, allows the player to activate/deactivate the autohold through CANCEL button PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1342,7 +1367,7 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) @@ -1385,9 +1410,9 @@ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") -/* DIP switch 8 should be left ON by default (all remaining ones in OFF) - to allow initialization. You can change settings later, after the boot. -*/ +// DIP switch 8 should be left ON by default (all remaining ones in OFF) +// to allow initialization. You can change settings later, after the boot. + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) @@ -1410,8 +1435,8 @@ PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1450,9 +1475,9 @@ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") -/* DIP switch 8 should be left ON by default (all remaining ones in OFF) - to allow initialization. You can change settings later, after the boot. -*/ +// DIP switch 8 should be left ON by default (all remaining ones in OFF) +// to allow initialization. You can change settings later, after the boot. + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) @@ -1475,8 +1500,8 @@ PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1518,7 +1543,7 @@ PORT_DIPNAME( 0x01, 0x01, "State" ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x00, "Keyboard Test" ) PORT_DIPSETTING( 0x01, "Play" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") /* remote credits settings are always 10 points/pulse */ + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") // remote credits settings are always 10 points/pulse PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:6") @@ -1537,8 +1562,8 @@ PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1580,7 +1605,7 @@ PORT_DIPNAME( 0x01, 0x01, "State" ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x00, "Keyboard Test" ) PORT_DIPSETTING( 0x01, "Play" ) - PORT_DIPNAME( 0x02, 0x02, "Remote Value" ) PORT_DIPLOCATION("SW1:7") /* listed as 'Coin-C' in some sources */ + PORT_DIPNAME( 0x02, 0x02, "Remote Value" ) PORT_DIPLOCATION("SW1:7") // listed as 'Coin-C' in some sources PORT_DIPSETTING( 0x00, "10 Points/Pulse" ) PORT_DIPSETTING( 0x02, "100 Points/Pulse" ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:6") @@ -1593,14 +1618,14 @@ PORT_DIPSETTING( 0x00, "Dattl Insert" ) PORT_DIPSETTING( 0x10, "TAB Insert" ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1655,14 +1680,14 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x40, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -1757,7 +1782,7 @@ static INPUT_PORTS_START( cuoreuno ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* no remote credits */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no remote credits PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1 / Switch Bet (1-Max)") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Bet / Prendi (Take)") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Gioca (Play)") @@ -1808,8 +1833,8 @@ PORT_DIPSETTING( 0x40, "Manual - Tickets" ) PORT_DIPSETTING( 0x60, "Manual - User Choice 2" ) - /* the following one (1st DSW) seems to be disconnected - to avoid the use of remote credits or direct payout */ +// the following one (1st DSW) seems to be disconnected +// to avoid the use of remote credits or direct payout PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -1818,7 +1843,7 @@ static INPUT_PORTS_START( pool10 ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* no remote credits */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no remote credits PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1 / Switch Bet (1-Max)") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Bet / Prendi (Take)") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Gioca (Play)") @@ -1869,7 +1894,7 @@ PORT_DIPSETTING( 0x40, "Manual - Tickets" ) PORT_DIPSETTING( 0x60, "Manual - User Choice 2" ) - /* direct payout without play Super Game */ +// direct payout without play Super Game PORT_DIPNAME( 0x80, 0x80, "Direct Payout (tickets)" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -1878,7 +1903,7 @@ static INPUT_PORTS_START( lunapark ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* no remote credits */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no remote credits PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1 / Switch Bet (1-Max)") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Bet / Prendi (Take)") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Gioca (Play)") @@ -1930,13 +1955,13 @@ PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* the following one seems to be disconnected - to avoid the use of remote credits or direct payout */ +// the following one seems to be disconnected +// to avoid the use of remote credits or direct payout PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - /* the following one is connected to 1st DSW and is meant - for switch between different programs stored in different - halves of the program ROM */ +// the following one is connected to 1st DSW and is meant +// for switch between different programs stored in different +// halves of the program ROM PORT_START("SELDSW") PORT_DIPNAME( 0x01, 0x00, "Game Selector" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "PROGRAM 1, (5 TIRI LIRE 500, ABILITA VINTE)" ) @@ -1992,15 +2017,14 @@ PORT_DIPSETTING( 0x00, "disabled" ) PORT_DIPSETTING( 0x10, "enabled" ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x40, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ - +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -2055,14 +2079,14 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -2117,14 +2141,14 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -2179,14 +2203,14 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -2241,14 +2265,14 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) PORT_DIPSETTING( 0x40, "No Auto Hold" ) - /* after nvram init, set the following one to 'manual' - to allow the remote credits mode to work */ +// after nvram init, set the following one to 'manual' +// to allow the remote credits mode to work PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "Hopper" ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) @@ -2534,7 +2558,7 @@ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, "With Joker" ) /* also enable Five of a Kind */ + PORT_DIPSETTING( 0x00, "With Joker" ) // also enables Five of a Kind PORT_DIPSETTING( 0x20, "Without Joker" ) PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x00, "Auto Hold" ) @@ -2632,7 +2656,7 @@ static INPUT_PORTS_START( chinatow ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* no remote credits */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no remote credits PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1 / Switch Bet (1-Max)") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Bet / Prendi (Take)") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Gioca (Play) / Gmable") @@ -2689,7 +2713,7 @@ static INPUT_PORTS_START( rcdino4 ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* no remote credits */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no remote credits PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start") @@ -2746,7 +2770,7 @@ static INPUT_PORTS_START( royal ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* no remote credits */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no remote credits PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1 / Switch Bet (1-Max)") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Bet / Prendi (Take)") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Gioca (Play)") @@ -2896,11 +2920,11 @@ in the first and second half of the bipolar PROM. */ -static GFXDECODE_START( gfx_fw1stpal ) /* Adressing the first half of the palette */ +static GFXDECODE_START( gfx_fw1stpal ) // Adressing the first half of the palette GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 16 ) GFXDECODE_END -static GFXDECODE_START( gfx_fw2ndpal ) /* Adressing the second half of the palette */ +static GFXDECODE_START( gfx_fw2ndpal ) // Adressing the second half of the palette GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x100, 16 ) GFXDECODE_END @@ -2967,7 +2991,8 @@ */ -/* these ports are set to output anyway, but this quietens the log */ + +// these ports are set to output anyway, but this quietens the log uint8_t funworld_state::funquiz_ay8910_a_r() { return 0x00; @@ -2978,6 +3003,7 @@ return 0x00; } + /******************************** * Machine Start & Reset * ********************************/ @@ -2997,14 +3023,15 @@ membank("bank1")->set_entry(seldsw); } + /************************** * Machine Drivers * **************************/ void funworld_state::fw1stpal(machine_config &config) { - /* basic machine hardware */ - M65SC02(config, m_maincpu, CPU_CLOCK); /* 2MHz */ + // basic machine hardware + M65SC02(config, m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::funworld_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -3018,31 +3045,31 @@ pia1.readpb_handler().set_ioport("DSW"); pia1.ca2_handler().set(FUNC(funworld_state::pia1_ca2_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size((124+1)*4, (30+1)*8); /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */ - screen.set_visarea(0*4, 96*4-1, 0*8, 29*8-1); /* Taken from MC6845 init, registers 01 & 06 */ + screen.set_size((124+1)*4, (30+1)*8); // Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) + screen.set_visarea(0*4, 96*4-1, 0*8, 29*8-1); // Taken from MC6845 init, registers 01 & 06 screen.set_screen_update(FUNC(funworld_state::screen_update_funworld)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_fw1stpal); PALETTE(config, m_palette, FUNC(funworld_state::funworld_palette), 0x200); - mc6845_device &crtc(MC6845(config, "crtc", CRTC_CLOCK)); /* 2MHz, verified on jollycrd & royalcrd */ + mc6845_device &crtc(MC6845(config, "crtc", CRTC_CLOCK)); // 2 MHz, verified on jollycrd & royalcrd crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(4); crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); - ay8910_device &ay8910(AY8910(config, "ay8910", SND_CLOCK)); /* 2MHz */ + ay8910_device &ay8910(AY8910(config, "ay8910", SND_CLOCK)); // 2 MHz. ay8910.port_a_write_callback().set(FUNC(funworld_state::funworld_lamp_a_w)); ay8910.port_b_write_callback().set(FUNC(funworld_state::funworld_lamp_b_w)); - ay8910.add_route(ALL_OUTPUTS, "mono", 2.5); /* analyzed to avoid clips */ + ay8910.add_route(ALL_OUTPUTS, "mono", 2.5); // analyzed to avoid clips } @@ -3050,7 +3077,7 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::funworld_map); m_gfxdecode->set_info(gfx_fw2ndpal); @@ -3063,7 +3090,7 @@ fw1stpal(config); // gray background. // fw2ndpal(config); // blue background. - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::funquiz_map); subdevice("ay8910")->port_a_read_callback().set(FUNC(funworld_state::funquiz_ay8910_a_r)); @@ -3075,15 +3102,15 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &magicrd2_state::magicrd2_map); subdevice("crtc")->set_visarea_adjust(0, -56, 0, 0); - ay8910_device &ay8910(AY8910(config.replace(), "ay8910", SND_CLOCK)); /* 2MHz */ + ay8910_device &ay8910(AY8910(config.replace(), "ay8910", SND_CLOCK)); // 2 MHz. ay8910.port_a_write_callback().set(FUNC(magicrd2_state::funworld_lamp_a_w)); ay8910.port_b_write_callback().set(FUNC(magicrd2_state::funworld_lamp_b_w)); - ay8910.add_route(ALL_OUTPUTS, "mono", 1.5); /* analyzed to avoid clips */ + ay8910.add_route(ALL_OUTPUTS, "mono", 1.5); // analyzed to avoid clips } @@ -3091,7 +3118,7 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* (G65SC02P in pro version) 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // (G65SC02P in pro version) 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::magicrd2_map); } @@ -3100,7 +3127,7 @@ { fw2ndpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::magicrd2_map); } @@ -3109,7 +3136,7 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::cuoreuno_map); } @@ -3118,13 +3145,13 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::saloon_map); config.device_remove("pia0"); config.device_remove("pia1"); - /* Serial Memory */ + // Serial Memory I2C_24C02(config, "i2cmem", 0).set_e0(1); // ? or maybe 2nd half of 24C04? } @@ -3133,7 +3160,7 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::witchryl_map); } @@ -3142,7 +3169,7 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &lunapark_state::lunapark_map); // mirrored video RAM (4000/5000 to 6000/7000). } @@ -3151,7 +3178,7 @@ { fw2ndpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &chinatow_state::chinatow_map); } @@ -3159,7 +3186,7 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &chinatow_state::chinatow_map); } @@ -3168,7 +3195,7 @@ { fw1stpal(config); - M65SC02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + M65SC02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &intergames_state::intergames_map); //m_maincpu->set_periodic_int(FUNC(intergames_state::nmi_line_pulse), attotime::from_hz(60)); @@ -3180,7 +3207,7 @@ { fw1stpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::fw_brick_map); NVRAM(config, "nvram1", nvram_device::DEFAULT_ALL_0); @@ -3191,12 +3218,22 @@ { fw2ndpal(config); - R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + R65C02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::fw_brick_map); NVRAM(config, "nvram1", nvram_device::DEFAULT_ALL_0); } + +void funworld_state::gratispk(machine_config &config) +{ +// fw1stpal(config); // card deck wrong colors. + fw2ndpal(config); // correct palette + + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::gratispk_map); +} + + uint8_t royalcrdf_state::royalcrdf_opcode_r(offs_t offset) { // address-based data bitswap; 4 address bits are involved, but only @@ -3210,39 +3247,39 @@ // 1-bit-to-1-bit bitswaps; furthermore, in both sets one of the // bitswaps is equal to the one applied to all the data (but notice // that, in those cases, we are applying it twice to opcodes here) - constexpr std::array,16> bs{{ // bitswaps for data bits 1,2,5 & 7, in that order - { 1,5,2,7 }, - { 1,5,2,7 }, - { 5,1,7,2 }, - { 7,2,5,1 }, - { 1,5,2,7 }, - { 1,5,2,7 }, - { 5,2,1,7 }, - { 7,2,5,1 }, - { 1,5,2,7 }, - { 1,5,2,7 }, - { 5,1,7,2 }, - { 1,7,5,2 }, - { 1,5,2,7 }, - { 1,5,2,7 }, - { 5,2,1,7 }, - { 1,7,5,2 } + constexpr std::array, 16> bs{{ // bitswaps for data bits 1, 2, 5 & 7, in that order + { 1, 5, 2, 7 }, + { 1, 5, 2, 7 }, + { 5, 1, 7, 2 }, + { 7, 2, 5, 1 }, + { 1, 5, 2, 7 }, + { 1, 5, 2, 7 }, + { 5, 2, 1, 7 }, + { 7, 2, 5, 1 }, + { 1, 5, 2, 7 }, + { 1, 5, 2, 7 }, + { 5, 1, 7, 2 }, + { 1, 7, 5, 2 }, + { 1, 5, 2, 7 }, + { 1, 5, 2, 7 }, + { 5, 2, 1, 7 }, + { 1, 7, 5, 2 } }}; // xor masks, dependent on the same address bits than the bitswaps, // and with the same 5-values structure - constexpr std::array xm { + constexpr std::array xm { 0x02, 0x02, 0xa6, 0x82, 0x02, 0x02, 0x06, 0x82, 0x02, 0x02, 0xa6, 0x00, 0x02, 0x02, 0x06, 0x00 }; uint8_t data {_maincpu->space(AS_PROGRAM).read_byte(offset)}; - if(offset<0x800) - data = bitswap<8>(data^0x22,2,6,7,4,3,1,5,0); + if(offset < 0x800) + data = bitswap<8>(data ^ 0x22, 2, 6, 7, 4, 3, 1, 5, 0); - unsigned idx {bitswap<4>(offset, 8,5,2,1)}; + unsigned idx {bitswap<4>(offset, 8, 5, 2, 1)}; - return bitswap<8>(data, bs[idx][3],6,bs[idx][2],4,3,bs[idx][1],bs[idx][0],0) ^ xm[idx]; + return bitswap<8>(data, bs[idx][3], 6, bs[idx][2], 4, 3, bs[idx][1], bs[idx][0], 0) ^ xm[idx]; } void royalcrdf_state::royalcrdf_opcodes_map(address_map &map) @@ -3255,15 +3292,15 @@ uint8_t *ROM = memregion("maincpu")->base(); for (int x = 0x8000; x < 0x10000; x++) { - ROM[x] = bitswap<8>(ROM[x]^0x22,2,6,7,4,3,1,5,0); + ROM[x] = bitswap<8>(ROM[x] ^ 0x22, 2, 6, 7, 4, 3, 1, 5, 0); } /* Temporary hack to modify the value that ends to be a NOP, after the BRK, and balanced checksums. Will be removed once found a workaround in the decryption routines. */ - ROM[0x802d]=0xa2; // checksum. - ROM[0xbc4e]=0x68; // future NOP after BRK. + ROM[0x802d] = 0xa2; // checksum. + ROM[0xbc4e] = 0x68; // future NOP after BRK. } void royalcrdf_state::royalcrdf(machine_config &config) @@ -3285,19 +3322,19 @@ // one of the address bits don't have effect on the bitswap, just on the xor; // again, we have just five different bitswaps, and the hardware is probably using // passive logic on the address bits to do the selection - constexpr std::array,8> bs{{ // bitswaps for data bits 0,2,4,5 & 7, in that order - { 5,2,4,0,7 }, - { 4,0,2,7,5 }, - { 7,4,5,2,0 }, - { 4,0,2,7,5 }, - { 2,7,0,5,4 }, - { 4,0,2,7,5 }, - { 0,5,7,4,2 }, - { 4,0,2,7,5 } + constexpr std::array, 8> bs{{ // bitswaps for data bits 0, 2, 4, 5 & 7, in that order + { 5, 2, 4, 0, 7 }, + { 4, 0, 2, 7, 5 }, + { 7, 4, 5, 2, 0 }, + { 4, 0, 2, 7, 5 }, + { 2, 7, 0, 5, 4 }, + { 4, 0, 2, 7, 5 }, + { 0, 5, 7, 4, 2 }, + { 4, 0, 2, 7, 5 } }}; // xor masks - constexpr std::array xm { + constexpr std::array xm { 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00, 0xb5, 0x10, 0xb5, 0x20, 0xb5, 0x30, 0xb5 }; @@ -3317,7 +3354,7 @@ uint8_t *ROM = memregion("maincpu")->base(); for (int x = 0x4000; x < 0x10000; x++) { - ROM[x] = bitswap<8>(ROM[x]^0x91,5,6,7,2,3,0,1,4); + ROM[x] = bitswap<8>(ROM[x] ^ 0x91, 5, 6, 7, 2, 3, 0, 1, 4); } } @@ -3357,7 +3394,7 @@ constexpr uint8_t UNKN {0xfc}; - constexpr std::array,4> decryption_tables{{ + constexpr std::array, 4> decryption_tables{{ // _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f { 0xe8, 0x29, UNKN, UNKN, 0x85, UNKN, 0x18, UNKN, UNKN, UNKN, UNKN, UNKN, UNKN, UNKN, UNKN, 0xd5, // 0_ UNKN, UNKN, 0xa6, 0x4c, UNKN, UNKN, 0x84, UNKN, UNKN, UNKN, 0x69, UNKN, 0x91, 0x38, 0xa8, UNKN, // 1_ @@ -3432,7 +3469,7 @@ }}; uint8_t data {_maincpu->space(AS_PROGRAM).read_byte(offset)}; - return decryption_tables[offset&3][data]; + return decryption_tables[offset & 3][data]; } void powercrd_state::powercrd_opcodes_map(address_map &map) @@ -3472,7 +3509,7 @@ constexpr uint8_t UNKN {0xfc}; - constexpr std::array,4> decryption_tables{{ + constexpr std::array, 4> decryption_tables{{ // _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f { UNKN, 0x6c, UNKN, UNKN, UNKN, 0xfa, 0x38, UNKN, UNKN, 0x4c, 0xd8, UNKN, 0xe8, UNKN, 0xc5, UNKN, // 0_ UNKN, 0xa6, 0x91, UNKN, UNKN, UNKN, UNKN, 0x58, 0xa0, 0xe0, 0xb9, 0x4e, UNKN, UNKN, UNKN, 0x78, // 1_ @@ -3547,7 +3584,7 @@ }}; uint8_t data {_maincpu->space(AS_PROGRAM).read_byte(offset)}; - return decryption_tables[offset&3][data]; + return decryption_tables[offset & 3][data]; } void megacard_state::megacard_opcodes_map(address_map &map) @@ -3621,7 +3658,7 @@ constexpr uint8_t UNKN {0xfc}; - constexpr std::array,4> decryption_tables{{ + constexpr std::array, 4> decryption_tables{{ // _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f { UNKN, UNKN, UNKN, 0x3d, 0xe0, UNKN, UNKN, 0xb0, UNKN, 0xa0, UNKN, UNKN, UNKN, UNKN, UNKN, UNKN, // 0_ UNKN, UNKN, 0x4a, 0x65, 0x18, 0x64, 0xad, UNKN, 0x90, UNKN, UNKN, UNKN, UNKN, UNKN, UNKN, UNKN, // 1_ @@ -3696,7 +3733,7 @@ }}; uint8_t data {_maincpu->space(AS_PROGRAM).read_byte(offset)}; - return decryption_tables[offset&3][data]; + return decryption_tables[offset & 3][data]; } void jokercrd_state::jokercrd_opcodes_map(address_map &map) @@ -3794,7 +3831,7 @@ ROM_LOAD( "jolycard.ch2", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "jolycard.ch1", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jollycrd_nvram.bin", 0x0000, 0x0800, CRC(8f0a86c9) SHA1(467bd4f601ac6aa818c036f1269c2d43d27854f6) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -3830,13 +3867,13 @@ ROM_LOAD( "tab3.bin", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "tab2.bin", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* Default NVRAM. The game doesn't work without it */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM. the game doesn't work without it ROM_LOAD( "jollycrda_nvram.bin", 0x0000, 0x0800, CRC(5cbb4d8f) SHA1(da5edbef20bb4f0c634939389b3a9744c5743641) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "jop.bin", 0x0000, 0x0200, CRC(5ebc5659) SHA1(8d59011a181399682ab6e8ed14f83101e9bfa0c6) ) - ROM_REGION( 0x0200, "plds", 0 ) /* Cracked PLD */ + ROM_REGION( 0x0200, "plds", 0 ) // cracked PLD ROM_LOAD( "tab1.0_gal16v8s.bin", 0x0000, 0x0117, CRC(574f9a48) SHA1(bb5e2e86da85130d92f61cc57038a844950f443e) ) ROM_END @@ -3849,7 +3886,7 @@ ROM_LOAD( "jolycard.ch2", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "jolycard.ch1", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolyc3x3_nvram.bin", 0x0000, 0x0800, CRC(727c70cf) SHA1(3639b0891514064e21ebdb280791cc9c8f5ba481) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -3914,18 +3951,20 @@ */ ROM_START( jolycmzs ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* MZS Tech */ + ROM_REGION( 0x10000, "maincpu", 0 ) // MZS Tech ROM_LOAD( "mzstech.bin", 0x8000, 0x8000, CRC(cebd1e56) SHA1(24d88b3383cecf3829556d75460053663aab4ef1) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "jolycard.ch2", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "jolycard.ch1", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) -/* Load a default eeprom, otherwise an annoying password system should be inserted with - inputs correlated to a code that pops up on the screen. - This code should be inserted into a PC-DOS program, that program is nowhere to be found right now. +/* Load a default NVRAM, otherwise an annoying password system appears + generating a code that needs to be parsed by a PC-DOS program, that + is currently missing and never would appear. This program is supossed + to give back an hexa code to feed in the game through a combination + of inputs. */ - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycmzs_nvram.bin", 0x0000, 0x0800, CRC(828ffeef) SHA1(6a52282231f1944ba79049f267a9c1941373aea2) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -3933,18 +3972,20 @@ ROM_END ROM_START( jolyc980 ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* Spale Soft */ + ROM_REGION( 0x10000, "maincpu", 0 ) // Spale Soft ROM_LOAD( "j980.bin", 0x8000, 0x8000, CRC(48249fff) SHA1(390cd0eb3399446a66363dc6760458170e1970fd) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "jolycard.ch2", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "jolycard.ch1", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) -/* Load a default eeprom, otherwise an annoying password system should be inserted with - inputs correlated to a code that pops up on the screen. - This code should be inserted into a PC-DOS program, that program is nowhere to be found right now. +/* Load a default NVRAM, otherwise an annoying password system appears + generating a code that needs to be parsed by a PC-DOS program, that + is currently missing and never would appear. This program is supossed + to give back an hexa code to feed in the game through a combination + of inputs. */ - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolyc980_nvram.bin", 0x0000, 0x0800, CRC(ef2c89c7) SHA1(a286001e205dcd16d914e07ba2b7c820335ab9c2) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -3952,7 +3993,7 @@ ROM_END -ROM_START( jolycdev ) /* Jolly Card (lipa) from Evona */ +ROM_START( jolycdev ) // Jolly Card (lipa) from Evona ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "lipa.bin", 0x8000, 0x8000, CRC(62657c98) SHA1(237466dde26540c119c631c75f51c87ea59d1a91) ) @@ -3960,7 +4001,7 @@ ROM_LOAD( "jollyb.bin", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "jollya.bin", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycdev_nvram.bin", 0x0000, 0x0800, CRC(ae2c2fb8) SHA1(912d673ea8e26ff62520a7b86e702e5260cff4c0) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -3989,7 +4030,7 @@ Only remote credits, as can be seen in test mode. */ -ROM_START( jolyccra ) /* Jolly Card (croatian, set 1) */ +ROM_START( jolyccra ) // Jolly Card (Croatian, set 1) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "jollyc.bin", 0x8000, 0x8000, CRC(8926d99d) SHA1(dd5d1ac03d30d823dfcfe1349328ecb7afbc37fa) ) @@ -3997,7 +4038,7 @@ ROM_LOAD( "jollyb.bin", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "jollya.bin", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolyccra_nvram.bin", 0x0000, 0x0800, CRC(478ab0a9) SHA1(8c5160d2ac8d4a9db0ae1e478d3bb1513a04544f) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4005,7 +4046,7 @@ ROM_END -ROM_START( jolyccrb ) /* Jolly Card (croatian, set 2) */ +ROM_START( jolyccrb ) // Jolly Card (Croatian, set 2) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "jollypkr.003", 0x8000, 0x8000, CRC(ea7340b4) SHA1(7dd468f28a488a4781521809d06db1d7917048ad) ) @@ -4013,7 +4054,7 @@ ROM_LOAD( "jolycard.ch2", 0x0000, 0x8000, CRC(c512b103) SHA1(1f4e78e97855afaf0332fb75e1b5571aafd01c29) ) ROM_LOAD( "jolycard.ch1", 0x8000, 0x8000, CRC(0f24f39d) SHA1(ac1f6a8a4a2a37cbc0d45c15187b33c25371bffb) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolyccrb_nvram.bin", 0x0000, 0x0800, CRC(c1d49c88) SHA1(27ffdedfc7f09ff11c3b2537db3681473b776074) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4043,7 +4084,7 @@ - 1x trimmer (volume)(missing) */ -ROM_START( jolycdit ) /* blue TAB PCB, encrypted graphics */ +ROM_START( jolycdit ) // blue TAB PCB, encrypted graphics ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "jn.bin", 0x8000, 0x8000, CRC(6ae00ed0) SHA1(5921c2882aeb5eadd0e04a477fa505ad35e9d98c) ) @@ -4051,7 +4092,7 @@ ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(46805150) SHA1(63687ac44f6ace6d8924b2629536bcc7d3979ed2) ) ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(43bcb2df) SHA1(5022bc3a0b852a7cd433e25c3c90a720e6328261) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycdit_nvram.bin", 0x0000, 0x0800, CRC(c55c6706) SHA1(a38ae926f057fb47e48ca841b2d097fc4fd06416) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4063,7 +4104,7 @@ /* - Jolly Card (italian encrypted bootleg) + Jolly Card (Italian encrypted bootleg) -------------------------------------- - 1x UM6845P @@ -4093,7 +4134,7 @@ Only remote credits, as can be seen in test mode. */ -ROM_START( jolycdib ) /* bootleg PCB, encrypted graphics */ +ROM_START( jolycdib ) // bootleg PCB, encrypted graphics ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.bin", 0x8000, 0x8000, CRC(c76fdc79) SHA1(fc75c274d64fa9c99a546d424f38e79f1acf2576) ) @@ -4101,7 +4142,7 @@ ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(46805150) SHA1(63687ac44f6ace6d8924b2629536bcc7d3979ed2) ) // sldh ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(43bcb2df) SHA1(5022bc3a0b852a7cd433e25c3c90a720e6328261) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycdib_nvram.bin", 0x0000, 0x0800, CRC(038a71fe) SHA1(99d3befbee8f9f86ce7f074de7f16fb25053c077) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4113,7 +4154,7 @@ /* - Jolly Card (italian encrypted bootleg, set 2) + Jolly Card (Italian encrypted bootleg, set 2) --------------------------------------------- This program works in both 'normal' and 'remote' modes, @@ -4127,18 +4168,18 @@ buttons. */ -ROM_START( jolycdic ) /* another bootleg PCB, encrypted graphics */ +ROM_START( jolycdic ) // another bootleg PCB, encrypted graphics ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3ss.bin", 0x8000, 0x8000, CRC(3d7cde61) SHA1(6154878491f4d2f1ea035d18cdf43154c550d509) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(32c24495) SHA1(0d78c4d2743401b5ec9919d09814064eeac8023f) ) // sldh - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(91093176) SHA1(b889c617f94161933c35c324c7d84fec182953d8) ) // sldh - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycdic_nvram.bin", 0x0000, 0x0800, CRC(47a5890b) SHA1(6a6531fe5e8f6c1b5a9aac314b2cce6a0129f6da) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4148,6 +4189,44 @@ ROM_LOAD( "gal16v8b.bin", 0x0000, 0x0117, NO_DUMP ) // sldh ROM_END +/* + Jolly Card (Italian encrypted bootleg, set 3) + --------------------------------------------- + + Running in a Cleco bootleg board. + Encrypted GFX. + + Differences: 1 byte. + + jolycdib jolycdic + + C1D6: 0x60 0x10 + + C1E5: lda #$60 lda #$10 + C1E7: sta $0000 sta $0000 + C1EA: sta $0003 sta $0003 + C1ED: sta $07f8 sta $07f8 + +*/ +ROM_START( jolycdii ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "145-3.bin", 0x8000, 0x8000, CRC(812f88f1) SHA1(d387b7e4818dc6f5f2b6161a623c6e4f1eeedf2a) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "145-2.bin", 0x0000, 0x8000, CRC(46805150) SHA1(63687ac44f6ace6d8924b2629536bcc7d3979ed2) ) + ROM_LOAD( "145-1.bin", 0x8000, 0x8000, CRC(43bcb2df) SHA1(5022bc3a0b852a7cd433e25c3c90a720e6328261) ) + + ROM_REGION( 0x0800, "nvram", 0 ) // Default NVRAM + ROM_LOAD( "jolycdii_nvram.bin", 0x0000, 0x0800, CRC(c2a138ad) SHA1(463fed8b495fa5286513f52fa09cf97f29e5f40e) ) + + ROM_REGION( 0x0800, "proms", 0 ) // Not a bipolar PROM. Just a replacement. + ROM_LOAD( "ws57c291_d27hc65d.bin", 0x0000, 0x0200, CRC(d96f3760) SHA1(07e80baf9c6c08171195b7810261e043197a9c3c) ) + ROM_IGNORE( 0x0600 ) // empty + + ROM_REGION( 0x0200, "plds", 0 ) + ROM_LOAD( "gal16v8b.bin", 0x0000, 0x0117, NO_DUMP ) +ROM_END + /* Jolly Card Italian bootleg... @@ -4188,17 +4267,17 @@ 1x Unknown POT between two caps, maybe for sound amp stage. */ -ROM_START( jolycdid ) /* Altera EP910PC CPLD */ +ROM_START( jolycdid ) // Altera EP910PC CPLD ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "5.cpu", 0x8000, 0x8000, CRC(56158851) SHA1(abf1daad1198dcc017352742e3c00d57e8955bd4) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "7.bin", 0x0000, 0x8000, CRC(a4452751) SHA1(a0b32a8801ebaee7ede7873b244f1a424433fe94) ) - ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/ + ROM_CONTINUE( 0x0000, 0x8000) // Discarding 1nd half. 1ST AND 2ND HALF IDENTICAL ROM_LOAD( "6.bin", 0x8000, 0x8000, CRC(8b64d4c6) SHA1(8106cba31cd3fbda0855e6070182d248e3d52495) ) - ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/ + ROM_CONTINUE( 0x8000, 0x8000) // Discarding 1nd half. 1ST AND 2ND HALF IDENTICAL - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycdid_nvram.bin", 0x0000, 0x0800, CRC(6eb66015) SHA1(39490cf5d404c9e9fb58439f6d9876a3e9b29ba0) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4218,7 +4297,7 @@ used by another program. */ -ROM_START( jolycdie ) /* Bootleg PCB, NON encrypted graphics */ +ROM_START( jolycdie ) // Bootleg PCB, NON encrypted graphics ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "aic.cpu", 0x8000, 0x8000, CRC(56158851) SHA1(abf1daad1198dcc017352742e3c00d57e8955bd4) ) @@ -4226,7 +4305,7 @@ ROM_LOAD( "c.bin", 0x0000, 0x8000, CRC(eff5362c) SHA1(1c9a48866dc5ee37fad6d68465f326d243c821c3) ) ROM_LOAD( "b.bin", 0x8000, 0x8000, CRC(98309e14) SHA1(0d3e3766768fafc728a08668ad693f950d1fabab) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycdie_nvram.bin", 0x0000, 0x0800, CRC(1b2fba44) SHA1(be5c956517072581edaebe9ae440a542964c8490) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4242,15 +4321,15 @@ 5 & 6 are coins. W is payout. */ -ROM_START( jolycdif ) /* Altera EP910PC CPLD */ +ROM_START( jolycdif ) // Altera EP910PC CPLD ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(80983f6a) SHA1(222ce5d4800887de92a73decbad31e96f8da3b4a) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(a4452751) SHA1(a0b32a8801ebaee7ede7873b244f1a424433fe94) ) - ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/ + ROM_CONTINUE( 0x0000, 0x8000) // Discarding 1nd half. 1ST AND 2ND HALF IDENTICAL ROM_LOAD( "3.bin", 0x8000, 0x8000, CRC(2856c82d) SHA1(7ce835bc2246ffede180cff0d8d0d4528afcc297) ) - ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/ + ROM_CONTINUE( 0x8000, 0x8000) // Discarding 1nd half. 1ST AND 2ND HALF IDENTICAL ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(5ebc5659) SHA1(8d59011a181399682ab6e8ed14f83101e9bfa0c6) ) // proper dump @@ -4311,9 +4390,9 @@ ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "3.bin", 0x0000, 0x8000, CRC(a4452751) SHA1(a0b32a8801ebaee7ede7873b244f1a424433fe94) ) - ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/ + ROM_CONTINUE( 0x0000, 0x8000) // Discarding 1nd half. 1ST AND 2ND HALF IDENTICAL ROM_LOAD( "2.bin", 0x8000, 0x8000, CRC(8b64d4c6) SHA1(8106cba31cd3fbda0855e6070182d248e3d52495) ) - ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/ + ROM_CONTINUE( 0x8000, 0x8000) // Discarding 1nd half. 1ST AND 2ND HALF IDENTICAL ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "dm74s472n.bin", 0x0000, 0x0200, CRC(5ebc5659) SHA1(8d59011a181399682ab6e8ed14f83101e9bfa0c6) ) @@ -4322,11 +4401,11 @@ ROM_LOAD( "ep910.bin", 0x0000, 0x0884, CRC(aa62207e) SHA1(a2e51cf3617d07ff1ce42ee1d56e1c17b6fe71de) ) ROM_LOAD( "pal16v8h-25pc-4.bin", 0x0900, 0x0117, CRC(df5be97d) SHA1(8cd63d49ab7020cdec07c1198413dc7d93e90d35) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolycdih_nvram.bin", 0x0000, 0x0800, CRC(02b3b335) SHA1(207a1289e4298d942e4806adf8ffb87e0b9b4e58) ) ROM_END -ROM_START( sjcd2kx3 ) /* Super Joly 2000 3x */ +ROM_START( sjcd2kx3 ) // Super Joly 2000 3x ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sj3.bin", 0x8000, 0x8000, CRC(c530b518) SHA1(36934d8e1e2cb2f71eb44a05b86ec970c9f398cd) ) @@ -4334,7 +4413,7 @@ ROM_LOAD( "sj2.bin", 0x0000, 0x8000, CRC(d7253325) SHA1(ad40e662519da9b11f77690b7d41c5007f74e280) ) ROM_LOAD( "sj1.bin", 0x8000, 0x8000, CRC(82741749) SHA1(d0bf3073dff9ba1c4913fd754f965951e9cb5b03) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "sjcd2kx3_nvram.bin", 0x0000, 0x0800, CRC(1141368b) SHA1(b4af2d59b5e8115440e1219a621cfd2fb8c2c978) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4500,7 +4579,7 @@ ROM_LOAD( "poker4.003", 0x0000, 0x8000, CRC(8c33a15f) SHA1(a1c8451c99a23eeffaedb21d1a1b69f54629f8ab) ) ROM_LOAD( "poker4.002", 0x8000, 0x8000, CRC(5f4e12d8) SHA1(014b2364879faaf4922cdb82ee07692389f20c2d) ) - ROM_REGION( 0x0200, "proms", 0 ) /* using joker card palette till a correct dump appear */ + ROM_REGION( 0x0200, "proms", 0 ) // using joker card palette till a correct dump appear ROM_LOAD( "jokercrd_prom.bin", 0x0000, 0x0200, BAD_DUMP CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) ROM_END @@ -4513,7 +4592,7 @@ ROM_LOAD( "poker4.003", 0x0000, 0x8000, CRC(8c33a15f) SHA1(a1c8451c99a23eeffaedb21d1a1b69f54629f8ab) ) ROM_LOAD( "poker4.002", 0x8000, 0x8000, CRC(5f4e12d8) SHA1(014b2364879faaf4922cdb82ee07692389f20c2d) ) - ROM_REGION( 0x0200, "proms", 0 ) /* using joker card palette till a correct dump appear */ + ROM_REGION( 0x0200, "proms", 0 ) // using joker card palette till a correct dump appear ROM_LOAD( "jokercrd_prom.bin", 0x0000, 0x0200, BAD_DUMP CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) ROM_END @@ -4548,16 +4627,16 @@ ROM_LOAD( "cuore1b.u21", 0x0000, 0x8000, CRC(14eca2b8) SHA1(35cba415800c6cd3e6ed9946057f33510ad2bfc9) ) ROM_LOAD( "cuore1c.u22", 0x8000, 0x8000, CRC(253fac84) SHA1(1ad104ab8e8d73df6397a840a4b26565b245d7a3) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "cuoreuno_nvram.bin", 0x0000, 0x0800, CRC(b5a1bf25) SHA1(c2996a28c080debf10ab7a7dc47c305aed172a83) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29_cu.bin", 0x0000, 0x0200, CRC(7ea61749) SHA1(3167acd79f9bda2078c2af3e049ad6abf160aeae) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_cu.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_cu.u22", 0x0200, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_cu.u23", 0x0400, 0x0157, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h_cu.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_cu.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_cu.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -4588,24 +4667,24 @@ ROM_START( elephfam ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "eleph_a.u2", 0x8000, 0x8000, CRC(8392b842) SHA1(74c850c734ca8174167b2f826b9b1ac902669392) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "eleph_b.u21", 0x0000, 0x8000, CRC(e3612670) SHA1(beb65f7d2bd6d7bc68cfd876af51910cf6417bd0) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "eleph_c.u22", 0x8000, 0x8000, CRC(4b909bf3) SHA1(a822b12126bc58af6d3f999ab2117370015a039b) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "elephfam_nvram.bin", 0x0000, 0x0800, CRC(fb9b1100) SHA1(cf15ce55042f1c4399fec480c2f862622905a8b5) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29_ef.u25", 0x0000, 0x0200, CRC(bca8b82a) SHA1(4aa19f5ecd9953bf8792dceb075a746f77c01cfc) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_ef.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_ef.u22", 0x0200, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_ef.u23", 0x0400, 0x0157, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h_ef.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_ef.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_ef.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -4617,16 +4696,16 @@ ROM_LOAD( "elephb.u21", 0x0000, 0x8000, CRC(3c60549c) SHA1(c839b3ea415a877e5eac04e0522c342cce8d6e64) ) ROM_LOAD( "elephc.u20", 0x8000, 0x8000, CRC(448ba955) SHA1(2785cbc8cd42a7dda85bd8b81d5fbec01a1ba0bd) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "elephfmb_nvram.bin", 0x0000, 0x0800, CRC(13a0cfea) SHA1(9c8ce509ef1076e88ea853347b64c5591bc2e18c) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29_ef.u25", 0x0000, 0x0200, CRC(bca8b82a) SHA1(4aa19f5ecd9953bf8792dceb075a746f77c01cfc) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_ef.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_ef.u22", 0x0200, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_ef.u23", 0x0400, 0x0157, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h_ef.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_ef.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_ef.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -4736,16 +4815,16 @@ ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10_nvram.bin", 0x0000, 0x0800, CRC(2f2fab43) SHA1(f815b70c171bad99fa6a60c256e4fdc85dd6b290) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) /* GAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) /* GAL is read protected */ + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -4756,28 +4835,28 @@ u20.bin 1ST AND 2ND HALF IDENTICAL u21.bin 1ST AND 2ND HALF IDENTICAL */ - ROM_START( pool10b ) /* this set should be the parent */ + ROM_START( pool10b ) // 1st set nominated for parent ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "u2.bin", 0x8000, 0x8000, CRC(64fee38e) SHA1(8a624a0b6eb4a3ba09e5b396dc5a01994dfdf294) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - /* GFX ROMs are the same of pool10, but double sized with identical halves. */ +// GFX ROMs are the same of pool10, but double sized with identical halves. ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "u21.bin", 0x0000, 0x8000, CRC(581c4878) SHA1(5ae61af090feea1745e22f46b33b2c01e6013fbe) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "u20.bin", 0x8000, 0x8000, CRC(3bdf1106) SHA1(fa21cbd49bb27ea4a784cf4e4b3fbd52650a285b) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10b_nvram.bin", 0x0000, 0x0800, CRC(d9f35299) SHA1(2c3608bc9c322a9cc86f74d8fa2f660804a8cf3c) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10b.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_p10b.u22", 0x0200, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_p10b.u23", 0x0400, 0x0157, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h_p10b.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_p10b.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_p10b.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -4789,16 +4868,16 @@ ROM_LOAD( "b.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "c.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10c_nvram.bin", 0x0000, 0x0800, CRC(396aefed) SHA1(066b87ff054dfb37f733a812ad0dc1b1bd2478e6) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) /* GAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) /* GAL is read protected */ + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -4810,22 +4889,22 @@ ROM_START( pool10d ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.50.u2", 0x8000, 0x8000, CRC(4c68e1f4) SHA1(bbab63a18e0c041ce519daa32e12dd1b6a672dce) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) // sldh ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10d_nvram.bin", 0x0000, 0x0800, CRC(6b5984a0) SHA1(156a94e74e33b1a15222cffff9b62e65f6f5f2f5) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) /* GAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) /* GAL is read protected */ + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -4913,23 +4992,19 @@ ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(a0d54044) SHA1(c7be1f12f72095daee32ae41c3554d8ab4f99245) ) // sldh ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(55c9fcc8) SHA1(224bdf63ed345b1def4852af3b33f07790fbf123) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10e_nvram.bin", 0x0000, 0x0800, CRC(e20f9a14) SHA1(617ca53263a971c9f835a95737a66fac5b99780f) ) - ROM_REGION( 0x0200, "proms", 0 ) /* Same as Pool 10, but the 1st half duplicated to cover any PLD addressing */ + ROM_REGION( 0x0200, "proms", 0 ) // Same as Pool 10, but the 1st half duplicated to cover any PLD addressing ROM_LOAD( "am27s29.u25", 0x0000, 0x0200, CRC(2c315cbf) SHA1(f3f91329f2b8388decf26a050f8fb7da38694218) ) ROM_REGION( 0x3000, "plds", 0 ) - ROM_LOAD( "palce16v8h.u5", 0x0000, 0x0892, BAD_DUMP CRC(123d539a) SHA1(cccf0cbae3175b091a998eedf4aa44a55b679400) ) /* read protected */ - ROM_LOAD( "palce20v8h.u22", 0x1000, 0x0a92, BAD_DUMP CRC(ba2a021f) SHA1(e9c5970f80c7446c91282d53cfe97c92353dce7d) ) /* read protected */ - ROM_LOAD( "palce20v8h.u23", 0x2000, 0x0a92, BAD_DUMP CRC(ba2a021f) SHA1(e9c5970f80c7446c91282d53cfe97c92353dce7d) ) /* read protected */ + ROM_LOAD( "palce16v8h.u5", 0x0000, 0x0892, BAD_DUMP CRC(123d539a) SHA1(cccf0cbae3175b091a998eedf4aa44a55b679400) ) // read protected + ROM_LOAD( "palce20v8h.u22", 0x1000, 0x0a92, BAD_DUMP CRC(ba2a021f) SHA1(e9c5970f80c7446c91282d53cfe97c92353dce7d) ) // read protected + ROM_LOAD( "palce20v8h.u23", 0x2000, 0x0a92, BAD_DUMP CRC(ba2a021f) SHA1(e9c5970f80c7446c91282d53cfe97c92353dce7d) ) // read protected ROM_END -/* - -*/ - ROM_START( pool10f ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cmc-pool10+a+.u2", 0x8000, 0x8000, CRC(e8087fb8) SHA1(c012a81f561978bd97708a52f656e7b13e41a3e2) ) // sldh @@ -4938,20 +5013,20 @@ ROM_LOAD( "cmc-pool10-b.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "cmc-pool10-c.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10f_nvram.bin", 0x0000, 0x0800, CRC(75dd3562) SHA1(a359cada144e7c90946649f5dd0998d0ee48f4d2) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "27s29.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) /* GAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) /* GAL is read protected */ + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END -ROM_START( pool10g ) /* this set should be the parent */ +ROM_START( pool10g ) // 2nd set nominated for parent ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.u2", 0x8000, 0x8000, CRC(7b537ce6) SHA1(b221d08c53b9e14178335632420e78070b9cfb27) ) @@ -4959,7 +5034,7 @@ ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10h_nvram.bin", 0x0000, 0x0800, CRC(3ec39472) SHA1(aa2bb5abd16557560a19842929ad7dab852abbbf) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4975,7 +5050,7 @@ ROM_LOAD( "cmc-pool10+b+.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "cmc-pool10+c+.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10i_nvram.bin", 0x0000, 0x0800, CRC(e93dee30) SHA1(195525e95a3bdc1b002b12fd27bc31c63d7a9276) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -4986,15 +5061,15 @@ ROM_START( pool10i ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "a.u2", 0x8000, 0x8000, CRC(566bc05d) SHA1(eec88c8ba6cb664f38ebf8b71f99b4e7d04a9601) ) // sldh - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "b.u21", 0x0000, 0x8000, CRC(581c4878) SHA1(5ae61af090feea1745e22f46b33b2c01e6013fbe) ) // sldh - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "c.u20", 0x8000, 0x8000, CRC(3bdf1106) SHA1(fa21cbd49bb27ea4a784cf4e4b3fbd52650a285b) ) // sldh - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10l_nvram.bin", 0x0000, 0x0800, CRC(89cbee4b) SHA1(ff8031a96ee40e1e62abbae7a0b3d9dc2122759f) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5009,7 +5084,7 @@ ROM_LOAD( "cmcpool10.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "cmcpool10.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "pool10j_nvram.bin", 0x0000, 0x0800, CRC(48684b02) SHA1(6f2fbd0e2621e31b881edd8056ff93ee78f331ab) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5063,16 +5138,16 @@ ROM_LOAD( "cmcpool10-b.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "biliard-c.u20", 0x8000, 0x8000, CRC(b15d10ec) SHA1(9b0f32ff791063cfb2d8339a4e8041e034e73eb7) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "biliard_nvram.bin", 0x0000, 0x0800, CRC(2f2fab43) SHA1(f815b70c171bad99fa6a60c256e4fdc85dd6b290) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29pc.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h-25pc-4.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "gal20v8a-25lp.u22", 0x0200, 0x0157, NO_DUMP ) /* GAL is read protected */ - ROM_LOAD( "gal20v8a-25lp.u23", 0x0400, 0x0157, NO_DUMP ) /* GAL is read protected */ + ROM_LOAD( "palce16v8h-25pc-4.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8a-25lp.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8a-25lp.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5081,18 +5156,18 @@ This one seems to run in royalcd1 hardware. */ -ROM_START( royal ) /* brute hack of pool 10 */ +ROM_START( royal ) // brute hack of pool 10 ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.u2", 0x8000, 0x8000, CRC(d4f36273) SHA1(2049257ea9ee52fde9cabfe40e809e00526a960e) ) // sldh - /* GFX ROMs are the same of pool10, but double sized with identical halves. */ +// GFX ROMs are the same of pool10, but double sized with identical halves. ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(439eec10) SHA1(500139c16a883f0a5b0b8d91f4f067ba428d2d11) ) // sldh - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9b59e72d) SHA1(96217272ce5abb78ff45ff116a5d921c57717ed9) ) // sldh - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royal_nvram.bin", 0x0000, 0x0800, CRC(9df190d5) SHA1(4be0f5c6f89f822568e45e0e8457cf51ced2dcfe) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5129,16 +5204,16 @@ ROM_LOAD( "tortu.b.u21", 0x0000, 0x8000, CRC(e7b18584) SHA1(fa1c367469d4ced5d7c83c15a25ec5fd6afcca10) ) ROM_LOAD( "tortu.c.u20", 0x8000, 0x8000, CRC(3cda6f73) SHA1(b4f3d2d3c652ebf6973358ae33b7808de5939acd) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "tortufam_nvram.bin", 0x0000, 0x0800, CRC(e5a08b1b) SHA1(6575ed3ec66ef0e42129225fe1679519e5e1c946) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29pc_tf.u25", 0x0000, 0x0200, CRC(c6d433fb) SHA1(065de832bbe8765eb0aacc2029e587a4f5362f8a) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce20v8h_tf.u5", 0x0000, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_tf.u22", 0x0200, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_tf.u23", 0x0400, 0x0157, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce20v8h_tf.u5", 0x0000, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_tf.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_tf.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5150,16 +5225,16 @@ ROM_LOAD( "potg.b.u21", 0x0000, 0x8000, CRC(32fc1d4f) SHA1(cc533a44498338bc0cbb7c7b9c42559ce7ff1337) ) ROM_LOAD( "potg.c.u20", 0x8000, 0x8000, CRC(0331eb42) SHA1(a8e838d644fc6d93a9632070b305e44e4242ce94) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "potgame_nvram.bin", 0x0000, 0x0800, CRC(2b07fb37) SHA1(9cbd3d8fb076d683a7853b3dd8a39a27f1c8872b) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29_pot.u25", 0x0000, 0x0200, CRC(a221f151) SHA1(270c57c9b7de912b136686bc6720eb8f12dbb805) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_pot.u5", 0x0000, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_pot.u22", 0x0200, 0x0157, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "palce20v8h_pot.u23", 0x0400, 0x0157, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h_pot.u5", 0x0000, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_pot.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_pot.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5171,16 +5246,16 @@ ROM_LOAD( "boat_2.bin", 0x0000, 0x8000, CRC(a6b36c3f) SHA1(90b12d9552ad5dbf11a30fc7451da1f3e6763cc3) ) ROM_LOAD( "boat_1.bin", 0x8000, 0x8000, CRC(61fd8c19) SHA1(eb8fd8bd7de38a6c8a435e9e36daf699162138a5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "bottle10_nvram.bin", 0x0000, 0x0800, CRC(82927c53) SHA1(8cde91588cb53fefc84f0b14fc5c0b26a3a445eb) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) /* GAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) /* GAL is read protected */ + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5192,16 +5267,16 @@ ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(9395c15b) SHA1(e4caefc6f55b07f5c4370a3b8652fa93e08987ce) ) ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(61fd8c19) SHA1(eb8fd8bd7de38a6c8a435e9e36daf699162138a5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "bottl10b_nvram.bin", 0x0000, 0x0800, CRC(59976182) SHA1(f8d26169e86444607bc5a6649f41e7f5c05ddbb4) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) /* GAL is read protected */ - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) /* GAL is read protected */ + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END /* @@ -5233,18 +5308,18 @@ were changed to match the second program. */ -/* The following two have mirrored video RAM 4000/5000 to 6000/7000. */ +// The following two have mirrored video RAM 4000/5000 to 6000/7000. ROM_START( lunapark ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* Two different programs. Selectable through a DIP switch */ + ROM_REGION( 0x10000, "maincpu", 0 ) // Two different programs. Selectable through a DIP switch ROM_LOAD( "lunapark-425-95n003.u2", 0x0000, 0x10000, CRC(b3a620ee) SHA1(67b3498edf7b536e22c4d97c1f6ad5a71521e68f) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "lunapark-425-95n002.u21", 0x0000, 0x8000, CRC(2bededb7) SHA1(b8d7e6fe307d347d762adf35d361ade620aab37b) ) - ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 0xff filled*/ + ROM_CONTINUE( 0x0000, 0x8000) // Discarding 1nd half 0xff filled ROM_LOAD( "lunapark-425-95n001.u20", 0x8000, 0x8000, CRC(7d91ce1f) SHA1(7e9bfad76f305d5787faffe3a07b218beb37fda8) ) - ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 0xff filled*/ + ROM_CONTINUE( 0x8000, 0x8000) // Discarding 1nd half 0xff filled - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "lunapark_nvram.bin", 0x0000, 0x0800, CRC(f99e749b) SHA1(fafd4205dfaacb4c21215af6997d06ab419c9281) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5252,23 +5327,23 @@ ROM_END ROM_START( lunaparkb ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* Two different programs. Selectable through a DIP switch */ + ROM_REGION( 0x10000, "maincpu", 0 ) // Two different programs. Selectable through a DIP switch ROM_LOAD( "lunapark-number-03_lunaparkb.u2", 0x0000, 0x10000, CRC(cb819bb7) SHA1(c7fb25eab093de2f644445a713d99ee8024d8499) ) ROM_REGION( 0x10000, "gfx1", 0 ) - ROM_LOAD( "27512.u21", 0x0000, 0x8000, CRC(d64ac315) SHA1(c67d9e67a988036844efd4f980d47a90c022ba18) ) /* only the first 2 bytes different */ - ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 0xff filled*/ + ROM_LOAD( "27512.u21", 0x0000, 0x8000, CRC(d64ac315) SHA1(c67d9e67a988036844efd4f980d47a90c022ba18) ) // only the first 2 bytes different + ROM_CONTINUE( 0x0000, 0x8000) // Discarding 1nd half 0xff filled ROM_LOAD( "27512.u20", 0x8000, 0x8000, CRC(7d91ce1f) SHA1(7e9bfad76f305d5787faffe3a07b218beb37fda8 ) ) - ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 0xff filled*/ + ROM_CONTINUE( 0x8000, 0x8000) // Discarding 1nd half 0xff filled - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "lunaparkb_nvram.bin", 0x0000, 0x0800, CRC(f99e749b) SHA1(fafd4205dfaacb4c21215af6997d06ab419c9281) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "82s147.u25", 0x0000, 0x0200, CRC(ddb74d72) SHA1(3d5dda3a935a3100cb86017f103b855d6449f73a) ) ROM_END -/* This one hasn't mirrored video RAM, so could run in regular Cuore 1 hardware */ +// This one hasn't mirrored video RAM, so could run in regular Cuore 1 hardware ROM_START( lunaparkc ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "lunapark-number-03_lunaparkc.u2", 0x8000, 0x8000, CRC(fdbe49c3) SHA1(a2b14a6998d5a27fba7bc360a15f17a48c91194f) ) @@ -5277,7 +5352,7 @@ ROM_LOAD( "lunapark-number-01.u21", 0x0000, 0x8000, CRC(ee057944) SHA1(31b76dcadf1dd5aacac1dfed0c7c9f7190797ead) ) ROM_LOAD( "lunapark-number-02.u20", 0x8000, 0x8000, CRC(b8795aec) SHA1(5db2e64657dee7742eb9d11e65d29c83a93332b7) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "lunaparkc_nvram.bin", 0x0000, 0x0800, CRC(005b70fc) SHA1(682c2315b4fafb6255db989f0d49255fd8d7a1a9) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5296,7 +5371,7 @@ ROM_LOAD( "425-1995-number-02.u21", 0x0000, 0x8000, CRC(1eaf1bd9) SHA1(eb392f4a8864c59c7792f905f165f543087cb4a0) ) ROM_LOAD( "425-1995-number-01.u20", 0x8000, 0x8000, CRC(d3972c19) SHA1(a84ae765eeae1f9d443b0c4941b6f93dcc540f8c) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "crystal_nvram.bin", 0x0000, 0x0800, CRC(21a712ee) SHA1(259d83b8268a93f96b53580562e9c6e835f7473e) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5324,7 +5399,7 @@ ROM_LOAD( "3.bin", 0x0000, 0x8000, CRC(c46d804f) SHA1(b089821c7dae6714b49401d787f8bed859815763) ) ROM_LOAD( "2.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrd_nvram.bin", 0x0000, 0x0800, CRC(1c775f61) SHA1(c810421eaa31a72e3f2fe9a1d82858e7cc2f6b93) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5349,7 +5424,7 @@ ROM_LOAD( "r.2", 0x8000, 0x8000, CRC(8a66f22c) SHA1(67d6e8f8f5a0fd979dc498ba2cc67cf707ccdf95) ) ROM_IGNORE( 0x8000) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrda_nvram.bin", 0x0000, 0x0800, CRC(c42dbad4) SHA1(b38552192e3f5f6bc2a4b92bddd2f95ac17ecc8c) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5372,7 +5447,7 @@ ROM_LOAD( "rc_3_pl.bin", 0x0000, 0x8000, CRC(85e77661) SHA1(7d7a765c1bfcfeb9eb91d2519b22d734f20eab24) ) ROM_LOAD( "rc_2_pl.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrdb_nvram.bin", 0x0000, 0x0800, CRC(19bb3dea) SHA1(0965fbcec48ded99c5f6793efffb1d9329cc00eb) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5447,15 +5522,15 @@ ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(85e77661) SHA1(7d7a765c1bfcfeb9eb91d2519b22d734f20eab24) ) // sldh ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrdd_nvram.bin", 0x0000, 0x0800, CRC(335bfa5a) SHA1(7e9cbb502f450c515ea03ffcf4b7fbae60af4e73) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147.bin", 0x0000, 0x0200, CRC(8bc86f48) SHA1(4c677ab9314a1f571e35104b22659e6811aeb194) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h-4.bin", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "1-peel18cv8.bin", 0x0200, 0x0155, NO_DUMP ) /* PEEL is read protected */ + ROM_LOAD( "palce16v8h-4.bin", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "1-peel18cv8.bin", 0x0200, 0x0155, NO_DUMP ) // PLD is read protected ROM_LOAD( "2-peel18cv8.bin", 0x0400, 0x0155, CRC(8fdafd55) SHA1(fbb187ba682111648ea1586f400990cb81a3077a) ) ROM_END @@ -5479,24 +5554,24 @@ - 1x trimmer (volume) */ -ROM_START( royalcrde ) /* both halves have different programs. we're using the 2nd one */ - ROM_REGION( 0x10000, "maincpu", 0 ) /* 1st half prg is testing RAM in offset $8600-$BF00...?? */ +ROM_START( royalcrde ) // both halves have different programs. we're using the 2nd one. + ROM_REGION( 0x10000, "maincpu", 0 ) // 1st half prg is testing RAM in offset $8600-$BF00...?? ROM_LOAD( "rc.bin", 0x0000, 0x10000, CRC(8a9a6dd6) SHA1(04c3f9f17d5404ac1414c51ef8f930df54530e72) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "2a.bin", 0x0000, 0x8000, CRC(3af71cf8) SHA1(3a0ce0d0abebf386573c5936545dada1d3558e55) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "1a.bin", 0x8000, 0x8000, CRC(8a66f22c) SHA1(67d6e8f8f5a0fd979dc498ba2cc67cf707ccdf95) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrde_nvram.bin", 0x0000, 0x0800, CRC(3b03440f) SHA1(49e51b8c9e1404d39c479a2d0619aab43f1a6529) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147.bin", 0x0000, 0x0200, CRC(8bc86f48) SHA1(4c677ab9314a1f571e35104b22659e6811aeb194) ) ROM_REGION( 0x0200, "plds", 0 ) - ROM_LOAD( "palce16v8h-4.bin", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h-4.bin", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected ROM_END @@ -5519,7 +5594,7 @@ ROM_REGION( 0x0800, "nvram", 0 ) ROM_LOAD( "royalcrdt_nv.bin", 0x0000, 0x0800, CRC(67a6e68b) SHA1(d7ab01c4d9bd4fe58b5d0f4a945c00c5c4906008) ) - ROM_REGION( 0x0200, "plds", 0 ) /* Device type is 16L8 */ + ROM_REGION( 0x0200, "plds", 0 ) // Device type is 16L8 ROM_LOAD( "tab01_3.bin", 0x0000, 0x0104, CRC(a13a7a0a) SHA1(28e918ece4dcfa3883d2439c226b2f125d43f386) ) ROM_END @@ -5568,7 +5643,7 @@ ROM_END -ROM_START( royalcrdg ) /* CMC C1030 PCB, EP910EC-30 CPLD, NON encrypted graphics */ +ROM_START( royalcrdg ) // CMC C1030 PCB, EP910EC-30 CPLD, NON encrypted graphics ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.cpu", 0x8000, 0x8000, CRC(829a6a1d) SHA1(b7064e4d60e33d0875eb73525230ea3b99f10542) ) @@ -5576,7 +5651,7 @@ ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(85e77661) SHA1(7d7a765c1bfcfeb9eb91d2519b22d734f20eab24) ) // sldh ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrdg_nvram.bin", 0x0000, 0x0800, CRC(853c7da9) SHA1(e275b22a9f470672bfc71425fcc44f547ba38b6d) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5598,7 +5673,7 @@ ROM_LOAD( "145-2.bin", 0x0000, 0x8000, CRC(85e77661) SHA1(7d7a765c1bfcfeb9eb91d2519b22d734f20eab24) ) ROM_LOAD( "145-1.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrdh_nvram.bin", 0x0000, 0x0800, CRC(7757d73a) SHA1(997bfbd847d1d21777694331be92a1a5e79e4faf) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5632,7 +5707,7 @@ 1x battery (missing) */ -ROM_START( royalcdfr ) /* Seems bootleg PCB, non encrypted graphics */ +ROM_START( royalcdfr ) // Seems bootleg PCB, non encrypted graphics ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.bin", 0x8000, 0x8000, CRC(69b944c1) SHA1(6ef76bff01f20376117dd7f67e5890eca754fcfb) ) // sldh @@ -5640,7 +5715,7 @@ ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(85e77661) SHA1(7d7a765c1bfcfeb9eb91d2519b22d734f20eab24) ) // sldh ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcdfr_nvram.bin", 0x0000, 0x0800, CRC(bda344d4) SHA1(7793d289147bf03c0d8256d4023252c9677ac8ff) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5659,7 +5734,7 @@ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147a.bin", 0x0000, 0x0200, CRC(8bc86f48) SHA1(4c677ab9314a1f571e35104b22659e6811aeb194) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "royalcrdp_nvram.bin", 0x0000, 0x0800, BAD_DUMP CRC(553f8c66) SHA1(d2c21786d715f81c537d860d8515fda6d766f630) ) ROM_REGION( 0x0200, "plds", 0 ) @@ -5692,7 +5767,7 @@ ROM_REGION( 0x0800, "nvram", 0 ) ROM_LOAD( "royaljp_nvram.bin", 0x0000, 0x0800, CRC(48e51e2a) SHA1(b81a1741eef299384d4fa98a534099b2c0332074) ) - ROM_REGION( 0x0600, "plds", 0 ) /* There are 3 GALs */ + ROM_REGION( 0x0600, "plds", 0 ) // There are 3 GALs ROM_LOAD( "gal20v8b.bin", 0x0000, 0x0157, NO_DUMP ) ROM_LOAD( "gal20v8a.bin", 0x0200, 0x0157, NO_DUMP ) ROM_LOAD( "gal16v8d.bin", 0x0400, 0x0117, NO_DUMP ) @@ -5709,7 +5784,7 @@ ROM_LOAD( "l2.bin", 0x0000, 0x8000, CRC(8ca90a8f) SHA1(bc3db3f8c097f89eff488e3aca39bf24ff2b5cff) ) ROM_LOAD( "l1.bin", 0x8000, 0x8000, CRC(beadc35c) SHA1(8a6a5954a827def8c4c3b904d8ee58a4bde53d85) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "lluck3x3_nvram.bin", 0x0000, 0x0800, CRC(2fe79cff) SHA1(7839c04336b7702c7bdcd2b6917a353f4376f824) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5725,7 +5800,7 @@ ROM_LOAD( "l2.bin", 0x0000, 0x8000, CRC(8ca90a8f) SHA1(bc3db3f8c097f89eff488e3aca39bf24ff2b5cff) ) ROM_LOAD( "l1.bin", 0x8000, 0x8000, CRC(beadc35c) SHA1(8a6a5954a827def8c4c3b904d8ee58a4bde53d85) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "lluck4x1_nvram.bin", 0x0000, 0x0800, CRC(05d2d7b8) SHA1(1188b2b4835cadd95b1e9160c2948a2e3457afd2) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5762,28 +5837,28 @@ */ -ROM_START( magicrd2 ) /* Impera... but seems Bulgarian hack, just for copyright */ - ROM_REGION( 0x10000, "maincpu", 0 ) /* magicard.004 has extra code, and 2 different NVRAM contents harcoded */ +ROM_START( magicrd2 ) // Impera... but seems Bulgarian hack, just for copyright + ROM_REGION( 0x10000, "maincpu", 0 ) // magicard.004 has extra code, and 2 different NVRAM contents harcoded ROM_LOAD( "magicard.004", 0x0000, 0x8000, CRC(f6e948b8) SHA1(7d5983015a508ab135ccbf69b7f3c526c229e3ef) ) - ROM_LOAD( "magicard.01", 0x8000, 0x8000, CRC(c94767d4) SHA1(171ac946bdf2575f9e4a31e534a8e641597af519) ) /* 1st and 2nd half identical */ - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_LOAD( "magicard.01", 0x8000, 0x8000, CRC(c94767d4) SHA1(171ac946bdf2575f9e4a31e534a8e641597af519) ) // 1st and 2nd half identical + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "mc2gr2.bin", 0x0000, 0x8000, CRC(733da697) SHA1(45122c64d5a371ec91cecc67b7faf179078e714d) ) ROM_LOAD( "mc2gr1.bin", 0x8000, 0x8000, CRC(2406b8d2) SHA1(e9d7a25562fd5adee351d7ef6ba02fff6aab021a) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "magicrd2_nvram.bin", 0x0000, 0x0800, CRC(343b3162) SHA1(1524959dbbc0c6d7c5c3a4a6b20976382cfbe88f) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "mc2-82s147.bin", 0x0000, 0x0200, CRC(aa91cc35) SHA1(79f9a755441500e618c4183f524f969fffd44100) ) ROM_REGION( 0x0200, "plds", 0 ) - ROM_LOAD( "gal16v8uni.bin", 0x0000, 0x0117, CRC(b81d7e0a) SHA1(7fef0b2bcea931a830d38ae0f1102434cf281d2d) ) /* Universal GAL */ + ROM_LOAD( "gal16v8uni.bin", 0x0000, 0x0117, CRC(b81d7e0a) SHA1(7fef0b2bcea931a830d38ae0f1102434cf281d2d) ) // Universal GAL ROM_END -ROM_START( magicrd2a ) /* Nov (new). Imatic Yugoslavian hack for green TAB or Impera boards */ +ROM_START( magicrd2a ) // Nov (new). Imatic Yugoslavian hack for green TAB or Impera boards ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "m3_nov.bin", 0x8000, 0x8000, CRC(ee5468e6) SHA1(f859adbad30e561fca86e60ff5b2e666d8bf4071) ) @@ -5791,7 +5866,7 @@ ROM_LOAD( "m2_nov.bin", 0x0000, 0x8000, CRC(684d71f2) SHA1(e4522844a0406b3e83fa723508a7c05dd21e7fb6) ) ROM_LOAD( "m1_nov.bin", 0x8000, 0x8000, CRC(96151034) SHA1(3107d353705c6240a71faf308e11c45a87d95cf4) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM (passed protection) */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM (passed protection) ROM_LOAD( "mc2_nvram.bin", 0x0000, 0x0800, CRC(2070d63d) SHA1(86c72a2e81651b0138d8551a0cfcd07176f8e7d2) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5802,16 +5877,15 @@ ROM_END -ROM_START( magicrd2b ) /* Imatic Yugoslavian hack for green TAB or Impera boards */ +ROM_START( magicrd2b ) // Imatic Yugoslavian hack for green TAB or Impera boards ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "mc2prgv1.bin", 0x8000, 0x8000, CRC(7f759b70) SHA1(23a1a6e8eda57c4a90c51a970302f9a7bf590083) ) -// ROM_LOAD( "mc2prgv2.bin", 0x8000, 0x8000, CRC(b0ed6b40) SHA1(7167e67608f1b0b1cd956c838dacc1310861cb4a) ) // there are also pcbs with this program ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "mc2gr2.bin", 0x0000, 0x8000, CRC(733da697) SHA1(45122c64d5a371ec91cecc67b7faf179078e714d) ) ROM_LOAD( "mc2gr1.bin", 0x8000, 0x8000, CRC(2406b8d2) SHA1(e9d7a25562fd5adee351d7ef6ba02fff6aab021a) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM (passed protection) */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM (passed protection) ROM_LOAD( "mc2_v1-v2_nvram.bin", 0x0000, 0x0800, BAD_DUMP CRC(f88c493d) SHA1(8a5352b46ab68164cd7adaaad6f15f04327b7451) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5822,16 +5896,15 @@ ROM_END -ROM_START( magicrd2c ) /* Imatic Yugoslavian hack for blue TAB board (encrypted)*/ +ROM_START( magicrd2c ) // Imatic Yugoslavian hack for blue TAB board (encrypted) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "mc2prgv2.bin", 0x8000, 0x8000, CRC(b0ed6b40) SHA1(7167e67608f1b0b1cd956c838dacc1310861cb4a) ) -// ROM_LOAD( "mc2prgv1.bin", 0x8000, 0x8000, CRC(7f759b70) SHA1(23a1a6e8eda57c4a90c51a970302f9a7bf590083) ) // there are also pcbs with this program ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "mc2gr1b.bin", 0x0000, 0x8000, CRC(ce2629a7) SHA1(84767ed5da8dcee44a210255537e10372bcc264b) ) ROM_LOAD( "mc2gr2b.bin", 0x8000, 0x8000, CRC(d2bf8bde) SHA1(975b8f43a0396c09e357b96d5ae7381b12152b9e) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM (passed protection) */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM (passed protection) ROM_LOAD( "mc2_v1-v2_nvram.bin", 0x0000, 0x0800, BAD_DUMP CRC(f88c493d) SHA1(8a5352b46ab68164cd7adaaad6f15f04327b7451) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5853,10 +5926,10 @@ ROM_LOAD( "v2.bin", 0x0000, 0x8000, CRC(af7ab460) SHA1(01ea400424152c09c10eb83a1bd569019969ccb7) ) ROM_LOAD( "v1.bin", 0x8000, 0x8000, CRC(23e0d1c6) SHA1(98967b14d3264c444a1dfbd15c57cde70f41f09d) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "vegasslw_nvram.bin", 0x0000, 0x0800, CRC(1aa043e3) SHA1(c93d071effb2f2fe95e9dc751174c2c765595f74) ) - ROM_REGION( 0x0200, "proms", 0 ) /* PLD address the 2nd half */ + ROM_REGION( 0x0200, "proms", 0 ) // PLD address the 2nd half ROM_LOAD( "jokercrd_prom.bin", 0x0000, 0x0200, CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) ROM_END @@ -5869,39 +5942,39 @@ ROM_LOAD( "v2.bin", 0x0000, 0x8000, CRC(af7ab460) SHA1(01ea400424152c09c10eb83a1bd569019969ccb7) ) ROM_LOAD( "v1.bin", 0x8000, 0x8000, CRC(23e0d1c6) SHA1(98967b14d3264c444a1dfbd15c57cde70f41f09d) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "vegasfst_nvram.bin", 0x0000, 0x0800, CRC(5034de7a) SHA1(ab2077a49d94676531c73ad8d8ce9548bbfa2b81) ) - ROM_REGION( 0x0200, "proms", 0 ) /* PLD address the 2nd half */ + ROM_REGION( 0x0200, "proms", 0 ) // PLD address the 2nd half ROM_LOAD( "jokercrd_prom.bin", 0x0000, 0x0200, CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) ROM_END -ROM_START( vegasfte ) /* Royal Vegas Joker Card (fast deal, english gfx) */ +ROM_START( vegasfte ) // Royal Vegas Joker Card (fast deal, english gfx) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ch3.bin", 0x8000, 0x8000, CRC(87dfb28d) SHA1(9a06e695e59722b6c97e5a9fd2c8b238661e5a4a) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "ch2.bin", 0x0000, 0x8000, CRC(af7ab460) SHA1(01ea400424152c09c10eb83a1bd569019969ccb7) ) - ROM_LOAD( "ch1.bin", 0x8000, 0x8000, CRC(0a3679c0) SHA1(ce8a067e1a2eccf9fabb16733ef3a14e0e8129e5) ) /* X & Y in txt layer */ + ROM_LOAD( "ch1.bin", 0x8000, 0x8000, CRC(0a3679c0) SHA1(ce8a067e1a2eccf9fabb16733ef3a14e0e8129e5) ) // X & Y in txt layer - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "vegasfte_nvram.bin", 0x0000, 0x0800, CRC(166c6055) SHA1(db2143a2a3adc92578bd3707391d2f5030cc6a6f) ) - ROM_REGION( 0x0200, "proms", 0 ) /* PLD address the 2nd half */ + ROM_REGION( 0x0200, "proms", 0 ) // PLD address the 2nd half ROM_LOAD( "jokercrd_prom.bin", 0x0000, 0x0200, CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) ROM_END ROM_START( vegasmil ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* Mile */ + ROM_REGION( 0x10000, "maincpu", 0 ) // Mile ROM_LOAD( "mile.bin", 0x8000, 0x8000, CRC(ef7e02e2) SHA1(7432b0e723dc528901c422ab1d7d01fd1bc1eb20) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "v2.bin", 0x0000, 0x8000, CRC(af7ab460) SHA1(01ea400424152c09c10eb83a1bd569019969ccb7) ) ROM_LOAD( "v1.bin", 0x8000, 0x8000, CRC(23e0d1c6) SHA1(98967b14d3264c444a1dfbd15c57cde70f41f09d) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "vegasmil_nvram.bin", 0x0000, 0x0800, CRC(d2608e5f) SHA1(ac936df71dbc0bfb811a3ba3c91444a2a3e7b036) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5993,7 +6066,7 @@ */ -ROM_START( jolyjokr ) /* Jolly Joker (98bet, set 1) */ +ROM_START( jolyjokr ) // Jolly Joker (98bet, set 1) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "impera3orig.bin", 0x8000, 0x8000, CRC(ceb3a0d5) SHA1(25efae9f225abddfa663e6abcc91801996e5b0ea) ) @@ -6001,7 +6074,7 @@ ROM_LOAD( "impera2.bin", 0x0000, 0x8000, CRC(f0fa5941) SHA1(1fcade31ed6893ffcfd4efe97dfaaa31d24283ec) ) ROM_LOAD( "impera1.bin", 0x8000, 0x8000, CRC(c3ab44dd) SHA1(e46c0fd94da561f57033647f1703fa135777ece5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolyjokr_nvram.bin", 0x0000, 0x0800, CRC(f33e66ed) SHA1(7a4b9a1b2f976d5d26f54915a213d5ac5eca0a42) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -6009,7 +6082,7 @@ ROM_END -ROM_START( jolyjokra ) /* Jolly Joker (98bet, set 2) */ +ROM_START( jolyjokra ) // Jolly Joker (98bet, set 2) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "impera50.bin", 0x8000, 0x8000, CRC(7effc044) SHA1(961438e7fb8222296fb959b510cdf646e4ac3226) ) @@ -6017,7 +6090,7 @@ ROM_LOAD( "impera2.bin", 0x0000, 0x8000, CRC(f0fa5941) SHA1(1fcade31ed6893ffcfd4efe97dfaaa31d24283ec) ) ROM_LOAD( "impera1.bin", 0x8000, 0x8000, CRC(c3ab44dd) SHA1(e46c0fd94da561f57033647f1703fa135777ece5) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolyjokra_nvram.bin", 0x0000, 0x0800, CRC(ed43693c) SHA1(d4aa4e539ab12c97bc9b9b1077997195a11d782b) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -6026,34 +6099,80 @@ /* - Jolly Joker (40bet, croatian hack) + Jolly Joker (40bet) - am27s29_ic40.bin 1ST AND 2ND HALF IDENTICAL - ic25.bin 1ST AND 2ND HALF IDENTICAL - ic26.bin 1ST AND 2ND HALF IDENTICAL - - These graphics ROMs have enough data to fix the bitrotten graphics from the other Jolly Joker sets. - impera1.bin ---> bits 7 & 6 - impera2.bin ---> bits 7 & 0 - - Two slightly different programs. One in each half. - Both have Min Bet (5), Max Bet (40). - Surely selectable through a PLD. - -*/ -ROM_START( jolyjokrb ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* Two slightly different programs. Using the 1st one...*/ - ROM_LOAD( "unbekannt.bin", 0x8000, 0x8000, CRC(327fa3d7) SHA1(2435aada2377b2f8f01d059a7aba9bc7a8993537) ) /* 1st prg */ - ROM_IGNORE( 0x8000 ) /* Using the 1st program. Discarding 2nd half */ -// ROM_LOAD( "unbekannt.bin", 0x0000, 0x10000, CRC(327fa3d7) SHA1(2435aada2377b2f8f01d059a7aba9bc7a8993537) ) /* 2nd prg */ + am27s29_ic40.bin 1ST AND 2ND HALF IDENTICAL + ic25.bin 1ST AND 2ND HALF IDENTICAL + ic26.bin 1ST AND 2ND HALF IDENTICAL + + These graphics ROMs have enough data to fix the bitrotten graphics from the other Jolly Joker sets. + impera1.bin ---> bits 7 & 6 + impera2.bin ---> bits 7 & 0 + + Two slightly different programs. One in each half. + Both have Min Bet (5), Max Bet (40). + Surely selectable through a PLD. + + This is clearly the paytable. Here the differences... + + offset: C9CF C9D0 C9D1 C9D2 C9D3 C9D4 C9D5 C9D6 C9D7 C9D8 C9D9 C9DA C9DB C9DC C9DD C9DE C9DF C9E0 C9E1 C9E2 + program #1 0x01 0x00 0x02 0x00 0x03 0x00 0x05 0x00 0x07 0x00 0x10 0x00 0x40 0x00 0x00 0x01 0x00 0x05 0x00 0x11 + program #2 0x01 0x00 0x02 0x00 0x03 0x00 0x05 0x00 0x07 0x00 0x10 0x00 0x40 0x00 0x00 0x01 0x50 0x02 0x00 0x03 + ^^^^ ^^^^ ^^^^ + + offset: C9E3 C9E4 C9E5 C9E6 C9E7 C9E8 C9E9 C9EA C9EB C9EC C9ED C9EE C9EF C9F0 C9F1 C9F2 C9F3 C9F4 C9F5 C9F6 + program #1 0x01 0x00 0x02 0x00 0x03 0x00 0x05 0x00 0x07 0x00 0x10 0x00 0x40 0x00 0x00 0x01 0x00 0x05 0x00 0x11 + program #2 0x01 0x00 0x02 0x00 0x03 0x00 0x05 0x00 0x07 0x00 0x10 0x00 0x40 0x00 0x00 0x01 0x50 0x02 0x00 0x03 + ^^^^ ^^^^ ^^^^ + This change the paytable to the following values: + + Program #1 Program #2 + + Five of a Kind 1100 Five of a Kind 300 + Royak Flush 500 Royak Flush 250 + Street Flush 100 Street Flush 100 + Poker 40 Poker 40 + Full House 10 Full House 10 + Farbe 7 Farbe 7 + Strasse 5 Strasse 5 + Drilling 3 Drilling 3 + 2 Paare 2 2 Paare 2 + Hohes Paar 1 Hohes Paar 1 + + Will split in two different sets, since these programs were made to use as different + game variations, and aren't user selectable. + +*/ +ROM_START( jolyjokrb1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) // Two different paytable programs. Using the 1st one (higher paytable) + ROM_LOAD( "unbekannt.bin", 0x8000, 0x8000, CRC(327fa3d7) SHA1(2435aada2377b2f8f01d059a7aba9bc7a8993537) ) + ROM_IGNORE( 0x8000 ) // Using the 1st program. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "ic26.bin", 0x0000, 0x8000, CRC(3e45dfc6) SHA1(8fd0b0cc00cdd96244ae7e7a91f6613b1c144ee0) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "ic25.bin", 0x8000, 0x8000, CRC(1bd067af) SHA1(9436fe085ba63c00a12ea80903470a84535e3dc1) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM + ROM_LOAD( "jolyjokrb_nvram.bin", 0x0000, 0x0800, CRC(17007bb5) SHA1(72e08096293ce4fbde205a63b5ecd9641dbee017) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "am27s29_ic40.bin", 0x0000, 0x0200, CRC(0b671bba) SHA1(92d512e02b50f98b7bc5a60deee4fee722656c4f) ) +ROM_END + +ROM_START( jolyjokrb2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) // Two different paytable programs. Using the 2nd one (lower paytable) + ROM_LOAD( "unbekannt.bin", 0x8000, 0x8000, CRC(327fa3d7) SHA1(2435aada2377b2f8f01d059a7aba9bc7a8993537) ) + ROM_CONTINUE( 0x8000, 0x8000) // overlapping with the 2nd program. + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "ic26.bin", 0x0000, 0x8000, CRC(3e45dfc6) SHA1(8fd0b0cc00cdd96244ae7e7a91f6613b1c144ee0) ) + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_LOAD( "ic25.bin", 0x8000, 0x8000, CRC(1bd067af) SHA1(9436fe085ba63c00a12ea80903470a84535e3dc1) ) + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "jolyjokrb_nvram.bin", 0x0000, 0x0800, CRC(17007bb5) SHA1(72e08096293ce4fbde205a63b5ecd9641dbee017) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -6078,7 +6197,7 @@ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "tbp28s42.bin", 0x0000, 0x0200, CRC(0b671bba) SHA1(92d512e02b50f98b7bc5a60deee4fee722656c4f) ) - ROM_REGION( 0x0200, "plds", 0 ) /* Cracked PLD */ + ROM_REGION( 0x0200, "plds", 0 ) // cracked PLD ROM_LOAD( "jjpal.bin", 0x0000, 0x0117, CRC(3b084c34) SHA1(5d186b70317ef871c9a426eb420b66efcbd918de) ) ROM_END @@ -6105,7 +6224,7 @@ */ ROM_START( jolyjokro ) - ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "impera1.bin", 0x0000, 0x10000, CRC(3cad9fcf) SHA1(09f23ae8c04e6b461e17a8b3978fe44566ffc3aa) ) ROM_REGION( 0x10000, "gfxpool", 0 ) @@ -6128,7 +6247,7 @@ ROM_REGION( 0x10000, "gfxpool", 0 ) ROM_LOAD( "9c_1ff1.bin", 0x00000, 0x10000, CRC(4b8f0821) SHA1(0821eed07f5e98b66d87a3079756dad72ffe9665) ) - ROM_CONTINUE( 0x00000, 0x10000) // discarding 1nd half (0000-ffff), but has some data. maybe the missing impera logo? + ROM_CONTINUE( 0x00000, 0x10000) // discarding 1nd half (0000-ffff), but has some data. leftover? ROM_REGION( 0x10000, "gfx1", 0 ) ROM_FILL( 0x0000, 0x10000, 0xff) // deinterleaved GFX data will be placed here @@ -6140,6 +6259,41 @@ ROM_LOAD( "impera_color_ii.bin", 0x0000, 0x0200, CRC(9d62f9f5) SHA1(68300c25c7eaa13a3fdbf91ab0711d0bc530543d) ) ROM_END +/* + Jolly Joker + Impera. + + This hardware has a daughterboard that seems a solid state replacement + for the suicide modules of funworld boards. + + It's just a theory, but the main battery is routed to the daughterboard + connectors, when this module has not suicide program inside a RAM. + + Module contents: + + 1x Rockwell R65C02P2 Mexico. + 1x 27c512 EPROM stickered 'IMPERA1'. + 1x PAL16L8A2NC. + 1x 74HC241N. + 1x 74LS245N. + 1x 74LS139N. + +*/ +ROM_START( jolyjokrm ) // Jolly Joker (Solid State module in suicide board) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "impera1.bin", 0x0000, 0x10000, CRC(3cad9fcf) SHA1(09f23ae8c04e6b461e17a8b3978fe44566ffc3aa) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "02.bin", 0x0000, 0x8000, CRC(f0fa5941) SHA1(1fcade31ed6893ffcfd4efe97dfaaa31d24283ec) ) + ROM_LOAD( "01.bin", 0x8000, 0x8000, CRC(c3ab44dd) SHA1(e46c0fd94da561f57033647f1703fa135777ece5) ) + + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM + ROM_LOAD( "jolyjokrm_nvram.bin", 0x0000, 0x0800, CRC(f33e66ed) SHA1(7a4b9a1b2f976d5d26f54915a213d5ac5eca0a42) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "63s481.bin", 0x0000, 0x0200, CRC(1f974802) SHA1(c9d4d72edef3c03b0c6e1a0ffc0b82f6d213d29c) ) +ROM_END + /******************************** Other sets ************************************/ @@ -6161,7 +6315,7 @@ ROM_LOAD( "multiwin1.bin", 0x8000, 0x8000, CRC(97589aa6) SHA1(2486116637bd906cb3b32acd86fc861c48a0475e) ) ROM_REGION( 0x0200, "proms", 0 ) - ROM_LOAD( "multi_prom.bin", 0x0000, 0x0200, BAD_DUMP CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) /* using the joker card one */ + ROM_LOAD( "multi_prom.bin", 0x0000, 0x0200, BAD_DUMP CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) // using the joker card one ROM_END @@ -6259,12 +6413,12 @@ */ ROM_START( powercrd ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* need proper decryption */ - ROM_LOAD( "263a1.bin", 0x8000, 0x8000, CRC(9e5e477d) SHA1(428464a64bea8cb478bc8033859baa47d7de0297) ) /* just the 2nd half */ - ROM_LOAD( "263a2.bin", 0x0000, 0x8000, CRC(11b1a13f) SHA1(766c1a45c238467d6a292795f5a159187966ceec) ) /* just the 2nd half */ + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "263a1.bin", 0x8000, 0x8000, CRC(9e5e477d) SHA1(428464a64bea8cb478bc8033859baa47d7de0297) ) // just the 2nd half + ROM_LOAD( "263a2.bin", 0x0000, 0x8000, CRC(11b1a13f) SHA1(766c1a45c238467d6a292795f5a159187966ceec) ) // just the 2nd half - ROM_REGION( 0x0800, "decode", 0 ) /* from the CY7C291A inside of the custom CPU */ - ROM_LOAD( "powercrd_cy7c291a.bin", 0x0000, 0x0800, CRC(f1d8f35d) SHA1(2b5f9222a81a627d43fd8448385f85c71c24b914) ) /* new dump */ + ROM_REGION( 0x0800, "decode", 0 ) // from the CY7C291A inside of the custom CPU + ROM_LOAD( "powercrd_cy7c291a.bin", 0x0000, 0x0800, CRC(f1d8f35d) SHA1(2b5f9222a81a627d43fd8448385f85c71c24b914) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "power_c_zg2.ic11", 0x0000, 0x8000, CRC(108380bb) SHA1(922beffe3c06f391239125e6f4ccc86ec6980c45) ) @@ -6393,15 +6547,15 @@ */ ROM_START( megacard ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* need proper decryption */ - ROM_LOAD( "mega_mc3_210-f-1.ic37", 0x8000, 0x8000, CRC(747f5ed1) SHA1(06757bb6a792dca93978b17b54c28e413e3720b1) ) /* just the 2nd half */ - ROM_LOAD( "mega_mc3_210-f-2.ic41", 0x0000, 0x8000, CRC(373094d2) SHA1(8aed2502e89b0e7522e88f351ac256f1afad7ee8) ) /* just the 2nd half */ + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mega_mc3_210-f-1.ic37", 0x8000, 0x8000, CRC(747f5ed1) SHA1(06757bb6a792dca93978b17b54c28e413e3720b1) ) // just the 2nd half + ROM_LOAD( "mega_mc3_210-f-2.ic41", 0x0000, 0x8000, CRC(373094d2) SHA1(8aed2502e89b0e7522e88f351ac256f1afad7ee8) ) // just the 2nd half - ROM_REGION( 0x0300, "die_65sc02", 0 ) /* from the 65SC02 die inside of the custom CPU */ + ROM_REGION( 0x0300, "die_65sc02", 0 ) // from the 65SC02 die inside of the custom CPU ROM_LOAD( "gteu65decoderom.bin", 0x0000, 0x02f1, CRC(089af0c6) SHA1(0f46a73a7859a694a07ebe74d476fae80e57e329) ) - ROM_REGION( 0x0800, "decode", 0 ) /* from the CY7C291A inside of the custom CPU */ - ROM_LOAD( "megacard_cy7291a.bin", 0x0000, 0x0800, CRC(596f01ac) SHA1(a8606a1dd385fbb46b1a96f11a759fa6580803d8) ) /* new dump */ + ROM_REGION( 0x0800, "decode", 0 ) // from the CY7C291A inside of the custom CPU + ROM_LOAD( "megacard_cy7291a.bin", 0x0000, 0x0800, CRC(596f01ac) SHA1(a8606a1dd385fbb46b1a96f11a759fa6580803d8) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "mega_zg2.ic11", 0x0000, 0x8000, CRC(0993d380) SHA1(e5e2386948fba2fb6b79339af27bd1d0f1e198ca) ) @@ -6427,9 +6581,9 @@ Unfortunatelly, the graphics ROM vesely_zg_1.ic10 has address 8 line (leg 25) shorted. Seems that the protection diode was blown due to a bad handling. - With forensics technics, a special device was constructed to process the faulty ROM - and try to read the contents. Fortunatelly after all these efforts, we got - a perfect and complete dump. + With forensics techniques, a special device was constructed to process + the faulty ROM and try to read the contents. Fortunatelly after all these + efforts, we got a perfect and complete dump. Specs: @@ -6484,9 +6638,9 @@ ROM_START( jokercrd ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ic41.bin", 0x4000, 0x4000, CRC(d36188b3) SHA1(3fb848fabbbde9fbb70875b3dfef62bfb3a8cbcb) ) - ROM_IGNORE( 0x4000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x4000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "ic37.bin", 0xc000, 0x4000, CRC(8e0d70c4) SHA1(018f92631acbe98e5826a41698f0e07b4b46cd71) ) - ROM_IGNORE( 0x4000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x4000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "vesely_zg_2.ic11", 0x0000, 0x8000, CRC(21d05a57) SHA1(156c18ec31b08e4c4af6f73b49cb5d5c68d1670f) ) @@ -6528,25 +6682,25 @@ ROM_START( mongolnw ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "prgteov.2.3m.u16", 0x8000, 0x8000, CRC(996b851a) SHA1(ef4e3d036ca10b33c83749024d04c4d4c09feeb7) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x10000, "cpu1", 0 ) /* TSC87C52-16CB MCU Code */ + ROM_REGION( 0x10000, "cpu1", 0 ) // TSC87C52-16CB MCU Code ROM_LOAD( "tsc87c52-mf.u40", 0x0000, 0x02000 , CRC(ae22e778) SHA1(0897e05967d68d7f23489e98717663e3a3176070) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "mong.rc.b2.u3", 0x0000, 0x8000, CRC(5e019b73) SHA1(63a544dccb9589e5a6b938e604c09d4d8fc060fc) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "mong.rc.c1.u2", 0x8000, 0x8000, CRC(e3fc24c4) SHA1(ea4e67ace63b55a76365f7e11a67c7d420a52dd7) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "mongolnw_nvram.bin", 0x0000, 0x0800, CRC(700531fa) SHA1(a8bcf86df6bd06d2ee54b4898dd7822060b81dba) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29pc_mf.u24", 0x0000, 0x0200, CRC(da9181af) SHA1(1b30d992f3b2a4b3bd81e3f99632311988e2e8d1) ) ROM_REGION( 0x0200, "plds", 0 ) - ROM_LOAD( "palce16v8h_mf.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h_mf.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected ROM_END @@ -6588,25 +6742,25 @@ ROM_START( soccernw ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "prgteo2gv2.3.u16", 0x8000, 0x8000, CRC(c61d1937) SHA1(c516f13a108da60b7ccee338b63a025009ef9099) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x10000, "cpu1", 0 ) /* TSC87C52-16CB MCU Code */ + ROM_REGION( 0x10000, "cpu1", 0 ) // TSC87C52-16CB MCU Code ROM_LOAD( "tsc87c52-sn.u40", 0x0000, 0x02000 , CRC(af0bd35b) SHA1(c6613a7bcdec2fd6060d6dcf639654568de87e75) ) ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "soccer2.u3", 0x0000, 0x8000, CRC(db09b5bb) SHA1(a12bf2938f5482ea5ebc0db6fd6594e1beb97017) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "soccer1.u2", 0x8000, 0x8000, CRC(564cc467) SHA1(8f90c4bacd97484623666b25dae77e628908e243) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "soccernw_nvram.bin", 0x0000, 0x0800, CRC(607247bd) SHA1(06bbed08166d8930f14e1f41843ac7faeded263d) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29pc_sn.u24", 0x0000, 0x0200, CRC(d02894fc) SHA1(adcdc912cc0b7a7f67b122fa94fca921c957b282) ) ROM_REGION( 0x0200, "plds", 0 ) - ROM_LOAD( "palce16v8h_sn.u5", 0x0000, 0x0117, NO_DUMP ) /* PAL is read protected */ + ROM_LOAD( "palce16v8h_sn.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected ROM_END @@ -6730,7 +6884,7 @@ --+----------------------------------------------------------------------- */ -ROM_START( funquiz ) /* Fun World Quiz */ +ROM_START( funquiz ) // Fun World Quiz ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "kqu_6.bin", 0xc000, 0x4000, CRC(50f0e586) SHA1(85ce5b95283113e2ac94fd882c57ce1b26135ed0) ) @@ -6740,31 +6894,31 @@ ROM_FILL( 0x8000, 0x4000, 0xff) ROM_LOAD( "q_2.bin", 0xc000, 0x4000, CRC(ce07c6e1) SHA1(6b77a9198e29c195d983b856e8826e8174945321) ) - /* One unpopulated questions socket... Maybe sport_1 is missing */ +// One unpopulated questions socket... Maybe sport_1 is missing ROM_REGION( 0x100000, "questions", ROMREGION_ERASEFF ) - /* 01 - Allgemein */ + // 01 - Allgemein ROM_LOAD( "allg_1.bin", 0x00000, 0x8000, CRC(1351cf56) SHA1(50e89c3e6d256bcf7f1d3c0dbef935e4e8561096) ) ROM_LOAD( "allg_2.bin", 0x08000, 0x8000, CRC(021492a4) SHA1(b59e1303f17c9e5af05a808118ae729205690bb2) ) ROM_LOAD( "allg_3.bin", 0x10000, 0x8000, CRC(de8e055f) SHA1(593fce143ee5994087bbac8b51ac7e2d02e8701c) ) ROM_LOAD( "allg_4.bin", 0x18000, 0x8000, CRC(5c87177a) SHA1(a8a8318165008cb3295e25d4b4d38146f44a32fc) ) // this one has the category in the rom in ALL caps, is it official? ROM_LOAD( "allg_5.bin", 0x20000, 0x8000, CRC(83056686) SHA1(00f14ded371751d54a391bf583d940b32ddeae58) ) - /* 02 - Geschichte */ + // 02 - Geschichte ROM_LOAD( "gesch_1.bin", 0x28000, 0x8000, CRC(6f785938) SHA1(1e3df7c262d8cb7d7981c9d424d4c1361fe55b50) ) ROM_LOAD( "gesch_2.bin", 0x30000, 0x8000, CRC(3363c0ba) SHA1(f1a2a86e6abc73dd9312fa744b6929fae138e219) ) - /* 03 - Geographie */ + // 03 - Geographie ROM_LOAD( "geo_1.bin", 0x38000, 0x8000, CRC(504da831) SHA1(4bef7bed4d300400c094cb30e9af55d3c6f47c29) ) ROM_LOAD( "geo_2.bin", 0x40000, 0x8000, CRC(7c563119) SHA1(9f3ae3ba3e4f60d9ea4b5c95aa5aaada8bb446a3) ) - /* 04 - Technik */ + // 04 - Technik ROM_LOAD( "tech_1.bin", 0x48000, 0x8000, CRC(cf5b9edc) SHA1(f1085c9915d21c4da581d06c9568d2bb47d467ed) ) - /* 05 - Sport */ + // 05 - Sport ROM_LOAD( "sport_2.bin", 0x50000, 0x8000, CRC(7accde63) SHA1(75ec3a02368d3a07d48ef9a9ff4ca7f8cf7798e2) ) - /* 07 - Pop */ + // 07 - Pop ROM_LOAD( "pop_1.bin", 0x58000, 0x8000, CRC(5c74781e) SHA1(0a50a706fd397bb220e31f1a7adaa4204b242888) ) ROM_LOAD( "pop_2.bin", 0x60000, 0x8000, CRC(10103648) SHA1(6fdc1aa4dcc8919e46def1c19adc2b9686c0f72d) ) @@ -6793,29 +6947,29 @@ ROM_REGION( 0x100000, "questions", ROMREGION_ERASEFF ) - /* 01 - Allgemein */ + // 01 - Allgemein ROM_LOAD( "allg1.bin", 0x00000, 0x8000, CRC(1351cf56) SHA1(50e89c3e6d256bcf7f1d3c0dbef935e4e8561096) ) ROM_LOAD( "allg2.bin", 0x08000, 0x8000, CRC(021492a4) SHA1(b59e1303f17c9e5af05a808118ae729205690bb2) ) ROM_LOAD( "allg3.bin", 0x10000, 0x8000, CRC(4eb29de3) SHA1(5c5d47959c06261ab51fc4e821bff0fe41ac9176) ) ROM_LOAD( "allg4.bin", 0x18000, 0x8000, CRC(5c87177a) SHA1(a8a8318165008cb3295e25d4b4d38146f44a32fc) ) ROM_LOAD( "allg5.bin", 0x20000, 0x8000, CRC(83056686) SHA1(00f14ded371751d54a391bf583d940b32ddeae58) ) - /* 02 - Technik */ + // 02 - Technik ROM_LOAD( "tech1.bin", 0x28000, 0x8000, CRC(cf5b9edc) SHA1(f1085c9915d21c4da581d06c9568d2bb47d467ed) ) - /* 03 - Sport */ + // 03 - Sport ROM_LOAD( "sp1.bin", 0x30000, 0x8000, CRC(20fb1261) SHA1(ad029f1a2b19365543c77fcd1103f6c5783c9f68) ) ROM_LOAD( "sp2.bin", 0x38000, 0x8000, CRC(1988f5b7) SHA1(969ae64796e432c04862cb8c159e419a4793e9f0) ) - /* 04 - Film - Unterhaltung */ + // 04 - Film - Unterhaltung ROM_LOAD( "unterh1.bin", 0x40000, 0x8000, CRC(996e7adc) SHA1(7b271cdb6ef555d31c2b17c6104bd30cd2eabcb3) ) - /* 05 - Geographie */ + // 05 - Geographie ROM_LOAD( "geo1.bin", 0x48000, 0x8000, CRC(504da831) SHA1(4bef7bed4d300400c094cb30e9af55d3c6f47c29) ) ROM_LOAD( "geo2.bin", 0x50000, 0x8000, CRC(7c563119) SHA1(9f3ae3ba3e4f60d9ea4b5c95aa5aaada8bb446a3) ) ROM_LOAD( "geo3.bin", 0x58000, 0x8000, CRC(7c563119) SHA1(9f3ae3ba3e4f60d9ea4b5c95aa5aaada8bb446a3) ) - /* 06 - Pop */ + // 06 - Pop ROM_LOAD( "pop_1.bin", 0x60000, 0x8000, CRC(5c74781e) SHA1(0a50a706fd397bb220e31f1a7adaa4204b242888) ) ROM_LOAD( "pop_2.bin", 0x68000, 0x8000, CRC(10103648) SHA1(6fdc1aa4dcc8919e46def1c19adc2b9686c0f72d) ) @@ -6841,29 +6995,29 @@ ROM_REGION( 0x100000, "questions", ROMREGION_ERASEFF ) - /* 01 - Allgemein */ + // 01 - Allgemein ROM_LOAD( "allg1.bin", 0x00000, 0x8000, CRC(1351cf56) SHA1(50e89c3e6d256bcf7f1d3c0dbef935e4e8561096) ) ROM_LOAD( "allg2.bin", 0x08000, 0x8000, CRC(021492a4) SHA1(b59e1303f17c9e5af05a808118ae729205690bb2) ) ROM_LOAD( "allg3.bin", 0x10000, 0x8000, CRC(de8e055f) SHA1(593fce143ee5994087bbac8b51ac7e2d02e8701c) ) ROM_LOAD( "allg4.bin", 0x18000, 0x8000, CRC(5c87177a) SHA1(a8a8318165008cb3295e25d4b4d38146f44a32fc) ) ROM_LOAD( "allg5.bin", 0x20000, 0x8000, CRC(83056686) SHA1(00f14ded371751d54a391bf583d940b32ddeae58) ) - /* 02 - Technik */ + // 02 - Technik ROM_LOAD( "tech1.bin", 0x28000, 0x8000, CRC(cf5b9edc) SHA1(f1085c9915d21c4da581d06c9568d2bb47d467ed) ) - /* 03 - Sport */ + // 03 - Sport ROM_LOAD( "sport1.bin", 0x30000, 0x8000, CRC(b351c745) SHA1(3b64d8e935eb4cd5bdf82934983b3ffab465257a) ) ROM_LOAD( "sport2.bin", 0x38000, 0x8000, CRC(7accde63) SHA1(75ec3a02368d3a07d48ef9a9ff4ca7f8cf7798e2) ) - /* 04 - Film - Unterhaltung */ + // 04 - Film - Unterhaltung ROM_LOAD( "unt1.bin", 0x40000, 0x8000, CRC(996e7adc) SHA1(7b271cdb6ef555d31c2b17c6104bd30cd2eabcb3) ) - /* 05 - Geographie */ + // 05 - Geographie ROM_LOAD( "geo1.bin", 0x48000, 0x8000, CRC(504da831) SHA1(4bef7bed4d300400c094cb30e9af55d3c6f47c29) ) ROM_LOAD( "geo2.bin", 0x50000, 0x8000, CRC(7c563119) SHA1(9f3ae3ba3e4f60d9ea4b5c95aa5aaada8bb446a3) ) ROM_LOAD( "geo3.bin", 0x58000, 0x8000, CRC(7c563119) SHA1(9f3ae3ba3e4f60d9ea4b5c95aa5aaada8bb446a3) ) - /* 06 - Pop */ + // 06 - Pop ROM_LOAD( "pop1.bin", 0x60000, 0x8000, CRC(5c74781e) SHA1(0a50a706fd397bb220e31f1a7adaa4204b242888) ) ROM_LOAD( "pop2.bin", 0x68000, 0x8000, CRC(10103648) SHA1(6fdc1aa4dcc8919e46def1c19adc2b9686c0f72d) ) @@ -6887,11 +7041,11 @@ ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "2.u11", 0x0000, 0x8000, CRC(7edc8f44) SHA1(cabad613fa8a72dc12587d19a72bc9c6861486bd) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "3.u4", 0x8000, 0x8000, CRC(5e4a0d59) SHA1(08eb9b1a617a7b2e6f87377819dba07082cf38b4) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "witchryl_nvram.bin", 0x0000, 0x0800, CRC(98366bed) SHA1(279a5ce4639b8b2ac29146b32512615253c45991) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -6908,7 +7062,7 @@ */ -ROM_START( novoplay ) /* Similar to Royal Vegas Joker Card */ +ROM_START( novoplay ) // Similar to Royal Vegas Joker Card ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "np1_run.bin", 0x8000, 0x8000, CRC(4078d695) SHA1(d0e39064250733968044aec216040fe62fecc880) ) @@ -6916,10 +7070,10 @@ ROM_LOAD( "np1_ch2.bin", 0x0000, 0x8000, CRC(188d6fad) SHA1(3bc9bab24d8c7beed0c5f491c19a004ca7d719a1) ) ROM_LOAD( "np1_ch1.bin", 0x8000, 0x8000, CRC(fdc3bd67) SHA1(0ec2d5e0b1937849934f98e253e18887af0331e8) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "novoplay_nvram.bin", 0x0000, 0x0800, CRC(92019972) SHA1(e6d1e231cd2ce27e718ed9482dbe9ddc8612eb67) ) - ROM_REGION( 0x0200, "proms", 0 ) /* PLD address the 2nd half */ + ROM_REGION( 0x0200, "proms", 0 ) // PLD address the 2nd half ROM_LOAD( "np1_27s29.bin", 0x0000, 0x0200, CRC(8992aa4d) SHA1(5a0649bff66e7cab1bcbadcdfc74c77a747cc58f) ) ROM_END @@ -6939,7 +7093,7 @@ */ -ROM_START( jolycdsp ) /* Encrypted program in a module. Blue TAB PCB encrypted graphics */ +ROM_START( jolycdsp ) // Encrypted program in a module. Blue TAB PCB encrypted graphics ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ct3.bin", 0x8000, 0x8000, CRC(0c9cbae6) SHA1(4f834370229797cac302a5185ed1e77ef2b7cabb) ) @@ -6947,10 +7101,10 @@ ROM_LOAD( "ct2.bin", 0x0000, 0x8000, CRC(7569e719) SHA1(f96e1e72bc13d1888f3868f8d404fd3db94db7b2) ) ROM_LOAD( "ct1.bin", 0x8000, 0x8000, CRC(8f438635) SHA1(3200e20f4b28173cc2a68d0f87969627570418dc) ) - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "ctunk_nvram.bin", 0x0000, 0x0800, CRC(c55c6706) SHA1(a38ae926f057fb47e48ca841b2d097fc4fd06416) ) - ROM_REGION( 0x0200, "proms", 0 ) /* Borrowed from the parent set */ + ROM_REGION( 0x0200, "proms", 0 ) // Borrowed from the parent set ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(5ebc5659) SHA1(8d59011a181399682ab6e8ed14f83101e9bfa0c6) ) ROM_END @@ -6983,11 +7137,11 @@ ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "m27c512.u2", 0x0000, 0x8000, CRC(915f1e59) SHA1(2eb2a7acca50318eb1775b01a00b1d3c74e1522c) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "m27c512.u20", 0x8000, 0x8000, CRC(86e55f5a) SHA1(be71301b6887e8cc5924864d0f97b54e0668875e) ) - ROM_IGNORE( 0x8000 ) /* Identical halves. Discarding 2nd half */ + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "rcdino4_nvram.bin", 0x0000, 0x0800, CRC(a2dc069e) SHA1(23e296cc0cc0c6f0c34eccffff8c78d2cef2dbae) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -7010,11 +7164,11 @@ ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "27c512.u2", 0x0000, 0x8000, CRC(6ace221f) SHA1(d35a6621d9d9231a844d7043da78035855ebf572) ) - ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 0xff filled*/ + ROM_CONTINUE( 0x0000, 0x8000) // Discarding 1nd half 0xff filled ROM_LOAD( "27c512.u20", 0x8000, 0x8000, CRC(efb7f1ec) SHA1(260005526fc9b4087ca03f7cc585e40b6fa007fb) ) - ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 0xff filled*/ + ROM_CONTINUE( 0x8000, 0x8000) // Discarding 1nd half 0xff filled - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM ROM_LOAD( "chinatow_nvram.bin", 0x0000, 0x0800, CRC(eef4c5e7) SHA1(a2d9a9f617d35ccb99236114e5ce3257ad572f49) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -7164,7 +7318,7 @@ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "m3-7649a-5.bin", 0x0000, 0x0200, CRC(f990a9ae) SHA1(f7133798b5f20dd5b8dbe5d1a6876341710d93a8) ) - ROM_REGION( 0x0200, "plds", 0 ) /* Cracked PLD */ + ROM_REGION( 0x0200, "plds", 0 ) // cracked PLD ROM_LOAD( "pal16l8acn_block.bin", 0x0000, 0x0117, CRC(fcda7872) SHA1(60acdb968e6229a8f71c2e29d22e132906a65bd5) ) ROM_END @@ -7244,6 +7398,109 @@ ROM_END +/* + Gratis Poker + Stmk + Version: 004 + 29. Sept. 95 + +*/ +ROM_START( gratispk ) // Gratis Poker (V.204, Set 1) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "gratis_poker_club_ver_204.bin", 0x8000, 0x8000, CRC(e53da78e) SHA1(6b87af4d66082f1a18e9e00a41df2484f5373cc7) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "3.bin", 0x0000, 0x8000, CRC(daec20c7) SHA1(340bdb7749a7d898e96db5a470821cfe7216ea57) ) + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_LOAD( "2.bin", 0x8000, 0x8000, CRC(112c5f33) SHA1(fffaa247a97f9bde7374cc80ab0bb9fb71bcc4b6) ) + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM + ROM_LOAD( "gratispk_nvram.bin", 0x0000, 0x0800, CRC(8fcad62f) SHA1(85def713ed5b9bbdbf0d077a38f779d6f4329a1c) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "tbp28s42n.bin", 0x0000, 0x0200, CRC(e92f74e0) SHA1(dfc4a9d140d21b990f769c10802c4d2c33dd4132) ) +ROM_END + +ROM_START( gratispka ) // Gratis Poker (V.204, Set 2) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "35g_ver_204.bin", 0x8000, 0x8000, CRC(e53da78e) SHA1(6b87af4d66082f1a18e9e00a41df2484f5373cc7) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "3.bin", 0x0000, 0x8000, CRC(4f077fa3) SHA1(d65005b7111b77ac7c3707bd12bc376506d9477b) ) + ROM_LOAD( "2.bin", 0x8000, 0x8000, CRC(0f3711b0) SHA1(ce874dbfc2d7171cff2be41d4a44fe8194526ef7) ) + + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM + ROM_LOAD( "gratispk_nvram.bin", 0x0000, 0x0800, CRC(8fcad62f) SHA1(85def713ed5b9bbdbf0d077a38f779d6f4329a1c) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "tbp28s42n.bin", 0x0000, 0x0200, CRC(e92f74e0) SHA1(dfc4a9d140d21b990f769c10802c4d2c33dd4132) ) +ROM_END + + +/* + Γκούλιτ + Nkoúlit + Gullit + + Greek hack of Royal Card. + +*/ +ROM_START( nkoulit ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "27c256-3.bin", 0x8000, 0x8000, CRC(3f4f671d) SHA1(0aa87f813567f7a537315bf3d452343e5a449e13) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "27c256-2.bin", 0x0000, 0x8000, CRC(4a9ea5ad) SHA1(50504544265646e12ce769a1fd40d7afeae8b8d3) ) + ROM_LOAD( "27c256-1.bin", 0x8000, 0x8000, CRC(7b3a6d1a) SHA1(b7f2e534ad4467cd0a9d86019be8110caf45c024) ) + + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM + ROM_LOAD( "nkoulit_nvram.bin", 0x0000, 0x0800, CRC(73584f67) SHA1(4aab0d4fe846592e1cbc8b3c2411ddc1bf79fd95) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "am27s29pc.bin", 0x0000, 0x0200, CRC(8bc86f48) SHA1(4c677ab9314a1f571e35104b22659e6811aeb194) ) +ROM_END + + +/* + Reflex Cards (English) + Need special NVRAM to boot. + + Without the factory NVRAM, you can generate one. + The attract works, and allow coin up. When you start a game, + a serial number entering screen appears. You must to match + the secret number to continue: + + Serial: 00000000 + Key: FFFFFFFF + + The real serial number isn't shown. Just zeroes as mask. + You must to enter digit by digit using the HOLD buttons, + then turn the machine off, and on. (you can reset in MAME). + + If you entered the correct number, the game continues, + otherwise you'll be stuck forever. + + The code and NVRAM were reversed to find the serial number + and key offsets and the way they are stored, to construct + a working default NVRAM. + +*/ +ROM_START( reflexcrd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bonus_2_27c256-1.bin", 0x8000, 0x8000, CRC(8fbcf0b9) SHA1(3a45c09fbec3e4ecce24ac2562a68b453755886f) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "27c256-2.bin", 0x0000, 0x8000, CRC(05fe86fc) SHA1(a58ab5d107936f7d462f8f748bb6ac27bd77429b) ) + ROM_LOAD( "27c256-3.bin", 0x8000, 0x8000, CRC(1617ed13) SHA1(312065406ce1d1d7c4ad566e2b13268f7eb524bb) ) + + ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM + ROM_LOAD( "reflexcrd_nvram.bin", 0x0000, 0x0800, CRC(c2c69e5b) SHA1(e4abbf09abc044ba17e542cc8e1cfa16ee7cf776) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "bipolar_prom.bin", 0x0000, 0x0200, CRC(8bc86f48) SHA1(4c677ab9314a1f571e35104b22659e6811aeb194) ) +ROM_END + /************************** * Driver Initialization * @@ -7276,13 +7533,13 @@ for (x=0x0000; x < 0x10000; x++) { - na = src[x] & 0xf0; /* nibble A */ - nb = src[x] << 4; /* nibble B */ + na = src[x] & 0xf0; // nibble A + nb = src[x] << 4; // nibble B - nad = (na ^ (na >> 1)) << 1; /* nibble A decrypted */ - nbd = ((nb ^ (nb >> 1)) >> 3) & 0x0f; /* nibble B decrypted */ + nad = (na ^ (na >> 1)) << 1; // nibble A decrypted + nbd = ((nb ^ (nb >> 1)) >> 3) & 0x0f; // nibble B decrypted - src[x] = nad + nbd; /* decrypted byte */ + src[x] = nad + nbd; // decrypted byte } } @@ -7310,20 +7567,20 @@ void magicrd2_state::init_magicd2c() { - /*** same as blue TAB PCB, with the magicd2a patch ***/ +// *** same as blue TAB PCB, with the magicd2a patch *** int x, na, nb, nad, nbd; uint8_t *src = memregion( "gfx1" )->base(); uint8_t *ROM = memregion("maincpu")->base(); for (x=0x0000; x < 0x10000; x++) { - na = src[x] & 0xf0; /* nibble A */ - nb = src[x] << 4; /* nibble B */ + na = src[x] & 0xf0; // nibble A + nb = src[x] << 4; // nibble B - nad = (na ^ (na >> 1)) << 1; /* nibble A decrypted */ - nbd = ((nb ^ (nb >> 1)) >> 3) & 0x0f; /* nibble B decrypted */ + nad = (na ^ (na >> 1)) << 1; // nibble A decrypted + nbd = ((nb ^ (nb >> 1)) >> 3) & 0x0f; // nibble B decrypted - src[x] = nad + nbd; /* decrypted byte */ + src[x] = nad + nbd; // decrypted byte } ROM[0xc1c6] = 0x92; @@ -7332,26 +7589,26 @@ void funworld_state::init_mongolnw() { - /* temporary patch to avoid hardware errors for debug purposes */ +// temporary patch to avoid hardware errors for debug purposes uint8_t *ROM = memregion("maincpu")->base(); ROM[0x9115] = 0xa5; - /* prevents one test from triggering hardware error */ +// prevents one test from triggering hardware error ROM[0xb8f3] = 0xff; } void funworld_state::init_soccernw() { -/* temporary patch to avoid hardware errors for debug purposes */ +// temporary patch to avoid hardware errors for debug purposes uint8_t *ROM = memregion("maincpu")->base(); ROM[0x80b2] = 0xa9; ROM[0x80b3] = 0x00; ROM[0x9115] = 0xa5; -/* prevent one test from triggering hardware error */ +// prevents one test from triggering hardware error ROM[0xb8f3] = 0xff; } @@ -7395,7 +7652,7 @@ * Program ROM decryption * *****************************/ - /* data lines swap: 76543210 -> 76543012 */ + // data lines swap: 76543210 -> 76543012 for (int i = start; i < size; i++) { @@ -7406,7 +7663,7 @@ std::vector buffer(size); memcpy(&buffer[0], rom, size); - /* address lines swap: fedcba9876543210 -> fedcba9820134567 */ + // address lines swap: fedcba9876543210 -> fedcba9820134567 for (int i = start; i < size; i++) { @@ -7425,7 +7682,7 @@ std::vector buffer(sizeg); memcpy(&buffer[0], gfxrom, sizeg); - /* address lines swap: fedcba9876543210 -> fedcb67584a39012 */ + // address lines swap: fedcba9876543210 -> fedcb67584a39012 for (int i = 0; i < sizeg; i++) { @@ -7439,7 +7696,7 @@ * Color PROM decryption * ****************************/ - /* data lines swap: 76543210 -> 23546710 */ + // data lines swap: 76543210 -> 23546710 { std::vector buffer; @@ -7448,7 +7705,7 @@ buffer.push_back(bitswap<8>(prom[i], 2, 3, 5, 4, 6, 7, 1, 0)); } - /* address lines swap: fedcba9876543210 -> fedcba9487652013 */ + // address lines swap: fedcba9876543210 -> fedcba9487652013 for (int i = 0; i < sizep; i++) { int a = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 4, 8, 7, 6, 5, 2, 0, 1, 3); @@ -7494,7 +7751,7 @@ * Program ROM decryption * *****************************/ - /* data lines swap: 76543210 -> 76543120 */ + // data lines swap: 76543210 -> 76543120 for (int i = start; i < size; i++) { @@ -7505,7 +7762,7 @@ std::vector buffer(size); memcpy(&buffer[0], rom, size); - /* address lines swap: fedcba9876543210 -> fedcba9867543210 */ + // address lines swap: fedcba9876543210 -> fedcba9867543210 for (int i = start; i < size; i++) { int a = bitswap<16>(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); @@ -7522,7 +7779,7 @@ std::vector buffer(sizeg); memcpy(&buffer[0], gfxrom, sizeg); - /* address lines swap: fedcba9876543210 -> fedcb67584a39012 */ + // address lines swap: fedcba9876543210 -> fedcb67584a39012 for (int i = 0; i < sizeg; i++) { @@ -7549,7 +7806,7 @@ * Program ROM decryption * *****************************/ - /* data lines swap: 76543210 -> 56734012 */ + // data lines swap: 76543210 -> 56734012 for (int i = start; i < size; i++) { @@ -7568,13 +7825,13 @@ //uint8_t *ROM = memregion("maincpu")->base(); for (int x = 0x0000; x < 0x10000; x++) { - int na = src[x] & 0xf0; /* nibble A */ - int nb = src[x] << 4; /* nibble B */ + int na = src[x] & 0xf0; // nibble A + int nb = src[x] << 4; // nibble B - int nad = (na ^ (na >> 1)) << 1; /* nibble A decrypted */ - int nbd = ((nb ^ (nb >> 1)) >> 3) & 0x0f; /* nibble B decrypted */ + int nad = (na ^ (na >> 1)) << 1; // nibble A decrypted + int nbd = ((nb ^ (nb >> 1)) >> 3) & 0x0f; // nibble B decrypted - src[x] = nad + nbd; /* decrypted byte */ + src[x] = nad + nbd; // decrypted byte } } @@ -7585,7 +7842,7 @@ * Program ROM decryption * *****************************/ - /* data lines swap: 76543210 -> 76543120 */ + // data lines swap: 76543210 -> 76543120 { std::vector buffer; for (int i = 0; i < size; i++) @@ -7593,7 +7850,7 @@ buffer.push_back(bitswap<8>(rom[i], 7, 6, 5, 4, 3, 1, 2, 0)); } - /* address lines swap: fedcba9876543210 -> fedcba9867543210 */ + // address lines swap: fedcba9876543210 -> fedcba9867543210 for (int i = 0; i < size; i++) { @@ -7611,7 +7868,7 @@ std::vector buffer(sizeg); memcpy(&buffer[0], gfxrom, sizeg); - /* address lines swap: fedcba9876543210 -> fedcb67584a39012 */ + // address lines swap: fedcba9876543210 -> fedcb67584a39012 for (int i = 0; i < sizeg; i++) { @@ -7620,7 +7877,7 @@ } } - /* d4-d5 data lines swap, plus a XOR with 0x81, implemented in two steps for an easy view */ + // d4-d5 data lines swap, plus a XOR with 0x81, implemented in two steps for an easy view for (int x = 0x0000; x < 0x10000; x++) { @@ -7634,7 +7891,7 @@ static uint8_t rcdino4_add[] = { -/* 0 1 2 3 4 5 6 7 8 9 a b c d e f*/ +// 0 1 2 3 4 5 6 7 8 9 a b c d e f /*0*/ 1, 9, 9, 9, 9, 2, 9, 9, 1, 2, 1, 9, 9, 3, 9, 9, /*1*/ 2, 2, 9, 9, 9, 9, 9, 9, 1, 9, 1, 9, 9, 9, 9, 9, /*2*/ 3, 9, 9, 9, 9, 2, 2, 9, 1, 2, 1, 9, 9, 3, 3, 9, @@ -7655,65 +7912,65 @@ static uint8_t rcdino4_keys40[] = { -/* 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d*/ +// 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 0x36, 0x54, 0x47, 0x6b, 0xce, 0x95, 0xa2, 0x66, 0x3a, 0x46, 0x53, 0xd7, 0xc4, 0xa4, -/* 4e 4f*/ +// 4e 4f 0x00, 0x00, -/* 50*/ +// 50 0x56 }; static uint8_t rcdino4_keys80[] = { -/* 81 82 83 84 85 */ +// 81 82 83 84 85 0xb8, 0x32, 0x1c, 0x23, 0xe2, -/* 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91*/ +// 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -/* 92 93 94 95 96 97 */ +// 92 93 94 95 96 97 0x4c, 0x00, 0x3d, 0x00, 0xd9, 0x16, -/* 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3*/ +// 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -/* a4 a5 a6*/ +// a4 a5 a6 0x5e, 0x73, 0x69, -/* a7 a8 a9*/ +// a7 a8 a9 0x00, 0x00, 0x00, -/* aa*/ +// aa 0xa6, -/* ab ac ad ae af*/ +// ab ac ad ae af 0x00, 0x00, 0x00, 0x00, 0x00, -/* b0 b1*/ +// b0 b1 0xc3, 0x40, -/* b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2*/ +// b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -/* c3 c4 c5*/ +// c3 c4 c5 0x92, 0xb7, 0x24, -/* c6 c7 c8 c9*/ +// c6 c7 c8 c9 0x00, 0x00, 0x00, 0x00, -/* ca*/ +// ca 0x62, -/* cb cc cd ce cf*/ +// cb cc cd ce cf 0x00, 0x00, 0x00, 0x00, 0x00, -/* d0*/ +// d0 0x84, -/* d1*/ +// d1 0x00, -/* d2*/ +// d2 0xaa, -/* d3 d4 d5*/ +// d3 d4 d5 0x00, 0x00, 0x00, -/* d6*/ +// d6 0xea, -/* d7 d8 d9 da db dc dd de df*/ +// d7 d8 d9 da db dc dd de df 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -/* e0*/ +// e0 0x17, -/* e1 e2 e3*/ +// e1 e2 e3 0x00, 0x00, 0x00, -/* e4*/ +// e4 0xc0, -/* e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7*/ +// e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -/* f8 f9 fa fb fc fd fe*/ +// f8 f9 fa fb fc fd fe 0x06, 0x1e, 0x28, 0x5a, 0xcf, 0x79, 0x11 }; @@ -7773,40 +8030,40 @@ int add = rcdino4_add[c]; if (((i == 0x81) - && (j >= 0xa3) && (j <= 0xb1) /* text string */ + && (j >= 0xa3) && (j <= 0xb1) // text string ) || ((i == 0x82) - && (j >= 0x35) && (j <= 0x53) /* table of addresses */ + && (j >= 0x35) && (j <= 0x53) // table of addresses ) || ((i == 0x85) - && (j >= 0x7e) && (j <= 0x8d) /* '0'-'9', 'A'-'F' */ + && (j >= 0x7e) && (j <= 0x8d) // '0'-'9', 'A'-'F' ) || ((i == 0x94) - && (((j >= 0x4a) && (j <= 0x86)) /* zeroes */ - || ((j >= 0xbf) && (j <= 0xc1)) /* set of masks */ + && (((j >= 0x4a) && (j <= 0x86)) // zeroes + || ((j >= 0xbf) && (j <= 0xc1)) // set of masks */ ) ) || ((i == 0x96) - && (j >= 0x39) && (j <= 0x3e) /* set of masks */ + && (j >= 0x39) && (j <= 0x3e) // set of masks ) || ((i == 0xa6) - && (j >= 0x30) && (j <= 0x32) /* set of masks */ + && (j >= 0x30) && (j <= 0x32) // set of masks ) || ((i == 0xaa) - && (j >= 0xf2) /* table of addresses */ + && (j >= 0xf2) // table of addresses ) || ((i == 0xc3) - && (j >= 0x70) && (j <= 0xaf) /* set of masks */ + && (j >= 0x70) && (j <= 0xaf) // set of masks ) || ((i == 0xc4) - && (j >= 0xdc) /* zeroes and things */ + && (j >= 0xdc) // zeroes and things ) || ((i == 0xd0) - && (j >= 0xd2) /* text and zeroes */ + && (j >= 0xd2) // text and zeroes ) || ((i == 0xd2) - && ((j <= 0x2f) /* text and zeroes */ - || ((j >= 0x84) && (j <= 0xaf)) /* text and zeroes */ + && ((j <= 0x2f) // text and zeroes + || ((j >= 0x84) && (j <= 0xaf)) // text and zeroes ) ) || (add == 9) @@ -7837,7 +8094,7 @@ || (i == 0xf8) ) { - j = 0; /* re-align offset after skipping some pages */ + j = 0; // re-align offset after skipping some pages } } while (1); @@ -7937,130 +8194,137 @@ * Game Drivers * **********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT // Jolly Card based... -GAMEL( 1985, jollycrd, 0, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (German, set 1)", 0, layout_jollycrd ) -GAMEL( 1985, jollycrda, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (German, set 2)", 0, layout_jollycrd ) -GAMEL( 1985, jolyc3x3, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (3x3 deal)", 0, layout_jollycrd ) -GAMEL( 1993, jolycmzs, jollycrd, cuoreuno, jolyc980, funworld_state, empty_init, ROT0, "MZS Tech", "Jolly Card Professional 2.0 (MZS Tech)", 0, layout_jollycrd ) -GAMEL( 2000, jolyc980, jollycrd, cuoreuno, jolyc980, funworld_state, empty_init, ROT0, "Spale Soft", "Jolly Card Professional 2.0 (Spale Soft)", 0, layout_jollycrd ) -GAMEL( 1998, jolycdev, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria / Evona Electronic", "Jolly Card (Evona Electronic)", 0, layout_jollycrd ) -GAMEL( 1985, jolyccra, jollycrd, cuoreuno, jolycdcr, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (Croatian, set 1)", 0, layout_jollycrd ) -GAMEL( 1993, jolyccrb, jollycrd, cuoreuno, jolycdcr, funworld_state, empty_init, ROT0, "Soft Design", "Jolly Card (Croatian, set 2)", 0, layout_jollycrd ) -GAMEL( 1985, sjcd2kx3, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "M.P.", "Super Joly 2000 - 3x", 0, layout_jollycrd ) -GAMEL( 1986, jolycdab, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Inter Games", "Jolly Card (German, Fun World, bootleg)", 0, layout_jollycrd ) -GAMEL( 1992, jolycdsp, jollycrd, cuoreuno, jolycdit, funworld_state, init_ctunk, ROT0, "TAB Austria", "Jolly Card (Spanish, blue TAB board, encrypted)", 0, layout_royalcrd ) -GAMEL( 1990, jolycdid, jollycrd, cuoreuno, jolycdcr, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 1)", 0, layout_jollycrd ) // italian, CPLD, different colors. -GAMEL( 1990, jolycdie, jollycrd, cuoreuno, jolycdib, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 2)", 0, layout_jollycrd ) // not from TAB blue PCB. -GAMEL( 1990, jolycdif, jollycrd, cuoreuno, jolycdib, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, bootleg, set 1)", 0, layout_jollycrd ) // italian, CPLD. doesn't need nvram init. -GAMEL( 1993, jolycdig, jollycrd, cuoreuno, jolycdib, funworld_state, init_jolycdig, ROT0, "bootleg", "Jolly Card (Italian, bootleg, set 2)", 0, layout_jollycrd ) // italian, CPLD. needs nvram. -GAMEL( 1990, jolycdih, jollycrd, cuoreuno, jolycdib, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, bootleg, set 3)", 0, layout_jollycrd ) +GAMEL( 1985, jollycrd, 0, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (German, set 1)", 0, layout_jollycrd ) +GAMEL( 1985, jollycrda, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (German, set 2)", 0, layout_jollycrd ) +GAMEL( 1985, jolyc3x3, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (3x3 deal)", 0, layout_jollycrd ) +GAMEL( 1993, jolycmzs, jollycrd, cuoreuno, jolyc980, funworld_state, empty_init, ROT0, "MZS Tech", "Jolly Card Professional 2.0 (MZS Tech)", 0, layout_jollycrd ) +GAMEL( 2000, jolyc980, jollycrd, cuoreuno, jolyc980, funworld_state, empty_init, ROT0, "Spale Soft", "Jolly Card Professional 2.0 (Spale Soft)", 0, layout_jollycrd ) +GAMEL( 1998, jolycdev, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "TAB Austria / Evona Electronic", "Jolly Card (Evona Electronic)", 0, layout_jollycrd ) +GAMEL( 1985, jolyccra, jollycrd, cuoreuno, jolycdcr, funworld_state, empty_init, ROT0, "TAB Austria", "Jolly Card (Croatian, set 1)", 0, layout_jollycrd ) +GAMEL( 1993, jolyccrb, jollycrd, cuoreuno, jolycdcr, funworld_state, empty_init, ROT0, "Soft Design", "Jolly Card (Croatian, set 2)", 0, layout_jollycrd ) +GAMEL( 1985, sjcd2kx3, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "M.P.", "Super Joly 2000 - 3x", 0, layout_jollycrd ) +GAMEL( 1986, jolycdab, jollycrd, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Inter Games", "Jolly Card (German, Fun World, bootleg)", 0, layout_jollycrd ) +GAMEL( 1992, jolycdsp, jollycrd, cuoreuno, jolycdit, funworld_state, init_ctunk, ROT0, "TAB Austria", "Jolly Card (Spanish, blue TAB board, encrypted)", 0, layout_royalcrd ) +GAMEL( 1990, jolycdid, jollycrd, cuoreuno, jolycdcr, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 1)", 0, layout_jollycrd ) // italian, CPLD, different colors. +GAMEL( 1990, jolycdie, jollycrd, cuoreuno, jolycdib, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 2)", 0, layout_jollycrd ) // not from TAB blue PCB. +GAMEL( 1990, jolycdif, jollycrd, cuoreuno, jolycdib, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, bootleg, set 1)", 0, layout_jollycrd ) // italian, CPLD. doesn't need nvram init. +GAMEL( 1993, jolycdig, jollycrd, cuoreuno, jolycdib, funworld_state, init_jolycdig, ROT0, "bootleg", "Jolly Card (Italian, bootleg, set 2)", 0, layout_jollycrd ) // italian, CPLD. needs nvram. +GAMEL( 1990, jolycdih, jollycrd, cuoreuno, jolycdib, funworld_state, empty_init, ROT0, "bootleg", "Jolly Card (Italian, bootleg, set 3)", 0, layout_jollycrd ) // Bonus Card based... -GAMEL( 1986, bonuscrd, 0, fw2ndpal, bonuscrd, funworld_state, empty_init, ROT0, "Fun World", "Bonus Card (German)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background -GAMEL( 1986, bonuscrda, bonuscrd, fw2ndpal, bonuscrd, funworld_state, empty_init, ROT0, "Fun World", "Bonus Card (German, ATG Electronic hack)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background -GAMEL( 1986, bigdeal, bonuscrd, fw2ndpal, bigdeal, funworld_state, empty_init, ROT0, "Fun World", "Big Deal (Hungarian, set 1)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) -GAMEL( 1986, bigdealb, bonuscrd, fw2ndpal, bigdeal, funworld_state, empty_init, ROT0, "Fun World", "Big Deal (Hungarian, set 2)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) +GAMEL( 1986, bonuscrd, 0, fw2ndpal, bonuscrd, funworld_state, empty_init, ROT0, "Fun World", "Bonus Card (German)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background +GAMEL( 1986, bonuscrda, bonuscrd, fw2ndpal, bonuscrd, funworld_state, empty_init, ROT0, "Fun World", "Bonus Card (German, ATG Electronic hack)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background +GAMEL( 1986, bigdeal, bonuscrd, fw2ndpal, bigdeal, funworld_state, empty_init, ROT0, "Fun World", "Big Deal (Hungarian, set 1)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) +GAMEL( 1986, bigdealb, bonuscrd, fw2ndpal, bigdeal, funworld_state, empty_init, ROT0, "Fun World", "Big Deal (Hungarian, set 2)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // CMC Italian jamma PCB's... -GAMEL( 1996, cuoreuno, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Cuore 1 (Italian)", 0, layout_jollycrd ) -GAMEL( 1997, elephfam, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Elephant Family (Italian, new)", 0, layout_jollycrd ) -GAMEL( 1996, elephfmb, elephfam, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Elephant Family (Italian, old)", 0, layout_jollycrd ) -GAMEL( 1996, pool10, 0, cuoreuno, pool10, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 1)", 0, layout_jollycrd ) -GAMEL( 1996, pool10b, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 2)", 0, layout_jollycrd ) -GAMEL( 1996, pool10c, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 3)", 0, layout_jollycrd ) -GAMEL( 1997, pool10d, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 4)", 0, layout_jollycrd ) -GAMEL( 1997, pool10f, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 5)", 0, layout_jollycrd ) -GAMEL( 1996, pool10g, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 6)", 0, layout_jollycrd ) -GAMEL( 1996, pool10h, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 7)", 0, layout_jollycrd ) -GAMEL( 1997, pool10i, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 8)", 0, layout_jollycrd ) -GAMEL( 1996, pool10j, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "bootleg (R.B.)", "Pool 10 (Italian, set 9)", 0, layout_jollycrd ) -GAMEL( 1998, biliard, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "bootleg", "New Biliard 98 (Pool 10 hack)", 0, layout_jollycrd ) -GAMEL( 2001, royal, pool10, royalcd1, royal, funworld_state, empty_init, ROT0, "", "Royal (Pool 10 hack)", 0, layout_jollycrd ) -GAMEL( 1997, tortufam, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Tortuga Family (Italian)", 0, layout_jollycrd ) -GAMEL( 1996, potgame, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pot Game (Italian)", 0, layout_jollycrd ) -GAMEL( 1996, bottle10, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Bottle 10 (Italian, set 1)", 0, layout_jollycrd ) -GAMEL( 1996, bottl10b, bottle10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Bottle 10 (Italian, set 2)", 0, layout_jollycrd ) -GAMEL( 1998, lunapark, 0, lunapark, lunapark, lunapark_state, empty_init, ROT0, "", "Luna Park (set 1, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). -GAMEL( 1998, lunaparkb, lunapark, lunapark, lunapark, lunapark_state, empty_init, ROT0, "", "Luna Park (set 2, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). -GAMEL( 1998, lunaparkc, lunapark, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "", "Luna Park (set 3)", 0, layout_jollycrd ) // regular video RAM 6000/7000. -GAMEL( 1998, crystal, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "J.C.D. srl", "Crystal Colours (CMC hardware)", 0, layout_jollycrd ) +GAMEL( 1996, cuoreuno, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Cuore 1 (Italian)", 0, layout_jollycrd ) +GAMEL( 1997, elephfam, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Elephant Family (Italian, new)", 0, layout_jollycrd ) +GAMEL( 1996, elephfmb, elephfam, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Elephant Family (Italian, old)", 0, layout_jollycrd ) +GAMEL( 1996, pool10, 0, cuoreuno, pool10, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 1)", 0, layout_jollycrd ) +GAMEL( 1996, pool10b, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 2)", 0, layout_jollycrd ) +GAMEL( 1996, pool10c, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 3)", 0, layout_jollycrd ) +GAMEL( 1997, pool10d, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 4)", 0, layout_jollycrd ) +GAMEL( 1997, pool10f, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 5)", 0, layout_jollycrd ) +GAMEL( 1996, pool10g, pool10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 6)", 0, layout_jollycrd ) +GAMEL( 1996, pool10h, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 7)", 0, layout_jollycrd ) +GAMEL( 1997, pool10i, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "C.M.C.", "Pool 10 (Italian, set 8)", 0, layout_jollycrd ) +GAMEL( 1996, pool10j, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "bootleg (R.B.)", "Pool 10 (Italian, set 9)", 0, layout_jollycrd ) +GAMEL( 1998, biliard, pool10, cuoreuno, pool10, funworld_state, empty_init, ROT0, "bootleg", "New Biliard 98 (Pool 10 hack)", 0, layout_jollycrd ) +GAMEL( 2001, royal, pool10, royalcd1, royal, funworld_state, empty_init, ROT0, "", "Royal (Pool 10 hack)", 0, layout_jollycrd ) +GAMEL( 1997, tortufam, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Tortuga Family (Italian)", 0, layout_jollycrd ) +GAMEL( 1996, potgame, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Pot Game (Italian)", 0, layout_jollycrd ) +GAMEL( 1996, bottle10, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Bottle 10 (Italian, set 1)", 0, layout_jollycrd ) +GAMEL( 1996, bottl10b, bottle10, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "C.M.C.", "Bottle 10 (Italian, set 2)", 0, layout_jollycrd ) +GAMEL( 1998, lunapark, 0, lunapark, lunapark, lunapark_state, empty_init, ROT0, "", "Luna Park (set 1, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). +GAMEL( 1998, lunaparkb, lunapark, lunapark, lunapark, lunapark_state, empty_init, ROT0, "", "Luna Park (set 2, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). +GAMEL( 1998, lunaparkc, lunapark, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "", "Luna Park (set 3)", 0, layout_jollycrd ) // regular video RAM 6000/7000. +GAMEL( 1998, crystal, 0, cuoreuno, cuoreuno, funworld_state, empty_init, ROT0, "J.C.D. srl", "Crystal Colours (CMC hardware)", 0, layout_jollycrd ) // Royal Card based... -GAMEL( 1991, royalcrd, 0, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 1)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrda, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 2)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrdb, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German/Polish, set 3)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrdc, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 4)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrdd, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 5)", 0, layout_royalcrd ) -GAMEL( 1991, royalcrde, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 6)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrdt, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (TAB original)", 0, layout_jollycrd ) -GAMEL( 1990, royalcrdg, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (German, set 7, CMC C1030 HW)", 0, layout_jollycrd ) // big CPLD -GAMEL( 1991, royalcrdh, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 8)", 0, layout_jollycrd ) -GAMEL( 1991, royalcdfr, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (French)", 0, layout_jollycrd ) -GAME( 1993, royalcrdp, royalcrd, cuoreuno, royalcrd, funworld_state, empty_init, ROT0, "Digital Dreams", "Royal Card v2.0 Professional", 0 ) -GAMEL( 199?, royaljp, royalcrd, royalcd1, royaljp, funworld_state, init_tabblue, ROT0, "TAB / Video Klein","Royal Card / Royal Jackpot (with a third draw)(encrypted)", 0, layout_jollycrd ) -GAMEL( 199?, witchryl, 0, witchryl, witchryl, funworld_state, empty_init, ROT0, "Video Klein", "Witch Royal (Export version 2.1)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrd, 0, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 1)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrda, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 2)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrdb, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German/Polish, set 3)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrdc, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 4)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrdd, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 5)", 0, layout_royalcrd ) +GAMEL( 1991, royalcrde, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 6)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrdt, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (TAB original)", 0, layout_jollycrd ) +GAMEL( 1990, royalcrdg, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (German, set 7, CMC C1030 HW)", 0, layout_jollycrd ) // big CPLD +GAMEL( 1991, royalcrdh, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (German, set 8)", 0, layout_jollycrd ) +GAMEL( 1991, royalcdfr, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Royal Card (French)", 0, layout_jollycrd ) +GAME( 1993, royalcrdp, royalcrd, cuoreuno, royalcrd, funworld_state, empty_init, ROT0, "Digital Dreams", "Royal Card v2.0 Professional", 0 ) +GAMEL( 199?, royaljp, royalcrd, royalcd1, royaljp, funworld_state, init_tabblue, ROT0, "TAB / Video Klein", "Royal Card / Royal Jackpot (with a third draw)(encrypted)", 0, layout_jollycrd ) +GAMEL( 199?, witchryl, 0, witchryl, witchryl, funworld_state, empty_init, ROT0, "Video Klein", "Witch Royal (Export version 2.1)", 0, layout_jollycrd ) // Lucky Lady based... -GAMEL( 1991, lluck3x3, royalcrd, cuoreuno, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Lucky Lady (3x3 deal)", 0, layout_jollycrd ) -GAMEL( 1991, lluck4x1, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Lucky Lady (4x1 aces)", 0, layout_jollycrd ) +GAMEL( 1991, lluck3x3, royalcrd, cuoreuno, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Lucky Lady (3x3 deal)", 0, layout_jollycrd ) +GAMEL( 1991, lluck4x1, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Lucky Lady (4x1 aces)", 0, layout_jollycrd ) // Magic Card 2 based... -GAMEL( 1996, magicrd2, 0, magicrd2, magicrd2, magicrd2_state, empty_init, ROT0, "Impera", "Magic Card II (Bulgarian)", 0, layout_jollycrd ) -GAMEL( 1996, magicrd2a, magicrd2, magicrd2, magicrd2, magicrd2_state, empty_init, ROT0, "Impera", "Magic Card II (Nov, Yugoslavian)", 0, layout_jollycrd ) -GAME( 1996, magicrd2b, magicrd2, magicrd2, magicrd2, magicrd2_state, init_magicd2b, ROT0, "Impera", "Magic Card II (green TAB or Impera board)", 0 ) -GAME( 1996, magicrd2c, magicrd2, magicrd2, magicrd2, magicrd2_state, init_magicd2c, ROT0, "Impera", "Magic Card II (blue TAB board, encrypted)", 0 ) +GAMEL( 1996, magicrd2, 0, magicrd2, magicrd2, magicrd2_state, empty_init, ROT0, "Impera", "Magic Card II (Bulgarian)", 0, layout_jollycrd ) +GAMEL( 1996, magicrd2a, magicrd2, magicrd2, magicrd2, magicrd2_state, empty_init, ROT0, "Impera", "Magic Card II (Nov, Yugoslavian)", 0, layout_jollycrd ) +GAME( 1996, magicrd2b, magicrd2, magicrd2, magicrd2, magicrd2_state, init_magicd2b, ROT0, "Impera", "Magic Card II (green TAB or Impera board)", 0 ) +GAME( 1996, magicrd2c, magicrd2, magicrd2, magicrd2, magicrd2_state, init_magicd2c, ROT0, "Impera", "Magic Card II (blue TAB board, encrypted)", 0 ) // Joker Card based... -GAMEL( 1993, vegasslw, 0, fw2ndpal, vegasslw, funworld_state, empty_init, ROT0, "Fun World", "Royal Vegas Joker Card (slow deal)", 0, layout_jollycrd ) -GAMEL( 1993, vegasfst, vegasslw, fw2ndpal, vegasfst, funworld_state, empty_init, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal)", 0, layout_jollycrd ) -GAMEL( 1993, vegasfte, vegasslw, fw2ndpal, vegasfte, funworld_state, empty_init, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal, English gfx)", 0, layout_jollycrd ) -GAMEL( 1993, vegasmil, vegasslw, fw2ndpal, vegasmil, funworld_state, empty_init, ROT0, "Mile", "Royal Vegas Joker Card (fast deal, Mile)", 0, layout_jollycrd ) +GAMEL( 1993, vegasslw, 0, fw2ndpal, vegasslw, funworld_state, empty_init, ROT0, "Fun World", "Royal Vegas Joker Card (slow deal)", 0, layout_jollycrd ) +GAMEL( 1993, vegasfst, vegasslw, fw2ndpal, vegasfst, funworld_state, empty_init, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal)", 0, layout_jollycrd ) +GAMEL( 1993, vegasfte, vegasslw, fw2ndpal, vegasfte, funworld_state, empty_init, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal, English gfx)", 0, layout_jollycrd ) +GAMEL( 1993, vegasmil, vegasslw, fw2ndpal, vegasmil, funworld_state, empty_init, ROT0, "Mile", "Royal Vegas Joker Card (fast deal, Mile)", 0, layout_jollycrd ) // Jolly Joker based... -GAMEL( 198?, jolyjokr, 0, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 1)", 0, layout_jollycrd ) -GAMEL( 198?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 2)", 0, layout_jollycrd ) -GAMEL( 198?, jolyjokrb, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (40bet, Croatian hack)", 0, layout_jollycrd ) -GAMEL( 198?, jolyjokrc, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Apple Time", "Jolly Joker (Apple Time)", MACHINE_NOT_WORKING, layout_jollycrd ) // bad program ROM... -GAMEL( 198?, jolyjokro, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, Impera logo)", 0, layout_jollycrd ) -GAMEL( 198?, jolyjokrp, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, no logo)", 0, layout_jollycrd ) +GAMEL( 199?, jolyjokr, 0, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 1)", 0, layout_jollycrd ) +GAMEL( 199?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 2)", 0, layout_jollycrd ) +GAMEL( 199?, jolyjokrb1, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (40bet, higher paytable)", 0, layout_jollycrd ) +GAMEL( 199?, jolyjokrb2, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (40bet, lower paytable)", 0, layout_jollycrd ) +GAMEL( 199?, jolyjokrc, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Apple Time", "Jolly Joker (Apple Time)", MACHINE_NOT_WORKING, layout_jollycrd ) // bad program ROM... +GAMEL( 199?, jolyjokro, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, Impera logo)", 0, layout_jollycrd ) +GAMEL( 199?, jolyjokrp, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, no logo)", 0, layout_jollycrd ) +GAMEL( 199?, jolyjokrm, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (Solid State module in suicide board)", 0, layout_jollycrd ) // Encrypted games... -GAME( 1992, multiwin, 0, multiwin, funworld, multiwin_state, driver_init, ROT0, "Fun World", "Multi Win (Ver.0167, encrypted)", 0 ) -GAME( 1993, powercrd, 0, powercrd, funworld, powercrd_state, empty_init, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", 0 ) // clone of Bonus Card. -GAME( 1993, megacard, 0, megacard, funworld, megacard_state, empty_init, ROT0, "Fun World", "Mega Card (Ver.0210, encrypted)", 0 ) -GAME( 1993, jokercrd, 0, jokercrd, funworld, jokercrd_state, empty_init, ROT0, "Amatic Trading", "Joker Card 300 (Ver.A267BC, encrypted)", 0 ) -GAME( 1991, royalcrdf, royalcrd, royalcrdf,royalcrdf, royalcrdf_state,driver_init, ROT0, "Evona Electronic","Royal Card (Evona, Polish, encrypted)", 0 ) -GAME( 198?, saloon, 0, saloon, saloon, funworld_state, init_saloon, ROT0, "", "Saloon (French, encrypted)", 0 ) -GAME( 198?, nevadafw, 0, saloon, saloon, funworld_state, init_saloon, ROT0, "", "Nevada (French, encrypted)", 0 ) +GAME( 1992, multiwin, 0, multiwin, funworld, multiwin_state, driver_init, ROT0, "Fun World", "Multi Win (Ver.0167, encrypted)", 0 ) +GAME( 1993, powercrd, 0, powercrd, funworld, powercrd_state, empty_init, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", 0 ) // clone of Bonus Card. +GAME( 1993, megacard, 0, megacard, funworld, megacard_state, empty_init, ROT0, "Fun World", "Mega Card (Ver.0210, encrypted)", 0 ) +GAME( 1993, jokercrd, 0, jokercrd, funworld, jokercrd_state, empty_init, ROT0, "Amatic Trading", "Joker Card 300 (Ver.A267BC, encrypted)", 0 ) +GAME( 1991, royalcrdf, royalcrd, royalcrdf,royalcrdf, royalcrdf_state,driver_init, ROT0, "Evona Electronic", "Royal Card (Evona, Polish, encrypted)", 0 ) +GAME( 198?, saloon, 0, saloon, saloon, funworld_state, init_saloon, ROT0, "", "Saloon (French, encrypted)", 0 ) +GAME( 198?, nevadafw, 0, saloon, saloon, funworld_state, init_saloon, ROT0, "", "Nevada (French, encrypted)", 0 ) // Encrypted TAB blue PCB... -GAMEL( 199?, jolycdit, jollycrd, cuoreuno, jolycdit, funworld_state, init_tabblue, ROT0, "bootleg", "Jolly Card (Italian, blue TAB board, encrypted)", 0, layout_royalcrd ) -GAMEL( 1990, jolycdib, jollycrd, cuoreuno, jolycdib, funworld_state, init_tabblue, ROT0, "bootleg", "Jolly Card (Italian, encrypted bootleg, set 1)", 0, layout_jollycrd ) // not a real TAB blue PCB -GAMEL( 1993, jolycdic, jollycrd, cuoreuno, jolycdic, funworld_state, init_tabblue, ROT0, "bootleg", "Jolly Card (Italian, encrypted bootleg, set 2)", 0, layout_jollycrd ) // not a real TAB blue PCB +GAMEL( 199?, jolycdit, jollycrd, cuoreuno, jolycdit, funworld_state, init_tabblue, ROT0, "bootleg", "Jolly Card (Italian, blue TAB board, encrypted)", 0, layout_royalcrd ) +GAMEL( 1990, jolycdib, jollycrd, cuoreuno, jolycdib, funworld_state, init_tabblue, ROT0, "bootleg", "Jolly Card (Italian, encrypted bootleg, set 1)", 0, layout_jollycrd ) // not a real TAB blue PCB +GAMEL( 1993, jolycdic, jollycrd, cuoreuno, jolycdic, funworld_state, init_tabblue, ROT0, "bootleg", "Jolly Card (Italian, encrypted bootleg, set 2)", 0, layout_jollycrd ) // not a real TAB blue PCB +GAMEL( 1993, jolycdii, jollycrd, cuoreuno, jolycdib, funworld_state, init_tabblue, ROT0, "bootleg (Cleco)", "Jolly Card (Italian, encrypted bootleg, set 3)", 0, layout_jollycrd ) // Cleco bootleg PCB // Dino 4 encrypted hardware... -GAMEL( 1997, pool10e, pool10, cuoreuno, cuoreuno, funworld_state, init_dino4, ROT0, "C.M.C.", "Pool 10 (Italian, Dino 4 hardware, encrypted)", 0, layout_jollycrd ) -GAME( 1998, rcdino4, 0, rcdino4, rcdino4, chinatow_state, init_rcdino4, ROT0, "", "Royal Card (Italian, Dino 4 hardware, encrypted)",0 ) -GAMEL( 1998, chinatow, 0, chinatow, chinatow, chinatow_state, init_rcdinch, ROT0, "", "China Town (Ver 1B, Dino4 HW)", 0, layout_jollycrd ) +GAMEL( 1997, pool10e, pool10, cuoreuno, cuoreuno, funworld_state, init_dino4, ROT0, "C.M.C.", "Pool 10 (Italian, Dino 4 hardware, encrypted)", 0, layout_jollycrd ) +GAME( 1998, rcdino4, 0, rcdino4, rcdino4, chinatow_state, init_rcdino4, ROT0, "", "Royal Card (Italian, Dino 4 hardware, encrypted)",0 ) +GAMEL( 1998, chinatow, 0, chinatow, chinatow, chinatow_state, init_rcdinch, ROT0, "", "China Town (Ver 1B, Dino4 HW)", 0, layout_jollycrd ) // MCU based games... -GAME( 199?, mongolnw, 0, royalcd1, royalcrd, funworld_state, init_mongolnw, ROT0, "", "Mongolfier New (Italian)", MACHINE_UNEMULATED_PROTECTION ) -GAME( 199?, soccernw, 0, royalcd1, royalcrd, funworld_state, init_soccernw, ROT0, "", "Soccer New (Italian)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 199?, mongolnw, 0, royalcd1, royalcrd, funworld_state, init_mongolnw, ROT0, "", "Mongolfier New (Italian)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 199?, soccernw, 0, royalcd1, royalcrd, funworld_state, init_soccernw, ROT0, "", "Soccer New (Italian)", MACHINE_UNEMULATED_PROTECTION ) // Quiz games... -GAME( 199?, funquiz, 0, funquiz, funquiz, funworld_state, empty_init, ROT0, "Fun World", "Fun World Quiz (German)", 0 ) -GAME( 1990, funquiza, 0, funquiz, funquiza, funworld_state, empty_init, ROT0, "Fun World", "Fun World Quiz (German, 12-11-1990)", 0 ) -GAME( 1990, funquizb, 0, funquiz, funquiza, funworld_state, empty_init, ROT0, "Fun World", "Fun World Quiz (German, 27-04-1990)", 0 ) +GAME( 199?, funquiz, 0, funquiz, funquiz, funworld_state, empty_init, ROT0, "Fun World", "Fun World Quiz (German)", 0 ) +GAME( 1990, funquiza, 0, funquiz, funquiza, funworld_state, empty_init, ROT0, "Fun World", "Fun World Quiz (German, 12-11-1990)", 0 ) +GAME( 1990, funquizb, 0, funquiz, funquiza, funworld_state, empty_init, ROT0, "Fun World", "Fun World Quiz (German, 27-04-1990)", 0 ) // Other games... -GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, funworld_state, empty_init, ROT0, "Admiral/Novomatic","Novo Play Multi Card / Club Card", 0, layout_novoplay ) -GAME( 1991, intrgmes, 0, intrgmes, intrgmes, intergames_state, empty_init, ROT0, "Inter Games", "Joker Card (Inter Games)", 0 ) -GAMEL( 1985, fw_a7_11, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A7-11 game 1", MACHINE_NOT_WORKING, layout_jollycrd ) -GAMEL( 1985, fw_a7_11a, fw_a7_11, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A7-11 game 2", MACHINE_NOT_WORKING, layout_jollycrd ) -GAMEL( 1991, fw_a0_1, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A0-1 game", MACHINE_NOT_WORKING, layout_jollycrd ) -GAMEL( 1991, jokcrdep, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "Joker Card / Multi Card (Epoxy brick CPU)", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, funworld_state, empty_init, ROT0, "Admiral/Novomatic", "Novo Play Multi Card / Club Card", 0, layout_novoplay ) +GAME( 1991, intrgmes, 0, intrgmes, intrgmes, intergames_state, empty_init, ROT0, "Inter Games", "Joker Card (Inter Games)", 0 ) +GAMEL( 1985, fw_a7_11, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A7-11 game 1", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1985, fw_a7_11a, fw_a7_11, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A7-11 game 2", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1991, fw_a0_1, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A0-1 game", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1991, jokcrdep, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "Joker Card / Multi Card (Epoxy brick CPU)", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 199?, gratispk, 0, gratispk, funworld, funworld_state, empty_init, ROT0, "Mega Soft", "Gratis Poker (V.204, set 1)", 0, layout_jollycrd ) +GAMEL( 199?, gratispka, gratispk, gratispk, funworld, funworld_state, empty_init, ROT0, "Mega Soft", "Gratis Poker (V.204, set 2)", 0, layout_jollycrd ) +GAMEL( 1995, nkoulit, royalcrd, royalcd1, royalcrd, funworld_state, init_tabblue, ROT0, "JK Amusement", "Gkoulit (encrypted GFX)", 0, layout_jollycrd ) +GAMEL( 1999, reflexcrd, royalcrd, royalcd1, royalcrd, funworld_state, empty_init, ROT0, "TAB Austria", "Reflex Cards (English, serial protected)", 0, layout_jollycrd ) // These are 2-in-1 stealth boards, they can run the Poker game, or, using completely separate hardware on the same PCB, a NES / MSX Multigames! GAMEL( 1991, royalcrd_nes, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (stealth with NES multigame)", MACHINE_NOT_WORKING, layout_jollycrd ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/gaelcof3.cpp mame-0.224+dfsg.1/src/mame/drivers/gaelcof3.cpp --- mame-0.223+dfsg.1/src/mame/drivers/gaelcof3.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/gaelcof3.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -5,19 +5,39 @@ The PCB is very compact and has few components. The main ones are: - PIC16C55 as main CPU + PIC16C56 as main CPU OKI M6295 for sound 1 bank of 6 dips + Gaelco FUTBOL-3 PCB + _____________________________________________________ + |JP1 JP2 __________ | + | __ ___ |ULN2803A_| | + || | | | ___________ | + || | | | |MC74HCT273A | + ||_| | | _________ _________ | + |JP3 | | |TLP504A_| |TLP504A_| | + | __ | | __________ | + || | | | |PIC16C56| | + ||_| | | | + | ___ |__| ___ <-SN74LS365AN | + | VOL | | ______ ___________________ | + | _______ | | | OKI | |ROM U1 | | + | |DIPSx6| | | |6295_| |___________________| | + | |__| | + |___________________________________________________| + + JP1 = 10 pin [+5V, GND, DAT, CLK, ENA, PU1, PU2, PU3, PU4, GND] + JP2 = 14 pin [12VA, 12VA, +5V, ALT, CON, BOM, MOT, N/U, BOM, POT, ALT, 12V, GND, GND] + JP3 = 5 pin [PU5, PU6, PU7, PU8, GND] The PCBs were inside two "Coche de Bomberos" kiddie rides from CMC Cresmatic (https://www.recreativas.org/coche-de-bomberos-6022-cresmatic). Anyway, the hardware is generic enough to serve any basic kiddie ride. - The only dumpable ROM on the PCB is the Oki sound samples. There are two different versions dumped (from two different machines): - - "Susanita tiene un ratón" - Based on the song composed by Emilio Alberto Aragón 'Miliki'. - - "El auto de papá" - Based on the song composed by Enrique Fischer 'Pipo Pescador'. + The only dumped ROM on the PCB is the Oki sound samples. There are three different versions dumped (from different machines): + -"Susanita" - Based on the song composed by Rafael Pérez Botija. + -"El auto feo" - Based on the song composed by Enrique Fischer 'Pipo Pescador'. + -"Hola Don Pepito" - Based on the song composed by Ramón del Rivero. */ #include "emu.h" @@ -70,7 +90,7 @@ void gaelcof3_state::gaelcof3(machine_config &config) { - PIC16C55(config, m_maincpu, 4000000); // clock not confirmed + PIC16C56(config, m_maincpu, 4000000); // clock not confirmed SPEAKER(config, "mono").front_center(); @@ -79,20 +99,29 @@ ROM_START( autopapa ) - ROM_REGION( 0x400, "maincpu", 0 ) - ROM_LOAD( "pic16c55.u3", 0x000, 0x400, NO_DUMP ) + ROM_REGION( 0x800, "maincpu", 0 ) + ROM_LOAD( "pic16c56.u3", 0x000, 0x800, NO_DUMP ) ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "autopapa.u1", 0x00000, 0x40000, CRC(a3e5607e) SHA1(24a9c79edec7b2f7f64b622240f2ad8f3ffa29ca) ) ROM_END +ROM_START( donpepito ) + ROM_REGION( 0x800, "maincpu", 0 ) + ROM_LOAD( "pic16c56.u3", 0x000, 0x800, NO_DUMP ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "don_pepito.u1", 0x00000, 0x40000, CRC(574fcd14) SHA1(a23f1eb6d2cef5aa07df3a553fe1d33803648f43) ) +ROM_END + ROM_START( susanita ) - ROM_REGION( 0x400, "maincpu", 0 ) - ROM_LOAD( "pic16c55.u3", 0x000, 0x400, NO_DUMP ) + ROM_REGION( 0x800, "maincpu", 0 ) + ROM_LOAD( "pic16c56.u3", 0x000, 0x800, NO_DUMP ) ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "susanita.u1", 0x00000, 0x40000, CRC(766868cb) SHA1(eb42dc46b865bc448052d9d67c840e51c49ce49a) ) ROM_END -GAME( 199?, autopapa, 0, gaelcof3, gaelcof3, gaelcof3_state, empty_init, ROT0, "Gaelco", "El auto de papa", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, susanita, 0, gaelcof3, gaelcof3, gaelcof3_state, empty_init, ROT0, "Gaelco", "Susanita tiene un raton", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, autopapa, 0, gaelcof3, gaelcof3, gaelcof3_state, empty_init, ROT0, "Gaelco", "El auto feo", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, donpepito, 0, gaelcof3, gaelcof3, gaelcof3_state, empty_init, ROT0, "Gaelco", "Hola Don Pepito", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, susanita, 0, gaelcof3, gaelcof3, gaelcof3_state, empty_init, ROT0, "Gaelco", "Susanita", MACHINE_IS_SKELETON_MECHANICAL ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/gaiden.cpp mame-0.224+dfsg.1/src/mame/drivers/gaiden.cpp --- mame-0.223+dfsg.1/src/mame/drivers/gaiden.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/gaiden.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1048,30 +1048,26 @@ ROM_LOAD( "gaiden_5.7a", 0x000000, 0x10000, CRC(8d4035f7) SHA1(3473456cdd24e312e3073586d7e8f24eb71bbea1) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) + ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) + ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) + ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) + ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, "gfx4", 0 ) - /* Should all these roms be 0x10000 bytes on this board? */ - ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD16_BYTE( "shadoww_12a.xx", 0x0c0000, 0x10000, CRC(9bb07731) SHA1(b799b1958dc9b84797fdab2591e33bd5d28884a3) ) /* sprites D1 */ - ROM_LOAD16_BYTE( "shadoww_12b.xx", 0x0e0000, 0x10000, CRC(a4a950a2) SHA1(9766b5e88edd16554e59179a37cca49d29f83367) ) /* sprites D1 */ - - ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD16_BYTE( "shadoww_13a.xx", 0x0c0001, 0x10000, CRC(996d2fa5) SHA1(a32526949af3635914927ebbbe684c3de9562a9d) ) /* sprites D2 */ - ROM_LOAD16_BYTE( "shadoww_13b.xx", 0x0e0001, 0x10000, CRC(b8df8a34) SHA1(6810f7961052a983b8c78b42d550038051012c6d) ) /* sprites D2 */ + ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) + ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) + ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) + ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) + + ROM_REGION( 0x100000, "gfx4", 0 ) // sprite roms also seen on daughterboard "4M512" with 16 0x10000-sized roms + ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ + ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ + ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ + ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ + ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ + ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ + ROM_LOAD16_BYTE( "12.3s", 0x0c0000, 0x20000, CRC(94a836d8) SHA1(55658f4c6cf6aadc4369b943705f5734396b2e43) ) /* sprites D1 */ + ROM_LOAD16_BYTE( "13.1s", 0x0c0001, 0x20000, CRC(e9caea3b) SHA1(39ef300e7dfd9469f04127d5a06dceb0b7e357f8) ) /* sprites D2 */ ROM_REGION( 0x40000, "oki", 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ @@ -1089,30 +1085,26 @@ ROM_LOAD( "gaiden_5.7a", 0x000000, 0x10000, CRC(8d4035f7) SHA1(3473456cdd24e312e3073586d7e8f24eb71bbea1) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) + ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) + ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) + ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) + ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, "gfx4", 0 ) - /* Should all these roms be 0x10000 bytes on this board? */ - ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD16_BYTE( "shadoww_12a.xx", 0x0c0000, 0x10000, CRC(9bb07731) SHA1(b799b1958dc9b84797fdab2591e33bd5d28884a3) ) /* sprites D1 */ - ROM_LOAD16_BYTE( "shadoww_12b.xx", 0x0e0000, 0x10000, CRC(a4a950a2) SHA1(9766b5e88edd16554e59179a37cca49d29f83367) ) /* sprites D1 */ - - ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD16_BYTE( "shadoww_13a.xx", 0x0c0001, 0x10000, CRC(996d2fa5) SHA1(a32526949af3635914927ebbbe684c3de9562a9d) ) /* sprites D2 */ - ROM_LOAD16_BYTE( "shadoww_13b.xx", 0x0e0001, 0x10000, CRC(b8df8a34) SHA1(6810f7961052a983b8c78b42d550038051012c6d) ) /* sprites D2 */ + ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) + ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) + ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) + ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) + + ROM_REGION( 0x100000, "gfx4", 0 ) // sprite roms also seen on daughterboard "4M512" with 16 0x10000-sized roms + ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ + ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ + ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ + ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ + ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ + ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ + ROM_LOAD16_BYTE( "12.3s", 0x0c0000, 0x20000, CRC(94a836d8) SHA1(55658f4c6cf6aadc4369b943705f5734396b2e43) ) /* sprites D1 */ + ROM_LOAD16_BYTE( "13.1s", 0x0c0001, 0x20000, CRC(e9caea3b) SHA1(39ef300e7dfd9469f04127d5a06dceb0b7e357f8) ) /* sprites D2 */ ROM_REGION( 0x40000, "oki", 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ @@ -1130,27 +1122,26 @@ ROM_LOAD( "gaiden_5.7a", 0x000000, 0x10000, CRC(8d4035f7) SHA1(3473456cdd24e312e3073586d7e8f24eb71bbea1) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) + ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) + ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) + ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) + ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, "gfx4", 0 ) - ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD16_BYTE( "gaiden_12.3s", 0x0c0000, 0x20000, CRC(90f1e13a) SHA1(3fe9fe62aa9e92c871c791a3b11f96c9a48099a9) ) /* sprites D1 */ - - ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD16_BYTE( "gaiden_13.1s", 0x0c0001, 0x20000, CRC(7d9f5c5e) SHA1(200102532ea9a88c7c708e03f8893c46dff827d1) ) /* sprites D2 */ + ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) + ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) + ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) + ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) + + ROM_REGION( 0x100000, "gfx4", 0 ) // sprite roms also seen on daughterboard "4M512" with 16 0x10000-sized roms + ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ + ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ + ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ + ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ + ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ + ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ + ROM_LOAD16_BYTE( "12.3s", 0x0c0000, 0x20000, CRC(90f1e13a) SHA1(3fe9fe62aa9e92c871c791a3b11f96c9a48099a9) ) /* sprites D1 */ + ROM_LOAD16_BYTE( "13.1s", 0x0c0001, 0x20000, CRC(7d9f5c5e) SHA1(200102532ea9a88c7c708e03f8893c46dff827d1) ) /* sprites D2 */ ROM_REGION( 0x40000, "oki", 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ @@ -1168,30 +1159,26 @@ ROM_LOAD( "hn27512p.7a", 0x000000, 0x10000, CRC(765e7baa) SHA1(4d0a50f091b284739b6d9a8ceb4f81999da445fc) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) + ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) + ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) + ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) + ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, "gfx4", 0 ) - /* Should all these roms be 0x10000 bytes on this board? */ - ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD16_BYTE( "shadoww_12a.xx", 0x0c0000, 0x10000, CRC(9bb07731) SHA1(b799b1958dc9b84797fdab2591e33bd5d28884a3) ) /* sprites D1 */ - ROM_LOAD16_BYTE( "ryukendn_12b.xx", 0x0e0000, 0x10000, CRC(1773628a) SHA1(e7eacc880f2a4174f17b263bedf8c1bc64007dbd) ) /* sprites D1 */ - - ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD16_BYTE( "shadoww_13a.xx", 0x0c0001, 0x10000, CRC(996d2fa5) SHA1(a32526949af3635914927ebbbe684c3de9562a9d) ) /* sprites D2 */ - ROM_LOAD16_BYTE( "ryukendn_13b.xx", 0x0e0001, 0x10000, CRC(1f43c507) SHA1(29f655442c16677855073284c7ab41059c99c497) ) /* sprites D2 */ + ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) + ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) + ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) + ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) + + ROM_REGION( 0x100000, "gfx4", 0 ) // sprite roms also seen on daughterboard "4M512" with 16 0x10000-sized roms + ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ + ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ + ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ + ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ + ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ + ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ + ROM_LOAD16_BYTE( "12.3s", 0x0c0000, 0x20000, CRC(277204f0) SHA1(918e05f10959f2b50c16b6e0dc62e3076c99250e) ) /* sprites D1 */ + ROM_LOAD16_BYTE( "13.1s", 0x0c0001, 0x20000, CRC(4e56a508) SHA1(f89a6037e602b26d6ce11859e0b43a602b50d985) ) /* sprites D2 */ ROM_REGION( 0x40000, "oki", 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ @@ -1219,27 +1206,26 @@ ROM_LOAD( "hn27512p.7a", 0x000000, 0x10000, CRC(765e7baa) SHA1(4d0a50f091b284739b6d9a8ceb4f81999da445fc) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) + ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) + ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) + ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) + ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, "gfx4", 0 ) - ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD16_BYTE( "12.3s", 0x0c0000, 0x20000, CRC(277204f0) SHA1(918e05f10959f2b50c16b6e0dc62e3076c99250e) ) /* sprites D1 */ - - ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD16_BYTE( "13.1s", 0x0c0001, 0x20000, CRC(4e56a508) SHA1(f89a6037e602b26d6ce11859e0b43a602b50d985) ) /* sprites D2 */ + ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) + ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) + ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) + ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) + + ROM_REGION( 0x100000, "gfx4", 0 ) // sprite roms also seen on daughterboard "4M512" with 16 0x10000-sized roms + ROM_LOAD16_BYTE( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ + ROM_LOAD16_BYTE( "7.1m", 0x000001, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ + ROM_LOAD16_BYTE( "8.3n", 0x040000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ + ROM_LOAD16_BYTE( "9.1n", 0x040001, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ + ROM_LOAD16_BYTE( "10.3r", 0x080000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ + ROM_LOAD16_BYTE( "11.1r", 0x080001, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ + ROM_LOAD16_BYTE( "12.3s", 0x0c0000, 0x20000, CRC(277204f0) SHA1(918e05f10959f2b50c16b6e0dc62e3076c99250e) ) /* sprites D1 */ + ROM_LOAD16_BYTE( "13.1s", 0x0c0001, 0x20000, CRC(4e56a508) SHA1(f89a6037e602b26d6ce11859e0b43a602b50d985) ) /* sprites D2 */ ROM_REGION( 0x40000, "oki", 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ diff -Nru mame-0.223+dfsg.1/src/mame/drivers/gameking.cpp mame-0.224+dfsg.1/src/mame/drivers/gameking.cpp --- mame-0.223+dfsg.1/src/mame/drivers/gameking.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/gameking.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -6,14 +6,14 @@ Thanks to Deathadder, Judge, Porchy, Klaus Sommer, James Brolly & Brian Provinciano - hopefully my work (reverse engineerung, cartridge+bios backup, emulation) will be honored in future + hopefully my work (reverse engineering, cartridge+bios backup, emulation) will be honored in future and my name will not be removed entirely, especially by simple code rewrites of working emulation flashcard, handheld, programmer, assembler ready to do some test on real hardware todo: !back up gameking3 bios so emulation of gameking3 gets possible; my gameking bios backup solution should work - (improove emulation) + (improve emulation) (add audio) use gameking3 cartridge to get illegal cartridge scroller @@ -23,9 +23,12 @@ #include "cpu/m6502/st2204.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" #include "emupal.h" #include "screen.h" #include "softlist.h" +#include "speaker.h" class gameking_state : public driver_device @@ -239,7 +242,7 @@ TIMER_CALLBACK_MEMBER(gameking_state::gameking_timer) { m_maincpu->set_state_int(st2xxx_device::ST_IREQ, - m_maincpu->state_int(st2xxx_device::ST_IREQ) | (0x012 & m_maincpu->state_int(st2xxx_device::ST_IENA))); + m_maincpu->state_int(st2xxx_device::ST_IREQ) | (0x010 & m_maincpu->state_int(st2xxx_device::ST_IENA))); timer1->enable(false); timer2->enable(true); timer2->reset(m_maincpu->cycles_to_attotime(10/*?*/)); @@ -281,12 +284,13 @@ void gameking_state::gameking(machine_config &config) { /* basic machine hardware */ - st2xxx_device &maincpu(ST2204(config, m_maincpu, 6000000)); + st2204_device &maincpu(ST2204(config, m_maincpu, 6000000)); maincpu.set_addrmap(AS_DATA, &gameking_state::gameking_mem); maincpu.in_pa_callback().set(FUNC(gameking_state::input_r)); maincpu.in_pb_callback().set(FUNC(gameking_state::input2_r)); maincpu.out_pc_callback().set(FUNC(gameking_state::timer_w)); // wrong maincpu.in_pl_callback().set_constant(6); // bios protection endless loop + maincpu.dac_callback().set("dac", FUNC(dac_byte_interface::write)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); @@ -298,6 +302,14 @@ PALETTE(config, m_palette, FUNC(gameking_state::gameking_palette), ARRAY_LENGTH(gameking_pens)); + /* sound hardware */ + SPEAKER(config, "speaker").front_center(); + + DAC_8BIT_R2R_TWOS_COMPLEMENT(config, "dac", 0).add_route(0, "speaker", 1.0); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); + /* cartridge */ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "gameking_cart", "bin").set_device_load(FUNC(gameking_state::cart_load)); } @@ -338,9 +350,9 @@ ROM_LOAD("gm220.bin", 0x00000, 0x80000, CRC(1dc43bd5) SHA1(f9dcd3cb76bb7cb10565a1acb070ab375c082b4c) ) ROM_END -CONS( 2003, gameking, 0, 0, gameking1, gameking, gameking_state, init_gameking, "TimeTop", "GameKing GM-218", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 2003, gameking, 0, 0, gameking1, gameking, gameking_state, init_gameking, "TimeTop", "GameKing GM-218", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // the GameKing 2 (GM-219) is probably identical HW -CONS( 2003, gamekin3, 0, 0, gameking3, gameking3, gameking_state, init_gameking, "TimeTop", "GameKing 3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 2003, gamekin3, 0, 0, gameking3, gameking3, gameking_state, init_gameking, "TimeTop", "GameKing 3", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // gameking 3: similiar cartridges, accepts gameking cartridges, gameking3 cartridges not working on gameking (illegal cartridge scroller) // my gameking bios backup solution might work on it diff -Nru mame-0.223+dfsg.1/src/mame/drivers/generalplus_gpl16250_nand.cpp mame-0.224+dfsg.1/src/mame/drivers/generalplus_gpl16250_nand.cpp --- mame-0.223+dfsg.1/src/mame/drivers/generalplus_gpl16250_nand.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/generalplus_gpl16250_nand.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -748,19 +748,72 @@ mem.write_word(dest + i, word); } - // these vectors must either directly point to RAM, or at least redirect there after some code + /* these vectors must either directly point to RAM, or at least redirect there after some code + + kiugames has the startup code copied to 20xxx which is outside the scope of a 16-bit vector + so these must trampoline (although 20xxx currently isn't handled as RAM, so that needs more + thought anyway + */ uint16_t* internal = (uint16_t*)memregion("maincpu:internal")->base(); - internal[0x7ff5] = m_vectorbase + 0x0a; - internal[0x7ff6] = m_vectorbase + 0x0c; - internal[0x7ff7] = dest + 0x20; // point boot vector at code in RAM (probably in reality points to internal code that copies the first block) - internal[0x7ff8] = m_vectorbase + 0x10; - internal[0x7ff9] = m_vectorbase + 0x12; - internal[0x7ffa] = m_vectorbase + 0x14; - internal[0x7ffb] = m_vectorbase + 0x16; - internal[0x7ffc] = m_vectorbase + 0x18; - internal[0x7ffd] = m_vectorbase + 0x1a; - internal[0x7ffe] = m_vectorbase + 0x1c; - internal[0x7fff] = m_vectorbase + 0x1e; + + int addr; + addr = (m_vectorbase + 0x0a) & 0x000fffff; + internal[0x7f00] = 0xfe80 | (addr >> 16); + internal[0x7f01] = (addr & 0xffff); + + addr = (m_vectorbase + 0x0c) & 0x000fffff; + internal[0x7f02] = 0xfe80 | (addr >> 16); + internal[0x7f03] = (addr & 0xffff); + + addr = (dest + 0x20) & 0x000fffff; // point boot vector at code in RAM (probably in reality points to internal code that copies the first block) + internal[0x7f04] = 0xfe80 | (addr >> 16); + internal[0x7f05] = (addr & 0xffff); + + addr = (m_vectorbase + 0x10) & 0x000fffff; + internal[0x7f06] = 0xfe80 | (addr >> 16); + internal[0x7f07] = (addr & 0xffff); + + addr = (m_vectorbase + 0x12) & 0x000fffff; + internal[0x7f08] = 0xfe80 | (addr >> 16); + internal[0x7f09] = (addr & 0xffff); + + addr = (m_vectorbase + 0x14) & 0x000fffff; + internal[0x7f0a] = 0xfe80 | (addr >> 16); + internal[0x7f0b] = (addr & 0xffff); + + addr = (m_vectorbase + 0x16) & 0x000fffff; + internal[0x7f0c] = 0xfe80 | (addr >> 16); + internal[0x7f0d] = (addr & 0xffff); + + addr = (m_vectorbase + 0x18) & 0x000fffff; + internal[0x7f0e] = 0xfe80 | (addr >> 16); + internal[0x7f0f] = (addr & 0xffff); + + addr = (m_vectorbase + 0x1a) & 0x000fffff; + internal[0x7f10] = 0xfe80 | (addr >> 16); + internal[0x7f11] = (addr & 0xffff); + + addr = (m_vectorbase + 0x1c) & 0x000fffff; + internal[0x7f12] = 0xfe80 | (addr >> 16); + internal[0x7f13] = (addr & 0xffff); + + addr = (m_vectorbase + 0x1e) & 0x000fffff; + internal[0x7f14] = 0xfe80 | (addr >> 16); + internal[0x7f15] = (addr & 0xffff); + + + internal[0x7ff5] = 0xff00; + + internal[0x7ff6] = 0xff02; + internal[0x7ff7] = 0xff04; + internal[0x7ff8] = 0xff06; + internal[0x7ff9] = 0xff08; + internal[0x7ffa] = 0xff0a; + internal[0x7ffb] = 0xff0c; + internal[0x7ffc] = 0xff0e; + internal[0x7ffd] = 0xff10; + internal[0x7ffe] = 0xff12; + internal[0x7fff] = 0xff14; } m_maincpu->reset(); // reset CPU so vector gets read etc. diff -Nru mame-0.223+dfsg.1/src/mame/drivers/generalplus_gpl16250_rom.cpp mame-0.224+dfsg.1/src/mame/drivers/generalplus_gpl16250_rom.cpp --- mame-0.223+dfsg.1/src/mame/drivers/generalplus_gpl16250_rom.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/generalplus_gpl16250_rom.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -400,6 +400,14 @@ ROM_END +ROM_START( imgame ) + //ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) // not on this model? (or at least not this size, as CS base is different) + //ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) + + ROM_REGION( 0x8000000, "maincpu", ROMREGION_ERASE00 ) // the 2nd half of this ROM required multiple attempts to get a matching dump, so could be suspect, might also be unused as this only has 120 games + ROM_LOAD16_WORD_SWAP( "imgame.bin", 0x0000000, 0x8000000, CRC(6fba9021) SHA1(852f4c0aaed682aa8ff5b8cd52313ea2d3d920a1)) +ROM_END + ROM_START( myac220 ) //ROM_REGION16_BE( 0x40000, "maincpu:internal", ROMREGION_ERASE00 ) // not on this model? (or at least not this size, as CS base is different) //ROM_LOAD16_WORD_SWAP( "internal.rom", 0x00000, 0x40000, NO_DUMP ) @@ -474,6 +482,10 @@ // DGUN-2891 or DGUN-2864 ? both look the same, no indication on unboxed unit? CONS(201?, myac220, 0, 0, tkmag220, tkmag220, tkmag220_game_state, empty_init, "dreamGEAR", "My Arcade Go Gamer Portable (Family Sport 220-in-1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +// 2012 date from manual +CONS(2012, imgame, 0, 0, tkmag220, tkmag220, tkmag220_game_state, empty_init, "I'm Game", "I'm Game! GP120 (Family Sport 120-in-1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +// a 180 game Family Sport I'm Game! also exists (and some Famiclones) + // die on this one is 'GCM420' CONS(2013, gormiti, 0, 0, base, gormiti, gormiti_game_state, empty_init, "Giochi Preziosi", "Gormiti Game Arena (Spain)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/generalplus_gpl_unknown.cpp mame-0.224+dfsg.1/src/mame/drivers/generalplus_gpl_unknown.cpp --- mame-0.223+dfsg.1/src/mame/drivers/generalplus_gpl_unknown.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/generalplus_gpl_unknown.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,618 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood + +// these contain the similar game selections to the games in unk6502_st2xxx.cpp but on updated hardware + +// These use SPI ROMs and unSP2.0 instructions, so will be GeneralPlus branded parts, not SunPlus +// possibly the framebuffer based video ones rather than the ones with tile layers + +/* + +for pcp8728 long jumps are done indirect via a call to RAM + +990c 20ec r4 = 20ec +d9dd [1d] = r4 +990c 0007 r4 = 0007 +d9de [1e] = r4 +fe80 28f7 goto 0028f7 + +the code to handle this is copied in at startup. + +Almost all function calls in the game are handled via a call to RAM which copies data inline from SPI for execution +these calls manage their own stack, and copying back the caller function on return etc. + +The largest function in RAM at any one time is ~0x600 bytes. + +This appears to be incredibly inefficient but the system can't execute directly from SPI ROM, and doesn't have any +RAM outside of the small area internal to the Sunplus SoC + +Graphics likewise appear to be loaded pixel by pixel from the SPI to framebuffer every single time there is a draw +call. Sound is almost certainly handled in the same way. + +There is a missing internal ROM that acts as bootstrap and provides some basic functions. It is at least 0x1000 +words in size, with the lowest call being to 0xf000. It is potentially larger than this. + +The internal ROM will also need to provide trampolining for the interrupts, there is a single pointer near the +start of the SPI ROM '02000A: 0041 0002' which points to 20041 (assuming you map the SPI ROM base as word address +0x20000, so that the calls to get code align with ROM addresses) + +The function pointed to for the interrupt has the same form of the other functions that get loaded into RAM via +calls to functions in the RAM area. + +-------------------------------------------------------- + +BIOS (internal ROM) calls: + +0xf000 - copy dword from SPI using provided pointer + +0xf56f - unknown, after some time, done with PC = f56f, only in one place + +0xf58f - unknown, soon after startup (only 1 call) + +00f7a0 - unknown - 3 calls + +0xf931 - unknown, just one call + +00fa1d - unknown, just one call + +0xfb26 - unknown, after some time (done with pc = fb26 and calls) + +0xfb4f - unknown, just one call + +0xfbbf - unknown, 3 calls + +code currently goes off the rails after some of these unhandled calls (one to f56f?) + +-- + +use 'go 2938' to get to the inline code these load on the fly + +the first piece of code copied appears to attempt to checksum the internal BIOS! + +*/ + +#include "emu.h" + +#include "cpu/unsp/unsp.h" + +#include "emupal.h" +#include "screen.h" +#include "speaker.h" + + +class pcp8718_state : public driver_device +{ +public: + pcp8718_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_mainram(*this, "mainram"), + m_palette(*this, "palette"), + m_screen(*this, "screen"), + m_spirom(*this, "spi") + { } + + void pcp8718(machine_config &config); + + void spi_init(); + +private: + virtual void machine_start() override; + virtual void machine_reset() override; + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_device m_maincpu; + required_shared_ptr m_mainram; + + required_device m_palette; + required_device m_screen; + + void map(address_map &map); + + uint16_t simulate_f000_r(offs_t offset); + + uint16_t ramcall_2060_logger_r(); + uint16_t ramcall_2189_logger_r(); + + uint16_t ramcall_2434_logger_r(); + + uint16_t ramcall_2829_logger_r(); + uint16_t ramcall_287a_logger_r(); + uint16_t ramcall_28f7_logger_r(); + uint16_t ramcall_2079_logger_r(); + + + required_region_ptr m_spirom; + + uint16_t unk_7abf_r(); + uint16_t unk_7860_r(); + + void unk_7868_w(uint16_t data); + + uint16_t spi_misc_control_r(); + uint16_t spi_rx_fifo_r(); + void spi_tx_fifo_w(uint16_t data); + + void spi_control_w(uint16_t data); + + + void spi_process_tx_data(uint8_t data); + uint8_t spi_process_rx(); + uint8_t spi_rx(); + + uint8_t m_rx_fifo[4]; // actually 8 bytes? or 8 half-bytes? + + uint32_t m_spiaddress; + + enum spistate : const int + { + SPI_STATE_READY = 0, + SPI_STATE_WAITING_HIGH_ADDR = 1, + SPI_STATE_WAITING_MID_ADDR = 2, + SPI_STATE_WAITING_LOW_ADDR = 3, + // probably not + SPI_STATE_WAITING_DUMMY1_ADDR = 4, + SPI_STATE_WAITING_DUMMY2_ADDR = 5, + SPI_STATE_READING = 6 + + }; + + spistate m_spistate; + +}; + +uint32_t pcp8718_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + m_mainram[0x12] |= 0x8000; // some code waits on this, what is it? + m_mainram[0x09] &= 0xfff0; // should be cleared by IRQ? + return 0; +} + + + + +void pcp8718_state::machine_start() +{ +} + +static INPUT_PORTS_START( pcp8718 ) +INPUT_PORTS_END + +uint16_t pcp8718_state::unk_7abf_r() +{ + return 0x0001; +} + +uint16_t pcp8718_state::unk_7860_r() +{ + return machine().rand() & 0x8; +} + + +uint16_t pcp8718_state::spi_misc_control_r() +{ + logerror("%06x: spi_misc_control_r\n", machine().describe_context()); + return 0x0000; +} + + +uint16_t pcp8718_state::spi_rx_fifo_r() +{ + logerror("%06x: spi_rx_fifo_r\n", machine().describe_context()); + return spi_rx(); +} + +void pcp8718_state::spi_process_tx_data(uint8_t data) +{ + logerror("transmitting %02x\n", data); + + switch (m_spistate) + { + case SPI_STATE_READY: + { + if (data == 0x03) + { + logerror("set to read mode (need address) %02x\n", data); + m_spistate = SPI_STATE_WAITING_HIGH_ADDR; + } + else + { + logerror("invalid state request %02x\n", data); + } + break; + } + + case SPI_STATE_WAITING_HIGH_ADDR: + { + m_spiaddress = (m_spiaddress & 0xff00ffff) | data << 16; + logerror("set to high address %02x address is now %08x\n", data, m_spiaddress); + m_spistate = SPI_STATE_WAITING_MID_ADDR; + break; + } + + case SPI_STATE_WAITING_MID_ADDR: + { + m_spiaddress = (m_spiaddress & 0xffff00ff) | data << 8; + logerror("set to mid address %02x address is now %08x\n", data, m_spiaddress); + m_spistate = SPI_STATE_WAITING_LOW_ADDR; + break; + } + + case SPI_STATE_WAITING_LOW_ADDR: + { + m_spiaddress = (m_spiaddress & 0xffffff00) | data; + logerror("set to low address %02x address is now %08x\n", data, m_spiaddress); + m_spistate = SPI_STATE_READING; + break; + } + + case SPI_STATE_READING: + { + // writes when in read mode clock in data? + logerror("write while in read mode (clock data?)\n", data, m_spiaddress); + break; + } + + case SPI_STATE_WAITING_DUMMY1_ADDR: + { + m_spistate = SPI_STATE_WAITING_DUMMY2_ADDR; + break; + } + + case SPI_STATE_WAITING_DUMMY2_ADDR: + { + // m_spistate = SPI_STATE_READY; + break; + } + } +} + +uint8_t pcp8718_state::spi_process_rx() +{ + + switch (m_spistate) + { + case SPI_STATE_READING: + { + uint8_t dat = m_spirom[m_spiaddress & 0x3fffff]; + + // hack internal BIOS checksum check + if (m_spiaddress == ((0x49d13 - 0x20000) * 2)+1) + if (dat == 0x4e) + dat = 0x5e; + + logerror("reading SPI %02x from SPI Address %08x (adjusted word offset %08x)\n", dat, m_spiaddress, (m_spiaddress/2)+0x20000); + m_spiaddress++; + return dat; + } + + default: + { + logerror("reading FIFO in unknown state\n"); + return 0x00; + } + } + + return 0x00; +} + + +uint8_t pcp8718_state::spi_rx() +{ + uint8_t ret = m_rx_fifo[0]; + + m_rx_fifo[0] = m_rx_fifo[1]; + m_rx_fifo[1] = m_rx_fifo[2]; + m_rx_fifo[2] = m_rx_fifo[3]; + m_rx_fifo[3] = spi_process_rx(); + + return ret; +} + + +void pcp8718_state::spi_tx_fifo_w(uint16_t data) +{ + data &= 0x00ff; + logerror("%06x: spi_tx_fifo_w %02x\n", machine().describe_context(), data); + + spi_process_tx_data(data); +} + +// this is probably 'port b' but when SPI is enabled some points of this can become SPI control pins +// it's accessed after each large data transfer, probably to reset the SPI into 'ready for command' state? +void pcp8718_state::unk_7868_w(uint16_t data) +{ + logerror("%06x: unk_7868_w %02x (Port B + SPI reset?)\n", machine().describe_context(), data); + + for (int i = 0; i < 4; i++) + m_rx_fifo[i] = 0xff; + + m_spistate = SPI_STATE_READY; + +} + + +void pcp8718_state::spi_control_w(uint16_t data) +{ + logerror("%06x: spi_control_w %04x\n", machine().describe_context(), data); +} + +void pcp8718_state::map(address_map &map) +{ + // there are calls to 01xxx and 02xxx regions + // (RAM populated by internal ROM?, TODO: check to make sure code copied there isn't from SPI ROM like the GPL16250 bootstrap + // does from NAND, it doesn't seem to have a header in the same format at least) + map(0x000000, 0x006fff).ram().share("mainram"); + map(0x007000, 0x0077ff).ram(); // might be registers, but the call stubs for RAM calls explicitly use addresses in here for private stack so that previous snippets can be restored? + + map(0x007860, 0x007860).r(FUNC(pcp8718_state::unk_7860_r)); + + map(0x007868, 0x007868).w(FUNC(pcp8718_state::unk_7868_w)); + + map(0x007940, 0x007940).w(FUNC(pcp8718_state::spi_control_w)); + // 7941 SPI Transmit Status + map(0x007942, 0x007942).w(FUNC(pcp8718_state::spi_tx_fifo_w)); + // 7943 SPI Receive Status + map(0x007944, 0x007944).r(FUNC(pcp8718_state::spi_rx_fifo_r)); + map(0x007945, 0x007945).r(FUNC(pcp8718_state::spi_misc_control_r)); + + map(0x007abf, 0x007abf).r(FUNC(pcp8718_state::unk_7abf_r)); + + + // registers at 7xxx are similar to GPL16250, but not identical? (different video system?) + + // there are calls to 0x0f000 (internal ROM?) + map(0x00f000, 0x00ffff).rom().region("maincpu", 0x00000); +} + + + +uint16_t pcp8718_state::simulate_f000_r(offs_t offset) +{ + if (!machine().side_effects_disabled()) + { + uint16_t pc = m_maincpu->state_int(UNSP_PC); + uint16_t sr = m_maincpu->state_int(UNSP_SR); + int realpc = (pc | (sr << 16)) & 0x003fffff; + + if ((offset + 0xf000) == (realpc)) + { + if (realpc == 0xf000) + { + address_space& mem = m_maincpu->space(AS_PROGRAM); + + uint32_t source = (mem.read_word(0x001e) << 16) | mem.read_word(0x001d); + + if (source >= 0x20000) + { + uint16_t data = m_spirom[((source - 0x20000) * 2) + 0] | (m_spirom[((source - 0x20000) * 2) + 1] << 8); + uint16_t data2 = m_spirom[((source - 0x20000) * 2) + 2] | (m_spirom[((source - 0x20000) * 2) + 3] << 8); + + logerror("call to 0xf000 - copying from %08x to 04/05\n", source); // some code only uses 04, but other code copies pointers and expects results in 04 and 05 + + mem.write_word(0x0004, data); + mem.write_word(0x0005, data2); + } + + return 0x9a90; // retf + } + else if (realpc == 0xf58f) + { + logerror("call to 0xf58f - unknown function\n"); + return 0x9a90; // retf + } + else if (realpc == 0xfb26) // done with a call, and also a pc = + { + logerror("call to 0xfb26 - unknown function\n"); + return 0x9a90; // retf + } + else if (realpc == 0xf56f) // done with a pc = + { + logerror("call to 0xf56f - unknown function\n"); + return 0x9a90; // retf + } + else + { + fatalerror("simulate_f000_r unhandled BIOS simulation offset %04x\n", offset); + } + + } + else + { + logerror("simulate_f000_r reading BIOS area (for checksum?) %04x\n", offset); + } + } + return 0x0000; +} + +uint16_t pcp8718_state::ramcall_2060_logger_r() +{ + if (!machine().side_effects_disabled()) + { + logerror("call to 0x2060 in RAM (set SPI to read mode, set address, do dummy FIFO reads)\n"); + } + return m_mainram[0x2060]; +} + +uint16_t pcp8718_state::ramcall_2189_logger_r() +{ + if (!machine().side_effects_disabled()) + { + logerror("call to 0x2189 in RAM (unknown)\n"); + } + return m_mainram[0x2189]; +} + + +uint16_t pcp8718_state::ramcall_2829_logger_r() +{ + // this in turn calls 28f7 but has restore logic too + if (!machine().side_effects_disabled()) + { + logerror("call to 0x2829 in RAM (load+call function from SPI address %08x)\n", (m_mainram[0x1e] << 16) | m_mainram[0x1d]); + } + return m_mainram[0x2829]; +} + + + + +uint16_t pcp8718_state::ramcall_287a_logger_r() +{ + if (!machine().side_effects_disabled()) + { + logerror("call to 0x287a in RAM (unknown)\n"); + } + return m_mainram[0x287a]; +} + +uint16_t pcp8718_state::ramcall_28f7_logger_r() +{ + if (!machine().side_effects_disabled()) + { + // no restore logic? + logerror("call to 0x28f7 in RAM (load+GO TO function from SPI address %08x)\n", (m_mainram[0x1e] << 16) | m_mainram[0x1d]); + } + return m_mainram[0x28f7]; +} + +uint16_t pcp8718_state::ramcall_2079_logger_r() +{ + if (!machine().side_effects_disabled()) + { + logerror("call to 0x2079 in RAM (maybe drawing related?)\n"); // called in the 'dummy' loop that doesn't actually draw? and other places? as well as after the actual draw command below in the real loop + } + return m_mainram[0x2079]; +} + +uint16_t pcp8718_state::ramcall_2434_logger_r() +{ + if (!machine().side_effects_disabled()) + { + logerror("call to 0x2434 in RAM (drawing related?)\n"); // [1d] as the tile / sprite number, [1e] as xpos, [1f] as ypos, [20] as 0. [21] as ff in some title drawing calls + } + return m_mainram[0x2434]; +} + + + +void pcp8718_state::machine_reset() +{ + // this looks like it might actually be part of the IRQ handler (increase counter at 00 at the very start) rather than where we should end up after startup + // it also looks like (from the pc = 2xxx opcodes) that maybe this code should be being executed in RAM as those don't give correct offsets in the data segment. + m_maincpu->set_state_int(UNSP_PC, 0x4000); + m_maincpu->set_state_int(UNSP_SR, 0x0000); + + //uint16_t* ROM = (uint16_t*)memregion("maincpu")->base(); + //ROM[0x0000] = 0x9a90; // retf from internal ROM call to 0xf000 (unknown purpose) + + // there doesn't appear to be any code to set the SP, so it must be done by the internal ROM + m_maincpu->set_state_int(UNSP_SP, 0x5fff); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xffff, read16sm_delegate(*this, FUNC(pcp8718_state::simulate_f000_r))); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0x2060, 0x2060, read16smo_delegate(*this, FUNC(pcp8718_state::ramcall_2060_logger_r))); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0x2079, 0x2079, read16smo_delegate(*this, FUNC(pcp8718_state::ramcall_2079_logger_r))); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0x2189, 0x2189, read16smo_delegate(*this, FUNC(pcp8718_state::ramcall_2189_logger_r))); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0x2434, 0x2434, read16smo_delegate(*this, FUNC(pcp8718_state::ramcall_2434_logger_r))); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0x2829, 0x2829, read16smo_delegate(*this, FUNC(pcp8718_state::ramcall_2829_logger_r))); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0x287a, 0x287a, read16smo_delegate(*this, FUNC(pcp8718_state::ramcall_287a_logger_r))); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0x28f7, 0x28f7, read16smo_delegate(*this, FUNC(pcp8718_state::ramcall_28f7_logger_r))); + + m_spistate = SPI_STATE_READY; + m_spiaddress = 0; + +} + + +void pcp8718_state::pcp8718(machine_config &config) +{ + + UNSP_20(config, m_maincpu, 20000000); // unknown CPU, unsp20 based + m_maincpu->set_addrmap(AS_PROGRAM, &pcp8718_state::map); + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1); + m_screen->set_screen_update(FUNC(pcp8718_state::screen_update)); + m_screen->set_palette(m_palette); + + PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200); +} + +// pcp8718 and pcp8728 both contain user data (player name?) and will need to be factory defaulted once they work +// the ROM code is slightly different between them + +ROM_START( pcp8718 ) + ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x2000, NO_DUMP ) // exact size unknown + + ROM_REGION( 0x800000, "spi", ROMREGION_ERASEFF ) + //ROM_LOAD16_WORD_SWAP( "8718_en25f32.bin", 0x000000, 0x400000, CRC(cc138db4) SHA1(379af3d94ae840f52c06416d6cf32e25923af5ae) ) // bad dump, some blocks are corrupt + ROM_LOAD( "eyecare_25q32av1g_ef4016.bin", 0x000000, 0x400000, CRC(58415e10) SHA1(b1adcc03f2ad8d741544204671677740e904ce1a) ) +ROM_END + +ROM_START( pcp8728 ) + ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x2000, NO_DUMP ) // exact size unknown + + ROM_REGION( 0x800000, "spi", ROMREGION_ERASEFF ) + ROM_LOAD( "pcp 8728 788 in 1.bin", 0x000000, 0x400000, CRC(60115f21) SHA1(e15c39f11e442a76fae3823b6d510178f6166926) ) +ROM_END + +ROM_START( unkunsp ) + ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD16_WORD_SWAP( "internal.rom", 0x000000, 0x2000, NO_DUMP ) // exact size unknown + + ROM_REGION( 0x800000, "spi", ROMREGION_ERASEFF ) + ROM_LOAD( "fm25q16a.bin", 0x000000, 0x200000, CRC(aeb472ac) SHA1(500c24b725f6d3308ef8cbdf4259f5be556c7c92) ) +ROM_END + + +void pcp8718_state::spi_init() +{ + uint8_t* rom = memregion("spi")->base(); + + uint32_t start = rom[0] | (rom[1] << 8) | (rom[2] << 16) | (rom[3] << 24); + uint32_t end = rom[4] | (rom[5] << 8) | (rom[2] << 16) | (rom[3] << 24); + + + logerror("start: %08x\n", start); + logerror("end: %08x\n", end); + + int writebase = 0x4000; + + if (start > end) + { + logerror("invalid initial copy?\n"); + return; + } + else + { + start -= 0x20000; + end -= 0x20000; + + for (int i = start*2; i <= end*2; i+=2) + { + uint16_t dat = rom[i] | (rom[i+1] << 8); + m_mainram[writebase++] = dat; + } + } + +} + + +CONS( 200?, pcp8718, 0, 0, pcp8718, pcp8718, pcp8718_state, spi_init, "PCP", "PCP 8718 - HD 360 Degrees Rocker Palm Eyecare Console - 788 in 1", MACHINE_IS_SKELETON ) +CONS( 200?, pcp8728, 0, 0, pcp8718, pcp8718, pcp8718_state, spi_init, "PCP", "PCP 8728 - 788 in 1", MACHINE_IS_SKELETON ) // what name was this sold under? + +// maybe different hardware, first 0x2000 bytes in ROM is blank, so bootstrap pointers aren't there at least +CONS( 200?, unkunsp, 0, 0, pcp8718, pcp8718, pcp8718_state, empty_init, "", "unknown unSP-based handheld", MACHINE_IS_SKELETON ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/gigatron.cpp mame-0.224+dfsg.1/src/mame/drivers/gigatron.cpp --- mame-0.223+dfsg.1/src/mame/drivers/gigatron.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/gigatron.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,14 +1,13 @@ -// license:BSD-3-Clause +// license:BSD-2-Clause // copyright-holders:Sterophonick, Phil Thomas /*************************************************************************** - Skeleton driver for Gigatron TTL Microcomputer - Driver by Sterophonick + Driver for Gigatron TTL Microcomputer by Sterophonick -***************************************************************************/ + Based on Gigatron.js by Phil Thomas + https://github.com/PhilThomas/gigatron -//There is a pre-existing emulator here https://github.com/PhilThomas/gigatron -//It's just a matter of translating it to MAME. +***************************************************************************/ #include "emu.h" #include "cpu/gigatron/gigatron.h" @@ -17,10 +16,22 @@ #include "sound/volt_reg.h" #include "speaker.h" +#include "gigatron.lh" + #define MAIN_CLOCK 6250000 #define VSYNC 0x80 #define HSYNC 0x40 +/*************************************************************************** + + TODO + + Hook up a quikload for loading .gt1 files + HLE the keyboard and Pluggy McPlugface + +***************************************************************************/ + + //************************************************************************** // Driver Definition //************************************************************************** @@ -32,13 +43,17 @@ : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_dac(*this, "dac") + , m_screen(*this, "screen") , m_io_inputs(*this, "GAMEPAD") + , m_blinken1(*this, "blinken1") + , m_blinken2(*this, "blinken2") + , m_blinken3(*this, "blinken3") + , m_blinken4(*this, "blinken4") { } void gigatron(machine_config &config); - private: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -46,29 +61,35 @@ virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; + virtual void video_reset() override; void prog_map(address_map &map); void data_map(address_map &map); - uint16_t m_lc; //Lights Changed + uint8_t m_lights; //blinkenlights //Video Generation stuff uint8_t m_out; - uint8_t m_row; - uint8_t m_col; + int16_t m_row; + int16_t m_col; uint8_t m_pixel; - void blinkenlights(uint8_t data); - void video_draw(u8 data); - uint8_t inputs(); + uint8_t m_dacoutput; + void port_outx(uint8_t data); + void port_out(uint8_t data); - std::unique_ptr m_bitmap_render; - std::unique_ptr m_bitmap_buffer; + std::unique_ptr m_bitmap_render; required_device m_maincpu; required_device m_dac; + required_device m_screen; required_ioport m_io_inputs; + + output_finder<> m_blinken1; + output_finder<> m_blinken2; + output_finder<> m_blinken3; + output_finder<> m_blinken4; }; //************************************************************************** @@ -77,24 +98,31 @@ void gigatron_state::video_start() { - m_bitmap_render = std::make_unique(640, 480); - m_bitmap_buffer = std::make_unique(640, 480); + m_bitmap_render = std::make_unique(640, 480); +} + +void gigatron_state::video_reset() +{ + uint32_t *dest = &m_bitmap_render->pix32(0, 0); + for(uint32_t i = 0; i < 640*480; i++) + *dest++ = 0; } -void gigatron_state::video_draw(u8 data) +void gigatron_state::port_out(uint8_t data) { - uint8_t out = data; + m_pixel = data; + uint8_t out = m_pixel; uint8_t falling = m_out & ~out; if (falling & VSYNC) { - m_row = 0; + m_row = -36; m_pixel = 0; } if (falling & HSYNC) { - m_col = 0; + m_col = -4; m_row++; } @@ -107,16 +135,26 @@ if((m_row >= 0 && m_row < 480) && (m_col >= 0 && m_col < 640)) { - //uint16_t *dest; - //uint8_t tPixel = pixel; - //uint8_t r = (out << 6) & 0xC0; - //uint8_t g = (out << 4) & 0xC0; - //uint8_t b = (out << 2) & 0xC0; + uint8_t r = (out << 6) & 0xC0; + uint8_t g = (out << 4) & 0xC0; + uint8_t b = (out << 2) & 0xC0; + uint32_t *dest = &m_bitmap_render->pix32(m_row, m_col); + for(uint8_t i = 0; i < 4; i++) + *dest++ = b|(g<<8)|(r<<16); } + m_col += 4; } +//6-bit color, VGA uint32_t gigatron_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { + copybitmap(bitmap, *m_bitmap_render, 0, 0, 0, 0, cliprect); + video_reset(); + + m_blinken1 = (m_lights >> 3) & 1; + m_blinken2 = (m_lights >> 2) & 1; + m_blinken3 = (m_lights >> 1) & 1; + m_blinken4 = (m_lights >> 0) & 1; return 0; } @@ -126,12 +164,12 @@ void gigatron_state::prog_map(address_map &map) { - map(0x0000, 0x3fff).rom().region("maincpu", 0); + map(0x0000, 0xffff).rom().region("maincpu", 0); } void gigatron_state::data_map(address_map &map) { - map(0x0000, 0x7fff).ram(); + map(0x0000, 0xffff).ram(); } //************************************************************************** @@ -140,62 +178,71 @@ static INPUT_PORTS_START(gigatron) PORT_START("GAMEPAD") - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START ) PORT_PLAYER(1) // START - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SELECT ) PORT_PLAYER(1) // SELECT - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("B Button") PORT_PLAYER(1) // B Button - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("A Button") PORT_PLAYER(1) // A Button + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_START ) PORT_PLAYER(1) // START + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(1) // SELECT + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("B Button") PORT_PLAYER(1) // B Button + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("A Button") PORT_PLAYER(1) // A Button INPUT_PORTS_END void gigatron_state::machine_start() { - save_item(NAME(m_lc)); + //blinkenlights + m_blinken1.resolve(); + m_blinken2.resolve(); + m_blinken3.resolve(); + m_blinken4.resolve(); + + //Savestate stuff + save_item(NAME(m_lights)); save_item(NAME(m_out)); save_item(NAME(m_row)); save_item(NAME(m_col)); save_item(NAME(m_pixel)); + save_item(NAME(m_dacoutput)); } void gigatron_state::machine_reset() { + m_dacoutput = 0; m_dac->write(0); + m_lights = 0; + m_out = 0; + m_row = 0; + m_col = 0; + m_pixel = 0; } void gigatron_state::port_outx(uint8_t data) { - blinkenlights(data & 0x0F); - m_dac->write((data & 0xF0) >> 4); -} - -void gigatron_state::blinkenlights(uint8_t data) -{ - uint16_t light = data & 0xF; - m_lc ^= light; -} + //Write sound to DAC + m_dacoutput = (data & 0xF0) >> 4; + m_dac->write(m_dacoutput); -uint8_t gigatron_state::inputs() -{ - return m_io_inputs->read() ^ 0xFF; + //Blinkenlights + m_lights = data & 0xF; } void gigatron_state::gigatron(machine_config &config) { + config.set_default_layout(layout_gigatron); + GTRON(config, m_maincpu, MAIN_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &gigatron_state::prog_map); m_maincpu->set_addrmap(AS_DATA, &gigatron_state::data_map); m_maincpu->outx_cb().set(FUNC(gigatron_state::port_outx)); - m_maincpu->out_cb().set(FUNC(gigatron_state::video_draw)); - m_maincpu->ir_cb().set(FUNC(gigatron_state::inputs)); + m_maincpu->out_cb().set(FUNC(gigatron_state::port_out)); + m_maincpu->ir_cb().set_ioport("GAMEPAD").invert(); /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(59.98); - screen.set_size(640, 480); - screen.set_visarea(0, 640-1, 0, 480-1); - screen.set_screen_update(FUNC(gigatron_state::screen_update)); + screen_device &m_screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + m_screen.set_refresh_hz(59.98); + m_screen.set_size(640, 480); + m_screen.set_visarea(0, 640-1, 0, 480-1); + m_screen.set_screen_update(FUNC(gigatron_state::screen_update)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); @@ -207,16 +254,16 @@ ROM_START( gigatron ) ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_SYSTEM_BIOS(0, "v5a", "Gigatron ROM V5a") + ROM_SYSTEM_BIOS(0, "v5a", "Gigatron ROM v5a") ROMX_LOAD( "gigrom5a.rom", 0x0000, 0x20000, CRC(DCC071A6) SHA1(F82059BA0227FF48E4C687B90C8445DA30213EE2),ROM_BIOS(0)) - ROM_SYSTEM_BIOS(1, "v4", "Gigatron ROM V4") + ROM_SYSTEM_BIOS(1, "v4", "Gigatron ROM v4") ROMX_LOAD( "gigrom4.rom", 0x0000, 0x20000, CRC(78995109) SHA1(2395fc48e64099836111f5aeca39ddbf4650ea4e),ROM_BIOS(1)) - ROM_SYSTEM_BIOS(2, "v3", "Gigatron ROM V3") + ROM_SYSTEM_BIOS(2, "v3", "Gigatron ROM v3") ROMX_LOAD( "gigrom3.rom", 0x0000, 0x20000, CRC(1536efbe) SHA1(959268069e761a01d620396eedb9abc1ee63c421),ROM_BIOS(2)) - ROM_SYSTEM_BIOS(3, "v2", "Gigatron ROM V2") + ROM_SYSTEM_BIOS(3, "v2", "Gigatron ROM v2") ROMX_LOAD( "gigrom2.rom", 0x0000, 0x20000, CRC(b4a3d936) SHA1(c93f417d589144b912c79f85b9e942d66242c2c3),ROM_BIOS(3)) - ROM_SYSTEM_BIOS(4, "v1", "Gigatron ROM V1") + ROM_SYSTEM_BIOS(4, "v1", "Gigatron ROM v1") ROMX_LOAD( "gigrom1.rom", 0x0000, 0x20000, CRC(8ea5a2af) SHA1(e5758d5cc467c3476bd8f992fd45dfcdf06d0430),ROM_BIOS(4)) ROM_END -COMP(2018, gigatron, 0, 0, gigatron, gigatron, gigatron_state, empty_init, "Marcel van Kervinck / Walter Belgers", "Gigatron TTL Microcomputer", MACHINE_IS_SKELETON) +COMP(2018, gigatron, 0, 0, gigatron, gigatron, gigatron_state, empty_init, "Marcel van Kervinck / Walter Belgers", "Gigatron TTL Microcomputer", MACHINE_SUPPORTS_SAVE) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/gkigt.cpp mame-0.224+dfsg.1/src/mame/drivers/gkigt.cpp --- mame-0.223+dfsg.1/src/mame/drivers/gkigt.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/gkigt.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:David Haywood +// copyright-holders:David Haywood, R. Belmont, Angelo Salese, Dirk Best /* TODO: diff -Nru mame-0.223+dfsg.1/src/mame/drivers/gnat10.cpp mame-0.224+dfsg.1/src/mame/drivers/gnat10.cpp --- mame-0.223+dfsg.1/src/mame/drivers/gnat10.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/gnat10.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -10,11 +10,26 @@ ****************************************************************************/ #include "emu.h" +//#include "bus/ieee488/ieee488.h" +//#include "bus/rs232/rs232.h" +//#include "machine/tms9914.h" #include "cpu/z80/z80.h" +#include "cpu/i8085/i8085.h" #include "imagedev/floppy.h" +//#include "machine/am9511.h" +//#include "machine/am9517a.h" +//#include "machine/i8155.h" +//#include "machine/i8251.h" #include "machine/com8116.h" +//#include "machine/mm58167.h" +//#include "machine/tms9914.h" #include "machine/wd_fdc.h" +//#include "machine/z80ctc.h" +//#include "machine/z80pio.h" #include "machine/z80sio.h" +//#include "video/mc6845.h" +//#include "screen.h" +//#include "speaker.h" class gnat10_state : public driver_device { @@ -28,6 +43,7 @@ , m_monitor(*this, "monitor") , m_ram(*this, "ram") , m_ram_on(false) + , m_prom_disable(false) { } @@ -38,14 +54,17 @@ virtual void machine_reset() override; private: - u8 ram_r(offs_t offset); + u8 mem_r(offs_t offset); u8 floppy_status_r(); void floppy_latch_w(u8 data); + u8 rtc_r(offs_t offset); + void rtc_w(offs_t offset, u8 data); void baud0_w(u8 data); void baud1_w(u8 data); void mem_map(address_map &map); void io_map(address_map &map); + void video_map(address_map &map); required_device m_maincpu; required_device m_fdc; @@ -55,11 +74,13 @@ required_shared_ptr m_ram; bool m_ram_on; + bool m_prom_disable; }; void gnat10_state::machine_start() { save_item(NAME(m_ram_on)); + save_item(NAME(m_prom_disable)); } void gnat10_state::machine_reset() @@ -69,9 +90,9 @@ } -u8 gnat10_state::ram_r(offs_t offset) +u8 gnat10_state::mem_r(offs_t offset) { - if (m_ram_on) + if (m_ram_on && (m_prom_disable || offset < 0xf800)) return m_ram[offset]; else return m_monitor[offset & 0x07ff]; @@ -79,6 +100,10 @@ u8 gnat10_state::floppy_status_r() { + if (!machine().side_effects_disabled()) + { + // TODO: this also forces the motor on (it turns off on a timeout) + } return m_fdc->drq_r() << 7 | m_fdc->intrq_r(); } @@ -93,9 +118,21 @@ if (floppy != nullptr) floppy->ss_w(BIT(data, 5)); + m_prom_disable = BIT(data, 6); + m_fdc->mr_w(BIT(data, 7)); } +u8 gnat10_state::rtc_r(offs_t offset) +{ + return 0; //m_rtc->read(offset ^ 0x10); +} + +void gnat10_state::rtc_w(offs_t offset, u8 data) +{ + //m_rtc->write(offset ^ 0x10, data); +} + void gnat10_state::baud0_w(u8 data) { m_brg->str_w(data & 0x0f); @@ -109,19 +146,42 @@ void gnat10_state::mem_map(address_map &map) { - map(0x0000, 0xf7ff).r(FUNC(gnat10_state::ram_r)).writeonly().share("ram"); - map(0xf800, 0xffff).rom().region("monitor", 0); + map(0x0000, 0xffff).r(FUNC(gnat10_state::mem_r)).writeonly().share("ram"); } void gnat10_state::io_map(address_map &map) { map.global_mask(0xff); - map(0x60, 0x63).rw("sio1", FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w)); - map(0x70, 0x73).rw("sio0", FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w)); - map(0x80, 0x83).rw(m_fdc, FUNC(fd1793_device::read), FUNC(fd1793_device::write)); - map(0xa0, 0xa0).rw(FUNC(gnat10_state::floppy_status_r), FUNC(gnat10_state::floppy_latch_w)); - map(0xd0, 0xd0).w(FUNC(gnat10_state::baud0_w)); - map(0xe0, 0xe0).w(FUNC(gnat10_state::baud1_w)); + //map(0x00, 0x0f).rw("dmac", FUNC(am9517a_device::read), FUNC(am9517a_device::write)); + //map(0x10, 0x11).mirror(0xe).rw("apu", FUNC(am9511_device::read), FUNC(am9511_device::write)); + //map(0x20, 0x23).mirror(0xc).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write)); + //map(0x30, 0x3f).rw("488c", FUNC(tms9914_device::read), FUNC(tms9914_device::write)); + //map(0x40, 0x40).mirror(0xf).rw(FUNC(gnat10_state::pdma1_r), FUNC(gnat10_state::pdma1_w)); + //map(0x50, 0x53).mirror(0xc).rw("pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write)); + map(0x60, 0x63).mirror(0xc).rw("sio1", FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w)); + map(0x70, 0x73).mirror(0xc).rw("sio0", FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w)); + map(0x80, 0x83).mirror(0xc).rw(m_fdc, FUNC(fd1793_device::read), FUNC(fd1793_device::write)); + //map(0x90, 0x90).mirror(0xf).rw(FUNC(gnat10_state::pdma0_r), FUNC(gnat10_state::pdma0_w)); + map(0xa0, 0xa0).mirror(0xf).rw(FUNC(gnat10_state::floppy_status_r), FUNC(gnat10_state::floppy_latch_w)); + map(0xb0, 0xcf).rw(FUNC(gnat10_state::rtc_r), FUNC(gnat10_state::rtc_w)); + map(0xd0, 0xd0).mirror(0xf).w(FUNC(gnat10_state::baud0_w)); + map(0xe0, 0xe0).mirror(0xf).w(FUNC(gnat10_state::baud1_w)); + //map(0xf0, 0xf0).r(?); // undocumented switches? +} + +void gnat10_state::video_map(address_map &map) +{ + map.global_mask(0x7fff); + map(0x0000, 0x07ff).mirror(0x800).rom().region("videocpu", 0); + map(0x1000, 0x13ff).mirror(0xc00).ram(); + map(0x2000, 0x27ff).mirror(0x800).ram().share("vram"); + //map(0x3000, 0x3000).mirror(0xfff).w(FUNC(gnat10_state::reset_out_w)); + //map(0x4000, 0x40ff).mirror(0x700).rw("videopio", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w)); + //map(0x4800, 0x4807).mirror(0x7f8).rw("videopio", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w)); + //map(0x5000, 0x5001).mirror(0xffe).rw("videosio", FUNC(i8251_device::read), FUNC(i8251_device::write)); + //map(0x6000, 0x6000).mirror(0xfff).w(FUNC(gnat10_state::bell_w)); + //map(0x7000, 0x7000).mirror(0xffe).w("crtc", FUNC(mc6845_device::address_w)); + //map(0x7001, 0x7001).mirror(0xffe).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); } @@ -146,19 +206,31 @@ FLOPPY_CONNECTOR(config, m_floppy[0], gnat_floppies, "525qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy[1], gnat_floppies, "525qd", floppy_image_device::default_floppy_formats); - COM5016_5(config, m_brg, 4.9152_MHz_XTAL); // specific type unknown + COM5016_5(config, m_brg, 4.9152_MHz_XTAL); // BR1941-5 m_brg->fr_handler().set("sio0", FUNC(z80sio_device::rxca_w)); m_brg->fr_handler().append("sio0", FUNC(z80sio_device::txca_w)); m_brg->fr_handler().append("sio1", FUNC(z80sio_device::rxca_w)); m_brg->fr_handler().append("sio1", FUNC(z80sio_device::txca_w)); m_brg->ft_handler().set("sio1", FUNC(z80sio_device::rxtxcb_w)); - // TODO: video screen, peripheral ports + // TODO: DMAC, peripheral ports + + i8085a_cpu_device &videocpu(I8085A(config, "videocpu", 18.432_MHz_XTAL / 4)); + videocpu.set_addrmap(AS_PROGRAM, &gnat10_state::video_map); + videocpu.set_disable(); + + // TODO: 8155, 8251A, 6845, video screen } ROM_START(gnat10) ROM_REGION(0x800, "monitor", 0) ROM_LOAD("gnat-507", 0x000, 0x800, CRC(72baa750) SHA1(7b78324b90b8c6f78c88a7dde8d53ea612ea1f7f)) // LF patched back to CR/LF in four instances + + ROM_REGION(0x800, "videocpu", 0) + ROM_LOAD("videocpu.bin", 0x000, 0x800, NO_DUMP) // TMS2716 or TMS2732 + + ROM_REGION(0x800, "chargen", 0) + ROM_LOAD("chargen.bin", 0x000, 0x800, NO_DUMP) // TMS2716 or TMS2732 ROM_END COMP(1980, gnat10, 0, 0, gnat10, gnat10, gnat10_state, empty_init, "GNAT Computers", "GNAT System 10", MACHINE_IS_SKELETON) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/goldnpkr.cpp mame-0.224+dfsg.1/src/mame/drivers/goldnpkr.cpp --- mame-0.223+dfsg.1/src/mame/drivers/goldnpkr.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/goldnpkr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -486,14 +486,31 @@ 2 or 3 deals per hand. It's running in a ICP-1 PCB. Entering the service mode (key 0), you can enter to a submenu for settings pressing - DEAL (key 2). Use HOLD keys (keys ZXCVB) to navigate through the menu and change + DEAL (key 2): + + Win Limit (0-9 the first time, then 3-9) + Payout Limit (0-2) + Double Odds % (0-9) + Payout % (0-9) + Hard Setting (0-4) + Note Value (fixed in 5) + + Bonus (0 to 10000, step x100) + (if you rech 10000, settings exits and go to game. You can't change bonus anymore. + + Use HOLD keys (keys ZXCVB) to navigate through the menu and change the values. Press CANCEL to exit the settings menu. + ** NOTE ** + 2-3 deals, turbo mode, bonus and royal flush could be set through DIP switches. + + Program is currently not working because seems to fill some zeropage registers and check for existent values and changes... Maybe an external device is writting them. This is NVRAM zone, so some values could be previously harcoded. - Also seems to expect some inputs combination entered to boot. + Also seems to manipulate the stack pointer expecting different values, and some inputs + combination entered to boot. To run... 1) Start the game. @@ -515,6 +532,13 @@ fully working. + For now will patch the dead end to get it working. + e9f4: jmp $ea56 ---> death + e9f7: jmp $cec6 ---> works + + The game needs ~25 seconds to check all the things to start. + + ************************************************************************************ @@ -1356,6 +1380,7 @@ void init_vkdlswwv(); void init_bchancep(); void init_bonuspkr(); + void init_super98(); uint8_t pottnpkr_mux_port_r(); void lamps_a_w(uint8_t data); @@ -4158,10 +4183,10 @@ PORT_DIPNAME( 0x20, 0x00, "Turbo" ) PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "Bonus" ) + PORT_DIPNAME( 0x40, 0x00, "Bonus" ) PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, "Royal Flush" ) + PORT_DIPNAME( 0x80, 0x00, "Royal Flush" ) PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) INPUT_PORTS_END @@ -12143,6 +12168,32 @@ } +/* + Super 98 protection. + + Code checks for different things on NVRAM space. + There are involved zeropage registers, inputs + combinations, and stack pointer handling. + + The game takes 25 seconds to do all the checks. + + E9F4: jmp $EA56 ; infinite loop / dead end. + E9F7: jmp $CEC6 ; the game continue executing... + +*/ + +void goldnpkr_state::init_super98() +{ +// NOPing the deadly call for now. + + uint8_t *ROM = memregion("maincpu")->base(); + + ROM[0x69f4] = 0xea; + ROM[0x69f5] = 0xea; + ROM[0x69f6] = 0xea; +} + + /********************************************* * Game Drivers * *********************************************/ @@ -12299,8 +12350,8 @@ GAMEL( 198?, bchancep, 0, bchancep, goldnpkr, goldnpkr_state, init_bchancep, ROT0, "", "Bonne Chance! (Golden Poker prequel HW, set 1)", MACHINE_NOT_WORKING, layout_goldnpkr ) GAMEL( 198?, bchanceq, 0, goldnpkr, goldnpkr, goldnpkr_state, empty_init, ROT0, "", "Bonne Chance! (Golden Poker prequel HW, set 2)", MACHINE_NOT_WORKING, layout_goldnpkr ) -GAME( 1987, pokermon, 0, mondial, mondial, goldnpkr_state, empty_init, ROT0, "", "Mundial/Mondial (Italian/French)", 0 ) // banked selectable program -GAME( 1998, super98, bsuerte, witchcrd, super98, goldnpkr_state, empty_init, ROT0, "", "Super 98 (3-hands, ICP-1)", MACHINE_NOT_WORKING ) // program checks zeropage registers for changes... +GAME( 1987, pokermon, 0, mondial, mondial, goldnpkr_state, empty_init, ROT0, "", "Mundial/Mondial (Italian/French)", 0 ) // banked selectable program. +GAME( 1998, super98, bsuerte, witchcrd, super98, goldnpkr_state, init_super98, ROT0, "", "Super 98 (3-hands, ICP-1)", 0 ) // complex protection. see notes. GAME( 198?, animpkr, 0, icp_ext, animpkr, goldnpkr_state, empty_init, ROT0, "", "unknown rocket/animal-themed poker", MACHINE_IMPERFECT_COLORS ) // banked program. how to switch gfx? diff -Nru mame-0.223+dfsg.1/src/mame/drivers/goldstar.cpp mame-0.224+dfsg.1/src/mame/drivers/goldstar.cpp --- mame-0.223+dfsg.1/src/mame/drivers/goldstar.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/goldstar.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -11242,6 +11242,138 @@ ROM_END +/* + Cherry Master. + + The EPROMS devices only hold the second half of the needed program and regular tiles data. + EPROMS are NMC27CP128Q that are sized 0x4000, when the real data should be 0x8000 for each position. + + *EDIT* + Even when the NMC27CP128Q datasheet says that these devices are 128 Kbits (16k x8), we redumped + them as 27c256, and got perfect complete 32k x8 dumps. + + This is very weird, since the datasheet diagram clearly shows that this device lacks of A14 line. + + So... The National NMC27CP128Q devices could hold twice the specified size, or these on the board + are just fake devices for protection purposes. + +*/ +ROM_START( cmasteri ) + ROM_REGION( 0x10000, "maincpu", 0 ) // 32k x 8 data coming from a real NMC27CP128Q + ROM_LOAD( "9.u81", 0x0000, 0x1000, CRC(2738eb55) SHA1(95e420544f36e4ce6358f14fee7a6b7ecd4cc568) ) + ROM_CONTINUE(0x4000,0x1000) + ROM_CONTINUE(0x3000,0x1000) + ROM_CONTINUE(0x7000,0x1000) + ROM_CONTINUE(0x1000,0x1000) + ROM_CONTINUE(0x6000,0x1000) + ROM_CONTINUE(0x2000,0x1000) + ROM_CONTINUE(0x5000,0x1000) + + ROM_REGION( 0x18000, "gfx1", 0 ) // 32k x 8 data coming from real NMC27CP128Q devices + ROM_LOAD( "7.u16", 0x00000, 0x8000, CRC(19cc1d67) SHA1(47487f9362bfb36a32100ed772960628844462bf) ) + ROM_LOAD( "6.u11", 0x08000, 0x8000, CRC(63b3df4e) SHA1(9bacd23da598805ec18ec5ad15cab95d71eb9262) ) + ROM_LOAD( "5.u4", 0x10000, 0x8000, CRC(e39fff9c) SHA1(22fdc517fa478441622c6245cecb5728c5595757) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "4.u15", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) ) + ROM_LOAD( "3.u10", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) ) + ROM_LOAD( "2.u14", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) ) + ROM_LOAD( "1.u9", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) ) + + ROM_REGION( 0x10000, "user1", 0 ) + ROM_LOAD( "8.u58", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) ) + + ROM_REGION( 0x200, "proms", 0 ) + ROM_LOAD( "74s287.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) ) + ROM_LOAD( "74s287.u79", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) ) + + ROM_REGION( 0x100, "proms2", 0 ) + ROM_LOAD( "74s287.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) ) +ROM_END + + +/* + Cherry Master. + CM-1 v1.01 + + These sets were modified to use different inputs to stop all reels. + + cmasterj uses BET to stop all. + (this set needs to press stop as soon as the spin starts) + + cmasterk uses TAKE to stop all. + + Should be other changes since there are program blocks moved/modded, + but these are unknown. + +*/ +ROM_START( cmasterj ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mb1_hold__bet_all_stop.bin", 0x0000, 0x1000, CRC(5f168417) SHA1(7ba7fed94ce7211fa8cf6c2abe8dea4b44a22aee) ) + ROM_CONTINUE(0x4000,0x1000) + ROM_CONTINUE(0x3000,0x1000) + ROM_CONTINUE(0x7000,0x1000) + ROM_CONTINUE(0x1000,0x1000) + ROM_CONTINUE(0x6000,0x1000) + ROM_CONTINUE(0x2000,0x1000) + ROM_CONTINUE(0x5000,0x1000) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "7.u16", 0x00000, 0x8000, CRC(19cc1d67) SHA1(47487f9362bfb36a32100ed772960628844462bf) ) + ROM_LOAD( "6.u11", 0x08000, 0x8000, CRC(63b3df4e) SHA1(9bacd23da598805ec18ec5ad15cab95d71eb9262) ) + ROM_LOAD( "5.u4", 0x10000, 0x8000, CRC(e39fff9c) SHA1(22fdc517fa478441622c6245cecb5728c5595757) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "4.u15", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) ) + ROM_LOAD( "3.u10", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) ) + ROM_LOAD( "2.u14", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) ) + ROM_LOAD( "1.u9", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) ) + + ROM_REGION( 0x10000, "user1", 0 ) + ROM_LOAD( "8.u58", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) ) + + ROM_REGION( 0x200, "proms", 0 ) + ROM_LOAD( "prom1.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) ) + ROM_LOAD( "prom2.u79", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) ) + + ROM_REGION( 0x100, "proms2", 0 ) + ROM_LOAD( "prom3.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) ) +ROM_END + +ROM_START( cmasterk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mb1_hold__take_all_stop.bin", 0x0000, 0x1000, CRC(4ffc137f) SHA1(0f080241fa9ded561324b0c602f80159f4683387) ) + ROM_CONTINUE(0x4000,0x1000) + ROM_CONTINUE(0x3000,0x1000) + ROM_CONTINUE(0x7000,0x1000) + ROM_CONTINUE(0x1000,0x1000) + ROM_CONTINUE(0x6000,0x1000) + ROM_CONTINUE(0x2000,0x1000) + ROM_CONTINUE(0x5000,0x1000) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "7.u16", 0x00000, 0x8000, CRC(19cc1d67) SHA1(47487f9362bfb36a32100ed772960628844462bf) ) + ROM_LOAD( "6.u11", 0x08000, 0x8000, CRC(63b3df4e) SHA1(9bacd23da598805ec18ec5ad15cab95d71eb9262) ) + ROM_LOAD( "5.u4", 0x10000, 0x8000, CRC(e39fff9c) SHA1(22fdc517fa478441622c6245cecb5728c5595757) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "4.u15", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) ) + ROM_LOAD( "3.u10", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) ) + ROM_LOAD( "2.u14", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) ) + ROM_LOAD( "1.u9", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) ) + + ROM_REGION( 0x10000, "user1", 0 ) + ROM_LOAD( "8.u58", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) ) + + ROM_REGION( 0x200, "proms", 0 ) + ROM_LOAD( "prom1.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) ) + ROM_LOAD( "prom2.u79", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) ) + + ROM_REGION( 0x100, "proms2", 0 ) + ROM_LOAD( "prom3.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) ) +ROM_END + + ROM_START( cmast99 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cm99-041-8.u81", 0x0000, 0x1000, CRC(5fb0800e) SHA1(14d316b7b89340c5b5c9fdd0b43d5810513b74d6) ) @@ -19208,6 +19340,9 @@ GAMEL( 1991, cmasterf, cmaster, cm, cmasterb, cmaster_state, init_cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 7)", 0, layout_cmasterb ) GAMEL( 1991, cmasterg, cmaster, cm, cmasterg, cmaster_state, init_cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 8, V4-B-)", 0, layout_cmasterb ) GAMEL( 1991, cmasterh, cmaster, cm, cmasterh, cmaster_state, init_cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.10)", 0, layout_cmasterb ) +GAMEL( 1991, cmasteri, cmaster, cm, cmasterb, cmaster_state, init_cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 9)", 0, layout_cmasterb ) // NMC27CP128Q being 32k x8 instead of 16k x8... +GAMEL( 1991, cmasterj, cmaster, cm, cmasterb, cmaster_state, init_cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 10, BET stops all)", 0, layout_cmasterb ) +GAMEL( 1991, cmasterk, cmaster, cm, cmasterb, cmaster_state, init_cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 11, TAKE stops all)", 0, layout_cmasterb ) GAMEL( 199?, super7, cmaster, cm, cmaster, cmaster_state, init_super7, ROT0, "bootleg", "Super Seven", MACHINE_NOT_WORKING, layout_cmasterb ) GAME ( 199?, wcat3a, wcat3, chryangl, cmaster, cmaster_state, init_wcat3a, ROT0, "E.A.I.", "Wild Cat 3 (CMV4 hardware)", MACHINE_NOT_WORKING ) // does not boot. Wrong decryption, wrong machine or wrong what? diff -Nru mame-0.223+dfsg.1/src/mame/drivers/guab.cpp mame-0.224+dfsg.1/src/mame/drivers/guab.cpp --- mame-0.223+dfsg.1/src/mame/drivers/guab.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/guab.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -18,14 +18,9 @@ * Treasure Trail? Known issues: - * Neither game registers coins and I can't find where the credit - count gets updated in the code. Each game requires a unique - security PAL - maybe this is related? I'm poking the coin values - directly into RAM for now. - * Game hangs when nothing is connected to the first ACIA when - you try to 'collect' cash + * Coin data has to go through the datalogger to be counted * Verify WD FDC type - * Hook up ACIA properly + * Hook up ACIA properly, clocks etc. * Hook up watchdog NMI * Verify clocks * Use real video timings @@ -33,24 +28,21 @@ Notes: * Toggle both 'Back door' and 'Key switch' to enter test mode + * Opening the back door will disable coinup * Video hardware seems to match JPM System 5 * IRQ 1 inits the PPIs, IRQ 2 does nothing - * Values send to the first ACIA serial port: - - Game ID: "JPMNA305v.." (guab) or "..JPMNN101}" (tenup) - - Coin 1-4: 1-4 - - Game start: / - - Collect: D ***************************************************************************/ #include "emu.h" #include "cpu/m68000/m68000.h" -#include "bus/rs232/rs232.h" #include "formats/guab_dsk.h" #include "imagedev/floppy.h" #include "machine/6840ptm.h" #include "machine/6850acia.h" +#include "machine/bacta_datalogger.h" + #include "machine/clock.h" #include "machine/i8255.h" #include "machine/wd_fdc.h" @@ -87,8 +79,6 @@ void guab(machine_config &config); - DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); - protected: virtual void machine_start() override; @@ -110,7 +100,6 @@ uint8_t watchdog_r(); void watchdog_w(uint8_t data); - DECLARE_FLOPPY_FORMATS(floppy_formats); void guab_map(address_map &map); @@ -147,6 +136,7 @@ map(0x0c00e0, 0x0c00e7).rw(m_fdc, FUNC(wd1773_device::read), FUNC(wd1773_device::write)).umask16(0x00ff); map(0x080000, 0x080fff).ram(); map(0x100001, 0x100001).rw("ef9369", FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)); + map(0x100002, 0x100003).nopr(); // uses a clr instruction on address which generates a dummy read map(0x100003, 0x100003).w("ef9369", FUNC(ef9369_device::address_w)); map(0x800000, 0xb0ffff).rw(FUNC(guab_state::tms34061_r), FUNC(guab_state::tms34061_w)); map(0xb10000, 0xb1ffff).ram(); @@ -161,8 +151,8 @@ static INPUT_PORTS_START( guab ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("50p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 50) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("100p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 100) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("50p") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("100p") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Back door") PORT_CODE(KEYCODE_R) PORT_TOGGLE PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Cash door") PORT_CODE(KEYCODE_T) PORT_TOGGLE PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Key switch") PORT_CODE(KEYCODE_Y) PORT_TOGGLE @@ -187,14 +177,14 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("C") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("D") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("10p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 10) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("20p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 20) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("10p") + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("20p") INPUT_PORTS_END static INPUT_PORTS_START( tenup ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("50p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 50) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("100p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 100) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("50p") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("100p") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Back door") PORT_CODE(KEYCODE_R) PORT_TOGGLE PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Cash door") PORT_CODE(KEYCODE_T) PORT_TOGGLE PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Key switch") PORT_CODE(KEYCODE_Y) PORT_TOGGLE @@ -219,8 +209,8 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("A") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("B") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("C") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("10p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 10) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("20p") PORT_CHANGED_MEMBER(DEVICE_SELF, guab_state,coin_inserted, 20) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("10p") + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("20p") INPUT_PORTS_END @@ -349,20 +339,6 @@ //************************************************************************** // INPUTS/OUTPUTS //************************************************************************** - -INPUT_CHANGED_MEMBER( guab_state::coin_inserted ) -{ - if (newval == 0) - { - uint32_t credit; - address_space &space = m_maincpu->space(AS_PROGRAM); - - /* Get the current credit value and add the new coin value */ - credit = space.read_dword(0x8002c) + param; - space.write_dword(0x8002c, credit); - } -} - void guab_state::output1_w(uint8_t data) { m_leds[0] = BIT(data, 0); // cash in (ten up: cash in) @@ -435,15 +411,6 @@ m_leds[47] = BIT(data, 7); } -static DEVICE_INPUT_DEFAULTS_START( acia_1_rs232_defaults ) - DEVICE_INPUT_DEFAULTS("RS232_TXBAUD", 0xff, RS232_BAUD_9600) - DEVICE_INPUT_DEFAULTS("RS232_RXBAUD", 0xff, RS232_BAUD_9600) - DEVICE_INPUT_DEFAULTS("RS232_STARTBITS", 0xff, RS232_STARTBITS_1) - DEVICE_INPUT_DEFAULTS("RS232_DATABITS", 0xff, RS232_DATABITS_8) - DEVICE_INPUT_DEFAULTS("RS232_PARITY", 0xff, RS232_PARITY_ODD) - DEVICE_INPUT_DEFAULTS("RS232_STOPBITS", 0xff, RS232_STOPBITS_1) -DEVICE_INPUT_DEFAULTS_END - //************************************************************************** // AUDIO @@ -494,6 +461,7 @@ screen.set_screen_update(FUNC(guab_state::screen_update_guab)); screen.set_palette(m_palette); + PALETTE(config, m_palette).set_entries(ef9369_device::NUMCOLORS); EF9369(config, "ef9369").set_color_update_callback(FUNC(guab_state::ef9369_color_update)); @@ -536,17 +504,15 @@ ppi4.in_pc_callback().set(FUNC(guab_state::watchdog_r)); ppi4.out_pc_callback().set(FUNC(guab_state::watchdog_w)); + bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0)); + acia6850_device &acia1(ACIA6850(config, "acia6850_1", 0)); - acia1.txd_handler().set("rs232_1", FUNC(rs232_port_device::write_txd)); - acia1.rts_handler().set("rs232_1", FUNC(rs232_port_device::write_rts)); + acia1.txd_handler().set("bacta", FUNC(bacta_datalogger_device::write_txd)); acia1.irq_handler().set_inputline("maincpu", 4); - rs232_port_device &rs232(RS232_PORT(config, "rs232_1", default_rs232_devices, nullptr)); - rs232.rxd_handler().set("acia6850_1", FUNC(acia6850_device::write_rxd)); - rs232.cts_handler().set("acia6850_1", FUNC(acia6850_device::write_cts)); - rs232.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(acia_1_rs232_defaults)); + bacta.rxd_handler().set("acia6850_1", FUNC(acia6850_device::write_rxd)); - clock_device &acia_clock(CLOCK(config, "acia_clock", 153600)); // source? the ptm doesn't seem to output any common baud values + clock_device &acia_clock(CLOCK(config, "acia_clock", 19200)); // source? the ptm doesn't seem to output any common baud values acia_clock.signal_handler().set("acia6850_1", FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append("acia6850_1", FUNC(acia6850_device::write_rxc)); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/hec2hrp.cpp mame-0.224+dfsg.1/src/mame/drivers/hec2hrp.cpp --- mame-0.223+dfsg.1/src/mame/drivers/hec2hrp.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/hec2hrp.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -11,20 +11,31 @@ Hector 1 Interact - These machines can load and run cassettes for the interact / hector1. +The first model (Interact)was made by Interact Electronics Inc of Ann Arbor, +Michigan. However, just after launch, the company collapsed. The liquidator, +Protecto, sold some and MicroVideo sold the rest. MicroVideo continued to +develop but went under 2 years later. Meanwhile, the French company +Lambda Systems sold a clone called the Victor Lambda. But, like the +Americans, Lambda Systems also collapsed. Another French company, +Micronique, purchased all remaining stock and intellectual rights +from Lambda Systems, Microvideo and Interact, and the computer becomes +wholly French. The computer has a name change, becoming the Hector. +This in turn gets upgraded (2HR, HRX, MX). The line is finally +retired in about 1985. + +These machines can load and run cassettes for the interact / hector1. hec2hr - press 2 then 1 hec2hrp - press 2 then 1 - hec2hrx - press 5 then 1 - hec2mx40 - press 5 then 1 - hec2mx80 - not compatible victor - press R then L - 12/05/2009 Skeleton driver - Micko : mmicko@gmail.com - 31/06/2009 Video - Robbbert +These machines will load the cassette but the keys don't work + hec2hrx, hec2mx40, hec2mdhrx - press 5 then 1 - 29/10/2009 Update skeleton to functional machine - by yo_fr (jj.stac @ aliceadsl.fr) +This machine not compatible + hec2mx80 +2009-05-12 Skeleton driver - Micko : mmicko@gmail.com +2009-10-29 Update skeleton to functional machine by yo_fr (jj.stac @ aliceadsl.fr) => add Keyboard, => add color, => add cassette, @@ -33,19 +44,19 @@ => add BR/HR switching => add bank switch for HRX => add device MX80c and bank switching for the ROM - Importante note : Keyboard emulation code obtained from + Important note : Keyboard emulation code obtained from DChector project : http://dchector.free.fr/ made by DanielCoulom (thanks Daniel) - 03/01/2010 Update and cleanup by yo_fr (jj.stac@aliceadsl.fr) +2010-01-03 Update and cleanup by yo_fr (jj.stac@aliceadsl.fr) => add the port mapping for keyboard - 20/11/2010 : synchronization between uPD765 and Z80 are now OK, CP/M running! JJStacino - 11/11/2011 : add minidisk (3.5") support JJStacino +2010-11-20 : synchronization between uPD765 and Z80 are now OK, CP/M running! JJStacino +2011-11-11 : add minidisk (3.5") support JJStacino - for more information about these machines, see the DChector project : http://dchector.free.fr/ made by DanielCoulom + For more information about these machines, see the DChector project : http://dchector.free.fr/ made by DanielCoulom (thanks to Daniel) and Yves site : http://hectorvictor.free.fr/ (thanks too Yves!) - TODO : Add cartridge functionality - Adjust the one-shot and A/D timing (sn76477) +TODO : Add cartridge functionality + Adjust the one-shot and A/D timing (sn76477) ****************************************************************************/ /* Joystick 1 : @@ -75,101 +86,59 @@ #include "includes/hec2hrp.h" #include "cpu/z80/z80.h" -#include "imagedev/cassette.h" -#include "imagedev/printer.h" -#include "sound/discrete.h" /* for 1 Bit sound*/ - +#include "cpu/i8085/i8085.h" #include "screen.h" #include "speaker.h" - #include "formats/hect_dsk.h" #include "formats/hect_tap.h" #include "formats/hector_minidisc.h" -void hec2hrp_state::hecdisc2_mem(address_map &map) -{ - map.unmap_value_high(); - - map(0x0000, 0x3fff).bankrw("bank3"); /* ROM at start up, RAM later */ - map(0x4000, 0xffff).ram(); -} - -void hec2hrp_state::hecdisc2_io(address_map &map) +void hec2hrp_state::interact_mem(address_map &map) { map.unmap_value_high(); - map.global_mask(0xff); - // ROM page handling - map(0x000, 0x00f).rw(FUNC(hec2hrp_state::disc2_io00_port_r), FUNC(hec2hrp_state::disc2_io00_port_w)); - // RS232 - 8251 comms handling - map(0x020, 0x02f).rw(FUNC(hec2hrp_state::disc2_io20_port_r), FUNC(hec2hrp_state::disc2_io20_port_w)); - // Hector comms handling - map(0x030, 0x03f).rw(FUNC(hec2hrp_state::disc2_io30_port_r), FUNC(hec2hrp_state::disc2_io30_port_w)); - map(0x040, 0x04f).rw(FUNC(hec2hrp_state::disc2_io40_port_r), FUNC(hec2hrp_state::disc2_io40_port_w)); - map(0x050, 0x05f).rw(FUNC(hec2hrp_state::disc2_io50_port_r), FUNC(hec2hrp_state::disc2_io50_port_w)); - // uPD765 link - map(0x060, 0x061).m(m_upd_fdc, FUNC(upd765a_device::map)); - map(0x070, 0x070).mirror(0x00f).rw(m_upd_fdc, FUNC(upd765a_device::dma_r), FUNC(upd765a_device::dma_w)); + /* Main ROM page*/ + map(0x0000, 0x3fff).rom(); + map(0x1000, 0x1000).w(FUNC(hec2hrp_state::color_a_w)); /* Color c0/c1*/ + map(0x1800, 0x1800).w(FUNC(hec2hrp_state::color_b_w)); /* Color c2/c3*/ + map(0x2000, 0x2003).w(FUNC(hec2hrp_state::sn_2000_w)); /* Sound*/ + map(0x2800, 0x2803).w(FUNC(hec2hrp_state::sn_2800_w)); /* Sound*/ + map(0x3000, 0x3000).rw(FUNC(hec2hrp_state::cassette_r), FUNC(hec2hrp_state::sn_3000_w));/* Write necessary*/ + map(0x3800, 0x3807).rw(FUNC(hec2hrp_state::keyboard_r), FUNC(hec2hrp_state::keyboard_w)); /* Keyboard*/ + map(0x4000, 0x49ff).ram().share("videoram"); + map(0x4A00, 0xffff).ram(); } void hec2hrp_state::hec2hrp_mem(address_map &map) { map.unmap_value_high(); - /* Main ROM page*/ - map(0x0000, 0x3fff).rom(); - - /* Hardware address mapping */ - map(0x0800, 0x0808).w(FUNC(hec2hrp_state::switch_bank_w));/* Bank handling */ - map(0x1000, 0x1000).w(FUNC(hec2hrp_state::color_a_w)); /* Color c0/c1 */ - map(0x1800, 0x1800).w(FUNC(hec2hrp_state::color_b_w)); /* Color c2/c3 */ - map(0x2000, 0x2003).w(FUNC(hec2hrp_state::sn_2000_w)); /* Sound */ - map(0x2800, 0x2803).w(FUNC(hec2hrp_state::sn_2800_w)); /* Sound */ - map(0x3000, 0x3000).rw(FUNC(hec2hrp_state::cassette_r), FUNC(hec2hrp_state::sn_3000_w)); /* Write necessary */ - map(0x3800, 0x3807).rw(FUNC(hec2hrp_state::keyboard_r), FUNC(hec2hrp_state::keyboard_w)); /* Keyboard */ - - /* Video br mapping */ - map(0x4000, 0x49ff).ram().share("videoram"); - /* contiguous RAM */ - map(0x4A00, 0xbfff).ram(); - /* from 0xC000 to 0xFFFF => Bank Ram for video and data */ - map(0xc000, 0xffff).ram().share("hector_videoram"); + interact_mem(map); + map(0x0800, 0x0808).w(FUNC(hec2hrp_state::switch_bank_w)); // bank management + map(0xc000, 0xffff).ram().share("hector_videoram"); /* => Bank Ram for video and data */ } void hec2hrp_state::hec2hrx_mem(address_map &map) { map.unmap_value_high(); - /* Main ROM page*/ - map(0x0000, 0x3fff).bankr("bank2"); - - /* Hardware address mapping*/ - map(0x0800, 0x0808).w(FUNC(hec2hrp_state::switch_bank_w));/* Bank handling */ - map(0x1000, 0x1000).w(FUNC(hec2hrp_state::color_a_w)); /* Color c0/c1 */ - map(0x1800, 0x1800).w(FUNC(hec2hrp_state::color_b_w)); /* Color c2/c3 */ - map(0x2000, 0x2003).w(FUNC(hec2hrp_state::sn_2000_w)); /* Sound */ - map(0x2800, 0x2803).w(FUNC(hec2hrp_state::sn_2800_w)); /* Sound */ - map(0x3000, 0x3000).rw(FUNC(hec2hrp_state::cassette_r), FUNC(hec2hrp_state::sn_3000_w)); /* Write necessary */ - map(0x3800, 0x3807).rw(FUNC(hec2hrp_state::keyboard_r), FUNC(hec2hrp_state::keyboard_w)); /* Keyboard */ - - /* Video br mapping */ - map(0x4000, 0x49ff).ram().share("videoram"); - /* contiguous RAM */ - map(0x4A00, 0xbfff).ram(); - /* from 0xC000 to 0xFFFF => Bank Ram for video and data */ - map(0xc000, 0xffff).bankrw("bank1").share("hector_videoram"); + hec2hrp_mem(map); + map(0x0000, 0x3fff).bankr("bank2"); /* Main ROM page*/ + map(0x3000, 0x3000).rw(FUNC(hec2hrp_state::cassette_r), FUNC(hec2hrp_state::sn_3000_w));/* Write necessary*/ + map(0x3800, 0x3807).rw(FUNC(hec2hrp_state::keyboard_r), FUNC(hec2hrp_state::keyboard_w)); /* Keyboard*/ + map(0xc000, 0xffff).bankrw("bank1").share("hector_videoram"); /* => Bank Ram for video and data */ } void hec2hrp_state::hec2hrp_io(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); - map(0x000, 0x0ff).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); + map(0x00, 0xff).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); } void hec2hrp_state::hec2hrx_io(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); - map(0x0f0, 0x0ff).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); + map(0xf0, 0xff).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); } void hec2hrp_state::hec2mdhrx_io(address_map &map) @@ -180,27 +149,54 @@ // Minidisc commands and changing the rom page */ map(0x04, 0x07).rw(m_minidisc_fdc, FUNC(fd1793_device::read), FUNC(fd1793_device::write)); map(0x08, 0x08).w(FUNC(hec2hrp_state::minidisc_control_w)); - map(0x0f0, 0x0ff).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); + map(0xf0, 0xff).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); } void hec2hrp_state::hec2mx40_io(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); - map(0x000, 0x0ef).w(FUNC(hec2hrp_state::mx40_io_port_w)); - map(0x0f0, 0x0f3).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); + map(0x00, 0xef).w(FUNC(hec2hrp_state::mx40_io_port_w)); + map(0xf0, 0xf3).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); } void hec2hrp_state::hec2mx80_io(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); - map(0x000, 0x0ef).w(FUNC(hec2hrp_state::mx80_io_port_w)); - map(0x0f0, 0x0f3).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); + map(0x00, 0xef).w(FUNC(hec2hrp_state::mx80_io_port_w)); + map(0xf0, 0xf3).rw(FUNC(hec2hrp_state::io_8255_r), FUNC(hec2hrp_state::io_8255_w)); } +// 2nd cpu +void hec2hrp_state::hecdisc2_mem(address_map &map) +{ + map.unmap_value_high(); + + map(0x0000, 0x3fff).bankrw("bank3"); /* ROM at start up, RAM later */ + map(0x4000, 0xffff).ram(); +} + +void hec2hrp_state::hecdisc2_io(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); + // ROM page handling + map(0x00, 0x0f).rw(FUNC(hec2hrp_state::disc2_io00_port_r), FUNC(hec2hrp_state::disc2_io00_port_w)); + // RS232 - 8251 comms handling + map(0x20, 0x2f).rw(FUNC(hec2hrp_state::disc2_io20_port_r), FUNC(hec2hrp_state::disc2_io20_port_w)); + // Hector comms handling + map(0x30, 0x3f).rw(FUNC(hec2hrp_state::disc2_io30_port_r), FUNC(hec2hrp_state::disc2_io30_port_w)); + map(0x40, 0x4f).rw(FUNC(hec2hrp_state::disc2_io40_port_r), FUNC(hec2hrp_state::disc2_io40_port_w)); + map(0x50, 0x5f).rw(FUNC(hec2hrp_state::disc2_io50_port_r), FUNC(hec2hrp_state::disc2_io50_port_w)); + // uPD765 link + map(0x60, 0x61).m(m_upd_fdc, FUNC(upd765a_device::map)); + map(0x70, 0x70).mirror(0x0f).rw(m_upd_fdc, FUNC(upd765a_device::dma_r), FUNC(upd765a_device::dma_w)); +} + + /* Input ports */ static INPUT_PORTS_START( hec2hrp ) /* keyboard input */ @@ -292,6 +288,11 @@ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) INPUT_PORTS_END +MACHINE_RESET_MEMBER(hec2hrp_state,interact) +{ + hector_reset(0, 0); +} + MACHINE_START_MEMBER(hec2hrp_state,hec2hrp) { hector_init(); @@ -305,30 +306,30 @@ MACHINE_START_MEMBER(hec2hrp_state,hec2hrx) { - uint8_t *RAM = memregion("maincpu")->base(); + uint8_t *r = m_ram->pointer(); //Patch rom possible ! - //RAMD2[0xff6b] = 0x0ff; // force verbose mode + //RAMD2[0xff6b] = 0xff; // force verbose mode // Memory install for bank switching - membank("bank1")->configure_entry(HECTOR_BANK_PROG , &RAM[0xc000] ); - membank("bank1")->configure_entry(HECTOR_BANK_VIDEO, m_hector_videoram_hrx); // Video RAM + m_bank[1]->configure_entry(HECTOR_BANK_PROG, r+0x10000); + m_bank[1]->configure_entry(HECTOR_BANK_VIDEO, m_hector_videoram_hrx); // Video RAM // Set bank HECTOR_BANK_PROG as basic bank - membank("bank1")->set_entry(HECTOR_BANK_PROG); + m_bank[1]->set_entry(HECTOR_BANK_PROG); // MX-specific - membank("bank2")->configure_entry(HECTORMX_BANK_PAGE0 , &RAM[0x0000]); - membank("bank2")->configure_entry(HECTORMX_BANK_PAGE1 , memregion("page1")->base() ); // ROM page 1 - membank("bank2")->configure_entry(HECTORMX_BANK_PAGE2 , memregion("page2")->base() ); // ROM page 2 - membank("bank2")->set_entry(HECTORMX_BANK_PAGE0); + m_bank[2]->configure_entry(HECTORMX_BANK_PAGE0, m_rom); + m_bank[2]->configure_entry(HECTORMX_BANK_PAGE1, memregion("page1")->base() ); // ROM page 1 + m_bank[2]->configure_entry(HECTORMX_BANK_PAGE2, memregion("page2")->base() ); // ROM page 2 + m_bank[2]->set_entry(HECTORMX_BANK_PAGE0); // Disk II-specific - membank("bank3")->configure_entry(DISCII_BANK_ROM , memregion("rom_disc2")->base() ); // ROM - membank("bank3")->configure_entry(DISCII_BANK_RAM , memregion("disc2mem" )->base() ); // RAM - membank("bank3")->set_entry(DISCII_BANK_ROM); + m_bank[3]->configure_entry(DISCII_BANK_ROM, memregion("rom_disc2")->base() ); // ROM + m_bank[3]->configure_entry(DISCII_BANK_RAM, r); // RAM + m_bank[3]->set_entry(DISCII_BANK_ROM); // As video HR ram is in bank, use external memory - m_hector_videoram.set_target(m_hector_videoram_hrx,m_hector_videoram.bytes()); + m_hector_vram.set_target(m_hector_videoram_hrx,m_hector_vram.bytes()); hector_init(); } @@ -337,23 +338,23 @@ /*****************************************************************************/ //minidisc { - uint8_t *RAM = memregion("maincpu")->base(); + uint8_t *r = m_ram->pointer(); // Memory install for bank switching - membank("bank1")->configure_entry(HECTOR_BANK_PROG, &RAM[0xc000]); - membank("bank1")->configure_entry(HECTOR_BANK_VIDEO, m_hector_videoram_hrx); // Video RAM + m_bank[1]->configure_entry(HECTOR_BANK_PROG, r+0x10000); + m_bank[1]->configure_entry(HECTOR_BANK_VIDEO, m_hector_videoram_hrx); // Video RAM // Set HECTOR_BANK_PROG as basic bank - membank("bank1")->set_entry(HECTOR_BANK_PROG); + m_bank[1]->set_entry(HECTOR_BANK_PROG); //Here, bank 5 is not used for the language switch but for the floppy ROM // Mini disk-specific - membank("bank2")->configure_entry(HECTOR_BANK_BASE, &RAM[0x0000]); // ROM base page - membank("bank2")->configure_entry(HECTOR_BANK_DISC, memregion("page2")->base() ); // ROM mini disc page - membank("bank2")->set_entry(HECTOR_BANK_BASE); + m_bank[2]->configure_entry(HECTOR_BANK_BASE, m_rom); // ROM base page + m_bank[2]->configure_entry(HECTOR_BANK_DISC, memregion("page2")->base() ); // ROM mini disc page + m_bank[2]->set_entry(HECTOR_BANK_BASE); // As video HR ram is in bank, use external memory - m_hector_videoram.set_target(m_hector_videoram_hrx,m_hector_videoram.bytes()); + m_hector_vram.set_target(m_hector_videoram_hrx,m_hector_vram.bytes()); hector_init(); } @@ -361,11 +362,11 @@ MACHINE_RESET_MEMBER(hec2hrp_state,hec2hrx) { // Hector Memory - membank("bank1")->set_entry(HECTOR_BANK_PROG); - membank("bank2")->set_entry(HECTORMX_BANK_PAGE0); + m_bank[1]->set_entry(HECTOR_BANK_PROG); + m_bank[2]->set_entry(HECTORMX_BANK_PAGE0); // DISK II Memory - membank("bank3")->set_entry(DISCII_BANK_ROM); + m_bank[3]->set_entry(DISCII_BANK_ROM); hector_reset(1, 1); hector_disc2_reset(); @@ -375,82 +376,72 @@ MACHINE_RESET_MEMBER(hec2hrp_state,hec2mdhrx) { // Hector Memory - membank("bank1")->set_entry(HECTOR_BANK_PROG); - membank("bank2")->set_entry(HECTORMX_BANK_PAGE0); + m_bank[1]->set_entry(HECTOR_BANK_PROG); + m_bank[2]->set_entry(HECTORMX_BANK_PAGE0); hector_reset(1, 0); } -// mini disk interface - -FLOPPY_FORMATS_MEMBER( hec2hrp_state::minidisc_formats ) - FLOPPY_HMD_FORMAT -FLOPPY_FORMATS_END - -static void minidisc_floppies(device_slot_interface &device) -{ - device.option_add("dd", FLOPPY_35_DD); -} - - -void hec2hrp_state::hec2hr(machine_config &config) +void hec2hrp_state::interact_common(machine_config &config) { - Z80(config, m_maincpu, 5_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrp_mem); - m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrp_io); - m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ - - MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) + MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,interact) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) + /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(50); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ - screen.set_size(512, 230); - screen.set_visarea(0, 243, 0, 227); - screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256, 79); + screen.set_visarea(0, 112, 0, 77); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_interact)); screen.set_palette(m_palette); - PALETTE(config, m_palette).set_entries(16); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) + PALETTE(config, m_palette, FUNC(hec2hrp_state::init_palette), 16); /* 8 colours, but only 4 at a time*/ hector_audio(config); CASSETTE(config, m_cassette); m_cassette->set_formats(hector_cassette_formats); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); + m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); + m_cassette->set_interface("interact_cass"); + SOFTWARE_LIST(config, "cass_list").set_original("interact"); + + /* printer */ PRINTER(config, m_printer, 0); } -void hec2hrp_state::hec2hrp(machine_config &config) +void hec2hrp_state::interact(machine_config &config) { - Z80(config, m_maincpu, 5_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrp_mem); - m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrp_io); - m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ + /* basic machine hardware */ + I8080(config, m_maincpu, XTAL(2'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::interact_mem); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); - MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) - MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) + interact_common(config); +} - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(50); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ - screen.set_size(512, 230); - screen.set_visarea(0, 243, 0, 227); - screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); - screen.set_palette(m_palette); +void hec2hrp_state::hector1(machine_config &config) +{ + /* basic machine hardware */ + Z80(config, m_maincpu, XTAL(1'750'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::interact_mem); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); - PALETTE(config, m_palette).set_entries(16); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) + interact_common(config); +} - hector_audio(config); - CASSETTE(config, m_cassette); - m_cassette->set_formats(hector_cassette_formats); - m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); +// mini disk interface - PRINTER(config, m_printer, 0); +FLOPPY_FORMATS_MEMBER( hec2hrp_state::minidisc_formats ) + FLOPPY_HMD_FORMAT +FLOPPY_FORMATS_END + +static void minidisc_floppies(device_slot_interface &device) +{ + device.option_add("dd", FLOPPY_35_DD); } static void hector_floppies(device_slot_interface &device) @@ -458,26 +449,16 @@ device.option_add("525hd", FLOPPY_525_HD); } -void hec2hrp_state::hec2mx40(machine_config &config) + +void hec2hrp_state::hec2hr(machine_config &config) { Z80(config, m_maincpu, 5_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); - m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx40_io); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrp_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrp_io); m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ - Z80(config, m_disc2cpu, 4_MHz_XTAL); - m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); - m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); - - UPD765A(config, m_upd_fdc, 8'000'000, false, true); - m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); - m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); - - FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - - MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) + MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) + MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); @@ -487,28 +468,29 @@ screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); screen.set_palette(m_palette); - PALETTE(config, m_palette).set_entries(16); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) + PALETTE(config, m_palette, FUNC(hec2hrp_state::init_palette), 16); /* 8 colours, but only 4 at a time*/ hector_audio(config); CASSETTE(config, m_cassette); m_cassette->set_formats(hector_cassette_formats); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); + m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); + m_cassette->set_interface("interact_cass"); PRINTER(config, m_printer, 0); -} + /* internal ram */ + RAM(config, RAM_TAG).set_default_size("80K").set_default_value(0x00); + + SOFTWARE_LIST(config, "cass_list").set_original("interact"); +} void hec2hrp_state::hec2hrx(machine_config &config) { - Z80(config, m_maincpu, 5_MHz_XTAL); + hec2hr(config); m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrx_io); - m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ - - MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) Z80(config, m_disc2cpu, 4_MHz_XTAL); m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); @@ -518,143 +500,91 @@ m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); - FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(50); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ - screen.set_size(512, 230); - screen.set_visarea(0, 243, 0, 227); - screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); - screen.set_palette(m_palette); - - PALETTE(config, m_palette).set_entries(16); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) + FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats).enable_sound(true); - hector_audio(config); + MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) + MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) +} - CASSETTE(config, m_cassette); - m_cassette->set_formats(hector_cassette_formats); - m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); +void hec2hrp_state::hec2mx40(machine_config &config) +{ + hec2hrx(config); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx40_io); +} - PRINTER(config, m_printer, 0); +void hec2hrp_state::hec2mx80(machine_config &config) +{ + hec2hrx(config); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx80_io); } void hec2hrp_state::hec2mdhrx(machine_config &config) { - Z80(config, m_maincpu, 5_MHz_XTAL); + hec2hr(config); m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mdhrx_io); - m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2mdhrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2mdhrx) /* 3.5" ("mini") disc */ FD1793(config, m_minidisc_fdc, 1_MHz_XTAL); - FLOPPY_CONNECTOR(config, "wd179x:0", minidisc_floppies, "dd", hec2hrp_state::minidisc_formats); - - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(50); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ - screen.set_size(512, 230); - screen.set_visarea(0, 243, 0, 227); - screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); - screen.set_palette(m_palette); - - PALETTE(config, m_palette).set_entries(16); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) - - hector_audio(config); - - CASSETTE(config, m_cassette); - m_cassette->set_formats(hector_cassette_formats); - m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); - - PRINTER(config, m_printer, 0); + FLOPPY_CONNECTOR(config, "wd179x:0", minidisc_floppies, "dd", hec2hrp_state::minidisc_formats).enable_sound(true); } -void hec2hrp_state::hec2mx80(machine_config &config) -{ - Z80(config, m_maincpu, 5_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); - m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx80_io); - m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ - - MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) - - Z80(config, m_disc2cpu, 4_MHz_XTAL); - m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); - m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); - - UPD765A(config, m_upd_fdc, 8'000'000, false, true); - m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); - m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); - - FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(50); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ - screen.set_size(512, 230); - screen.set_visarea(0, 243, 0, 227); - screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); - screen.set_palette(m_palette); - - PALETTE(config, m_palette).set_entries(16); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) - - hector_audio(config); - - CASSETTE(config, m_cassette); - m_cassette->set_formats(hector_cassette_formats); - m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); +ROM_START( interact ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "interact.rom", 0x0000, 0x0800, CRC(1aa50444) SHA1(405806c97378abcf7c7b0d549430c78c7fc60ba2)) + // cartridge space 0800-0FFF, first byte must be 00. +ROM_END - PRINTER(config, m_printer, 0); -} +ROM_START( hector1 ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "hector1.rom", 0x0000, 0x1000, CRC(3be6628b) SHA1(1c106d6732bed743d8283d39e5b8248271f18c42)) +ROM_END ROM_START( hec2hr ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "2hr.bin", 0x0000, 0x1000, CRC(84b9e672) SHA1(8c8b089166122eee565addaed10f84c5ce6d849b)) + // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) ROM_END ROM_START( victor ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "victor.rom", 0x0000, 0x1000, CRC(d1e9508f) SHA1(d0f1bdcd39917fafc8859223ab38eee2a7dc85ff)) + // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) ROM_END ROM_START( hec2hrp ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "hector2hrp.rom", 0x0000, 0x4000, CRC(983f52e4) SHA1(71695941d689827356042ee52ffe55ce7e6b8ecd)) + // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) - ROM_REGION( 0x10000, "disc2cpu", ROMREGION_ERASEFF ) + // 2nd cpu ROM_REGION( 0x04000, "rom_disc2", ROMREGION_ERASEFF ) ROM_END ROM_START( hec2hrx ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "hector2hrx.rom", 0x0000, 0x4000, CRC(f047c521) SHA1(744336b2acc76acd7c245b562bdc96dca155b066)) + // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) - ROM_REGION( 0x10000, "disc2cpu", ROMREGION_ERASEFF ) - + // 2nd cpu ROM_REGION( 0x04000, "rom_disc2", ROMREGION_ERASEFF ) ROM_LOAD( "d800k.bin" , 0x0000,0x1000, CRC(831bd584) SHA1(9782ee58f570042608d9d568b2c3fc4c6d87d8b9)) - ROM_REGION( 0x10000, "disc2mem", ROMREGION_ERASE00 ) ROM_END // minidisc ROM_START( hec2mdhrx ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "mdic1.bin" , 0x0000,0x2000, CRC(ddda1065) SHA1(e7bba14a72605238d2f8299da029b8320a563254)) ROM_LOAD( "mdicmb.bin" , 0x2000,0x2000, CRC(d8090747) SHA1(f2925b68002307562e2ea5e36b740e5458f0f0eb)) @@ -665,40 +595,42 @@ ROM_END ROM_START( hec2mx80 ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "mx80c_page0.rom" , 0x0000,0x4000, CRC(a75945cf) SHA1(542391e482271be0997b069cf13c8b5dae28feec)) + // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_LOAD( "mx80c_page1.rom", 0x0000, 0x4000, CRC(4615f57c) SHA1(5de291bf3ae0320915133b99f1a088cb56c41658)) ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) ROM_LOAD( "mx80c_page2.rom" , 0x0000,0x4000, CRC(2d5d975e) SHA1(48307132e0f3fad0262859bb8142d108f694a436)) - + // 2nd cpu ROM_REGION( 0x04000, "rom_disc2", ROMREGION_ERASEFF ) ROM_LOAD( "d800k.bin" , 0x0000,0x1000, CRC(831bd584) SHA1(9782ee58f570042608d9d568b2c3fc4c6d87d8b9)) - ROM_REGION( 0x10000, "disc2mem", ROMREGION_ERASE00 ) ROM_END ROM_START( hec2mx40 ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "mx40c_page0.rom" , 0x0000,0x4000, CRC(9bb5566d) SHA1(0c8c2e396ec8eb995d2b621abe06b6968ca5d0aa)) + // option roms ROM_REGION( 0x4000, "page1", ROMREGION_ERASEFF ) ROM_LOAD( "mx40c_page1.rom", 0x0000, 0x4000, CRC(192a76fa) SHA1(062aa6df0b554b85774d4b5edeea8496a4baca35)) ROM_REGION( 0x4000, "page2", ROMREGION_ERASEFF ) ROM_LOAD( "mx40c_page2.rom" , 0x0000,0x4000, CRC(ef1b2654) SHA1(66624ea040cb7ede4720ad2eca0738d0d3bad89a)) - + // 2nd cpu ROM_REGION( 0x04000, "rom_disc2", ROMREGION_ERASEFF ) // ROM_LOAD( "d360k.bin" , 0x0000,0x4000, CRC(2454eacb) SHA1(dc0d5a7d5891a7e422d9d142a2419527bb15dfd5)) ROM_LOAD( "d800k.bin" , 0x0000,0x1000, CRC(831bd584) SHA1(9782ee58f570042608d9d568b2c3fc4c6d87d8b9)) // ROM_LOAD( "d200k.bin" , 0x0000,0x4000, CRC(e2801377) SHA1(0926df5b417ecd8013e35c71b76780c5a25c1cbf)) - ROM_REGION( 0x10000, "disc2mem", ROMREGION_ERASE00 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP(1983, hec2hrp, 0, interact, hec2hrp, hec2hrp, hec2hrp_state, empty_init, "Micronique", "Hector 2HR+", MACHINE_IMPERFECT_SOUND) -COMP(1980, victor, hec2hrp, 0, hec2hrp, hec2hrp, hec2hrp_state, empty_init, "Micronique", "Victor", MACHINE_IMPERFECT_SOUND) -COMP(1983, hec2hr, hec2hrp, 0, hec2hr, hec2hrp, hec2hrp_state, empty_init, "Micronique", "Hector 2HR", MACHINE_IMPERFECT_SOUND) -COMP(1984, hec2hrx, hec2hrp, 0, hec2hrx, hec2hrp, hec2hrp_state, empty_init, "Micronique", "Hector HRX + Disc2", MACHINE_IMPERFECT_SOUND) -COMP(1985, hec2mdhrx, hec2hrp, 0, hec2mdhrx, hec2hrp, hec2hrp_state, empty_init, "Micronique", "Hector HRX + mini Disc", MACHINE_IMPERFECT_SOUND) -COMP(1985, hec2mx80, hec2hrp, 0, hec2mx80, hec2hrp, hec2hrp_state, empty_init, "Micronique", "Hector MX 80c + Disc2", MACHINE_IMPERFECT_SOUND) -COMP(1985, hec2mx40, hec2hrp, 0, hec2mx40, hec2hrp, hec2hrp_state, empty_init, "Micronique", "Hector MX 40c + Disc2", MACHINE_IMPERFECT_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP(1979, interact, 0, 0, interact, hec2hrp, hec2hrp_state, init_interact, "Interact Electronics", "Interact Family Computer", MACHINE_IMPERFECT_SOUND) +COMP(1983, hector1, interact, 0, hector1, hec2hrp, hec2hrp_state, init_interact, "Micronique", "Hector 1", MACHINE_IMPERFECT_SOUND) +COMP(1983, hec2hrp, 0, interact, hec2hr, hec2hrp, hec2hrp_state, init_interact, "Micronique", "Hector 2HR+", MACHINE_IMPERFECT_SOUND) +COMP(1980, victor, hec2hrp, 0, hec2hr, hec2hrp, hec2hrp_state, init_victor, "Micronique", "Victor", MACHINE_IMPERFECT_SOUND) +COMP(1983, hec2hr, hec2hrp, 0, hec2hr, hec2hrp, hec2hrp_state, init_victor, "Micronique", "Hector 2HR", MACHINE_IMPERFECT_SOUND) +COMP(1984, hec2hrx, hec2hrp, 0, hec2hrx, hec2hrp, hec2hrp_state, init_hrx, "Micronique", "Hector HRX + Disc2", MACHINE_IMPERFECT_SOUND) +COMP(1985, hec2mdhrx, hec2hrp, 0, hec2mdhrx, hec2hrp, hec2hrp_state, init_mdhrx, "Micronique", "Hector HRX + mini Disc", MACHINE_IMPERFECT_SOUND) +COMP(1985, hec2mx80, hec2hrp, 0, hec2mx80, hec2hrp, hec2hrp_state, init_mx40, "Micronique", "Hector MX 80c + Disc2", MACHINE_IMPERFECT_SOUND) +COMP(1985, hec2mx40, hec2hrp, 0, hec2mx40, hec2hrp, hec2hrp_state, init_mx40, "Micronique", "Hector MX 40c + Disc2", MACHINE_IMPERFECT_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/hng64.cpp mame-0.224+dfsg.1/src/mame/drivers/hng64.cpp --- mame-0.223+dfsg.1/src/mame/drivers/hng64.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/hng64.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2192,7 +2192,7 @@ hng64(config); hng64_lamps_device &lamps(HNG64_LAMPS(config, m_lamps, 0)); - lamps.lamps6_out_cb().set(FUNC(hng64_state::hng64_shoot_lamps6_w)); // start lamps (some misisng?!) + lamps.lamps6_out_cb().set(FUNC(hng64_state::hng64_shoot_lamps6_w)); // start lamps (some missing?!) lamps.lamps7_out_cb().set(FUNC(hng64_state::hng64_shoot_lamps7_w)); // gun lamps } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/hp9k_3xx.cpp mame-0.224+dfsg.1/src/mame/drivers/hp9k_3xx.cpp --- mame-0.223+dfsg.1/src/mame/drivers/hp9k_3xx.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/hp9k_3xx.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -331,6 +331,8 @@ ptm.irq_callback().set_inputline("maincpu", M68K_IRQ_6); SOFTWARE_LIST(config, "flop_list").set_original("hp9k3xx_flop"); + SOFTWARE_LIST(config, "cdrom_list").set_original("hp9k3xx_cdrom"); + SOFTWARE_LIST(config, "hdd_list").set_original("hp9k3xx_hdd"); config.set_default_layout(layout_hp9k_3xx); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/hp_ipc.cpp mame-0.224+dfsg.1/src/mame/drivers/hp_ipc.cpp --- mame-0.223+dfsg.1/src/mame/drivers/hp_ipc.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/hp_ipc.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -373,6 +373,8 @@ #include "speaker.h" #include "sound/dac.h" #include "sound/volt_reg.h" +#include "machine/input_merger.h" +#include "bus/hp_ipc_io/hp_ipc_io.h" #include "emupal.h" #include "screen.h" @@ -391,6 +393,12 @@ , m_screen(*this, "screen") , m_spkr(*this , "spkr") , m_dac(*this , "dac") + , m_irq3_merger(*this , "merge_irq3") + , m_irq4_merger(*this , "merge_irq4") + , m_irq5_merger(*this , "merge_irq5") + , m_irq6_merger(*this , "merge_irq6") + , m_io_slot_a(*this , "slot_a") + , m_io_slot_b(*this , "slot_b") { } void hp_ipc_base(machine_config &config); @@ -439,6 +447,12 @@ required_device m_screen; required_device m_spkr; required_device m_dac; + required_device m_irq3_merger; + required_device m_irq4_merger; + required_device m_irq5_merger; + required_device m_irq6_merger; + required_device m_io_slot_a; + required_device m_io_slot_b; uint32_t m_mmu[4], m_lowest_ram_addr; uint16_t *m_internal_ram; @@ -688,22 +702,22 @@ WRITE_LINE_MEMBER(hp_ipc_state::irq_3) { - m_maincpu->set_input_line(M68K_IRQ_3, state); + m_irq3_merger->in_w<0>(state); } WRITE_LINE_MEMBER(hp_ipc_state::irq_4) { - m_maincpu->set_input_line(M68K_IRQ_4, state); + m_irq4_merger->in_w<0>(state); } WRITE_LINE_MEMBER(hp_ipc_state::irq_5) { - m_maincpu->set_input_line(M68K_IRQ_5, state); + m_irq5_merger->in_w<0>(state); } WRITE_LINE_MEMBER(hp_ipc_state::irq_6) { - m_maincpu->set_input_line(M68K_IRQ_6, state); + m_irq6_merger->in_w<0>(state); } WRITE_LINE_MEMBER(hp_ipc_state::irq_7) @@ -720,6 +734,9 @@ m_lowest_ram_addr = 0x3c0000 - (m_ram->size() >> 1); m_internal_ram = (uint16_t *)m_ram->pointer(); + + m_io_slot_a->install_read_write_handlers(m_bankdev->space()); + m_io_slot_b->install_read_write_handlers(m_bankdev->space()); } void hp_ipc_state::machine_reset() @@ -809,6 +826,24 @@ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); m_spkr->oa_w().set(m_dac , FUNC(dac_1bit_device::write)); + // IO slots + HP_IPC_IO_SLOT(config , m_io_slot_a).set_slot_idx(0); + HP_IPC_IO_SLOT(config , m_io_slot_b).set_slot_idx(1); + + // IRQ3/4/5/6 mergers + INPUT_MERGER_ANY_HIGH(config , m_irq3_merger).output_handler().set_inputline(m_maincpu , M68K_IRQ_3); + INPUT_MERGER_ANY_HIGH(config , m_irq4_merger).output_handler().set_inputline(m_maincpu , M68K_IRQ_4); + INPUT_MERGER_ANY_HIGH(config , m_irq5_merger).output_handler().set_inputline(m_maincpu , M68K_IRQ_5); + INPUT_MERGER_ANY_HIGH(config , m_irq6_merger).output_handler().set_inputline(m_maincpu , M68K_IRQ_6); + m_io_slot_a->irq3_cb().set(m_irq3_merger , FUNC(input_merger_any_high_device::in_w<1>)); + m_io_slot_a->irq4_cb().set(m_irq4_merger , FUNC(input_merger_any_high_device::in_w<1>)); + m_io_slot_a->irq5_cb().set(m_irq5_merger , FUNC(input_merger_any_high_device::in_w<1>)); + m_io_slot_a->irq6_cb().set(m_irq6_merger , FUNC(input_merger_any_high_device::in_w<1>)); + m_io_slot_b->irq3_cb().set(m_irq3_merger , FUNC(input_merger_any_high_device::in_w<2>)); + m_io_slot_b->irq4_cb().set(m_irq4_merger , FUNC(input_merger_any_high_device::in_w<2>)); + m_io_slot_b->irq5_cb().set(m_irq5_merger , FUNC(input_merger_any_high_device::in_w<2>)); + m_io_slot_b->irq6_cb().set(m_irq6_merger , FUNC(input_merger_any_high_device::in_w<2>)); + RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("768K,1M,1576K,2M,3M,4M,5M,6M,7M,7680K"); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/ibmpcjr.cpp mame-0.224+dfsg.1/src/mame/drivers/ibmpcjr.cpp --- mame-0.223+dfsg.1/src/mame/drivers/ibmpcjr.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/ibmpcjr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -226,6 +226,7 @@ { m_pit_out2 = state ? 1 : 0; m_speaker->level_w(m_pc_spkrdata & m_pit_out2); + m_cassette->output(state ? 1.0 : -1.0); } /************************************************************* @@ -656,6 +657,7 @@ /* cassette */ CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); + m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); UPD765A(config, m_fdc, 8'000'000, false, false); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/interact.cpp mame-0.224+dfsg.1/src/mame/drivers/interact.cpp --- mame-0.223+dfsg.1/src/mame/drivers/interact.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/interact.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,305 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:JJ Stacino -/*************************************************************************** - - Interact Family Computer - - 12/05/2009 Skeleton driver - Micko - 31/05/2009 Added notes - Robbbert - - This was made by Interact Company of Ann Arbor, Michigan. However, - just after launch, the company collapsed. The liquidator, Protecto, - sold some and MicroVideo sold the rest. MicroVideo continued to - develop but went under 2 years later. Meanwhile, the French company - Lambda Systems sold a clone called the Victor Lambda. But, like the - Americans, Lambda Systems also collapsed. Another French company, - Micronique, purchased all remaining stock and intellectual rights - from Lambda Systems, Microvideo and Interact, and the computer becomes - wholly French. The computer has a name change, becoming the Hector. - This in turn gets upgraded (2HR, HRX, MX). The line is finally - retired in about 1985. - - Hector 2HR+ - Victor - Hector 2HR - Hector HRX - Hector MX40c - Hector MX80c - Hector 1 - Interact - - 12/05/2009 Skeleton driver - Micko : mmicko@gmail.com - 31/06/2009 Video - Robbbert - - 29/10/2009 Update skeleton to functional machine - by yo_fr (jj.stac @ aliceadsl.fr) - - => add Keyboard, - => add color, - => add cassette, - => add sn76477 sound and 1bit sound, - => add joysticks (stick, pot, fire) - => add BR/HR switching - => add bank switch for HRX - => add device MX80c and bank switching for the ROM - Importante note : the keyboard function add been piked from - DChector project : http://dchector.free.fr/ made by DanielCoulom - (thank's Daniel) - TODO : Add the cartridge function, - Adjust the one shot and A/D timing (sn76477) -****************************************************************************/ -/* Mapping for joystick see hec2hrp.c*/ - -#include "emu.h" -#include "includes/hec2hrp.h" - -#include "cpu/i8085/i8085.h" -#include "cpu/z80/z80.h" -#include "formats/hect_tap.h" -#include "imagedev/cassette.h" -#include "imagedev/printer.h" -#include "machine/upd765.h" /* for floppy disc controller */ -#include "sound/discrete.h" /* for 1 Bit sound*/ -#include "screen.h" -#include "softlist.h" - - -class interact_state : public hec2hrp_state -{ -public: - interact_state(const machine_config &mconfig, device_type type, const char *tag) - : hec2hrp_state(mconfig, type, tag), - m_videoram(*this, "videoram") { } - - void hector1(machine_config &config); - void interact(machine_config &config); - -private: - - required_shared_ptr m_videoram; - DECLARE_MACHINE_START(interact); - DECLARE_MACHINE_RESET(interact); - uint32_t screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void interact_mem(address_map &map); -}; - - -void interact_state::interact_mem(address_map &map) -{ - map.unmap_value_high(); - /* Main ROM page*/ - map(0x0000, 0x3fff).rom(); /*BANK(2)*/ -// map(0x1000,0x3fff).ram(); - - /* Hardware address mapping*/ -// map(0x0800,0x0808).w(FUNC(interact_state::switch_bank_w)); // Bank management not udsed in BR machine*/ - map(0x1000, 0x1000).w(FUNC(interact_state::color_a_w)); /* Color c0/c1*/ - map(0x1800, 0x1800).w(FUNC(interact_state::color_b_w)); /* Color c2/c3*/ - map(0x2000, 0x2003).w(FUNC(interact_state::sn_2000_w)); /* Sound*/ - map(0x2800, 0x2803).w(FUNC(interact_state::sn_2800_w)); /* Sound*/ - map(0x3000, 0x3000).rw(FUNC(interact_state::cassette_r), FUNC(interact_state::sn_3000_w));/* Write necessary*/ - map(0x3800, 0x3807).rw(FUNC(interact_state::keyboard_r), FUNC(interact_state::keyboard_w)); /* Keyboard*/ - - /* Video br mapping*/ - map(0x4000, 0x49ff).ram().share("videoram"); - /* continous RAM*/ - map(0x4A00, 0xffff).ram(); - -} - - -MACHINE_RESET_MEMBER(interact_state,interact) -{ - hector_reset(0, 0); -} - -MACHINE_START_MEMBER(interact_state,interact) -{ - hector_init(); -} - -uint32_t interact_state::screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - uint8_t *videoram = m_videoram; - screen.set_visible_area(0, 113, 0, 75); - hector_hr(bitmap, videoram, 77, 32); - return 0; -} - -void interact_state::interact(machine_config &config) -{ - /* basic machine hardware */ - I8080(config, m_maincpu, XTAL(2'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &interact_state::interact_mem); - m_maincpu->set_periodic_int(FUNC(interact_state::irq0_line_hold), attotime::from_hz(50)); /* put on the I8080 irq in Hz*/ - - MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact) - MCFG_MACHINE_START_OVERRIDE(interact_state,interact) - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ - screen.set_size(256, 79); - screen.set_visarea(0, 112, 0, 77); - screen.set_screen_update(FUNC(interact_state::screen_update_interact)); - screen.set_palette(m_palette); - - PALETTE(config, m_palette).set_entries(16); /* 8 colours, but only 4 at a time*/ - - MCFG_VIDEO_START_OVERRIDE(interact_state,hec2hrp) - - hector_audio(config); - - CASSETTE(config, m_cassette); - m_cassette->set_formats(hector_cassette_formats); - m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED); - m_cassette->set_interface("interact_cass"); - - SOFTWARE_LIST(config, "cass_list").set_original("interact"); - - /* printer */ - PRINTER(config, m_printer, 0); -} - -void interact_state::hector1(machine_config &config) -{ - /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(1'750'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &interact_state::interact_mem); - m_maincpu->set_periodic_int(FUNC(interact_state::irq0_line_hold), attotime::from_hz(50)); /* put on the I8080 irq in Hz*/ - - MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact) - MCFG_MACHINE_START_OVERRIDE(interact_state,interact) - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ - screen.set_size(256, 79); - screen.set_visarea(0, 112, 0, 77); - screen.set_screen_update(FUNC(interact_state::screen_update_interact)); - screen.set_palette(m_palette); - - PALETTE(config, m_palette).set_entries(16); /* 8 colours, but only 4 at a time*/ - - MCFG_VIDEO_START_OVERRIDE(interact_state,hec2hrp) - - hector_audio(config); - - CASSETTE(config, m_cassette); - m_cassette->set_formats(hector_cassette_formats); - m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED); - m_cassette->set_interface("interact_cass"); - - /* printer */ - PRINTER(config, m_printer, 0); -} - -/* Input ports */ -static INPUT_PORTS_START( interact ) - /* keyboard input */ - PORT_START("KEY.0") /* [0] - port 3000 @ 0 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("<--") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_START("KEY.1") /* [1] - port 3000 @ 1 */ /* touches => 2 1 0 / . - , + */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 >") PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 <") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') - - PORT_START("KEY.2") /* [1] - port 3000 @ 2 */ /* touches => .. 9 8 7 6 5 4 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 :") PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 !") PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 /") PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_START("KEY.3") /* [1] - port 3000 @ 3 */ /* touches => B A .. ? .. = .. ; */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_START("KEY.4") /* [1] - port 3000 @ 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - - PORT_START("KEY.5") /* [1] - port 3000 @ 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - - PORT_START("KEY.6") /* [1] - port 3000 @ 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - - PORT_START("KEY.7") /* [1] - port 3000 @ 7 JOYSTICK */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(0) LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(0) RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(0) UP") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(0) DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(1) LEFT") PORT_CODE(KEYCODE_1_PAD) /* Joy(1) on numpad*/ - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(1) RIGHT") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(1) UP") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(1) DOWN") PORT_CODE(KEYCODE_2_PAD) - - PORT_START("KEY.8") /* [1] - port 3000 @ 8 not for the real machine, but to emulate the analog signal of the joystick */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RESET") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(0) FIRE") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Joy(1) FIRE") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Pot(0)+") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Pot(0)-") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Pot(1)+") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Pot(1)-") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) -INPUT_PORTS_END - -/* ROM definition */ -ROM_START( interact ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "interact.rom", 0x0000, 0x0800, CRC(1aa50444) SHA1(405806c97378abcf7c7b0d549430c78c7fc60ba2)) -ROM_END - -ROM_START( hector1 ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "hector1.rom", 0x0000, 0x1000, CRC(3be6628b) SHA1(1c106d6732bed743d8283d39e5b8248271f18c42)) -ROM_END - -/* Driver */ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP(1979, interact, 0, 0, interact, interact, interact_state, empty_init, "Interact", "Interact Family Computer", MACHINE_IMPERFECT_SOUND) -COMP(1983, hector1, interact, 0, hector1, interact, interact_state, empty_init, "Micronique", "Hector 1", MACHINE_IMPERFECT_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/itech8.cpp mame-0.224+dfsg.1/src/mame/drivers/itech8.cpp --- mame-0.223+dfsg.1/src/mame/drivers/itech8.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/itech8.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2742,7 +2742,7 @@ /* Wheel of Fortune-style PCB */ GAME( 1989, wfortune, 0, wfortune, wfortune, itech8_state, empty_init, ROT0, "GameTek", "Wheel Of Fortune (set 1)", 0 ) -GAME( 1989, wfortunea, wfortune, wfortune, wfortune, itech8_state, empty_init, ROT0, "GameTek", "Wheel Of Fortune (set 2)", 0 ) /* prgram ROM label states "R1" */ +GAME( 1989, wfortunea, wfortune, wfortune, wfortune, itech8_state, empty_init, ROT0, "GameTek", "Wheel Of Fortune (set 2)", 0 ) /* program ROM label states "R1" */ /* Grudge Match-style PCB */ GAME( 1989, grmatch, 0, grmatch, grmatch, grmatch_state, empty_init, ROT0, "Yankee Game Technology", "Grudge Match (Yankee Game Technology)", 0 ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/jaguar.cpp mame-0.224+dfsg.1/src/mame/drivers/jaguar.cpp --- mame-0.223+dfsg.1/src/mame/drivers/jaguar.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/jaguar.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2114,10 +2114,10 @@ ROM_START( area51 ) /* R3000 based, Area51 Atari Games License - MAIN: Oct 24 1996 12:02:23 / GUTS: 2.06CJ Nov 11 1996 11:46:43 */ ROM_REGION( 0x200000, "maincpu", 0 ) /* 2MB for IDT 79R3041 code */ - ROM_LOAD32_BYTE( "2-c_area_51_hh.hh", 0x00000, 0x80000, CRC(13af6a1e) SHA1(69da54ed6886e825156bbcc256e8d7abd4dc1ff8) ) /* Grean labels: 2-C AREA 51 HH */ - ROM_LOAD32_BYTE( "2-c_area_51_hl.hl", 0x00001, 0x80000, CRC(8ab6649b) SHA1(9b4945bc04f8a73161638a2c5fa2fd84c6fd31b4) ) /* Grean labels: 2-C AREA 51 HL */ - ROM_LOAD32_BYTE( "2-c_area_51_lh.lh", 0x00002, 0x80000, CRC(a6524f73) SHA1(ae377a6803a4f7d1bbcc111725af121a3e82317d) ) /* Grean labels: 2-C AREA 51 LH */ - ROM_LOAD32_BYTE( "2-c_area_51_ll.ll", 0x00003, 0x80000, CRC(471b15d2) SHA1(4b5f45ee140b03a6be61475cae1c2dbef0f07457) ) /* Grean labels: 2-C AREA 51 LL */ + ROM_LOAD32_BYTE( "2-c_area_51_hh.hh", 0x00000, 0x80000, CRC(13af6a1e) SHA1(69da54ed6886e825156bbcc256e8d7abd4dc1ff8) ) /* Green labels: 2-C AREA 51 HH */ + ROM_LOAD32_BYTE( "2-c_area_51_hl.hl", 0x00001, 0x80000, CRC(8ab6649b) SHA1(9b4945bc04f8a73161638a2c5fa2fd84c6fd31b4) ) /* Green labels: 2-C AREA 51 HL */ + ROM_LOAD32_BYTE( "2-c_area_51_lh.lh", 0x00002, 0x80000, CRC(a6524f73) SHA1(ae377a6803a4f7d1bbcc111725af121a3e82317d) ) /* Green labels: 2-C AREA 51 LH */ + ROM_LOAD32_BYTE( "2-c_area_51_ll.ll", 0x00003, 0x80000, CRC(471b15d2) SHA1(4b5f45ee140b03a6be61475cae1c2dbef0f07457) ) /* Green labels: 2-C AREA 51 LL */ ROM_REGION16_BE( 0x1000, "waverom", 0 ) ROM_LOAD16_WORD("jagwave.rom", 0x0000, 0x1000, CRC(7a25ee5b) SHA1(58117e11fd6478c521fbd3fdbe157f39567552f0) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/jpmsys5.cpp mame-0.224+dfsg.1/src/mame/drivers/jpmsys5.cpp --- mame-0.223+dfsg.1/src/mame/drivers/jpmsys5.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/jpmsys5.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -24,6 +24,7 @@ The byte at 0x81 of the EVEN 68k rom appears to be some kind of control byte, probably region, or coin / machine type setting. Many sets differ only by this byte. + Now we have BACTA protocol emulation, see if this is related. Many sets are probably missing sound roms, however due to the varying motherboard configurations (SAA vs. YM, with added UPD) @@ -34,6 +35,8 @@ #include "emu.h" #include "includes/jpmsys5.h" +#include "machine/bacta_datalogger.h" + #include "machine/clock.h" #include "machine/input_merger.h" #include "sound/saa1099.h" @@ -590,10 +593,14 @@ INPUT_MERGER_ANY_HIGH(config, "acia_irq").output_handler().set_inputline(m_maincpu, INT_6850ACIA); + bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0)); + ACIA6850(config, m_acia6850[0], 0); - m_acia6850[0]->txd_handler().set(FUNC(jpmsys5v_state::a0_tx_w)); + m_acia6850[0]->txd_handler().set("bacta", FUNC(bacta_datalogger_device::write_txd)); m_acia6850[0]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<0>)); + bacta.rxd_handler().set(m_acia6850[0], FUNC(acia6850_device::write_rxd)); + ACIA6850(config, m_acia6850[1], 0); m_acia6850[1]->txd_handler().set(FUNC(jpmsys5v_state::a1_tx_w)); m_acia6850[1]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<1>)); @@ -602,9 +609,11 @@ m_acia6850[2]->txd_handler().set(FUNC(jpmsys5v_state::a2_tx_w)); m_acia6850[2]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<2>)); + clock_device &bacta_clock(CLOCK(config, "bacta_clock", 19200)); // Gives 1200 baud, but real timer is programmable (location?) + bacta_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc)); + bacta_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc)); + clock_device &acia_clock(CLOCK(config, "acia_clock", 10000)); // What are the correct ACIA clocks ? - acia_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc)); - acia_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc)); acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_rxc)); acia_clock.signal_handler().append(m_acia6850[2], FUNC(acia6850_device::write_txc)); @@ -810,21 +819,27 @@ INPUT_MERGER_ANY_HIGH(config, "acia_irq").output_handler().set_inputline(m_maincpu, INT_6850ACIA); + bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0)); + ACIA6850(config, m_acia6850[0], 0); - m_acia6850[0]->txd_handler().set(FUNC(jpmsys5_state::a0_tx_w)); + m_acia6850[0]->txd_handler().set("bacta", FUNC(bacta_datalogger_device::write_txd)); m_acia6850[0]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<0>)); + bacta.rxd_handler().set(m_acia6850[0], FUNC(acia6850_device::write_rxd)); + ACIA6850(config, m_acia6850[1], 0); - m_acia6850[1]->txd_handler().set(FUNC(jpmsys5_state::a1_tx_w)); + m_acia6850[1]->txd_handler().set(FUNC(jpmsys5v_state::a1_tx_w)); m_acia6850[1]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<1>)); ACIA6850(config, m_acia6850[2], 0); - m_acia6850[2]->txd_handler().set(FUNC(jpmsys5_state::a2_tx_w)); + m_acia6850[2]->txd_handler().set(FUNC(jpmsys5v_state::a2_tx_w)); m_acia6850[2]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<2>)); + clock_device &bacta_clock(CLOCK(config, "bacta_clock", 19200)); // Gives 1200 baud, but real timer is programmable (location?) + bacta_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc)); + bacta_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc)); + clock_device &acia_clock(CLOCK(config, "acia_clock", 10000)); // What are the correct ACIA clocks ? - acia_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc)); - acia_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc)); acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_rxc)); acia_clock.signal_handler().append(m_acia6850[2], FUNC(acia6850_device::write_txc)); @@ -868,21 +883,27 @@ INPUT_MERGER_ANY_HIGH(config, "acia_irq").output_handler().set_inputline(m_maincpu, INT_6850ACIA); + bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0)); + ACIA6850(config, m_acia6850[0], 0); - m_acia6850[0]->txd_handler().set(FUNC(jpmsys5_state::a0_tx_w)); + m_acia6850[0]->txd_handler().set("bacta", FUNC(bacta_datalogger_device::write_txd)); m_acia6850[0]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<0>)); + bacta.rxd_handler().set(m_acia6850[0], FUNC(acia6850_device::write_rxd)); + ACIA6850(config, m_acia6850[1], 0); - m_acia6850[1]->txd_handler().set(FUNC(jpmsys5_state::a1_tx_w)); + m_acia6850[1]->txd_handler().set(FUNC(jpmsys5v_state::a1_tx_w)); m_acia6850[1]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<1>)); ACIA6850(config, m_acia6850[2], 0); - m_acia6850[2]->txd_handler().set(FUNC(jpmsys5_state::a2_tx_w)); + m_acia6850[2]->txd_handler().set(FUNC(jpmsys5v_state::a2_tx_w)); m_acia6850[2]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<2>)); + clock_device &bacta_clock(CLOCK(config, "bacta_clock", 19200)); // Gives 1200 baud, but real timer is programmable (location?) + bacta_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc)); + bacta_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc)); + clock_device &acia_clock(CLOCK(config, "acia_clock", 10000)); // What are the correct ACIA clocks ? - acia_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc)); - acia_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc)); acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_rxc)); acia_clock.signal_handler().append(m_acia6850[2], FUNC(acia6850_device::write_txc)); @@ -922,6 +943,7 @@ * *************************************/ + ROM_START( monopoly ) ROM_REGION( 0x300000, "maincpu", 0 ) ROM_LOAD16_BYTE( "7398.bin", 0x000000, 0x80000, CRC(62c80f20) SHA1(322514f920d6cb48887b624786b52af34bdb8e5f) ) @@ -931,23 +953,25 @@ ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) ) ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) ) + ROM_REGION( 0x80000, "upd7759", 0 ) + ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) ) +ROM_END - ROM_REGION( 0x300000, "altrevs", 0 ) - ROM_LOAD16_BYTE( "7400.bin", 0x00001, 0x080000, CRC(d6f1f98c) SHA1(f20c788a31a8fe339aed701866180a3eb16fafb9) ) - - // this version doesn't work too well, missing other roms, or just bad? - ROM_LOAD16_BYTE( "monov3p1", 0x00000, 0x080000, CRC(a66fc610) SHA1(fddd3b37a6aebf5c402942d26a2fa1fa130326dd) ) - ROM_LOAD16_BYTE( "monov3p2", 0x00001, 0x080000, CRC(2d629723) SHA1(c5584113e50dc5f636dbcf80e4689d2bbfe98e71) ) - // mismastched? - ROM_LOAD16_BYTE( "monov4p2", 0x00001, 0x080000, CRC(3c2dd9b7) SHA1(01c87584b3599763a0c37040199014c2902dc6f3) ) - +ROM_START( monopolyd ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "7398.bin", 0x000000, 0x80000, CRC(62c80f20) SHA1(322514f920d6cb48887b624786b52af34bdb8e5f) ) + ROM_LOAD16_BYTE( "7400.bin", 0x000001, 0x80000, CRC(d6f1f98c) SHA1(f20c788a31a8fe339aed701866180a3eb16fafb9) ) + ROM_LOAD16_BYTE( "6668.bin", 0x100000, 0x80000, CRC(30bf082a) SHA1(29ba67a86e82f0eb4feb816a2031d62028eb11b0) ) + ROM_LOAD16_BYTE( "6669.bin", 0x100001, 0x80000, CRC(85d38c2d) SHA1(2f1a394df243e5fbbad31507b9074c997c473106) ) + ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) ) + ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) ) ROM_REGION( 0x80000, "upd7759", 0 ) ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) ) ROM_END -ROM_START( monopolya ) +ROM_START( monopoly4 ) ROM_REGION( 0x300000, "maincpu", 0 ) ROM_LOAD16_BYTE( "mono4e1", 0x000000, 0x80000, CRC(0338b165) SHA1(fdc0fcf0fddcf88d593a22885779e8224484e7e4) ) ROM_LOAD16_BYTE( "mono4e2", 0x000001, 0x80000, CRC(c8aa21d8) SHA1(257ecf85e1d41b15bb2bbe2157e9d3f72b7e0317) ) @@ -956,10 +980,27 @@ ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) ) ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) ) + ROM_REGION( 0x300000, "altrevs", 0 ) + ROM_LOAD16_BYTE( "monov4p2", 0x000001, 0x80000, CRC(3c2dd9b7) SHA1(01c87584b3599763a0c37040199014c2902dc6f3) ) // mismatched? + + ROM_REGION( 0x80000, "upd7759", 0 ) + ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) ) +ROM_END + +ROM_START( monopoly3 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "monov3p1", 0x000000, 0x80000, CRC(a66fc610) SHA1(fddd3b37a6aebf5c402942d26a2fa1fa130326dd) ) + ROM_LOAD16_BYTE( "monov3p2", 0x000001, 0x80000, CRC(2d629723) SHA1(c5584113e50dc5f636dbcf80e4689d2bbfe98e71) ) + ROM_LOAD16_BYTE( "6668.bin", 0x100000, 0x80000, CRC(30bf082a) SHA1(29ba67a86e82f0eb4feb816a2031d62028eb11b0) ) + ROM_LOAD16_BYTE( "6669.bin", 0x100001, 0x80000, CRC(85d38c2d) SHA1(2f1a394df243e5fbbad31507b9074c997c473106) ) + ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) ) + ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) ) + ROM_REGION( 0x80000, "upd7759", 0 ) ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) ) ROM_END +//Monopoly Classic is a non-payout quiz game, where the goal is to earn points from collecting properties. ROM_START( monoplcl ) ROM_REGION( 0x300000, "maincpu", 0 ) @@ -970,13 +1011,18 @@ ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) ) ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) ) - ROM_REGION( 0x300000, "altrevs", 0 ) - ROM_LOAD16_BYTE( "7403.bin", 0x000001, 0x080000, CRC(95dbacb6) SHA1(bd551ccad95440a669a547092ab126178b0d0bf9) ) + ROM_REGION( 0x80000, "upd7759", 0 ) + ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) ) +ROM_END - ROM_LOAD( "mdlxv1p1", 0x0000, 0x080000, CRC(48ab1691) SHA1(6df2aad02548d5239e3974a11228bc9aad8c9170) ) - ROM_LOAD( "mdlxv1p2", 0x0000, 0x080000, CRC(107c3e65) SHA1(e298b3a2826f92ba6119348a36bc4735e1799797) ) - /* p3 missing? */ - ROM_LOAD( "mdlxv1p4", 0x0000, 0x080000, CRC(e3fd1a27) SHA1(6bba70ff27a6d068febcbdfa1b1f8ff2ef86ef03) ) +ROM_START( monoplcld ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "7401.bin", 0x000000, 0x80000, CRC(eec11426) SHA1(b732a5a64d3fba676134942768b823d088792a1f) ) + ROM_LOAD16_BYTE( "7403.bin", 0x000001, 0x80000, CRC(95dbacb6) SHA1(bd551ccad95440a669a547092ab126178b0d0bf9) ) + ROM_LOAD16_BYTE( "6668.bin", 0x100000, 0x80000, CRC(30bf082a) SHA1(29ba67a86e82f0eb4feb816a2031d62028eb11b0) ) + ROM_LOAD16_BYTE( "6669.bin", 0x100001, 0x80000, CRC(85d38c2d) SHA1(2f1a394df243e5fbbad31507b9074c997c473106) ) + ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) ) + ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) ) ROM_REGION( 0x80000, "upd7759", 0 ) @@ -992,10 +1038,37 @@ ROM_LOAD16_BYTE( "6881.bin", 0x200000, 0x80000, CRC(8418ee17) SHA1(5666b90db00d9e88a37655bb9a714f076e2689d6) ) ROM_LOAD16_BYTE( "6882.bin", 0x200001, 0x80000, CRC(400f5fb4) SHA1(80b1d3902fc9f6db24f49055b07bc31c0c74a993) ) - ROM_REGION( 0x300000, "altrevs", 0 ) - ROM_LOAD16_BYTE( "8441.bin", 0x000001, 0x080000, CRC(d0825af4) SHA1(a7291806893c42a115763e404337976b8c30e9e0) ) // 1 byte change from 8440 (doesn't boot, but might want additional hw) + ROM_REGION( 0x80000, "upd7759", 0 ) + ROM_LOAD( "modl-snd.bin", 0x000000, 0x80000, CRC(f761da41) SHA1(a07d1b4cb7ce7a24b6fb84843543b95c3aec470f) ) +ROM_END +ROM_START( monopldxd ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "8439.bin", 0x000000, 0x80000, CRC(fbd6caa4) SHA1(73e787ae41a0ce44d48a46dd623d5e1351335e3e) ) + ROM_LOAD16_BYTE( "8441.bin", 0x000001, 0x80000, CRC(d0825af4) SHA1(a7291806893c42a115763e404337976b8c30e9e0) ) // 1 byte change from 8440 + ROM_LOAD16_BYTE( "6879.bin", 0x100000, 0x80000, CRC(4fbd1222) SHA1(9a9c9e4768c18a6a3e717605d3c88179676b6ad1) ) + ROM_LOAD16_BYTE( "6880.bin", 0x100001, 0x80000, CRC(0370bf5f) SHA1(a0ed1dbc6aeab02e8229f23f8ba4ff880d31e7a1) ) + ROM_LOAD16_BYTE( "6881.bin", 0x200000, 0x80000, CRC(8418ee17) SHA1(5666b90db00d9e88a37655bb9a714f076e2689d6) ) + ROM_LOAD16_BYTE( "6882.bin", 0x200001, 0x80000, CRC(400f5fb4) SHA1(80b1d3902fc9f6db24f49055b07bc31c0c74a993) ) + + ROM_REGION( 0x80000, "upd7759", 0 ) + ROM_LOAD( "modl-snd.bin", 0x000000, 0x80000, CRC(f761da41) SHA1(a07d1b4cb7ce7a24b6fb84843543b95c3aec470f) ) +ROM_END + +ROM_START( monopldx1 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "mdlxv1p1", 0x000000, 0x80000, CRC(48ab1691) SHA1(6df2aad02548d5239e3974a11228bc9aad8c9170) ) + ROM_LOAD16_BYTE( "mdlxv1p2", 0x000001, 0x80000, CRC(107c3e65) SHA1(e298b3a2826f92ba6119348a36bc4735e1799797) ) + ROM_LOAD16_BYTE( "6879.bin", 0x100000, 0x80000, CRC(4fbd1222) SHA1(9a9c9e4768c18a6a3e717605d3c88179676b6ad1) ) + ROM_LOAD16_BYTE( "6880.bin", 0x100001, 0x80000, CRC(0370bf5f) SHA1(a0ed1dbc6aeab02e8229f23f8ba4ff880d31e7a1) ) + ROM_LOAD16_BYTE( "6881.bin", 0x200000, 0x80000, CRC(8418ee17) SHA1(5666b90db00d9e88a37655bb9a714f076e2689d6) ) + ROM_LOAD16_BYTE( "6882.bin", 0x200001, 0x80000, CRC(400f5fb4) SHA1(80b1d3902fc9f6db24f49055b07bc31c0c74a993) ) + + ROM_REGION( 0x300000, "altrevs", 0 ) + /* p3 missing? */ + ROM_LOAD16_BYTE( "mdlxv1p4", 0x100001, 0x80000, CRC(e3fd1a27) SHA1(6bba70ff27a6d068febcbdfa1b1f8ff2ef86ef03) ) //Doesn't match set? + ROM_REGION( 0x80000, "upd7759", 0 ) ROM_LOAD( "modl-snd.bin", 0x000000, 0x80000, CRC(f761da41) SHA1(a07d1b4cb7ce7a24b6fb84843543b95c3aec470f) ) ROM_END @@ -1010,13 +1083,14 @@ ROM_END - - - - /* Video based titles */ -GAME( 1994, monopoly, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 1)", 0 ) -GAME( 1994, monopolya, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 2)", 0 ) -GAME( 1995, monoplcl, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Classic (JPM) (SYSTEM5 VIDEO)", 0 ) -GAME( 1995, monopldx, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (SYSTEM5 VIDEO)", 0 ) -GAME( 199?, cashcade, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Cashcade (JPM) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // shows a loading error.. is the set incomplete? +GAME( 1994, monopoly, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 4H) (SYSTEM5 VIDEO)", 0 ) +GAME( 1994, monopolyd, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 4H, Protocol) (SYSTEM5 VIDEO)", 0 ) +GAME( 1994, monopoly4, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 4) (SYSTEM5 VIDEO)", 0 ) +GAME( 1994, monopoly3, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 3) (SYSTEM5 VIDEO)", 0 ) +GAME( 1995, monoplcl, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Classic (JPM) (Version 5) (SYSTEM5 VIDEO)", 0 ) +GAME( 1995, monoplcld, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Classic (JPM) (Version 5, Protocol) (SYSTEM5 VIDEO)", 0 ) +GAME( 1995, monopldx, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (Version 6) (SYSTEM5 VIDEO)", 0 ) +GAME( 1995, monopldxd, monopldx, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (Version 6, Protocol) (SYSTEM5 VIDEO)", 0 ) +GAME( 1995, monopldx1, monopldx, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (Version 1) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING ) // no questions? +GAME( 199?, cashcade, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Cashcade (JPM) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // shows a loading error.. is the set incomplete? diff -Nru mame-0.223+dfsg.1/src/mame/drivers/karnov.cpp mame-0.224+dfsg.1/src/mame/drivers/karnov.cpp --- mame-0.223+dfsg.1/src/mame/drivers/karnov.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/karnov.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -766,10 +766,10 @@ void karnov_state::karnov(machine_config &config) { /* basic machine hardware */ - M68000(config, m_maincpu, 10000000); /* 10 MHz */ + M68000(config, m_maincpu, 20_MHz_XTAL/2); /* 10 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &karnov_state::karnov_map); - M6502(config, m_audiocpu, 1500000); /* Accurate */ + M6502(config, m_audiocpu, 12_MHz_XTAL/8); /* Accurate */ m_audiocpu->set_addrmap(AS_PROGRAM, &karnov_state::karnov_sound_map); /* video hardware */ @@ -799,10 +799,10 @@ GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); - ym2203_device &ym1(YM2203(config, "ym1", 1500000)); + ym2203_device &ym1(YM2203(config, "ym1", 12_MHz_XTAL/8)); // 1.5 MHz ym1.add_route(ALL_OUTPUTS, "mono", 0.25); - ym3526_device &ym2(YM3526(config, "ym2", 3000000)); + ym3526_device &ym2(YM3526(config, "ym2", 12_MHz_XTAL/4)); // 3 MHz ym2.irq_handler().set_inputline(m_audiocpu, M6502_IRQ_LINE); ym2.add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -826,7 +826,7 @@ karnov(config); m_maincpu->set_addrmap(AS_PROGRAM, &karnov_state::chelnov_map); - I8751(config, m_mcu, 8_MHz_XTAL); // unknown clock + I8751(config, m_mcu, 8_MHz_XTAL); // 8.000 MHz OSC next to MCU m_mcu->port_in_cb<0>().set([this](){ return m_mcu_p0; }); m_mcu->port_out_cb<0>().set([this](u8 data){ m_mcu_p0 = data; }); m_mcu->port_in_cb<1>().set([this](){ return m_mcu_p1; }); @@ -844,7 +844,7 @@ karnov(config); m_maincpu->set_addrmap(AS_PROGRAM, &karnov_state::chelnov_map); - I8031(config, m_mcu, 8_MHz_XTAL); // unknown clock + I8031(config, m_mcu, 8_MHz_XTAL); // info below states 8MHz for MCU m_mcu->set_addrmap(AS_PROGRAM, &karnov_state::chelnovjbl_mcu_map); m_mcu->set_addrmap(AS_IO, &karnov_state::chelnovjbl_mcu_io_map); m_mcu->port_out_cb<1>().set(FUNC(karnov_state::mcubl_p1_w)); @@ -856,10 +856,10 @@ void karnov_state::wndrplnt(machine_config &config) { /* basic machine hardware */ - M68000(config, m_maincpu, 10000000); /* 10 MHz */ + M68000(config, m_maincpu, 20_MHz_XTAL/2); /* 10 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &karnov_state::karnov_map); - M6502(config, m_audiocpu, 1500000); /* Accurate */ + M6502(config, m_audiocpu, 12_MHz_XTAL/8); /* Accurate */ m_audiocpu->set_addrmap(AS_PROGRAM, &karnov_state::karnov_sound_map); /* video hardware */ @@ -889,10 +889,10 @@ GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); - ym2203_device &ym1(YM2203(config, "ym1", 1500000)); + ym2203_device &ym1(YM2203(config, "ym1", 12_MHz_XTAL/8)); // 1.5 MHz ym1.add_route(ALL_OUTPUTS, "mono", 0.25); - ym3526_device &ym2(YM3526(config, "ym2", 3000000)); + ym3526_device &ym2(YM3526(config, "ym2", 12_MHz_XTAL/4)); // 3 MHz ym2.irq_handler().set_inputline(m_audiocpu, M6502_IRQ_LINE); ym2.add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -904,7 +904,7 @@ * *************************************/ -ROM_START( karnov ) +ROM_START( karnov ) /* DE-0248-3 main board, DE-259-0 sub/rom board */ ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ ROM_LOAD16_BYTE( "dn08-6.j15", 0x00000, 0x10000, CRC(4c60837f) SHA1(6886e6ee1d1563c3011b8fea79e7435f983a3ee0) ) ROM_LOAD16_BYTE( "dn11-6.j20", 0x00001, 0x10000, CRC(cd4abb99) SHA1(b4482175f5d90941ad3aec6c2269a50f57a465ed) ) @@ -930,20 +930,20 @@ ROM_REGION( 0x60000, "gfx3", 0 ) ROM_LOAD( "dn12-.f8", 0x00000, 0x10000, CRC(9806772c) SHA1(01f17fa033262a3e64e0675cc4e20b3c3f4b254d) ) /* Sprites - 2 sets of 4, interleaved here */ - ROM_LOAD( "dn14-5.f9", 0x10000, 0x08000, CRC(ac9e6732) SHA1(6f61344eb8a13349471145dee252a01aadb8cdf0) ) - ROM_LOAD( "dn13-.f13", 0x18000, 0x10000, CRC(a03308f9) SHA1(1d450725a5c488332c83d8f64a73a750ce7fe4c7) ) - ROM_LOAD( "dn15-5.f15", 0x28000, 0x08000, CRC(8933fcb8) SHA1(0dbda4b032ed3776d7633264f39e6f00ace7a238) ) - ROM_LOAD( "dn16-", 0x30000, 0x10000, CRC(55e63a11) SHA1(3ef0468fa02ac5382007428122216917ad5eaa0e) ) - ROM_LOAD( "dn17-5", 0x40000, 0x08000, CRC(b70ae950) SHA1(1ec833bdad12710ea846ef48dddbe2e1ae6b8ce1) ) - ROM_LOAD( "dn18-", 0x48000, 0x10000, CRC(2ad53213) SHA1(f22696920bf3d74fb0e28e2d7cb31be5e183c6b4) ) - ROM_LOAD( "dn19-5", 0x58000, 0x08000, CRC(8fd4fa40) SHA1(1870fb0c5c64fbc53a10115f0f3c7624cf2465db) ) + ROM_LOAD( "dn14-5.f11", 0x10000, 0x08000, CRC(ac9e6732) SHA1(6f61344eb8a13349471145dee252a01aadb8cdf0) ) + ROM_LOAD( "dn13-.f9", 0x18000, 0x10000, CRC(a03308f9) SHA1(1d450725a5c488332c83d8f64a73a750ce7fe4c7) ) + ROM_LOAD( "dn15-5.f12", 0x28000, 0x08000, CRC(8933fcb8) SHA1(0dbda4b032ed3776d7633264f39e6f00ace7a238) ) + ROM_LOAD( "dn16-.f13", 0x30000, 0x10000, CRC(55e63a11) SHA1(3ef0468fa02ac5382007428122216917ad5eaa0e) ) + ROM_LOAD( "dn17-5.f15", 0x40000, 0x08000, CRC(b70ae950) SHA1(1ec833bdad12710ea846ef48dddbe2e1ae6b8ce1) ) + ROM_LOAD( "dn18-.f16", 0x48000, 0x10000, CRC(2ad53213) SHA1(f22696920bf3d74fb0e28e2d7cb31be5e183c6b4) ) + ROM_LOAD( "dn19-5.f18", 0x58000, 0x08000, CRC(8fd4fa40) SHA1(1870fb0c5c64fbc53a10115f0f3c7624cf2465db) ) ROM_REGION( 0x0800, "proms", 0 ) ROM_LOAD( "dn-21.k8", 0x0000, 0x0400, CRC(aab0bb93) SHA1(545707fbb1007fca1fe297c5fce61e485e7084fc) ) /* MB7132E BPROM */ ROM_LOAD( "dn-20.l6", 0x0400, 0x0400, CRC(02f78ffb) SHA1(cb4dd8b0ce3c404195321b17e10f51352f506958) ) /* MB7122E BPROM */ ROM_END -ROM_START( karnova ) +ROM_START( karnova ) /* DE-0248-3 main board, DE-259-0 sub/rom board */ ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ ROM_LOAD16_BYTE( "dn08-5.j15", 0x00000, 0x10000, CRC(db92c264) SHA1(bd4bcd984a3455eedd2b78dc2090c9d625025671) ) /* also known to be labeled DN08-5E */ ROM_LOAD16_BYTE( "dn11-5.j20", 0x00001, 0x10000, CRC(05669b4b) SHA1(c78d0da5afc66750dd9841a7d4f8f244d878c081) ) /* also known to be labeled DN11-5E */ @@ -969,20 +969,20 @@ ROM_REGION( 0x60000, "gfx3", 0 ) ROM_LOAD( "dn12-.f8", 0x00000, 0x10000, CRC(9806772c) SHA1(01f17fa033262a3e64e0675cc4e20b3c3f4b254d) ) /* Sprites - 2 sets of 4, interleaved here */ - ROM_LOAD( "dn14-5.f9", 0x10000, 0x08000, CRC(ac9e6732) SHA1(6f61344eb8a13349471145dee252a01aadb8cdf0) ) - ROM_LOAD( "dn13-.f13", 0x18000, 0x10000, CRC(a03308f9) SHA1(1d450725a5c488332c83d8f64a73a750ce7fe4c7) ) - ROM_LOAD( "dn15-5.f15", 0x28000, 0x08000, CRC(8933fcb8) SHA1(0dbda4b032ed3776d7633264f39e6f00ace7a238) ) - ROM_LOAD( "dn16-", 0x30000, 0x10000, CRC(55e63a11) SHA1(3ef0468fa02ac5382007428122216917ad5eaa0e) ) - ROM_LOAD( "dn17-5", 0x40000, 0x08000, CRC(b70ae950) SHA1(1ec833bdad12710ea846ef48dddbe2e1ae6b8ce1) ) - ROM_LOAD( "dn18-", 0x48000, 0x10000, CRC(2ad53213) SHA1(f22696920bf3d74fb0e28e2d7cb31be5e183c6b4) ) - ROM_LOAD( "dn19-5", 0x58000, 0x08000, CRC(8fd4fa40) SHA1(1870fb0c5c64fbc53a10115f0f3c7624cf2465db) ) + ROM_LOAD( "dn14-5.f11", 0x10000, 0x08000, CRC(ac9e6732) SHA1(6f61344eb8a13349471145dee252a01aadb8cdf0) ) + ROM_LOAD( "dn13-.f9", 0x18000, 0x10000, CRC(a03308f9) SHA1(1d450725a5c488332c83d8f64a73a750ce7fe4c7) ) + ROM_LOAD( "dn15-5.f12", 0x28000, 0x08000, CRC(8933fcb8) SHA1(0dbda4b032ed3776d7633264f39e6f00ace7a238) ) + ROM_LOAD( "dn16-.f13", 0x30000, 0x10000, CRC(55e63a11) SHA1(3ef0468fa02ac5382007428122216917ad5eaa0e) ) + ROM_LOAD( "dn17-5.f15", 0x40000, 0x08000, CRC(b70ae950) SHA1(1ec833bdad12710ea846ef48dddbe2e1ae6b8ce1) ) + ROM_LOAD( "dn18-.f16", 0x48000, 0x10000, CRC(2ad53213) SHA1(f22696920bf3d74fb0e28e2d7cb31be5e183c6b4) ) + ROM_LOAD( "dn19-5.f18", 0x58000, 0x08000, CRC(8fd4fa40) SHA1(1870fb0c5c64fbc53a10115f0f3c7624cf2465db) ) ROM_REGION( 0x0800, "proms", 0 ) ROM_LOAD( "dn-21.k8", 0x0000, 0x0400, CRC(aab0bb93) SHA1(545707fbb1007fca1fe297c5fce61e485e7084fc) ) /* MB7132E BPROM */ ROM_LOAD( "dn-20.l6", 0x0400, 0x0400, CRC(02f78ffb) SHA1(cb4dd8b0ce3c404195321b17e10f51352f506958) ) /* MB7122E BPROM */ ROM_END -ROM_START( karnovj ) +ROM_START( karnovj ) /* DE-0248-3 main board, DE-259-0 sub/rom board */ ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ ROM_LOAD16_BYTE( "kar8.j15", 0x00000, 0x10000, CRC(3e17e268) SHA1(3a63928bb0148175519540f9d891b03590094dfb) ) ROM_LOAD16_BYTE( "kar11.j20", 0x00001, 0x10000, CRC(417c936d) SHA1(d31f9291f18c3d5e3c4430768396e1ac10fd9ea3) ) @@ -1008,13 +1008,13 @@ ROM_REGION( 0x60000, "gfx3", 0 ) ROM_LOAD( "dn12-.f8", 0x00000, 0x10000, CRC(9806772c) SHA1(01f17fa033262a3e64e0675cc4e20b3c3f4b254d) ) /* Sprites - 2 sets of 4, interleaved here */ - ROM_LOAD( "kar14.f9", 0x10000, 0x08000, CRC(c6b39595) SHA1(3bc2d0a613cc1b5d255cccc3b26e21ea1c23e75b) ) - ROM_LOAD( "dn13-.f13", 0x18000, 0x10000, CRC(a03308f9) SHA1(1d450725a5c488332c83d8f64a73a750ce7fe4c7) ) - ROM_LOAD( "kar15.f15", 0x28000, 0x08000, CRC(2f72cac0) SHA1(a71e61eea77ecd3240c5217ae84e7aa3ef21288a) ) - ROM_LOAD( "dn16-", 0x30000, 0x10000, CRC(55e63a11) SHA1(3ef0468fa02ac5382007428122216917ad5eaa0e) ) - ROM_LOAD( "kar17", 0x40000, 0x08000, CRC(7851c70f) SHA1(47b7a64dd8230e95cd7ae7f661c7586c7598c356) ) - ROM_LOAD( "dn18-", 0x48000, 0x10000, CRC(2ad53213) SHA1(f22696920bf3d74fb0e28e2d7cb31be5e183c6b4) ) - ROM_LOAD( "kar19", 0x58000, 0x08000, CRC(7bc174bb) SHA1(d8bc320169fc3a9cdd3f271ea523fb0486abae2c) ) + ROM_LOAD( "kar14.f11", 0x10000, 0x08000, CRC(c6b39595) SHA1(3bc2d0a613cc1b5d255cccc3b26e21ea1c23e75b) ) + ROM_LOAD( "dn13-.f9", 0x18000, 0x10000, CRC(a03308f9) SHA1(1d450725a5c488332c83d8f64a73a750ce7fe4c7) ) + ROM_LOAD( "kar15.f12", 0x28000, 0x08000, CRC(2f72cac0) SHA1(a71e61eea77ecd3240c5217ae84e7aa3ef21288a) ) + ROM_LOAD( "dn16-.f13", 0x30000, 0x10000, CRC(55e63a11) SHA1(3ef0468fa02ac5382007428122216917ad5eaa0e) ) + ROM_LOAD( "kar17.f15", 0x40000, 0x08000, CRC(7851c70f) SHA1(47b7a64dd8230e95cd7ae7f661c7586c7598c356) ) + ROM_LOAD( "dn18-.f16", 0x48000, 0x10000, CRC(2ad53213) SHA1(f22696920bf3d74fb0e28e2d7cb31be5e183c6b4) ) + ROM_LOAD( "kar19.f18", 0x58000, 0x08000, CRC(7bc174bb) SHA1(d8bc320169fc3a9cdd3f271ea523fb0486abae2c) ) ROM_REGION( 0x0800, "proms", 0 ) ROM_LOAD( "dn-21.k8", 0x0000, 0x0400, CRC(aab0bb93) SHA1(545707fbb1007fca1fe297c5fce61e485e7084fc) ) /* MB7132E BPROM */ @@ -1105,7 +1105,7 @@ ROM_LOAD( "ea-20.l6", 0x0400, 0x0400, CRC(619f9d1e) SHA1(17fe49b6c9ce17be4a03e3400229e3ef4998a46f) ) /* MB7122E BPROM */ ROM_END -ROM_START( chelnov ) +ROM_START( chelnov ) /* DE-0248-1 main board, DE-259-0 sub/rom board */ ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ ROM_LOAD16_BYTE( "ee08-e.j16", 0x00000, 0x10000, CRC(8275cc3a) SHA1(961166226b68744eef15fed6a306010757b83556) ) ROM_LOAD16_BYTE( "ee11-e.j19", 0x00001, 0x10000, CRC(889e40a0) SHA1(e927f32d9bc448a331fb7b3478b2d07154f5013b) ) @@ -1140,7 +1140,7 @@ ROM_LOAD( "ee-16.l6", 0x0400, 0x0400, CRC(41816132) SHA1(89a1194bd8bf39f13419df685e489440bdb05676) ) /* MB7122E BPROM */ ROM_END -ROM_START( chelnovu ) +ROM_START( chelnovu ) /* DE-0248-1 main board, DE-259-0 sub/rom board */ ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ ROM_LOAD16_BYTE( "ee08-a.j15", 0x00000, 0x10000, CRC(2f2fb37b) SHA1(f89b424099097a95cf184d20a15b876c5b639552) ) ROM_LOAD16_BYTE( "ee11-a.j20", 0x00001, 0x10000, CRC(f306d05f) SHA1(e523ffd17fb0104fe28eac288b6ebf7fc0ea2908) ) @@ -1175,9 +1175,9 @@ ROM_LOAD( "ee-16.l6", 0x0400, 0x0400, CRC(41816132) SHA1(89a1194bd8bf39f13419df685e489440bdb05676) ) /* MB7122E BPROM */ ROM_END -ROM_START( chelnovj ) /* at least 1 PCB found with all labels as 'EPR-EExx' like Sega labels */ +ROM_START( chelnovj ) /* DE-0248-1 main board, DE-259-0 sub/rom board */ ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ - ROM_LOAD16_BYTE( "ee08-1.j15", 0x00000, 0x10000, CRC(1978cb52) SHA1(833b8e80445ec2384e0479afb7430b32d6a14441) ) + ROM_LOAD16_BYTE( "ee08-1.j15", 0x00000, 0x10000, CRC(1978cb52) SHA1(833b8e80445ec2384e0479afb7430b32d6a14441) )/* at least 1 PCB found with all labels as 'EPR-EExx' like Sega labels */ ROM_LOAD16_BYTE( "ee11-1.j20", 0x00001, 0x10000, CRC(e0ed3d99) SHA1(f47aaec5c72ecc308c32cdcf117ef4965ac5ea61) ) ROM_LOAD16_BYTE( "ee07.j14", 0x20000, 0x10000, CRC(51465486) SHA1(e165e754eb756db3abc1f8477171ab817d03a890) ) ROM_LOAD16_BYTE( "ee10.j18", 0x20001, 0x10000, CRC(d09dda33) SHA1(1764215606eec61e4fe30c0fc82ea2faf17821dc) ) @@ -1241,7 +1241,8 @@ ROM_LOAD( "5.bin", 0x38000, 0x08000, CRC(99cee6cd) SHA1(b2cd0a1aef04fd63ad27ac8a61d17a6bb4c8b600) ) ROM_REGION( 0x40000, "gfx3", 0 ) /* Sprites */ - ROM_LOAD( "17.bin", 0x00000, 0x10000, CRC(47c857f8) SHA1(59f50365cee266c0e4075c989dc7fde50e43667a) ) // probably bad (1st half is 99.996948% match) +// ROM_LOAD( "17.bin", 0x00000, 0x10000, CRC(47c857f8) SHA1(59f50365cee266c0e4075c989dc7fde50e43667a) ) // probably bad, 1 byte difference: byte 0x55CC == 0x30 vs 0xF0 in ee12-.f8 + ROM_LOAD( "ee12-.f8", 0x00000, 0x10000, CRC(9b1c53a5) SHA1(b0fdc89dc7fd0931fa4bca3bbc20fc88f637ec74) ) ROM_LOAD( "ee13-.f9", 0x10000, 0x10000, CRC(72b8ae3e) SHA1(535dfd70e6d13296342d96917a57d46bdb28a59e) ) ROM_LOAD( "ee14-.f13", 0x20000, 0x10000, CRC(d8f4bbde) SHA1(1f2d336dd97c9cc39e124c18cae634afb0ef3316) ) ROM_LOAD( "ee15-.f15", 0x30000, 0x10000, CRC(81e3e68b) SHA1(1059c70b8bfe09c212a19767cfe23efa22afc196) ) @@ -1261,7 +1262,6 @@ */ - // same pcb as above? // this is a further hacked set of the above, with the copyright messages removed etc. (black screens for several seconds instead) ROM_START( chelnovjbla ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/kaypro.cpp mame-0.224+dfsg.1/src/mame/drivers/kaypro.cpp --- mame-0.223+dfsg.1/src/mame/drivers/kaypro.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/kaypro.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -362,6 +362,7 @@ m_fdc->set_force_ready(true); FLOPPY_CONNECTOR(config, "fdc:0", kaypro_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", kaypro_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); + SOFTWARE_LIST(config, "flop_list").set_original("kaypro484"); } void kaypro_state::kaypro10(machine_config &config) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/kc.cpp mame-0.224+dfsg.1/src/mame/drivers/kc.cpp --- mame-0.223+dfsg.1/src/mame/drivers/kc.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/kc.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2,7 +2,7 @@ // copyright-holders:Kevin Thacker,Sandro Ronco /****************************************************************************** - kc.c + kc.cpp system driver A big thankyou to Torsten Paul for his great help with this @@ -11,7 +11,7 @@ Kevin Thacker [MESS driver] - ******************************************************************************/ +******************************************************************************/ /* Core includes */ #include "emu.h" @@ -292,7 +292,7 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -COMP( 1987, kc85_2, 0, 0, kc85_3, kc85, kc_state, empty_init, "VEB Mikroelektronik \"Wilhelm Pieck\" Muehlhausen", "HC900 / KC 85/2", MACHINE_NOT_WORKING) -COMP( 1987, kc85_3, kc85_2, 0, kc85_3, kc85, kc_state, empty_init, "VEB Mikroelektronik \"Wilhelm Pieck\" Muehlhausen", "KC 85/3", MACHINE_NOT_WORKING) -COMP( 1989, kc85_4, kc85_2, 0, kc85_4, kc85, kc85_4_state, empty_init, "VEB Mikroelektronik \"Wilhelm Pieck\" Muehlhausen", "KC 85/4", MACHINE_NOT_WORKING) -COMP( 1989, kc85_5, kc85_2, 0, kc85_5, kc85, kc85_4_state, empty_init, "VEB Mikroelektronik \"Wilhelm Pieck\" Muehlhausen", "KC 85/5", MACHINE_NOT_WORKING) +COMP( 1987, kc85_2, 0, 0, kc85_3, kc85, kc_state, empty_init, u8"VEB Mikroelektronik \"Wilhelm Pieck\" Mühlhausen", "HC900 / KC 85/2", MACHINE_NOT_WORKING) +COMP( 1987, kc85_3, kc85_2, 0, kc85_3, kc85, kc_state, empty_init, u8"VEB Mikroelektronik \"Wilhelm Pieck\" Mühlhausen", "KC 85/3", MACHINE_NOT_WORKING) +COMP( 1989, kc85_4, kc85_2, 0, kc85_4, kc85, kc85_4_state, empty_init, u8"VEB Mikroelektronik \"Wilhelm Pieck\" Mühlhausen", "KC 85/4", MACHINE_NOT_WORKING) +COMP( 1989, kc85_5, kc85_2, 0, kc85_5, kc85, kc85_4_state, empty_init, u8"VEB Mikroelektronik \"Wilhelm Pieck\" Mühlhausen", "KC 85/5", MACHINE_NOT_WORKING) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/lee1220.cpp mame-0.224+dfsg.1/src/mame/drivers/lee1220.cpp --- mame-0.223+dfsg.1/src/mame/drivers/lee1220.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/lee1220.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,146 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Lee Data 1220 terminal (IBM 3278-compatible). + +****************************************************************************/ + +#include "emu.h" +#include "cpu/i8085/i8085.h" +#include "cpu/mcs48/mcs48.h" +#include "machine/am9517a.h" +#include "machine/i8251.h" +#include "machine/pit8253.h" +//#include "machine/wd1933.h" +#include "video/mc6845.h" +#include "screen.h" + +#include + + +class lee1220_state : public driver_device +{ +public: + lee1220_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_crtc(*this, "crtc") + { + } + + void lee1220(machine_config &config); + +protected: + virtual void machine_start() override; + +private: + MC6845_UPDATE_ROW(update_row); + + u8 sdlc_r(offs_t offset); + void sdlc_w(offs_t offset, u8 data); + u8 c0_r(); + + void mem_map(address_map &map); + void io_map(address_map &map); + + required_device m_maincpu; + //required_device m_sdlc; + required_device m_crtc; + + u8 m_sdlc_reg[6]; +}; + +void lee1220_state::machine_start() +{ + std::fill_n(&m_sdlc_reg[0], 6, 0); + save_item(NAME(m_sdlc_reg)); +} + +MC6845_UPDATE_ROW(lee1220_state::update_row) +{ +} + + +u8 lee1220_state::sdlc_r(offs_t offset) +{ + return m_sdlc_reg[offset]; //m_sdlc->read(~offset & 7); +} + +void lee1220_state::sdlc_w(offs_t offset, u8 data) +{ + logerror("%s: Writing %02X to WD1933 register %d\n", machine().describe_context(), data, offset); + m_sdlc_reg[offset] = data; + //m_sdlc->write(~offset & 7, ~data); +} + +u8 lee1220_state::c0_r() +{ + return 0; +} + +void lee1220_state::mem_map(address_map &map) +{ + map(0x0000, 0x2fff).rom().region("program", 0); + map(0x4000, 0x4fff).ram(); + map(0x7800, 0x7fff).ram(); + map(0x8000, 0xbfff).ram(); +} + +void lee1220_state::io_map(address_map &map) +{ + map(0x80, 0x8f).rw("dmac", FUNC(am9517a_device::read), FUNC(am9517a_device::write)); + map(0x90, 0x95).rw(FUNC(lee1220_state::sdlc_r), FUNC(lee1220_state::sdlc_w)); + map(0xa0, 0xa0).w("crtc", FUNC(hd6845s_device::address_w)); + map(0xa1, 0xa1).w("crtc", FUNC(hd6845s_device::register_w)); + map(0xb0, 0xb1).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write)); + map(0xc0, 0xc0).r(FUNC(lee1220_state::c0_r)); + map(0xd0, 0xd3).w("pit", FUNC(pit8253_device::write)); +} + +static INPUT_PORTS_START(lee1220) +INPUT_PORTS_END + +void lee1220_state::lee1220(machine_config &config) +{ + I8085A(config, m_maincpu, 10'000'000); // Intel P8085AH-2 + m_maincpu->set_addrmap(AS_PROGRAM, &lee1220_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &lee1220_state::io_map); + + AM9517A(config, "dmac", 5'000'000); // Intel P8237A-5 + + I8748(config, "kbdmcu", 5.9904_MHz_XTAL); + + //WD1933(config, m_sdlc); // WDC WD1933PL-11 + + i8251_device &usart(I8251(config, "usart", 0)); // NEC D8251AC + usart.rxrdy_handler().set_inputline(m_maincpu, I8085_RST55_LINE); + + PIT8253(config, "pit"); // Intel D8253-5 + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_color(rgb_t::green()); + screen.set_raw(28'944'000, 1152, 0, 960, 420, 0, 400); + screen.set_screen_update(m_crtc, FUNC(hd6845s_device::screen_update)); + + HD6845S(config, m_crtc, 2'412'000); // Hitachi HD46505SP/HD6845SP + m_crtc->set_screen("screen"); + m_crtc->set_show_border_area(false); + m_crtc->set_char_width(12); + m_crtc->set_update_row_callback(FUNC(lee1220_state::update_row)); +} + +// Main board XTALs: X1 = 28.944 MHz, X2 = 47.46816 MHz +// TTL daughterboard XTAL: X1 = 5.0688 MHz +// Keyboard XTAL: #20 = 5.9904 MHz +ROM_START(lee1220) + ROM_REGION(0x3000, "program", 0) + ROM_LOAD("13260303.u21", 0x0000, 0x1000, CRC(28692f78) SHA1(60957e773cb4350d82b02db8f741bd32a43365f1)) + ROM_LOAD("13260403.u22", 0x1000, 0x1000, CRC(3c54a251) SHA1(8d2849a2590be5cf765d26ff80a170b263a4b080)) + ROM_LOAD("13260503.u23", 0x2000, 0x1000, CRC(0872e674) SHA1(24d07a2cfccf03e90334daea810fe0e7c533e5ec)) + + ROM_REGION(0x400, "kbdmcu", 0) + ROM_LOAD("03278_d8748.2", 0x000, 0x400, CRC(a63ce4d8) SHA1(a713f3aae5e9096a627fab13573eee2170b42b1a)) +ROM_END + +COMP(1983, lee1220, 0, 0, lee1220, lee1220, lee1220_state, empty_init, "Lee Data", "1220 Display Terminal", MACHINE_IS_SKELETON) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/leland.cpp mame-0.224+dfsg.1/src/mame/drivers/leland.cpp --- mame-0.223+dfsg.1/src/mame/drivers/leland.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/leland.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1344,19 +1344,19 @@ */ ROM_START( alleymas ) ROM_REGION( 0x28000, "master", 0 ) - ROM_LOAD( "101", 0x00000, 0x02000, CRC(4273e260) SHA1(1b2a726e0a6fe6a60d447c987471a6e1a9e78479) ) - ROM_LOAD( "102", 0x10000, 0x02000, CRC(eb6575aa) SHA1(0876c83d13565937610b5af52aacee1ae6fd59ba) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "103", 0x12000, 0x02000, CRC(cc9d778c) SHA1(293ac75d45be4531af1982c0b99597d18bab6a05) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "104", 0x14000, 0x02000, CRC(8edb129b) SHA1(f1268617cf18c1c3fd5fb324e882db14cced3d8c) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "105", 0x16000, 0x02000, CRC(a342dc8e) SHA1(9a6657d66fba5cb1ae3d11e940467b85d47472ea) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "106", 0x18000, 0x02000, CRC(b396c254) SHA1(06b118ae07d3018209b7ae831f7667cc23d23abd) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "107", 0x1a000, 0x02000, CRC(3ca13e8c) SHA1(34e00a17ce305c8327674bd79347f01cda14bc8b) ) - ROM_CONTINUE( 0x26000, 0x02000 ) + ROM_LOAD( "02-13509-00.u101", 0x00000, 0x02000, CRC(4273e260) SHA1(1b2a726e0a6fe6a60d447c987471a6e1a9e78479) ) + ROM_LOAD( "02-13510-00.u102", 0x10000, 0x02000, CRC(eb6575aa) SHA1(0876c83d13565937610b5af52aacee1ae6fd59ba) ) + ROM_CONTINUE( 0x1c000, 0x02000 ) + ROM_LOAD( "02-13511-0x.u103", 0x12000, 0x02000, CRC(cc9d778c) SHA1(293ac75d45be4531af1982c0b99597d18bab6a05) ) /* Not verified if rev "00" or rev "01" */ + ROM_CONTINUE( 0x1e000, 0x02000 ) + ROM_LOAD( "02-13512-00.u104", 0x14000, 0x02000, CRC(8edb129b) SHA1(f1268617cf18c1c3fd5fb324e882db14cced3d8c) ) + ROM_CONTINUE( 0x20000, 0x02000 ) + ROM_LOAD( "02-13513-00.u105", 0x16000, 0x02000, CRC(a342dc8e) SHA1(9a6657d66fba5cb1ae3d11e940467b85d47472ea) ) + ROM_CONTINUE( 0x22000, 0x02000 ) + ROM_LOAD( "02-13514-00.u106", 0x18000, 0x02000, CRC(b396c254) SHA1(06b118ae07d3018209b7ae831f7667cc23d23abd) ) + ROM_CONTINUE( 0x24000, 0x02000 ) + ROM_LOAD( "02-13515-00.u107", 0x1a000, 0x02000, CRC(3ca13e8c) SHA1(34e00a17ce305c8327674bd79347f01cda14bc8b) ) + ROM_CONTINUE( 0x26000, 0x02000 ) ROM_REGION( 0x28000, "slave", 0 ) ROM_LOAD( "02-13516-00.u003", 0x00000, 0x02000, CRC(3fee63ae) SHA1(519fe4981dc2c6d025fc2f27af6682103c99dd5e) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/lucky37.cpp mame-0.224+dfsg.1/src/mame/drivers/lucky37.cpp --- mame-0.223+dfsg.1/src/mame/drivers/lucky37.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/lucky37.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -32,6 +32,21 @@ A001: marked B 9G1. Sticker: 8907 1991.03 L-21-D BET/WON MCU: Sticker: 8907 1990.10 L21-D M.COM + + Bingo 75: + A001: marks can't be seen. Sticker: WE8802-A 1989.2 + PCB marked: Wing 8802-C + + 1x scratched DIL40 (@ location 3r) + 1x 89206A 61H09516P (@ location 7s) + 1x 101B10P (@ location 7p) + 2x 06B53P (@ locations 1d & 2d) + 1x 06B49P (@ location 2b) + + 1x 12 MHz Xtal (@ location 3t) + 5x 8 DIP switches banks (@ locations 5l, 5m, 5n, 5p & 5r) + + Not much can be done until main CPU ROMs are dumped. */ @@ -211,7 +226,32 @@ ROM_LOAD( "6.bin", 0xa0000, 0x20000, CRC(3283c1b7) SHA1(7a30dd55216b47332ea7c18c2378352f405b2f0a) ) ROM_END +ROM_START( bingo75 ) // runs on wing 8802-c board + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "a001-nomarks", 0x0000, 0x10000, NO_DUMP ) + + ROM_REGION( 0x4000, "mcu", 0 ) + ROM_LOAD( "internal_rom", 0x0000, 0x4000, NO_DUMP ) + + ROM_REGION( 0x40000, "unsorted", 0 ) + ROM_LOAD( "6.bin", 0x00000, 0x10000, CRC(bda18251) SHA1(7e9ddea30bbedcc9f4b48a2ca2660505ed45ca8d) ) + ROM_LOAD( "7.bin", 0x10000, 0x10000, CRC(1316d78b) SHA1(9f7a7c5407642d2aad6765d3fb00c7fb5bd08561) ) + ROM_LOAD( "8.bin", 0x20000, 0x10000, CRC(6a3ce8f1) SHA1(48d3a1d3c1739200c10599ec9451683ba60487eb) ) + ROM_LOAD( "9.bin", 0x30000, 0x10000, CRC(325169c5) SHA1(00f3fa44c8bda7fd4a9e7855b5681f254ab6de84) ) + + ROM_REGION( 0x0700, "proms", 0 ) + ROM_LOAD( "27s21.4h", 0x0000, 0x0100, CRC(21ae1edd) SHA1(df6204f30412b5c1835146127f45956bc986b182) ) + ROM_LOAD( "27s21.4j", 0x0100, 0x0100, CRC(a6c2ed16) SHA1(e472bebdc982239ebef5ebe361fb07e6469fc5ed) ) + ROM_LOAD( "27s21.5h", 0x0200, 0x0100, CRC(a5b1dd09) SHA1(0af6eacc09742f35d2703ba011df20f582ce676a) ) + ROM_LOAD( "27s21.5j", 0x0300, 0x0100, CRC(0d985358) SHA1(ceb32eb6fd1804febdd1766f8590ae0db1b03faa) ) + ROM_LOAD( "27s21.5k", 0x0400, 0x0100, CRC(40e880c0) SHA1(74eafbf9506651991b66b6264664325204f61227) ) + ROM_LOAD( "82s129.4k", 0x0500, 0x0100, CRC(0a9e160d) SHA1(d2377850aa344b027a974ef116bb1aee852d61d8) ) + ROM_LOAD( "82s129.5f", 0x0600, 0x0100, CRC(83c3ec8f) SHA1(4a6452ef73061a446e6a8ceb9d077bc71cc8e2b2) ) +ROM_END + + GAME( 199?, lucky21, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 21", MACHINE_IS_SKELETON ) GAME( 199?, lucky21d, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 21-D", MACHINE_IS_SKELETON ) GAME( 199?, lucky25, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 25", MACHINE_IS_SKELETON ) GAME( 199?, lucky37, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Lucky 37", MACHINE_IS_SKELETON ) +GAME( 199?, bingo75, 0, lucky37, lucky37, lucky37_state, empty_init, ROT0, "Wing Co., Ltd.", "Bingo 75", MACHINE_IS_SKELETON ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/lviv.cpp mame-0.224+dfsg.1/src/mame/drivers/lviv.cpp --- mame-0.223+dfsg.1/src/mame/drivers/lviv.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/lviv.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -280,6 +280,7 @@ b: only if the CPU is requesting a RAM write c: only if the CPU is requesting a RAM read + *******************************************************************************/ #include "emu.h" @@ -287,7 +288,6 @@ #include "cpu/i8085/i8085.h" -#include "softlist.h" #include "speaker.h" #include "formats/lviv_lvt.h" @@ -429,20 +429,20 @@ config.set_maximum_quantum(attotime::from_hz(60)); I8255(config, m_ppi[0]); - m_ppi[0]->in_pa_callback().set(FUNC(lviv_state::ppi_0_porta_r)); - m_ppi[0]->out_pa_callback().set(FUNC(lviv_state::ppi_0_porta_w)); - m_ppi[0]->in_pb_callback().set(FUNC(lviv_state::ppi_0_portb_r)); - m_ppi[0]->out_pb_callback().set(FUNC(lviv_state::ppi_0_portb_w)); - m_ppi[0]->in_pc_callback().set(FUNC(lviv_state::ppi_0_portc_r)); - m_ppi[0]->out_pc_callback().set(FUNC(lviv_state::ppi_0_portc_w)); + m_ppi[0]->in_pa_callback().set(FUNC(lviv_state::ppi0_porta_r)); + m_ppi[0]->out_pa_callback().set(FUNC(lviv_state::ppi0_porta_w)); + m_ppi[0]->in_pb_callback().set(FUNC(lviv_state::ppi0_portb_r)); + m_ppi[0]->out_pb_callback().set(FUNC(lviv_state::ppi0_portb_w)); + m_ppi[0]->in_pc_callback().set(FUNC(lviv_state::ppi0_portc_r)); + m_ppi[0]->out_pc_callback().set(FUNC(lviv_state::ppi0_portc_w)); I8255(config, m_ppi[1]); - m_ppi[1]->in_pa_callback().set(FUNC(lviv_state::ppi_1_porta_r)); - m_ppi[1]->out_pa_callback().set(FUNC(lviv_state::ppi_1_porta_w)); - m_ppi[1]->in_pb_callback().set(FUNC(lviv_state::ppi_1_portb_r)); - m_ppi[1]->out_pb_callback().set(FUNC(lviv_state::ppi_1_portb_w)); - m_ppi[1]->in_pc_callback().set(FUNC(lviv_state::ppi_1_portc_r)); - m_ppi[1]->out_pc_callback().set(FUNC(lviv_state::ppi_1_portc_w)); + m_ppi[1]->in_pa_callback().set(FUNC(lviv_state::ppi1_porta_r)); + m_ppi[1]->out_pa_callback().set(FUNC(lviv_state::ppi1_porta_w)); + m_ppi[1]->in_pb_callback().set(FUNC(lviv_state::ppi1_portb_r)); + m_ppi[1]->out_pb_callback().set(FUNC(lviv_state::ppi1_portb_w)); + m_ppi[1]->in_pc_callback().set(FUNC(lviv_state::ppi1_portc_r)); + m_ppi[1]->out_pc_callback().set(FUNC(lviv_state::ppi1_portc_w)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); @@ -476,14 +476,14 @@ ROM_START(lviv) - ROM_REGION(0x14000,"maincpu",0) + ROM_REGION(0x4000,"maincpu",0) ROM_SYSTEM_BIOS( 0, "lviv", "Lviv/L'vov" ) - ROMX_LOAD("lviv.bin", 0x10000, 0x4000, CRC(44a347d9) SHA1(74e067493b2b7d9ab17333202009a1a4f5e460fd), ROM_BIOS(0)) + ROMX_LOAD("lviv.bin", 0x0000, 0x4000, CRC(44a347d9) SHA1(74e067493b2b7d9ab17333202009a1a4f5e460fd), ROM_BIOS(0)) ROM_SYSTEM_BIOS( 1, "lviva", "Lviv/L'vov (alternate)" ) - ROMX_LOAD("lviva.bin", 0x10000, 0x4000, CRC(551622f5) SHA1(b225f3542b029d767b7db9dce562e8a3f77f92a2), ROM_BIOS(1)) + ROMX_LOAD("lviva.bin", 0x0000, 0x4000, CRC(551622f5) SHA1(b225f3542b029d767b7db9dce562e8a3f77f92a2), ROM_BIOS(1)) ROM_SYSTEM_BIOS( 2, "lvivp", "Lviv/L'vov (prototype)" ) - ROMX_LOAD("lvivp.bin", 0x10000, 0x4000, CRC(f171c282) SHA1(c7dc2bdb02400e6b5cdcc50040eb06f506a7ed84), ROM_BIOS(2)) + ROMX_LOAD("lvivp.bin", 0x0000, 0x4000, CRC(f171c282) SHA1(c7dc2bdb02400e6b5cdcc50040eb06f506a7ed84), ROM_BIOS(2)) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, lviv, 0, 0, lviv, lviv, lviv_state, empty_init, "V. I. Lenin", "PK-01 Lviv", 0 ) +COMP( 1989, lviv, 0, 0, lviv, lviv, lviv_state, empty_init, "V. I. Lenin", "PK-01 Lviv", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/m72.cpp mame-0.224+dfsg.1/src/mame/drivers/m72.cpp --- mame-0.223+dfsg.1/src/mame/drivers/m72.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/m72.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2189,7 +2189,7 @@ ***************************************************************************/ ROM_START( rtype ) - ROM_REGION( 0x100000, "maincpu", 0 ) /* Roms located on the M72-ROM-C rom board */ + ROM_REGION( 0x100000, "maincpu", 0 ) // Roms located on the M72-ROM-C rom board ROM_LOAD16_BYTE( "rt_r-h0-b.1b", 0x00001, 0x10000, CRC(591c7754) SHA1(0b9d5474bc5963224923126cf84d74a39b8270cc) ) ROM_LOAD16_BYTE( "rt_r-l0-b.3b", 0x00000, 0x10000, CRC(a1928df0) SHA1(3001c1b87cd1d441ba1226fb5b9dd6268458c0e8) ) ROM_LOAD16_BYTE( "rt_r-h1-b.1c", 0x20001, 0x10000, CRC(a9d71eca) SHA1(008d1dc289df2ae2ba8f93d319c2b2c108cb9b89) ) @@ -2197,8 +2197,8 @@ ROM_LOAD16_BYTE( "rt_r-l1-b.3c", 0x20000, 0x10000, CRC(0df3573d) SHA1(0144c846fd0bdb3e4d790f6cb7bb64829e931b76) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) // Roms located on the M72-ROM-C rom board + ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) // sprites ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) ) ROM_RELOAD( 0x18000, 0x08000 ) ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) @@ -2211,21 +2211,21 @@ ROM_LOAD( "rt_r-31.3l", 0x70000, 0x08000, CRC(8558355d) SHA1(b5467d1f22f6e5f90c5d8a8ac2d55974f287d589) ) ROM_RELOAD( 0x78000, 0x08000 ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ + ROM_REGION( 0x20000, "gfx2", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) // tiles #1 ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ + ROM_REGION( 0x20000, "gfx3", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) // tiles #2 ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) ROM_END ROM_START( rtypej ) - ROM_REGION( 0x100000, "maincpu", 0 ) /* Roms located on the M72-ROM-C rom board */ + ROM_REGION( 0x100000, "maincpu", 0 ) // Roms located on the M72-ROM-C rom board ROM_LOAD16_BYTE( "rt_r-h0-.1b", 0x00001, 0x10000, CRC(c2940df2) SHA1(cbccd205ef81a0e39990a34d46e3f7d52b62e385) ) ROM_LOAD16_BYTE( "rt_r-l0-.3b", 0x00000, 0x10000, CRC(858cc0f6) SHA1(7a256fe3aa3a96e161dd485a90b18c421b61458b) ) ROM_LOAD16_BYTE( "rt_r-h1-.1c", 0x20001, 0x10000, CRC(5bcededa) SHA1(4ada3fd207fa57751f8e3d885bc91b374e27035d) ) @@ -2233,8 +2233,8 @@ ROM_LOAD16_BYTE( "rt_r-l1-.3c", 0x20000, 0x10000, CRC(4821141c) SHA1(df6cf04c3ecd04b6f27a96871848904575414dae) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) // Roms located on the M72-ROM-C rom board + ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) // sprites ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) ) ROM_RELOAD( 0x18000, 0x08000 ) ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) @@ -2247,21 +2247,21 @@ ROM_LOAD( "rt_r-31.3l", 0x70000, 0x08000, CRC(8558355d) SHA1(b5467d1f22f6e5f90c5d8a8ac2d55974f287d589) ) ROM_RELOAD( 0x78000, 0x08000 ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ + ROM_REGION( 0x20000, "gfx2", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) // tiles #1 ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ + ROM_REGION( 0x20000, "gfx3", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) // tiles #2 ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) ROM_END ROM_START( rtypejp ) - ROM_REGION( 0x100000, "maincpu", 0 ) /* Roms located on the M72-ROM-C rom board */ + ROM_REGION( 0x100000, "maincpu", 0 ) // Roms located on the M72-ROM-C rom board ROM_LOAD16_BYTE( "db_b1.bin", 0x00001, 0x10000, CRC(c1865141) SHA1(3302b6529aa903d81eb2196d745eb4f7f8316857) ) ROM_LOAD16_BYTE( "db_a1.bin", 0x00000, 0x10000, CRC(5ad2bd90) SHA1(0937dbbdf0cbce2e81cecf4d770bbd8c6bd82801) ) ROM_LOAD16_BYTE( "db_b2.bin", 0x20001, 0x10000, CRC(b4f6407e) SHA1(4a00d8e104c580900b4feb318dd162b77b71d0a5) ) @@ -2269,8 +2269,8 @@ ROM_LOAD16_BYTE( "db_a2.bin", 0x20000, 0x10000, CRC(6098d86f) SHA1(c6c9c1c2c30d5f190c40e000004bd21606efb8b0) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) // Roms located on the M72-ROM-C rom board + ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) // sprites ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) ) ROM_RELOAD( 0x18000, 0x08000 ) ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) @@ -2283,21 +2283,21 @@ ROM_LOAD( "rt_r-31.3l", 0x70000, 0x08000, CRC(8558355d) SHA1(b5467d1f22f6e5f90c5d8a8ac2d55974f287d589) ) ROM_RELOAD( 0x78000, 0x08000 ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ + ROM_REGION( 0x20000, "gfx2", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) // tiles #1 ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ + ROM_REGION( 0x20000, "gfx3", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) // tiles #2 ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) ROM_END ROM_START( rtypeu ) - ROM_REGION( 0x100000, "maincpu", 0 ) /* Roms located on the M72-ROM-C rom board */ + ROM_REGION( 0x100000, "maincpu", 0 ) // Roms located on the M72-ROM-C rom board ROM_LOAD16_BYTE( "rt_r-h0-a.1b", 0x00001, 0x10000, CRC(36008a4e) SHA1(832006cb14a34e1671e305cc8ae606c3c6185a6a) ) ROM_LOAD16_BYTE( "rt_r-l0-a.3b", 0x00000, 0x10000, CRC(4aaa668e) SHA1(87059460b59f43f2ca8cd959d76f721facd9de96) ) ROM_LOAD16_BYTE( "rt_r-h1-a.1c", 0x20001, 0x10000, CRC(7ebb2a53) SHA1(1466df19888c3374847eb77f702060647e49d6ad) ) @@ -2305,8 +2305,8 @@ ROM_LOAD16_BYTE( "rt_r-l1-a.3c", 0x20000, 0x10000, CRC(c28b103b) SHA1(f294a23c3917b97812eb4c7f3a99253fd0cbb7ea) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) // Roms located on the M72-ROM-C rom board + ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) // sprites ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) ) ROM_RELOAD( 0x18000, 0x08000 ) ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) @@ -2319,32 +2319,32 @@ ROM_LOAD( "rt_r-31.3l", 0x70000, 0x08000, CRC(8558355d) SHA1(b5467d1f22f6e5f90c5d8a8ac2d55974f287d589) ) ROM_RELOAD( 0x78000, 0x08000 ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ + ROM_REGION( 0x20000, "gfx2", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) // tiles #1 ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ + ROM_REGION( 0x20000, "gfx3", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) // tiles #2 ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) - ROM_REGION( 0x0200, "proms", 0 ) /* Located on M72-A-C CPU/Sound board */ - ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) /* TBP24S10 */ - ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) /* TBP24S10 */ + ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board + ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10 + ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10 ROM_REGION( 0x0003, "plds", 0 ) - /* Located on M72-ROM-C rom board */ - ROM_LOAD( "m72_r-3a-.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8 at 3A */ - /* Located on M72-A-C CPU/Sound board */ - ROM_LOAD( "m72_a-3d-.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8 at IC11 */ - ROM_LOAD( "m72_a-4d-.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8 at IC19 */ + // Located on M72-ROM-C rom board + ROM_LOAD( "m72_r-3a-.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8 at 3A + // Located on M72-A-C CPU/Sound board + ROM_LOAD( "m72_a-3d-.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8 at IC11 + ROM_LOAD( "m72_a-4d-.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8 at IC19 ROM_END ROM_START( rtypeb ) - ROM_REGION( 0x100000, "maincpu", 0 ) /* Roms located on the M72-ROM-C rom board */ + ROM_REGION( 0x100000, "maincpu", 0 ) // Roms located on the M72-ROM-C rom board ROM_LOAD16_BYTE( "7.512", 0x00001, 0x10000, CRC(eacc8024) SHA1(6bcf1d4ea182b7341eac736d2a5d5f70deec0758) ) ROM_LOAD16_BYTE( "1.512", 0x00000, 0x10000, CRC(2e5fe27b) SHA1(a3364be5ab9c67aaa2152baf39ea12c571eca3cc) ) ROM_LOAD16_BYTE( "8.512", 0x20001, 0x10000, CRC(22cc4950) SHA1(ada5cffc13c38391a334411632237166a6be4938) ) @@ -2352,8 +2352,8 @@ ROM_LOAD16_BYTE( "2.512", 0x20000, 0x10000, CRC(ada7b90e) SHA1(c9d2caed95b95d1c1718a10766bc88b2f8f51619) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) // Roms located on the M72-ROM-C rom board + ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) // sprites ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) ) ROM_RELOAD( 0x18000, 0x08000 ) ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) @@ -2366,14 +2366,14 @@ ROM_LOAD( "rt_r-31.3l", 0x70000, 0x08000, CRC(8558355d) SHA1(b5467d1f22f6e5f90c5d8a8ac2d55974f287d589) ) ROM_RELOAD( 0x78000, 0x08000 ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ + ROM_REGION( 0x20000, "gfx2", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) // tiles #1 ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ + ROM_REGION( 0x20000, "gfx3", 0 ) // Roms located on the M72-B-D rom board + ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) // tiles #2 ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) @@ -2391,11 +2391,11 @@ ROM_LOAD16_BYTE( "mh_c-l3-b.ic34", 0x60000, 0x10000, CRC(11562221) SHA1(a2f136a487fb6f30350e8d1e26c0729eb0686c7d) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "mh_c-pr-b.ic1", 0x00000, 0x10000, NO_DUMP ) /* i8751 MCU labeled MH C-PR-B - read protected */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "mh_c-pr-b.ic1", 0x00000, 0x10000, NO_DUMP ) // i8751 MCU labeled MH C-PR-B - read protected ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "mh_c-00-a.ic53", 0x00000, 0x10000, CRC(f6e6e660) SHA1(e066e5ed37719cf2b6fd36e0117f11325bb06f9c) ) /* sprites */ + ROM_LOAD( "mh_c-00-a.ic53", 0x00000, 0x10000, CRC(f6e6e660) SHA1(e066e5ed37719cf2b6fd36e0117f11325bb06f9c) ) // sprites ROM_LOAD( "mh_c-01-b.ic52", 0x10000, 0x10000, CRC(708cdd37) SHA1(24f3fcd381422f0d75410c2af7a56744e3b4a699) ) ROM_LOAD( "mh_c-10-a.ic51", 0x20000, 0x10000, CRC(292c8520) SHA1(c552090d295ee1c1ca611b0cddee356e509e2045) ) ROM_LOAD( "mh_c-11-b.ic50", 0x30000, 0x10000, CRC(20904cf3) SHA1(71fe505f2da53c2eb445b7b758d257d6af42e6f1) ) @@ -2405,18 +2405,18 @@ ROM_LOAD( "mh_c-31-b.ic46", 0x70000, 0x10000, CRC(23134ec5) SHA1(43453f8a13b51310e04729dc828d391ca9c04da2) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "mh_b-a0-b.ic21", 0x00000, 0x10000, CRC(e46ed7bf) SHA1(75abb5f40629f7c40a610a44e068b6c4e3a5126e) ) /* tiles #1 */ + ROM_LOAD( "mh_b-a0-b.ic21", 0x00000, 0x10000, CRC(e46ed7bf) SHA1(75abb5f40629f7c40a610a44e068b6c4e3a5126e) ) // tiles #1 ROM_LOAD( "mh_b-a1-b.ic22", 0x10000, 0x10000, CRC(590605ff) SHA1(fbb5c0cebd28b08d4ce39db4055d6343620e0f1c) ) ROM_LOAD( "mh_b-a2-b.ic20", 0x20000, 0x10000, CRC(f8158226) SHA1(bb3a8686cd89bb8265b6b9e03682cc0bf6533793) ) ROM_LOAD( "mh_b-a3-b.ic23", 0x30000, 0x10000, CRC(0f07b9b7) SHA1(63dbec17097f07eb39299372b736fbbc1b11b65e) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "mh_b-b0-.ic26", 0x00000, 0x10000, CRC(b5b95776) SHA1(4685b56071b916ce712c45f24da8068dd7e40ed1) ) /* tiles #2 */ + ROM_LOAD( "mh_b-b0-.ic26", 0x00000, 0x10000, CRC(b5b95776) SHA1(4685b56071b916ce712c45f24da8068dd7e40ed1) ) // tiles #2 ROM_LOAD( "mh_b-b1-.ic27", 0x10000, 0x10000, CRC(74ca16ee) SHA1(7984bc9a0b46e1b4a8ecac7528d57606305aad73) ) ROM_LOAD( "mh_b-b2-.ic25", 0x20000, 0x10000, CRC(b82cca04) SHA1(c12b95be311205181b01d15021bcf9f01ed3e0a3) ) ROM_LOAD( "mh_b-b3-.ic24", 0x30000, 0x10000, CRC(a7afc920) SHA1(92c75463ada39184e731b82ef2883ae6f1f67482) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "mh_c-v0-b.ic44", 0x00000, 0x10000, CRC(d0c27e58) SHA1(fec76217cc0c04c723989c3ec127a2bd33d64c60) ) ROM_END @@ -2431,28 +2431,28 @@ ROM_LOAD16_BYTE( "mh_c-l3-.ic34", 0x60000, 0x10000, CRC(c0982536) SHA1(45399f8d0577c6e2a277a69303954ce5d2de7c07) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "mh_c-pr-.ic1", 0x00000, 0x1000, CRC(897dc4ee) SHA1(05a24bf76e8fa9ca96ba9376cbf44d299df04138) ) /* i8751 MCU labeled MH C-PR- */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "mh_c-pr-.ic1", 0x00000, 0x1000, CRC(897dc4ee) SHA1(05a24bf76e8fa9ca96ba9376cbf44d299df04138) ) // i8751 MCU labeled MH C-PR- ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "mh_c-00.ic53", 0x00000, 0x20000, CRC(dec4e121) SHA1(92169b523f1600e994e016dc1959a52958e1d89d) ) /* sprites */ + ROM_LOAD( "mh_c-00.ic53", 0x00000, 0x20000, CRC(dec4e121) SHA1(92169b523f1600e994e016dc1959a52958e1d89d) ) // sprites ROM_LOAD( "mh_c-10.ic51", 0x20000, 0x20000, CRC(7aaa151e) SHA1(efd980bb2eed7084354b7a4aa2f733cd2f876741) ) ROM_LOAD( "mh_c-20.ic49", 0x40000, 0x20000, CRC(eae0de74) SHA1(3a2469c0eeb18131f989807afb50228f57ccea30) ) ROM_LOAD( "mh_c-30.ic47", 0x60000, 0x20000, CRC(01d5052f) SHA1(5d5e70913bb7af48193c70209595f27a64fa6cac) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "mh_b-a0.ic21", 0x00000, 0x10000, CRC(6a0db256) SHA1(fa3a2dc03da5bbe06a9c9b3d4ed4fddb47c469ac) ) /* tiles #1 */ + ROM_LOAD( "mh_b-a0.ic21", 0x00000, 0x10000, CRC(6a0db256) SHA1(fa3a2dc03da5bbe06a9c9b3d4ed4fddb47c469ac) ) // tiles #1 ROM_LOAD( "mh_b-a1.ic22", 0x10000, 0x10000, CRC(14ec9795) SHA1(4842e076115efe9daf00dab8f61516d28c19baae) ) ROM_LOAD( "mh_b-a2.ic20", 0x20000, 0x10000, CRC(dfcb510e) SHA1(2387cde4ec0bae176486e1f7541103fd557fe255) ) ROM_LOAD( "mh_b-a3.ic23", 0x30000, 0x10000, CRC(957e329b) SHA1(9d48a0b84915e1cef0b0311a3581991dc83ee199) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "mh_b-b0-.ic26", 0x00000, 0x10000, CRC(b5b95776) SHA1(4685b56071b916ce712c45f24da8068dd7e40ed1) ) /* tiles #2 */ + ROM_LOAD( "mh_b-b0-.ic26", 0x00000, 0x10000, CRC(b5b95776) SHA1(4685b56071b916ce712c45f24da8068dd7e40ed1) ) // tiles #2 ROM_LOAD( "mh_b-b1-.ic27", 0x10000, 0x10000, CRC(74ca16ee) SHA1(7984bc9a0b46e1b4a8ecac7528d57606305aad73) ) ROM_LOAD( "mh_b-b2-.ic25", 0x20000, 0x10000, CRC(b82cca04) SHA1(c12b95be311205181b01d15021bcf9f01ed3e0a3) ) ROM_LOAD( "mh_b-b3-.ic24", 0x30000, 0x10000, CRC(a7afc920) SHA1(92c75463ada39184e731b82ef2883ae6f1f67482) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "mh_c-v0-b.ic44", 0x00000, 0x10000, CRC(d0c27e58) SHA1(fec76217cc0c04c723989c3ec127a2bd33d64c60) ) ROM_END @@ -2594,40 +2594,40 @@ ROM_LOAD16_BYTE( "nin_c-l3-b.6a", 0x60000, 0x10000, CRC(fd7408b8) SHA1(3cbe72835a561c50265a047f0f5cd62db48378fd) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "nin_c-pr-b.ic1", 0x00000, 0x01000, NO_DUMP ) /* i8751 MCU labeled NIN C-PR-B - read protected */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "nin_c-pr-b.ic1", 0x00000, 0x01000, NO_DUMP ) // i8751 MCU labeled NIN C-PR-B - read protected ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "nin-r00.7m", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) /* sprites */ + ROM_LOAD( "nin-r00.7m", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) // sprites ROM_LOAD( "nin-r10.7j", 0x20000, 0x20000, CRC(0caad107) SHA1(c4eff00327313e05ac8f7c6dbee3a0de1c83fadd) ) ROM_LOAD( "nin-r20.7f", 0x40000, 0x20000, CRC(ef3617d3) SHA1(16c175cf45559aacdea6e4002dd8a87f16817cfb) ) ROM_LOAD( "nin-r30.7d", 0x60000, 0x20000, CRC(175d2a24) SHA1(d1887efd4d8e74c38c53dbbc541ca8d17f29eb59) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "nin_b-a0.4c", 0x00000, 0x10000, CRC(63f8f658) SHA1(82c02d0f7a2d95dfd8d300c46312d511524775ce) ) /* tiles #1 */ + ROM_LOAD( "nin_b-a0.4c", 0x00000, 0x10000, CRC(63f8f658) SHA1(82c02d0f7a2d95dfd8d300c46312d511524775ce) ) // tiles #1 ROM_LOAD( "nin_b-a1.4d", 0x10000, 0x10000, CRC(75eb8306) SHA1(2abc359a0bb2863759a68ed60e730761b9751829) ) ROM_LOAD( "nin_b-a2.4b", 0x20000, 0x10000, CRC(df532172) SHA1(58b5a79a57e71405b3e1abd41d54cf6a4d12873a) ) ROM_LOAD( "nin_b-a3.4e", 0x30000, 0x10000, CRC(4dedd64c) SHA1(8a5c73a024d95e6fe3ab70daafcd5b235418ad36) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "b0.4j", 0x00000, 0x10000, CRC(1b0e08a6) SHA1(892686594970c264babbe8673c258929a5e480f6) ) /* tiles #2 */ + ROM_LOAD( "b0.4j", 0x00000, 0x10000, CRC(1b0e08a6) SHA1(892686594970c264babbe8673c258929a5e480f6) ) // tiles #2 ROM_LOAD( "b1.4k", 0x10000, 0x10000, CRC(728727f0) SHA1(2f594c77a847ebee71c9da8a644f83ea2a1313d7) ) ROM_LOAD( "b2.4h", 0x20000, 0x10000, CRC(f87efd75) SHA1(16474c7ab57b4fbb5cb50799ea6a2326c66706b5) ) ROM_LOAD( "b3.4f", 0x30000, 0x10000, CRC(98856cb4) SHA1(aa4fbae972d2e827c75650a71ab4ef73a33cd018) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "nin-v0.7a", 0x00000, 0x10000, CRC(a32e8caf) SHA1(63d56ad3a63fb089056e4a170159120287594ea8) ) - ROM_REGION( 0x0200, "proms", 0 ) /* Located on M72-A-C CPU/Sound board */ - ROM_LOAD( "m72_a-8l.8l", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) /* TBP24S10 */ - ROM_LOAD( "m72_a-9l.9l", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) /* TBP24S10 */ + ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board + ROM_LOAD( "m72_a-8l.8l", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10 + ROM_LOAD( "m72_a-9l.9l", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10 ROM_REGION( 0x0300, "plds", 0 ) - /* Located on M72-ROM-C rom board */ - ROM_LOAD( "nin_c-3f.3f", 0x0000, 0x0100, CRC(5402fc07) SHA1(fa4284710b31be62ab99b0e1d60844db9a8d843e) ) /* TBP16L8 */ - /* Located on M72-A-C CPU/Sound board */ - ROM_LOAD( "m72_a-3d.3d", 0x0100, 0x0100, CRC(de85dac3) SHA1(af83b0325f28fbb1bcc424c1b58ff0f4b49f6b67) ) /* TBP16L8 */ - ROM_LOAD( "m72_a-4d.4d", 0x0200, 0x0100, CRC(59676de1) SHA1(fcf35f5463c14a4b06d58684c47ea9de5216d1da) ) /* TBP16L8 */ + // Located on M72-ROM-C rom board + ROM_LOAD( "nin_c-3f.3f", 0x0000, 0x0100, CRC(5402fc07) SHA1(fa4284710b31be62ab99b0e1d60844db9a8d843e) ) // TBP16L8 + // Located on M72-A-C CPU/Sound board + ROM_LOAD( "m72_a-3d.3d", 0x0100, 0x0100, CRC(de85dac3) SHA1(af83b0325f28fbb1bcc424c1b58ff0f4b49f6b67) ) // TBP16L8 + ROM_LOAD( "m72_a-4d.4d", 0x0200, 0x0100, CRC(59676de1) SHA1(fcf35f5463c14a4b06d58684c47ea9de5216d1da) ) // TBP16L8 ROM_END ROM_START( nspiritj ) @@ -2643,28 +2643,28 @@ ROM_LOAD16_BYTE( "nin_c-l3.6a", 0x60000, 0x10000, CRC(e754a87a) SHA1(9951d972ed13a0415c827beff122bc7ddb078447) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "nin_c-pr-.ic1", 0x00000, 0x01000, CRC(802d440a) SHA1(45b844b831aa6d5d002e3960e17fb5a058b02a29) ) /* i8751 MCU labeled NIN C-PR- */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "nin_c-pr-.ic1", 0x00000, 0x01000, CRC(802d440a) SHA1(45b844b831aa6d5d002e3960e17fb5a058b02a29) ) // i8751 MCU labeled NIN C-PR- ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "nin-r00.7m", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) /* sprites */ + ROM_LOAD( "nin-r00.7m", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) // sprites ROM_LOAD( "nin-r10.7j", 0x20000, 0x20000, CRC(0caad107) SHA1(c4eff00327313e05ac8f7c6dbee3a0de1c83fadd) ) ROM_LOAD( "nin-r20.7f", 0x40000, 0x20000, CRC(ef3617d3) SHA1(16c175cf45559aacdea6e4002dd8a87f16817cfb) ) ROM_LOAD( "nin-r30.7d", 0x60000, 0x20000, CRC(175d2a24) SHA1(d1887efd4d8e74c38c53dbbc541ca8d17f29eb59) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "nin_b-a0.4c", 0x00000, 0x10000, CRC(63f8f658) SHA1(82c02d0f7a2d95dfd8d300c46312d511524775ce) ) /* tiles #1 */ + ROM_LOAD( "nin_b-a0.4c", 0x00000, 0x10000, CRC(63f8f658) SHA1(82c02d0f7a2d95dfd8d300c46312d511524775ce) ) // tiles #1 ROM_LOAD( "nin_b-a1.4d", 0x10000, 0x10000, CRC(75eb8306) SHA1(2abc359a0bb2863759a68ed60e730761b9751829) ) ROM_LOAD( "nin_b-a2.4b", 0x20000, 0x10000, CRC(df532172) SHA1(58b5a79a57e71405b3e1abd41d54cf6a4d12873a) ) ROM_LOAD( "nin_b-a3.4e", 0x30000, 0x10000, CRC(4dedd64c) SHA1(8a5c73a024d95e6fe3ab70daafcd5b235418ad36) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "b0.4j", 0x00000, 0x10000, CRC(1b0e08a6) SHA1(892686594970c264babbe8673c258929a5e480f6) ) /* tiles #2 */ + ROM_LOAD( "b0.4j", 0x00000, 0x10000, CRC(1b0e08a6) SHA1(892686594970c264babbe8673c258929a5e480f6) ) // tiles #2 ROM_LOAD( "b1.4k", 0x10000, 0x10000, CRC(728727f0) SHA1(2f594c77a847ebee71c9da8a644f83ea2a1313d7) ) ROM_LOAD( "b2.4h", 0x20000, 0x10000, CRC(f87efd75) SHA1(16474c7ab57b4fbb5cb50799ea6a2326c66706b5) ) ROM_LOAD( "b3.4f", 0x30000, 0x10000, CRC(98856cb4) SHA1(aa4fbae972d2e827c75650a71ab4ef73a33cd018) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "nin-v0.7a", 0x00000, 0x10000, CRC(a32e8caf) SHA1(63d56ad3a63fb089056e4a170159120287594ea8) ) ROM_END @@ -2678,28 +2678,28 @@ ROM_LOAD16_BYTE( "if-c-l3.ic34", 0x40000, 0x20000, CRC(c66ae348) SHA1(eca5096ebd5bffc6e68f3fc9969cda9679bd921f) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "if_c-pr-a.ic1", 0x00000, 0x01000, CRC(55f10458) SHA1(d520ec2b075c94d76d97e0105644ff96384b378c) ) /* i8751 MCU labeled IF C-PR-A */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "if_c-pr-a.ic1", 0x00000, 0x01000, CRC(55f10458) SHA1(d520ec2b075c94d76d97e0105644ff96384b378c) ) // i8751 MCU labeled IF C-PR-A ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "if-c-00.ic53", 0x00000, 0x20000, CRC(745e6638) SHA1(43fb1f9da4190fea67eee3aee8caf4219becc21b) ) /* sprites */ + ROM_LOAD( "if-c-00.ic53", 0x00000, 0x20000, CRC(745e6638) SHA1(43fb1f9da4190fea67eee3aee8caf4219becc21b) ) // sprites ROM_LOAD( "if-c-10.ic51", 0x20000, 0x20000, CRC(b7108449) SHA1(1f41ebe7164fab86958caaf6749b99425e682657) ) ROM_LOAD( "if-c-20.ic49", 0x40000, 0x20000, CRC(aef33cba) SHA1(2d8a8458207d0c790c81b1285366463c8540d190) ) ROM_LOAD( "if-c-30.ic47", 0x60000, 0x20000, CRC(1f98e695) SHA1(5fddcfb17523f8e96f4b85f0cb15d837b81f2bd4) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "if-a-a0.ic21", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) /* tiles #1 */ + ROM_LOAD( "if-a-a0.ic21", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) // tiles #1 ROM_LOAD( "if-a-a1.ic22", 0x10000, 0x10000, CRC(6bd2845b) SHA1(149cf14f919590da88b9a8e254690da010709862) ) ROM_LOAD( "if-a-a2.ic20", 0x20000, 0x10000, CRC(090d50e5) SHA1(4f2a7c76320b3f8dafae90a246187e034fe7562b) ) ROM_LOAD( "if-a-a3.ic23", 0x30000, 0x10000, CRC(3a8e3083) SHA1(8a75d556790b6bea41ead1a5f95589dd293bdf4e) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "if-a-b0.ic26", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) /* tiles #2 */ + ROM_LOAD( "if-a-b0.ic26", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) // tiles #2 ROM_LOAD( "if-a-b1.ic27", 0x10000, 0x10000, CRC(e9bfe23e) SHA1(f97a68dbdce7e06d07faab19acf7625cdc8eeaa8) ) ROM_LOAD( "if-a-b2.ic25", 0x20000, 0x10000, CRC(256e50f2) SHA1(9e9fda4f1f1449548942c0da4478f61fe0d263d1) ) ROM_LOAD( "if-a-b3.ic24", 0x30000, 0x10000, CRC(4c682785) SHA1(f61f1227e0ad629fdfca106306b17a9f6a9959e3) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "if-c-v0.ic44", 0x00000, 0x10000, CRC(cb64a194) SHA1(940fad6b9147bccc8290e112f5973f8ea062b52f) ) ROM_LOAD( "if-c-v1.ic45", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) ) ROM_END @@ -2713,28 +2713,28 @@ ROM_LOAD16_BYTE( "if-c-l3.ic34", 0x40000, 0x20000, CRC(c66ae348) SHA1(eca5096ebd5bffc6e68f3fc9969cda9679bd921f) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "if_c-pr-.ic1", 0x00000, 0x01000, CRC(ef0d5098) SHA1(068b73937588e16a318a094dfe2fb1293b1a1711) ) /* i8751 MCU labeled IF C-PR- */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "if_c-pr-.ic1", 0x00000, 0x01000, CRC(ef0d5098) SHA1(068b73937588e16a318a094dfe2fb1293b1a1711) ) // i8751 MCU labeled IF C-PR- ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "if-c-00.ic53", 0x00000, 0x20000, CRC(745e6638) SHA1(43fb1f9da4190fea67eee3aee8caf4219becc21b) ) /* sprites */ + ROM_LOAD( "if-c-00.ic53", 0x00000, 0x20000, CRC(745e6638) SHA1(43fb1f9da4190fea67eee3aee8caf4219becc21b) ) // sprites ROM_LOAD( "if-c-10.ic51", 0x20000, 0x20000, CRC(b7108449) SHA1(1f41ebe7164fab86958caaf6749b99425e682657) ) ROM_LOAD( "if-c-20.ic49", 0x40000, 0x20000, CRC(aef33cba) SHA1(2d8a8458207d0c790c81b1285366463c8540d190) ) ROM_LOAD( "if-c-30.ic47", 0x60000, 0x20000, CRC(1f98e695) SHA1(5fddcfb17523f8e96f4b85f0cb15d837b81f2bd4) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "if-a-a0.ic21", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) /* tiles #1 */ + ROM_LOAD( "if-a-a0.ic21", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) // tiles #1 ROM_LOAD( "if-a-a1.ic22", 0x10000, 0x10000, CRC(6bd2845b) SHA1(149cf14f919590da88b9a8e254690da010709862) ) ROM_LOAD( "if-a-a2.ic20", 0x20000, 0x10000, CRC(090d50e5) SHA1(4f2a7c76320b3f8dafae90a246187e034fe7562b) ) ROM_LOAD( "if-a-a3.ic23", 0x30000, 0x10000, CRC(3a8e3083) SHA1(8a75d556790b6bea41ead1a5f95589dd293bdf4e) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "if-a-b0.ic26", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) /* tiles #2 */ + ROM_LOAD( "if-a-b0.ic26", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) // tiles #2 ROM_LOAD( "if-a-b1.ic27", 0x10000, 0x10000, CRC(e9bfe23e) SHA1(f97a68dbdce7e06d07faab19acf7625cdc8eeaa8) ) ROM_LOAD( "if-a-b2.ic25", 0x20000, 0x10000, CRC(256e50f2) SHA1(9e9fda4f1f1449548942c0da4478f61fe0d263d1) ) ROM_LOAD( "if-a-b3.ic24", 0x30000, 0x10000, CRC(4c682785) SHA1(f61f1227e0ad629fdfca106306b17a9f6a9959e3) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "if-c-v0.ic44", 0x00000, 0x10000, CRC(cb64a194) SHA1(940fad6b9147bccc8290e112f5973f8ea062b52f) ) ROM_LOAD( "if-c-v1.ic45", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) ) ROM_END @@ -2756,7 +2756,7 @@ ROM_LOAD( "25.ic27.2l", 0x00000, 0x2000, CRC(d83359a2) SHA1(2d486bf4a873abfe591e0d9383f9e230f47bc42a) ) // i80c31 instead of i8751, contents identical to imgfightj MCU, with second half padded with 0xff ROM_REGION( 0x080000, "sprites", 0 ) // half size ROMs, but identical content - ROM_LOAD( "ic96.7k", 0x00000, 0x10000, CRC(d4febb03) SHA1(6fe53b198bdcef1708ff134c64af9c064e274e1b) ) /* sprites */ + ROM_LOAD( "ic96.7k", 0x00000, 0x10000, CRC(d4febb03) SHA1(6fe53b198bdcef1708ff134c64af9c064e274e1b) ) // sprites ROM_LOAD( "ic97.7l", 0x10000, 0x10000, CRC(973d7bbc) SHA1(409242ddc7eb90564a15b222641e53d11ab1e04a) ) ROM_LOAD( "ic115.9k", 0x20000, 0x10000, CRC(2328880b) SHA1(a35c77a7d04614dbfbca4c79bb3e729115129ee4) ) ROM_LOAD( "ic116.9l", 0x30000, 0x10000, CRC(6da001ea) SHA1(473ed89b77809b3b76bfa9f5ca4008c9534cdbb4) ) @@ -2766,53 +2766,54 @@ ROM_LOAD( "ic114.9j", 0x70000, 0x10000, CRC(1933eb65) SHA1(4c24cfd059c11875f53b57cc020fbdbac903bd4a) ) ROM_REGION( 0x040000, "gfx2", 0 ) // identical - ROM_LOAD( "ic30.3d", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) /* tiles #1 */ + ROM_LOAD( "ic30.3d", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) // tiles #1 ROM_LOAD( "ic31.3e", 0x10000, 0x10000, CRC(6bd2845b) SHA1(149cf14f919590da88b9a8e254690da010709862) ) ROM_LOAD( "ic29.3c", 0x20000, 0x10000, CRC(090d50e5) SHA1(4f2a7c76320b3f8dafae90a246187e034fe7562b) ) ROM_LOAD( "ic32.3f", 0x30000, 0x10000, CRC(3a8e3083) SHA1(8a75d556790b6bea41ead1a5f95589dd293bdf4e) ) ROM_REGION( 0x040000, "gfx3", 0 ) // identical - ROM_LOAD( "ic35.3k", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) /* tiles #2 */ + ROM_LOAD( "ic35.3k", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) // tiles #2 ROM_LOAD( "ic36.3l", 0x10000, 0x10000, CRC(e9bfe23e) SHA1(f97a68dbdce7e06d07faab19acf7625cdc8eeaa8) ) ROM_LOAD( "ic34.3j", 0x20000, 0x10000, CRC(256e50f2) SHA1(9e9fda4f1f1449548942c0da4478f61fe0d263d1) ) ROM_LOAD( "ic33.3h", 0x30000, 0x10000, CRC(4c682785) SHA1(f61f1227e0ad629fdfca106306b17a9f6a9959e3) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples, identical */ + ROM_REGION( 0x20000, "samples", 0 ) // samples, identical ROM_LOAD( "ic28.lower.2n", 0x00000, 0x10000, CRC(cb64a194) SHA1(940fad6b9147bccc8290e112f5973f8ea062b52f) ) ROM_LOAD( "ic28.upper.2n", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) ) ROM_END + ROM_START( loht ) ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "tom_c-h0-b.ic40", 0x00001, 0x20000, CRC(a63204b6) SHA1(d217bc70650a1a1bbe0cf536ec3bb678f670718d) ) /* need to verify actual label */ - ROM_LOAD16_BYTE( "tom_c-l0-b.ic37", 0x00000, 0x20000, CRC(e788002f) SHA1(35f509976b342fd47e645453381faa3d86645876) ) /* need to verify actual label */ + ROM_LOAD16_BYTE( "tom_c-h0-b.ic40", 0x00001, 0x20000, CRC(a63204b6) SHA1(d217bc70650a1a1bbe0cf536ec3bb678f670718d) ) + ROM_LOAD16_BYTE( "tom_c-l0-b.ic37", 0x00000, 0x20000, CRC(e788002f) SHA1(35f509976b342fd47e645453381faa3d86645876) ) ROM_LOAD16_BYTE( "tom_c-h3-.ic43", 0x40001, 0x20000, CRC(714778b5) SHA1(e2eaa35d6b5fa5df5163fe0d7b45fa66667f9947) ) ROM_RELOAD( 0xc0001, 0x20000 ) ROM_LOAD16_BYTE( "tom_c-l3-.ic34", 0x40000, 0x20000, CRC(2f049b03) SHA1(21047cb10912b1fc23795673af3ea7de249328b7) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "tom_c-pr-b.ic1", 0x00000, 0x01000, BAD_DUMP CRC(9c9545f1) SHA1(ca800ce7467efb877d0fff4c47d72478a991e2a9) ) // from bootleg, but works - need to verify dump - Should be TOM C-PR-B ?? + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "tom_c-pr-b.ic1", 0x00000, 0x01000, CRC(9c9545f1) SHA1(ca800ce7467efb877d0fff4c47d72478a991e2a9) ) // i8751 MCU labeled TOM C-PR-B ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "tom_m53.ic53", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) /* sprites */ + ROM_LOAD( "tom_m53.ic53", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) // sprites ROM_LOAD( "tom_m51.ic51", 0x20000, 0x20000, CRC(8ec5f6f3) SHA1(210f2753f5eeb06396758d21ab1778d459add247) ) ROM_LOAD( "tom_m49.ic49", 0x40000, 0x20000, CRC(a41d3bfd) SHA1(536fb7c0321dbbc1a8b73e9647fba9c53a253fcc) ) ROM_LOAD( "tom_m47.ic47", 0x60000, 0x20000, CRC(9d81a25b) SHA1(a354537c2fbba85f06485aa8487d7583a7133357) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "tom_m21.ic21", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) /* tiles #1 */ + ROM_LOAD( "tom_m21.ic21", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) // tiles #1 ROM_LOAD( "tom_m22.ic22", 0x10000, 0x10000, CRC(7a05ee2f) SHA1(7d1ca5db9a5a85610129e3bc6c640ade036fe7f9) ) ROM_LOAD( "tom_m20.ic20", 0x20000, 0x10000, CRC(79aa2335) SHA1(6b70c79d800a7b755aa7c9a368c4ea74029aaa1e) ) ROM_LOAD( "tom_m23.ic23", 0x30000, 0x10000, CRC(789e8b24) SHA1(e957cd25c3c155ca295ab1aea03d610f91562cfb) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "tom_m26.ic26", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) /* tiles #2 */ + ROM_LOAD( "tom_m26.ic26", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) // tiles #2 ROM_LOAD( "tom_m27.ic27", 0x10000, 0x10000, CRC(464952cf) SHA1(6b99360b6ba1ed5a72c257f51291f9f7a1ddf363) ) ROM_LOAD( "tom_m25.ic25", 0x20000, 0x10000, CRC(3db9b2c7) SHA1(02a318ffc459c494b7f40827eff5f89b41ac0426) ) ROM_LOAD( "tom_m24.ic24", 0x30000, 0x10000, CRC(f01fe899) SHA1(c5ab967b7af55a757638bcdc9975f4b15064022d) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "tom_m44.ic44", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) ) ROM_END @@ -2885,28 +2886,28 @@ ROM_LOAD16_BYTE( "tom_c-l3-", 0x40000, 0x20000, CRC(2f049b03) SHA1(21047cb10912b1fc23795673af3ea7de249328b7) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "tom_c-pr-.ic1", 0x00000, 0x01000, CRC(9fa9b496) SHA1(b529bcd7bf123894e11f2a8df8826932122e375a) ) + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "tom_c-pr-.ic1", 0x00000, 0x01000, CRC(9fa9b496) SHA1(b529bcd7bf123894e11f2a8df8826932122e375a) ) // i8751 MCU labeled TOM C-PR- ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "r200", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) /* sprites */ + ROM_LOAD( "r200", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) // sprites ROM_LOAD( "r210", 0x20000, 0x20000, CRC(8ec5f6f3) SHA1(210f2753f5eeb06396758d21ab1778d459add247) ) ROM_LOAD( "r220", 0x40000, 0x20000, CRC(a41d3bfd) SHA1(536fb7c0321dbbc1a8b73e9647fba9c53a253fcc) ) ROM_LOAD( "r230", 0x60000, 0x20000, CRC(9d81a25b) SHA1(a354537c2fbba85f06485aa8487d7583a7133357) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "r2a0.a0", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) /* tiles #1 */ + ROM_LOAD( "r2a0.a0", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) // tiles #1 ROM_LOAD( "r2a1.a1", 0x10000, 0x10000, CRC(7a05ee2f) SHA1(7d1ca5db9a5a85610129e3bc6c640ade036fe7f9) ) ROM_LOAD( "r2a2.a2", 0x20000, 0x10000, CRC(79aa2335) SHA1(6b70c79d800a7b755aa7c9a368c4ea74029aaa1e) ) ROM_LOAD( "r2a3.a3", 0x30000, 0x10000, CRC(789e8b24) SHA1(e957cd25c3c155ca295ab1aea03d610f91562cfb) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "078.b0", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) /* tiles #2 */ + ROM_LOAD( "078.b0", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) // tiles #2 ROM_LOAD( "079.b1", 0x10000, 0x10000, CRC(464952cf) SHA1(6b99360b6ba1ed5a72c257f51291f9f7a1ddf363) ) ROM_LOAD( "080.b2", 0x20000, 0x10000, CRC(3db9b2c7) SHA1(02a318ffc459c494b7f40827eff5f89b41ac0426) ) ROM_LOAD( "081.b3", 0x30000, 0x10000, CRC(f01fe899) SHA1(c5ab967b7af55a757638bcdc9975f4b15064022d) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "082", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) ) ROM_END @@ -2927,10 +2928,10 @@ ROM_LOAD16_BYTE( "lohtb04.c", 0x40000, 0x20000, CRC(2f049b03) SHA1(21047cb10912b1fc23795673af3ea7de249328b7) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Sound CPU program (Z80) + Samples*/ + ROM_REGION( 0x10000, "soundcpu", 0 ) // Sound CPU program (Z80) + Samples ROM_LOAD( "lohtb01.02", 0x00000, 0x10000, CRC(e4bd8f03) SHA1(69fe41a978db92daa912cb345c2c7bafd2a6eb93) ) - ROM_REGION( 0x080000, "sprites", 0 ) /* Sprites */ + ROM_REGION( 0x080000, "sprites", 0 ) // Sprites ROM_LOAD( "lohtb14.11", 0x00000, 0x10000, CRC(df5ac5ee) SHA1(5b45417ada402047d97dfb6cee6545686ad26e37) ) ROM_LOAD( "lohtb15.12", 0x20000, 0x10000, CRC(45220b01) SHA1(83715cf155f91c82067d69f14b3b01ed77777b7d) ) ROM_LOAD( "lohtb16.13", 0x40000, 0x10000, CRC(25b85cfc) SHA1(c7a9962165379193dc6553ed1f977795a79e0f78) ) @@ -2940,19 +2941,19 @@ ROM_LOAD( "lohtb20.17", 0x50000, 0x10000, CRC(464d8579) SHA1(b5981f4865ee5439f0e330091927e6d97d29933f) ) ROM_LOAD( "lohtb21.18", 0x70000, 0x10000, CRC(a73568c7) SHA1(8fe1867256708cc1ed76d1bed5566b1852b47c40) ) - ROM_REGION( 0x040000, "gfx2", ROMREGION_INVERT ) /* tiles #1 */ + ROM_REGION( 0x040000, "gfx2", ROMREGION_INVERT ) // tiles #1 ROM_LOAD( "lohtb13.10", 0x00000, 0x10000, CRC(359f17d4) SHA1(2875ba48395e7faa1a58404475be936dcca45ed1) ) ROM_LOAD( "lohtb11.08", 0x10000, 0x10000, CRC(73391e8a) SHA1(53ca89b8a10895f817ecdb9fa5eef462edb94ae6) ) ROM_LOAD( "lohtb09.06", 0x20000, 0x10000, CRC(7096d390) SHA1(f4a16bf8aef7a1a65619ab022cbdb67d2f191888) ) ROM_LOAD( "lohtb07.04", 0x30000, 0x10000, CRC(71a27b81) SHA1(d8fe72d15bbcd5b170d1123d8f4c58874cefdca3) ) - ROM_REGION( 0x040000, "gfx3", ROMREGION_INVERT ) /* tiles #2 */ + ROM_REGION( 0x040000, "gfx3", ROMREGION_INVERT ) // tiles #2 ROM_LOAD( "lohtb12.09", 0x00000, 0x10000, CRC(4d5e9b53) SHA1(3e3977bab7a66ed0171afcd555d181960e338749) ) ROM_LOAD( "lohtb10.07", 0x10000, 0x10000, CRC(4f75a26a) SHA1(79c09a1ad3a6f9cfbd07cb527bbd89d2478ce582) ) ROM_LOAD( "lohtb08.05", 0x20000, 0x10000, CRC(34854262) SHA1(37436c12579fb41d22a1596b495f065959c14a26) ) ROM_LOAD( "lohtb06.03", 0x30000, 0x10000, CRC(f923183c) SHA1(a6b578191864aefa81e0cad3ba12a2ca491c91cf) ) - ROM_REGION( 0x10000, "samples", ROMREGION_ERASEFF ) /* -- no sample roms on bootleg, included with z80 code */ + ROM_REGION( 0x10000, "samples", ROMREGION_ERASEFF ) // -- no sample roms on bootleg, included with z80 code ROM_REGION( 0x0117, "plds", 0 ) ROM_LOAD( "gal16v8-25qp.ic3", 0x0000, 0x0117, CRC(6acdfafb) SHA1(2ffd6f5a846e49fd2a8c7c7dfc9cf015406a44df) ) @@ -2974,7 +2975,7 @@ ROM_LOAD16_BYTE( "loht-a12.bin", 0x60000, 0x10000, CRC(cfb0390d) SHA1(4acc61a51a7ae681bd8d835e2644b44c4d6d7bcb) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* MCU running in external mode on daughtercard. Same data as lohtj just padded with 0xff */ + ROM_REGION( 0x10000, "mcu", 0 ) // MCU running in external mode on daughtercard. Same data as lohtj just padded with 0xff ROM_LOAD( "loht-a26.bin", 0x00000, 0x02000, CRC(ac901e17) SHA1(70a73288d594c78ad2aca78ce55a699cb040bede) ) ROM_REGION( 0x080000, "sprites", 0 ) @@ -2988,19 +2989,19 @@ ROM_LOAD( "loht-a7.bin", 0x70000, 0x10000, CRC(a73568c7) SHA1(8fe1867256708cc1ed76d1bed5566b1852b47c40) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "loht-a19.bin", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) /* tiles #1 */ + ROM_LOAD( "loht-a19.bin", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) // tiles #1 // ROM_LOAD( "loht-a20.bin", 0x10000, 0x10000, BAD_DUMP CRC(db2e3d77) SHA1(3f0758f74490b084321d8b2da29525dd1f19da09) ) ROM_LOAD( "loht-a20.bin", 0x10000, 0x10000, CRC(7a05ee2f) SHA1(7d1ca5db9a5a85610129e3bc6c640ade036fe7f9) ) ROM_LOAD( "loht-a18.bin", 0x20000, 0x10000, CRC(79aa2335) SHA1(6b70c79d800a7b755aa7c9a368c4ea74029aaa1e) ) ROM_LOAD( "loht-a21.bin", 0x30000, 0x10000, CRC(789e8b24) SHA1(e957cd25c3c155ca295ab1aea03d610f91562cfb) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "loht-a24.bin", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) /* tiles #2 */ + ROM_LOAD( "loht-a24.bin", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) // tiles #2 ROM_LOAD( "loht-a25.bin", 0x10000, 0x10000, CRC(464952cf) SHA1(6b99360b6ba1ed5a72c257f51291f9f7a1ddf363) ) ROM_LOAD( "loht-a23.bin", 0x20000, 0x10000, CRC(3db9b2c7) SHA1(02a318ffc459c494b7f40827eff5f89b41ac0426) ) ROM_LOAD( "loht-a22.bin", 0x30000, 0x10000, CRC(f01fe899) SHA1(c5ab967b7af55a757638bcdc9975f4b15064022d) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "loht-a1.bin", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) ) ROM_END @@ -3018,8 +3019,8 @@ ROM_LOAD16_BYTE( "i-3.3", 0x60000, 0x10000, CRC(cfb0390d) SHA1(4acc61a51a7ae681bd8d835e2644b44c4d6d7bcb) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "c8751h.bin", 0x00000, 0x01000, CRC(9c9545f1) SHA1(ca800ce7467efb877d0fff4c47d72478a991e2a9) ) // unprotected?? - works for original loht (World) set + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "c8751h.bin", 0x00000, 0x01000, CRC(9c9545f1) SHA1(ca800ce7467efb877d0fff4c47d72478a991e2a9) ) // unprotected?? == tom_c-pr-b.ic1 from loht (World) set ROM_REGION( 0x080000, "sprites", 0 ) ROM_LOAD( "i-8.8", 0x00000, 0x10000, CRC(df5ac5ee) SHA1(5b45417ada402047d97dfb6cee6545686ad26e37) ) @@ -3032,18 +3033,18 @@ ROM_LOAD( "i-12.12", 0x70000, 0x10000, CRC(a73568c7) SHA1(8fe1867256708cc1ed76d1bed5566b1852b47c40) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "i-20.20", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) /* tiles #1 */ + ROM_LOAD( "i-20.20", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) // tiles #1 ROM_LOAD( "r-21.21", 0x10000, 0x10000, CRC(7a05ee2f) SHA1(7d1ca5db9a5a85610129e3bc6c640ade036fe7f9) ) ROM_LOAD( "i-19.19", 0x20000, 0x10000, CRC(79aa2335) SHA1(6b70c79d800a7b755aa7c9a368c4ea74029aaa1e) ) ROM_LOAD( "i-22.22", 0x30000, 0x10000, CRC(789e8b24) SHA1(e957cd25c3c155ca295ab1aea03d610f91562cfb) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "r-25.25", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) /* tiles #2 */ + ROM_LOAD( "r-25.25", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) // tiles #2 ROM_LOAD( "r-26.26", 0x10000, 0x10000, CRC(464952cf) SHA1(6b99360b6ba1ed5a72c257f51291f9f7a1ddf363) ) ROM_LOAD( "r-24.24", 0x20000, 0x10000, CRC(3db9b2c7) SHA1(02a318ffc459c494b7f40827eff5f89b41ac0426) ) ROM_LOAD( "i-23.23", 0x30000, 0x10000, CRC(2e2a085d) SHA1(ed2eed6c30d44b176bd99eb386482b2a19e3b9cb) ) - ROM_REGION( 0x10000, "samples", 0 ) /* samples */ + ROM_REGION( 0x10000, "samples", 0 ) // samples ROM_LOAD( "i-4.4", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) ) ROM_END @@ -3281,10 +3282,10 @@ ROM_LOAD16_BYTE( "6_lg_603.ic25", 0x40000, 0x20000, CRC(2f049b03) SHA1(21047cb10912b1fc23795673af3ea7de249328b7) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Sound CPU program (Z80) + Samples*/ + ROM_REGION( 0x10000, "soundcpu", 0 ) // Sound CPU program (Z80) + Samples ROM_LOAD( "1_lg_1.ic12", 0x00000, 0x10000, CRC(7aa26b54) SHA1(01df7ea6443bbc775d5592edc32816853c857189) ) - ROM_REGION( 0x080000, "sprites", 0 ) /* Sprites */ + ROM_REGION( 0x080000, "sprites", 0 ) // Sprites ROM_LOAD( "5_lg_501.ic5", 0x00000, 0x10000, CRC(df5ac5ee) SHA1(5b45417ada402047d97dfb6cee6545686ad26e37) ) ROM_LOAD( "5_lg_503.ic14", 0x20000, 0x10000, CRC(45220b01) SHA1(83715cf155f91c82067d69f14b3b01ed77777b7d) ) ROM_LOAD( "5_lg_505.ic20", 0x40000, 0x10000, CRC(25b85cfc) SHA1(c7a9962165379193dc6553ed1f977795a79e0f78) ) @@ -3294,19 +3295,19 @@ ROM_LOAD( "5_lg_506.ic21", 0x50000, 0x10000, CRC(464d8579) SHA1(b5981f4865ee5439f0e330091927e6d97d29933f) ) ROM_LOAD( "5_lg_508.ic27", 0x70000, 0x10000, CRC(a73568c7) SHA1(8fe1867256708cc1ed76d1bed5566b1852b47c40) ) - ROM_REGION( 0x040000, "gfx2", ROMREGION_INVERT ) /* tiles #1 */ + ROM_REGION( 0x040000, "gfx2", ROMREGION_INVERT ) // tiles #1 ROM_LOAD( "8_lg_801.ic15", 0x00000, 0x10000, CRC(359f17d4) SHA1(2875ba48395e7faa1a58404475be936dcca45ed1) ) ROM_LOAD( "8_lg_803.ic22", 0x10000, 0x10000, CRC(73391e8a) SHA1(53ca89b8a10895f817ecdb9fa5eef462edb94ae6) ) ROM_LOAD( "8_lg_805.ic30", 0x20000, 0x10000, CRC(7096d390) SHA1(f4a16bf8aef7a1a65619ab022cbdb67d2f191888) ) ROM_LOAD( "8_lg_807.ic37", 0x30000, 0x10000, CRC(1c113901) SHA1(3d4ce2ac6cdad0e1b0a21ffb062f9c92700adcf4) ) - ROM_REGION( 0x040000, "gfx3", ROMREGION_INVERT ) /* tiles #2 */ + ROM_REGION( 0x040000, "gfx3", ROMREGION_INVERT ) // tiles #2 ROM_LOAD( "8_lg_802.ic14", 0x00000, 0x10000, CRC(4d5e9b53) SHA1(3e3977bab7a66ed0171afcd555d181960e338749) ) ROM_LOAD( "8_lg_804.ic21", 0x10000, 0x10000, CRC(4f75a26a) SHA1(79c09a1ad3a6f9cfbd07cb527bbd89d2478ce582) ) ROM_LOAD( "8_lg_806.ic29", 0x20000, 0x10000, CRC(34854262) SHA1(37436c12579fb41d22a1596b495f065959c14a26) ) ROM_LOAD( "8_lg_808.ic36", 0x30000, 0x10000, CRC(f923183c) SHA1(a6b578191864aefa81e0cad3ba12a2ca491c91cf) ) - ROM_REGION( 0x10000, "samples", ROMREGION_ERASEFF ) /* -- no sample roms on bootleg, included with z80 code */ + ROM_REGION( 0x10000, "samples", ROMREGION_ERASEFF ) // -- no sample roms on bootleg, included with z80 code ROM_REGION( 0x320, "prom", ROMREGION_ERASEFF ) ROM_LOAD( "51_502_82s129n.ic10", 0x000, 0x100, CRC(15085e44) SHA1(646e7100fcb112594023cf02be036bd3d42cc13c) ) @@ -3340,11 +3341,11 @@ ROM_LOAD16_BYTE( "xm_c-l0-.ic37", 0x40000, 0x10000, CRC(06a9e213) SHA1(9831c110814642703d6e71d49848d854095b7d3a) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "xm_c-pr-.ic1", 0x00000, 0x01000, CRC(c8ceb3cd) SHA1(e5d20a3a9d7f0919604543c97643a03434d80130) ) /* i8751 MCU labeled XM C-PR- */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "xm_c-pr-.ic1", 0x00000, 0x01000, CRC(c8ceb3cd) SHA1(e5d20a3a9d7f0919604543c97643a03434d80130) ) // i8751 MCU labeled XM C-PR- ROM_REGION( 0x100000, "sprites", 0 ) - ROM_LOAD( "t44.00.ic53", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) /* sprites */ + ROM_LOAD( "t44.00.ic53", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) // sprites ROM_LOAD( "t45.01.ic52", 0x20000, 0x20000, CRC(4d0764d4) SHA1(4942333336a110b033f16ac1afa06ffef7b2dad6) ) ROM_LOAD( "t46.10.ic51", 0x40000, 0x20000, CRC(f0c465a4) SHA1(69c107c860d4e8736431fd86b6821b70a8367eb3) ) ROM_LOAD( "t47.11.ic50", 0x60000, 0x20000, CRC(1263b24b) SHA1(0445a5381df3a868bed6967c8e5de7169e4be6a3) ) @@ -3354,53 +3355,53 @@ ROM_LOAD( "t51.31.ic46", 0xe0000, 0x20000, CRC(229bf7b1) SHA1(ae42c7efbb6278dd3fa56842361138391f2d49ca) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "t53.a0", 0x00000, 0x20000, CRC(1a082494) SHA1(63a3a84a262833d2cafab41e35df8f10a5e317b1) ) /* tiles #1 */ + ROM_LOAD( "t53.a0", 0x00000, 0x20000, CRC(1a082494) SHA1(63a3a84a262833d2cafab41e35df8f10a5e317b1) ) // tiles #1 ROM_LOAD( "t54.a1", 0x20000, 0x20000, CRC(076c16c5) SHA1(4be858806b916953d59aceee550e721eaf3996a6) ) ROM_LOAD( "t55.a2", 0x40000, 0x20000, CRC(25d877a5) SHA1(48c948bf714c432f534c098123c8f50d5561756f) ) ROM_LOAD( "t56.a3", 0x60000, 0x20000, CRC(5b1213f5) SHA1(87782aa0bd04d4378c4ba78b63028ae2709da2f1) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) /* tiles #2 */ + ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) // tiles #2 ROM_LOAD( "t58.b1", 0x20000, 0x20000, CRC(a874121d) SHA1(1351d5901d55059c6472a4588a2e560396903861) ) ROM_LOAD( "t59.b2", 0x40000, 0x20000, CRC(69deb990) SHA1(1eed3183efbe576376661b45152a0a21240ecfc8) ) ROM_LOAD( "t60.b3", 0x60000, 0x20000, CRC(14c69f99) SHA1(4bea72f8bd421ef3ca559363f7473ce2e7038699) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "t52.v0.ic44", 0x00000, 0x20000, CRC(2db1bd80) SHA1(657006d0642ec7fb949bb52821d78fe51a599415) ) ROM_END ROM_START( dbreedm72 ) ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "db_c-h3-b.ic43", 0x00001, 0x20000, CRC(4bf3063c) SHA1(3f970c9ece2ac700738e217e0b31b3aba2848ab2) ) /* need to verify label, with MCU DB C-PR- below shows ROM NG 1 2 */ - ROM_LOAD16_BYTE( "db_c-l3-b.ic34", 0x00000, 0x20000, CRC(e4b89b79) SHA1(c312925940633e60fb5d0f05044c6e73e4f7fd54) ) /* need to verify label */ + ROM_LOAD16_BYTE( "db_c-h3-b.ic43", 0x00001, 0x20000, CRC(4bf3063c) SHA1(3f970c9ece2ac700738e217e0b31b3aba2848ab2) ) // need to verify label, with MCU DB C-PR- below shows ROM NG 1 2 + ROM_LOAD16_BYTE( "db_c-l3-b.ic34", 0x00000, 0x20000, CRC(e4b89b79) SHA1(c312925940633e60fb5d0f05044c6e73e4f7fd54) ) // need to verify label ROM_LOAD16_BYTE( "db_c-h0.ic40", 0x60001, 0x10000, CRC(5aa79fb2) SHA1(b7b862699ddccf90cf18d3822703078668aa1dc7) ) ROM_RELOAD( 0xe0001, 0x10000 ) ROM_LOAD16_BYTE( "db_c-l0.ic37", 0x60000, 0x10000, CRC(ed0f5e06) SHA1(9030840b15e83c18d59c884ed08c93c05fa70c5b) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller ROM_LOAD( "db_c-pr-b.ic1", 0x00000, 0x01000, NO_DUMP ) // Requires different currently undumped MCU code - i8751 MCU labeled DB C-PR-B?? ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */ + ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) // sprites ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) ) ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) ) ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) ) ROM_REGION( 0x080000, "gfx2", 0 ) // same roms are duplicated at a0-a3 and b0-b3, confirmed - ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #1 */ + ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) // tiles #1 ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "db_k804m.b0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #2 */ + ROM_LOAD( "db_k804m.b0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) // tiles #2 ROM_LOAD( "db_k805m.b1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) ROM_LOAD( "db_k806m.b2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) ROM_LOAD( "db_k807m.b3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "db_c-v0.ic44", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) ) ROM_END @@ -3413,28 +3414,28 @@ ROM_LOAD16_BYTE( "db_c-l0.ic37", 0x60000, 0x10000, CRC(ed0f5e06) SHA1(9030840b15e83c18d59c884ed08c93c05fa70c5b) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "db_c-pr-.mcu", 0x00000, 0x01000, CRC(8bf2910c) SHA1(65842c928626077f613e0ab56074e83301a64a2e) ) /* i8751 MCU labeled DB C-PR- */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "db_c-pr-.ic1", 0x00000, 0x01000, CRC(8bf2910c) SHA1(65842c928626077f613e0ab56074e83301a64a2e) ) // i8751 MCU labeled DB C-PR- ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */ + ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) // sprites ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) ) ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) ) ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) ) ROM_REGION( 0x080000, "gfx2", 0 ) // same roms are duplicated at a0-a3 and b0-b3, confirmed - ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #1 */ + ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) // tiles #1 ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "db_k804m.b0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #2 */ + ROM_LOAD( "db_k804m.b0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) // tiles #2 ROM_LOAD( "db_k805m.b1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) ROM_LOAD( "db_k806m.b2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) ROM_LOAD( "db_k807m.b3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "db_c-v0.ic44", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) ) ROM_END @@ -3448,28 +3449,28 @@ ROM_LOAD16_BYTE( "ge72-l3.bin", 0x60000, 0x10000, CRC(23d303a5) SHA1(b62010f34d71afb590deae458493454f9af38f7c) ) ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "dkgenm72_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "dkgenm72_i8751.ic1", 0x00000, 0x10000, NO_DUMP ) // read protected ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ + ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) // sprites ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "ge72b-a0.bin", 0x00000, 0x10000, CRC(f5f56b2a) SHA1(4ef6602052fa70e765d6d7747e672b7108b44f59) ) /* tiles #1 */ + ROM_LOAD( "ge72b-a0.bin", 0x00000, 0x10000, CRC(f5f56b2a) SHA1(4ef6602052fa70e765d6d7747e672b7108b44f59) ) // tiles #1 ROM_LOAD( "ge72-a1.bin", 0x10000, 0x10000, CRC(d194ea08) SHA1(0270897049cd256472df42f3dda856ee707535cd) ) ROM_LOAD( "ge72-a2.bin", 0x20000, 0x10000, CRC(2b06bcc3) SHA1(36378a4a69f3c3da96d2dc8df48916af8de50009) ) ROM_LOAD( "ge72-a3.bin", 0x30000, 0x10000, CRC(94b96bfa) SHA1(33c1e9045e7a984097f3fe4954b20d954cffbafa) ) ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "ge72-b0.bin", 0x00000, 0x10000, CRC(208796b3) SHA1(38b90732c8d5c77ee84053364a8a7e3daaaabe66) ) /* tiles #2 */ + ROM_LOAD( "ge72-b0.bin", 0x00000, 0x10000, CRC(208796b3) SHA1(38b90732c8d5c77ee84053364a8a7e3daaaabe66) ) // tiles #2 ROM_LOAD( "ge72-b1.bin", 0x10000, 0x10000, CRC(b4a7f490) SHA1(851b40650fc8920b49f43f9cc6f19e845a25e945) ) ROM_LOAD( "ge72b-b2.bin", 0x20000, 0x10000, CRC(34fe8f7f) SHA1(fbf8839b26be55ad83ad4db538ba3e196c1ab945) ) ROM_LOAD( "ge72b-b3.bin", 0x30000, 0x10000, CRC(4b0e92f4) SHA1(16ad9220ca6708028cea18c1c4b57e2b6eb425b4) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) ) ROM_END @@ -3483,8 +3484,8 @@ ROM_LOAD16_BYTE( "ad-c-l3.ic34", 0x40000, 0x20000, CRC(9dd343f7) SHA1(9f499936b6d3807aa5b5c18e9811c73c9a2c99f9) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */ - ROM_LOAD( "ad_c-pr-.ic1", 0x00000, 0x01000, CRC(45584e52) SHA1(647826f1bec9b39ae971ecb58d921d363ee4cf45) ) /* i8751 MCU labeled AD C-PR- */ + ROM_REGION( 0x1000, "mcu", 0 ) // i8751 microcontroller + ROM_LOAD( "ad_c-pr-.ic1", 0x00000, 0x01000, CRC(45584e52) SHA1(647826f1bec9b39ae971ecb58d921d363ee4cf45) ) // i8751 MCU labeled AD C-PR- ROM_REGION( 0x080000, "sprites", 0 ) ROM_LOAD( "ad-00.ic53", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) @@ -3493,13 +3494,13 @@ ROM_LOAD( "ad-30.ic47", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ad-a0.ic21", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #1 */ + ROM_LOAD( "ad-a0.ic21", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) // tiles #1 ROM_LOAD( "ad-a1.ic22", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) ) ROM_LOAD( "ad-a2.ic20", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) ) ROM_LOAD( "ad-a3.ic23", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) ) ROM_REGION( 0x080000, "gfx3", 0 ) - ROM_LOAD( "ad-b0.ic26", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #2 */ + ROM_LOAD( "ad-b0.ic26", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) // tiles #2 ROM_LOAD( "ad-b1.ic27", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) ) ROM_LOAD( "ad-b2.ic25", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) ) ROM_LOAD( "ad-b3.ic24", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) ) @@ -3521,29 +3522,29 @@ ROM_LOAD16_BYTE( "cc-c-l3.ic34", 0x40000, 0x20000, CRC(acd3278e) SHA1(83d7ddfbdb4bc9548a179b728351a21b3b0ac134) ) ROM_RELOAD( 0xc0000, 0x20000 ) - ROM_REGION( 0x10000, "mcu", 0 ) /* i8751 microcontroller */ + ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller ROM_LOAD( "cc_c-pr-.ic1", 0x00000, 0x10000, NO_DUMP ) // read protected (only used for sample triggering, not supplying code / warning screens) - ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "cc-c-00.ic53", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) /* sprites */ - ROM_LOAD( "cc-c-10.ic51", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) - ROM_LOAD( "cc-c-20.ic49", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) - ROM_LOAD( "cc-c-30.ic47", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) - - ROM_REGION( 0x040000, "gfx2", 0 ) - ROM_LOAD( "cc-b-a0.ic21", 0x00000, 0x10000, CRC(a33472bd) SHA1(962047fe3dd1fb996285ecef615a8ebdb529adef) ) /* tiles #1 */ - ROM_LOAD( "cc-b-a1.ic22", 0x10000, 0x10000, CRC(118b1f2d) SHA1(7413ccc67a8aa9dae156e6ee122b1ca5beeb9a76) ) - ROM_LOAD( "cc-b-a2.ic20", 0x20000, 0x10000, CRC(83cebf48) SHA1(12847827ecbf6b493eb9dbddd0a469729d87a451) ) - ROM_LOAD( "cc-b-a3.ic23", 0x30000, 0x10000, CRC(572903fc) SHA1(03305301bcf939e97044e746594736b1ca1d7c0a) ) - - ROM_REGION( 0x040000, "gfx3", 0 ) - ROM_LOAD( "cc-b-b0.ic26", 0x00000, 0x10000, CRC(0df5b439) SHA1(0775cf92139a111542c8b5f940da0f7f43020982) ) /* tiles #2 */ - ROM_LOAD( "cc-b-b1.ic27", 0x10000, 0x10000, CRC(010b778f) SHA1(cc5bfeb0fbe0ed2fe513458c5785ec0ce5b02f53) ) - ROM_LOAD( "cc-b-b2.ic25", 0x20000, 0x10000, CRC(bda9f6fb) SHA1(a6b655ae5bff0568c1fb56ee8a3874fc6524052c) ) - ROM_LOAD( "cc-b-b3.ic24", 0x30000, 0x10000, CRC(d361ba3f) SHA1(7348fdae03e997e05187a2726eb221edb92553df) ) + ROM_REGION( 0x080000, "sprites", 0 ) // sprites - same data as the cosmccop set + ROM_LOAD( "cc-c-00.ic53", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) // == cc-c-00.bin + ROM_LOAD( "cc-c-10.ic51", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) // == cc-c-10.bin + ROM_LOAD( "cc-c-20.ic49", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) // == cc-c-20.bin + ROM_LOAD( "cc-c-30.ic47", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) // == cc-c-30.bin + + ROM_REGION( 0x040000, "gfx2", 0 ) // tiles #1 - same data as the cosmccop set split between the 2 tile banks + ROM_LOAD( "cc-b-a0.ic21", 0x00000, 0x10000, CRC(a33472bd) SHA1(962047fe3dd1fb996285ecef615a8ebdb529adef) ) // == cc-d-g00.bin [1/2] + ROM_LOAD( "cc-b-a1.ic22", 0x10000, 0x10000, CRC(118b1f2d) SHA1(7413ccc67a8aa9dae156e6ee122b1ca5beeb9a76) ) // == cc-d-g10.bin [1/2] + ROM_LOAD( "cc-b-a2.ic20", 0x20000, 0x10000, CRC(83cebf48) SHA1(12847827ecbf6b493eb9dbddd0a469729d87a451) ) // == cc-d-g20.bin [1/2] + ROM_LOAD( "cc-b-a3.ic23", 0x30000, 0x10000, CRC(572903fc) SHA1(03305301bcf939e97044e746594736b1ca1d7c0a) ) // == cc-d-g30.bin [1/2] + + ROM_REGION( 0x040000, "gfx3", 0 ) // tiles #2 - same data as the cosmccop set split between the 2 tile banks + ROM_LOAD( "cc-b-b0.ic26", 0x00000, 0x10000, CRC(0df5b439) SHA1(0775cf92139a111542c8b5f940da0f7f43020982) ) // == cc-d-g00.bin [2/2] + ROM_LOAD( "cc-b-b1.ic27", 0x10000, 0x10000, CRC(010b778f) SHA1(cc5bfeb0fbe0ed2fe513458c5785ec0ce5b02f53) ) // == cc-d-g10.bin [2/2] + ROM_LOAD( "cc-b-b2.ic25", 0x20000, 0x10000, CRC(bda9f6fb) SHA1(a6b655ae5bff0568c1fb56ee8a3874fc6524052c) ) // == cc-d-g20.bin [2/2] + ROM_LOAD( "cc-b-b3.ic24", 0x30000, 0x10000, CRC(d361ba3f) SHA1(7348fdae03e997e05187a2726eb221edb92553df) ) // == cc-d-g30.bin [2/2] - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ - ROM_LOAD( "cc-c-v0.ic44", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) + ROM_REGION( 0x20000, "samples", 0 ) // samples - same data as the cosmccop set + ROM_LOAD( "cc-c-v0.ic44", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) // == cc-c-v0.bin ROM_END @@ -3564,7 +3565,7 @@ ROM_LOAD( "xm-a-sp-.ic14", 0x00000, 0x10000, CRC(006eef56) SHA1(917b26b200fa4c1692d4c7ca0ea0f7897e3e3b7b) ) ROM_REGION( 0x100000, "sprites", 0 ) - ROM_LOAD( "t44.00", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) /* sprites */ + ROM_LOAD( "t44.00", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) // sprites ROM_LOAD( "t45.01", 0x20000, 0x20000, CRC(4d0764d4) SHA1(4942333336a110b033f16ac1afa06ffef7b2dad6) ) ROM_LOAD( "t46.10", 0x40000, 0x20000, CRC(f0c465a4) SHA1(69c107c860d4e8736431fd86b6821b70a8367eb3) ) ROM_LOAD( "t47.11", 0x60000, 0x20000, CRC(1263b24b) SHA1(0445a5381df3a868bed6967c8e5de7169e4be6a3) ) @@ -3574,19 +3575,19 @@ ROM_LOAD( "t51.31", 0xe0000, 0x20000, CRC(229bf7b1) SHA1(ae42c7efbb6278dd3fa56842361138391f2d49ca) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "t53.a0", 0x00000, 0x20000, CRC(1a082494) SHA1(63a3a84a262833d2cafab41e35df8f10a5e317b1) ) /* tiles #1 */ + ROM_LOAD( "t53.a0", 0x00000, 0x20000, CRC(1a082494) SHA1(63a3a84a262833d2cafab41e35df8f10a5e317b1) ) // tiles #1 ROM_LOAD( "t54.a1", 0x20000, 0x20000, CRC(076c16c5) SHA1(4be858806b916953d59aceee550e721eaf3996a6) ) ROM_LOAD( "t55.a2", 0x40000, 0x20000, CRC(25d877a5) SHA1(48c948bf714c432f534c098123c8f50d5561756f) ) ROM_LOAD( "t56.a3", 0x60000, 0x20000, CRC(5b1213f5) SHA1(87782aa0bd04d4378c4ba78b63028ae2709da2f1) ) ROM_REGION( 0x080000, "gfx3", 0 ) - /* b0-b3 are populated, Jumper J3 on the M81-B-B board is set to 'W' meaning use the ROMs from the b0-b3 positions*/ - ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) /* tiles #2 */ + // b0-b3 are populated, Jumper J3 on the M81-B-B board is set to 'W' meaning use the ROMs from the b0-b3 positions + ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) // tiles #2 ROM_LOAD( "t58.b1", 0x20000, 0x20000, CRC(a874121d) SHA1(1351d5901d55059c6472a4588a2e560396903861) ) ROM_LOAD( "t59.b2", 0x40000, 0x20000, CRC(69deb990) SHA1(1eed3183efbe576376661b45152a0a21240ecfc8) ) ROM_LOAD( "t60.b3", 0x60000, 0x20000, CRC(14c69f99) SHA1(4bea72f8bd421ef3ca559363f7473ce2e7038699) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "t52.v0", 0x00000, 0x20000, CRC(2db1bd80) SHA1(657006d0642ec7fb949bb52821d78fe51a599415) ) ROM_REGION( 0x0200, "proms", 0 ) /* proms */ @@ -3608,21 +3609,21 @@ ROM_LOAD( "a-sp-0.rom", 0x00000, 0x10000, CRC(80e210e7) SHA1(66cff58fb37c52e1d8e0567e13b774253e862585) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ + ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) // sprites ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) ROM_REGION( 0x080000, "gfx2", ROMREGION_ERASEFF ) - ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */ + ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) // tiles ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) ) ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) ) ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) ) ROM_REGION( 0x080000, "gfx3", ROMREGION_ERASEFF ) - /* b0-b3 are unpopulated, Jumper J3 on the M81-B-B board is set to 'S' meaning use the ROMs from the a0-a3 positions*/ + // b0-b3 are unpopulated, Jumper J3 on the M81-B-B board is set to 'S' meaning use the ROMs from the a0-a3 positions - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "a-v0-0.rom", 0x00000, 0x20000, CRC(faaacaff) SHA1(ea3a3920255c07aa9c0a7e0191eae257a9f7f558) ) ROM_END @@ -3640,21 +3641,21 @@ ROM_LOAD( "db-a-sp-.14", 0x00000, 0x10000, CRC(54a61560) SHA1(e5fccfcedcadbab1667900f98370043c1907dd89) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */ + ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) // sprites ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) ) ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) ) ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) ) ROM_REGION( 0x080000, "gfx2", ROMREGION_ERASEFF ) - ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles */ + ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) // tiles ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) ROM_REGION( 0x080000, "gfx3", ROMREGION_ERASEFF ) - /* b0-b3 are unpopulated, Jumper J3 on the M81-B-B board is set to 'S' meaning use the ROMs from the a0-a3 positions*/ + // b0-b3 are unpopulated, Jumper J3 on the M81-B-B board is set to 'S' meaning use the ROMs from the a0-a3 positions - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "db_a-v0.rom", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) ) ROM_END @@ -3676,24 +3677,24 @@ ROM_LOAD( "mt_sp.bin", 0x00000, 0x10000, CRC(e44260a9) SHA1(a2512033c8cca9a8064eae1ada721202edf06e8e) ) ROM_REGION( 0x100000, "sprites", 0 ) - ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) /* sprites #1 */ + ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) // sprites #1 ROM_LOAD( "mt_n1.bin", 0x40000, 0x40000, CRC(483b873b) SHA1(654efd67b2102521e8c46cd57cefa2cc64cf4fd3) ) ROM_LOAD( "mt_n2.bin", 0x80000, 0x40000, CRC(4f5d665b) SHA1(f539d0f5c738ffabfac16121706abe3bb3b2a1fa) ) ROM_LOAD( "mt_n3.bin", 0xc0000, 0x40000, CRC(83571549) SHA1(ce0b89aa4b3e3e1cf6ec6136f956577267cdd9d3) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) /* tiles */ + ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) // tiles ROM_LOAD( "mt_c1.bin", 0x20000, 0x20000, CRC(45ad1381) SHA1(de281398dcd1c547bde9fa86f8ca409dd8d4aa6c) ) ROM_LOAD( "mt_c2.bin", 0x40000, 0x20000, CRC(5df5856d) SHA1(f16163f672de6701b411315c9956ddb74c8464ce) ) ROM_LOAD( "mt_c3.bin", 0x60000, 0x20000, CRC(f5316cc8) SHA1(123892d4a7e8d98582ea736afe659afdba8c5f87) ) ROM_REGION( 0x080000, "sprites2", 0 ) - ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ + ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) // sprites #2 ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) ) ROM_END @@ -3710,24 +3711,24 @@ ROM_LOAD( "mt_sp.bin", 0x00000, 0x10000, CRC(e44260a9) SHA1(a2512033c8cca9a8064eae1ada721202edf06e8e) ) ROM_REGION( 0x100000, "sprites", 0 ) - ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) /* sprites #1 */ + ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) // sprites #1 ROM_LOAD( "mt_n1.bin", 0x40000, 0x40000, CRC(483b873b) SHA1(654efd67b2102521e8c46cd57cefa2cc64cf4fd3) ) ROM_LOAD( "mt_n2.bin", 0x80000, 0x40000, CRC(4f5d665b) SHA1(f539d0f5c738ffabfac16121706abe3bb3b2a1fa) ) ROM_LOAD( "mt_n3.bin", 0xc0000, 0x40000, CRC(83571549) SHA1(ce0b89aa4b3e3e1cf6ec6136f956577267cdd9d3) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) /* tiles */ + ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) // tiles ROM_LOAD( "mt_c1.bin", 0x20000, 0x20000, CRC(45ad1381) SHA1(de281398dcd1c547bde9fa86f8ca409dd8d4aa6c) ) ROM_LOAD( "mt_c2.bin", 0x40000, 0x20000, CRC(5df5856d) SHA1(f16163f672de6701b411315c9956ddb74c8464ce) ) ROM_LOAD( "mt_c3.bin", 0x60000, 0x20000, CRC(f5316cc8) SHA1(123892d4a7e8d98582ea736afe659afdba8c5f87) ) ROM_REGION( 0x080000, "sprites2", 0 ) - ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ + ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) // sprites #2 ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) ) ROM_END @@ -3745,28 +3746,27 @@ ROM_LOAD( "ad_=m82=_a-sp-d.ic15", 0x00000, 0x10000, CRC(16a858a3) SHA1(51dbac5b37ecb30b46072f5a300a29dc7f7b8542) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "ad_=m82=_b-n0-d.ic44", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) /* sprites */ + ROM_LOAD( "ad_=m82=_b-n0-d.ic44", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) // sprites ROM_LOAD( "ad_=m82=_b-n1-d.ic45", 0x20000, 0x20000, CRC(9865856b) SHA1(b18a06899ae29d45e2351594df544220f3f4485a) ) ROM_LOAD( "ad_=m82=_b-n2-d.ic46", 0x40000, 0x20000, CRC(d392aef2) SHA1(0f639a07066cadddc3884eb490885a8745571567) ) ROM_LOAD( "ad_=m82=_b-n3-d.ic36", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ad_=m82=_a-c0-d.ic49", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles */ + ROM_LOAD( "ad_=m82=_a-c0-d.ic49", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) // tiles ROM_LOAD( "ad_=m82=_a-c1-d.ic48", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) ) ROM_LOAD( "ad_=m82=_a-c2-d.ic57", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) ) ROM_LOAD( "ad_=m82=_a-c3-d.ic56", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) ) ROM_REGION( 0x080000, "sprites2", 0 ) // still had these leftover from Major Title, probably needed to avoid displaying garbage? - ROM_LOAD( "mt_f0.ic38", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ + ROM_LOAD( "mt_f0.ic38", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) // sprites #2 ROM_LOAD( "mt_f1.ic39", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) ROM_LOAD( "mt_f2.ic40", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) ROM_LOAD( "mt_f3.ic41", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "ad_=m82=_a-v0-d.ic12", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) ) ROM_END - ROM_START( airduelu ) ROM_REGION( 0x100000, "maincpu", 0 ) ROM_LOAD16_BYTE( "r10-m82a-h0.ic52", 0x00001, 0x20000, CRC(17f19965) SHA1(51f84903eba9b0daa6f91f3578e6fdb9b286ef1c) ) @@ -3780,24 +3780,24 @@ ROM_LOAD( "r10-bgm.ic15", 0x00000, 0x10000, CRC(16a858a3) SHA1(51dbac5b37ecb30b46072f5a300a29dc7f7b8542) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "r10-obj0.ic44", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) /* sprites */ + ROM_LOAD( "r10-obj0.ic44", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) // sprites ROM_LOAD( "r10-obj1.ic45", 0x20000, 0x20000, CRC(9865856b) SHA1(b18a06899ae29d45e2351594df544220f3f4485a) ) ROM_LOAD( "r10-obj2.ic46", 0x40000, 0x20000, CRC(d392aef2) SHA1(0f639a07066cadddc3884eb490885a8745571567) ) ROM_LOAD( "r10-obj3.ic36", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "r10-chr0.ic49", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles */ + ROM_LOAD( "r10-chr0.ic49", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) // tiles ROM_LOAD( "r10-chr1.ic48", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) ) ROM_LOAD( "r10-chr2.ic57", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) ) ROM_LOAD( "r10-chr3.ic56", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) ) ROM_REGION( 0x080000, "sprites2", 0 ) // leftover from Major Title (mask roms, soldered on pcb) - ROM_LOAD( "mt_f0.ic38", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ + ROM_LOAD( "mt_f0.ic38", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) // sprites #2 ROM_LOAD( "mt_f1.ic39", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) ROM_LOAD( "mt_f2.ic40", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) ROM_LOAD( "mt_f3.ic41", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "r10-voice.ic12", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) ) ROM_END @@ -3815,28 +3815,27 @@ ROM_LOAD( "rt_sp.bin", 0x00000, 0x10000, CRC(24fded65) SHA1(34e085ebfc6415a60b7440ac53c8ae7130b5e9d4) ) ROM_REGION( 0x80000, "sprites", 0 ) - ROM_LOAD( "rt_n0.bin", 0x00000, 0x20000, CRC(236e93ad) SHA1(a168c2f007a7469d8c1d834dc5247d99d13fd36d) ) /* sprites #1 */ + ROM_LOAD( "rt_n0.bin", 0x00000, 0x20000, CRC(236e93ad) SHA1(a168c2f007a7469d8c1d834dc5247d99d13fd36d) ) // sprites #1 ROM_LOAD( "rt_n1.bin", 0x20000, 0x20000, CRC(94e0da50) SHA1(0e8aef07b2a4a60bb6faa9ea3d02869d30dff84c) ) ROM_LOAD( "rt_n2.bin", 0x40000, 0x20000, CRC(6310dd0e) SHA1(4e4a50ef64cdfddea10d415a4b2d2490c1364074) ) ROM_LOAD( "rt_n3.bin", 0x60000, 0x20000, CRC(dd9674fb) SHA1(925bbd64015ec9109a74ce80747bea2bfdb0cde6) ) ROM_REGION( 0x100000, "gfx2", 0 ) - ROM_LOAD( "rt_c0.bin", 0x00000, 0x40000, CRC(c2511272) SHA1(138dd131f827215f13ba0761cacc0f383b5e5a48) ) /* tiles */ + ROM_LOAD( "rt_c0.bin", 0x00000, 0x40000, CRC(c2511272) SHA1(138dd131f827215f13ba0761cacc0f383b5e5a48) ) // tiles ROM_LOAD( "rt_c1.bin", 0x40000, 0x40000, CRC(6da33dae) SHA1(2b5f686c5c8e45a896ab115818066d03af767cb5) ) ROM_LOAD( "rt_c2.bin", 0x80000, 0x40000, CRC(29322d6e) SHA1(b553d46f1270dcc4754800e65c21b5e418994fcd) ) ROM_LOAD( "rt_c3.bin", 0xc0000, 0x40000, CRC(0ab3a8db) SHA1(7f4f5c18b5df0f5fdcb471db4e87c1be393aca92) ) ROM_REGION( 0x080000, "sprites2", 0 ) // leftover from Major Title - ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ + ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) // sprites #2 ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ // leftover from Major Title + ROM_REGION( 0x20000, "samples", 0 ) // samples - leftover from Major Title ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) ) ROM_END - ROM_START( rtype2m82b ) ROM_REGION( 0x100000, "maincpu", 0 ) ROM_LOAD16_BYTE( "rt2_h0.bin", 0x00001, 0x20000, CRC(47639a78) SHA1(d7dd851fed96d46c850e5c8f24d9d1a081f6b297) ) @@ -3850,24 +3849,24 @@ ROM_LOAD( "rt2_sp.bin", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) ) ROM_REGION( 0x80000, "sprites", 0 ) - ROM_LOAD( "rt2_n0.bin", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites #1 */ + ROM_LOAD( "rt2_n0.bin", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) // sprites #1 ROM_LOAD( "rt2_n1.bin", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) ) ROM_LOAD( "rt2_n2.bin", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) ) ROM_LOAD( "rt2_n3.bin", 0x60000, 0x20000, CRC(db6176fc) SHA1(1eaf72af0322490c98461aded202288e387caac1) ) ROM_REGION( 0x100000, "gfx2", 0 ) - ROM_LOAD( "rt2_c0.bin", 0x00000, 0x40000, CRC(f5bad5f2) SHA1(dc86b93f62e8947e3551f07e393e740e5dc43f5e) ) /* tiles */ + ROM_LOAD( "rt2_c0.bin", 0x00000, 0x40000, CRC(f5bad5f2) SHA1(dc86b93f62e8947e3551f07e393e740e5dc43f5e) ) // tiles ROM_LOAD( "rt2_c1.bin", 0x40000, 0x40000, CRC(71451778) SHA1(52ca7aa8522b988a19556313041450c767dad054) ) ROM_LOAD( "rt2_c2.bin", 0x80000, 0x40000, CRC(c6b0c352) SHA1(eec4fa88c27815960106881e7ccb23e62556bf1c) ) ROM_LOAD( "rt2_c3.bin", 0xc0000, 0x40000, CRC(6d530a32) SHA1(4e4100e5e5d88e65fb5494474d3692ecd8f44343) ) ROM_REGION( 0x080000, "sprites2", 0 ) // leftover from Major Title - ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ + ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) // sprites #2 ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "rt2_vo.bin", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) ) ROM_END @@ -3885,24 +3884,24 @@ ROM_LOAD( "gen_=m84=_a-sp-d.ic15", 0x00000, 0x10000, CRC(e83cfc2c) SHA1(3193bdd06a9712fc499e6fc90a33140463ef59fe) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "gen_=m72=_c-l0-b.ic44", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ + ROM_LOAD( "gen_=m72=_c-l0-b.ic44", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) // sprites ROM_LOAD( "gen_=m72=_c-l3-b.ic45", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) ROM_LOAD( "gen_=m72=_c-h0-b.ic46", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) ROM_LOAD( "gen_=m72=_c-h3-b.ic36", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "gen_=m81=_a-l0-a.ic49", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */ + ROM_LOAD( "gen_=m81=_a-l0-a.ic49", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) // tiles ROM_LOAD( "gen_=m81=_a-l1-a.ic48", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) ) ROM_LOAD( "gen_=m81=_a-h0-a.ic57", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) ) ROM_LOAD( "gen_=m81=_a-h1-a.ic56", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) ) ROM_REGION( 0x080000, "sprites2", 0 ) // leftover from Major Title (mask roms, soldered on pcb) - ROM_LOAD( "mt_f0.ic38", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ + ROM_LOAD( "mt_f0.ic38", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) // sprites #2 ROM_LOAD( "mt_f1.ic39", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) ROM_LOAD( "mt_f2.ic40", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) ROM_LOAD( "mt_f3.ic41", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "gen_=m84=_a-v0-d.ic12", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) ) ROM_END @@ -3924,13 +3923,13 @@ ROM_LOAD( "ic17.4f", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */ + ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) // sprites ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) ) ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) ) ROM_LOAD( "ic22.4m", 0x60000, 0x20000, CRC(db6176fc) SHA1(1eaf72af0322490c98461aded202288e387caac1) ) ROM_REGION( 0x100000, "gfx2", 0 ) - ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) /* tiles */ + ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) // tiles ROM_LOAD( "ic51.7u", 0x20000, 0x20000, CRC(b4c543af) SHA1(56042eba711160fc701021c8787414dcaddcdecb) ) ROM_LOAD( "ic56.8s", 0x40000, 0x20000, CRC(4cb80d66) SHA1(31c5496c14b277e428a2f22195fe1742d6a577d4) ) ROM_LOAD( "ic57.8u", 0x60000, 0x20000, CRC(bee128e0) SHA1(b149dae5f8f67a329d6df033fadf50ad75c0a57a) ) @@ -3939,7 +3938,7 @@ ROM_LOAD( "ic63.9m", 0xc0000, 0x20000, CRC(a6ad67f2) SHA1(b005b037ce8b3c932089982ecfbccdc922278fe3) ) ROM_LOAD( "ic64.9p", 0xe0000, 0x20000, CRC(3686d555) SHA1(d03754d9b8a6a3bfd4a85eeddacc35a36af197bd) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "ic14.4c", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) ) ROM_END @@ -3956,13 +3955,13 @@ ROM_LOAD( "ic17.4f", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */ + ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) // sprites ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) ) ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) ) ROM_LOAD( "ic22.4m", 0x60000, 0x20000, CRC(db6176fc) SHA1(1eaf72af0322490c98461aded202288e387caac1) ) ROM_REGION( 0x100000, "gfx2", 0 ) - ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) /* tiles */ + ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) // tiles ROM_LOAD( "ic51.7u", 0x20000, 0x20000, CRC(b4c543af) SHA1(56042eba711160fc701021c8787414dcaddcdecb) ) ROM_LOAD( "ic56.8s", 0x40000, 0x20000, CRC(4cb80d66) SHA1(31c5496c14b277e428a2f22195fe1742d6a577d4) ) ROM_LOAD( "ic57.8u", 0x60000, 0x20000, CRC(bee128e0) SHA1(b149dae5f8f67a329d6df033fadf50ad75c0a57a) ) @@ -3971,14 +3970,14 @@ ROM_LOAD( "ic63.9m", 0xc0000, 0x20000, CRC(a6ad67f2) SHA1(b005b037ce8b3c932089982ecfbccdc922278fe3) ) ROM_LOAD( "ic64.9p", 0xe0000, 0x20000, CRC(3686d555) SHA1(d03754d9b8a6a3bfd4a85eeddacc35a36af197bd) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "ic14.4c", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) ) - ROM_REGION( 0x0200, "proms", 0 ) /* located on M84-B-A */ + ROM_REGION( 0x0200, "proms", 0 ) // located on M84-B-A ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) - /* stuff below isn't used but loaded because it was on the board .. */ + // stuff below isn't used but loaded because it was on the board .. ROM_REGION( 0x0800, "plds", 0 ) ROM_LOAD( "rt2-a-2h-.5", 0x0000, 0x0104, NO_DUMP ) // TIBPAL-16L8-25 ROM_LOAD( "rt2-a-5l-.33", 0x0200, 0x0104, NO_DUMP ) // TIBPAL-16L8-25 @@ -3999,13 +3998,13 @@ ROM_LOAD( "ic17.4f", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */ + ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) // sprites ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) ) ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) ) ROM_LOAD( "ic22.4m", 0x60000, 0x20000, CRC(db6176fc) SHA1(1eaf72af0322490c98461aded202288e387caac1) ) ROM_REGION( 0x100000, "gfx2", 0 ) - ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) /* tiles */ + ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) // tiles ROM_LOAD( "ic51.7u", 0x20000, 0x20000, CRC(b4c543af) SHA1(56042eba711160fc701021c8787414dcaddcdecb) ) ROM_LOAD( "ic56.8s", 0x40000, 0x20000, CRC(4cb80d66) SHA1(31c5496c14b277e428a2f22195fe1742d6a577d4) ) ROM_LOAD( "ic57.8u", 0x60000, 0x20000, CRC(bee128e0) SHA1(b149dae5f8f67a329d6df033fadf50ad75c0a57a) ) @@ -4014,7 +4013,7 @@ ROM_LOAD( "ic63.9m", 0xc0000, 0x20000, CRC(a6ad67f2) SHA1(b005b037ce8b3c932089982ecfbccdc922278fe3) ) ROM_LOAD( "ic64.9p", 0xe0000, 0x20000, CRC(3686d555) SHA1(d03754d9b8a6a3bfd4a85eeddacc35a36af197bd) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "ic14.4c", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) ) ROM_END @@ -4032,18 +4031,18 @@ ROM_LOAD( "a-sp-0.rom", 0x00000, 0x10000, CRC(80e210e7) SHA1(66cff58fb37c52e1d8e0567e13b774253e862585) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ + ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) // sprites ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */ + ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) // tiles ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) ) ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) ) ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "a-v0-0.rom", 0x00000, 0x20000, CRC(faaacaff) SHA1(ea3a3920255c07aa9c0a7e0191eae257a9f7f558) ) ROM_END @@ -4060,18 +4059,18 @@ ROM_LOAD( "gen-a-sp.bin", 0x00000, 0x10000, CRC(e83cfc2c) SHA1(3193bdd06a9712fc499e6fc90a33140463ef59fe) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ + ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) // sprites ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */ + ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) // tiles ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) ) ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) ) ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) ) ROM_END @@ -4110,6 +4109,7 @@ ROM_LOAD( "a-pal16l8.bin", 0x000, 0x104, CRC(1358c513) SHA1(7c8f44e4d63867d54e16fc29d168a27be5f4babf) ) ROM_END + ROM_START( cosmccop ) ROM_REGION( 0x100000, "maincpu", 0 ) ROM_LOAD16_BYTE( "cc-d-h0b.bin", 0x00001, 0x40000, CRC(38958b01) SHA1(7d7e217742e33a1fe096adf5bbc93d63ddcfb375) ) @@ -4120,20 +4120,20 @@ ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "cc-d-sp.bin", 0x00000, 0x10000, CRC(3e3ace60) SHA1(d89b1b84de2887598bb7bcb17b1df1ec8d1862a9) ) - ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) // cc-b-n0 - ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) // cc-b-n1 - ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) // cc-b-n2 - ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) // cc-b-n3 - - ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "cc-d-g00.bin", 0x00000, 0x20000, CRC(e7f3d772) SHA1(c7f0bc42e8dde7bae334c7974c3d0ddba3856144) ) /* tiles */ - ROM_LOAD( "cc-d-g10.bin", 0x20000, 0x20000, CRC(418b4e4c) SHA1(1191f12741ee7a360240f706534c9c83be8d5c2d) ) - ROM_LOAD( "cc-d-g20.bin", 0x40000, 0x20000, CRC(a4b558eb) SHA1(0babf725de0065dbeca73fa170bd33565305d129) ) - ROM_LOAD( "cc-d-g30.bin", 0x60000, 0x20000, CRC(f64a3166) SHA1(1661db2a37c76e6b4552e48c04966dbbccab8926) ) + ROM_REGION( 0x080000, "sprites", 0 ) // sprites - same data as the gallop set + ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) // == cc-c-00.ic53 + ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) // == cc-c-10.ic51 + ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) // == cc-c-20.ic49 + ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) // == cc-c-30.ic47 + + ROM_REGION( 0x080000, "gfx2", 0 ) // tiles - same data, different format as the gallop set + ROM_LOAD( "cc-d-g00.bin", 0x00000, 0x20000, CRC(e7f3d772) SHA1(c7f0bc42e8dde7bae334c7974c3d0ddba3856144) ) // == cc-b-a0.ic21 + cc-b-b0.ic26 + ROM_LOAD( "cc-d-g10.bin", 0x20000, 0x20000, CRC(418b4e4c) SHA1(1191f12741ee7a360240f706534c9c83be8d5c2d) ) // == cc-b-a1.ic22 + cc-b-b1.ic27 + ROM_LOAD( "cc-d-g20.bin", 0x40000, 0x20000, CRC(a4b558eb) SHA1(0babf725de0065dbeca73fa170bd33565305d129) ) // == cc-b-a2.ic20 + cc-b-b2.ic25 + ROM_LOAD( "cc-d-g30.bin", 0x60000, 0x20000, CRC(f64a3166) SHA1(1661db2a37c76e6b4552e48c04966dbbccab8926) ) // == cc-b-a3.ic23 + cc-b-b3.ic24 - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ - ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) // cc-d-v0 + ROM_REGION( 0x20000, "samples", 0 ) // samples - same data as the gallop set + ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) // == cc-c-v0.ic44 ROM_END @@ -4148,18 +4148,18 @@ ROM_LOAD( "ken_d-sp.rom", 0x00000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */ + ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) // sprites ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) ) ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) ) ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */ + ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) // tiles ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) ) ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) ) ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) ) ROM_END @@ -4174,18 +4174,18 @@ ROM_LOAD( "ken_d-sp.rom", 0x00000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */ + ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) // sprites ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) ) ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) ) ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */ + ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) // tiles ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) ) ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) ) ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) ) ROM_END @@ -4200,18 +4200,18 @@ ROM_LOAD( "ken_d-sp.rom", 0x00000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) ) ROM_REGION( 0x080000, "sprites", 0 ) - ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */ + ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) // sprites ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) ) ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) ) ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */ + ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) // tiles ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) ) ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) ) ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) ) - ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_REGION( 0x20000, "samples", 0 ) // samples ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) ) ROM_REGION( 0x0200, "proms", 0 ) /* located on M84-B-B */ @@ -4237,18 +4237,18 @@ ROM_LOAD( "ppa-sp.4j", 0x00000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) ) ROM_REGION( 0x100000, "sprites", 0 ) - ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */ + ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) // sprites ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) ) ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) ) ROM_LOAD( "ppb-n3.bin", 0xc0000, 0x40000, CRC(93dc9490) SHA1(3df4d57a7bf19443f5aa6a416bcee968f81d9059) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) /* tiles */ + ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) // tiles ROM_LOAD( "ppa-g10.bin", 0x20000, 0x20000, CRC(e48a66ac) SHA1(49b33db6a922d6f1d1417e28714a67431b7c0217) ) ROM_LOAD( "ppa-g20.bin", 0x40000, 0x20000, CRC(12b93e79) SHA1(f3d2b76a30874827c8998c1d13a55a3990b699b7) ) ROM_LOAD( "ppa-g30.bin", 0x60000, 0x20000, CRC(faa39aee) SHA1(9cc1a468b304437766c04189054d3b8f7ff1f958) ) - ROM_REGION( 0x40000, "samples", 0 ) /* samples */ + ROM_REGION( 0x40000, "samples", 0 ) // samples ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) ) ROM_END @@ -4265,18 +4265,18 @@ ROM_LOAD( "ppa-sp.4j", 0x00000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) ) ROM_REGION( 0x100000, "sprites", 0 ) - ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */ + ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) // sprites ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) ) ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) ) ROM_LOAD( "ppb-n3.bin", 0xc0000, 0x40000, CRC(93dc9490) SHA1(3df4d57a7bf19443f5aa6a416bcee968f81d9059) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) /* tiles */ + ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) // tiles ROM_LOAD( "ppa-g10.bin", 0x20000, 0x20000, CRC(e48a66ac) SHA1(49b33db6a922d6f1d1417e28714a67431b7c0217) ) ROM_LOAD( "ppa-g20.bin", 0x40000, 0x20000, CRC(12b93e79) SHA1(f3d2b76a30874827c8998c1d13a55a3990b699b7) ) ROM_LOAD( "ppa-g30.bin", 0x60000, 0x20000, CRC(faa39aee) SHA1(9cc1a468b304437766c04189054d3b8f7ff1f958) ) - ROM_REGION( 0x40000, "samples", 0 ) /* samples */ + ROM_REGION( 0x40000, "samples", 0 ) // samples ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) ) ROM_END @@ -4293,18 +4293,18 @@ ROM_LOAD( "ppa-sp.4j", 0x00000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) ) ROM_REGION( 0x100000, "sprites", 0 ) - ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */ + ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) // sprites ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) ) ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) ) ROM_LOAD( "ppb-n3.bin", 0xc0000, 0x40000, CRC(93dc9490) SHA1(3df4d57a7bf19443f5aa6a416bcee968f81d9059) ) ROM_REGION( 0x080000, "gfx2", 0 ) - ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) /* tiles */ + ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) // tiles ROM_LOAD( "ppa-g10.bin", 0x20000, 0x20000, CRC(e48a66ac) SHA1(49b33db6a922d6f1d1417e28714a67431b7c0217) ) ROM_LOAD( "ppa-g20.bin", 0x40000, 0x20000, CRC(12b93e79) SHA1(f3d2b76a30874827c8998c1d13a55a3990b699b7) ) ROM_LOAD( "ppa-g30.bin", 0x60000, 0x20000, CRC(faa39aee) SHA1(9cc1a468b304437766c04189054d3b8f7ff1f958) ) - ROM_REGION( 0x40000, "samples", 0 ) /* samples */ + ROM_REGION( 0x40000, "samples", 0 ) // samples ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) ) ROM_END diff -Nru mame-0.223+dfsg.1/src/mame/drivers/m92.cpp mame-0.224+dfsg.1/src/mame/drivers/m92.cpp --- mame-0.223+dfsg.1/src/mame/drivers/m92.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/m92.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -4,35 +4,40 @@ Irem M92 system games: - Gunforce (World) M92-A (c) 1991 Irem Corp - Gunforce (USA) M92-A (c) 1991 Irem America Corp - Gunforce (Japan) M92-A (c) 1991 Irem Corp - Blade Master (World) (c) 1991 Irem Corp - Cross Blades! (Japan) (c) 1991 Irem Corp - Lethal Thunder (World) (c) 1991 Irem Corp - Thunder Blaster (Japan) (c) 1991 Irem Corp - Undercover Cops (World) (c) 1992 Irem Corp - Undercover Cops (Japan) (c) 1992 Irem Corp - Mystic Riders (World) (c) 1992 Irem Corp - Gun Hohki (Japan) (c) 1992 Irem Corp - Major Title 2 (World) M92-F (c) 1992 Irem Corp - Major Title 2 (Japan) M92-F (c) 1992 Irem Corp - The Irem Skins Game (USA Set 1) M92-F (c) 1992 Irem America Corp - The Irem Skins Game (USA Set 2) M92-F (c) 1992 Irem America Corp - Hook (World) (c) 1992 Irem Corp - Hook (Japan) (c) 1992 Irem Corp - Hook (USA) (c) 1992 Irem America Corp - R-Type Leo (World) (c) 1992 Irem Corp - R-Type Leo (Japan) (c) 1992 Irem Corp - In The Hunt (World) M92-E (c) 1993 Irem Corp - In The Hunt (USA) M92-E (c) 1993 Irem Corp - Kaitei Daisensou (Japan) M92-E (c) 1993 Irem Corp - Ninja Baseball Batman (USA) (c) 1993 Irem America Corp - Yakyuu Kakutou League-Man (Japan) (c) 1993 Irem Corp - Perfect Soldiers (Japan) M92-G (c) 1993 Irem Corp - Dream Soccer 94 (Japan) M92-G (c) 1994 Irem Corp - Gunforce 2 (US) M92-G (c) 1994 Irem Corp - Geostorm (Japan) M92-G (c) 1994 Irem Corp + Gunforce (World) M92-A (c) 1991 Irem Corp + Gunforce (USA) M92-A (c) 1991 Irem America Corp + Gunforce (Japan) M92-A (c) 1991 Irem Corp + Blade Master (World) M92-B (c) 1991 Irem Corp + Cross Blades! (Japan) M92-D (c) 1991 Irem Corp + Lethal Thunder (World) (c) 1991 Irem Corp + Thunder Blaster (Japan) M92-C (c) 1991 Irem Corp + Undercover Cops (World) M92-E (c) 1992 Irem Corp + Undercover Cops (US) M92-E (c) 1992 Irem America Corp + Undercover Cops (Japan) M92-E (c) 1992 Irem Corp + Undercover Cops - Alpha Renewal Version (World) M92-E (c) 1992 Irem Corp + Undercover Cops - Alpha Renewal Version (US) M92-E (c) 1992 Irem America Corp + Mystic Riders (World) (c) 1992 Irem Corp + Mahou Keibitai Gun Hohki (Japan) (c) 1992 Irem Corp + Major Title 2 (World) M92-F (c) 1992 Irem Corp + Major Title 2 (Japan) M92-F (c) 1992 Irem Corp + The Irem Skins Game (USA Set 1) M92-F (c) 1992 Irem America Corp + The Irem Skins Game (USA Set 2) M92-F (c) 1992 Irem America Corp + Hook (World) (c) 1992 Irem Corp + Hook (USA) (c) 1992 Irem America Corp + Hook (Japan) (c) 1992 Irem Corp + R-Type Leo (World) (c) 1992 Irem Corp + R-Type Leo (Japan) (c) 1992 Irem Corp + In The Hunt (World) M92-E (c) 1993 Irem Corp + In The Hunt (USA) M92-E (c) 1993 Irem Corp + Kaitei Daisensou (Japan) M92-E (c) 1993 Irem Corp + Ninja Baseball Batman (World) (c) 1993 Irem Corp + Ninja Baseball Batman (USA) (c) 1993 Irem America Corp + Yakyuu Kakutou League-Man (Japan) (c) 1993 Irem Corp + Superior Soldiers (US) M92-G (c) 1993 Irem Corp + Perfect Soldiers (Japan) M92-G (c) 1993 Irem Corp + Dream Soccer '94 (Japan) M92-G (c) 1994 Irem Corp + Gun Force II (US) M92-G (c) 1994 Irem Corp + Geo Storm (Japan) M92-G (c) 1994 Irem Corp System notes: Each game has an encrypted sound cpu (see irem_cpu.c), the sound cpu and @@ -97,7 +102,7 @@ World PK Soccer 1995 Rev 3.51 M92 Fire Barrel 1993 Rev 3.52 M92 Dream Soccer '94 1994 Rev 3.53 M92 -Gunforce 2 1994 Rev 3.53 M92 +Gun Force II 1994 Rev 3.53 M92 Gun Force 1991, Irem Corp. @@ -1793,14 +1798,14 @@ ROM_START( uccops ) ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "uc_h0.ic28", 0x000001, 0x040000, CRC(240aa5f7) SHA1(8d864bb1377e9f6d266631ed365c5809b9da33f8) ) - ROM_LOAD16_BYTE( "uc_l0.ic39", 0x000000, 0x040000, CRC(df9a4826) SHA1(298033d97b9587e3548cb3bffa16b7ba9a6ff20d) ) - ROM_LOAD16_BYTE( "uc_h1.ic27", 0x080001, 0x020000, CRC(8d29bcd6) SHA1(470b77d1b8f88824bac294bd12a205a23dad2287) ) - ROM_LOAD16_BYTE( "uc_l1.ic38", 0x080000, 0x020000, CRC(a8a402d8) SHA1(0b40fb69f0a3e24e6b60117d2d2fd4cc170bc621) ) + ROM_LOAD16_BYTE( "ucc_e-h0.ic28", 0x000001, 0x040000, CRC(240aa5f7) SHA1(8d864bb1377e9f6d266631ed365c5809b9da33f8) ) + ROM_LOAD16_BYTE( "ucc_e-l0.ic39", 0x000000, 0x040000, CRC(df9a4826) SHA1(298033d97b9587e3548cb3bffa16b7ba9a6ff20d) ) + ROM_LOAD16_BYTE( "ucc_h1.ic27", 0x080001, 0x020000, CRC(8d29bcd6) SHA1(470b77d1b8f88824bac294bd12a205a23dad2287) ) + ROM_LOAD16_BYTE( "ucc_l1.ic38", 0x080000, 0x020000, CRC(a8a402d8) SHA1(0b40fb69f0a3e24e6b60117d2d2fd4cc170bc621) ) ROM_REGION( 0x20000, "soundcpu", 0 ) - ROM_LOAD16_BYTE( "uc_sh0.rom", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) ) - ROM_LOAD16_BYTE( "uc_sl0.rom", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) ) + ROM_LOAD16_BYTE( "ucc_e-sh0.ic30", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) ) + ROM_LOAD16_BYTE( "ucc_e-sl0.ic31", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) ) ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_LOAD( "uc_w38m.rom", 0x000000, 0x080000, CRC(130a40e5) SHA1(f70bad2fe126bb0e451a3fa6100a610928e9a502) ) @@ -1820,14 +1825,14 @@ ROM_START( uccopsu ) ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "uc_h0.ic28", 0x000001, 0x040000, CRC(240aa5f7) SHA1(8d864bb1377e9f6d266631ed365c5809b9da33f8) ) - ROM_LOAD16_BYTE( "uc_l0.ic39", 0x000000, 0x040000, CRC(df9a4826) SHA1(298033d97b9587e3548cb3bffa16b7ba9a6ff20d) ) - ROM_LOAD16_BYTE( "uc_h1-g.ic27", 0x080001, 0x020000, CRC(6b8ca2de) SHA1(1096b93bbaa4c97d4900e8c083cde99195cad5ba) ) - ROM_LOAD16_BYTE( "uc_l1-g.ic38", 0x080000, 0x020000, CRC(2bdec7dd) SHA1(58817099e74fd5bc299b7bc14d83ee75ed200b53) ) + ROM_LOAD16_BYTE( "ucc_e-h0.ic28", 0x000001, 0x040000, CRC(240aa5f7) SHA1(8d864bb1377e9f6d266631ed365c5809b9da33f8) ) + ROM_LOAD16_BYTE( "ucc_e-l0.ic39", 0x000000, 0x040000, CRC(df9a4826) SHA1(298033d97b9587e3548cb3bffa16b7ba9a6ff20d) ) + ROM_LOAD16_BYTE( "ucc_h1-g.ic27", 0x080001, 0x020000, CRC(6b8ca2de) SHA1(1096b93bbaa4c97d4900e8c083cde99195cad5ba) ) + ROM_LOAD16_BYTE( "ucc_l1-g.ic38", 0x080000, 0x020000, CRC(2bdec7dd) SHA1(58817099e74fd5bc299b7bc14d83ee75ed200b53) ) ROM_REGION( 0x20000, "soundcpu", 0 ) - ROM_LOAD16_BYTE( "uc_sh0.rom", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) ) - ROM_LOAD16_BYTE( "uc_sl0.rom", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) ) + ROM_LOAD16_BYTE( "ucc_e-sh0.ic30", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) ) + ROM_LOAD16_BYTE( "ucc_e-sl0.ic31", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) ) ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_LOAD( "uc_w38m.rom", 0x000000, 0x080000, CRC(130a40e5) SHA1(f70bad2fe126bb0e451a3fa6100a610928e9a502) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/mcr68.cpp mame-0.224+dfsg.1/src/mame/drivers/mcr68.cpp --- mame-0.223+dfsg.1/src/mame/drivers/mcr68.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/mcr68.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -179,9 +179,24 @@ void mcr68_state::archrivl_control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { + // the arch rivals schematics are terrible here, but some information can be gathered from pages 30 and 42 + // the bits here seem to have the following functions: + // code: D0-D7 go to sound board pins 3-10 + // code: D8 goes to sound board pin 13 (/STB) + // guess: D9 goes to sound board pin 12 (/STBR) ? (/STBR is usually an output, not an input?) + // code: D10 goes to sound board pin 18 (/RESET) + // guess: D11 is n/c (may control the SPARE pin on J3 pin 13) + // guess: D12 is n/c + // schems: D13 goes to coin meter 1 (second meter) + // schems: D14 is SCREENFLIP + // schems: D15 goes to coin meter 0 (first meter) COMBINE_DATA(&m_control_word); - m_cvsd_sound->reset_write(~m_control_word & 0x0400); - m_cvsd_sound->write(m_control_word & 0x3ff); + m_bg->resetq_w(BIT(m_control_word, 10)); + m_bg->data_w(m_control_word & 0xff); + m_bg->ctrl_w(BIT(m_control_word, 8)); + m_bg->extra_w(BIT(m_control_word, 9)); + ///TODO: coin meters; do the games even use these? + ///TODO: flipscreen; this is actually quite complex, involving many PLDs/pals } @@ -602,7 +617,7 @@ PORT_START("IN1") PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED ) /* player 1/2 joysticks go here */ - PORT_START("DSW") /* There are actually 10 switches, but where do 9 & 10 map to?? (10=Freeze Screen) */ + PORT_START("DSW") /* There are actually 10 switches; 9 is unconnected, 10 (freeze) connects to a PAL and disables the watchdog */ PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x0003, "Preset Time" ) PORT_DIPSETTING( 0x0002, "Preset + 10sec" ) @@ -677,7 +692,7 @@ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_START("DSW") /* There are actually 10 switches, but where do 9 & 10 map to?? (10=Freeze Screen) */ + PORT_START("DSW") /* There are actually 10 switches; 9 is unconnected, 10 (freeze) connects to a PAL and disables the watchdog on the non-bootleg hardware, unclear here */ PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x0003, "Preset Time" ) PORT_DIPSETTING( 0x0002, "Preset + 10sec" ) @@ -732,7 +747,7 @@ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) /* player 1 joystick goes here */ - PORT_START("DSW") /* There are actually 10 switches, but where do 9 & 10 map to?? (10=Freeze Screen) */ + PORT_START("DSW") /* There are actually 10 switches; 9 is unconnected, 10 (freeze) connects to a PAL and disables the watchdog */ PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x0000, "Shortest" ) PORT_DIPSETTING( 0x0002, "Short" ) @@ -789,7 +804,7 @@ PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) /* analog controls go here */ - PORT_START("DSW") /* There are actually 10 switches, but where do 9 & 10 map to?? (10=Freeze Screen) */ + PORT_START("DSW") /* There are actually 10 switches; 9 is unconnected, 10 (freeze) connects to a PAL and disables the watchdog */ PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0003, DEF_STR( 3C_1C ) ) @@ -970,7 +985,9 @@ mcr68(config); /* basic machine hardware */ - WILLIAMS_CVSD_SOUND(config, m_cvsd_sound).add_route(ALL_OUTPUTS, "speaker", 1.0); + S11_BG(config, m_bg).add_route(ALL_OUTPUTS, "speaker", 1.0); // uses a D-11581 w/o W10/W11 jumpers, older mix resistors + // The schematics actually imply on the parts list that this may use the even older mix resistors from the D-1129x board + // but the actual schematic shows the D-11581 resistors. This may be worth checking from an original board. } @@ -979,7 +996,7 @@ mcr68(config); /* basic machine hardware */ - WILLIAMS_CVSD_SOUND(config, m_cvsd_sound).add_route(ALL_OUTPUTS, "speaker", 1.0); + S11C_BG(config, m_bg).add_route(ALL_OUTPUTS, "speaker", 1.0); // uses a D-11581-4xxx w/ W10/W11 jumpers, newer mix resistors m_maincpu->set_addrmap(AS_PROGRAM, &mcr68_state::pigskin_map); } @@ -990,7 +1007,10 @@ mcr68(config); /* basic machine hardware */ - WILLIAMS_CVSD_SOUND(config, m_cvsd_sound).add_route(ALL_OUTPUTS, "speaker", 1.0); + S11C_BG(config, m_bg).add_route(ALL_OUTPUTS, "speaker", 1.0); // uses a D-11581-4xxx w/ W10/W11 jumpers, newer mix resistors + // the above could use verification from the schematics, but based on the fact that it uses 3 roms, two 27512 and one 27256, + // and only the S11C_BG/D-11581-4xxx board properly supports that specific combination, it is almost certainly using + // S11C_BG and not S11_BG/D-11581 m_maincpu->set_addrmap(AS_PROGRAM, &mcr68_state::trisport_map); @@ -1206,19 +1226,19 @@ ROM_LOAD16_BYTE( "arch_rivals_2c_rev4.2c", 0x20000, 0x10000, CRC(cc2893f7) SHA1(44931299cb98e27ac2f11b3922da76895fbfe0a7) ) ROM_LOAD16_BYTE( "arch_rivals_2b_rev4.2b", 0x20001, 0x10000, CRC(fa977050) SHA1(67c66995da755401162f7e668b97eb42ac769ec0) ) - ROM_REGION( 0x90000, "cvsd:cpu", 0 ) /* Audio System board */ - ROM_LOAD( "arch_rivals_u4_rev1.u4", 0x10000, 0x08000, CRC(96b3c652) SHA1(1bb576d0bf6b6b8df24e7b9352a33e97dd8ebdcb) ) /* "REV1" portion of label is brown */ + ROM_REGION( 0x90000, "bg:cpu", 0 ) /* Audio System board */ + ROM_LOAD( "arch_rivals_u4_rev1.u4", 0x00000, 0x08000, CRC(96b3c652) SHA1(1bb576d0bf6b6b8df24e7b9352a33e97dd8ebdcb) ) /* "REV1" portion of label is brown */ + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_RELOAD( 0x10000, 0x08000 ) ROM_RELOAD( 0x18000, 0x08000 ) - ROM_RELOAD( 0x20000, 0x08000 ) + ROM_LOAD( "arch_rivals_u19_rev1.u19", 0x20000, 0x08000, CRC(c4b3dc23) SHA1(87e6eaec82d749ad28e0fa3d0efecd8a4aaf5cd7) ) ROM_RELOAD( 0x28000, 0x08000 ) - ROM_LOAD( "arch_rivals_u19_rev1.u19", 0x30000, 0x08000, CRC(c4b3dc23) SHA1(87e6eaec82d749ad28e0fa3d0efecd8a4aaf5cd7) ) + ROM_RELOAD( 0x30000, 0x08000 ) ROM_RELOAD( 0x38000, 0x08000 ) - ROM_RELOAD( 0x40000, 0x08000 ) + ROM_LOAD( "arch_rivals_u20_rev1.u20", 0x40000, 0x08000, CRC(f7907a02) SHA1(3fabb2b7fd82e773d7b6db53c5328b5866d70617) ) ROM_RELOAD( 0x48000, 0x08000 ) - ROM_LOAD( "arch_rivals_u20_rev1.u20", 0x50000, 0x08000, CRC(f7907a02) SHA1(3fabb2b7fd82e773d7b6db53c5328b5866d70617) ) + ROM_RELOAD( 0x50000, 0x08000 ) ROM_RELOAD( 0x58000, 0x08000 ) - ROM_RELOAD( 0x60000, 0x08000 ) - ROM_RELOAD( 0x68000, 0x08000 ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) ROM_LOAD( "arch_rivals_11d_rev1.11d", 0x00000, 0x10000, CRC(7eb3d7c6) SHA1(8544d04929cdb36fa7f0dcb67e0b7fd8c7b0fc2b) ) /* "REV1" portion of label is brown */ @@ -1253,19 +1273,19 @@ ROM_LOAD16_BYTE( "arch_rivals_2c_rev2.2c", 0x20000, 0x10000, CRC(d6d08ff7) SHA1(bbbd4b5c3218c9bb461b17e536191d40ab39f67c) ) ROM_LOAD16_BYTE( "arch_rivals_2b_rev2.2b", 0x20001, 0x10000, CRC(92f3a43d) SHA1(45fdcbacd65f5898d54cc2ac95639b7ee2c097e6) ) - ROM_REGION( 0x90000, "cvsd:cpu", 0 ) /* Audio System board */ - ROM_LOAD( "arch_rivals_u4_rev1.u4", 0x10000, 0x08000, CRC(96b3c652) SHA1(1bb576d0bf6b6b8df24e7b9352a33e97dd8ebdcb) ) /* "REV1" portion of label is brown */ + ROM_REGION( 0x90000, "bg:cpu", 0 ) /* Audio System board */ + ROM_LOAD( "arch_rivals_u4_rev1.u4", 0x00000, 0x08000, CRC(96b3c652) SHA1(1bb576d0bf6b6b8df24e7b9352a33e97dd8ebdcb) ) /* "REV1" portion of label is brown */ + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_RELOAD( 0x10000, 0x08000 ) ROM_RELOAD( 0x18000, 0x08000 ) - ROM_RELOAD( 0x20000, 0x08000 ) + ROM_LOAD( "arch_rivals_u19_rev1.u19", 0x20000, 0x08000, CRC(c4b3dc23) SHA1(87e6eaec82d749ad28e0fa3d0efecd8a4aaf5cd7) ) ROM_RELOAD( 0x28000, 0x08000 ) - ROM_LOAD( "arch_rivals_u19_rev1.u19", 0x30000, 0x08000, CRC(c4b3dc23) SHA1(87e6eaec82d749ad28e0fa3d0efecd8a4aaf5cd7) ) + ROM_RELOAD( 0x30000, 0x08000 ) ROM_RELOAD( 0x38000, 0x08000 ) - ROM_RELOAD( 0x40000, 0x08000 ) + ROM_LOAD( "arch_rivals_u20_rev1.u20", 0x40000, 0x08000, CRC(f7907a02) SHA1(3fabb2b7fd82e773d7b6db53c5328b5866d70617) ) ROM_RELOAD( 0x48000, 0x08000 ) - ROM_LOAD( "arch_rivals_u20_rev1.u20", 0x50000, 0x08000, CRC(f7907a02) SHA1(3fabb2b7fd82e773d7b6db53c5328b5866d70617) ) + ROM_RELOAD( 0x50000, 0x08000 ) ROM_RELOAD( 0x58000, 0x08000 ) - ROM_RELOAD( 0x60000, 0x08000 ) - ROM_RELOAD( 0x68000, 0x08000 ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) ROM_LOAD( "arch_rivals_11d_rev1.11d", 0x00000, 0x10000, CRC(7eb3d7c6) SHA1(8544d04929cdb36fa7f0dcb67e0b7fd8c7b0fc2b) ) /* "REV1" portion of label is brown */ @@ -1300,19 +1320,19 @@ ROM_LOAD16_BYTE( "3.bin", 0x20000, 0x10000, CRC(d6d08ff7) SHA1(bbbd4b5c3218c9bb461b17e536191d40ab39f67c) ) ROM_LOAD16_BYTE( "1.bin", 0x20001, 0x10000, CRC(92f3a43d) SHA1(45fdcbacd65f5898d54cc2ac95639b7ee2c097e6) ) - ROM_REGION( 0x90000, "cvsd:cpu", 0 ) /* Audio System board */ - ROM_LOAD( "13.bin", 0x10000, 0x08000, CRC(96b3c652) SHA1(1bb576d0bf6b6b8df24e7b9352a33e97dd8ebdcb) ) + ROM_REGION( 0x90000, "bg:cpu", 0 ) /* Audio System board */ + ROM_LOAD( "13.bin", 0x00000, 0x08000, CRC(96b3c652) SHA1(1bb576d0bf6b6b8df24e7b9352a33e97dd8ebdcb) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_RELOAD( 0x10000, 0x08000 ) ROM_RELOAD( 0x18000, 0x08000 ) - ROM_RELOAD( 0x20000, 0x08000 ) + ROM_LOAD( "12.bin", 0x20000, 0x08000, CRC(c4b3dc23) SHA1(87e6eaec82d749ad28e0fa3d0efecd8a4aaf5cd7) ) ROM_RELOAD( 0x28000, 0x08000 ) - ROM_LOAD( "12.bin", 0x30000, 0x08000, CRC(c4b3dc23) SHA1(87e6eaec82d749ad28e0fa3d0efecd8a4aaf5cd7) ) + ROM_RELOAD( 0x30000, 0x08000 ) ROM_RELOAD( 0x38000, 0x08000 ) - ROM_RELOAD( 0x40000, 0x08000 ) + ROM_LOAD( "11.bin", 0x40000, 0x08000, CRC(f7907a02) SHA1(3fabb2b7fd82e773d7b6db53c5328b5866d70617) ) ROM_RELOAD( 0x48000, 0x08000 ) - ROM_LOAD( "11.bin", 0x50000, 0x08000, CRC(f7907a02) SHA1(3fabb2b7fd82e773d7b6db53c5328b5866d70617) ) + ROM_RELOAD( 0x50000, 0x08000 ) ROM_RELOAD( 0x58000, 0x08000 ) - ROM_RELOAD( 0x60000, 0x08000 ) - ROM_RELOAD( 0x68000, 0x08000 ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) ROM_LOAD( "5.bin", 0x00000, 0x10000, CRC(7eb3d7c6) SHA1(8544d04929cdb36fa7f0dcb67e0b7fd8c7b0fc2b) ) @@ -1347,13 +1367,13 @@ ROM_LOAD16_BYTE( "pigskin-k_a6_la1.a6", 0x20000, 0x10000, CRC(4d8b7e50) SHA1(9e5d0edf1603e11f22d3129a2b8865ebcb5e27f9) ) ROM_LOAD16_BYTE( "pigskin-k_b6_la1.b6", 0x20001, 0x10000, CRC(1194f187) SHA1(e7cebe5322a5c8e382b6773939be5bc88492f289) ) - ROM_REGION( 0x90000, "cvsd:cpu", 0 ) /* Audio System board */ - ROM_LOAD( "pigskin_u4_sl1.u4", 0x10000, 0x10000, CRC(6daf2d37) SHA1(4c8098520fe44e36b01389bcfcfe3ad1d027cbde) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD( "pigskin_u19_sl1.u19", 0x30000, 0x10000, CRC(56fd16a3) SHA1(b91aabdbd3185355f2b7177fc4d3a86fa110f51d) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD( "pigskin_u20_sl1.u20", 0x50000, 0x10000, CRC(5d032fb8) SHA1(a236cdc64856637e560bec7119b051fac13efbe0) ) - ROM_RELOAD( 0x60000, 0x10000 ) + ROM_REGION( 0x90000, "bg:cpu", 0 ) // Audio System board; W10/W11 are jumpered: W10 shorted, W11 open (U20 is a 27512) + ROM_LOAD( "pigskin_u4_sl1.u4", 0x00000, 0x10000, CRC(6daf2d37) SHA1(4c8098520fe44e36b01389bcfcfe3ad1d027cbde) ) + ROM_RELOAD( 0x10000, 0x10000 ) + ROM_LOAD( "pigskin_u19_sl1.u19", 0x20000, 0x10000, CRC(56fd16a3) SHA1(b91aabdbd3185355f2b7177fc4d3a86fa110f51d) ) + ROM_RELOAD( 0x30000, 0x10000 ) + ROM_LOAD( "pigskin_u20_sl1.u20", 0x40000, 0x10000, CRC(5d032fb8) SHA1(a236cdc64856637e560bec7119b051fac13efbe0) ) + ROM_RELOAD( 0x50000, 0x10000 ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) ROM_LOAD( "pigskin_e2_la1.e2", 0x00000, 0x10000, CRC(12d5737b) SHA1(73040233bb86eaa42257112e2f0540de1206e310) ) @@ -1374,13 +1394,13 @@ ROM_LOAD16_BYTE( "pigskin_a6_la2.a6", 0x20000, 0x10000, CRC(2fc91002) SHA1(64d270b78c69d3f4fb36d1233a1632d6ba3d87a5) ) ROM_LOAD16_BYTE( "pigskin_b6_la2.b6", 0x20001, 0x10000, CRC(0b93dc66) SHA1(f3b516a1d1e4abd7b0d56243949e9cd7ac79178b) ) - ROM_REGION( 0x90000, "cvsd:cpu", 0 ) /* Audio System board */ - ROM_LOAD( "pigskin_u4_sl1.u4", 0x10000, 0x10000, CRC(6daf2d37) SHA1(4c8098520fe44e36b01389bcfcfe3ad1d027cbde) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD( "pigskin_u19_sl1.u19", 0x30000, 0x10000, CRC(56fd16a3) SHA1(b91aabdbd3185355f2b7177fc4d3a86fa110f51d) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD( "pigskin_u20_sl1.u20", 0x50000, 0x10000, CRC(5d032fb8) SHA1(a236cdc64856637e560bec7119b051fac13efbe0) ) - ROM_RELOAD( 0x60000, 0x10000 ) + ROM_REGION( 0x90000, "bg:cpu", 0 ) // Audio System board; W10/W11 are jumpered: W10 shorted, W11 open (U20 is a 27512) + ROM_LOAD( "pigskin_u4_sl1.u4", 0x00000, 0x10000, CRC(6daf2d37) SHA1(4c8098520fe44e36b01389bcfcfe3ad1d027cbde) ) + ROM_RELOAD( 0x10000, 0x10000 ) + ROM_LOAD( "pigskin_u19_sl1.u19", 0x20000, 0x10000, CRC(56fd16a3) SHA1(b91aabdbd3185355f2b7177fc4d3a86fa110f51d) ) + ROM_RELOAD( 0x30000, 0x10000 ) + ROM_LOAD( "pigskin_u20_sl1.u20", 0x40000, 0x10000, CRC(5d032fb8) SHA1(a236cdc64856637e560bec7119b051fac13efbe0) ) + ROM_RELOAD( 0x50000, 0x10000 ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) ROM_LOAD( "pigskin_e2_la1.e2", 0x00000, 0x10000, CRC(12d5737b) SHA1(73040233bb86eaa42257112e2f0540de1206e310) ) @@ -1401,13 +1421,13 @@ ROM_LOAD16_BYTE( "pigskin_a6_la1.a6", 0x20000, 0x10000, CRC(5fca2c4e) SHA1(6892ba763a0c9847c589514ff989b7f40e09784b) ) ROM_LOAD16_BYTE( "pigskin_b6_la1.b6", 0x20001, 0x10000, CRC(778a75fc) SHA1(3199efa34676d5856b33a8810043616e3618229e) ) - ROM_REGION( 0x90000, "cvsd:cpu", 0 ) /* Audio System board */ - ROM_LOAD( "pigskin_u4_sl1.u4", 0x10000, 0x10000, CRC(6daf2d37) SHA1(4c8098520fe44e36b01389bcfcfe3ad1d027cbde) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD( "pigskin_u19_sl1.u19", 0x30000, 0x10000, CRC(56fd16a3) SHA1(b91aabdbd3185355f2b7177fc4d3a86fa110f51d) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD( "pigskin_u20_sl1.u20", 0x50000, 0x10000, CRC(5d032fb8) SHA1(a236cdc64856637e560bec7119b051fac13efbe0) ) - ROM_RELOAD( 0x60000, 0x10000 ) + ROM_REGION( 0x90000, "bg:cpu", 0 ) // Audio System board; W10/W11 are jumpered: W10 shorted, W11 open (U20 is a 27512) + ROM_LOAD( "pigskin_u4_sl1.u4", 0x00000, 0x10000, CRC(6daf2d37) SHA1(4c8098520fe44e36b01389bcfcfe3ad1d027cbde) ) + ROM_RELOAD( 0x10000, 0x10000 ) + ROM_LOAD( "pigskin_u19_sl1.u19", 0x20000, 0x10000, CRC(56fd16a3) SHA1(b91aabdbd3185355f2b7177fc4d3a86fa110f51d) ) + ROM_RELOAD( 0x30000, 0x10000 ) + ROM_LOAD( "pigskin_u20_sl1.u20", 0x40000, 0x10000, CRC(5d032fb8) SHA1(a236cdc64856637e560bec7119b051fac13efbe0) ) + ROM_RELOAD( 0x50000, 0x10000 ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) ROM_LOAD( "pigskin_e2_la1.e2", 0x00000, 0x10000, CRC(12d5737b) SHA1(73040233bb86eaa42257112e2f0540de1206e310) ) @@ -1428,15 +1448,15 @@ ROM_LOAD16_BYTE( "tri_sports_a6_la3.a6", 0x20000, 0x10000, CRC(9c6a1398) SHA1(ee115d9207f3a9034b7c9eccd2ff151d9c923c9a) ) ROM_LOAD16_BYTE( "tri_sports_b6_la3.b6", 0x20001, 0x10000, CRC(597b564c) SHA1(090da3ec0c86035cc41a9caea182b8a5419c3be9) ) - ROM_REGION( 0x90000, "cvsd:cpu", 0 ) /* Audio System board */ - ROM_LOAD( "tri_sports_u4_sl1.u4", 0x10000, 0x10000, CRC(0ed8c904) SHA1(21292a001c4c44f87b8782c706e5c346b767cd6b) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD( "tri_sports_u19_sl1.u19", 0x30000, 0x10000, CRC(b57d7d7e) SHA1(483f718f1cc4549baf5696935532d30803254a19) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD( "tri_sports_u20_sl1.u20", 0x50000, 0x08000, CRC(3ae15c08) SHA1(6b0fd09c39da08d1f67b6dd4287e8d2894522e1d) ) + ROM_REGION( 0x90000, "bg:cpu", 0 ) // Audio System board; W10/W11 are jumpered: W11 shorted, W10 open (U20 is a 27256) + ROM_LOAD( "tri_sports_u4_sl1.u4", 0x00000, 0x10000, CRC(0ed8c904) SHA1(21292a001c4c44f87b8782c706e5c346b767cd6b) ) + ROM_RELOAD( 0x10000, 0x10000 ) + ROM_LOAD( "tri_sports_u19_sl1.u19", 0x20000, 0x10000, CRC(b57d7d7e) SHA1(483f718f1cc4549baf5696935532d30803254a19) ) + ROM_RELOAD( 0x30000, 0x10000 ) + ROM_LOAD( "tri_sports_u20_sl1.u20", 0x40000, 0x08000, CRC(3ae15c08) SHA1(6b0fd09c39da08d1f67b6dd4287e8d2894522e1d) ) + ROM_RELOAD( 0x48000, 0x08000 ) + ROM_RELOAD( 0x50000, 0x08000 ) ROM_RELOAD( 0x58000, 0x08000 ) - ROM_RELOAD( 0x60000, 0x08000 ) - ROM_RELOAD( 0x68000, 0x08000 ) ROM_REGION( 0x20000, "gfx1", ROMREGION_INVERT ) ROM_LOAD( "tri_sports_e2_la2.e2", 0x00000, 0x10000, CRC(f61149a0) SHA1(a43d184db23c7f194042709550e7bf36b838ee5c) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/meadows.cpp mame-0.224+dfsg.1/src/mame/drivers/meadows.cpp --- mame-0.223+dfsg.1/src/mame/drivers/meadows.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/meadows.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -235,7 +235,7 @@ if (state) { m_main_sense_state++; - m_maincpu->set_input_line(1, (m_main_sense_state & 0x40) ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(S2650_SENSE_LINE, (m_main_sense_state & 0x40) ? ASSERT_LINE : CLEAR_LINE); } } @@ -687,6 +687,7 @@ /* basic machine hardware */ S2650(config, m_maincpu, MASTER_CLOCK/8); /* 5MHz / 8 = 625 kHz */ m_maincpu->set_addrmap(AS_PROGRAM, &meadows_state::bowl3d_main_map); + m_maincpu->intack_handler().set([]() { return 0x82; }); S2650(config, m_audiocpu, MASTER_CLOCK/8); /* 5MHz / 8 = 625 kHz */ m_audiocpu->set_addrmap(AS_PROGRAM, &meadows_state::audio_map); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/megadriv_acbl.cpp mame-0.224+dfsg.1/src/mame/drivers/megadriv_acbl.cpp --- mame-0.223+dfsg.1/src/mame/drivers/megadriv_acbl.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/megadriv_acbl.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -6,6 +6,7 @@ Games supported: * Aladdin + * Bare Knuckle II * Bare Knuckle III * Jurassic Park * Mortal Kombat 3 @@ -356,6 +357,18 @@ return 0x0000; } +uint16_t md_boot_state::barek2mb_r() +{ + if (m_maincpu->pc()==0xfa40) + return 0x0400; // TODO: what's this? Needed or the game doesn't boot + + if (m_maincpu->pc()==0xfa88) + return 0x0ff0; // TODO: fix this, should probably read coin inputs, as is gives 9 credits at start up + + logerror("aladbl_r : %06x\n",m_maincpu->pc()); + return 0x0000; +} + uint16_t md_boot_state::mk3mdb_dsw_r(offs_t offset) { static const char *const dswname[3] = { "DSWA", "DSWB", "DSWC" }; @@ -769,6 +782,11 @@ PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END +INPUT_PORTS_START( barek2 ) + PORT_INCLUDE( aladmdb ) + // TODO! +INPUT_PORTS_END + INPUT_PORTS_START( barek3 ) PORT_INCLUDE( md_common ) @@ -843,7 +861,7 @@ ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(5e2671e4) SHA1(54705c7614fc7b5a1065478fa41f51dd1d8045b7) ) ROM_LOAD16_BYTE( "m2.bin", 0x000000, 0x080000, CRC(142a0366) SHA1(6c94aa9936cd11ccda503b52019a6721e64a32f0) ) ROM_LOAD16_BYTE( "m3.bin", 0x100001, 0x080000, CRC(0feeeb19) SHA1(bd567a33077ab9997871d21736066140d50e3d70) ) - ROM_LOAD16_BYTE( "m4.bin", 0x100000, 0x080000, CRC(bc712661) SHA1(dfd554d000399e17b4ddc69761e572195ed4e1f0)) + ROM_LOAD16_BYTE( "m4.bin", 0x100000, 0x080000, CRC(bc712661) SHA1(dfd554d000399e17b4ddc69761e572195ed4e1f0) ) ROM_REGION( 0x2000, "pic", ROMREGION_ERASE00 ) ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP ) @@ -888,7 +906,7 @@ ROM_LOAD16_BYTE( "u1", 0x000001, 0x020000, CRC(c59f33bd) SHA1(bd5bce7698a70ea005b79ab34bcdb056872ef980) ) ROM_LOAD16_BYTE( "u2", 0x000000, 0x020000, CRC(9125c054) SHA1(c73bdeb6b11c59d2b5f5968959b02697957ca894) ) ROM_LOAD16_BYTE( "u3", 0x040001, 0x020000, CRC(0fee0fbe) SHA1(001e0fda12707512aad537e533acf28e726e6107) ) - ROM_LOAD16_BYTE( "u4", 0x040000, 0x020000, CRC(fc2aed41) SHA1(27eb3957f5ed26ee5276523b1df46fa7eb298e1f)) + ROM_LOAD16_BYTE( "u4", 0x040000, 0x020000, CRC(fc2aed41) SHA1(27eb3957f5ed26ee5276523b1df46fa7eb298e1f) ) ROM_END ROM_START( topshoot ) /* Top Shooter (c)1995 Sun Mixing */ @@ -907,6 +925,17 @@ ROM_LOAD16_BYTE( "m2", 0x000000, 0x080000, CRC(84b3f758) SHA1(19846b9d951db6f78f3e155d33f1b6349fb87f1a) ) ROM_END +ROM_START( barek2mb ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(1c1fa718) SHA1(393488f7747478728eb4f20c10b0cfce3b188719) ) + ROM_LOAD16_BYTE( "m2.bin", 0x000000, 0x080000, CRC(59ee0905) SHA1(0e9f1f6e17aae2dd99bf9d7f640568b48ba699c7) ) + ROM_LOAD16_BYTE( "m3.bin", 0x100001, 0x080000, CRC(6ec5af5d) SHA1(9088a2d4cff5e7eb439ebaa91ad3bfff11366127) ) + ROM_LOAD16_BYTE( "m4.bin", 0x100000, 0x080000, CRC(d8c61e0d) SHA1(3d06e656f6621bb0741211f80c1ecff1669475ee) ) + + ROM_REGION( 0x2000, "pic", ROMREGION_ERASE00 ) + ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP ) +ROM_END + ROM_START( barek3mb ) ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "6.u19", 0x000000, 0x080000, CRC(2de19519) SHA1(f5fcef1da8b5370e399f0451382e3c6e7754c9c8) ) @@ -1068,6 +1097,14 @@ init_megadriv(); } +void md_boot_state::init_barek2() +{ + m_maincpu->space(AS_PROGRAM).install_write_handler(0x220000, 0x220001, write16smo_delegate(*this, FUNC(md_boot_state::aladmdb_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x330000, 0x330001, read16smo_delegate(*this, FUNC(md_boot_state::barek2mb_r))); + + init_megadrij(); +} + void md_boot_state::init_barek3() { uint8_t* rom = memregion("maincpu")->base(); @@ -1126,6 +1163,7 @@ GAME( 1993, srmdb, 0, megadrvb, srmdb, md_boot_state, init_srmdb, ROT0, "bootleg / Konami", "Sunset Riders (bootleg of Megadrive version)", 0) GAME( 1995, topshoot, 0, md_bootleg, topshoot, md_boot_state, init_topshoot, ROT0, "Sun Mixing", "Top Shooter", 0) GAME( 1993, sonic2mb, 0, md_bootleg, sonic2mb, md_boot_state, init_sonic2mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Megadrive version)", 0 ) // flying wires going through the empty PIC space aren't completely understood +GAME( 1994, barek2mb, 0, md_bootleg, barek2, md_boot_state, init_barek2, ROT0, "bootleg / Sega", "Bare Knuckle II (bootleg of Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation GAME( 1994, barek3mb, 0, megadrvb, barek3, md_boot_state, init_barek3, ROT0, "bootleg / Sega", "Bare Knuckle III (bootleg of Megadrive version)", 0 ) -GAME( 1993, twinktmb, 0, md_bootleg, twinktmb, md_boot_state, init_twinktmb, ROT0, "bootleg / Sega", "Twinkle Tale (bootleg of Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation -GAME( 1993, jparkmb, 0, md_bootleg, twinktmb, md_boot_state, init_jparkmb, ROT0, "bootleg / Sega", "Jurassic Park (bootleg of Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation +GAME( 1993, twinktmb, 0, md_bootleg, twinktmb, md_boot_state, init_twinktmb, ROT0, "bootleg / Sega", "Twinkle Tale (bootleg of Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation +GAME( 1993, jparkmb, 0, md_bootleg, twinktmb, md_boot_state, init_jparkmb, ROT0, "bootleg / Sega", "Jurassic Park (bootleg of Megadrive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // needs PIC decap or simulation diff -Nru mame-0.223+dfsg.1/src/mame/drivers/mephisto_polgar.cpp mame-0.224+dfsg.1/src/mame/drivers/mephisto_polgar.cpp --- mame-0.223+dfsg.1/src/mame/drivers/mephisto_polgar.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/mephisto_polgar.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -285,7 +285,12 @@ ROM_START( polgar ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("polgar_1.5_1.2.1990", 0x0000, 0x10000, CRC(88d55c0f) SHA1(e86d088ec3ac68deaf90f6b3b97e3e31b1515913) ) + ROM_LOAD("polgar_1.5_01.02.1990", 0x0000, 0x10000, CRC(88d55c0f) SHA1(e86d088ec3ac68deaf90f6b3b97e3e31b1515913) ) +ROM_END + +ROM_START( polgara ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("polgar_1.10_04.08.1989", 0x0000, 0x10000, CRC(a4519c55) SHA1(35463a4cbcf20ebbd5ac5bc7664a862b1557c65f) ) // TC57512AD-15 ROM_END ROM_START( polgar10 ) @@ -333,7 +338,8 @@ ***************************************************************************/ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1989, polgar, 0, 0, polgar, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar (v1.5)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, polgar, 0, 0, polgar, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar (v1.50)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, polgara, polgar, 0, polgar, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar (v1.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1990, polgar10, polgar, 0, polgar10, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar 10 MHz (v10.0)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1990, polgar101, polgar, 0, polgar10, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar 10 MHz (v10.1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/metalmx.cpp mame-0.224+dfsg.1/src/mame/drivers/metalmx.cpp --- mame-0.223+dfsg.1/src/mame/drivers/metalmx.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/metalmx.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -286,10 +286,17 @@ /* TODO: TMS34020 should take care of this */ // uint32_t *src_base = &gsp_vram[(vreg_base[0x40/4] & 0x40) ? 0x20000 : 0]; - uint16_t const *const src_base = m_gsp_vram; + uint32_t const *const src_base = &m_gsp_vram[0]; for (int y = (std::max)(0, cliprect.min_y); y <= (std::min)(383, cliprect.max_y); ++y) - std::copy_n(&src_base[512 * y], 512, &bitmap.pix16(y)); + { + uint16_t *pix = &bitmap.pix16(y); + for (int x = 0; x < 256; x++) + { + *pix++ = src_base[256 * y + x] & 0xffff; + *pix++ = src_base[256 * y + x] >> 16; + } + } return 0; } @@ -408,45 +415,40 @@ { address_space &gsp_space = m_gsp->space(AS_PROGRAM); - gsp_space.write_word((0xc0000000 + (offset << 5) + 0x10) / 8, data); - gsp_space.write_word((0xc0000000 + (offset << 5))/ 8 , data >> 16); + gsp_space.write_dword(0xc0000000 + (offset << 5), (data << 16) | (data >> 16)); } uint32_t metalmx_state::host_gsp_r(offs_t offset) { address_space &gsp_space = m_gsp->space(AS_PROGRAM); - uint32_t val; - val = gsp_space.read_word((0xc0000000 + (offset << 5) + 0x10) / 8); - val |= gsp_space.read_word((0xc0000000 + (offset << 5)) / 8) << 16; - return val; + uint32_t val = gsp_space.read_dword(0xc0000000 + (offset << 5)); + return (val << 16) | (val >> 16); } uint32_t metalmx_state::host_dram_r(offs_t offset) { - return (m_gsp_dram[offset * 2] << 16) | m_gsp_dram[offset * 2 + 1]; + return (m_gsp_dram[offset] << 16) | (m_gsp_dram[offset] >> 16); } void metalmx_state::host_dram_w(offs_t offset, uint32_t data, uint32_t mem_mask) { - COMBINE_DATA(m_gsp_dram + offset * 2 + 1); - data >>= 16; - mem_mask >>= 16; - COMBINE_DATA(m_gsp_dram + offset * 2); + data = (data << 16) | (data >> 16); + mem_mask = (mem_mask << 16) | (mem_mask >> 16); + COMBINE_DATA(&m_gsp_dram[offset]); } uint32_t metalmx_state::host_vram_r(offs_t offset) { - return (m_gsp_vram[offset * 2] << 16) | m_gsp_vram[offset * 2 + 1]; + return (m_gsp_vram[offset] << 16) | (m_gsp_vram[offset] >> 16); } void metalmx_state::host_vram_w(offs_t offset, uint32_t data, uint32_t mem_mask) { - COMBINE_DATA(m_gsp_vram + offset * 2 + 1); - data >>= 16; - mem_mask >>= 16; - COMBINE_DATA(m_gsp_vram + offset * 2); + data = (data << 16) | (data >> 16); + mem_mask = (mem_mask << 16) | (mem_mask >> 16); + COMBINE_DATA(&m_gsp_vram[offset]); } @@ -525,8 +527,8 @@ void metalmx_state::gsp_map(address_map &map) { - map(0x88800000, 0x8880000f).ram(); /* ? */ - map(0x88c00000, 0x88c0000f).ram(); /* ? */ + map(0x88800000, 0x8880001f).ram(); /* ? */ + map(0x88c00000, 0x88c0001f).ram(); /* ? */ map(0xff000000, 0xff7fffff).ram().share("gsp_dram"); map(0xff800000, 0xffffffff).ram().share("gsp_vram"); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/microvsn.cpp mame-0.224+dfsg.1/src/mame/drivers/microvsn.cpp --- mame-0.223+dfsg.1/src/mame/drivers/microvsn.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/microvsn.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -259,7 +259,8 @@ int p = m_lcd_pwm->read_element_bri(y ^ 15, x ^ 15) * 10000; p = (p > 255) ? 0 : p ^ 255; - bitmap.pix32(y, x) = p << 16 | p << 8 | p; + if (cliprect.contains(x, y)) + bitmap.pix32(y, x) = p << 16 | p << 8 | p; } } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/midvunit.cpp mame-0.224+dfsg.1/src/mame/drivers/midvunit.cpp --- mame-0.223+dfsg.1/src/mame/drivers/midvunit.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/midvunit.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -280,25 +280,20 @@ uint32_t midvunit_state::crusnwld_serial_status_r() { - uint16_t in1 = (m_in1->read() & 0x7fff) | (m_midway_serial_pic->status_r() << 15); + uint16_t in1 = (m_in1->read() & 0x7fff) | (m_midway_serial_pic2->status_r() << 15); return in1 | in1 << 16; } uint32_t midvunit_state::crusnwld_serial_data_r() { - return m_midway_serial_pic->read() << 16; + return m_midway_serial_pic2->read() << 16; } void midvunit_state::crusnwld_serial_data_w(uint32_t data) { - if ((data & 0xf0000) == 0x10000) - { - m_midway_serial_pic->reset_w(1); - m_midway_serial_pic->reset_w(0); - } - m_midway_serial_pic->write(data >> 16); + m_midway_serial_pic2->write(data >> 16); } @@ -333,31 +328,6 @@ } - -/************************************* - * - * Off Road Challenge PIC access - * - *************************************/ - -uint32_t midvunit_state::offroadc_serial_status_r() -{ - uint16_t in1 = (m_in1->read() & 0x7fff) | (m_midway_serial_pic2->status_r() << 15); - return in1 | in1 << 16; -} - - -uint32_t midvunit_state::offroadc_serial_data_r() -{ - return m_midway_serial_pic2->read() << 16; -} - - -void midvunit_state::offroadc_serial_data_w(uint32_t data) -{ - m_midway_serial_pic2->write(data >> 16); -} - uint32_t midvunit_state::midvunit_wheel_board_r() { //logerror("midvunit_wheel_board_r: %08X\n", m_wheel_board_output); @@ -1147,8 +1117,9 @@ { midvunit(config); /* valid values are 450 or 460 */ - MIDWAY_SERIAL_PIC(config, m_midway_serial_pic, 0); - m_midway_serial_pic->set_upper(450); + MIDWAY_SERIAL_PIC2(config, m_midway_serial_pic2, 0); + m_midway_serial_pic2->set_upper(450); + m_midway_serial_pic2->set_yearoffs(94); } void midvunit_state::offroadc(machine_config &config) @@ -1281,7 +1252,7 @@ */ ROM_START( crusnusa ) /* Version 4.4, Wed Mar 15 1995 - 10:52:28 */ ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* seen labeled as P1 & P2, niether seems dumped to verify if they are different */ + ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* also known to be labeled as P2, the P1 revision hasn't been dumped or confirmed to be different */ ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u3.u3", 0x200000, 0x80000, CRC(cd8325d6) SHA1(d65d7263e056ca1d637adb44cafef523e0831a34) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u4.u4", 0x400000, 0x80000, CRC(fab457f3) SHA1(2b4b647838b7a8100afc25ca1ffdc74ed67ae00a) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u5.u5", 0x600000, 0x80000, CRC(becc92f4) SHA1(6dffa73ff5270155c44f295e443d5e77c03c0338) ) @@ -1323,7 +1294,7 @@ ROM_START( crusnusa41 ) /* Version 4.1, Mon Feb 13 1995 - 16:53:40 */ ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* seen labeled as P1 & P2, niether seems dumped to verify if they are different */ + ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* also known to be labeled as P2, the P1 revision hasn't been dumped or confirmed to be different */ ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u3.u3", 0x200000, 0x80000, CRC(cd8325d6) SHA1(d65d7263e056ca1d637adb44cafef523e0831a34) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u4.u4", 0x400000, 0x80000, CRC(fab457f3) SHA1(2b4b647838b7a8100afc25ca1ffdc74ed67ae00a) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u5.u5", 0x600000, 0x80000, CRC(becc92f4) SHA1(6dffa73ff5270155c44f295e443d5e77c03c0338) ) @@ -1366,7 +1337,7 @@ ROM_START( crusnusa40 ) /* Version 4.0, Wed Feb 08 1995 - 10:45:14 */ ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* seen labeled as P1 & P2, niether seems dumped to verify if they are different */ + ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* also known to be labeled as P2, the P1 revision hasn't been dumped or confirmed to be different */ ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u3.u3", 0x200000, 0x80000, CRC(cd8325d6) SHA1(d65d7263e056ca1d637adb44cafef523e0831a34) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u4.u4", 0x400000, 0x80000, CRC(fab457f3) SHA1(2b4b647838b7a8100afc25ca1ffdc74ed67ae00a) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u5.u5", 0x600000, 0x80000, CRC(becc92f4) SHA1(6dffa73ff5270155c44f295e443d5e77c03c0338) ) @@ -1409,7 +1380,7 @@ ROM_START( crusnusa21 ) /* Version 2.1, Wed Nov 09 1994 - 16:28:10 */ ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* seen labeled as P1 & P2, niether seems dumped to verify if they are different */ + ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u2.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) /* also known to be labeled as P2, the P1 revision hasn't been dumped or confirmed to be different */ ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u3.u3", 0x200000, 0x80000, CRC(cd8325d6) SHA1(d65d7263e056ca1d637adb44cafef523e0831a34) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u4.u4", 0x400000, 0x80000, CRC(fab457f3) SHA1(2b4b647838b7a8100afc25ca1ffdc74ed67ae00a) ) ROM_LOAD16_BYTE( "l1_cruisin_u.s.a._sound_rom_u5.u5", 0x600000, 0x80000, CRC(becc92f4) SHA1(6dffa73ff5270155c44f295e443d5e77c03c0338) ) @@ -1450,6 +1421,19 @@ ROM_END +/* +Some Cruis'n World PCBs have mask ROMs for the data ROMs + +Mask ROMs are in the following format: +-------------------------------- -------------------------------- +| MIDWAY GAMES INC | | MIDWAY GAMES INC | +| CRUISN WORLD | | CRUISN WORLD | +) 5341-15282-01 | ) 5341-15287-01 | +| U3 SOUND | | U14 VIDEO IMAGE | +| (C)1996 MIDWAY GAMES | | (C)1996 MIDWAY GAMES | +-------------------------------- -------------------------------- + +*/ ROM_START( crusnwld ) /* Version 2.5, Wed Nov 04 1998 - 15:50:52 */ ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ ROM_LOAD16_BYTE( "1.0_cruisn_world_u2_sound.u2", 0x000000, 0x80000, CRC(7a233c89) SHA1(ecfad4bc48a69cd3399e3b3266c81574082e0169) ) @@ -1898,6 +1882,8 @@ DISK_IMAGE( "wargods_11-07-1996", 0, SHA1(7585bc65b1038589cb59d3e7c56e08ca9d7015b8) ) // HDD had a label of 10-09-1996, but the game reports // a version of 11-07-1996, so it was probably upgraded // in the field. + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "452_wargods.u69", 0x0000, 0x2000, CRC(b908f560) SHA1(68b081f0583aa35c2daeedd43e030ebdcea1a54c) ) ROM_END ROM_START( wargodsa ) /* Boot EPROM Version 1.0, Game Type: 452 (08/15/1996) */ @@ -1909,6 +1895,9 @@ DISK_REGION( "ata:0:hdd:image" ) DISK_IMAGE( "wargods_08-15-1996", 0, SHA1(5dee00be40c315fbb1d6e3994dae8e498ab87fb2) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "452_wargods.u69", 0x0000, 0x2000, CRC(b908f560) SHA1(68b081f0583aa35c2daeedd43e030ebdcea1a54c) ) ROM_END ROM_START( wargodsb ) /* Boot EPROM Version 1.0, Game Type: 452 (12/11/1995) */ @@ -1920,6 +1909,9 @@ DISK_REGION( "ata:0:hdd:image" ) DISK_IMAGE( "wargods_12-11-1995", 0, SHA1(141063f95867fdcc4b15c844e510696604a70c6a) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "452_wargods.u69", 0x0000, 0x2000, CRC(b908f560) SHA1(68b081f0583aa35c2daeedd43e030ebdcea1a54c) ) ROM_END @@ -1984,8 +1976,9 @@ /* control register is different */ m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32s_delegate(*this, FUNC(midvunit_state::crusnwld_control_w))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32smo_delegate(*this, FUNC(midvunit_state::offroadc_serial_status_r))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x996000, 0x996000, read32smo_delegate(*this, FUNC(midvunit_state::offroadc_serial_data_r)), write32smo_delegate(*this, FUNC(midvunit_state::offroadc_serial_data_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32smo_delegate(*this, FUNC(midvunit_state::crusnwld_serial_status_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x996000, 0x996000, read32smo_delegate(*this, FUNC(midvunit_state::crusnwld_serial_data_r))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x996000, 0x996000, write32smo_delegate(*this, FUNC(midvunit_state::crusnwld_serial_data_w))); /* speedups */ m_maincpu->space(AS_PROGRAM).install_read_handler(0x195aa, 0x195aa, read32sm_delegate(*this, FUNC(midvunit_state::generic_speedup_r))); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/midwunit.cpp mame-0.224+dfsg.1/src/mame/drivers/midwunit.cpp --- mame-0.223+dfsg.1/src/mame/drivers/midwunit.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/midwunit.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -94,7 +94,6 @@ #include "emu.h" -#include "includes/midtunit.h" #include "includes/midwunit.h" #include "audio/dcs.h" @@ -656,18 +655,13 @@ { wunit(config); MIDWAY_SERIAL_PIC(config, m_midway_serial_pic, 0); - m_midway_serial_pic->set_upper(528); // this is actually a generic code all games check for in addition to their own game specific code! + m_midway_serial_pic->set_upper(528); // this is actually development PIC code, all games check for in addition to their own game specific code! } void midwunit_state::wunit_picemu(machine_config &config) { wunit(config); MIDWAY_SERIAL_PIC_EMU(config, m_midway_serial_pic_emu, 0); - - // todo, REMOVE once the emulated PIC above works! - // this just allows it to fall through to the simulation for now - MIDWAY_SERIAL_PIC(config, m_midway_serial_pic, 0); - m_midway_serial_pic->set_upper(528); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/midxunit.cpp mame-0.224+dfsg.1/src/mame/drivers/midxunit.cpp --- mame-0.223+dfsg.1/src/mame/drivers/midxunit.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/midxunit.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -10,9 +10,6 @@ Games supported: * Revolution X - Known bugs: - * none at this time - *************************************************************************** Revolution X @@ -119,7 +116,6 @@ #include "cpu/adsp2100/adsp2100.h" #include "cpu/tms34010/tms34010.h" #include "machine/adc0844.h" -#include "machine/nvram.h" #include "screen.h" @@ -147,12 +143,11 @@ map(0x60c00060, 0x60c0007f).portr("DSW"); map(0x60c00080, 0x60c000df).w(FUNC(midxunit_state::midxunit_io_w)); map(0x60c000e0, 0x60c000ff).rw(FUNC(midxunit_state::midxunit_security_r), FUNC(midxunit_state::midxunit_security_w)); - map(0x80800000, 0x8080000f).r("adc", FUNC(adc0848_device::read)).umask16(0x00ff).w("adc", FUNC(adc0848_device::write)).umask16(0x00ff); - map(0x80800010, 0x8080001f).noprw(); - map(0x80c00000, 0x80c000ff).rw(FUNC(midxunit_state::midxunit_uart_r), FUNC(midxunit_state::midxunit_uart_w)); - map(0xa0440000, 0xa047ffff).rw(FUNC(midxunit_state::midxunit_cmos_r), FUNC(midxunit_state::midxunit_cmos_w)).share("nvram"); + map(0x80800000, 0x8080001f).rw("adc", FUNC(adc0848_device::read), FUNC(adc0848_device::write)).umask32(0x000000ff); + map(0x80c00000, 0x80c000ff).rw(FUNC(midxunit_state::midxunit_uart_r), FUNC(midxunit_state::midxunit_uart_w)).umask32(0x000000ff); + map(0xa0440000, 0xa047ffff).rw(FUNC(midxunit_state::midxunit_cmos_r), FUNC(midxunit_state::midxunit_cmos_w)).umask32(0x000000ff); map(0xa0800000, 0xa08fffff).rw(m_video, FUNC(midxunit_video_device::midxunit_paletteram_r), FUNC(midxunit_video_device::midxunit_paletteram_w)).share("palette"); - map(0xc0800000, 0xc08000ff).mirror(0x00400000).rw(m_video, FUNC(midxunit_video_device::midtunit_dma_r), FUNC(midxunit_video_device::midtunit_dma_w)); + map(0xc0800000, 0xc08000ff).mirror(0x00400000).rw(FUNC(midxunit_state::midxunit_dma_r), FUNC(midxunit_state::midxunit_dma_w)); map(0xf8000000, 0xfeffffff).r(m_video, FUNC(midxunit_video_device::midwunit_gfxrom_r)); map(0xff000000, 0xffffffff).rom().region("maincpu", 0); } @@ -167,38 +162,39 @@ static INPUT_PORTS_START( revx ) PORT_START("IN0") - PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0000000f, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x000000c0, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000f00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0xffffc000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN1") - PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0000000f, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0xffffffc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN2") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_SERVICE_NO_TOGGLE(0x0010, IP_ACTIVE_LOW) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* coin door */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BILL1 ) /* bill validator */ + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ + PORT_SERVICE_NO_TOGGLE(0x00000010, IP_ACTIVE_LOW) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_COIN4 ) + PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_START3 ) + PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) + PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) + PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* coin door */ + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_BILL1 ) /* bill validator */ + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW") PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Flip_Screen )) @@ -243,6 +239,7 @@ PORT_DIPNAME( 0x8000, 0x8000, "Test Switch" ) PORT_DIPSETTING( 0x8000, DEF_STR( Off )) PORT_DIPSETTING( 0x0000, DEF_STR( On )) + PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("AN0") PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, -1.0, 0.0, 0) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) @@ -295,9 +292,12 @@ screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_ind16)); screen.set_palette(m_palette); - MIDWAY_SERIAL_PIC(config, m_midway_serial_pic, 0); - /* serial prefixes 419, 420 */ - m_midway_serial_pic->set_upper(419); + PIC16C57(config, m_pic, 625000); // need to be verified + m_pic->read_a().set([this]() { return m_pic_command; }); + m_pic->write_b().set([this](u8 data) { m_pic_data = data; }); + m_pic->read_c().set([this]() { return m_pic_clk ^ 1; }); + m_pic->write_c().set([this](u8 data) { m_pic_status = BIT(data, 1); }); + // there also should be PIC16 reset line control, unknown at the moment adc0848_device &adc(ADC0848(config, "adc")); adc.intr_callback().set(FUNC(midxunit_state::adc_int_w)); // ADC INT passed through PLSI1032 @@ -331,14 +331,14 @@ ROM_LOAD16_BYTE( "revx_snd.8", 0xc00000, 0x80000, CRC(793a7eb5) SHA1(4b1f81b68f95cedf1b356ef362d1eb37acc74b16) ) ROM_LOAD16_BYTE( "revx_snd.9", 0xe00000, 0x80000, CRC(14ddbea1) SHA1(8dba9dc5529ea77c4312ea61f825bf9062ffc6c3) ) - ROM_REGION16_LE( 0x200000, "maincpu", 0 ) /* 34020 code */ + ROM_REGION32_LE( 0x200000, "maincpu", 0 ) /* 34020 code */ ROM_LOAD32_BYTE( "revx.51", 0x00000, 0x80000, CRC(9960ac7c) SHA1(441322f061d627ca7573f612f370a85794681d0f) ) ROM_LOAD32_BYTE( "revx.52", 0x00001, 0x80000, CRC(fbf55510) SHA1(8a5b0004ed09391fe37f0f501b979903d6ae4868) ) ROM_LOAD32_BYTE( "revx.53", 0x00002, 0x80000, CRC(a045b265) SHA1(b294d3a56e41f5ec4ab9bbcc0088833b1cab1879) ) ROM_LOAD32_BYTE( "revx.54", 0x00003, 0x80000, CRC(24471269) SHA1(262345bd147402100785459af422dafd1c562787) ) ROM_REGION( 0x2000, "pic", 0 ) - ROM_LOAD( "revx_16c57.bin", 0x0000000, 0x2000, CRC(eb8a8649) SHA1(a1e1d0b7a5e9802e8f889eb7e719259656dc8133) ) + ROM_LOAD( "revx_16c57.bin", 0x0000000, 0x2000, BAD_DUMP CRC(517e0110) SHA1(cd603c66794ff426dd2994fc1a0c0c8e6bbd864b) ) // manually restored ROM_REGION( 0x1000000, "gfxrom", 0 ) ROM_LOAD32_BYTE( "revx.120", 0x0000000, 0x80000, CRC(523af1f0) SHA1(a67c0fd757e860fc1c1236945952a295b4d5df5a) ) @@ -398,14 +398,14 @@ ROM_LOAD16_BYTE( "revx_snd.8", 0xc00000, 0x80000, CRC(793a7eb5) SHA1(4b1f81b68f95cedf1b356ef362d1eb37acc74b16) ) ROM_LOAD16_BYTE( "revx_snd.9", 0xe00000, 0x80000, CRC(14ddbea1) SHA1(8dba9dc5529ea77c4312ea61f825bf9062ffc6c3) ) - ROM_REGION16_LE( 0x200000, "maincpu", 0 ) /* 34020 code */ + ROM_REGION32_LE( 0x200000, "maincpu", 0 ) /* 34020 code */ ROM_LOAD32_BYTE( "revx_p5.51", 0x00000, 0x80000, CRC(f3877eee) SHA1(7a4fdce36edddd35308c107c992ce626a2c9eb8c) ) ROM_LOAD32_BYTE( "revx_p5.52", 0x00001, 0x80000, CRC(199a54d8) SHA1(45319437e11176d4926c00c95c372098203a32a3) ) ROM_LOAD32_BYTE( "revx_p5.53", 0x00002, 0x80000, CRC(fcfcf72a) SHA1(b471afb416e3d348b046b0b40f497d27b0afa470) ) ROM_LOAD32_BYTE( "revx_p5.54", 0x00003, 0x80000, CRC(fd684c31) SHA1(db3453792e4d9fc375297d030f0b3f9cc3cad925) ) ROM_REGION( 0x2000, "pic", 0 ) - ROM_LOAD( "revx_16c57.bin", 0x0000000, 0x2000, CRC(eb8a8649) SHA1(a1e1d0b7a5e9802e8f889eb7e719259656dc8133) ) + ROM_LOAD( "revx_16c57.bin", 0x0000000, 0x2000, BAD_DUMP CRC(517e0110) SHA1(cd603c66794ff426dd2994fc1a0c0c8e6bbd864b) ) // manually restored ROM_REGION( 0x1000000, "gfxrom", 0 ) ROM_LOAD32_BYTE( "revx.120", 0x0000000, 0x80000, CRC(523af1f0) SHA1(a67c0fd757e860fc1c1236945952a295b4d5df5a) ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/midzeus.cpp mame-0.224+dfsg.1/src/mame/drivers/midzeus.cpp --- mame-0.223+dfsg.1/src/mame/drivers/midzeus.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/midzeus.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1417,7 +1417,7 @@ ROM_LOAD16_BYTE( "invasion2.u5", 0xc00000, 0x200000, CRC(e42805c9) SHA1(e5b71eb1852809a649ac43a82168b3bdaf4b1526) ) ROM_REGION( 0x2000, "pic", 0 ) /* PIC16c57 Code */ - ROM_LOAD( "pic16c57.u76", 0x00000, 0x2000, CRC(f62729c9) SHA1(9642c53dd7eceeb7eb178497d367691c44abc5c5) ) // is this even a valid dump? + ROM_LOAD( "pic16c57.u76", 0x00000, 0x2000, BAD_DUMP CRC(f62729c9) SHA1(9642c53dd7eceeb7eb178497d367691c44abc5c5) ) // is this even a valid dump? ROM_REGION32_LE( 0x1800000, "user1", 0 ) ROM_LOAD32_WORD( "invasion5.u10", 0x0000000, 0x200000, CRC(8c7785d9) SHA1(701602314cd4eba4215c47ea0ae75fd4eddad43b) ) /* Roms U10 & U11 were labeled as v5.0 */ @@ -1440,7 +1440,7 @@ ROM_LOAD16_BYTE( "invasion2.u5", 0xc00000, 0x200000, CRC(e42805c9) SHA1(e5b71eb1852809a649ac43a82168b3bdaf4b1526) ) ROM_REGION( 0x2000, "pic", 0 ) /* PIC16c57 Code */ - ROM_LOAD( "pic16c57.u76", 0x00000, 0x2000, CRC(f62729c9) SHA1(9642c53dd7eceeb7eb178497d367691c44abc5c5) ) // is this even a valid dump? + ROM_LOAD( "pic16c57.u76", 0x00000, 0x2000, BAD_DUMP CRC(f62729c9) SHA1(9642c53dd7eceeb7eb178497d367691c44abc5c5) ) // is this even a valid dump? ROM_REGION32_LE( 0x1800000, "user1", 0 ) ROM_LOAD32_WORD( "invasion4.u10", 0x0000000, 0x200000, CRC(b3ce958b) SHA1(ed51c167d85bc5f6155b8046ec056a4f4ad5cf9d) ) /* These ROM were all labeled as v4.0 */ @@ -1463,7 +1463,7 @@ ROM_LOAD16_BYTE( "invasion2.u5", 0xc00000, 0x200000, CRC(e42805c9) SHA1(e5b71eb1852809a649ac43a82168b3bdaf4b1526) ) ROM_REGION( 0x2000, "pic", 0 ) /* PIC16c57 Code */ - ROM_LOAD( "pic16c57.u76", 0x00000, 0x2000, CRC(f62729c9) SHA1(9642c53dd7eceeb7eb178497d367691c44abc5c5) ) // is this even a valid dump? + ROM_LOAD( "pic16c57.u76", 0x00000, 0x2000, BAD_DUMP CRC(f62729c9) SHA1(9642c53dd7eceeb7eb178497d367691c44abc5c5) ) // is this even a valid dump? ROM_REGION32_LE( 0x1800000, "user1", 0 ) ROM_LOAD32_WORD( "invasion3.u10", 0x0000000, 0x200000, CRC(8404830e) SHA1(808fea45fb09fb7bf60f9f1e195a51d39e9966f5) ) /* Roms U10 through U13 were labeled as v3.0 Dated 8/30 */ diff -Nru mame-0.223+dfsg.1/src/mame/drivers/mikro80.cpp mame-0.224+dfsg.1/src/mame/drivers/mikro80.cpp --- mame-0.223+dfsg.1/src/mame/drivers/mikro80.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/mikro80.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,17 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -/*************************************************************************** +/***************************************************************************************** MIKRO80 driver by Miodrag Milanovic 2008-03-10 Preliminary driver. +Cassette: +* Mikro80: loads software items, but not its own saves +* Radio99: can load its own saves; can load radio86 tapes, can load ut88 tapes. +* Kristall2: can load its own saves; can load radio86 tapes; can load radio99 tapes. + + ToDo: -- Cassette save produces incorrect signal - need schematic of CMT. -- Kristall doesn't seem to have any tape load/save facility? +- Cassette - need schematic of CMT. -****************************************************************************/ +*****************************************************************************************/ #include "emu.h" @@ -21,7 +26,6 @@ #include "sound/volt_reg.h" #include "emupal.h" #include "screen.h" -#include "softlist.h" #include "speaker.h" /* Address maps */ @@ -45,6 +49,7 @@ { map.unmap_value_high(); map(0x00, 0x03).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x02, 0x02).w(FUNC(mikro80_state::portc_w)); // map(0x20, 0x23). init byte 8B, so possibly another ppi with reversed offset like mikro80 } @@ -54,7 +59,8 @@ map(0x01, 0x01).rw(FUNC(mikro80_state::tape_r), FUNC(mikro80_state::tape_w)); // no init byte, so ppi has been replaced by ordinary latches map(0x04, 0x04).w(FUNC(mikro80_state::sound_w)); - map(0x05, 0x05).rw(FUNC(mikro80_state::portc_r), FUNC(mikro80_state::portc_w)); + //map(0x05, 0x05).rw(FUNC(mikro80_state::portc_r), FUNC(mikro80_state::portc_w)); + map(0x05, 0x05).r(FUNC(mikro80_state::portc_r)).nopw(); map(0x06, 0x06).r(FUNC(mikro80_state::portb_r)); map(0x07, 0x07).w(FUNC(mikro80_state::porta_w)); } @@ -254,6 +260,7 @@ { mikro80(config); m_maincpu->set_addrmap(AS_IO, &mikro80_state::kristall_io); + m_ppi->in_pc_callback().set(FUNC(mikro80_state::kristall2_portc_r)); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/model2.cpp mame-0.224+dfsg.1/src/mame/drivers/model2.cpp --- mame-0.223+dfsg.1/src/mame/drivers/model2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/model2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -5742,7 +5742,7 @@ ROM_LOAD32_WORD("mpr-19325.21", 0x0000002, 0x400000, CRC(7cbe432d) SHA1(8b31e292160b88df9c77b36096914d09ab8b6086) ) ROM_LOAD32_WORD("mpr-19323.18", 0x0800000, 0x400000, CRC(453d3f4a) SHA1(8c0530824bb8ecb007021ee6e93412597bb0ecd6) ) ROM_LOAD32_WORD("mpr-19326.22", 0x0800002, 0x400000, CRC(b976da02) SHA1(a154eb128604aac9e35438d8811971133eab94a1) ) - ROM_LOAD32_WORD("mpr-19324.19", 0x1000000, 0x400000, CRC(d972201f) SHA1(1857ffc58697997ee22436586c398eb0c3daba6c) ) + ROM_LOAD32_WORD("mpr-19324.19", 0x1000000, 0x400000, CRC(0d6bf454) SHA1(4cf48f19128d728c4ec7e9ec7014223a6c0f2362) ) ROM_LOAD32_WORD("mpr-19327.23", 0x1000002, 0x400000, CRC(6a75634c) SHA1(8ed74c7afd95fc7a4df0f01a47479b6f44e3073c) ) ROM_REGION( 0x800000, "textures", 0 ) // Textures @@ -5762,7 +5762,7 @@ MODEL2A_VID_BOARD ROM_END -ROM_START( doa ) /* Dead or Alive Revision B, Model 2B, 837-12880 security board */ +ROM_START( doab ) /* Dead or Alive Revision B, Model 2B, 837-12880 security board */ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program ROM_LOAD32_WORD("epr-19379b.15", 0x000000, 0x080000, CRC(8a10a944) SHA1(c675a344f74d0118907fb5292495883c0c30c719) ) ROM_LOAD32_WORD("epr-19380b.16", 0x000002, 0x080000, CRC(766c1ec8) SHA1(49250886f66db9fd37d88bc22c8f22046f74f043) ) @@ -5783,7 +5783,48 @@ ROM_LOAD32_WORD("mpr-19325.21", 0x0000002, 0x400000, CRC(7cbe432d) SHA1(8b31e292160b88df9c77b36096914d09ab8b6086) ) ROM_LOAD32_WORD("mpr-19323.18", 0x0800000, 0x400000, CRC(453d3f4a) SHA1(8c0530824bb8ecb007021ee6e93412597bb0ecd6) ) ROM_LOAD32_WORD("mpr-19326.22", 0x0800002, 0x400000, CRC(b976da02) SHA1(a154eb128604aac9e35438d8811971133eab94a1) ) - ROM_LOAD32_WORD("mpr-19324.19", 0x1000000, 0x400000, CRC(d972201f) SHA1(1857ffc58697997ee22436586c398eb0c3daba6c) ) + ROM_LOAD32_WORD("mpr-19324.19", 0x1000000, 0x400000, CRC(0d6bf454) SHA1(4cf48f19128d728c4ec7e9ec7014223a6c0f2362) ) + ROM_LOAD32_WORD("mpr-19327.23", 0x1000002, 0x400000, CRC(6a75634c) SHA1(8ed74c7afd95fc7a4df0f01a47479b6f44e3073c) ) + + ROM_REGION( 0x800000, "textures", 0 ) // Textures + ROM_LOAD32_WORD("mpr-19321.27", 0x000000, 0x400000, CRC(9c49e845) SHA1(344839640d9814263fa5ed00c2043cd6f18d5cb2) ) + ROM_LOAD32_WORD("mpr-19320.25", 0x000002, 0x400000, CRC(190c017f) SHA1(4c3250b9abe39fc5c8fd0fcdb5fb7ea131434516) ) + + ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc) + + ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program + ROM_LOAD16_WORD_SWAP("epr-19328.30", 0x000000, 0x080000, CRC(400bdbfb) SHA1(54db969fa54cf3c502d77aa6a6aaeef5d7db9f04) ) + + ROM_REGION16_BE( 0x800000, "samples", 0 ) // Samples + ROM_LOAD16_WORD_SWAP("mpr-19329.31", 0x000000, 0x200000, CRC(8fd2708a) SHA1(7a341b15afa489aa95af70cb34ac3934b1a7d887) ) + ROM_LOAD16_WORD_SWAP("mpr-19330.32", 0x200000, 0x200000, CRC(0c69787d) SHA1(dc5870cd93da2babe5fc9c03b252fc6ea6e45721) ) + ROM_LOAD16_WORD_SWAP("mpr-19331.33", 0x400000, 0x200000, CRC(c18ea0b8) SHA1(0f42458829ae85fffcedd42cd9f728a7a3d75f1c) ) + ROM_LOAD16_WORD_SWAP("mpr-19332.34", 0x600000, 0x200000, CRC(2877f96f) SHA1(00e5677da30527b862e238f10762a5cbfbabde2b) ) +ROM_END + +ROM_START( doa ) /* Dead or Alive Jan 10 1997, probably Revision C, Model 2B, 837-12880 security board */ + ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program + // ROMs have hand written labels - "EPR-19379B / EPR-19380B, 96/12/6", probably was reused and reprogrammed to newer revision + ROM_LOAD32_WORD("epr-19379c.15", 0x000000, 0x080000, CRC(5cc62fbe) SHA1(a1489b92f32bcd16cca10017975beb62fc27a060) ) + ROM_LOAD32_WORD("epr-19380c.16", 0x000002, 0x080000, CRC(58cfeaa9) SHA1(4319c22b8ebcff152676b62b5b1d4c1c7ce64fa6) ) + + ROM_REGION32_LE( 0x2000000, "main_data", 0 ) // Data + ROM_LOAD32_WORD("mpr-19318.11", 0x0000000, 0x400000, CRC(ab431bfe) SHA1(45b5ccf67c91014daf6bf3c4bd8ec372b246e404) ) + ROM_LOAD32_WORD("mpr-19319.12", 0x0000002, 0x400000, CRC(c5cb694d) SHA1(448b45d30cc7a71395a49a2c5789989fd7b7b4e7) ) + ROM_LOAD32_WORD("mpr-19316.9", 0x0800000, 0x400000, CRC(2d2d1b1a) SHA1(77ce5d8aa98bdbc97ae08a452f584b30d8885cfc) ) + ROM_LOAD32_WORD("mpr-19317.10", 0x0800002, 0x400000, CRC(96b17bcf) SHA1(3aa9d2f8afad74b5626ce2cf2d7a86aef8cac80b) ) + ROM_LOAD32_WORD("mpr-19314.7", 0x1000000, 0x400000, CRC(a8d963fb) SHA1(6a1680d6380321279b0d701e4b47d4ae712f3b72) ) + ROM_LOAD32_WORD("mpr-19315.8", 0x1000002, 0x400000, CRC(90ae5682) SHA1(ec56df14f0847daf9bd0435f785a8946c94d2988) ) + ROM_LOAD32_WORD("mpr-19312.5", 0x1800000, 0x200000, CRC(1dcedb10) SHA1(a60fb9e7c0731004d0f0ff28c4cde272b21dd658) ) + ROM_LOAD32_WORD("mpr-19313.6", 0x1800002, 0x200000, CRC(8c63055e) SHA1(9f375b3f4a8884163ffcf364989499f2cd21e18b) ) + ROM_COPY("main_data", 0x1800000, 0x1c00000, 0x400000 ) + + ROM_REGION( 0x2000000, "polygons", ROMREGION_ERASEFF ) // Models + ROM_LOAD32_WORD("mpr-19322.17", 0x0000000, 0x400000, CRC(d0e6ecf0) SHA1(1b87f6337b4286fd738856da899462e7baa92601) ) + ROM_LOAD32_WORD("mpr-19325.21", 0x0000002, 0x400000, CRC(7cbe432d) SHA1(8b31e292160b88df9c77b36096914d09ab8b6086) ) + ROM_LOAD32_WORD("mpr-19323.18", 0x0800000, 0x400000, CRC(453d3f4a) SHA1(8c0530824bb8ecb007021ee6e93412597bb0ecd6) ) + ROM_LOAD32_WORD("mpr-19326.22", 0x0800002, 0x400000, CRC(b976da02) SHA1(a154eb128604aac9e35438d8811971133eab94a1) ) + ROM_LOAD32_WORD("mpr-19324.19", 0x1000000, 0x400000, CRC(0d6bf454) SHA1(4cf48f19128d728c4ec7e9ec7014223a6c0f2362) ) ROM_LOAD32_WORD("mpr-19327.23", 0x1000002, 0x400000, CRC(6a75634c) SHA1(8ed74c7afd95fc7a4df0f01a47479b6f44e3073c) ) ROM_REGION( 0x800000, "textures", 0 ) // Textures @@ -7101,7 +7142,8 @@ GAME( 1996, lastbrnx, 0, model2b, vf2, model2b_state, empty_init, ROT0, "Sega", "Last Bronx (Export, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, lastbrnxu, lastbrnx, model2b, vf2, model2b_state, empty_init, ROT0, "Sega", "Last Bronx (USA, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, lastbrnxj, lastbrnx, model2b, vf2, model2b_state, empty_init, ROT0, "Sega", "Last Bronx (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, doa, 0, model2b_0229, doa, model2b_state, init_doa, ROT0, "Tecmo", "Dead or Alive (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, doab, doa, model2b_0229, doa, model2b_state, init_doa, ROT0, "Tecmo", "Dead or Alive (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Dec 4 1996 +GAME( 1996, doa, 0, model2b_0229, doa, model2b_state, init_doa, ROT0, "Tecmo", "Dead or Alive (Model 2B, Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Jan 10 1997 GAME( 1996, sgt24h, 0, overrev2b, sgt24h, model2b_state, init_sgt24h, ROT0, "Jaleco", "Super GT 24h", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, powsled, 0, powsled, powsled, model2b_state, empty_init, ROT0, "Sega", "Power Sled (Slave, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, powsledr, powsled, powsled, powsled, model2b_state, empty_init, ROT0, "Sega", "Power Sled (Relay, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/model3.cpp mame-0.224+dfsg.1/src/mame/drivers/model3.cpp --- mame-0.223+dfsg.1/src/mame/drivers/model3.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/model3.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -735,6 +735,8 @@ #include "includes/model3.h" #include "cpu/m68000/m68000.h" +#include "cpu/z80/kl5c80a16.h" +#include "machine/315_5296.h" #include "machine/clock.h" #include "machine/eepromser.h" #include "machine/53c810.h" @@ -6006,6 +6008,31 @@ MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_10) } +void model3_state::getbass_iocpu_mem(address_map &map) +{ + map(0x00000, 0x0efff).rom(); + map(0x0f000, 0x0ffff).ram(); +} + +void model3_state::getbass_iocpu_io(address_map &map) +{ + map.global_mask(0xff); + map(0x60, 0x6f).rw("io60", FUNC(sega_315_5296_device::read), FUNC(sega_315_5296_device::write)); + map(0x70, 0x7f).rw("io70", FUNC(sega_315_5649_device::read), FUNC(sega_315_5649_device::write)); +} + +void model3_state::getbass(machine_config &config) +{ + model3_10(config); + + kl5c80a16_device &iocpu(KL5C80A16(config, "iocpu", 32_MHz_XTAL / 2)); + iocpu.set_addrmap(AS_PROGRAM, &model3_state::getbass_iocpu_mem); + iocpu.set_addrmap(AS_IO, &model3_state::getbass_iocpu_io); + + SEGA_315_5296(config, "io60", 32_MHz_XTAL); + SEGA_315_5649(config, "io70", 0); +} + void model3_state::model3_15(machine_config &config) { add_cpu_100mhz(config); @@ -6469,7 +6496,7 @@ GAME( 1996, vf3tb, vf3, model3_10, model3, model3_state, init_model3_10, ROT0, "Sega", "Virtua Fighter 3 Team Battle", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) GAME( 1997, bass, 0, model3_10, bass, model3_state, init_bass, ROT0, "Sega", "Sega Bass Fishing", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) GAME( 1997, bassdx, bass, model3_10, bass, model3_state, init_getbass, ROT0, "Sega", "Sega Bass Fishing Deluxe", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, getbass, bass, model3_10, bass, model3_state, init_getbass, ROT0, "Sega", "Get Bass", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, getbass, bass, getbass, bass, model3_state, init_getbass, ROT0, "Sega", "Get Bass", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* Model 3 Step 1.5 */ GAME( 1996, scud, 0, scud, scud, model3_state, init_scud, ROT0, "Sega", "Scud Race Twin (Australia)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/mpu4vid.cpp mame-0.224+dfsg.1/src/mame/drivers/mpu4vid.cpp --- mame-0.223+dfsg.1/src/mame/drivers/mpu4vid.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/mpu4vid.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -171,6 +171,8 @@ * They have a slightly different 68k memory map. The 6850 is at e00000 and the 6840 is at e01000 They appear to hang on the handshake with the MPU4 board - Layouts needed for the other working games, and DIP switches need checking/altering (no test mode?) + - BWB Vid5 cabinets seem to have the speakers wired the other way according to test (left/right swapped) + - BWB sampled sound seems to not play despite hookup. ***********************************************************************************************************/ #include "emu.h" #include "includes/mpu4.h" @@ -202,23 +204,16 @@ #include "crmaze4p.lh" #include "v4addlad.lh" #include "v4barqst.lh" +#include "v4psi.lh" #include "v4strike.lh" class mpu4vid_state : public mpu4_state { public: - struct bt471_t - { - uint8_t address; - uint8_t addr_cnt; - uint8_t pixmask; - uint8_t command; - rgb_t color; - }; - mpu4vid_state(const machine_config &mconfig, device_type type, const char *tag) - : mpu4_state(mconfig, type, tag), + mpu4vid_state(const machine_config &mconfig, device_type type, const char *tag) : + mpu4_state(mconfig, type, tag), m_videocpu(*this, "video"), m_scn2674(*this, "scn2674_vid"), m_vid_vidram(*this, "vid_vidram"), @@ -229,6 +224,7 @@ m_trackx_port(*this, "TRACKX"), m_tracky_port(*this, "TRACKY"), m_gfxdecode(*this, "gfxdecode"), + m_ef9369(*this, "ef9369"), m_4krow(0), m_4ktable(nullptr) { @@ -239,7 +235,11 @@ void bwbvid(machine_config &config); void crmaze(machine_config &config); - void bwbvid5(machine_config &config); + void bwbvid_oki(machine_config &config); + void bwbvid_oki_bt471(machine_config &config); + + void bwbvid_oki_bt471_german(machine_config &config); + void mating(machine_config &config); void vid_oki(machine_config &config); @@ -264,8 +264,8 @@ void init_skiltrek(); void init_crmaze3(); void init_cybcas(); + void init_v4frfact(); void init_bwbhack(); - private: required_device m_videocpu; optional_device m_scn2674; @@ -278,7 +278,7 @@ optional_ioport m_tracky_port; required_device m_gfxdecode; - struct bt471_t m_bt471; + optional_device m_ef9369; //Video uint8_t m_m6840_irq_state; @@ -302,8 +302,7 @@ uint16_t mpu4_vid_vidram_r(offs_t offset); void mpu4_vid_vidram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); EF9369_COLOR_UPDATE(ef9369_color_update); - void bt471_w(offs_t offset, uint8_t data); - uint8_t bt471_r(offs_t offset); + void vidcharacteriser_w(offs_t offset, uint8_t data); uint8_t vidcharacteriser_r(offs_t offset); DECLARE_WRITE_LINE_MEMBER(mpu_video_reset); @@ -311,7 +310,9 @@ uint8_t vram_r(offs_t offset); void ic3ss_vid_w(offs_t offset, uint8_t data); - void bwbvid5_68k_map(address_map &map); + void bwbvidoki_68k_base_map(address_map &map); + void bwbvidoki_68k_map(address_map &map); + void bwbvidoki_68k_bt471_map(address_map &map); void bwbvid_68k_map(address_map &map); void mpu4_68k_map_base(address_map &map); void mpu4_68k_map(address_map &map); @@ -319,12 +320,22 @@ void mpu4_vram(address_map &map); void mpu4oki_68k_map(address_map &map); + void mpu4_6809_german_map(address_map &map); + void vidcharacteriser_4k_lookup_w(offs_t offset, uint8_t data); uint8_t vidcharacteriser_4k_lookup_r(offs_t offset); uint8_t m_4krow; uint8_t *m_4ktable; void hack_bwb_startup_protection(); + uint8_t mpu4_vid_bt_a00004_r(offs_t offset); + void mpu4_vid_bt_a00002_w(offs_t offset, uint8_t data); + void mpu4_vid_bt_a00008_w(offs_t offset, uint8_t data); + uint8_t m_bt_palbase; + uint8_t m_bt_which; + uint8_t m_btpal_r[0x100]; + uint8_t m_btpal_g[0x100]; + uint8_t m_btpal_b[0x100]; }; /************************************* @@ -433,29 +444,40 @@ uint16_t tile = m_vid_mainram[address & 0x7fff]; const uint8_t *line = m_gfxdecode->gfx(m_gfx_index+0)->get_data(tile & 0xfff); int offset = m_gfxdecode->gfx(m_gfx_index+0)->rowbytes() * linecount; + for (int i = 0; i < 8; i++) { uint8_t pen = line[offset + i]; int extra = tile >> 12; - // the test modes in many cases require the more complex logic here - // otherwise text is invisible, rgb patterns are not shown etc. - // this logic could still be incorrect - if (pen == 0) + if (m_ef9369) { - bitmap.pix32(y, x + i) = m_palette->pen(pen); + // TODO: calculate instead? + static const uint8_t lookup[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, + 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, + 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 4, + 0, 1, 0, 1, 4, 5, 4, 5, 0, 1, 0, 1, 4, 5, 4, 5, + 0, 0, 2, 2, 4, 4, 6, 6, 0, 0, 2, 2, 4, 4, 6, 6, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, + 0, 1, 0, 1, 0, 1, 0, 1, 8, 9, 8, 9, 8, 9, 8, 9, + 0, 0, 2, 2, 0, 0, 2, 2, 8, 8,10,10, 8, 8,10,10, + 0, 1, 2, 3, 0, 1, 2, 3, 8, 9,10,11, 8, 9,10,11, + 0, 0, 0, 0, 4, 4, 4, 4, 8, 8, 8, 8,12,12,12,12, + 0, 1, 0, 1, 4, 5, 4, 5, 8, 9, 8, 9,12,13,12,13, + 0, 0, 2, 2, 4, 4, 6, 6, 8, 8,10,10,12,12,14,14, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15 + }; + + bitmap.pix32(y, x + i) = m_palette->pen(lookup[(extra << 4) | (pen & 0xf)]); } else { - int newpen = pen ^ (15 - extra); - if (newpen == 15) - { - bitmap.pix32(y, x + i) = m_palette->pen(extra); - } - else - { - bitmap.pix32(y, x + i) = m_palette->pen(newpen); - } + bitmap.pix32(y, x + i) = m_palette->pen((extra<<4) | (pen & 0xf)); + } } } @@ -498,72 +520,6 @@ m_palette->set_pen_color(entry, pal4bit(cc), pal4bit(cb), pal4bit(ca)); } -/****************************************** - * - * Brooktree Bt471 RAMDAC - * Implementation stolen from JPM - * Impact, may not be 100% (that has a 477) - ******************************************/ - -/* - * 0 0 0 Address register (RAM write mode) - * 0 0 1 Color palette RAMs - * 0 1 0 Pixel read mask register - * 0 1 1 Address register (RAM read mode) - * 1 0 0 Address register (overlay write mode) - * 1 1 1 Address register (overlay read mode) - * 1 0 1 Overlay register - */ - -void mpu4vid_state::bt471_w(offs_t offset, uint8_t data) -{ - struct bt471_t &bt471 = m_bt471; - - switch (offset) - { - case 0x0: - { - bt471.address = data; - bt471.addr_cnt = 0; - break; - } - case 0x1: - { - uint8_t *addr_cnt = &bt471.addr_cnt; - rgb_t *color = &bt471.color; - - color[*addr_cnt] = data; - - if (++*addr_cnt == 3) - { - m_palette->set_pen_color(bt471.address, rgb_t(color[0], color[1], color[2])); - *addr_cnt = 0; - - /* Address register increments */ - bt471.address++; - } - break; - } - case 0x2: - { - bt471.pixmask = data; - break; - } - - default: - { - popmessage("Bt471: Unhandled write access (offset:%x, data:%x)", offset, data); - } - } -} - -uint8_t mpu4vid_state::bt471_r(offs_t offset) -{ - popmessage("Bt471: Unhandled read access (offset:%x)", offset); - return 0; -} - - /************************************* * * Trackball interface @@ -871,148 +827,6 @@ PORT_BIT(0xFF, IP_ACTIVE_HIGH, IPT_UNUSED) INPUT_PORTS_END -static INPUT_PORTS_START( v4psi ) - PORT_INCLUDE( mpu4 ) - PORT_MODIFY("ORANGE1") - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Payout Shelf opto - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_MODIFY("ORANGE2") - // No. 17 to 24 according to test mode - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Fire") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_MODIFY("BLACK1") - // No. 9 to 16 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START3 ) PORT_NAME("Continue 30p") - - PORT_MODIFY("BLACK2") - // No. 1 to 8 - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Collect") - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start 30p") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start 50p") - - PORT_MODIFY("DIL2") - PORT_DIPNAME( 0x01, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:01") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "Allow Multiple Credits" ) PORT_DIPLOCATION("DIL2:02") - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPNAME( 0x04, 0x00, "Payout when Empty?" ) PORT_DIPLOCATION("DIL2:03") - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPSETTING( 0x04, DEF_STR( No ) ) - PORT_DIPNAME( 0x08, 0x00, "Bank Win" ) PORT_DIPLOCATION("DIL2:04") - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPSETTING( 0x08, "Pay Live" ) - PORT_DIPNAME( 0x10, 0x00, "Collect Mode" ) PORT_DIPLOCATION("DIL2:05") - PORT_DIPSETTING( 0x00, "Credit and Bank" ) - PORT_DIPSETTING( 0x10, "Bank Only" ) - PORT_DIPNAME( 0x20, 0x00, "Hall of Fame Entry" ) PORT_DIPLOCATION("DIL2:06") - PORT_DIPSETTING( 0x00, "Full Names" ) - PORT_DIPSETTING( 0x20, "Initials" ) - PORT_DIPNAME( 0x40, 0x00, "Long Game" ) PORT_DIPLOCATION("DIL2:07") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:08") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( v4tetris ) - PORT_INCLUDE( mpu4 ) - - PORT_MODIFY("BLACK1") - // no up also according to cabinet panel - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - // buttons are actually repeated on both left and right on the cabinet panel, - // with joystick at center - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Rotate Left") - // left of main screen cab - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start (Practice Mode)") - // TODO: bit 5,6 unconfirmed if they behaves the same as vanilla MPU4 - // (bit 7 certainly is door open) - - PORT_MODIFY("BLACK2") - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Rotate Right") - // right of main screen cab - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start (Prize Mode)") - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - // TODO: dips - PORT_MODIFY("DIL2") - PORT_DIPNAME( 0x01, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:01") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "Allow Multiple Credits" ) PORT_DIPLOCATION("DIL2:02") - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPNAME( 0x04, 0x00, "Demo Mode" ) PORT_DIPLOCATION("DIL2:03") - PORT_DIPSETTING( 0x00, "Continuous" ) - PORT_DIPSETTING( 0x04, "Cancelled @5min" ) - PORT_DIPNAME( 0x08, 0x00, "Odd 10p" ) PORT_DIPLOCATION("DIL2:04") - PORT_DIPSETTING( 0x00, "Lost @2min" ) - PORT_DIPSETTING( 0x08, "Never Lost" ) - PORT_DIPNAME( 0x10, 0x00, "DIL205" ) PORT_DIPLOCATION("DIL2:05") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "DIL205" ) PORT_DIPLOCATION("DIL2:06") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "DIL207" ) PORT_DIPLOCATION("DIL2:07") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:08") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - -INPUT_PORTS_END - - -static INPUT_PORTS_START( v4pztet ) - PORT_INCLUDE( mpu4 ) - - PORT_MODIFY("BLACK1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start (Practice Mode)") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start (Prize Mode)") - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_CUSTOM) // Prize Shelf Opto (v4bulblx will hang on boot without an error message otherwise) - - PORT_MODIFY("BLACK2") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Rotate Left") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Rotate Right") -INPUT_PORTS_END - -static INPUT_PORTS_START( v4vgpok ) - PORT_INCLUDE( mpu4 ) - - PORT_MODIFY("BLACK1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start / Deal / Draw") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POKER_BET ) // Stake - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_GAMBLE_PAYOUT ) // Collect - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_GAMBLE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_GAMBLE_HIGH ) - - PORT_MODIFY("BLACK2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POKER_HOLD1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POKER_HOLD2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POKER_HOLD3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_POKER_HOLD4 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_POKER_HOLD5 ) -INPUT_PORTS_END - static INPUT_PORTS_START( strike ) PORT_INCLUDE( mpu4vid ) @@ -1071,11 +885,11 @@ PORT_CONFSETTING( 0x07, "10 GBP" ) PORT_CONFSETTING( 0x09, "15 GBP" ) PORT_CONFSETTING( 0x0A, "25 GBP" ) - PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) + PORT_CONFSETTING( 0x0B, "25 GBP - Licensed Betting Office Profile" ) PORT_CONFSETTING( 0x0C, "35 GBP" ) PORT_CONFSETTING( 0x0D, "70 GBP" ) - PORT_CONFSETTING( 0x0E, "Reserved" ) - PORT_CONFSETTING( 0x0F, "Reserved" ) + PORT_CONFSETTING( 0x0E, "Reserved 0e" ) + PORT_CONFSETTING( 0x0F, "Reserved 0f" ) PORT_CONFNAME( 0xF0, 0x00, "Percentage Key" ) PORT_CONFSETTING( 0x00, "Not fitted / 68% (Invalid for UK Games)" ) @@ -1156,67 +970,879 @@ PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "High Prize Payout proportion (if available)" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x08, 0x00, "High Prize Payout proportion (if available)" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Excess Token Lockout" ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("AUX1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_START("AUX2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_CUSTOM) //Lockouts, in same order as below + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_CUSTOM) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_COIN5) PORT_NAME("Token")// If valid, then 0x04 is unused, 0x01 is token lockout, 0x02 is all other lockouts. + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p") +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4psi ) + PORT_INCLUDE( bwbvid ) + PORT_MODIFY("ORANGE1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM )// 20p level + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM )// Short token bottom level + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM )// 100p level + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // Payout Shelf opto + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_MODIFY("ORANGE2") + // No. 17 to 24 according to test mode + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Fire") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_MODIFY("BLACK1") + // No. 9 to 16 + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START3 ) PORT_NAME("Continue 30p") + + PORT_MODIFY("BLACK2") + // No. 1 to 8 + PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Collect") + PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start 30p") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start 50p") + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "Allow Multiple Credits" ) PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x02, DEF_STR( No ) ) + PORT_DIPNAME( 0x04, 0x00, "Payout when Empty?" ) PORT_DIPLOCATION("DIL2:03") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x04, DEF_STR( No ) ) + PORT_DIPNAME( 0x08, 0x00, "Bank Win" ) PORT_DIPLOCATION("DIL2:04") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x08, "Pay Live" ) + PORT_DIPNAME( 0x10, 0x00, "Collect Mode" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, "Credit and Bank" ) + PORT_DIPSETTING( 0x10, "Bank Only" ) + PORT_DIPNAME( 0x20, 0x00, "Hall of Fame Entry" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, "Full Names" ) + PORT_DIPSETTING( 0x20, "Initials" ) + PORT_DIPNAME( 0x40, 0x00, "Long Game" ) PORT_DIPLOCATION("DIL2:07") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( v4tetris ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("ORANGE1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM )// 20p level + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM )// Short token bottom level + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM )// 100p level + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM )// Long token bottom level + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM )// Prize token level sensor + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM )// Short token top level + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + + PORT_MODIFY("ORANGE2") + PORT_BIT(0xFF, IP_ACTIVE_HIGH, IPT_UNUSED) + + + PORT_MODIFY("BLACK1") + // no up also according to cabinet panel + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + // buttons are actually repeated on both left and right on the cabinet panel, + // with joystick at center + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Rotate Left") + // left of main screen cab + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start (Practice Mode)") + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Rotate Right") + // right of main screen cab + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start (Prize Mode)") + PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "Allow Multiple Credits" ) PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x02, DEF_STR( No ) ) + PORT_DIPNAME( 0x04, 0x00, "Demo Mode" ) PORT_DIPLOCATION("DIL2:03") + PORT_DIPSETTING( 0x00, "Continuous" ) + PORT_DIPSETTING( 0x04, "Cancelled @5min" ) + PORT_DIPNAME( 0x08, 0x00, "Odd 10p" ) PORT_DIPLOCATION("DIL2:04") + PORT_DIPSETTING( 0x00, "Lost @2min" ) + PORT_DIPSETTING( 0x08, "Never Lost" ) + PORT_DIPNAME( 0x10, 0x00, "DIL205" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, "DIL205" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "DIL207" ) PORT_DIPLOCATION("DIL2:07") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) + +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4pztet ) + PORT_INCLUDE( v4tetris ) + + PORT_MODIFY("BLACK1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start (Practice Mode)") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start (Prize Mode)") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_CUSTOM ) // Prize Shelf Opto + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Rotate Left") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Rotate Right") +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4bulblx ) + PORT_INCLUDE( v4pztet ) + + PORT_MODIFY("BLACK1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start (Practice Mode)") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start (Prize Mode)") + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_CUSTOM) // Prize Shelf Opto +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4vgpok ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start / Deal / Draw") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POKER_BET ) // Stake + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_GAMBLE_PAYOUT ) // Collect + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_GAMBLE_LOW ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_GAMBLE_HIGH ) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POKER_HOLD1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POKER_HOLD2 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POKER_HOLD3 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_POKER_HOLD4 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_POKER_HOLD5 ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4big40 ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("Swop") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Start / Deal / Draw") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_CUSTOM) // Prize Shelf Opto + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox (Back) Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE + + PORT_MODIFY("BLACK2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Cancel/Collect") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_POKER_HOLD1 ) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_POKER_HOLD2 ) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_POKER_HOLD3 ) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_POKER_HOLD4 ) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_POKER_HOLD5 ) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Hi/Twist") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME("Lo/Stick") + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x80, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) + +INPUT_PORTS_END + +static INPUT_PORTS_START( v4mdice ) + PORT_INCLUDE( bwbvid ) + PORT_MODIFY("ORANGE1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM )// 20p level + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM )// Short token bottom level + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM )// 100p level + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM )// Long token bottom level + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM )// Prize token level sensor + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM )// Short token top level + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_MODIFY("BLACK1") + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Cancel/Collect") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold/Nudge A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold/Nudge B") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold/Nudge C") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hi") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Lo") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Exchange") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_MODIFY("DIL1") + PORT_DIPNAME( 0x01, 0x00, "Play Jingle" ) PORT_DIPLOCATION("DIL1:01") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x01, DEF_STR( No ) ) + PORT_DIPNAME( 0x02, 0x00, u8"£8 Advert?" ) PORT_DIPLOCATION("DIL1:02") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x02, DEF_STR( No ) ) + PORT_DIPNAME( 0x04, 0x00, "High Token Payout Proportion" ) PORT_DIPLOCATION("DIL1:03") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x08, 0x00, "Low Token Payout Proportion" ) PORT_DIPLOCATION("DIL1:04") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") + PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) + PORT_DIPSETTING( 0x10, "70" ) + PORT_DIPSETTING( 0x20, "72" ) + PORT_DIPSETTING( 0x30, "74" ) + PORT_DIPSETTING( 0x40, "76" ) + PORT_DIPSETTING( 0x50, "78" ) + PORT_DIPSETTING( 0x60, "80" ) + PORT_DIPSETTING( 0x70, "82" ) + PORT_DIPSETTING( 0x80, "84" ) + PORT_DIPSETTING( 0x90, "86" ) + PORT_DIPSETTING( 0xA0, "88" ) + PORT_DIPSETTING( 0xB0, "90" ) + PORT_DIPSETTING( 0xC0, "92" ) + PORT_DIPSETTING( 0xD0, "94" ) + PORT_DIPSETTING( 0xE0, "96" ) + PORT_DIPSETTING( 0xF0, "98" ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "High Prize Payout proportion (if available)" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Excess Token Lockout" ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + +INPUT_PORTS_END + +static INPUT_PORTS_START( v4cshinf ) + PORT_INCLUDE( v4mdice ) + + PORT_MODIFY("DIL1") + PORT_DIPNAME( 0x01, 0x00, "Lower Price of Play?" ) PORT_DIPLOCATION("DIL1:01") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x01, DEF_STR( No ) ) + PORT_DIPNAME( 0x02, 0x00, "Higher Price of Play?" ) PORT_DIPLOCATION("DIL1:02") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x02, DEF_STR( No ) ) + PORT_DIPNAME( 0x04, 0x00, "High Token Payout Proportion" ) PORT_DIPLOCATION("DIL1:03") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x08, 0x00, "Low Token Payout Proportion" ) PORT_DIPLOCATION("DIL1:04") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") + PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) + PORT_DIPSETTING( 0x10, "70" ) + PORT_DIPSETTING( 0x20, "72" ) + PORT_DIPSETTING( 0x30, "74" ) + PORT_DIPSETTING( 0x40, "76" ) + PORT_DIPSETTING( 0x50, "78" ) + PORT_DIPSETTING( 0x60, "80" ) + PORT_DIPSETTING( 0x70, "82" ) + PORT_DIPSETTING( 0x80, "84" ) + PORT_DIPSETTING( 0x90, "86" ) + PORT_DIPSETTING( 0xA0, "88" ) + PORT_DIPSETTING( 0xB0, "90" ) + PORT_DIPSETTING( 0xC0, "92" ) + PORT_DIPSETTING( 0xD0, "94" ) + PORT_DIPSETTING( 0xE0, "96" ) + PORT_DIPSETTING( 0xF0, "98" ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "High Prize Payout proportion (if available)" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Excess Token Lockout (Token ROMs)" ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4reno ) + PORT_INCLUDE( v4mdice ) + + PORT_MODIFY("DIL1") + PORT_DIPNAME( 0x01, 0x00, "Set Price of Play?" ) PORT_DIPLOCATION("DIL1:01") + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x01, DEF_STR( No ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:02") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:03") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:04") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") + PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) + PORT_DIPSETTING( 0x10, "70" ) + PORT_DIPSETTING( 0x20, "72" ) + PORT_DIPSETTING( 0x30, "74" ) + PORT_DIPSETTING( 0x40, "76" ) + PORT_DIPSETTING( 0x50, "78" ) + PORT_DIPSETTING( 0x60, "80" ) + PORT_DIPSETTING( 0x70, "82" ) + PORT_DIPSETTING( 0x80, "84" ) + PORT_DIPSETTING( 0x90, "86" ) + PORT_DIPSETTING( 0xA0, "88" ) + PORT_DIPSETTING( 0xB0, "90" ) + PORT_DIPSETTING( 0xC0, "92" ) + PORT_DIPSETTING( 0xD0, "94" ) + PORT_DIPSETTING( 0xE0, "96" ) + PORT_DIPSETTING( 0xF0, "98" ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "High Prize Payout proportion (if available)" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Excess Token Lockout (Token ROMs)" ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4bigfrt ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("Fast/ High Play") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Start 1") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Cancel/Collect") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold/Nudge A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hi") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold/Nudge B") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Lo") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Hold/Nudge C") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Take It") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Leave It") + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Inhibit Attract Mode" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( v4bubbnk ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Cancel/Nudge Up") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold B") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold C") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Swop") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Hi") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Lo") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Inhibit Attract Mode" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Excess Token Lockout (Token ROMs)" ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( v4dbltak ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("ORANGE1") + PORT_CONFNAME( 0xc0, 0xc0, "Stake Key" ) + PORT_CONFSETTING( 0x80, "20p" ) + PORT_CONFSETTING( 0xc0, "25p" ) + // invalid settings + PORT_CONFSETTING( 0x00, "Invalid (Not fitted)" ) + PORT_CONFSETTING( 0x40, "Invalid" ) + + PORT_MODIFY("ORANGE2") + PORT_CONFNAME( 0x0f, 0x07, "Jackpot / Prize Key" ) + PORT_CONFSETTING( 0x08, "5 GBP" ) + PORT_CONFSETTING( 0x07, "10 GBP" ) + PORT_CONFSETTING( 0x09, "15 GBP" ) + // invalid settings + PORT_CONFSETTING( 0x00, "Invalid (Not fitted)" ) + PORT_CONFSETTING( 0x01, "Invalid (3 GBP)" ) + PORT_CONFSETTING( 0x02, "Invalid (4 GBP)" ) + PORT_CONFSETTING( 0x03, "Invalid (6 GBP)" ) + PORT_CONFSETTING( 0x04, "Invalid (6 GBP Token)" ) + PORT_CONFSETTING( 0x05, "Invalid (8 GBP)" ) + PORT_CONFSETTING( 0x06, "Invalid (8 GBP Token)" ) + PORT_CONFSETTING( 0x0a, "Invalid (25 GBP)" ) + PORT_CONFSETTING( 0x0b, "Invalid (25 GBP - Licensed Betting Office Profile)" ) + PORT_CONFSETTING( 0x0c, "Invalid (35 GBP)" ) + PORT_CONFSETTING( 0x0d, "Invalid (70 GBP)" ) + PORT_CONFSETTING( 0x0e, "Invalid (Reserved 0e)" ) + PORT_CONFSETTING( 0x0f, "Invalid (Reserved 0f)" ) + PORT_BIT(0xf0, IP_ACTIVE_HIGH, IPT_UNUSED) // % Key not used + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("Swop") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START1) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Cancel/Collect") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold B") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold C") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hold D") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Hold E") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Hi/Twist") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Lo/Stick") + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "High Prize Percentage?" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPSETTING( 0x08, DEF_STR( No ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( v4dbltak_perc ) // requires a valid % key + PORT_INCLUDE( v4dbltak ) + + PORT_MODIFY("ORANGE2") + PORT_CONFNAME( 0xf0, 0x60, "Percentage Key" ) + PORT_CONFSETTING( 0x00, "Not fitted / 68% (Invalid for UK Games)" ) + PORT_CONFSETTING( 0x10, "70" ) + PORT_CONFSETTING( 0x20, "72" ) + PORT_CONFSETTING( 0x30, "74" ) + PORT_CONFSETTING( 0x40, "76" ) + PORT_CONFSETTING( 0x50, "78" ) + PORT_CONFSETTING( 0x60, "80" ) + PORT_CONFSETTING( 0x70, "82" ) + PORT_CONFSETTING( 0x80, "84" ) + PORT_CONFSETTING( 0x90, "86" ) + PORT_CONFSETTING( 0xa0, "88" ) + PORT_CONFSETTING( 0xb0, "90" ) + PORT_CONFSETTING( 0xc0, "92" ) + PORT_CONFSETTING( 0xd0, "94" ) + PORT_CONFSETTING( 0xe0, "96" ) + PORT_CONFSETTING( 0xf0, "98" ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4mazbel ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Collect/Cancel") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold B") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold C") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hold/Swop") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Hi/Up") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Lo/Down") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Inhibit Attract Mode" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( v4redhtp ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("Swop") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Deal/Draw") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Collect") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold B") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold C") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hold D") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Hold E") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Hi") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Lo") + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Inhibit Attract Mode" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( v4shpwnd ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start (L)") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Hold A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold B") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold C") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Cancel") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Collect") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Auto Start") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START3 ) PORT_NAME("Start (R)") + + PORT_MODIFY("DIL1") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, "Price of Play" ) PORT_DIPLOCATION("DIL1:02") + PORT_DIPSETTING( 0x00, DEF_STR( Low ) ) + PORT_DIPSETTING( 0x02, DEF_STR( High ) ) + PORT_DIPNAME( 0x04, 0x00, "High Token Payout Proportion" ) PORT_DIPLOCATION("DIL1:03") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x08, 0x00, "Low Token Payout Proportion" ) PORT_DIPLOCATION("DIL1:04") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) + PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") + PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) + PORT_DIPSETTING( 0x10, "70" ) + PORT_DIPSETTING( 0x20, "72" ) + PORT_DIPSETTING( 0x30, "74" ) + PORT_DIPSETTING( 0x40, "76" ) + PORT_DIPSETTING( 0x50, "78" ) + PORT_DIPSETTING( 0x60, "80" ) + PORT_DIPSETTING( 0x70, "82" ) + PORT_DIPSETTING( 0x80, "84" ) + PORT_DIPSETTING( 0x90, "86" ) + PORT_DIPSETTING( 0xA0, "88" ) + PORT_DIPSETTING( 0xB0, "90" ) + PORT_DIPSETTING( 0xC0, "92" ) + PORT_DIPSETTING( 0xD0, "94" ) + PORT_DIPSETTING( 0xE0, "96" ) + PORT_DIPSETTING( 0xF0, "98" ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Spin Speed" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, "Normal" ) + PORT_DIPSETTING( 0x08, "Fast" ) PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Excess Token Lockout" ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPNAME( 0x40, 0x00, "Excess Token Lockout (Token games only)" ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR( On ) ) PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - PORT_START("AUX1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START("AUX2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_CUSTOM) //Lockouts, in same order as below - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_CUSTOM) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_COIN5) PORT_NAME("Token")// If valid, then 0x04 is unused, 0x01 is token lockout, 0x02 is all other lockouts. - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p") INPUT_PORTS_END -static INPUT_PORTS_START( v4mdice ) +static INPUT_PORTS_START( v4timebn ) PORT_INCLUDE( bwbvid ) - PORT_MODIFY("ORANGE1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM )// 20p level - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM )// Short token bottom level - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM )// 100p level - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM )// Long token bottom level - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM )// Prize token level sensor - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM )// Short token top level - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_MODIFY("BLACK1") - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_CUSTOM) // Prize Shelf Opto + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox (Back) Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE PORT_MODIFY("BLACK2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Cancel/Collect") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold/Nudge A") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold/Nudge B") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold/Nudge C") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Collect") + //Will show as 'unused' in test, but give response when connected + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hi") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Lo") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Exchange") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Luck") PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Clear MPU Memory" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x02, 0x00, "Enable Cash Refill") PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x04, 0x00, "Inhibit Win Banking" ) PORT_DIPLOCATION("DIL2:03") //If on, wins are paid live, as opposed to stored + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Inhibit Attract Mode" ) PORT_DIPLOCATION("DIL2:04") //Non Prize machines use this to inhibit OCD attract mode + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "Halt Payout when Empty" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL2:07") //If an 'arcade' ROM, this flips, or is unused entirely. + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( v4cybcas ) + PORT_INCLUDE( bwbvid ) + + PORT_MODIFY("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("BLACK2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Nehmen") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Halten A") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Halten B") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Halten C") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Ensatz") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Exchange") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start Super") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start/Risiko") INPUT_PORTS_END @@ -1262,9 +1888,9 @@ map(0x800000, 0x80ffff).ram().share("vid_mainram"); // map(0x810000, 0x81ffff).ram(); /* ? */ map(0x900000, 0x900003).w("saa", FUNC(saa1099_device::write)).umask16(0x00ff).mirror(0x000004); - map(0xa00001, 0xa00001).rw("ef9369", FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); + map(0xa00001, 0xa00001).rw(m_ef9369, FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); map(0xa00002, 0xa00003).nopr(); // uses a clr instruction on address which generates a dummy read - map(0xa00003, 0xa00003).w("ef9369", FUNC(ef9369_device::address_w)).umask16(0x00ff); + map(0xa00003, 0xa00003).w(m_ef9369, FUNC(ef9369_device::address_w)).umask16(0x00ff); // map(0xa00004, 0xa0000f).rw(FUNC(mpu4vid_state::mpu4_vid_unmap_r), FUNC(mpu4vid_state::mpu4_vid_unmap_w)); map(0xb00000, 0xb0000f).rw(m_scn2674, FUNC(scn2674_device::read), FUNC(scn2674_device::write)).umask16(0x00ff); map(0xc00000, 0xc1ffff).rw(FUNC(mpu4vid_state::mpu4_vid_vidram_r), FUNC(mpu4vid_state::mpu4_vid_vidram_w)).share("vid_vidram"); @@ -1292,9 +1918,9 @@ // map(0x640000, 0x7fffff).noprw(); /* Possible bug, reads and writes here */ map(0x800000, 0x80ffff).ram().share("vid_mainram"); map(0x900000, 0x900003).w("saa", FUNC(saa1099_device::write)).umask16(0x00ff).mirror(0x000004); - map(0xa00001, 0xa00001).rw("ef9369", FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); + map(0xa00001, 0xa00001).rw(m_ef9369, FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); map(0xa00002, 0xa00003).nopr(); // uses a clr instruction on address which generates a dummy read - map(0xa00003, 0xa00003).w("ef9369", FUNC(ef9369_device::address_w)).umask16(0x00ff); + map(0xa00003, 0xa00003).w(m_ef9369, FUNC(ef9369_device::address_w)).umask16(0x00ff); map(0xb00000, 0xb0000f).rw(m_scn2674, FUNC(scn2674_device::read), FUNC(scn2674_device::write)).umask16(0x00ff); map(0xc00000, 0xc1ffff).rw(FUNC(mpu4vid_state::mpu4_vid_vidram_r), FUNC(mpu4vid_state::mpu4_vid_vidram_w)).share("vid_vidram"); map(0xff8000, 0xff8003).rw(m_acia_1, FUNC(acia6850_device::read), FUNC(acia6850_device::write)).umask16(0x00ff); @@ -1312,36 +1938,81 @@ map(0x800000, 0x80ffff).ram().share("vid_mainram"); map(0x810000, 0x81ffff).ram(); /* ? */ map(0x900000, 0x900003).w("saa", FUNC(saa1099_device::write)).umask16(0x00ff).mirror(0x000004); - map(0xa00001, 0xa00001).rw("ef9369", FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); + map(0xa00001, 0xa00001).rw(m_ef9369, FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); map(0xa00002, 0xa00003).nopr(); // uses a clr instruction on address which generates a dummy read - map(0xa00003, 0xa00003).w("ef9369", FUNC(ef9369_device::address_w)).umask16(0x00ff); -// map(0xa00000, 0xa0000f).rw(FUNC(mpu4vid_state::bt471_r), FUNC(mpu4vid_state::bt471_w)); //Some games use this -// map(0xa00004, 0xa0000f).rw(FUNC(mpu4vid_state::mpu4_vid_unmap_r), FUNC(mpu4vid_state::mpu4_vid_unmap_w)); + map(0xa00003, 0xa00003).w(m_ef9369, FUNC(ef9369_device::address_w)).umask16(0x00ff); map(0xb00000, 0xb0000f).rw(m_scn2674, FUNC(scn2674_device::read), FUNC(scn2674_device::write)).umask16(0x00ff); map(0xc00000, 0xc1ffff).rw(FUNC(mpu4vid_state::mpu4_vid_vidram_r), FUNC(mpu4vid_state::mpu4_vid_vidram_w)).share("vid_vidram"); map(0xe00000, 0xe00003).rw(m_acia_1, FUNC(acia6850_device::read), FUNC(acia6850_device::write)).umask16(0x00ff); map(0xe01000, 0xe0100f).rw(m_ptm, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)).umask16(0x00ff); } -void mpu4vid_state::bwbvid5_68k_map(address_map &map) +void mpu4vid_state::bwbvidoki_68k_base_map(address_map &map) { map(0x000000, 0x7fffff).rom(); map(0x800000, 0x80ffff).ram().share("vid_mainram"); map(0x810000, 0x81ffff).ram(); /* ? */ map(0x900000, 0x900003).w("saa", FUNC(saa1099_device::write)).umask16(0x00ff).mirror(0x000004); - map(0xa00001, 0xa00001).rw("ef9369", FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); //BT RAMDAC on some games? - map(0xa00002, 0xa00003).nopr(); // uses a clr instruction on address which generates a dummy read - map(0xa00003, 0xa00003).w("ef9369", FUNC(ef9369_device::address_w)).umask16(0x00ff); -// map(0xa00000, 0xa00003).rw(FUNC(mpu4vid_state::bt471_r), FUNC(mpu4vid_state::bt471_w)).umask16(0x00ff); Some games use this -// map(0xa00004, 0xa0000f).rw(FUNC(mpu4vid_state::mpu4_vid_unmap_r), FUNC(mpu4vid_state::mpu4_vid_unmap_w)); + map(0xb00000, 0xb0000f).rw(m_scn2674, FUNC(scn2674_device::read), FUNC(scn2674_device::write)).umask16(0x00ff); map(0xc00000, 0xc1ffff).rw(FUNC(mpu4vid_state::mpu4_vid_vidram_r), FUNC(mpu4vid_state::mpu4_vid_vidram_w)).share("vid_vidram"); map(0xe00000, 0xe00003).rw(m_acia_1, FUNC(acia6850_device::read), FUNC(acia6850_device::write)).umask16(0x00ff); map(0xe01000, 0xe0100f).rw(m_ptm, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)).umask16(0x00ff); - map(0xe02000, 0xe02007).rw("pia_ic4ss", FUNC(pia6821_device::read), FUNC(pia6821_device::write)).umask16(0xff00); //Seems odd... + map(0xe02000, 0xe02007).rw("pia_ic4ss", FUNC(pia6821_device::read), FUNC(pia6821_device::write)).umask16(0xff00); map(0xe03000, 0xe0300f).r("ptm_ic3ss", FUNC(ptm6840_device::read)).umask16(0xff00); // 6840PTM on sampled sound board map(0xe03000, 0xe0300f).w(FUNC(mpu4vid_state::ic3ss_vid_w)).umask16(0xff00); // 6840PTM on sampled sound board - map(0xe04000, 0xe0400f).rw(FUNC(mpu4vid_state::bwb_characteriser_r), FUNC(mpu4vid_state::bwb_characteriser_w)).umask16(0x00ff); // CHR ? + map(0xe05000, 0xe05001).noprw(); +} + +void mpu4vid_state::bwbvidoki_68k_map(address_map& map) +{ + bwbvidoki_68k_base_map(map); + + map(0xa00001, 0xa00001).rw(m_ef9369, FUNC(ef9369_device::data_r), FUNC(ef9369_device::data_w)).umask16(0x00ff); + map(0xa00002, 0xa00003).nopr(); // uses a clr instruction on address which generates a dummy read + map(0xa00003, 0xa00003).w(m_ef9369, FUNC(ef9369_device::address_w)).umask16(0x00ff); +} + +// TODO: use actual BT471 device, currently seems to not work when hooked up tho? fails detection? + +uint8_t mpu4vid_state::mpu4_vid_bt_a00004_r(offs_t offset) +{ + // used by software to detect alt palette type? (same value is written prior to this) + return 0xaf; +} + +void mpu4vid_state::mpu4_vid_bt_a00008_w(offs_t offset, uint8_t data) +{ + m_bt_palbase = data; + m_bt_which = 0; +} + +void mpu4vid_state::mpu4_vid_bt_a00002_w(offs_t offset, uint8_t data) +{ + switch (m_bt_which) + { + case 0: m_btpal_r[m_bt_palbase] = data; + case 1: m_btpal_g[m_bt_palbase] = data; + case 2: m_btpal_b[m_bt_palbase] = data; + } + + m_bt_which++; + + if (m_bt_which == 3) + { + m_bt_which = 0; + m_palette->set_pen_color(m_bt_palbase, pal6bit(m_btpal_r[m_bt_palbase]), pal6bit(m_btpal_g[m_bt_palbase]), pal6bit(m_btpal_b[m_bt_palbase])); + m_bt_palbase++; + } +} + +void mpu4vid_state::bwbvidoki_68k_bt471_map(address_map& map) +{ + bwbvidoki_68k_base_map(map); + + map(0xa00002, 0xa00003).w(FUNC(mpu4vid_state::mpu4_vid_bt_a00002_w)).umask16(0xffff); + map(0xa00004, 0xa00005).r(FUNC(mpu4vid_state::mpu4_vid_bt_a00004_r)).umask16(0xffff); + map(0xa00008, 0xa00009).w(FUNC(mpu4vid_state::mpu4_vid_bt_a00008_w)).umask16(0xffff); } /* TODO: Fix up MPU4 map*/ @@ -1362,6 +2033,12 @@ map(0xc000, 0xffff).rom().region("maincpu",0); /* 64k EPROM on board, only this region read */ } +void mpu4vid_state::mpu4_6809_german_map(address_map &map) +{ + mpu4_6809_map(map); + + map(0x4000, 0xbfff).ram(); +} //Sampled sound timer /* @@ -1402,7 +2079,6 @@ int denom2 = denom1 + 0.5f;//need to round up, this gives same precision as chip int freq=num*denom2; - if (freq) { m_msm6376->set_unscaled_clock(freq); @@ -1426,6 +2102,7 @@ mpu4_common(config); + /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(VIDEO_MASTER_CLOCK, (63*8)+(17*8), 0, (63*8), (37*8)+17, 0, (37*8)); @@ -1448,7 +2125,7 @@ PALETTE(config, m_palette).set_entries(ef9369_device::NUMCOLORS); - EF9369(config, "ef9369").set_color_update_callback(FUNC(mpu4vid_state::ef9369_color_update)); + EF9369(config, m_ef9369).set_color_update_callback(FUNC(mpu4vid_state::ef9369_color_update)); PTM6840(config, m_ptm, VIDEO_MASTER_CLOCK / 10); /* 68k E clock */ m_ptm->set_external_clocks(0, 0, 0); @@ -1497,15 +2174,18 @@ m_ptm_ic3ss->set_external_clocks(0, 0, 0); m_ptm_ic3ss->o1_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_c2)); m_ptm_ic3ss->o2_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_c1)); - //m_ptm_ic3ss->o3_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_g1)); - //m_ptm_ic3ss->irq_callback().set(FUNC(mpu4_state::cpu1_ptm_irq)); + m_ptm_ic3ss->o3_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_g1)); - pia6821_device &pia_ic4ss(PIA6821(config, "pia_ic4ss", 0)); - pia_ic4ss.readpb_handler().set(FUNC(mpu4vid_state::pia_gb_portb_r)); - pia_ic4ss.writepa_handler().set(FUNC(mpu4vid_state::pia_gb_porta_w)); - pia_ic4ss.writepb_handler().set(FUNC(mpu4vid_state::pia_gb_portb_w)); - pia_ic4ss.ca2_handler().set(FUNC(mpu4vid_state::pia_gb_ca2_w)); - pia_ic4ss.cb2_handler().set(FUNC(mpu4vid_state::pia_gb_cb2_w)); + PIA6821(config, m_pia_ic4ss, 0); + m_pia_ic4ss->readpb_handler().set(FUNC(mpu4vid_state::pia_gb_portb_r)); + m_pia_ic4ss->writepa_handler().set(FUNC(mpu4vid_state::pia_gb_porta_w)); + m_pia_ic4ss->writepb_handler().set(FUNC(mpu4vid_state::pia_gb_portb_w)); + m_pia_ic4ss->ca2_handler().set(FUNC(mpu4vid_state::pia_gb_ca2_w)); + m_pia_ic4ss->cb2_handler().set(FUNC(mpu4vid_state::pia_gb_cb2_w)); + + okim6376_device &msm6376(OKIM6376(config, "msm6376", 128000)); //Adjusted by IC3 on sound board + msm6376.add_route(0, "lspeaker", 0.5); + msm6376.add_route(1, "rspeaker", 0.5); } void mpu4vid_state::mating(machine_config &config) @@ -1513,12 +2193,9 @@ crmaze(config); vid_oki(config); m_videocpu->set_addrmap(AS_PROGRAM, &mpu4vid_state::mpu4oki_68k_map); +} - okim6376_device &msm6376(OKIM6376(config, "msm6376", 128000)); //Adjusted by IC3 on sound board - msm6376.add_route(0, "lspeaker", 0.5); - msm6376.add_route(1, "rspeaker", 0.5); -} void mpu4vid_state::bwbvid(machine_config &config) { @@ -1526,27 +2203,41 @@ m_videocpu->set_addrmap(AS_PROGRAM, &mpu4vid_state::bwbvid_68k_map); } -void mpu4vid_state::bwbvid5(machine_config &config) +void mpu4vid_state::bwbvid_oki(machine_config &config) +{ + mpu4_vid(config); + m_videocpu->set_addrmap(AS_PROGRAM, &mpu4vid_state::bwbvidoki_68k_map); + vid_oki(config); +} + +void mpu4vid_state::bwbvid_oki_bt471(machine_config &config) { - bwbvid(config); - m_videocpu->set_addrmap(AS_PROGRAM, &mpu4vid_state::bwbvid5_68k_map); + mpu4_vid(config); + m_videocpu->set_addrmap(AS_PROGRAM, &mpu4vid_state::bwbvidoki_68k_bt471_map); + vid_oki(config); - mpu4_common2(config); + config.device_remove("ef9369"); - okim6376_device &msm6376(OKIM6376(config, "msm6376", 128000)); //? - msm6376.add_route(0, "lspeaker", 0.5); - msm6376.add_route(1, "rspeaker", 0.5); + PALETTE(config.replace(), m_palette).set_entries(256); + +} + +void mpu4vid_state::bwbvid_oki_bt471_german(machine_config &config) +{ + bwbvid_oki_bt471(config); + m_maincpu->set_addrmap(AS_PROGRAM, &mpu4vid_state::mpu4_6809_german_map); } + /* Characteriser (CHR) - The question data on the quiz games gets passed through the characterizer, the tables tested at startup are just a + The question data on the quiz games gets passed through the characteriser, the tables tested at startup are just a very specific test with known responses to make sure the device functions properly. Unless there is extra encryption applied to just the question ROMs then the assumptions made here are wrong, because the questions don't decode. Perhaps the address lines for the question ROMS are scrambled somehow to make things decode, but how? - It seems more likely that the Characterizer (PAL) acts as a challenge / response system, but various writes cause + It seems more likely that the Characteriser (PAL) acts as a challenge / response system, but various writes cause 'latching' behavior because if you study the sequence written at startup you can see that the same write value should generate different responses. @@ -1610,7 +2301,7 @@ void mpu4vid_state::vidcharacteriser_4k_lookup_w(offs_t offset, uint8_t data) { - logerror("%04x write to characterizer %02x - %02x\n", m_videocpu->pcbase(), offset, data); + logerror("%04x write to characteriser %02x - %02x\n", m_videocpu->pcbase(), offset, data); if (data == 0x00) // reset? { @@ -1630,7 +2321,7 @@ // hack for v4strike, otherwise it reports questions as invalid, even if they decode properly // is this a secondary security check, or are they mismatched for the version? - // it writes '03' to the characterizer, (the question revision or coincidence?) + // it writes '03' to the characteriser, (the question revision or coincidence?) // but expects 00 back for that check if (m_videocpu->pcbase() == 0x32c4) @@ -1639,7 +2330,7 @@ ret = 0x00; } - logerror("%04x read from characterizer %02x - %02x\n", m_videocpu->pcbase(), offset, ret); + logerror("%04x read from characteriser %02x - %02x\n", m_videocpu->pcbase(), offset, ret); return ret << 2; // 6-bit reads (lower 2 bits unused) } @@ -1909,6 +2600,11 @@ m_current_chr_table = quidgrid_data; } +void mpu4vid_state::init_v4frfact() +{ + mpu4vid_char_cheat(0x4f6); +} + void mpu4vid_state::hack_bwb_startup_protection() { // there's no checksum that we need to fix after this @@ -1932,7 +2628,7 @@ if (matched) { - //printf("boot protection match found at %08x\n", i * 2); + logerror("boot protection match found at %08x\n", i * 2); rom[i + 5] = 0x6618; rom[i + 6] = 0x4E71; @@ -1942,6 +2638,7 @@ } + void mpu4vid_state::init_prizeinv() { m_reels = 0;//currently no hybrid games @@ -1950,11 +2647,83 @@ hack_bwb_startup_protection(); } +/* +TODO: use official Barcrest / BWB letters here, some show them, eg D = protocol / datapak, Y = % Key needed +this is based on header info in a few games, could differ, check! + +offset 0 : Option Byte + +YtSi safD + +D = Protocol / Datapak +f = fixed % +a = arcade +s = switchable (or use offset 1 value) +i = 'irish' +S = special (use offset 2) +t = token +Y = % key needed + +offset 1: price of pay (per-game, used depending on above) + +offset 2: special game type (per-game>) + +---- --rg + +g = Bingo Gala A +r = Bingo Rank R +*/ + + void mpu4vid_state::init_bwbhack() { hack_bwb_startup_protection(); + + + uint8_t* rom = memregion("maincpu")->base(); + int len = memregion("maincpu")->bytes(); + + if (len != 0x10000) + { + logerror("main CPU size is not 0x10000!\n"); + return; + } + + for (int i = 0; i < 0x4000; i++) + { + if ((rom[i] != rom[i + 0x4000]) || + (rom[i] != rom[i + 0x8000]) || + (rom[i] != rom[i + 0xc000])) + logerror("main CPU ROM data not mirroring as expected at %04x!\n", i); + } + + // helper for sorting out sets + uint8_t option = rom[0xc000]; + uint8_t price = rom[0xc001]; + uint8_t special = rom[0xc002]; + + logerror("option byte is %02x\n", option); + logerror("bit 0: Datapak = %d\n", (option >> 0) & 1); + logerror("bit 1: Fixed % = %d\n", (option >> 1) & 1); + logerror("bit 2: Arcade = %d\n", (option >> 2) & 1); + logerror("bit 3: Switchable = %d\n", (option >> 3) & 1); + logerror("bit 4: Irish = %d\n", (option >> 4) & 1); + logerror("bit 5: Special = %d\n", (option >> 5) & 1); + logerror("bit 6: Token = %d\n", (option >> 6) & 1); + logerror("bit 7: Percent Key = %d\n", (option >> 7) & 1); + + if (!((option >> 3) & 1)) + { + logerror("Switchable was not set, so use coinage setting %02x\n", price); + } + + if ((option >> 5) & 1) + { + logerror("Special was set, so use special setting %02x\n", special); + } } + static const bwb_chr_table cybcas_data1[5] = { //Magic num4ber 724A @@ -1977,6 +2746,12 @@ m_current_chr_table = cybcas_data; hack_bwb_startup_protection(); + + // hack out half the startup checks for now until we work out what they're checking! + uint16_t *rom = (uint16_t*)memregion("video")->base(); + + for (int i = 0x1e42; i < 0x1e74; i += 2) + rom[i / 2] = 0x4e71; } @@ -4706,6 +5481,21 @@ ROM_START( v4picdil ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "pcdsf___.a_0", 0x0000, 0x010000, CRC(45a15082) SHA1(d7655722c7ad9f3b1b2663d85287ae185917d677) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "pcd_____.a_1", 0x000001, 0x080000, CRC(0ed561d4) SHA1(899c76d2a2352988a01bece2a229deb934a00892) ) + ROM_LOAD16_BYTE( "pcd_____.a_2", 0x000000, 0x080000, CRC(bffe3863) SHA1(ea6fdcce470e8a50c35f43fd86e39524be2db3a3) ) + ROM_LOAD16_BYTE( "pcd_____.a_3", 0x100001, 0x080000, CRC(3b64a328) SHA1(a9fa9dc30b352388906e6021bc0d1ad7c3a28746) ) + ROM_LOAD16_BYTE( "pcd_____.a_4", 0x100000, 0x080000, CRC(25faba03) SHA1(572aaee3af3b915294ba057b7ceb653dd135098b) ) + ROM_LOAD16_BYTE( "pcd_____.a_5", 0x200001, 0x080000, CRC(275f3c1c) SHA1(1d0f8f7d0388d5072ae404f10b2481153979a217) ) + ROM_LOAD16_BYTE( "pcd_____.a_6", 0x200000, 0x080000, CRC(148ecba0) SHA1(2ae0f5529fa3951025539fe19f4e8fdf10f13374) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + /* none present */ +ROM_END + +ROM_START( v4picdila ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "pcdsf__e.a_0", 0x0000, 0x010000, CRC(0ed1c7af) SHA1(c19ff141fba7fd1f2cf0b152e3c6df61c6b27b46) ) ROM_REGION( 0x800000, "video", 0 ) @@ -4721,6 +5511,25 @@ ROM_END +ROM_START( v4picdilz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pcdsf2_interface_a0.bin", 0x0000, 0x010000, CRC(5e007ac4) SHA1(82fd17da416c29b2e4b75f24bc8d415e57c0e94b)) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "piccadilly_vid_a1_ic15.bin", 0x000000, 0x080000, CRC(22f9ad51) SHA1(f63923e346519833f71a1644d4e504d2f93a173f) ) + ROM_LOAD16_BYTE( "piccadilly_vid_a2_ic7.bin", 0x000001, 0x080000, CRC(6de3bae1) SHA1(c9fae9bb694341b1cca05ae143beb04989326897) ) + ROM_LOAD16_BYTE( "pcd_____.a_3", 0x100001, 0x080000, CRC(3b64a328) SHA1(a9fa9dc30b352388906e6021bc0d1ad7c3a28746) ) + ROM_LOAD16_BYTE( "pcd_____.a_4", 0x100000, 0x080000, CRC(25faba03) SHA1(572aaee3af3b915294ba057b7ceb653dd135098b) ) + ROM_LOAD16_BYTE( "pcd_____.a_5", 0x200001, 0x080000, CRC(275f3c1c) SHA1(1d0f8f7d0388d5072ae404f10b2481153979a217) ) + ROM_LOAD16_BYTE( "pcd_____.a_6", 0x200000, 0x080000, CRC(148ecba0) SHA1(2ae0f5529fa3951025539fe19f4e8fdf10f13374) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "pcdsnd_v1_p1.bin", 0x000000, 0x080000, CRC(01c0bec3) SHA1(a755f939d02500f0a03e399bbf7f842173bf5a71) ) + ROM_LOAD( "pcdsnd_v1_p2.bin", 0x080000, 0x080000, CRC(a9f66e67) SHA1(eba1ff2023356face1d9a6be93417b54a132fe6f) ) + ROM_LOAD( "pcdsnd_v1_p3.bin", 0x100000, 0x080000, BAD_DUMP CRC(d15ea1bd) SHA1(f47e4d901a89ccf83784e582414f3dce08fc4e18) ) // mostly empty, corrupt? + ROM_LOAD( "pcdsnd_v1_p4.bin", 0x180000, 0x080000, CRC(275cdbe0) SHA1(7239d48c4755072a32c237079e623baa95a32593) ) +ROM_END + ROM_START( v4big40 ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -5688,6 +6497,18 @@ /* none present */ ROM_END +ROM_START( v4gldrsh3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "goldrush.bin", 0x0000, 0x010000, CRC(459834db) SHA1(dac9945553567c6bbc4e8ca9054a0b5448bc19aa) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "go_3.1.bin", 0x000000, 0x080000, CRC(5edc8226) SHA1(c231978be89db23c1b1d38307510ef7e2a278492) ) + ROM_LOAD16_BYTE( "go_3.2.bin", 0x000001, 0x080000, CRC(95c10e74) SHA1(73b230e2281d4e2a564f070c752479af2af32757) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + /* none present */ +ROM_END + ROM_START( v4mdicee ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -6062,6 +6883,7 @@ ROM_START( v4mdice5 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "release5_mpu4.rom", 0x0000, 0x010000, NO_DUMP ) + ROM_LOAD( "mdmpu4.bin", 0x0000, 0x010000, CRC(8e712a33) SHA1(e821167c825b151bcde5eb9c63e7d2da04e1166a) ) ROM_REGION( 0x800000, "video", 0 ) // release 5 of Miami Dice based on internal strings ROM_LOAD16_BYTE( "mdv58p1", 0x000001, 0x080000, CRC(3f3fa0d2) SHA1(bb52111bcea5cd404d1e7adf0f3ebca596a251ac) ) @@ -6074,6 +6896,21 @@ ROM_LOAD( "mdsndb", 0x080000, 0x080000, CRC(2233d677) SHA1(a787dc0bafa310df9467e4b8166274288fe94b4c) ) ROM_END +ROM_START( v4mdice6 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "md_26a__.6_0", 0x0000, 0x010000, CRC(1902067a) SHA1(ca46375ad859758bd3182653f2614cea47e46e50) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "md______.8_1", 0x000001, 0x080000, CRC(3f3fa0d2) SHA1(bb52111bcea5cd404d1e7adf0f3ebca596a251ac) ) + ROM_LOAD16_BYTE( "md______.8_2", 0x000000, 0x080000, CRC(14bb6b48) SHA1(97025f0899c325d28ac75c54e81fd425b5002064) ) + ROM_LOAD16_BYTE( "md_6_30", 0x100001, 0x080000, CRC(c1526309) SHA1(c6961813310a3873540c9174db3c7ce2347620d5) ) + ROM_LOAD16_BYTE( "md_6_34", 0x100000, 0x080000, CRC(f6b8cc2f) SHA1(d1022b4a8ab3266dab5401127610c864e6e40a7f) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mdsnda", 0x000000, 0x080000, CRC(18651603) SHA1(c6f7557a82cb49f3f001b43250129d10f4f6ab5a) ) + ROM_LOAD( "mdsndb", 0x080000, 0x080000, CRC(2233d677) SHA1(a787dc0bafa310df9467e4b8166274288fe94b4c) ) +ROM_END + /* Some roms were simply in a set marked as Monte Carlo, but the 2 letter code mn) is the same */ /* The roms were a mixture of @@ -6175,26 +7012,80 @@ ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) ROM_END -//---- no compatible video ROMs +//---- these sets work with either the release b, or release 5 '3 & 4' 68k pair +// v4monteb, v4monteba, v4montebb are set to 'release b' while v4monteba, v4monte5a, v4monte5b are set to 'release 5' +// they require the 'mn_9' roms to not have corrupt text, so those ROMs despite the name are not for 'release 9' +// maybe one of these 68k pairs is hacked? investigate -ROM_START( v4monteh ) +ROM_START( v4monteb ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "mcob8ac", 0x0000, 0x010000, CRC(6dceb28f) SHA1(dc3daee15c25470501ab11e7b34cfef7edf302d4) ) ROM_REGION( 0x800000, "video", 0 ) - ROM_LOAD("video_board_roms", 0x0000, 0x10000, NO_DUMP ) + ROM_LOAD16_BYTE( "mn_9.1.bin", 0x000001, 0x080000, CRC(c0a89d0b) SHA1(22259724119bd1a61b45ba068df61f0cad3b6d17) ) + ROM_LOAD16_BYTE( "mn_9.2.bin", 0x000000, 0x080000, CRC(308a0f80) SHA1(65f5b9286a0300f3f59a16469ffd247af50c1f07) ) + ROM_LOAD16_BYTE( "mn_b3.releaseb.lo", 0x100001, 0x080000, CRC(b6de7ca1) SHA1(944e6c6ee20d187148c7cd4b20119422663780fd) ) + ROM_LOAD16_BYTE( "mn_b4.releaseb.hi", 0x100000, 0x080000, CRC(5b6ff013) SHA1(ea08978ad469a521a6080fb6ab12033c31134a9d) ) ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) ROM_LOAD( "mcosnda.bin", 0x000000, 0x080000, CRC(801ea236) SHA1(531841d6a4d67f502e93f8d74f3b247ccc46208f) ) ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) ROM_END -ROM_START( v4montei ) +ROM_START( v4monteba ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "mcobarc", 0x0000, 0x010000, CRC(f95045dc) SHA1(463af12feed6dfe5f5e23d584c4eac121672918a) ) ROM_REGION( 0x800000, "video", 0 ) - ROM_LOAD("video_board_roms", 0x0000, 0x10000, NO_DUMP ) + ROM_LOAD16_BYTE( "mn_9.1.bin", 0x000001, 0x080000, CRC(c0a89d0b) SHA1(22259724119bd1a61b45ba068df61f0cad3b6d17) ) + ROM_LOAD16_BYTE( "mn_9.2.bin", 0x000000, 0x080000, CRC(308a0f80) SHA1(65f5b9286a0300f3f59a16469ffd247af50c1f07) ) + ROM_LOAD16_BYTE( "mn_b3.releaseb.lo", 0x100001, 0x080000, CRC(b6de7ca1) SHA1(944e6c6ee20d187148c7cd4b20119422663780fd) ) + ROM_LOAD16_BYTE( "mn_b4.releaseb.hi", 0x100000, 0x080000, CRC(5b6ff013) SHA1(ea08978ad469a521a6080fb6ab12033c31134a9d) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mcosnda.bin", 0x000000, 0x080000, CRC(801ea236) SHA1(531841d6a4d67f502e93f8d74f3b247ccc46208f) ) + ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) +ROM_END + +ROM_START( v4montebb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mnb51020", 0x0000, 0x010000, CRC(c9ec7217) SHA1(006a70fb4050d726ae80678dc49afbd8c2c0c124) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "mn_9.1.bin", 0x000001, 0x080000, CRC(c0a89d0b) SHA1(22259724119bd1a61b45ba068df61f0cad3b6d17) ) + ROM_LOAD16_BYTE( "mn_9.2.bin", 0x000000, 0x080000, CRC(308a0f80) SHA1(65f5b9286a0300f3f59a16469ffd247af50c1f07) ) + ROM_LOAD16_BYTE( "mn_b3.releaseb.lo", 0x100001, 0x080000, CRC(b6de7ca1) SHA1(944e6c6ee20d187148c7cd4b20119422663780fd) ) + ROM_LOAD16_BYTE( "mn_b4.releaseb.hi", 0x100000, 0x080000, CRC(5b6ff013) SHA1(ea08978ad469a521a6080fb6ab12033c31134a9d) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mcosnda.bin", 0x000000, 0x080000, CRC(801ea236) SHA1(531841d6a4d67f502e93f8d74f3b247ccc46208f) ) + ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) +ROM_END + +ROM_START( v4monte5 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mcob8ac", 0x0000, 0x010000, CRC(6dceb28f) SHA1(dc3daee15c25470501ab11e7b34cfef7edf302d4) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "mn_9.1.bin", 0x000001, 0x080000, CRC(c0a89d0b) SHA1(22259724119bd1a61b45ba068df61f0cad3b6d17) ) + ROM_LOAD16_BYTE( "mn_9.2.bin", 0x000000, 0x080000, CRC(308a0f80) SHA1(65f5b9286a0300f3f59a16469ffd247af50c1f07) ) + ROM_LOAD16_BYTE( "mn_b3.release5.lo", 0x100001, 0x080000, CRC(a38cfb78) SHA1(3af87c03890bf02dc5bf222fab4ec1326c98ef94) ) + ROM_LOAD16_BYTE( "mn_b4.release5.hi", 0x100000, 0x080000, CRC(ae260cda) SHA1(7139f61c08d2c9f9fdc7314bd89776349c5c1b60) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mcosnda.bin", 0x000000, 0x080000, CRC(801ea236) SHA1(531841d6a4d67f502e93f8d74f3b247ccc46208f) ) + ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) +ROM_END + +ROM_START( v4monte5a ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mcobarc", 0x0000, 0x010000, CRC(f95045dc) SHA1(463af12feed6dfe5f5e23d584c4eac121672918a) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "mn_9.1.bin", 0x000001, 0x080000, CRC(c0a89d0b) SHA1(22259724119bd1a61b45ba068df61f0cad3b6d17) ) + ROM_LOAD16_BYTE( "mn_9.2.bin", 0x000000, 0x080000, CRC(308a0f80) SHA1(65f5b9286a0300f3f59a16469ffd247af50c1f07) ) + ROM_LOAD16_BYTE( "mn_b3.release5.lo", 0x100001, 0x080000, CRC(a38cfb78) SHA1(3af87c03890bf02dc5bf222fab4ec1326c98ef94) ) + ROM_LOAD16_BYTE( "mn_b4.release5.hi", 0x100000, 0x080000, CRC(ae260cda) SHA1(7139f61c08d2c9f9fdc7314bd89776349c5c1b60) ) ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) ROM_LOAD( "mcosnda.bin", 0x000000, 0x080000, CRC(801ea236) SHA1(531841d6a4d67f502e93f8d74f3b247ccc46208f) ) @@ -6202,18 +7093,23 @@ ROM_END -ROM_START( v4montej ) +ROM_START( v4monte5b ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "mnb51020", 0x0000, 0x010000, CRC(c9ec7217) SHA1(006a70fb4050d726ae80678dc49afbd8c2c0c124) ) ROM_REGION( 0x800000, "video", 0 ) - ROM_LOAD("video_board_roms", 0x0000, 0x10000, NO_DUMP ) + ROM_LOAD16_BYTE( "mn_9.1.bin", 0x000001, 0x080000, CRC(c0a89d0b) SHA1(22259724119bd1a61b45ba068df61f0cad3b6d17) ) + ROM_LOAD16_BYTE( "mn_9.2.bin", 0x000000, 0x080000, CRC(308a0f80) SHA1(65f5b9286a0300f3f59a16469ffd247af50c1f07) ) + ROM_LOAD16_BYTE( "mn_b3.release5.lo", 0x100001, 0x080000, CRC(a38cfb78) SHA1(3af87c03890bf02dc5bf222fab4ec1326c98ef94) ) + ROM_LOAD16_BYTE( "mn_b4.release5.hi", 0x100000, 0x080000, CRC(ae260cda) SHA1(7139f61c08d2c9f9fdc7314bd89776349c5c1b60) ) ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) ROM_LOAD( "mcosnda.bin", 0x000000, 0x080000, CRC(801ea236) SHA1(531841d6a4d67f502e93f8d74f3b247ccc46208f) ) ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) ROM_END +//---- no compatible video ROMs + ROM_START( v4montek ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "mn_", 0x0000, 0x010000, CRC(768bcc18) SHA1(d895f5207145a9d7b93b6b88fefc5be5ccf3eb72) ) @@ -6844,6 +7740,21 @@ ROM_LOAD( "mcosndb.bin", 0x080000, 0x080000, CRC(fcbad433) SHA1(a8cd32ca5a17e3c35701a7eac3e9ef741aa04105) ) ROM_END +ROM_START( v4monteger ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mnd-a0_interface.bin", 0x0000, 0x010000, CRC(157e7ee4) SHA1(7a2d2caefd6ff609b8059d0ed0fd7ef94d8d36bc) ) + + ROM_REGION( 0x800000, "video", 0 ) + ROM_LOAD16_BYTE( "mnd-a2_vid.bin", 0x000000, 0x080000, CRC(220f3a14) SHA1(fdfdc41c62330d77735d1840a4a7d429b3257d07) ) + ROM_LOAD16_BYTE( "mnd-a1_vid.bin", 0x000001, 0x080000, CRC(b7b28d00) SHA1(0ae4bc759472f58cb738d7e7c8713a54f4e13686) ) + ROM_LOAD16_BYTE( "mnd-a4_vid.bin", 0x100000, 0x080000, CRC(5fa9d451) SHA1(539438d237b869e97176d031f0014f3e33374eed) ) + ROM_LOAD16_BYTE( "mnd-a3_vid.bin", 0x100001, 0x080000, CRC(5e3a95a4) SHA1(305a7f8b1c5072d86d6f381501886587a2e186ea) ) + + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mnd-1a-snd.bin", 0x000000, 0x080000, CRC(98bcf6fb) SHA1(b2c0d305f64be10f5ff40518ebb1b66c44559578) ) + ROM_LOAD( "mnd-1b-snd.bin", 0x080000, 0x080000, CRC(df2118b4) SHA1(6126baff9dfef7c573e3f77847ea58bdc242fdc2) ) +ROM_END + ROM_START( v4ovrmn3 ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -8089,31 +9000,31 @@ //Year is a guess, based on the use of the 'Coin Man' logo GAME( 1996?,v4mate, v4bios, mating, mating, mpu4vid_state, init_mating, ROT0, "Barcrest","The Mating Game (v0.4) (MPU4 Video)",GAME_FLAGS_OK )//SWP 0.2 -GAME( 1996?,v4mated, v4mate, mating, mating, mpu4vid_state, init_mating, ROT0, "Barcrest","The Mating Game (v0.4, Datapak) (MPU4 Video)",GAME_FLAGS )//SWP 0.2D +GAME( 1996?,v4mated, v4mate, mating, mating, mpu4vid_state, init_mating, ROT0, "Barcrest","The Mating Game (v0.4, Datapak) (MPU4 Video)",GAME_FLAGS_OK )//SWP 0.2D /* Quiz games - Questions decoded */ GAMEL( 1989, v4addlad, v4bios, mpu4_vid_strike, adders, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Adders and Ladders (v2.1) (MPU4 Video)",GAME_FLAGS_OK,layout_v4addlad ) -GAMEL( 1989, v4addladd, v4addlad, mpu4_vid_strike, adders, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Adders and Ladders (v2.1d) (MPU4 Video)",GAME_FLAGS,layout_v4addlad ) +GAMEL( 1989, v4addladd, v4addlad, mpu4_vid_strike, adders, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Adders and Ladders (v2.1d) (MPU4 Video)",GAME_FLAGS_OK,layout_v4addlad ) GAMEL( 1989, v4addlad20, v4addlad, mpu4_vid_strike, adders, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Adders and Ladders (v2.0) (MPU4 Video)",GAME_FLAGS_OK,layout_v4addlad ) GAMEL( 199?, v4strike, v4bios, mpu4_vid_strike, strike, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Strike it Lucky (v0.5) (MPU4 Video)",GAME_FLAGS_OK,layout_v4strike ) -GAMEL( 199?, v4striked, v4strike, mpu4_vid_strike, strike, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Strike it Lucky (v0.5, Datapak) (MPU4 Video)",GAME_FLAGS,layout_v4strike ) +GAMEL( 199?, v4striked, v4strike, mpu4_vid_strike, strike, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Strike it Lucky (v0.5, Datapak) (MPU4 Video)",GAME_FLAGS_OK,layout_v4strike ) GAMEL( 199?, v4strike2, v4strike, mpu4_vid_strike, strike, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Strike it Lucky (v0.53) (MPU4 Video)",GAME_FLAGS_OK,layout_v4strike ) // The '3' is likely a machine type, not a 'version', 68k Pair ROM doesn't change -GAMEL( 199?, v4strike2d, v4strike, mpu4_vid_strike, strike, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Strike it Lucky (v0.53, Datapak) (MPU4 Video)",GAME_FLAGS,layout_v4strike ) +GAMEL( 199?, v4strike2d, v4strike, mpu4_vid_strike, strike, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Strike it Lucky (v0.53, Datapak) (MPU4 Video)",GAME_FLAGS_OK,layout_v4strike ) GAMEL( 199?, v4barqst, v4bios, mpu4_vid_strike, barquest, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Barquest (v2.6) (MPU4 Video)",GAME_FLAGS_OK,layout_v4barqst ) -GAMEL( 199?, v4barqstd, v4barqst, mpu4_vid_strike, barquest, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Barquest (v2.6d) (MPU4 Video)",GAME_FLAGS,layout_v4barqst ) +GAMEL( 199?, v4barqstd, v4barqst, mpu4_vid_strike, barquest, mpu4vid_state, init_strikeit, ROT0, "Barcrest","Barquest (v2.6d) (MPU4 Video)",GAME_FLAGS_OK,layout_v4barqst ) /* Quiz games - Questions not decoded properly on games below (no complete characteriser table) */ -GAME( 199?, v4turnov, v4bios, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v2.3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4turnova, v4turnov, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v2.33) (MPU4 Video)",GAME_FLAGS ) // the 2nd 3 is likely be a machine type, because much like Strike It Lucky and Wize Move the pairing 68k ROM doesn't change -GAME( 199?, v4turnovc, v4turnov, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v2.3O) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4turnovd, v4turnov, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v?.?) (MPU4 Video)",GAME_FLAGS ) // only have a single program ROM +GAME( 199?, v4turnov, v4bios, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v2.3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4turnova, v4turnov, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v2.33) (MPU4 Video)",GAME_FLAGS ) // the 2nd 3 is likely be a machine type, because much like Strike It Lucky and Wize Move the pairing 68k ROM doesn't change +GAME( 199?, v4turnovc, v4turnov, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v2.3O) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4turnovd, v4turnov, mpu4_vid, turnover, mpu4vid_state, init_turnover, ROT0, "Barcrest","Turnover (v?.?) (MPU4 Video)",GAME_FLAGS ) // only have a single program ROM -GAME( 1990, v4skltrk, v4bios, mpu4_vid, skiltrek, mpu4vid_state, init_skiltrek, ROT0, "Barcrest","Skill Trek (v1.1) (MPU4 Video, set 1)",GAME_FLAGS ) // 10 pound max -GAME( 1990, v4skltrka, v4skltrk, mpu4_vid, skiltrek, mpu4vid_state, init_skiltrek, ROT0, "Barcrest","Skill Trek (v1.1) (MPU4 Video, set 2)",GAME_FLAGS ) // 12 pound max +GAME( 1990, v4skltrk, v4bios, mpu4_vid, skiltrek, mpu4vid_state, init_skiltrek, ROT0, "Barcrest","Skill Trek (v1.1) (MPU4 Video, set 1)",GAME_FLAGS ) // 10 pound max +GAME( 1990, v4skltrka, v4skltrk, mpu4_vid, skiltrek, mpu4vid_state, init_skiltrek, ROT0, "Barcrest","Skill Trek (v1.1) (MPU4 Video, set 2)",GAME_FLAGS ) // 12 pound max GAME( 1989, v4tmach, v4bios, mpu4_vid, skiltrek, mpu4vid_state, init_timemchn, ROT0, "Barcrest","Time Machine (v2.0) (Issue 3 Questions) (MPU4 Video)",GAME_FLAGS ) GAME( 1989, v4tmachd, v4tmach, mpu4_vid, skiltrek, mpu4vid_state, init_timemchn, ROT0, "Barcrest","Time Machine (v2.0) (Issue 3 Questions) (Datapak) (MPU4 Video)",GAME_FLAGS ) @@ -8154,15 +9065,14 @@ /* Games below are newer BWB games and use their own game and revision specific MPU4 base ROMs (which must be correctly paired with video ROMs of the same revision) and sometimes differing hardware setups */ /* ---------------------------------------------------------------- */ -// "payout shelf unplugged", can be bypassed by opening door -GAME( 1991, v4psi, 0, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 20\" Version 1.1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1991, v4psid, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 20\" Version 1.1) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAMEL( 1991, v4psi, 0, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 20\" Version 1.1) (MPU4 Video)",GAME_FLAGS,layout_v4psi ) +GAMEL( 1991, v4psid, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 20\" Version 1.1) (Datapak) (MPU4 Video)",GAME_FLAGS,layout_v4psi ) // the 68k ROMs are bad on these (one missing) -GAME( 1991, v4psi14, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 14\" Version 1.1, set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1991, v4psi14a, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 14\" Version 1.1, set 2) (MPU4 Video)",GAME_FLAGS ) +GAMEL( 1991, v4psi14, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 14\" Version 1.1, set 1) (MPU4 Video)",GAME_FLAGS,layout_v4psi ) +GAMEL( 1991, v4psi14a, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB", u8"Prize Space Invaders (BWB IN2, £20, 50p/30p Play, 14\" Version 1.1, set 2) (MPU4 Video)",GAME_FLAGS,layout_v4psi ) // these show BWB and Barcrest (older game release 'INV1' but higher version of it) -GAME( 1991, v4psibc, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB / Barcrest","Prize Space Invaders (BWB INV1, 50p/30p Play, Version 1.2) (MPU4 Video)",GAME_FLAGS_OK ) -GAME( 1991, v4psibcd, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB / Barcrest","Prize Space Invaders (BWB INV1, 50p/30p Play, Version 1.2) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAMEL( 1991, v4psibc, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB / Barcrest","Prize Space Invaders (BWB INV1, 50p/30p Play, Version 1.2) (MPU4 Video)",GAME_FLAGS_OK,layout_v4psi ) +GAMEL( 1991, v4psibcd, v4psi, bwbvid, v4psi, mpu4vid_state, init_prizeinv, ROT0, "BWB / Barcrest","Prize Space Invaders (BWB INV1, 50p/30p Play, Version 1.2) (Datapak) (MPU4 Video)",GAME_FLAGS_OK,layout_v4psi ) // Tetris games, these were all sold as different machines so are not set as clones @@ -8170,17 +9080,17 @@ GAME( 1989, v4tetrs1, v4tetrs, bwbvid, v4tetris, mpu4vid_state, init_bwbhack, ROT0, "BWB / Barcrest","Tetris Payout (BWB TET1 Version 2.2, set 2) (MPU4 Video)",GAME_FLAGS_OK ) // Blox is an later version of Payout Tetris, without Tetris license? (SJM = Stuart McArthur?) GAME( 1990, v4blox, 0, bwbvid, v4tetris, mpu4vid_state, init_bwbhack, ROT0, "BWB / Barcrest","Blox (SJM BLOX, 50p/20p Play, Version 2.0) (MPU4 Video)",GAME_FLAGS_OK ) -GAME( 1990, v4bloxd, v4blox, bwbvid, v4tetris, mpu4vid_state, init_bwbhack, ROT0, "BWB / Barcrest","Blox (SJM BLOX, 50p/20p Play, Version 2.0) (Datapak) (MPU4 Video)",GAME_FLAGS ) -// Prize Tetris / Bullion Blox have quite different attract presentaiton to the above +GAME( 1990, v4bloxd, v4blox, bwbvid, v4tetris, mpu4vid_state, init_bwbhack, ROT0, "BWB / Barcrest","Blox (SJM BLOX, 50p/20p Play, Version 2.0) (Datapak) (MPU4 Video)",GAME_FLAGS_OK ) +// Prize Tetris / Bullion Blox have quite different attract presentation to the above GAME( 1994, v4pztet, 0, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (MPU4 Video)",GAME_FLAGS_OK ) -GAME( 1994, v4pzteta, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4pzteta, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (Datapak) (MPU4 Video)",GAME_FLAGS_OK ) GAME( 1994, v4pztetb, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (Showcase) (MPU4 Video)",GAME_FLAGS_OK ) // screen telling you to exchange tickets for prizes in the 'showcase' during attract -GAME( 1994, v4pztetc, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (Showcase) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4pztetc, v4pztet, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Prize Tetris (BWB) (Showcase) (Datapak) (MPU4 Video)",GAME_FLAGS_OK ) // this appears to be a version of Prize Tetris without the Tetris license. These don't have proper alarms, eg coin1 stuck is 'undefined' -GAME( 1994, v4bulblx, 0, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1994, v4bulblxb, v4bulblx, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1994, v4bulblxa, v4bulblx, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1994, v4bulblxc, v4bulblx, bwbvid, v4pztet, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblx, 0, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblxb, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblxa, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1994, v4bulblxc, v4bulblx, bwbvid, v4bulblx, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Bullion Blox (BWB) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) // doesn't have payout so no shelf error (no payout on prototype?), runs with door closed @@ -8188,348 +9098,360 @@ // boot and run -GAME( 199?, v4redhtp, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpk, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpl, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpm, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpo, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpp, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 4) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpq, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 5) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpn, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpr, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtps, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpx, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpt, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpu, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpw, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpy, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 4) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpz, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 5) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpv, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpaa, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpb, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpg, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpc, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpd, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpf, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpi, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 4) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtph, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 5) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpe, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpj, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpab, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fxed, All-Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4redhtpa, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtp, 0, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpk, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpl, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpp, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpm, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpo, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpq, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpn, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpr, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Fixed, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtps, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpx, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpt, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpy, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpu, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpw, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpz, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpv, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpaa, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpb, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpg, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpc, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 1, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtph, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 2, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpd, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpf, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpi, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpe, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpj, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fixed, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpab, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 10p Fxed, All-Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpa, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 3, 20p Switchable to 10p, All - Cash) (MPU4 Video)",GAME_FLAGS ) // 'version 1.9' 68k ROMs - different numbering format? -GAME( 199?, v4redhtparc,v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Arcade, Cash+Tokens, 1993 Awards, 20p Fixed, Version 1.9) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtparc,v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Arcade, Cash+Tokens, 1993 Awards, 20p Fixed, Version 1.9) (MPU4 Video)",GAME_FLAGS ) // release 2 68k ROMs -GAME( 1993, v4redhtp2, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copyright, 5p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1993, v4redhtp2a, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1993, v4redhtp2b, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1993, v4redhtp2c, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1993, v4redhtp2e, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 1993, v4redhtp2f, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak) (set 4) (MPU4 Video)",GAME_FLAGS ) -GAME( 1993, v4redhtp2d, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1993, v4redhtp2g, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copyright, 5p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2a, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2b, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2e, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2c, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2f, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2d, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1993, v4redhtp2g, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1993 copryight, 5p Fixed, Cash+Token, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) // this is older despite still being 'release 2' -GAME( 1992, v4redhtp2z, v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1992 copyright, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 1992, v4redhtp2z, v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (Release 2, 1992 copyright, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) // no matching 68k ROMs for this one -GAME( 199?, v4redhtpunk,v4redhtp, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (unknown release) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4redhtpunk,v4redhtp, bwbvid, v4redhtp, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Poker (unknown release) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bubbnk, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bubbnkb, v4bubbnk, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bubbnkc, v4bubbnk, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bubbnkd, v4bubbnk, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bubbnka, v4bubbnk, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4ovrmn3, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4ovrmn3a, v4ovrmn3, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4ovrmn3b, v4ovrmn3, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4ovrmn3c, v4ovrmn3, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4ovrmn3d, v4ovrmn3, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4mazbel, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Mazooma Belle (v2.5 DY, S/Site, Cash+Token, Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4mazbel15, v4mazbel, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Mazooma Belle (v1.5) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4mazbel15a,v4mazbel, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Mazooma Belle (v1.5) (set 2) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4rhmaz, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4, Cash+Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmaza, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 10p Fixed, Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazb, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 10p Fixed, Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazc, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazd, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) // B -GAME( 199?, v4rhmaze, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) // BL -GAME( 199?, v4rhmazf, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed, Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazg, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazh, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Switchable to 10p, Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazi, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Switchable to 10p, Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazj, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 20p Switchable to 10p, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4rhmazk, v4rhmaz, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 C, Cash+Token, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4shpwnd, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndi, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwnde, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndf, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndh, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndg, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwnda, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndb, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndc, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndd, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndj, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndk, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndl, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4shpwndm, v4shpwnd, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token, % Key) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4sixx, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxa, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxe, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, Cash+Token) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxb, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxd, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxf, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxc, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxg, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxh, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxi, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxj, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxk, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxl, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Switchable to 10p, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sixxm, v4sixx, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","6-X (BWB) (Release 3, 20p Switchable to 10p, All - Cash, Datapak) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4cshinf, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfd, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfg, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfe, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfi, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfk, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfh, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Showcase) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinff, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Showcase, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfj, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Showcase, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfl, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfm, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfr, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfo, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfp, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfs, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfn, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Showcase) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfq, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfu, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfw, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, All - Cash, Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfb, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 10p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinfa, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 5p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bubbnk, 0, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bubbnkb, v4bubbnk, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bubbnkc, v4bubbnk, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bubbnkd, v4bubbnk, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bubbnka, v4bubbnk, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Bubbly Bonk (v4.0?) (20p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4ovrmn3, 0, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4ovrmn3a, v4ovrmn3, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4ovrmn3b, v4ovrmn3, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4ovrmn3c, v4ovrmn3, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4ovrmn3d, v4ovrmn3, bwbvid, v4bubbnk, mpu4vid_state, init_bwbhack, ROT0, "BWB","Over Moon Pt3 (BWB) (20p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4mazbel, 0, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Mazooma Belle (v2.5 DY, S/Site, Cash+Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4mazbel15, v4mazbel, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Mazooma Belle (v1.5, Arcade, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4mazbel15a,v4mazbel, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Mazooma Belle (v1.5 DY, Arcade, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4rhmaz, 0, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4, Cash+Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmaza, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 10p Fixed, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazb, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 10p Fixed, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazc, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazd, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed, Datapak, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) // B (Data Port failure on first boot?) +GAME( 199?, v4rhmaze, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed, Datapak, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) // BL (Data Port failure on first boot?) +GAME( 199?, v4rhmazf, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazg, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazh, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Switchable to 10p, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazi, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Switchable to 10p, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazj, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 20p Switchable to 10p, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4rhmazk, v4rhmaz, bwbvid, v4mazbel, mpu4vid_state, init_bwbhack, ROT0, "BWB","Red Hot Mazooma Belle (BWB) (Version 1.4 C, Cash+Token, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4shpwnd, 0, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndi, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwnde, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndf, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndh, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndg, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Fixed, Cash + Special BWB Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwnda, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndb, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndc, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndd, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 10p Fixed, Cash + Special BWB Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndj, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndk, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndl, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4shpwndm, v4shpwnd, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB","Shop Window (v2.0) (Release 2, 20p Switchable to 10p, Cash + Special BWB Token, % Key) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4sixx, 0, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxa, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxe, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, Cash+Token) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxb, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxd, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxf, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, Cash+Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxc, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxg, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxh, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxi, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxj, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Switchable to 10p, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxk, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxl, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Switchable to 10p, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sixxm, v4sixx, bwbvid, v4shpwnd, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"£6-X (BWB) (Release 3, 20p Switchable to 10p, All - Cash, Datapak) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4cshinf, 0, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfd, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfg, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfe, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfk, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfi, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfh, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Showcase) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinff, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Showcase, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfj, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, Showcase, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfl, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Fixed, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfm, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfr, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfp, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfs, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfo, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Datapak, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfn, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, Showcase) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfq, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, Cash+Token, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfu, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfw, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 20p Switchable 20p/10p/5p, All - Cash, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfb, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 10p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinfa, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 4, 5p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) // no 68k program is dumped for Release 3 -GAME( 199?, v4cshinf3, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 3) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4cshinf3a, v4cshinf, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 3) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinf3, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 3) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cshinf3a, v4cshinf, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Cash Inferno (BWB) (Release 3) (set 2) (MPU4 Video)",GAME_FLAGS ) + // the onscreen 'version' display doesn't quite align with the labels, 'DY' seems to be represented as 'B' on the labels, rather than the individual flags? // the labels seem closer to the Barcrest standard used on MPU4 fruit machines -GAME( 199?, v4sunbst, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbsta, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstb, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash + Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstc, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstd, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstk, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) // BT -GAME( 199?, v4sunbste, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) // B -GAME( 199?, v4sunbstf, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) // BL -GAME( 199?, v4sunbstg, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) // D -GAME( 199?, v4sunbsth, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) // DL -GAME( 199?, v4sunbsti, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 20p Fixed, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstj, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstl, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Switchable to 10p) (set 1) (MPU4 Video)",GAME_FLAGS ) // XC -GAME( 199?, v4sunbstm, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Switchable to 10p) (set 2) (MPU4 Video)",GAME_FLAGS ) // XC L -GAME( 199?, v4sunbstn, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbsto, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Switchable to 10p (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstp, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstq, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 20p Switchable to 10p, % Key) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstr, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 C, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbsts, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 C, 1993 Awards, 20p Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstt, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 C, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4sunbstu, v4sunbst, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 IC, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4bigfrt, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bigfrta, v4bigfrt, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bigfrtb, v4bigfrt, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4bigfrtc, v4bigfrt, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (set 4) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 1996, v4reno, 0, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, All - Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoa, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, All - Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renom, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoe, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoi, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renol, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoc, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renog, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renok, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renod, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoh, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renof, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 1) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoj, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 2) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoo, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 25p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renon, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 25p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renoq, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/25p, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renop, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/25p, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renob, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renos, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renou, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renor, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (Showcase) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1996, v4renot, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (Showcase) (set 2) (MPU4 Video)",GAME_FLAGS ) +// gfx look wrong in test mode, uses BT chip? +GAME( 199?, v4sunbst, 0, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbsta, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 10p Fixed, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstb, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash + Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstc, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstd, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstk, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) // BT +GAME( 199?, v4sunbste, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed, % Key) (set 1) (MPU4 Video)",GAME_FLAGS ) // B +GAME( 199?, v4sunbstf, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Fixed, % Key) (set 2) (MPU4 Video)",GAME_FLAGS ) // BL +GAME( 199?, v4sunbstg, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) // D +GAME( 199?, v4sunbsth, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) // DL +GAME( 199?, v4sunbsti, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 20p Fixed, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstj, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstl, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Switchable to 10p) (set 1) (MPU4 Video)",GAME_FLAGS ) // XC +GAME( 199?, v4sunbstm, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4, Cash+Token, 1993 Awards, 20p Switchable to 10p) (set 2) (MPU4 Video)",GAME_FLAGS ) // XC L +GAME( 199?, v4sunbstn, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 DY, Cash+Token, 1993 Awards, 20p Switchable to 10p, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbsto, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Switchable to 10p (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstp, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 D, Cash+Token, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstq, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 Y, Cash+Token, 1993 Awards, 20p Switchable to 10p, % Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstr, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 C, 1993 Awards, 10p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbsts, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 C, 1993 Awards, 20p Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstt, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 C, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4sunbstu, v4sunbst, bwbvid, v4cshinf, mpu4vid_state, init_bwbhack, ROT0, "BWB","Sunburst (BWB) (Version 1.4 IC, 1993 Awards, 20p Switchable to 10p) (MPU4 Video)",GAME_FLAGS ) + +//gfx look wrong in test mode, uses BT chip? +GAME( 199?, v4bigfrt, 0, bwbvid, v4bigfrt, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bigfrta, v4bigfrt, bwbvid, v4bigfrt, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bigfrtb, v4bigfrt, bwbvid, v4bigfrt, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4bigfrtc, v4bigfrt, bwbvid, v4bigfrt, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big Fruits (v2.0?) (% Key) (MPU4 Video)",GAME_FLAGS ) + + +//gfx look wrong in test mode, uses BT chip? +GAME( 1996, v4reno, 0, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, All - Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoa, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, All - Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renom, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoe, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoi, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renol, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoc, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renog, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renok, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) // gives a Data Port error first itme? +GAME( 1996, v4renod, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoh, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renof, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 1) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoj, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Fixed, Cash+Token) (Showcase) (set 2) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoo, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 25p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renon, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 25p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renoq, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/25p, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renop, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/25p, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renob, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renos, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renou, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renor, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (Showcase) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4renot, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release A, 20p Switchable 20p/10p/5p, Cash+Token) (Showcase) (set 2) (MPU4 Video)",GAME_FLAGS ) // older 68k version -GAME( 1996, v4reno8, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release 8, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4reno8, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release 8, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) // 68k ROMs below have no matching base roms -GAME( 1996, v4reno7, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release 7) (MPU4 Video)",GAME_FLAGS ) // no base ROM -GAME( 1996, v4reno5, v4reno, bwbvid5, bwbvid, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release 5) (MPU4 Video)",GAME_FLAGS ) // no base ROM +GAME( 1996, v4reno7, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release 7) (MPU4 Video)",GAME_FLAGS ) // no base ROM +GAME( 1996, v4reno5, v4reno, bwbvid_oki, v4reno, mpu4vid_state, init_prizeinv, ROT0, "BWB","Reno Reels (Release 5) (MPU4 Video)",GAME_FLAGS ) // no base ROM -// v4big40 sets black screen after the initial boot, are they complete? -GAME( 199?, v4big40, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40a, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40b, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40c, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 4) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40d, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Data) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40e, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Data) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40g, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Standard) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40h, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Standard) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40k, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40i, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data + %-Key) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40j, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data + %-Key) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4big40f, v4big40, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data + %-Key + OCDM) (MPU4 Video)",GAME_FLAGS ) - - -// v4dbltak sets black screen after the initial boot, are they complete? -GAME( 199?, v4dbltak, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Double Take (BWB) (Release 4, Arcade Standard) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4dbltaka, v4dbltak, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Double Take (BWB) (Release 4, Arcade Data) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4dbltakb, v4dbltak, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Double Take (BWB) (Release 4, S_Site Data + %-Key) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4gldrsh, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, All - Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrsht, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, All - Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshk, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshl, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 25p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshm, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 25p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshn, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/25p, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrsho, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/25p, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshu, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, All - Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshc, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshd, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrsha, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshf, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshb, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshg, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshe, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshj, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshh, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshi, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshp, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshq, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Showcase) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshr, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Datapak) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4gldrshs, v4gldrsh, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Showcase) (Datapak) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 199?, v4timebn, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4timebna, v4timebn, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4timebnc, v4timebn, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4timebnb, v4timebn, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4timebnd, v4timebn, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4timebne, v4timebn, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) - - -// Release D -GAME( 199?, v4monte, 0, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Switchable, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montea, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Switchable, £10 All Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montee, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Switchable, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monted, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Fixed, £10 All Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteg, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 25p Fixed, £10 All Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montec, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release D, Arcade Special, 20p Fixed, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) -// Release 9 -GAME( 199?, v4monte9, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9a, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9e, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9b, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9f, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, £10 All Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9n, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, £10 All Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9j, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, £10 All Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9k, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, £10 All Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9l, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 25p Fixed, £10 All Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9m, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 25p Fixed, £10 All Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9o, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9i, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9c, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9d, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9h, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monte9g, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40, 0, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40a, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40b, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40c, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Standard) (set 4) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40d, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Data) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40e, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (Arcade Data) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40g, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Standard) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40h, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Standard) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40k, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40i, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data + %-Key) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40j, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data + %-Key) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1996, v4big40f, v4big40, bwbvid_oki_bt471, v4big40, mpu4vid_state, init_bwbhack, ROT0, "BWB","Big 40 Poker (BWB) (S_Site Data + %-Key + OCDM) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 1997, v4dbltak, 0, bwbvid_oki_bt471, v4dbltak, mpu4vid_state, init_bwbhack, ROT0, u8"BWB","Double Take (BWB) (Release 4, Arcade Standard, 20p/25p Stake Key, £5/£10/£15 Prize Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 1997, v4dbltaka, v4dbltak, bwbvid_oki_bt471, v4dbltak, mpu4vid_state, init_bwbhack, ROT0, u8"BWB","Double Take (BWB) (Release 4, Arcade Data, 20p/25p Stake Key, £5/£10/£15 Prize Key) (MPU4 Video)",GAME_FLAGS ) +GAME( 1997, v4dbltakb, v4dbltak, bwbvid_oki_bt471, v4dbltak_perc,mpu4vid_state, init_bwbhack, ROT0, u8"BWB","Double Take (BWB) (Release 4, S_Site Data, 20p/25p Stake Key, £5/£10/£15 Prize Key, % Key) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4gldrsh, 0, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, All - Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrsht, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, All - Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshk, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshl, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 25p Fixed, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshm, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 25p Fixed, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshn, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/25p, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrsho, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/25p, All - Cash) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshu, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, All - Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshc, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshd, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrsha, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshf, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshb, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshg, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshe, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshj, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Showcase) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshh, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshi, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, 20p Fixed, Cash+Token) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshp, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshq, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Showcase) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshr, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4gldrshs, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 8, Switchable 20p/10p/5p, Cash+Token) (Showcase) (Datapak) (MPU4 Video)",GAME_FLAGS ) + +GAME( 1994, v4gldrsh3, v4gldrsh, bwbvid, v4reno, mpu4vid_state, init_bwbhack, ROT0, "BWB","Gold Rush (BWB) (Release 3, 20p Fixed, Cash+Token) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 199?, v4timebn, 0, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4timebna, v4timebn, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4timebnc, v4timebn, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4timebnb, v4timebn, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (Datapak) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4timebnd, v4timebn, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (Datapak) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4timebne, v4timebn, bwbvid_oki, v4timebn, mpu4vid_state, init_bwbhack, ROT0, "BWB","Time Bandit (BWB) (Release 1, 20p Fixed, Cash + Tokens) (Datapak) (set 3) (MPU4 Video)",GAME_FLAGS ) + + +// 'Release D' +GAME( 199?, v4monte, 0, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Switchable, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montea, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Switchable, £10 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montee, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Switchable, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monted, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 20p Fixed, £10 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteg, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release D, S/Site Standard, 25p Fixed, £10 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montec, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release D, Arcade Special, 20p Fixed, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) +// 'Release 9' +GAME( 199?, v4monte9, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9a, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9e, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9b, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9f, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, £10 All Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9n, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Switchable, £10 All Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9j, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, £10 All Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9k, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, £10 All Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9l, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 25p Fixed, £10 All Cash) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9m, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 25p Fixed, £10 All Cash) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9o, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9i, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, S/Site Standard, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9c, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9d, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Switchable, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9h, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte9g, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 9, Arcade Special, Options 4 Cabinet, 20p Fixed, Cash and Tokens) (set 2) (MPU4 Video)",GAME_FLAGS ) +// 'Release B' +GAME( 199?, v4monteb, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release B, S/Site Standard, 20p Fixed, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteba, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release B, Arcade Special, 20p Fixed, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montebb, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release B, Arcade Special, 20p Switchable, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) +// 'Release 5' using the same base ROMs as 'Release B' (hacked?) +GAME( 199?, v4monte5, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Monte Carlo Or Bust (BWB) (Release 5, S/Site Standard, 20p Fixed, £8 All Cash) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte5a, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 5, Arcade Special, 20p Fixed, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monte5b, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", "Monte Carlo Or Bust (BWB) (Release 5, Arcade Special, 20p Switchable, Cash and Tokens) (MPU4 Video)",GAME_FLAGS ) // no suitable 68k ROMs for these -GAME( 199?, v4monteh, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montei, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montej, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montek, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 4) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montel, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 5) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montem, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 6) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monten, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 7) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteo, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 8) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montep, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 9) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteq, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 10) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monter, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 11) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montes, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 12) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montet, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 13) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteu, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 14) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montev, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 15) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montew, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 16) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montex, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 17) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montey, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 18) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montez, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 19) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteaa, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 20) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteab, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 21) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteac, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 22) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montead, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 23) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteae, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 24) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteaf, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 25) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteag, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 26) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteah, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 27) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteai, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 28) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteaj, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 29) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteak, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 30) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteal, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 31) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteam, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 32) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4montean, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 33) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4monteao, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 34) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montek, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montel, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montem, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monten, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 4) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteo, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 5) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montep, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 6) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteq, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 7) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monter, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 8) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montes, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 9) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montet, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 10) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteu, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 11) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montev, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 12) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montew, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 13) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montex, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 14) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montey, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 15) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montez, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 16) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteaa, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 17) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteab, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 18) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteac, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 19) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montead, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 20) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteae, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 21) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteaf, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 22) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteag, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 23) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteah, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 24) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteai, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 25) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteaj, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 26) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteak, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 27) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteal, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 28) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteam, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 29) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4montean, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 30) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4monteao, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 31) (MPU4 Video)",GAME_FLAGS ) // only have a single loose 68k ROM from this which doesn't match any other set -GAME( 199?, v4montezz, v4monte, bwbvid, bwbvid, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 35) (MPU4 Video)",GAME_FLAGS ) - - -GAME( 1995, v4mdice, 0, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 25p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicee, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicep, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdiceq, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicer, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£10 Cash - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdiceu, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 25p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicev, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 25p-£10 Cash - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicei, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicej, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicel, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicem, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 4) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicek, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Showcase, 20p-£8 Token - Fixed) (set 5) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicea, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 5p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdiceb, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 10p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdiced, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicew, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicen, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdiceo, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdices, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 25p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicet, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 25p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicec, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 10p-£8 Token - Fixed) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdicef, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Token - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdiceh, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Token - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) -GAME( 1995, v4mdiceg, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Showcase, 20p-£8 Token - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) -// no base ROMs, only 68k ROMs dumped for Release 5 -GAME( 1995, v4mdice5, v4mdice, bwbvid, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Miami Dice (BWB) (Release 5) (MPU4 Video)",GAME_FLAGS ) // no base ROM +GAME( 199?, v4montezz, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (Release ?, set 32) (MPU4 Video)",GAME_FLAGS ) +// German Release +GAME( 199?, v4monteger, v4monte, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB","Monte Carlo Or Bust (BWB) (German) (MPU4 Video)",GAME_FLAGS ) + + +GAME( 1995, v4mdice, 0, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 25p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicee, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicep, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdiceq, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicer, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£10 Cash - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdiceu, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 25p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicev, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 25p-£10 Cash - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicei, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicej, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicel, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicem, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Standard, 20p-£8 Token - Fixed) (set 4) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicek, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, S/Site Showcase, 20p-£8 Token - Fixed) (set 5) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicea, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 5p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdiceb, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 10p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdiced, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£4 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicew, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Cash - Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicen, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdiceo, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdices, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 25p-£10 Cash - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicet, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 25p-£10 Cash - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicec, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 10p-£8 Token - Fixed) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdicef, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Token - Fixed) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdiceh, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Standard, 20p-£8 Token - Fixed) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 1995, v4mdiceg, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB", u8"Miami Dice (BWB) (Release 8, Arcade Showcase, 20p-£8 Token - Fixed) (set 3) (MPU4 Video)",GAME_FLAGS ) +// 'Release 6' +GAME( 1995, v4mdice6, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"Miami Dice (BWB) (Release 6, Arcade Standard, 20p-£8 Token - Fixed) (MPU4 Video)", GAME_FLAGS ) +// 'Release 5' +GAME( 1995, v4mdice5, v4mdice, bwbvid_oki, v4mdice, mpu4vid_state, init_bwbhack, ROT0, "BWB",u8"Miami Dice (BWB) (Release 5, Arcade Showcase, 20p-£8 Token - Fixed) (MPU4 Video)",GAME_FLAGS ) // this is a German version of v4mdice, produced by Nova -GAME( 199?, v4mdiceger, v4mdice, bwbvid5, mpu4, mpu4vid_state, init_bwbhack, ROT0, "Nova","Miami Dice (Nova, German) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4mdiceger, v4mdice, bwbvid_oki, mpu4, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Miami Dice (Nova, German) (MPU4 Video)",GAME_FLAGS ) // other issues @@ -8555,21 +9477,24 @@ /* Uncertain BIOS */ -GAME( 199?, v4frfact, v4bios, crmaze, crmaze, mpu4vid_state, init_bwbhack, ROT0, "BWB","Fruit Factory (BWB) (set 1) (MPU4 Video)", GAME_FLAGS ) -GAME( 199?, v4frfacta, v4frfact, crmaze, crmaze, mpu4vid_state, init_bwbhack, ROT0, "BWB","Fruit Factory (BWB) (set 2) (MPU4 Video)", GAME_FLAGS ) -GAME( 199?, v4frfactb, v4frfact, crmaze, crmaze, mpu4vid_state, init_bwbhack, ROT0, "BWB","Fruit Factory (BWB) (set 3) (MPU4 Video)", GAME_FLAGS ) -GAME( 199?, v4frfactc, v4frfact, crmaze, crmaze, mpu4vid_state, init_bwbhack, ROT0, "BWB","Fruit Factory (BWB) (set 4) (MPU4 Video)", GAME_FLAGS ) -GAME( 199?, v4frfactd, v4frfact, crmaze, crmaze, mpu4vid_state, init_bwbhack, ROT0, "BWB","Fruit Factory (BWB) (set 5) (MPU4 Video)", GAME_FLAGS ) -GAME( 199?, v4frfacte, v4frfact, crmaze, crmaze, mpu4vid_state, init_bwbhack, ROT0, "BWB","Fruit Factory (BWB) (set 6) (MPU4 Video)", GAME_FLAGS ) -GAME( 199?, v4frfactf, v4frfact, crmaze, crmaze, mpu4vid_state, init_bwbhack, ROT0, "BWB","Fruit Factory (BWB) (set 7) (MPU4 Video)", GAME_FLAGS ) +// has a Barcrest style Characteriser check, not a BWB one? +GAME( 199?, v4frfact, v4bios, crmaze, bwbvid, mpu4vid_state, init_v4frfact, ROT0, "BWB","Fruit Factory (BWB) (set 1) (MPU4 Video)", GAME_FLAGS ) +GAME( 199?, v4frfacta, v4frfact, crmaze, bwbvid, mpu4vid_state, init_v4frfact, ROT0, "BWB","Fruit Factory (BWB) (set 2) (MPU4 Video)", GAME_FLAGS ) +GAME( 199?, v4frfactb, v4frfact, crmaze, bwbvid, mpu4vid_state, init_v4frfact, ROT0, "BWB","Fruit Factory (BWB) (set 3) (MPU4 Video)", GAME_FLAGS ) +GAME( 199?, v4frfactc, v4frfact, crmaze, bwbvid, mpu4vid_state, init_v4frfact, ROT0, "BWB","Fruit Factory (BWB) (set 4) (MPU4 Video)", GAME_FLAGS ) +GAME( 199?, v4frfactd, v4frfact, crmaze, bwbvid, mpu4vid_state, init_v4frfact, ROT0, "BWB","Fruit Factory (BWB) (set 5) (MPU4 Video)", GAME_FLAGS ) +GAME( 199?, v4frfacte, v4frfact, crmaze, bwbvid, mpu4vid_state, init_v4frfact, ROT0, "BWB","Fruit Factory (BWB) (set 6) (MPU4 Video)", GAME_FLAGS ) +GAME( 199?, v4frfactf, v4frfact, crmaze, bwbvid, mpu4vid_state, init_v4frfact, ROT0, "BWB","Fruit Factory (BWB) (set 7) (MPU4 Video)", GAME_FLAGS ) /* Nova - is this the same video board? One of the games displays 'Resetting' but the others do nothing interesting and access strange addresses */ -/* All contain BWB video in the BIOS rom tho */ +/* All contain BWB video in the BIOS rom tho, Cyber Casino also needs a Jackpot link? */ /* These seem to use the other palette chip (BT471). and use the German BWB bank setup, so may need more work */ -GAME( 199?, v4cybcas, 0, bwbvid5, mpu4, mpu4vid_state, init_cybcas, ROT0, "Nova","Cyber Casino (Nova, German) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4cybcas, 0, bwbvid_oki_bt471_german, v4cybcas, mpu4vid_state, init_cybcas, ROT0, "BWB (Nova license)","Cyber Casino (Nova, German) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?, v4missis, 0, bwbvid5, mpu4, mpu4vid_state, init_bwbhack, ROT0, "Nova","Mississippi Lady (Nova, German) (MPU4 Video)",GAME_FLAGS ) // different hardware type? extra ram on mpu4 side? +GAME( 199?, v4missis, 0, bwbvid_oki_bt471_german, v4cybcas, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Mississippi Lady (Nova, German) (MPU4 Video)",GAME_FLAGS ) // different hardware type? extra ram on mpu4 side? -GAME( 199?, v4picdil, 0, bwbvid5, mpu4, mpu4vid_state, init_bwbhack, ROT0, "Nova","Piccadilly Nights (Nova, German) (MPU4 Video)",GAME_FLAGS ) // different hardware type? extra ram on mpu4 side? +GAME( 199?, v4picdil, 0, bwbvid_oki_bt471_german, v4cybcas, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Piccadilly Night (Nova, German) (set 1) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4picdila, v4picdil, bwbvid_oki_bt471_german, v4cybcas, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Piccadilly Night (Nova, German) (set 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?, v4picdilz, v4picdil, bwbvid_oki_bt471_german, v4cybcas, mpu4vid_state, init_bwbhack, ROT0, "BWB (Nova license)","Piccadilly Night (Nova, German) (set 3) (MPU4 Video)",GAME_FLAGS ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/mrdo.cpp mame-0.224+dfsg.1/src/mame/drivers/mrdo.cpp --- mame-0.223+dfsg.1/src/mame/drivers/mrdo.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/mrdo.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -15,7 +15,6 @@ Video frequency: VSYNC = HSYNC/262 = 59.94323742 Hz VBlank duration: 1/VSYNC * (70/262) = 4457 us - The manual for this model clearly shows above values in 'Misc' parts listings. There's a chance that certain bootlegs might have the different 8/20 MHz XTALS. @@ -39,8 +38,8 @@ -/* PAL16R6CN used for protection. The game doesn't clear the screen */ -/* if a read from this address doesn't return the value it expects. */ +/* PAL16R6CN used for protection. The game doesn't clear the screen + if a read from this address doesn't return the value it expects. */ uint8_t mrdo_state::mrdo_SECRE_r() { uint8_t *RAM = memregion("maincpu")->base(); @@ -56,7 +55,7 @@ map(0x8000, 0x87ff).ram().w(FUNC(mrdo_state::mrdo_bgvideoram_w)).share("bgvideoram"); map(0x8800, 0x8fff).ram().w(FUNC(mrdo_state::mrdo_fgvideoram_w)).share("fgvideoram"); map(0x9000, 0x90ff).writeonly().share("spriteram"); - map(0x9800, 0x9800).w(FUNC(mrdo_state::mrdo_flipscreen_w)); /* screen flip + playfield priority */ + map(0x9800, 0x9800).w(FUNC(mrdo_state::mrdo_flipscreen_w)); // screen flip + playfield priority map(0x9801, 0x9801).w("u8106_1", FUNC(u8106_device::write)); map(0x9802, 0x9802).w("u8106_2", FUNC(u8106_device::write)); map(0x9803, 0x9803).r(FUNC(mrdo_state::mrdo_SECRE_r)); @@ -128,7 +127,7 @@ PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* settings 0x01 through 0x05 all give 1 Coin/1 Credit */ + // settings 0x01 through 0x05 all give 1 Coin/1 Credit PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:4,3,2,1") PORT_DIPSETTING( 0x60, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) @@ -141,7 +140,7 @@ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* settings 0x10 through 0x50 all give 1 Coin/1 Credit */ + // settings 0x10 through 0x50 all give 1 Coin/1 Credit INPUT_PORTS_END @@ -169,7 +168,7 @@ }; static GFXDECODE_START( gfx_mrdo ) - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 64 ) /* colors 0-255 directly mapped */ + GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 64 ) // colors 0-255 directly mapped GFXDECODE_ENTRY( "gfx2", 0, charlayout, 0, 64 ) GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 4*64, 16 ) GFXDECODE_END @@ -177,12 +176,12 @@ void mrdo_state::mrdo(machine_config &config) { - /* basic machine hardware */ - Z80(config, m_maincpu, MAIN_CLOCK/2); /* Verified */ + // Basic machine hardware + Z80(config, m_maincpu, MAIN_CLOCK/2); // Verified m_maincpu->set_addrmap(AS_PROGRAM, &mrdo_state::main_map); m_maincpu->set_vblank_int("screen", FUNC(mrdo_state::irq0_line_hold)); - /* video hardware */ + // Video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(VIDEO_CLOCK/4, 312, 8, 248, 262, 32, 224); screen.set_screen_update(FUNC(mrdo_state::screen_update_mrdo)); @@ -191,12 +190,12 @@ GFXDECODE(config, m_gfxdecode, m_palette, gfx_mrdo); PALETTE(config, m_palette, FUNC(mrdo_state::mrdo_palette), 64*4 + 16*4, 256); - /* sound hardware */ + // Sound hardware SPEAKER(config, "mono").front_center(); - U8106(config, "u8106_1", MAIN_CLOCK/2).add_route(ALL_OUTPUTS, "mono", 0.50); /* sn76489-equivalent?, Verified */ + U8106(config, "u8106_1", MAIN_CLOCK/2).add_route(ALL_OUTPUTS, "mono", 0.50); // sn76489-equivalent?, Verified - U8106(config, "u8106_2", MAIN_CLOCK/2).add_route(ALL_OUTPUTS, "mono", 0.50); /* sn76489-equivalent?, Verified */ + U8106(config, "u8106_2", MAIN_CLOCK/2).add_route(ALL_OUTPUTS, "mono", 0.50); // sn76489-equivalent?, Verified } void mrdo_state::mrlo(machine_config &config) @@ -205,6 +204,13 @@ //config.device_remove("pal16r6"); } +// Main Clock: XTAL = 8.000 MHz, Video clock: XTAL = 19.908 MHz +void mrdo_state::mrdobl(machine_config &config) +{ + mrdo(config); + m_maincpu->set_clock(8_MHz_XTAL/2); +} + /*************************************************************************** @@ -233,10 +239,10 @@ ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_REGION( 0x0200, "pal16r6", 0 ) ROM_LOAD( "j2-u001.bin", 0x0000, 0x0117, CRC(badf5876) SHA1(b301cfc7f8e83408fdcb742f552a0414af6aa16e) ) // PAL16R6 converted to GAL16V8 @@ -262,10 +268,10 @@ ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_REGION( 0x0200, "pal16r6", 0 ) ROM_LOAD( "j2-u001.bin", 0x0000, 0x0117, CRC(badf5876) SHA1(b301cfc7f8e83408fdcb742f552a0414af6aa16e) ) // PAL16R6 converted to GAL16V8 @@ -291,10 +297,10 @@ ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_REGION( 0x0200, "pal16r6", 0 ) ROM_LOAD( "j2-u001.bin", 0x0000, 0x0117, CRC(badf5876) SHA1(b301cfc7f8e83408fdcb742f552a0414af6aa16e) ) // PAL16R6 converted to GAL16V8 @@ -320,10 +326,10 @@ ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_END ROM_START( mrdu ) @@ -346,10 +352,10 @@ ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_REGION( 0x0200, "pal16r6", 0 ) ROM_LOAD( "j2-u001.bin", 0x0000, 0x0117, CRC(badf5876) SHA1(b301cfc7f8e83408fdcb742f552a0414af6aa16e) ) @@ -375,10 +381,10 @@ ROM_LOAD( "dosnow.6", 0x1000, 0x1000, CRC(413f88d1) SHA1(830df0def7289536e2d08e0517cdb6edbc947400) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_REGION( 0x0200, "pal16r6", 0 ) ROM_LOAD( "j2-u001.bin", 0x0000, 0x0117, CRC(badf5876) SHA1(b301cfc7f8e83408fdcb742f552a0414af6aa16e) ) // PAL16R6 converted to GAL16V8 @@ -407,15 +413,44 @@ ROM_LOAD( "md_fabre.k5", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "82s123.u2", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "82s123.t2", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "82s123.f10n", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "82s123.j10", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "82s123.u2", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "82s123.t2", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "82s123.f10n", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "82s123.j10", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_REGION( 0x0200, "pal16r6", 0 ) ROM_LOAD( "pal16r6.j2", 0x0000, 0x0117, BAD_DUMP CRC(badf5876) SHA1(b301cfc7f8e83408fdcb742f552a0414af6aa16e) ) // From parent, protected on this set ROM_END +ROM_START( mrdobl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d1.a4", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) ) + ROM_LOAD( "d2.c4", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) ) + ROM_LOAD( "d3.e4", 0x4000, 0x2000, CRC(afc518e3) SHA1(abfb874e22ce375a2badecafaf95a3cd8c6179b1) ) + ROM_LOAD( "d4.f4", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "d9.s8", 0x0000, 0x1000, CRC(aa80c5b6) SHA1(76f9f90deb74598470e7ed565237da38dd07e4e9) ) + ROM_LOAD( "d10.u8", 0x1000, 0x1000, CRC(d20ec85b) SHA1(9762bbe34d3fa209ea719807c723f57cb6bf4e01) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "d8.r8", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) ) + ROM_LOAD( "d7.n8", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) + ROM_LOAD( "d5.h5", 0x0000, 0x1000, CRC(e1218cc5) SHA1(d946613a1cf1c97f7533a4f8c2d0078d1b7daaa8) ) + ROM_LOAD( "d6.k5", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) + + ROM_REGION( 0x0080, "proms", 0 ) + ROM_LOAD( "2_18s030.u2", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "1_18s030.t2", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "7603-5.e10", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "82s123.j10", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) + + ROM_REGION( 0x0104, "pal16r6", 0 ) + ROM_LOAD( "u001_pal16r6cn.j2", 0x0000, 0x0104, CRC(84dbe498) SHA1(5863342b2db85ffef31b5e9ce26bfd8fca9923b0) ) +ROM_END + ROM_START( yankeedo ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) ) @@ -436,21 +471,22 @@ ROM_LOAD( "yd_d6.k5", 0x1000, 0x1000, CRC(790579aa) SHA1(89d8a77d2046cf8cfc393e0f08d361d1886bfec1) ) ROM_REGION( 0x0080, "proms", 0 ) - ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ - ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ - ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ - ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) // palette (high bits) + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) // palette (low bits) + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) // sprite color lookup table + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) // timing (not used) ROM_REGION( 0x0200, "pal16r6", 0 ) ROM_LOAD( "j2-u001.bin", 0x0000, 0x0117, CRC(badf5876) SHA1(b301cfc7f8e83408fdcb742f552a0414af6aa16e) ) // PAL16R6 converted to GAL16V8 ROM_END -GAME( 1982, mrdo, 0, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal", "Mr. Do!", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrdoy, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal", "Mr. Do! (prototype)", MACHINE_SUPPORTS_SAVE ) /* aka "Yukidaruma" */ -GAME( 1982, mrdot, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal (Taito license)", "Mr. Do! (Taito)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrdofix, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal (Taito license)", "Mr. Do! (bugfixed)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrlo, mrdo, mrlo, mrdo, mrdo_state, empty_init, ROT270, "bootleg", "Mr. Lo!", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrdu, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "bootleg", "Mr. Du!", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrdofabr, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "bootleg (Fabremar)", "Mr. Do! (Fabremar bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, yankeedo, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "hack", "Yankee DO!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdo, 0, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal", "Mr. Do!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdoy, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal", "Mr. Do! (prototype)", MACHINE_SUPPORTS_SAVE ) /* aka "Yukidaruma" */ +GAME( 1982, mrdot, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal (Taito license)", "Mr. Do! (Taito)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdofix, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "Universal (Taito license)", "Mr. Do! (bugfixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrlo, mrdo, mrlo, mrdo, mrdo_state, empty_init, ROT270, "bootleg", "Mr. Lo!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdu, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "bootleg", "Mr. Du!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdofabr, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "bootleg (Fabremar)", "Mr. Do! (Fabremar bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdobl, mrdo, mrdobl, mrdo, mrdo_state, empty_init, ROT270, "bootleg", "Mr. Do! (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, yankeedo, mrdo, mrdo, mrdo, mrdo_state, empty_init, ROT270, "hack", "Yankee DO!", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/mw8080bw.cpp mame-0.224+dfsg.1/src/mame/drivers/mw8080bw.cpp --- mame-0.223+dfsg.1/src/mame/drivers/mw8080bw.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/mw8080bw.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -747,10 +747,10 @@ map(0x02, 0x02).mirror(0x04).portr("IN2"); map(0x03, 0x03).mirror(0x04).r(m_mb14241, FUNC(mb14241_device::shift_result_r)); - map(0x02, 0x02).w("soundboard", FUNC(zzzap_audio_device::p1_w)); + map(0x02, 0x02).w("soundboard", FUNC(zzzap_common_audio_device::p1_w)); map(0x03, 0x03).w(m_mb14241, FUNC(mb14241_device::shift_data_w)); map(0x04, 0x04).w(m_mb14241, FUNC(mb14241_device::shift_count_w)); - map(0x05, 0x05).w("soundboard", FUNC(zzzap_audio_device::p2_w)); + map(0x05, 0x05).w("soundboard", FUNC(zzzap_common_audio_device::p2_w)); map(0x07, 0x07).w(m_watchdog, FUNC(watchdog_timer_device::reset_w)); } @@ -824,7 +824,7 @@ INPUT_PORTS_END -void zzzap_state::zzzap(machine_config &config) +void zzzap_state::zzzap_common(machine_config &config) { mw8080bw_root(config); @@ -836,11 +836,28 @@ /* add shifter */ MB14241(config, m_mb14241); + /* audio hardware handled by specific machine */ +} + + +void zzzap_state::zzzap(machine_config &config) +{ + zzzap_common(config); + /* audio hardware */ ZZZAP_AUDIO(config, "soundboard"); } +void zzzap_state::lagunar(machine_config &config) +{ + zzzap_common(config); + + /* audio hardware */ + LAGUNAR_AUDIO(config, "soundboard"); +} + + /************************************* * @@ -3094,14 +3111,14 @@ /* 597 */ GAMEL( 1975, gunfighto, gunfight, gunfight, gunfight, gunfight_state, empty_init, ROT0, "Dave Nutting Associates / Midway", "Gun Fight (set 2)", MACHINE_SUPPORTS_SAVE, layout_gunfight ) /* 604 Gun Fight (cocktail, dump does not exist) */ /* 605 */ GAME( 1976, tornbase, 0, tornbase, tornbase, mw8080bw_state, empty_init, ROT0, "Dave Nutting Associates / Midway / Taito", "Tornado Baseball / Ball Park", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 610 */ GAMEL( 1976, 280zzzap, 0, zzzap, zzzap, zzzap_state, empty_init, ROT0, "Dave Nutting Associates / Midway", "280-ZZZAP", MACHINE_SUPPORTS_SAVE, layout_280zzzap ) +/* 610 */ GAMEL( 1976, 280zzzap, 0, zzzap, zzzap, zzzap_state, empty_init, ROT0, "Dave Nutting Associates / Midway", "280-ZZZAP", MACHINE_SUPPORTS_SAVE, layout_280zzzap ) /* 611 */ GAMEL( 1976, maze, 0, maze, maze, mw8080bw_state, empty_init, ROT0, "Midway", "Amazing Maze", MACHINE_SUPPORTS_SAVE, layout_maze ) /* 612 */ GAME( 1977, boothill, 0, boothill, boothill, boothill_state, empty_init, ROT0, "Dave Nutting Associates / Midway", "Boot Hill", MACHINE_SUPPORTS_SAVE ) /* 615 */ GAME( 1977, checkmat, 0, checkmat, checkmat, mw8080bw_state, empty_init, ROT0, "Dave Nutting Associates / Midway", "Checkmate", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 618 */ GAME( 1977, desertgu, 0, desertgu, desertgu, desertgu_state, empty_init, ROT0, "Dave Nutting Associates / Midway", "Desert Gun", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 618 */ GAME( 1977, roadrunm, desertgu, desertgu, desertgu, desertgu_state, empty_init, ROT0, "Midway", "Road Runner (Midway)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 619 */ GAME( 1977, dplay, 0, dplay, dplay, dplay_state, empty_init, ROT0, "Midway", "Double Play", MACHINE_SUPPORTS_SAVE ) -/* 622 */ GAMEL( 1977, lagunar, 0, zzzap, lagunar, zzzap_state, empty_init, ROT90, "Midway", "Laguna Racer", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_lagunar ) +/* 622 */ GAMEL( 1977, lagunar, 0, lagunar, lagunar, zzzap_state, empty_init, ROT90, "Midway", "Laguna Racer", MACHINE_SUPPORTS_SAVE, layout_lagunar ) /* 623 */ GAME( 1977, gmissile, 0, gmissile, gmissile, boothill_state, empty_init, ROT0, "Midway", "Guided Missile", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 626 */ GAME( 1977, m4, 0, m4, m4, boothill_state, empty_init, ROT0, "Midway", "M-4", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 630 */ GAMEL( 1978, clowns, 0, clowns, clowns, clowns_state, empty_init, ROT0, "Midway", "Clowns (rev. 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_clowns ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/nes_sh6578.cpp mame-0.224+dfsg.1/src/mame/drivers/nes_sh6578.cpp --- mame-0.223+dfsg.1/src/mame/drivers/nes_sh6578.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/nes_sh6578.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -35,9 +35,9 @@ public: nes_sh6578_state(const machine_config& mconfig, device_type type, const char* tag) : driver_device(mconfig, type, tag), + m_bank(*this, "cartbank"), m_maincpu(*this, "maincpu"), m_ppu(*this, "ppu"), - m_bank(*this, "cartbank"), m_fullrom(*this, "fullrom"), m_screen(*this, "screen"), m_apu(*this, "nesapu"), @@ -57,10 +57,14 @@ void sprite_dma_w(address_space &space, uint8_t data); + virtual void io_w(uint8_t data); + virtual void extio_w(uint8_t data); + bool m_isbanked; + required_memory_bank m_bank; + private: required_device m_maincpu; required_device m_ppu; - required_memory_bank m_bank; required_device m_fullrom; required_device m_screen; required_device m_apu; @@ -101,7 +105,6 @@ uint8_t io0_r(); uint8_t io1_r(); - void io_w(uint8_t data); uint8_t psg1_4014_r(); uint8_t psg1_4015_r(); @@ -138,11 +141,31 @@ // this might be game specific uint8_t m_previo; uint8_t m_iolatch[2]; - bool m_isbanked; required_ioport_array<2> m_in; }; +class nes_sh6578_abl_wikid_state : public nes_sh6578_state +{ +public: + nes_sh6578_abl_wikid_state(const machine_config& mconfig, device_type type, const char* tag) : + nes_sh6578_state(mconfig, type, tag) + { } +protected: + virtual void io_w(uint8_t data) override; +}; + +class nes_sh6578_max10in1_state : public nes_sh6578_state +{ +public: + nes_sh6578_max10in1_state(const machine_config& mconfig, device_type type, const char* tag) : + nes_sh6578_state(mconfig, type, tag) + { } + +protected: + virtual void extio_w(uint8_t data) override; + virtual void machine_reset() override; +}; uint8_t nes_sh6578_state::bank_r(int bank, uint16_t offset) { @@ -400,15 +423,35 @@ } } + m_previo = data; +} + +void nes_sh6578_abl_wikid_state::io_w(uint8_t data) +{ + nes_sh6578_state::io_w(data); + if (m_isbanked) { m_bank->set_entry((data>>1)&1); } +} - m_previo = data; +void nes_sh6578_state::extio_w(uint8_t data) +{ + logerror("%s: extio_w : %02x\n", machine().describe_context(), data); +} + +void nes_sh6578_max10in1_state::extio_w(uint8_t data) +{ + logerror("%s: extio_w : %02x (max10in1)\n", machine().describe_context(), data); + + m_bank->set_entry((data & 0x80) >> 7); } + + + uint8_t nes_sh6578_state::psg1_4014_r() { return m_apu->read(0x14); @@ -456,6 +499,13 @@ map(0x4017, 0x4017).rw(FUNC(nes_sh6578_state::io1_r), FUNC(nes_sh6578_state::psg1_4017_w)); map(0x4020, 0x4020).w(FUNC(nes_sh6578_state::timing_setting_control_w)); + //4021 write keyboard output port + //4022 read/write keyboard data control + //4023 read/write joystick,mouse control + //4024 read - mouse port / write - mouse baud + //4025 write - Printer Port + map(0x4026, 0x4026).w(FUNC(nes_sh6578_state::extio_w)); + //4027 read/write - DAC data register map(0x4031, 0x4031).w(FUNC(nes_sh6578_state::initial_startup_w)); map(0x4032, 0x4032).w(FUNC(nes_sh6578_state::irq_mask_w)); @@ -512,6 +562,12 @@ m_timerval = 0x00; } +void nes_sh6578_max10in1_state::machine_reset() +{ + nes_sh6578_state::machine_reset(); + m_bank->set_entry(1); +} + void nes_sh6578_state::machine_start() { m_bank->configure_entry(0, memregion("maincpu")->base() + 0x0000000); @@ -643,11 +699,21 @@ ROM_LOAD( "mx29f1610atc.u2", 0x00000, 0x200000, CRC(f16abf79) SHA1(aeccbb40d7fdd451ba8e5cca20464da2cf116461) ) ROM_END +ROM_START( maxx5in1 ) + ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "vsmaxxcasino5_e28f008sa_89a2.bin", 0x00000, 0x100000, CRC(e3d8f24f) SHA1(121411e72d53eabe6be927d1db2f871d59a9e08e) ) +ROM_END + ROM_START( maxx6in1 ) ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "maxx6in1.bin", 0x00000, 0x100000, CRC(8e582298) SHA1(89892b9095dbd5101cdf2477a66abd2cb11ad8c8) ) ROM_END +ROM_START( max10in1 ) + ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "csmaxxcasino10.bin", 0x000000, 0x200000, CRC(2a05e9af) SHA1(fcf591c22ce8773f72e9d0fa0bae545f6a82a063) ) +ROM_END + CONS( 1997, bandgpad, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "Bandai", "Multi Game Player Gamepad", MACHINE_NOT_WORKING ) CONS( 1997, bandggcn, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "Bandai", "Go! Go! Connie-chan! Asobou Mouse", MACHINE_NOT_WORKING ) @@ -657,6 +723,11 @@ CONS( 200?, cpatrolm, 0, 0, nes_sh6578_pal, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "TimeTop", "City Patrolman", MACHINE_NOT_WORKING ) // ROM is banked -CONS( 200?, ablwikid, 0, 0, nes_sh6578_pal, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "Advance Bright Ltd.", "Wikid Joystick", MACHINE_NOT_WORKING ) // or Wik!d Joystick +CONS( 200?, ablwikid, 0, 0, nes_sh6578_pal, nes_sh6578, nes_sh6578_abl_wikid_state, init_nes_sh6578, "Advance Bright Ltd.", "Wikid Joystick", MACHINE_NOT_WORKING ) // or Wik!d Joystick + +CONS( 200?, maxx5in1, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "Senario", "Vs Maxx 5-in-1 Casino / Senario Card & Casino Games", 0 ) // advertised on box as 'With Solitaire" (was there an even older version without it?) + +CONS( 200?, maxx6in1, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "Senario", "Vs Maxx 6-in-1 Casino / Senario Card & Casino Games", 0 ) // advertised on box as "With Texas Hold 'Em" (which is the added game since the 5-in-1) + +CONS( 200?, max10in1, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_max10in1_state, init_nes_sh6578, "Senario", "Vs Maxx 10-in-1 Casino / Senario Card & Casino Games", 0 ) -CONS( 200?, maxx6in1, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "Senario", "Vs Maxx 6-in-1 Casino / Senario Card & Casino Games", 0 ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/nes_vt.cpp mame-0.224+dfsg.1/src/mame/drivers/nes_vt.cpp --- mame-0.223+dfsg.1/src/mame/drivers/nes_vt.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/nes_vt.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -120,6 +120,8 @@ void vt_external_space_map_1mbyte(address_map& map); void vt_external_space_map_512kbyte(address_map& map); + void init_protpp(); + protected: required_device m_soc; @@ -135,6 +137,7 @@ { } void nes_vt_vh2009(machine_config& config); + void nes_vt_vh2009_1mb(machine_config& config); void nes_vt_vh2009_4mb(machine_config& config); void nes_vt_vh2009_8mb(machine_config& config); @@ -274,6 +277,8 @@ m_latch1_bit(0) { } + void init_lxcmcypp(); + protected: virtual uint8_t in0_r() override; virtual uint8_t in1_r() override; @@ -394,23 +399,6 @@ required_ioport m_plunger; }; -class nes_vt_sudoku_state : public nes_vt_state -{ -public: - nes_vt_sudoku_state(const machine_config& mconfig, device_type type, const char* tag) : - nes_vt_state(mconfig, type, tag) - { } - - void init_sudoku(); - - void nes_vt_sudoku_512kb(machine_config& config); - -private: - virtual uint8_t in0_r() override; - virtual uint8_t in1_r() override; - virtual void in0_w(uint8_t data) override; -}; - class nes_vt_vg_1mb_majgnc_state : public nes_vt_state { public: @@ -724,20 +712,6 @@ logerror("in0_w %02x\n", data); } -uint8_t nes_vt_sudoku_state::in0_r() -{ - return machine().rand(); -} - -uint8_t nes_vt_sudoku_state::in1_r() -{ - return machine().rand(); -} - -void nes_vt_sudoku_state::in0_w(uint8_t data) -{ -} - /* not strictly needed, but helps us see where things are in ROM to aid with figuring out banking schemes*/ static const gfx_layout helper_layout = @@ -1327,6 +1301,12 @@ //m_soc->set_default_palette_mode(PAL_MODE_NEW_VG); // gives better title screens, but worse ingame, must be able to switch } +void nes_vt_swap_op_d5_d6_state::nes_vt_vh2009_1mb(machine_config& config) +{ + nes_vt_vh2009(config); + m_soc->set_addrmap(AS_PROGRAM, &nes_vt_swap_op_d5_d6_state::vt_external_space_map_1mbyte); +} + void nes_vt_swap_op_d5_d6_state::nes_vt_vh2009_4mb(machine_config& config) { nes_vt_vh2009(config); @@ -1614,6 +1594,17 @@ ROM_LOAD( "lexibookspiderman.bin", 0x00000, 0x4000000, CRC(ef6e8847) SHA1(0012df193c52fd48595d85886fd431619c5d5e3e) ) ROM_END +ROM_START( lxcmcycr ) + ROM_REGION( 0x4000000, "mainrom", 0 ) + ROM_LOAD( "lexibook cars.bin", 0x00000, 0x4000000, CRC(198fe11b) SHA1(5e35caa3fc319ec69812c187a3ec89f01749f749) ) +ROM_END + +ROM_START( lxcmcypp ) + ROM_REGION( 0x4000000, "mainrom", 0 ) + // marked 512mbit, possible A22 / A23 are swapped as they were marked on the board in a different way. + ROM_LOAD( "pawpatrol_compact.bin", 0x00000, 0x4000000, CRC(bf536762) SHA1(80dde8426a636bae33a82d779e564fa743eb3776) ) +ROM_END + ROM_START( lxcmc250 ) ROM_REGION( 0x4000000, "mainrom", 0 ) // sub-board was marked for 2GB capacity (A0-A26 address lines), but only address lines A0-A24 are connected to the chip @@ -1678,6 +1669,11 @@ ROM_LOAD( "gamesporzduetpingpong.bin", 0x00000, 0x400000, CRC(96af199b) SHA1(c14ff15683545c1edf03376cebcee7ac408da733) ) ROM_END +ROM_START( sporzbx ) + ROM_REGION( 0x400000, "mainrom", 0 ) + ROM_LOAD( "sporzboxing.bin", 0x00000, 0x400000, CRC(8b832c0b) SHA1(8193955a81e894a01308a80d5153f2ecfe134da6) ) +ROM_END + ROM_START( lpgm240 ) ROM_REGION( 0x800000, "mainrom", 0 ) ROM_LOAD( "w25q64jv.u1", 0x00000, 0x800000, CRC(b973e65b) SHA1(36ff137068ea56b4679c2db386ac0067de0a9eaf) ) @@ -1848,6 +1844,7 @@ + ROM_START( dgun2573 ) // this one lacked a DreamGear logo but was otherwise physically identical, is it a clone product or did DreamGear drop the logo in favor of just using the 'My Arcade' brand? ROM_REGION( 0x2000000, "mainrom", 0 ) ROM_LOAD( "myarcadegamerportable_s29gl256p10tfi01_0001227e.bin", 0x00000, 0x2000000, CRC(8f8c8da7) SHA1(76a18458922e39abe1982f05f184babb5e65acf2) ) @@ -1918,6 +1915,12 @@ ROM_LOAD( "technigame.bin", 0x00000, 0x200000, CRC(3c96b1b1) SHA1(1acc81b26e740327bd6d9faa5a96ab027a48dd77) ) ROM_END + +ROM_START( protpp ) + ROM_REGION( 0x100000, "mainrom", 0 ) + ROM_LOAD( "vpingpong_s29al008d70tfi02_0001225b.bin", 0x00000, 0x100000, CRC(8cf46272) SHA1(298a6341d26712ec1f282e7514e995a7af5ac012) ) +ROM_END + ROM_START( unkra200 ) // "Winbond 25Q64FVSIG 1324" SPI ROM ROM_REGION( 0x800000, "mainrom", 0 ) ROM_LOAD( "retro_machine_rom", 0x00000, 0x800000, CRC(0e824aa7) SHA1(957e98868559ecc22b3fa42c76692417b76bf132) ) @@ -1969,6 +1972,39 @@ ROM_LOAD( "t24c04a.bin", 0x000, 0x200, CRC(ce1fad6f) SHA1(82878996765739edba42042b6336460d5c8f8096) ) ROM_END +ROM_START( zonefusn ) + ROM_REGION( 0x1000000, "mainrom", 0 ) + ROM_LOAD( "fusion.bin", 0x00000, 0x1000000, CRC(240bf970) SHA1(1b82d95a252c08e52fb8da6320276574a30b60db) ) +ROM_END + +void nes_vt_cy_lexibook_state::init_lxcmcypp() +{ + int size = memregion("mainrom")->bytes()/2; + uint16_t* ROM = (uint16_t*)memregion("mainrom")->base(); + + for (int i = 0; i < size; i++) + { + ROM[i] = bitswap<16>(ROM[i], 4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, 8, 9, 10, 11); + } +} + +void nes_vt_state::init_protpp() +{ + // this gets the tiles correct + u8 *src = memregion("mainrom")->base(); + int len = memregion("mainrom")->bytes(); + + std::vector buffer(len); + { + for (int i = 0; i < len; i++) + { + buffer[i] = bitswap<8>(src[i],3,1,2,0,7,5,6,4); + } + + std::copy(buffer.begin(), buffer.end(), &src[0]); + } +} + @@ -1994,10 +2030,10 @@ // 050329 (29th March 2005) date on PCB CONS( 2005, ablpinb, 0, 0, nes_vt_pal_2mb, ablpinb, nes_vt_ablpinb_state, empty_init, "Advance Bright Ltd", "Pinball (P8002, ABL TV Game)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -// need to map 2 player controls for Ping Pong, 'Eat-Bean' (the PacMan hack) gets stuck during intermission? -CONS( 200?, duetpp, 0, 0, nes_vt_waixing_alt_4mb_duetpp, duetpp, nes_vt_waixing_alt_duetpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Duet Play Ping-Pong", MACHINE_NOT_WORKING ) - +// need to map 2 player controls for Ping Pong, 'Eat-Bean' (the PacMan hack) gets stuck during intermission? (same happens on hardware?) +CONS( 2004, duetpp, 0, 0, nes_vt_waixing_alt_4mb_duetpp, duetpp, nes_vt_waixing_alt_duetpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Duet Play Ping-Pong", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2004, sporzbx, 0, 0, nes_vt_waixing_alt_4mb_duetpp, duetpp, nes_vt_waixing_alt_duetpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Boxing", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // should be VT03 based // for testing 'Shark', 'Octopus', 'Harbor', and 'Earth Fighter' use the extended colour modes, other games just seem to use standard NES modes @@ -2042,30 +2078,33 @@ CONS( 200?, dgun2500, 0, 0, nes_vt_dg_baddma_16mb, nes_vt, nes_vt_dg_state, empty_init, "dreamGEAR", "dreamGEAR Wireless Motion Control with 130 games (DGUN-2500)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // don't even get to menu. very enhanced chipset, VT368/9? -CONS( 2012, dgun2561, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "dreamGEAR", "My Arcade Portable Gaming System (DGUN-2561)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 2012, dgun2561, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "dreamGEAR", "My Arcade Portable Gaming System with 140 Games (DGUN-2561)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme CONS( 2016, dgun2593, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "dreamGEAR", "My Arcade Retro Arcade Machine - 300 Handheld Video Games (DGUN-2593)", MACHINE_NOT_WORKING ) // 128Mbyte ROM, must be externally banked or different addressing scheme -CONS( 200?, lxcmcy, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmc250, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - 250-in-1 (JL2375)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcysw, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Star Wars Rebels", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcyfz, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Frozen", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcydp, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Disney Princess", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxcmcysp, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Marvel Ultimate Spider-Man", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcy, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmc250, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - 250-in-1 (JL2375)", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcysw, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Star Wars Rebels", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcyfz, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Frozen", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcydp, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Disney Princess", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcysp, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Marvel Ultimate Spider-Man", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxcmcycr, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Cars", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +// the data order is swapped for this one, maybe other internal differences? +CONS( 200?, lxcmcypp, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, init_lxcmcypp, "Lexibook", "Lexibook Compact Cyber Arcade - Paw Patrol", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme + -CONS( 200?, lxccminn, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Console Colour - Minnie Mouse", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme -CONS( 200?, lxccplan, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Console Colour - Disney's Planes", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxccminn, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Console Colour - Minnie Mouse", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme +CONS( 200?, lxccplan, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Console Colour - Disney's Planes", MACHINE_NOT_WORKING ) // 64Mbyte (used) ROM, must be externally banked, or different addressing scheme // GB-NO13-Main-VT389-2 on PCBs -CONS( 2016, rtvgc300, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Retro TV Game Console - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme -CONS( 2017, rtvgc300fz,0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Retro TV Game Console - Frozen - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 2016, rtvgc300, 0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Retro TV Game Console - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme +CONS( 2017, rtvgc300fz,0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_state, empty_init, "Lexibook", "Lexibook Retro TV Game Console - Frozen - 300 Games", MACHINE_NOT_WORKING ) // 64Mbyte ROM, must be externally banked, or different addressing scheme /* The following are also confirmed to be NES/VT derived units, most having a standard set of games with a handful of lazy graphic mods thrown in to fit the unit theme (handhekd units, use standard AAA batteries) Lexibook Compact Cyber Arcade - Cars - Lexibook Compact Cyber Arcade - Paw Patrol Lexibook Compact Cyber Arcade - Barbie Lexibook Compact Cyber Arcade - Finding Dory Lexibook Compact Cyber Arcade - PJ Masks @@ -2101,6 +2140,8 @@ // die is marked as VH2009, as above, but no scrambled opcodes here CONS( 201?, techni4, 0, 0, nes_vt_pal_2mb, nes_vt, nes_vt_state, empty_init, "Technigame", "Technigame Super 4-in-1 Sports (PAL)", MACHINE_IMPERFECT_GRAPHICS ) + // seems to use PCM for all sound, some garbage at bottom of screen, needs correct inputs (seems to respond to start, and any direction input for 'hit' - check if they're power related) +CONS( 200?, protpp, 0, 0, nes_vt_vh2009_1mb, nes_vt, nes_vt_swap_op_d5_d6_state, init_protpp, "Protocol", "Virtual Ping Pong (Protocol)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // same encryption as above, but seems like newer hardware (or the above aren't using most of the features) CONS( 200?, lpgm240, 0, 0, nes_vt_vh2009_8mb, nes_vt, nes_vt_swap_op_d5_d6_state, empty_init, "", "Let's Play! Game Machine 240 in 1", MACHINE_NOT_WORKING ) // mini 'retro-arcade' style cabinet @@ -2213,3 +2254,4 @@ // Use DIP switch to select console or cartridge, as cartridge is fake and just toggles a GPIO CONS( 2016, fcpocket, 0, 0, nes_vt_fp_4x16mb, nes_vt_fp, nes_vt_hh_state, empty_init, "", "FC Pocket 600 in 1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // has external banking (2x 32mbyte banks) +CONS( 200?, zonefusn, 0, 0, nes_vt_fp_16mb, nes_vt, nes_vt_hh_state, empty_init, "Ultimate Products / Jungle's Soft", "Zone Fusion", MACHINE_NOT_WORKING ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/nmk16.cpp mame-0.224+dfsg.1/src/mame/drivers/nmk16.cpp --- mame-0.223+dfsg.1/src/mame/drivers/nmk16.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/nmk16.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -4113,13 +4113,14 @@ const int IRQ1_SCANLINE = 25; // guess const int VBIN_SCANLINE = 0; const int VBOUT_SCANLINE = 240; + const int SPRDMA_SCANLINE = 241; // 256 USEC after VBOUT int scanline = param; if (scanline == VBOUT_SCANLINE) // vblank-out irq { m_maincpu->set_input_line(4, HOLD_LINE); - m_dma_timer->adjust(attotime::from_usec(256)); // 256 USEC after VBOUT + m_dma_timer->adjust(m_screen->time_until_pos(SPRDMA_SCANLINE)/*attotime::from_usec(256)*/); } /* Vblank-in irq, Vandyke definitely relies that irq fires at scanline ~0 instead of 112 (as per previous diff -Nru mame-0.223+dfsg.1/src/mame/drivers/novag_savant.cpp mame-0.224+dfsg.1/src/mame/drivers/novag_savant.cpp --- mame-0.223+dfsg.1/src/mame/drivers/novag_savant.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/novag_savant.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -372,7 +372,9 @@ config.set_perfect_quantum(m_mcu); SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); + m_board->set_delay(attotime::from_msec(200)); m_board->set_ui_enable(false); // no chesspieces + m_board->set_mod_enable(true); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/odyssey2.cpp mame-0.224+dfsg.1/src/mame/drivers/odyssey2.cpp --- mame-0.223+dfsg.1/src/mame/drivers/odyssey2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/odyssey2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,13 +1,72 @@ // license:BSD-3-Clause -// copyright-holders:Wilbert Pol +// copyright-holders:Wilbert Pol, hap /*************************************************************************** - /drivers/odyssey2.c +Driver file to handle emulation of the Magnavox Odyssey 2 (stylized Odyssey²), +Philips Videopac G7000 and Philips Videopac+ G7400. - Driver file to handle emulation of the Odyssey2. +Magnavox was wholly owned by Philips at the time. The console had a limited +release late-1978 in Europe as the Philips G7000, but the launch was quickly +halted due to a hardware defect, wide release continued in 1979. + +The 2 joysticks have no clear distinction between player 1 and 2, it differs +per game. And in MAME it's extra awkward due to the default input mapping +conflicting with the keyboard. + +Odyssey 2/Videopac hardware notes: +- Intel 8048 (1KB internal ROM, 64 bytes internal RAM) +- 128 bytes RAM(6810) +- Intel 8244 for video and sound (8245 on PAL consoles) +- 2 joysticks(either hardwired, or connectors), keyboard + +Videopac+ G7400 hardware notes: +- same base hardware +- Intel 8243 I/O expander +- EF9340 + EF9341 graphics chips + 6KB VRAM(3*2128, only 4KB used) +- larger keyboard + +XTAL notes (differs per model): +- Odyssey 2: 7.15909MHz +- G7000: 17.734476MHz +- C52/N60: 17.812 +- G7200: 5.911MHz + 3.547MHz +- G7400: 5.911MHz + 8.867MHz +- JO7400: 5.911MHz + 3.5625MHz + +TODO: +- backgamm doesn't draw all the chars/sprites, it does multiple screen updates + and writes to the ptr/color registers, but does not increment the Y regs +- 824x screen resolution is not strictly defined, height(243) is correct, but + horizontal overscan differs depending on monitor/tv? see syracuse for overscan +- 824x on the real console, overlapping characters on eachother will cause + glitches (it is used to an advantage in some as-of-yet undumped homebrews) +- 8244(NTSC) is not supposed to show characters near the upper border, but + hiding them will cause bugs in some Euro games +- 8245(PAL) video timing is not 100% accurate, though vtotal and htotal should + be correct +- ppp(the tetris game) does not work properly on PAL, is this homebrew NTSC-only, + or is PAL detection going wrong? It does look like PAL/NTSC detection is working, + see internal RAM $3D d7. So maybe it is due to inaccurate PAL video timing. + The game does mid-scanline updates. +- g7400 probably has different video timing too (not same as g7000) +- g7400 helicopt sometimes locks up at the sea level, timing related? +- 4in1 and musician are not supposed to work on g7400, but work fine on MAME, + caused by bus conflict or because they write to P2? +- verify odyssey3 cpu/video clocks +- odyssey3 keyboard layout is not the same as g7400, but there is no software + to test the scancodes +- partial screen updates aren't shown when using MAME's debugger, this is caused + by a forced full screen update and a reset_partial_updates in emu/video.cpp. + For the same reason, collision detection also won't work properly when stepping + through the debugger + +BTANB: +- a lot of PAL games have problems on NTSC (the other way around, not so much) +- g7400 games don't look correct on odyssey3 and vice versa: ef934x graphics are + placed lower on odyssey3 +- Blackjack (Videopac 5) does not work on G7400, caused by a removed BIOS routine - Minor update to "the voice" rom names, and add comment about - the older revision of "the voice" - LN, 10/03/08 +Plenty games have minor bugs not worth mentioning here. ***************************************************************************/ @@ -26,6 +85,8 @@ #include "speaker.h" +namespace { + class odyssey2_state : public driver_device { public: @@ -33,863 +94,746 @@ driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_i8244(*this, "i8244"), + m_screen(*this, "screen"), m_cart(*this, "cartslot"), m_keyboard(*this, "KEY.%u", 0), m_joysticks(*this, "JOY.%u", 0) { } - void odyssey2_cartslot(machine_config &config); - void videopac(machine_config &config); - void odyssey2(machine_config &config); + // Reset button is tied to 8048 RESET pin + DECLARE_INPUT_CHANGED_MEMBER(reset_button) { m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); } - void init_odyssey2(); + void odyssey2(machine_config &config); + void videopac(machine_config &config); + void videopacf(machine_config &config); - uint32_t screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void odyssey2_palette(palette_device &palette) const; protected: - required_device m_maincpu; required_device m_i8244; + required_device m_screen; required_device m_cart; - uint8_t m_ram[256]; - uint8_t m_p1; - uint8_t m_p2; - uint8_t m_lum; - + uint8_t m_ram[0x80]; + uint8_t m_p1 = 0xff; + uint8_t m_p2 = 0xff; DECLARE_READ_LINE_MEMBER(t1_read); - void odyssey2_palette(palette_device &palette) const; - - void scanline_postprocess(uint16_t data); void odyssey2_io(address_map &map); void odyssey2_mem(address_map &map); virtual void machine_start() override; - virtual void machine_reset() override; - - /* constants */ - static const uint8_t P1_BANK_LO_BIT = 0x01; - static const uint8_t P1_BANK_HI_BIT = 0x02; - static const uint8_t P1_KEYBOARD_SCAN_ENABLE = 0x04; /* active low */ - static const uint8_t P1_VDC_ENABLE = 0x08; /* active low */ - static const uint8_t P1_EXT_RAM_ENABLE = 0x10; /* active low */ - static const uint8_t P1_VPP_ENABLE = 0x20; /* active low */ - static const uint8_t P1_VDC_COPY_MODE_ENABLE = 0x40; - static const uint8_t P2_KEYBOARD_SELECT_MASK = 0x07; /* select row to scan */ - required_ioport_array<6> m_keyboard; + required_ioport_array<8> m_keyboard; required_ioport_array<2> m_joysticks; - uint8_t io_read(offs_t offset); - void io_write(offs_t offset, uint8_t data); + virtual uint8_t io_read(offs_t offset); + virtual void io_write(offs_t offset, uint8_t data); uint8_t bus_read(); - void bus_write(uint8_t data); - uint8_t p1_read(); void p1_write(uint8_t data); uint8_t p2_read(); void p2_write(uint8_t data); + +private: + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; class g7400_state : public odyssey2_state { public: - g7400_state(const machine_config &mconfig, device_type type, const char *tag) - : odyssey2_state(mconfig, type, tag) - , m_i8243(*this, "i8243") - , m_ef9340_1(*this, "ef9340_1") + g7400_state(const machine_config &mconfig, device_type type, const char *tag) : + odyssey2_state(mconfig, type, tag), + m_i8243(*this, "i8243"), + m_ef934x(*this, "ef934x") { } void g7400(machine_config &config); + void jo7400(machine_config &config); void odyssey3(machine_config &config); +protected: + virtual void machine_start() override; + + virtual uint8_t io_read(offs_t offset) override; + virtual void io_write(offs_t offset, uint8_t data) override; + private: required_device m_i8243; - required_device m_ef9340_1; + required_device m_ef934x; - void g7400_palette(palette_device &palette) const; - virtual void machine_start() override; - virtual void machine_reset() override; - void p2_write(uint8_t data); - uint8_t io_read(offs_t offset); - void io_write(offs_t offset, uint8_t data); - void i8243_p4_w(uint8_t data); - void i8243_p5_w(uint8_t data); - void i8243_p6_w(uint8_t data); - void i8243_p7_w(uint8_t data); - void scanline_postprocess(uint16_t data); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void g7400_io(address_map &map); + void p2_write(uint8_t data); + uint8_t io_vpp(offs_t offset, uint8_t data); + template void i8243_port_w(uint8_t data); - uint8_t m_ic674_decode[8]; - uint8_t m_ic678_decode[8]; + inline offs_t ef934x_extram_address(offs_t offset); + uint8_t ef934x_extram_r(offs_t offset); + void ef934x_extram_w(offs_t offset, uint8_t data); + + uint8_t m_mix_i8244 = 0xff; + uint8_t m_mix_ef934x = 0xff; + uint8_t m_ef934x_extram[0x800]; }; - -void odyssey2_state::odyssey2_mem(address_map &map) +void odyssey2_state::machine_start() { - map(0x0000, 0x03ff).rom(); - map(0x0400, 0x0bff).r(m_cart, FUNC(o2_cart_slot_device::read_rom04)); - map(0x0c00, 0x0fff).r(m_cart, FUNC(o2_cart_slot_device::read_rom0c)); -} - + memset(m_ram, 0, sizeof(m_ram)); -void odyssey2_state::odyssey2_io(address_map &map) -{ - map(0x00, 0xff).rw(FUNC(odyssey2_state::io_read), FUNC(odyssey2_state::io_write)); + save_item(NAME(m_ram)); + save_item(NAME(m_p1)); + save_item(NAME(m_p2)); } - -void g7400_state::g7400_io(address_map &map) +void g7400_state::machine_start() { - map(0x00, 0xff).rw(FUNC(g7400_state::io_read), FUNC(g7400_state::io_write)); -} - - -static INPUT_PORTS_START( odyssey2 ) - PORT_START("KEY.0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') - - PORT_START("KEY.1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?? :") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?? $") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('?') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - - PORT_START("KEY.2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR('+') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - - PORT_START("KEY.3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - - PORT_START("KEY.4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') - - PORT_START("KEY.5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('*') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR('/') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(DEF_STR( Yes )) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(DEF_STR( No )) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CLR") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\r') + odyssey2_state::machine_start(); + memset(m_ef934x_extram, 0, sizeof(m_ef934x_extram)); - PORT_START("JOY.0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT( 0xe0, 0xe0, IPT_UNUSED ) + save_item(NAME(m_mix_i8244)); + save_item(NAME(m_mix_ef934x)); + save_item(NAME(m_ef934x_extram)); +} - PORT_START("JOY.1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT( 0xe0, 0xe0, IPT_UNUSED ) -INPUT_PORTS_END -/* character sprite colors - dark grey, red, green, yellow, blue, violet, light grey, white - dark back / grid colors - black, dark blue, dark green, light green, red, violet, yellow, light grey - light back / grid colors - black, blue, green, light green, red, violet, yellow, light grey */ +/****************************************************************************** + Video +******************************************************************************/ constexpr rgb_t odyssey2_colors[] = { // Background,Grid Dim { 0x00, 0x00, 0x00 }, /* Black */ // i r g b - { 0x1a, 0x37, 0xbe }, /* Blue - Calibrated To Real VideoPac */ // i r g B - { 0x00, 0x6d, 0x07 }, /* Green - Calibrated To Real VideoPac */ // i r G b - { 0x2a, 0xaa, 0xbe }, /* Blue-Green - Calibrated To Real VideoPac */ // i r G B { 0x79, 0x00, 0x00 }, /* Red - Calibrated To Real VideoPac */ // i R g b - { 0x94, 0x30, 0x9f }, /* Violet - Calibrated To Real VideoPac */ // i R g B + { 0x00, 0x6d, 0x07 }, /* Green - Calibrated To Real VideoPac */ // i r G b { 0x77, 0x67, 0x0b }, /* Khaki - Calibrated To Real VideoPac */ // i R g B + { 0x1a, 0x37, 0xbe }, /* Blue - Calibrated To Real VideoPac */ // i r g B + { 0x94, 0x30, 0x9f }, /* Violet - Calibrated To Real VideoPac */ // i R g B + { 0x2a, 0xaa, 0xbe }, /* Blue-Green - Calibrated To Real VideoPac */ // i r G B { 0xce, 0xce, 0xce }, /* Lt Grey */ // i R G B // Background,Grid Bright { 0x67, 0x67, 0x67 }, /* Grey - Calibrated To Real VideoPac */ // I R g B - { 0x5c, 0x80, 0xf6 }, /* Lt Blue - Calibrated To Real VideoPac */ // I R g B - { 0x56, 0xc4, 0x69 }, /* Lt Green - Calibrated To Real VideoPac */ // I R g B - { 0x77, 0xe6, 0xeb }, /* Lt Blue-Green - Calibrated To Real VideoPac */ // I R g b { 0xc7, 0x51, 0x51 }, /* Lt Red - Calibrated To Real VideoPac */ // I R g b - { 0xdc, 0x84, 0xe8 }, /* Lt Violet - Calibrated To Real VideoPac */ // I R g B + { 0x56, 0xc4, 0x69 }, /* Lt Green - Calibrated To Real VideoPac */ // I R g B { 0xc6, 0xb8, 0x6a }, /* Lt Yellow - Calibrated To Real VideoPac */ // I R G b + { 0x5c, 0x80, 0xf6 }, /* Lt Blue - Calibrated To Real VideoPac */ // I R g B + { 0xdc, 0x84, 0xe8 }, /* Lt Violet - Calibrated To Real VideoPac */ // I R g B + { 0x77, 0xe6, 0xeb }, /* Lt Blue-Green - Calibrated To Real VideoPac */ // I R g b { 0xff, 0xff, 0xff } /* White */ // I R G B }; - void odyssey2_state::odyssey2_palette(palette_device &palette) const { palette.set_pen_colors(0, odyssey2_colors); } -void g7400_state::g7400_palette(palette_device &palette) const +uint32_t odyssey2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - constexpr rgb_t g7400_colors[]{ - { 0x00, 0x00, 0x00 }, // Black - { 0x1a, 0x37, 0xbe }, // Blue - { 0x00, 0x6d, 0x07 }, // Green - { 0x2a, 0xaa, 0xbe }, // Blue-Green - { 0x79, 0x00, 0x00 }, // Red - { 0x94, 0x30, 0x9f }, // Violet - { 0x77, 0x67, 0x0b }, // Khaki - { 0xce, 0xce, 0xce }, // Lt Grey - - { 0x67, 0x67, 0x67 }, // Grey - { 0x5c, 0x80, 0xf6 }, // Lt Blue - { 0x56, 0xc4, 0x69 }, // Lt Green - { 0x77, 0xe6, 0xeb }, // Lt Blue-Green - { 0xc7, 0x51, 0x51 }, // Lt Red - { 0xdc, 0x84, 0xe8 }, // Lt Violet - { 0xc6, 0xb8, 0x6a }, // Lt Yellow - { 0xff, 0xff, 0xff } // White - }; + m_i8244->screen_update(screen, bitmap, cliprect); - palette.set_pen_colors(0, g7400_colors); -} + u8 lum = ~m_p1 >> 4 & 0x08; -void odyssey2_state::init_odyssey2() -{ - uint8_t *gfx = memregion("gfx1")->base(); + // apply external LUM setting + for (int y = cliprect.min_y; y <= cliprect.max_y; y++) + for (int x = cliprect.min_x; x <= cliprect.max_x; x++) + bitmap.pix16(y, x) |= lum; - for (int i = 0; i < 256; i++) - { - gfx[i] = i; /* TODO: Why i and not 0? */ - m_ram[i] = 0; - } + return 0; } - -void odyssey2_state::machine_start() +uint32_t g7400_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - save_pointer(NAME(m_ram),256); - save_item(NAME(m_p1)); - save_item(NAME(m_p2)); - save_item(NAME(m_lum)); -} + u8 lum = ~m_p1 >> 4 & 0x08; + bitmap_ind16 *ef934x_bitmap = m_ef934x->get_bitmap(); + // apply external LUM setting + for (int y = cliprect.min_y; y <= cliprect.max_y; y++) + { + rectangle clip = cliprect; + clip.min_y = clip.max_y = y; -void odyssey2_state::machine_reset() -{ - m_lum = 0; + m_i8244->screen_update(screen, bitmap, clip); - /* jump to "last" bank, will work for all sizes due to being mirrored */ - m_p1 = 0xff; - m_p2 = 0xff; - m_cart->write_bank(m_p1); -} + for (int x = clip.min_x; x <= clip.max_x; x++) + { + uint16_t d = bitmap.pix16(y, x) & 7; + uint16_t e = ef934x_bitmap->pix16(y, x); + // i8244 decoder enable is masked with cartridge pin B + bool en = (e & 8) || !m_cart->b_read(); + e &= 7; + + // ef934x decoder output is tied to CX + bool i2 = !BIT(m_mix_ef934x, e); + m_i8244->write_cx(x, i2); -void g7400_state::machine_start() -{ - odyssey2_state::machine_start(); + if (en && BIT(m_mix_i8244, d)) + { + // Use i8245 input + bitmap.pix16(y, x) |= lum; + } + else + { + // Use EF934x input + bitmap.pix16(y, x) = e | (i2 ? 8 : 0); + } + } + } - save_pointer(NAME(m_ic674_decode),8); - save_pointer(NAME(m_ic678_decode),8); + return 0; } -void g7400_state::machine_reset() -{ - odyssey2_state::machine_reset(); - - for ( int i = 0; i < 8; i++ ) - { - m_ic674_decode[i] = 0; - m_ic678_decode[i] = 0; - } -} -/****** External RAM ******************************/ +/****************************************************************************** + I/O +******************************************************************************/ uint8_t odyssey2_state::io_read(offs_t offset) { - if ((m_p1 & (P1_VDC_COPY_MODE_ENABLE | P1_VDC_ENABLE)) == 0) - { - return m_i8244->read(offset); - } - if (!(m_p1 & P1_EXT_RAM_ENABLE)) - { - return m_ram[offset]; - } + u8 data = m_cart->io_read(offset); + if (!(m_p1 & 0x10) && ~offset & 0x80) + data &= m_ram[offset]; - return 0; -} + if ((m_p1 & 0x48) == 0) + data &= m_i8244->read(offset); + return data; +} void odyssey2_state::io_write(offs_t offset, uint8_t data) { - if ((m_p1 & (P1_EXT_RAM_ENABLE | P1_VDC_COPY_MODE_ENABLE)) == 0x00) + if (!(m_p1 & 0x40)) { - m_ram[offset] = data; - if (offset & 0x80) - { - logerror("voice write %02X, data = %02X (p1 = %02X)\n", offset, data, m_p1); - m_cart->io_write(offset, data); - } + m_cart->io_write(offset, data); + if (!(m_p1 & 0x10) && ~offset & 0x80) + m_ram[offset] = data; } - else if (!(m_p1 & P1_VDC_ENABLE)) - { + + if (!(m_p1 & 0x08)) m_i8244->write(offset, data); - } } -uint8_t g7400_state::io_read(offs_t offset) +// 8048 ports + +void odyssey2_state::p1_write(uint8_t data) { - if ((m_p1 & (P1_VDC_COPY_MODE_ENABLE | P1_VDC_ENABLE)) == 0) - { - return m_i8244->read(offset); - } - else if (!(m_p1 & P1_EXT_RAM_ENABLE)) - { - return m_ram[offset]; - } - else if (!(m_p1 & P1_VPP_ENABLE)) - { - return m_ef9340_1->ef9341_read( offset & 0x02, offset & 0x01 ); - } + // LUM changed + if ((m_p1 ^ data) & 0x80) + m_screen->update_now(); - return 0; + m_p1 = data; + m_cart->write_p1(m_p1 & 0x13); } - -void g7400_state::io_write(offs_t offset, uint8_t data) +uint8_t odyssey2_state::p2_read() { - if ((m_p1 & (P1_EXT_RAM_ENABLE | P1_VDC_COPY_MODE_ENABLE)) == 0x00) - { - m_ram[offset] = data; - if (offset & 0x80) - { - logerror("voice write %02X, data = %02X (p1 = %02X)\n", offset, data, m_p1); - m_cart->io_write(offset, data); - } - } - else if (!(m_p1 & P1_VDC_ENABLE)) - { - m_i8244->write(offset, data); - } - else if (!(m_p1 & P1_VPP_ENABLE)) + u8 data = 0xff; + + if (!(m_p1 & 0x04)) { - m_ef9340_1->ef9341_write( offset & 0x02, offset & 0x01, data ); + // 74148 priority encoder, GS to P24, outputs to P25-P27 + u8 inp = count_leading_zeros(m_keyboard[m_p2 & 0x07]->read()) - 24; + if (inp < 8) + data &= inp << 5 | 0xf; } + + return data; } +void odyssey2_state::p2_write(uint8_t data) +{ + m_p2 = data; + m_cart->write_p2(m_p2 & 0x0f); +} -void odyssey2_state::scanline_postprocess(uint16_t data) +uint8_t odyssey2_state::bus_read() { - int vpos = data; - bitmap_ind16 *bitmap = m_i8244->get_bitmap(); + u8 data = 0xff; - if ( vpos < i8244_device::START_Y || vpos >= i8244_device::START_Y + i8244_device::SCREEN_HEIGHT ) + if (!(m_p1 & 0x04)) { - return; + u8 sel = m_p2 & 0x07; + if (sel < 2) + data &= ~m_joysticks[sel]->read(); } - // apply external LUM setting - for ( int x = i8244_device::START_ACTIVE_SCAN; x < i8244_device::END_ACTIVE_SCAN; x++ ) - { - bitmap->pix16( vpos, x ) |= ( m_lum ^ 0x08 ); - } + return data; } - -void g7400_state::scanline_postprocess(uint16_t data) +READ_LINE_MEMBER(odyssey2_state::t1_read) { - int vpos = data; - int y = vpos - i8244_device::START_Y - 5; - bitmap_ind16 *bitmap = m_i8244->get_bitmap(); - bitmap_ind16 *ef934x_bitmap = m_ef9340_1->get_bitmap(); - - if ( vpos < i8244_device::START_Y || vpos >= i8244_device::START_Y + i8244_device::SCREEN_HEIGHT ) - { - return; - } + return m_i8244->vblank() | m_i8244->hblank(); +} - // apply external LUM setting - int x_real_start = i8244_device::START_ACTIVE_SCAN + i8244_device::BORDER_SIZE + 5; - int x_real_end = i8244_device::END_ACTIVE_SCAN - i8244_device::BORDER_SIZE + 5; - for ( int x = i8244_device::START_ACTIVE_SCAN; x < i8244_device::END_ACTIVE_SCAN; x++ ) - { - uint16_t d = bitmap->pix16( vpos, x ); - if ( ( ! m_ic678_decode[ d & 0x07 ] ) && x >= x_real_start && x < x_real_end && y >= 0 && y < 240 ) - { - // Use EF934x input - d = ef934x_bitmap->pix16( y, x - x_real_start ) & 0x07; +// G7400-specific - if ( ! m_ic674_decode[ d & 0x07 ] ) - { - d |= 0x08; - } - } - else - { - // Use i8245 input - d |= ( m_lum ^ 0x08 ); - } - bitmap->pix16( vpos, x ) = d; - } +uint8_t g7400_state::io_read(offs_t offset) +{ + u8 data = odyssey2_state::io_read(offset); + return io_vpp(offset, data); } - -uint32_t odyssey2_state::screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +void g7400_state::io_write(offs_t offset, uint8_t data) { - return m_i8244->screen_update(screen, bitmap, cliprect); + odyssey2_state::io_write(offset, data); + io_vpp(offset, data); } - -READ_LINE_MEMBER(odyssey2_state::t1_read) +uint8_t g7400_state::io_vpp(offs_t offset, uint8_t data) { - if ( m_i8244->vblank() || m_i8244->hblank() ) + if (!(m_p1 & 0x20)) { - return 1; + // A2 to R/W pin + if (offset & 4) + data &= m_ef934x->ef9341_read( offset & 0x02, offset & 0x01 ); + else + m_ef934x->ef9341_write( offset & 0x02, offset & 0x01, data ); } - return 0; -} - - -uint8_t odyssey2_state::p1_read() -{ - uint8_t data = m_p1; return data; } - -void odyssey2_state::p1_write(uint8_t data) +void g7400_state::p2_write(uint8_t data) { - m_p1 = data; - m_lum = ( data & 0x80 ) >> 4; - m_cart->write_bank(m_p1); + odyssey2_state::p2_write(data); + m_i8243->p2_w(m_p2 & 0x0f); } - -uint8_t odyssey2_state::p2_read() +template +void g7400_state::i8243_port_w(uint8_t data) { - uint8_t h = 0xFF; - int i, j; - - if (!(m_p1 & P1_KEYBOARD_SCAN_ENABLE)) + // P4,P5: color mix I8244 side (IC674) + // P6,P7: color mix EF9340 side (IC678) + u8 mask = 0xf; + if (~P & 1) { - if ((m_p2 & P2_KEYBOARD_SELECT_MASK) <= 5) /* read keyboard */ - { - h &= m_keyboard[m_p2 & P2_KEYBOARD_SELECT_MASK]->read(); - } - - for (i= 0x80, j = 0; i > 0; i >>= 1, j++) - { - if (!(h & i)) - { - m_p2 &= ~0x10; /* set key was pressed indicator */ - m_p2 = (m_p2 & ~0xE0) | (j << 5); /* column that was pressed */ + data <<= 4; + mask <<= 4; + } - break; - } - } + m_screen->update_now(); - if (h == 0xFF) /* active low inputs, so no keypresses */ - { - m_p2 = m_p2 | 0xF0; - } - } + if (P & 2) + m_mix_i8244 = (m_mix_i8244 & ~mask) | (data & mask); else - { - m_p2 = m_p2 | 0xF0; - } - - return m_p2; + m_mix_ef934x = (m_mix_ef934x & ~mask) | (data & mask); } -void odyssey2_state::p2_write(uint8_t data) +// EF9341 extended RAM + +offs_t g7400_state::ef934x_extram_address(offs_t offset) { - m_p2 = data; -} + u8 latch = (offset >> 12 & 0x80) | (offset >> 4 & 0x7f); + u16 address = (latch & 0x1f) | (offset << 9 & 0x200) | (latch << 3 & 0x400); + if (offset & 8) + return address | (latch & 0x60); + else + return address | (offset << 4 & 0x60) | (latch << 2 & 0x180); +} -void g7400_state::p2_write(uint8_t data) +uint8_t g7400_state::ef934x_extram_r(offs_t offset) { - m_p2 = data; - m_i8243->p2_w(m_p2 & 0x0f); + return m_ef934x_extram[ef934x_extram_address(offset)]; } - -uint8_t odyssey2_state::bus_read() +void g7400_state::ef934x_extram_w(offs_t offset, uint8_t data) { - uint8_t data = 0xff; - - if ((m_p2 & P2_KEYBOARD_SELECT_MASK) == 1) - { - data &= m_joysticks[0]->read(); - } + m_ef934x_extram[ef934x_extram_address(offset)] = data; +} - if ((m_p2 & P2_KEYBOARD_SELECT_MASK) == 0) - { - data &= m_joysticks[1]->read(); - } - return data; -} +/****************************************************************************** + Address Maps +******************************************************************************/ -void odyssey2_state::bus_write(uint8_t data) +void odyssey2_state::odyssey2_mem(address_map &map) { - logerror("%.6f bus written %.2x\n", machine().time().as_double(), data); + map(0x0000, 0x03ff).rom(); + map(0x0400, 0x0bff).r(m_cart, FUNC(o2_cart_slot_device::read_rom04)); + map(0x0c00, 0x0fff).r(m_cart, FUNC(o2_cart_slot_device::read_rom0c)); } - -/* - i8243 in the g7400 -*/ - -void g7400_state::i8243_p4_w(uint8_t data) +void odyssey2_state::odyssey2_io(address_map &map) { - // "port 4" - logerror("setting ef-port4 to %02x\n", data); - m_ic674_decode[4] = BIT(data,0); - m_ic674_decode[5] = BIT(data,1); - m_ic674_decode[6] = BIT(data,2); - m_ic674_decode[7] = BIT(data,3); + map(0x00, 0xff).rw(FUNC(odyssey2_state::io_read), FUNC(odyssey2_state::io_write)); } -void g7400_state::i8243_p5_w(uint8_t data) -{ - // "port 5" - logerror("setting ef-port5 to %02x\n", data); - m_ic674_decode[0] = BIT(data,0); - m_ic674_decode[1] = BIT(data,1); - m_ic674_decode[2] = BIT(data,2); - m_ic674_decode[3] = BIT(data,3); -} +/****************************************************************************** + Input Ports +******************************************************************************/ -void g7400_state::i8243_p6_w(uint8_t data) -{ - // "port 6" - logerror("setting vdc-port6 to %02x\n", data); - m_ic678_decode[4] = BIT(data,0); - m_ic678_decode[5] = BIT(data,1); - m_ic678_decode[6] = BIT(data,2); - m_ic678_decode[7] = BIT(data,3); -} +static INPUT_PORTS_START( odyssey2 ) + PORT_START("KEY.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') + PORT_START("KEY.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('?') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') -void g7400_state::i8243_p7_w(uint8_t data) -{ - // "port 7" - logerror("setting vdc-port7 to %02x\n", data); - m_ic678_decode[0] = BIT(data,0); - m_ic678_decode[1] = BIT(data,1); - m_ic678_decode[2] = BIT(data,2); - m_ic678_decode[3] = BIT(data,3); -} + PORT_START("KEY.2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR('+') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') + PORT_START("KEY.3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') -static const gfx_layout odyssey2_graphicslayout = -{ - 8,1, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - }, - /* y offsets */ - { 0 }, - 1*8 -}; + PORT_START("KEY.4") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') + PORT_START("KEY.5") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR('-') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"×") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('*') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"÷") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR('/') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y / Yes") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N / No") PORT_CODE(KEYCODE_N) PORT_CHAR('N') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(8) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) -static const gfx_layout odyssey2_spritelayout = -{ - 8,1, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { - 7,6,5,4,3,2,1,0 - }, - /* y offsets */ - { 0 }, - 1*8 -}; + PORT_START("KEY.6") + PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_START("KEY.7") + PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED) -static GFXDECODE_START( gfx_odyssey2 ) - GFXDECODE_ENTRY( "gfx1", 0x0000, odyssey2_graphicslayout, 0, 2 ) - GFXDECODE_ENTRY( "gfx1", 0x0000, odyssey2_spritelayout, 0, 2 ) -GFXDECODE_END + PORT_START("JOY.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(2) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) + PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_START("JOY.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(1) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) + PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_START("RESET") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, odyssey2_state, reset_button, 0) +INPUT_PORTS_END -void odyssey2_state::odyssey2_cartslot(machine_config &config) -{ - O2_CART_SLOT(config, m_cart, o2_cart, nullptr); +static INPUT_PORTS_START( g7400 ) + PORT_INCLUDE( odyssey2 ) - SOFTWARE_LIST(config, "cart_list").set_original("odyssey2"); -} + PORT_MODIFY("KEY.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 #") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('#') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"3 £") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR(0xa3) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') + + PORT_MODIFY("KEY.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') + + PORT_MODIFY("KEY.2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"+ \u2191") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR('+') PORT_CHAR(UCHAR_MAMEKEY(UP)) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') + + PORT_MODIFY("KEY.3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') + + PORT_MODIFY("KEY.4") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') + + PORT_MODIFY("KEY.5") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"- \u2193") PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR('-') PORT_CHAR(UCHAR_MAMEKEY(DOWN)) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"× \u2196") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(0xd7) PORT_CHAR(UCHAR_MAMEKEY(HOME)) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"÷ \u2190") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(0xf7) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"= \u2192") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y / Yes") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N / No") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear ;") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(8) PORT_CHAR(';') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter _") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(10) PORT_CHAR('_') + + PORT_MODIFY("KEY.6") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ret") PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*') + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("| @") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('|') PORT_CHAR('@') + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] [") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('[') + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"¨ ^") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0xa8) PORT_CHAR('^') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", /") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('/') + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("< >") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('<') PORT_CHAR('>') + + PORT_MODIFY("KEY.7") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(PAUSE)) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Cntl") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) +INPUT_PORTS_END + +/****************************************************************************** + Machine Configs +******************************************************************************/ + void odyssey2_state::odyssey2(machine_config &config) { /* basic machine hardware */ - I8048(config, m_maincpu, ((XTAL(7'159'090) * 3) / 4)); + I8048(config, m_maincpu, (7.15909_MHz_XTAL * 3) / 4); m_maincpu->set_addrmap(AS_PROGRAM, &odyssey2_state::odyssey2_mem); m_maincpu->set_addrmap(AS_IO, &odyssey2_state::odyssey2_io); - m_maincpu->p1_in_cb().set(FUNC(odyssey2_state::p1_read)); m_maincpu->p1_out_cb().set(FUNC(odyssey2_state::p1_write)); m_maincpu->p2_in_cb().set(FUNC(odyssey2_state::p2_read)); m_maincpu->p2_out_cb().set(FUNC(odyssey2_state::p2_write)); m_maincpu->bus_in_cb().set(FUNC(odyssey2_state::bus_read)); - m_maincpu->bus_out_cb().set(FUNC(odyssey2_state::bus_write)); m_maincpu->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read)); m_maincpu->t1_in_cb().set(FUNC(odyssey2_state::t1_read)); - config.set_maximum_quantum(attotime::from_hz(60)); - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_screen_update(FUNC(odyssey2_state::screen_update_odyssey2)); - screen.set_palette("palette"); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_screen_update(FUNC(odyssey2_state::screen_update)); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_palette("palette"); - GFXDECODE(config, "gfxdecode", "palette", gfx_odyssey2); - PALETTE(config, "palette", FUNC(odyssey2_state::odyssey2_palette), 32); + PALETTE(config, "palette", FUNC(odyssey2_state::odyssey2_palette), 16); - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - I8244(config, m_i8244, XTAL(7'159'090)/2 * 2); + I8244(config, m_i8244, 7.15909_MHz_XTAL / 2); m_i8244->set_screen("screen"); + m_i8244->set_screen_size(360, 243); m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ); - m_i8244->postprocess_cb().set(FUNC(odyssey2_state::scanline_postprocess)); m_i8244->add_route(ALL_OUTPUTS, "mono", 0.40); - odyssey2_cartslot(config); -} + SPEAKER(config, "mono").front_center(); + /* cartridge */ + O2_CART_SLOT(config, m_cart, o2_cart, nullptr); + SOFTWARE_LIST(config, "cart_list").set_original("odyssey2").set_filter("O2"); + SOFTWARE_LIST(config, "g7400_list").set_compatible("g7400").set_filter("O2"); +} void odyssey2_state::videopac(machine_config &config) { - /* basic machine hardware */ - I8048(config, m_maincpu, (XTAL(17'734'470) / 3)); - m_maincpu->set_addrmap(AS_PROGRAM, &odyssey2_state::odyssey2_mem); - m_maincpu->set_addrmap(AS_IO, &odyssey2_state::odyssey2_io); - m_maincpu->p1_in_cb().set(FUNC(odyssey2_state::p1_read)); - m_maincpu->p1_out_cb().set(FUNC(odyssey2_state::p1_write)); - m_maincpu->p2_in_cb().set(FUNC(odyssey2_state::p2_read)); - m_maincpu->p2_out_cb().set(FUNC(odyssey2_state::p2_write)); - m_maincpu->bus_in_cb().set(FUNC(odyssey2_state::bus_read)); - m_maincpu->bus_out_cb().set(FUNC(odyssey2_state::bus_write)); - m_maincpu->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read)); - m_maincpu->t1_in_cb().set(FUNC(odyssey2_state::t1_read)); - - config.set_maximum_quantum(attotime::from_hz(60)); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_screen_update(FUNC(odyssey2_state::screen_update_odyssey2)); - screen.set_palette("palette"); - - GFXDECODE(config, "gfxdecode", "palette", gfx_odyssey2); - PALETTE(config, "palette", FUNC(odyssey2_state::odyssey2_palette), 16); + odyssey2(config); - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - I8245(config, m_i8244, XTAL(17'734'470)/5 * 2); + // PAL video chip + I8245(config.replace(), m_i8244, 17.734476_MHz_XTAL / 5); m_i8244->set_screen("screen"); + m_i8244->set_screen_size(360, 243); m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ); - m_i8244->postprocess_cb().set(FUNC(odyssey2_state::scanline_postprocess)); m_i8244->add_route(ALL_OUTPUTS, "mono", 0.40); - odyssey2_cartslot(config); + m_maincpu->set_clock(17.734476_MHz_XTAL / 3); + + subdevice("cart_list")->set_filter("VP"); + subdevice("g7400_list")->set_filter("VP"); +} + +void odyssey2_state::videopacf(machine_config &config) +{ + videopac(config); + + // different master XTAL + m_maincpu->set_clock(17.812_MHz_XTAL / 3); + m_i8244->set_clock(17.812_MHz_XTAL / 5); } void g7400_state::g7400(machine_config &config) { /* basic machine hardware */ - I8048(config, m_maincpu, XTAL(5'911'000)); + I8048(config, m_maincpu, 5.911_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &g7400_state::odyssey2_mem); - m_maincpu->set_addrmap(AS_IO, &g7400_state::g7400_io); - m_maincpu->p1_in_cb().set(FUNC(g7400_state::p1_read)); + m_maincpu->set_addrmap(AS_IO, &g7400_state::odyssey2_io); m_maincpu->p1_out_cb().set(FUNC(g7400_state::p1_write)); m_maincpu->p2_in_cb().set(FUNC(g7400_state::p2_read)); m_maincpu->p2_out_cb().set(FUNC(g7400_state::p2_write)); m_maincpu->bus_in_cb().set(FUNC(g7400_state::bus_read)); - m_maincpu->bus_out_cb().set(FUNC(g7400_state::bus_write)); m_maincpu->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read)); m_maincpu->t1_in_cb().set(FUNC(g7400_state::t1_read)); m_maincpu->prog_out_cb().set(m_i8243, FUNC(i8243_device::prog_w)); - config.set_maximum_quantum(attotime::from_hz(60)); - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_screen_update(FUNC(odyssey2_state::screen_update_odyssey2)); - screen.set_palette("palette"); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_screen_update(FUNC(g7400_state::screen_update)); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_palette("palette"); - GFXDECODE(config, "gfxdecode", "palette", gfx_odyssey2); - PALETTE(config, "palette", FUNC(g7400_state::g7400_palette), 16); + PALETTE(config, "palette", m_i8244, FUNC(i8244_device::i8244_palette), 16); I8243(config, m_i8243); - m_i8243->p4_out_cb().set(FUNC(g7400_state::i8243_p4_w)); - m_i8243->p5_out_cb().set(FUNC(g7400_state::i8243_p5_w)); - m_i8243->p6_out_cb().set(FUNC(g7400_state::i8243_p6_w)); - m_i8243->p7_out_cb().set(FUNC(g7400_state::i8243_p7_w)); + m_i8243->p4_out_cb().set(FUNC(g7400_state::i8243_port_w<0>)); + m_i8243->p5_out_cb().set(FUNC(g7400_state::i8243_port_w<1>)); + m_i8243->p6_out_cb().set(FUNC(g7400_state::i8243_port_w<2>)); + m_i8243->p7_out_cb().set(FUNC(g7400_state::i8243_port_w<3>)); + + EF9340_1(config, m_ef934x, (8.867_MHz_XTAL * 2) / 5, "screen"); + m_ef934x->set_offsets(15, 5); + m_ef934x->read_exram().set(FUNC(g7400_state::ef934x_extram_r)); + m_ef934x->write_exram().set(FUNC(g7400_state::ef934x_extram_w)); - EF9340_1(config, m_ef9340_1, 3540000, "screen"); - - SPEAKER(config, "mono").front_center(); - I8245(config, m_i8244, 3540000 * 2); + I8245(config, m_i8244, (8.867_MHz_XTAL * 2) / 5); m_i8244->set_screen("screen"); + m_i8244->set_screen_size(360, 243); m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ); - m_i8244->postprocess_cb().set(FUNC(g7400_state::scanline_postprocess)); m_i8244->add_route(ALL_OUTPUTS, "mono", 0.40); - odyssey2_cartslot(config); - SOFTWARE_LIST(config.replace(), "cart_list").set_original("g7400"); - SOFTWARE_LIST(config, "ody2_list").set_compatible("odyssey2"); + SPEAKER(config, "mono").front_center(); + + /* cartridge */ + O2_CART_SLOT(config, m_cart, o2_cart, nullptr); + SOFTWARE_LIST(config, "cart_list").set_original("g7400").set_filter("VPP"); + SOFTWARE_LIST(config, "ody2_list").set_compatible("odyssey2").set_filter("VPP"); } +void g7400_state::jo7400(machine_config &config) +{ + g7400(config); + + // different video clock + m_i8244->set_clock(3.5625_MHz_XTAL); + m_ef934x->set_clock(3.5625_MHz_XTAL); +} void g7400_state::odyssey3(machine_config &config) { - /* basic machine hardware */ - I8048(config, m_maincpu, XTAL(5'911'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &g7400_state::odyssey2_mem); - m_maincpu->set_addrmap(AS_IO, &g7400_state::g7400_io); - m_maincpu->p1_in_cb().set(FUNC(g7400_state::p1_read)); - m_maincpu->p1_out_cb().set(FUNC(g7400_state::p1_write)); - m_maincpu->p2_in_cb().set(FUNC(g7400_state::p2_read)); - m_maincpu->p2_out_cb().set(FUNC(g7400_state::p2_write)); - m_maincpu->bus_in_cb().set(FUNC(g7400_state::bus_read)); - m_maincpu->bus_out_cb().set(FUNC(g7400_state::bus_write)); - m_maincpu->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read)); - m_maincpu->t1_in_cb().set(FUNC(g7400_state::t1_read)); - m_maincpu->prog_out_cb().set(m_i8243, FUNC(i8243_device::prog_w)); + g7400(config); - config.set_maximum_quantum(attotime::from_hz(60)); + // NTSC video chip + I8244(config.replace(), m_i8244, 7.15909_MHz_XTAL / 2); + m_i8244->set_screen("screen"); + m_i8244->set_screen_size(360, 243); + m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ); + m_i8244->add_route(ALL_OUTPUTS, "mono", 0.40); - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_screen_update(FUNC(odyssey2_state::screen_update_odyssey2)); - screen.set_palette("palette"); + m_ef934x->set_clock(7.15909_MHz_XTAL / 2); + m_ef934x->set_offsets(15, 15); - GFXDECODE(config, "gfxdecode", "palette", gfx_odyssey2); - PALETTE(config, "palette", FUNC(g7400_state::g7400_palette), 16); + m_maincpu->set_clock((7.15909_MHz_XTAL * 3) / 4); - I8243(config, m_i8243); - m_i8243->p4_out_cb().set(FUNC(g7400_state::i8243_p4_w)); - m_i8243->p5_out_cb().set(FUNC(g7400_state::i8243_p5_w)); - m_i8243->p6_out_cb().set(FUNC(g7400_state::i8243_p6_w)); - m_i8243->p7_out_cb().set(FUNC(g7400_state::i8243_p7_w)); + // same color encoder as O2 (no RGB port) + PALETTE(config.replace(), "palette", FUNC(odyssey2_state::odyssey2_palette), 16); - EF9340_1(config, m_ef9340_1, 3540000, "screen"); + subdevice("cart_list")->set_filter("O3"); + subdevice("ody2_list")->set_filter("O3"); +} - SPEAKER(config, "mono").front_center(); - I8244(config, m_i8244, 3540000 * 2); - m_i8244->set_screen("screen"); - m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ); - m_i8244->postprocess_cb().set(FUNC(g7400_state::scanline_postprocess)); - m_i8244->add_route(ALL_OUTPUTS, "mono", 0.40); - odyssey2_cartslot(config); - SOFTWARE_LIST(config.replace(), "cart_list").set_original("g7400"); - SOFTWARE_LIST(config, "ody2_list").set_compatible("odyssey2"); -} +/****************************************************************************** + ROM Definitions +******************************************************************************/ ROM_START (odyssey2) - ROM_REGION(0x10000,"maincpu",0) /* safer for the memory handler/bankswitching??? */ + ROM_REGION(0x0400,"maincpu",0) ROM_LOAD ("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee)) - ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF) ROM_END - ROM_START (videopac) - ROM_REGION(0x10000,"maincpu",0) /* safer for the memory handler/bankswitching??? */ - ROM_SYSTEM_BIOS( 0, "g7000", "g7000" ) - ROMX_LOAD ("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee), ROM_BIOS(0)) - ROM_SYSTEM_BIOS( 1, "c52", "c52" ) - ROMX_LOAD ("c52.bin", 0x0000, 0x0400, CRC(a318e8d6) SHA1(a6120aed50831c9c0d95dbdf707820f601d9452e), ROM_BIOS(1)) - ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF) + ROM_REGION(0x0400,"maincpu",0) + ROM_LOAD ("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee)) +ROM_END + +ROM_START (videopacf) + ROM_REGION(0x0400,"maincpu",0) + ROM_LOAD ("c52.rom", 0x0000, 0x0400, CRC(a318e8d6) SHA1(a6120aed50831c9c0d95dbdf707820f601d9452e)) ROM_END ROM_START (g7400) - ROM_REGION(0x10000,"maincpu",0) /* safer for the memory handler/bankswitching??? */ + ROM_REGION(0x0400,"maincpu",0) ROM_LOAD ("g7400.bin", 0x0000, 0x0400, CRC(e20a9f41) SHA1(5130243429b40b01a14e1304d0394b8459a6fbae)) - ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF) ROM_END - ROM_START (jopac) - ROM_REGION(0x10000,"maincpu",0) /* safer for the memory handler/bankswitching??? */ + ROM_REGION(0x0400,"maincpu",0) ROM_LOAD ("jopac.bin", 0x0000, 0x0400, CRC(11647ca5) SHA1(54b8d2c1317628de51a85fc1c424423a986775e4)) - ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF) ROM_END - ROM_START (odyssey3) - ROM_REGION(0x10000, "maincpu", 0) + ROM_REGION(0x0400, "maincpu", 0) ROM_LOAD ("odyssey3.bin", 0x0000, 0x0400, CRC(e2b23324) SHA1(0a38c5f2cea929d2fe0a23e5e1a60de9155815dc)) - - ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, odyssey2, 0, 0, odyssey2, odyssey2, odyssey2_state, init_odyssey2, "Magnavox", "Odyssey 2", 0 ) -COMP( 1979, videopac, odyssey2, 0, videopac, odyssey2, odyssey2_state, init_odyssey2, "Philips", "Videopac G7000/C52", 0 ) -COMP( 1983, g7400, odyssey2, 0, g7400, odyssey2, g7400_state, init_odyssey2, "Philips", "Videopac Plus G7400", MACHINE_IMPERFECT_GRAPHICS ) -COMP( 1983, jopac, odyssey2, 0, g7400, odyssey2, g7400_state, init_odyssey2, "Brandt", "Jopac JO7400", MACHINE_IMPERFECT_GRAPHICS ) -COMP( 1983, odyssey3, odyssey2, 0, odyssey3, odyssey2, g7400_state, init_odyssey2, "Magnavox", "Odyssey 3 Command Center (prototype)", MACHINE_IMPERFECT_GRAPHICS ) +} // anonymous namespace + + + +/****************************************************************************** + Drivers +******************************************************************************/ + +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +COMP( 1979, odyssey2, 0, 0, odyssey2, odyssey2, odyssey2_state, empty_init, "Magnavox", "Odyssey 2 (US)", MACHINE_SUPPORTS_SAVE ) +COMP( 1978, videopac, odyssey2, 0, videopac, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac G7000 (Europe)", MACHINE_SUPPORTS_SAVE ) +COMP( 1979, videopacf, odyssey2, 0, videopacf, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac C52 (France)", MACHINE_SUPPORTS_SAVE ) + +COMP( 1983, g7400, 0, 0, g7400, g7400, g7400_state, empty_init, "Philips", "Videopac+ G7400 (Europe)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, jopac, g7400, 0, jo7400, g7400, g7400_state, empty_init, "Philips (Brandt license)", "Jopac JO7400 (France)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, odyssey3, g7400, 0, odyssey3, g7400, g7400_state, empty_init, "Magnavox", "Odyssey 3 Command Center (US, prototype)", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/pasopia.cpp mame-0.224+dfsg.1/src/mame/drivers/pasopia.cpp --- mame-0.223+dfsg.1/src/mame/drivers/pasopia.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/pasopia.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -392,6 +392,7 @@ CASSETTE(config, m_cass); m_cass->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); m_cass->add_route(ALL_OUTPUTS, "mono", 0.05); + m_cass->set_interface("pasopia_cass"); PASOPIA_PAC2(config, "dtfcst", pac2_default_devices, nullptr); // "Data File Cassette" PASOPIA_PAC2(config, "dtfunt", pac2_default_devices, nullptr); // "Data File Unit" diff -Nru mame-0.223+dfsg.1/src/mame/drivers/pc8801.cpp mame-0.224+dfsg.1/src/mame/drivers/pc8801.cpp --- mame-0.223+dfsg.1/src/mame/drivers/pc8801.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/pc8801.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2379,6 +2379,7 @@ //CENTRONICS(config, "centronics", centronics_devices, "printer"); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); + m_cassette->set_interface("pc8801_cass"); SOFTWARE_LIST(config, "tape_list").set_original("pc8801_cass"); @@ -2403,6 +2404,7 @@ /* sound hardware */ SPEAKER(config, "mono").front_center(); + m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); YM2203(config, m_opn, MASTER_CLOCK); m_opn->irq_handler().set(FUNC(pc8801_state::pc8801_sound_irq)); m_opn->port_a_read_callback().set(FUNC(pc8801_state::opn_porta_r)); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/pcd.cpp mame-0.224+dfsg.1/src/mame/drivers/pcd.cpp --- mame-0.223+dfsg.1/src/mame/drivers/pcd.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/pcd.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -239,7 +239,7 @@ //logerror("%s: mmu read %04x %04x\n", machine().describe_context(), (offset << 1) + 0x8000, data); if(!offset) return m_mmu.ctl; - else if((offset >= 0x200) && (offset < 0x300) && !(offset & 3)) + else if((offset >= 0x200) && (offset < 0x400) && !(offset & 3)) return (data << 4) | (data >> 12) | (m_mmu.sc && (offset == 0x200) ? 0xc0 : 0); else if(offset == 0x400) { @@ -254,7 +254,7 @@ //logerror("%s: mmu write %04x %04x\n", machine().describe_context(), (offset << 1) + 0x8000, data); if(!offset) m_mmu.ctl = data; - else if((offset >= 0x200) && (offset < 0x300) && !(offset & 3)) + else if((offset >= 0x200) && (offset < 0x400) && !(offset & 3)) m_mmu.regs[((m_mmu.ctl & 0x1f) << 5) | ((offset >> 2) & 0x1f)] = (data >> 4) | (data << 12); else if(offset == 0x400) { @@ -376,7 +376,7 @@ reg = m_mmu.regs[((offset >> 10) & 0xff) | ((m_mmu.ctl & 0x18) << 5)]; else reg = m_mmu.regs[((offset >> 10) & 0x7f) | ((m_mmu.ctl & 0x1c) << 5)]; - if(!reg && !machine().side_effects_disabled()) + if(!(reg & 1) && !machine().side_effects_disabled()) { offset <<= 1; logerror("%s: Null mmu entry %06x\n", machine().describe_context(), offset); @@ -398,7 +398,7 @@ reg = m_mmu.regs[((offset >> 10) & 0xff) | ((m_mmu.ctl & 0x18) << 5)]; else reg = m_mmu.regs[((offset >> 10) & 0x7f) | ((m_mmu.ctl & 0x1c) << 5)]; - if(!reg && !machine().side_effects_disabled()) + if(!(reg & 2) && !machine().side_effects_disabled()) { offset <<= 1; logerror("%s: Null mmu entry %06x\n", machine().describe_context(), offset); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/peoplepc.cpp mame-0.224+dfsg.1/src/mame/drivers/peoplepc.cpp --- mame-0.223+dfsg.1/src/mame/drivers/peoplepc.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/peoplepc.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -25,6 +25,7 @@ #include "emu.h" #include "cpu/i86/i86.h" +#include "cpu/mcs48/mcs48.h" #include "imagedev/floppy.h" #include "machine/pic8259.h" #include "machine/pit8253.h" @@ -80,8 +81,6 @@ MC6845_UPDATE_ROW(update_row); uint8_t get_slave_ack(offs_t offset); void charram_w(offs_t offset, uint16_t data); - DECLARE_WRITE_LINE_MEMBER(tty_clock_tick_w); - DECLARE_WRITE_LINE_MEMBER(kbd_clock_tick_w); void dmapg_w(uint8_t data); void p7c_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(tc_w); @@ -155,18 +154,6 @@ m_gfxdecode->gfx(0)->mark_dirty(offset/16); } -WRITE_LINE_MEMBER(peoplepc_state::tty_clock_tick_w) -{ - m_8251ser->write_txc(state); - m_8251ser->write_rxc(state); -} - -WRITE_LINE_MEMBER(peoplepc_state::kbd_clock_tick_w) -{ - m_8251key->write_txc(state); - m_8251key->write_rxc(state); -} - void peoplepc_state::dmapg_w(uint8_t data) { m_dma0pg = data; @@ -287,20 +274,22 @@ m_maincpu->set_addrmap(AS_IO, &peoplepc_state::peoplepc_io); m_maincpu->set_irq_acknowledge_callback("pic8259_0", FUNC(pic8259_device::inta_cb)); - pit8253_device &pit8253(PIT8253(config, "pit8253", 0)); + pit8253_device &pit8253(PIT8253(config, "pit8253")); pit8253.set_clk<0>(XTAL(14'745'600)/6); - pit8253.out_handler<0>().set(FUNC(peoplepc_state::kbd_clock_tick_w)); + pit8253.out_handler<0>().set(m_8251key, FUNC(i8251_device::write_txc)); + pit8253.out_handler<0>().append(m_8251key, FUNC(i8251_device::write_rxc)); + pit8253.out_handler<0>().append("pit8253", FUNC(pit8253_device::write_clk2)); pit8253.set_clk<1>(XTAL(14'745'600)/6); - pit8253.out_handler<1>().set(FUNC(peoplepc_state::tty_clock_tick_w)); - pit8253.set_clk<2>(XTAL(14'745'600)/6); + pit8253.out_handler<1>().set(m_8251ser, FUNC(i8251_device::write_txc)); + pit8253.out_handler<1>().append(m_8251ser, FUNC(i8251_device::write_rxc)); pit8253.out_handler<2>().set("pic8259_0", FUNC(pic8259_device::ir0_w)); - pic8259_device &pic8259_0(PIC8259(config, "pic8259_0", 0)); + pic8259_device &pic8259_0(PIC8259(config, "pic8259_0")); pic8259_0.out_int_callback().set_inputline(m_maincpu, 0); pic8259_0.in_sp_callback().set_constant(1); pic8259_0.read_slave_ack_callback().set(FUNC(peoplepc_state::get_slave_ack)); - PIC8259(config, m_pic_1, 0); + PIC8259(config, m_pic_1); m_pic_1->out_int_callback().set("pic8259_0", FUNC(pic8259_device::ir7_w)); m_pic_1->in_sp_callback().set_constant(0); @@ -327,13 +316,13 @@ m_dmac->in_ior_cb<0>().set("upd765", FUNC(upd765a_device::dma_r)); m_dmac->out_iow_cb<0>().set("upd765", FUNC(upd765a_device::dma_w)); - UPD765A(config, m_fdc, 8'000'000, true, true); + UPD765A(config, m_fdc, XTAL(8'000'000)/2, true, true); m_fdc->intrq_wr_callback().set("pic8259_0", FUNC(pic8259_device::ir2_w)); m_fdc->drq_wr_callback().set(m_dmac, FUNC(i8257_device::dreq0_w)); FLOPPY_CONNECTOR(config, "upd765:0", peoplepc_floppies, "525qd", peoplepc_state::floppy_formats); FLOPPY_CONNECTOR(config, "upd765:1", peoplepc_floppies, "525qd", peoplepc_state::floppy_formats); - I8251(config, m_8251key, 0); + I8251(config, m_8251key, XTAL(14'745'600)/6); m_8251key->rxrdy_handler().set("pic8259_1", FUNC(pic8259_device::ir1_w)); m_8251key->txd_handler().set("kbd", FUNC(rs232_port_device::write_txd)); @@ -341,17 +330,32 @@ kbd.rxd_handler().set(m_8251key, FUNC(i8251_device::write_rxd)); kbd.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard)); - I8251(config, m_8251ser, 0); + I8048(config, "kbdmcu", 4'608'000).set_disable(); // XTAL unknown + + I8251(config, m_8251ser, XTAL(14'745'600)/6); + m_8251ser->rxrdy_handler().set("pic8259_0", FUNC(pic8259_device::ir5_w)); + m_8251ser->txrdy_handler().set("pic8259_0", FUNC(pic8259_device::ir6_w)); + m_8251ser->txd_handler().set("rs232c", FUNC(rs232_port_device::write_txd)); + m_8251ser->rts_handler().set("rs232c", FUNC(rs232_port_device::write_rts)); + m_8251ser->dtr_handler().set("rs232c", FUNC(rs232_port_device::write_dtr)); + + rs232_port_device &rs232c(RS232_PORT(config, "rs232c", default_rs232_devices, nullptr)); + rs232c.rxd_handler().set(m_8251ser, FUNC(i8251_device::write_rxd)); + rs232c.dsr_handler().set(m_8251ser, FUNC(i8251_device::write_dsr)); + rs232c.cts_handler().set(m_8251ser, FUNC(i8251_device::write_cts)); } ROM_START( olypeopl ) - ROM_REGION(0x2000,"maincpu", 0) + ROM_REGION(0x2000, "maincpu", 0) ROM_SYSTEM_BIOS(0, "hd", "HD ROM") ROMX_LOAD( "u01271c0.bin", 0x00000, 0x1000, CRC(8e0ef114) SHA1(774bab0a3e29853e9f6b951cf73082063ea61e6d), ROM_SKIP(1) | ROM_BIOS(0)) ROMX_LOAD( "u01271d0.bin", 0x00001, 0x1000, CRC(e2419bf9) SHA1(d88381f8709c91e2adba08f378e29bd0d19ee5ae), ROM_SKIP(1) | ROM_BIOS(0)) ROM_SYSTEM_BIOS(1, "2fd", "2 FD ROM") ROMX_LOAD( "u01277f3.bin", 0x00000, 0x1000, CRC(428ff135) SHA1(ec11f0e43455570c40f5dc4b84f8420da5939368), ROM_SKIP(1) | ROM_BIOS(1)) ROMX_LOAD( "u01277g3.bin", 0x00001, 0x1000, CRC(3295691c) SHA1(7d7ade62117d11656b8dd86cf0703127616d55bc), ROM_SKIP(1) | ROM_BIOS(1)) + + ROM_REGION(0x400, "kbdmcu", 0) + ROM_LOAD( "m1.bin", 0x000, 0x400, NO_DUMP ) ROM_END -COMP( 198?, olypeopl, 0, 0, olypeopl, 0, peoplepc_state, empty_init, "Olympia", "People PC", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +COMP( 1983, olypeopl, 0, 0, olypeopl, 0, peoplepc_state, empty_init, "Olympia", "People PC", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/pgm.cpp mame-0.224+dfsg.1/src/mame/drivers/pgm.cpp --- mame-0.223+dfsg.1/src/mame/drivers/pgm.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/pgm.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -182,7 +182,7 @@ SW1 - Push button switch to enter Test Mode SW2 - 8 position DIP Switch (for configuration of PCB/game options) SW3 - SPDT switch , to clear the NVRAM and reset the whole system - TD62064 - Toshiba NPN 50V 1.5A Quad Darlinton Switch; for driving coin meters (DIP16) + TD62064 - Toshiba NPN 50V 1.5A Quad Darlington Switch; for driving coin meters (DIP16) TDA1519A - Philips 2x 6W Stereo Power AMP (SIL9) uPD6379 - NEC 2-channel 16-bit D/A converter 10mW typ. (SOIC8) uPC844C - NEC Quad High Speed Wide Band Operational Amplifier (DIP14) @@ -265,7 +265,7 @@ } else { - /* this might not be 100% correct, but several of the games (ddp2, puzzli2 etc. expect the z80 to be turned + /* this might not be 100% correct, but several of the games (ddp2, puzzli2 etc.) expect the z80 to be turned off during data uploads, they write here before the upload */ m_soundcpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); } @@ -570,51 +570,51 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END ROM_START( orlegende ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "p0102.rom", 0x100000, 0x200000, CRC(4d0f6cc5) SHA1(8d41f0a712fb11a1da865f5159e5e27447b4388a) ) + ROM_LOAD16_WORD_SWAP( "pgm_p0102.u2", 0x100000, 0x200000, CRC(4d0f6cc5) SHA1(8d41f0a712fb11a1da865f5159e5e27447b4388a) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END ROM_START( orlegendc ) @@ -624,24 +624,24 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END ROM_START( orlegendca ) @@ -651,24 +651,24 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END @@ -681,10 +681,10 @@ IGS PCB NO-0134-1 IGS PCB NO-0135 -OLV111CH.U11 [b80ddd3c] -OLV111CH.U6 [5fb86373] -OLV111CH.U7 [6ee79faf] -OLV111CH.U9 [83cf09c8] +OLV 111 CHINA U11.U11 [b80ddd3c] +OLV 111 CHINA U6.U6 [5fb86373] +OLV 111 CHINA U7.U7 [6ee79faf] +OLV 111 CHINA U9.U9 [83cf09c8] T0100.U8 @@ -706,92 +706,154 @@ ROM_START( orlegend111c ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "olv111ch.u6", 0x100001, 0x080000, CRC(5fb86373) SHA1(2fc58eff1f38754c75819fde666244b867ca4f05) ) - ROM_LOAD16_BYTE( "olv111ch.u9", 0x100000, 0x080000, CRC(83cf09c8) SHA1(959780b45326059517f3008a356657f4f3d2908f) ) - ROM_LOAD16_BYTE( "olv111ch.u7", 0x200001, 0x080000, CRC(6ee79faf) SHA1(039b4b07b8577f0d3022ae01210c00375624cb3c) ) - ROM_LOAD16_BYTE( "olv111ch.u11", 0x200000, 0x080000, CRC(b80ddd3c) SHA1(55c700ce71ffdee392e03fd9d4719542c3527132) ) + ROM_LOAD16_BYTE( "olv_111_china_u6.u6", 0x100001, 0x080000, CRC(5fb86373) SHA1(2fc58eff1f38754c75819fde666244b867ca4f05) ) + ROM_LOAD16_BYTE( "olv_111_china_u9.u9", 0x100000, 0x080000, CRC(83cf09c8) SHA1(959780b45326059517f3008a356657f4f3d2908f) ) + ROM_LOAD16_BYTE( "olv_111_china_u7.u7", 0x200001, 0x080000, CRC(6ee79faf) SHA1(039b4b07b8577f0d3022ae01210c00375624cb3c) ) + ROM_LOAD16_BYTE( "olv_111_china_u11.u11", 0x200000, 0x080000, CRC(b80ddd3c) SHA1(55c700ce71ffdee392e03fd9d4719542c3527132) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END ROM_START( orlegend111t ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "olv111tw.u6", 0x100001, 0x080000, CRC(b205a733) SHA1(33f4c9162e36be4957004f80593f94fc33b163f8) ) - ROM_LOAD16_BYTE( "olv111tw.u9", 0x100000, 0x080000, CRC(6d9d29b4) SHA1(29a18de7e5b58c2f3125d6dc9cc8a8186180e956) ) - ROM_LOAD16_BYTE( "olv111tw.u7", 0x200001, 0x080000, CRC(27628e87) SHA1(a0effd83dc57ac72ba4f110737a075705d78e798) ) - ROM_LOAD16_BYTE( "olv111tw.u11", 0x200000, 0x080000, CRC(23f33bc9) SHA1(f24490370d40d905afe8b716a3953b4e9f0aada4) ) + ROM_LOAD16_BYTE( "olv_111_taiwan_u6.u6", 0x100001, 0x080000, CRC(b205a733) SHA1(33f4c9162e36be4957004f80593f94fc33b163f8) ) + ROM_LOAD16_BYTE( "olv_111_taiwan_u9.u9", 0x100000, 0x080000, CRC(6d9d29b4) SHA1(29a18de7e5b58c2f3125d6dc9cc8a8186180e956) ) + ROM_LOAD16_BYTE( "olv_111_taiwan_u7.u7", 0x200001, 0x080000, CRC(27628e87) SHA1(a0effd83dc57ac72ba4f110737a075705d78e798) ) + ROM_LOAD16_BYTE( "olv_111_taiwan_u11.u11", 0x200000, 0x080000, CRC(23f33bc9) SHA1(f24490370d40d905afe8b716a3953b4e9f0aada4) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END + +/* + +Oriental Legend / Xi You Shi E Zhuan (KOREA 111 Ver.) +(c)1997 IGS + +PGM system +IGS PCB NO-0134-2 +IGS PCB NO-0135 + +OLV 111 KOREA U11.U11 [23f33bc9] +OLV 111 KOREA U6.U6 [1ff35baa] +OLV 111 KOREA U7.U7 [27628e87] +OLV 111 KOREA U9.U9 [87b6d202] + +T0100.U8 + +A0100.U5 +A0101.U6 +A0102.U7 +A0103.U8 +A0104.U11 +A0105.U12 + +B0100.U9 +B0101.U10 +B0102.U15 + +M0100.U1 + +*/ + ROM_START( orlegend111k ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "olv111ko.u6", 0x100001, 0x080000, CRC(1ff35baa) SHA1(f6791cc37ea468d0154b0e31a99f6f33a74bca81) ) - ROM_LOAD16_BYTE( "olv111ko.u9", 0x100000, 0x080000, CRC(87b6d202) SHA1(32828166a645158630f79e7d493a2774e69bc265) ) - ROM_LOAD16_BYTE( "olv111ko.u7", 0x200001, 0x080000, CRC(27628e87) SHA1(a0effd83dc57ac72ba4f110737a075705d78e798) ) - ROM_LOAD16_BYTE( "olv111ko.u11", 0x200000, 0x080000, CRC(23f33bc9) SHA1(f24490370d40d905afe8b716a3953b4e9f0aada4) ) + ROM_LOAD16_BYTE( "olv_111_korea_u6.u6", 0x100001, 0x080000, CRC(1ff35baa) SHA1(f6791cc37ea468d0154b0e31a99f6f33a74bca81) ) + ROM_LOAD16_BYTE( "olv_111_korea_u9.u9", 0x100000, 0x080000, CRC(87b6d202) SHA1(32828166a645158630f79e7d493a2774e69bc265) ) + ROM_LOAD16_BYTE( "olv_111_korea_u7.u7", 0x200001, 0x080000, CRC(27628e87) SHA1(a0effd83dc57ac72ba4f110737a075705d78e798) ) + ROM_LOAD16_BYTE( "olv_111_korea_u11.u11", 0x200000, 0x080000, CRC(23f33bc9) SHA1(f24490370d40d905afe8b716a3953b4e9f0aada4) ) + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + + ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + + ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) +ROM_END + +ROM_START( orlegend105t ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_BYTE( "olv_105_taiwan_u6.u6", 0x100001, 0x080000, CRC(2b14331f) SHA1(3909b5480764916761895ad3f25dd4f40762a2d8) ) + ROM_LOAD16_BYTE( "olv_105_taiwan_u9.u9", 0x100000, 0x080000, CRC(ae9d71e4) SHA1(20f84c18808a80464f22c72eafe7680690274f39) ) + ROM_LOAD16_BYTE( "olv_105_taiwan_u7.u7", 0x200001, 0x080000, CRC(5712facc) SHA1(2d95ebd1703874e89ac3a206f8c1f0ece6e833e0) ) + ROM_LOAD16_BYTE( "olv_105_taiwan_u11.u11", 0x200000, 0x080000, CRC(40ae4d9e) SHA1(62d7a96438b7fe93f74753333f50e077d417971e) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END /* @@ -835,24 +897,24 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + ROM_LOAD( "pgm_t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) - ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) - ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) - ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) - ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) - ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + ROM_LOAD( "pgm_a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "pgm_a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "pgm_a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "pgm_a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "pgm_a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "pgm_a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) - ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) - ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + ROM_LOAD( "pgm_b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "pgm_b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "pgm_b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) + ROM_LOAD( "pgm_m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) ROM_END /* @@ -925,93 +987,114 @@ ROM_START( drgw2 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v-110x.u2", 0x100000, 0x080000, CRC(1978106b) SHA1(af8a13d7783b755a58762c98bdc32cab845b2251) ) + ROM_LOAD16_WORD_SWAP( "dragon_ii_v-110x.u2", 0x100000, 0x080000, CRC(1978106b) SHA1(af8a13d7783b755a58762c98bdc32cab845b2251) ) + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgm_t0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) + + ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgm_a0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) + + ROM_REGION16_LE( 0x0400000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) + + ROM_REGION( 0x400000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS +ROM_END + +ROM_START( drgw2100x ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "dragon_ii_v-100x.u2", 0x100000, 0x080000, CRC(5e71851d) SHA1(62052469f69daec88efd26652c1b893d6f981912) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "pgmt0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) + ROM_LOAD( "pgm_t0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) + ROM_LOAD( "pgm_a0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) ROM_REGION16_LE( 0x0400000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "pgmb0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) + ROM_LOAD( "pgm_b0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) ROM_REGION( 0x400000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS ROM_END -ROM_START( dw2v100x ) +ROM_START( drgw2101c ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "dragonv100x.bin", 0x100000, 0x080000, CRC(5e71851d) SHA1(62052469f69daec88efd26652c1b893d6f981912) ) + ROM_LOAD16_WORD_SWAP( "dragon_ii_v-101c.u2", 0x100000, 0x080000, CRC(b0c592fa) SHA1(87ccfdb940303ebcf42cb2952aecae97648c1e0d) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "pgmt0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) + ROM_LOAD( "pgm_t0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) + ROM_LOAD( "pgm_a0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) ROM_REGION16_LE( 0x0400000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "pgmb0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) + ROM_LOAD( "pgm_b0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) ROM_REGION( 0x400000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS ROM_END -ROM_START( drgw2c ) +ROM_START( drgw2100c ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v-100c.u2", 0x100000, 0x080000, CRC(67467981) SHA1(58af01a3871b6179fe42ff471cc39a2161940043) ) + ROM_LOAD16_WORD_SWAP( "dragon_ii_v-100c.u2", 0x100000, 0x080000, CRC(67467981) SHA1(58af01a3871b6179fe42ff471cc39a2161940043) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "pgmt0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) + ROM_LOAD( "pgm_t0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) + ROM_LOAD( "pgm_a0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) ROM_REGION16_LE( 0x0400000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "pgmb0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) + ROM_LOAD( "pgm_b0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) ROM_REGION( 0x400000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS ROM_END -ROM_START( drgw2j ) +ROM_START( drgw2100j ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v-100j.u2", 0x100000, 0x080000, CRC(f8f8393e) SHA1(ef0db668b4e4f661d4c1e95d57afe881bcdf13cc) ) + ROM_LOAD16_WORD_SWAP( "dragon_ii_v-100j.u2", 0x100000, 0x080000, CRC(f8f8393e) SHA1(ef0db668b4e4f661d4c1e95d57afe881bcdf13cc) ) + // A cart has been found with same contents but ROM label on sticker is DRAGON II V101J. + // Is this correct or wrong sticker applied? ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "pgmt0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) + ROM_LOAD( "pgm_t0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) + ROM_LOAD( "pgm_a0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) ROM_REGION16_LE( 0x0400000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "pgmb0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) + ROM_LOAD( "pgm_b0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) ROM_REGION( 0x400000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS ROM_END -ROM_START( drgw2hk ) // the IGS025 has a "DRAGON-II 0004-1" sticker, the IGS012 has no per-game marking +ROM_START( drgw2100hk ) // the IGS025 has a "DRAGON-II 0004-1" sticker, the IGS012 has no per-game marking ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS ROM_LOAD16_WORD_SWAP( "dragon_ii_v-100-h.u2", 0x100000, 0x080000, CRC(c6e2e6ec) SHA1(84145dfb26857ea20efb233363f175bc9bb25b0c) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "pgmt0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) + ROM_LOAD( "pgm_t0200.u7", 0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) + ROM_LOAD( "pgm_a0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) ROM_REGION16_LE( 0x0400000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "pgmb0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) + ROM_LOAD( "pgm_b0200.u9", 0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) ) ROM_REGION( 0x400000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS @@ -1036,77 +1119,77 @@ ROM_START( drgw3 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "dw3_v106.u12", 0x100001, 0x080000, CRC(c3f6838b) SHA1(c135b1d4dd62af308139d40d03c29be7508fb1e7) ) - ROM_LOAD16_BYTE( "dw3_v106.u13", 0x100000, 0x080000, CRC(28284e22) SHA1(4643a69881ddb7383ca10f3eb2aa2cf41be39e9f) ) + ROM_LOAD16_BYTE( "dw3_v106_u12.u12", 0x100001, 0x080000, CRC(c3f6838b) SHA1(c135b1d4dd62af308139d40d03c29be7508fb1e7) ) + ROM_LOAD16_BYTE( "dw3_v106_u13.u13", 0x100000, 0x080000, CRC(28284e22) SHA1(4643a69881ddb7383ca10f3eb2aa2cf41be39e9f) ) ROM_REGION( 0x010000, "igs022", 0 ) /* Protection Data - is it correct for this set? */ - ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) + ROM_LOAD( "dw3_text_u15.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "dw3t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) + ROM_LOAD( "pgm_t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "dw3a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "dw3a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "dw3b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "dw3m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) + ROM_LOAD( "pgm_m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) ROM_END ROM_START( drgw3105 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "dw3_v105.u12", 0x100001, 0x080000, CRC(c5e24318) SHA1(c6954495bbc72c3985df75aecf6afd6826c8e30e) ) - ROM_LOAD16_BYTE( "dw3_v105.u13", 0x100000, 0x080000, CRC(8d6c9d39) SHA1(cb79303ab551e91f07e11414db4254d5b161d415) ) + ROM_LOAD16_BYTE( "dw3_v105_u12.u12", 0x100001, 0x080000, CRC(c5e24318) SHA1(c6954495bbc72c3985df75aecf6afd6826c8e30e) ) + ROM_LOAD16_BYTE( "dw3_v105_u13.u13", 0x100000, 0x080000, CRC(8d6c9d39) SHA1(cb79303ab551e91f07e11414db4254d5b161d415) ) ROM_REGION( 0x010000, "igs022", 0 ) /* Protection Data - is it correct for this set? */ ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "dw3t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) + ROM_LOAD( "pgm_t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "dw3a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "dw3a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "dw3b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "dw3m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) + ROM_LOAD( "pgm_m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) ROM_END ROM_START( drgw3103 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "dw3_v103j.u12", 0x100001, 0x080000, CRC(275b39a2) SHA1(8ba4d2601734c2dda3d4269fbe8f543dc3f0b212) ) - ROM_LOAD16_BYTE( "dw3_v103j.u13", 0x100000, 0x080000, CRC(9aa56e8f) SHA1(c3f27d8b59adf72040a2e2c11e34f9b07efd7e9e) ) + ROM_LOAD16_BYTE( "dragon_iii_v103j_u12.u12", 0x100001, 0x080000, CRC(275b39a2) SHA1(8ba4d2601734c2dda3d4269fbe8f543dc3f0b212) ) + ROM_LOAD16_BYTE( "dragon_iii_v103j_u13.u13", 0x100000, 0x080000, CRC(9aa56e8f) SHA1(c3f27d8b59adf72040a2e2c11e34f9b07efd7e9e) ) ROM_REGION( 0x010000, "igs022", 0 ) /* Protection Data */ - ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) + ROM_LOAD( "dw3_v100_u15.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "dw3t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) + ROM_LOAD( "pgm_t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "dw3a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "dw3a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "dw3b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "dw3m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) + ROM_LOAD( "pgm_m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) ROM_END /* @@ -1135,26 +1218,26 @@ ROM_START( drgw3100 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "dw3_v100.u12", 0x100001, 0x080000, CRC(47243906) SHA1(9cd46e3cba97f049bcb238ceb6edf27a760ef831) ) - ROM_LOAD16_BYTE( "dw3_v100.u13", 0x100000, 0x080000, CRC(b7cded21) SHA1(c1ae2af2e42227503c81bbcd2bd6862aa416bd78) ) + ROM_LOAD16_BYTE( "dw3_v100_u12.u12", 0x100001, 0x080000, CRC(47243906) SHA1(9cd46e3cba97f049bcb238ceb6edf27a760ef831) ) + ROM_LOAD16_BYTE( "dw3_v100_u13.u13", 0x100000, 0x080000, CRC(b7cded21) SHA1(c1ae2af2e42227503c81bbcd2bd6862aa416bd78) ) ROM_REGION( 0x010000, "igs022", 0 ) /* Protection Data */ - ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) + ROM_LOAD( "dw3_v100_u15.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "dw3t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) + ROM_LOAD( "pgm_t0400.u18", 0x180000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "dw3a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "dw3a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "dw3b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "dw3m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) + ROM_LOAD( "pgm_m0400.u1", 0x400000, 0x400000, CRC(031eb9ce) SHA1(0673ec194732becc6648c2ae1396e894aa269f9a) ) ROM_END /* @@ -1187,51 +1270,51 @@ ROM_START( dwex ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "ex_v100.u12", 0x100001, 0x080000, CRC(bc171799) SHA1(142329dffbca199f3e748a52146a03e27b36db6a) ) // V100 08/16/00 09:39:27 - ROM_LOAD16_BYTE( "ex_v100.u13", 0x100000, 0x080000, CRC(7afe6322) SHA1(a52d71af1d6de16c5a3df23eacdab3466693ba8d) ) + ROM_LOAD16_BYTE( "dwex_v100.u12", 0x100001, 0x080000, CRC(bc171799) SHA1(142329dffbca199f3e748a52146a03e27b36db6a) ) // V100 08/16/00 09:39:27 + ROM_LOAD16_BYTE( "dwex_v100.u13", 0x100000, 0x080000, CRC(7afe6322) SHA1(a52d71af1d6de16c5a3df23eacdab3466693ba8d) ) ROM_REGION( 0x010000, "igs022", 0 ) /* Protection Data */ - ROM_LOAD( "ex_data.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) + ROM_LOAD( "dwiii_data_u15.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "ex_t0400.u18", 0x180000, 0x200000, CRC(9ecc950d) SHA1(fd97f43818a3eb18254636166871fa09bd0d6c07) ) + ROM_LOAD( "pgm_t0400.u18", 0x180000, 0x200000, CRC(9ecc950d) SHA1(fd97f43818a3eb18254636166871fa09bd0d6c07) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "ex_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) - ROM_LOAD( "ex_a0401.u10", 0x0400000, 0x200000, CRC(d36c06a4) SHA1(f192e8bfdfbe3d82a49d8f0d3cb0603e39719773) ) + ROM_LOAD( "pgm_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) + ROM_LOAD( "pgm_a0401.u10", 0x0400000, 0x200000, CRC(d36c06a4) SHA1(f192e8bfdfbe3d82a49d8f0d3cb0603e39719773) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "ex_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) + ROM_LOAD( "pgm_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "ex_m0400.u1", 0x400000, 0x200000, CRC(42d54fd5) SHA1(ad915b514aa6cae6f72dea78e6208f40b08ceac0) ) + ROM_LOAD( "pgm_m0400.u1", 0x400000, 0x200000, CRC(42d54fd5) SHA1(ad915b514aa6cae6f72dea78e6208f40b08ceac0) ) ROM_END ROM_START( dwex101cn ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "ex_v101cn.u12", 0x100001, 0x080000, CRC(4f951f42) SHA1(830a943ce34c63ce418f60d913fae333377a9704) ) // V101CN (China) / V100 (other regions) 12/12/01 09:45:00 - ROM_LOAD16_BYTE( "ex_v101cn.u13", 0x100000, 0x080000, CRC(66172511) SHA1(eb1a6fc9c22f04fcca0395a4b5c2972438c60a78) ) + ROM_LOAD16_BYTE( "dwex_v101cn.u12", 0x100001, 0x080000, CRC(4f951f42) SHA1(830a943ce34c63ce418f60d913fae333377a9704) ) // V101CN (China) / V100 (other regions) 12/12/01 09:45:00 + ROM_LOAD16_BYTE( "dwex_v101cn.u13", 0x100000, 0x080000, CRC(66172511) SHA1(eb1a6fc9c22f04fcca0395a4b5c2972438c60a78) ) ROM_REGION( 0x010000, "igs022", 0 ) /* Protection Data */ - ROM_LOAD( "ex_data.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) + ROM_LOAD( "dwiii_data_u15.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "ex_t0400.u18", 0x180000, 0x200000, CRC(9ecc950d) SHA1(fd97f43818a3eb18254636166871fa09bd0d6c07) ) + ROM_LOAD( "pgm_t0400.u18", 0x180000, 0x200000, CRC(9ecc950d) SHA1(fd97f43818a3eb18254636166871fa09bd0d6c07) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "ex_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) - ROM_LOAD( "ex_a0401.u10", 0x0400000, 0x200000, CRC(d36c06a4) SHA1(f192e8bfdfbe3d82a49d8f0d3cb0603e39719773) ) + ROM_LOAD( "pgm_a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) + ROM_LOAD( "pgm_a0401.u10", 0x0400000, 0x200000, CRC(d36c06a4) SHA1(f192e8bfdfbe3d82a49d8f0d3cb0603e39719773) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "ex_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) + ROM_LOAD( "pgm_b0400.u13", 0x0000000, 0x400000, CRC(4bb87cc0) SHA1(71b2dc43fd11f7a6dffaba501e4e344b843583d8) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "ex_m0400.u1", 0x400000, 0x200000, CRC(42d54fd5) SHA1(ad915b514aa6cae6f72dea78e6208f40b08ceac0) ) + ROM_LOAD( "pgm_m0400.u1", 0x400000, 0x200000, CRC(42d54fd5) SHA1(ad915b514aa6cae6f72dea78e6208f40b08ceac0) ) ROM_END @@ -1245,21 +1328,21 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u9", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u7", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kov115 ) @@ -1272,26 +1355,57 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u9", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u7", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kov114 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_BYTE( "sav114_u4.u4", 0x100001, 0x080000, CRC(4db3d4d3) SHA1(924734ec3b3d6de21872890b9575f72f81c7b636) ) + ROM_LOAD16_BYTE( "sav114_u7.u7", 0x100000, 0x080000, CRC(b8d12b0c) SHA1(f4c02e494a479c3021b56bb87341d507104f93d5) ) + ROM_LOAD16_BYTE( "sav114_u5.u5", 0x200001, 0x080000, CRC(9e586dab) SHA1(3de948decf2b7bcbbbc37d2e6fa7a2a71f0b8d5e) ) + ROM_LOAD16_BYTE( "sav114_u8.u8", 0x200000, 0x080000, CRC(ab129997) SHA1(b0e56a09df0def3e8b584ca6f53cd3c88634653e) ) + ROM_LOAD16_WORD_SWAP( "sav114_u10.u10", 0x300000, 0x080000, CRC(8f84ecfd) SHA1(2e7f322da6c4b1d6daf7a308229f4cf2e69fda8f) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027.bin", 0x000000, 0x04000, NO_DUMP ) // IGS 027 55857E 100 9901 HONG KONG + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u9", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u7", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END /* -Sangoku Senki / Knights of Valour (JPN 100 Ver.) +Sangoku Senki / Knights of Valour (JPN 111 Ver.) (c)1999 ALTA / IGS PGM system @@ -1320,93 +1434,62 @@ */ -ROM_START( kov100 ) +ROM_START( kov111 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "sav111.u4", 0x100001, 0x080000, CRC(ae2f1b4e) SHA1(2ac9d84f5dee52f374941cfd68e2b98ecad436a8) ) - ROM_LOAD16_BYTE( "sav111.u7", 0x100000, 0x080000, CRC(95eedf0e) SHA1(582a54e9a1eda7ff73e20f0e69d2d50141772378) ) - ROM_LOAD16_BYTE( "sav111.u5", 0x200001, 0x080000, CRC(5fdd4aa8) SHA1(43c96e21ad4f11148e1e94a59c53780b2edd43ba) ) - ROM_LOAD16_BYTE( "sav111.u8", 0x200000, 0x080000, CRC(003cbf49) SHA1(fb5bea47ecae025b1b425af52cd05e061f45e377) ) - ROM_LOAD16_WORD_SWAP( "sav111.u10",0x300000, 0x080000, CRC(d5536107) SHA1(f963e015d99c1621323eecf63e773c0b9f4b6a43) ) + ROM_LOAD16_BYTE( "sav111_u4.u4", 0x100001, 0x080000, CRC(ae2f1b4e) SHA1(2ac9d84f5dee52f374941cfd68e2b98ecad436a8) ) + ROM_LOAD16_BYTE( "sav111_u7.u7", 0x100000, 0x080000, CRC(95eedf0e) SHA1(582a54e9a1eda7ff73e20f0e69d2d50141772378) ) + ROM_LOAD16_BYTE( "sav111_u5.u5", 0x200001, 0x080000, CRC(5fdd4aa8) SHA1(43c96e21ad4f11148e1e94a59c53780b2edd43ba) ) + ROM_LOAD16_BYTE( "sav111_u8.u8", 0x200000, 0x080000, CRC(003cbf49) SHA1(fb5bea47ecae025b1b425af52cd05e061f45e377) ) + ROM_LOAD16_WORD_SWAP( "sav111_u10.u10", 0x300000, 0x080000, CRC(d5536107) SHA1(f963e015d99c1621323eecf63e773c0b9f4b6a43) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) - - ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) - - ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) - - ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ - PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) -ROM_END - -ROM_START( kov100hk ) - ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ - PGM_68K_BIOS - ROM_LOAD16_BYTE( "sav114.u4", 0x100001, 0x080000, CRC(4db3d4d3) SHA1(924734ec3b3d6de21872890b9575f72f81c7b636) ) - ROM_LOAD16_BYTE( "sav114.u7", 0x100000, 0x080000, CRC(b8d12b0c) SHA1(f4c02e494a479c3021b56bb87341d507104f93d5) ) - ROM_LOAD16_BYTE( "sav114.u5", 0x200001, 0x080000, CRC(9e586dab) SHA1(3de948decf2b7bcbbbc37d2e6fa7a2a71f0b8d5e) ) - ROM_LOAD16_BYTE( "sav114.u8", 0x200000, 0x080000, CRC(ab129997) SHA1(b0e56a09df0def3e8b584ca6f53cd3c88634653e) ) - ROM_LOAD16_WORD_SWAP( "sav114.u10",0x300000, 0x080000, CRC(8f84ecfd) SHA1(2e7f322da6c4b1d6daf7a308229f4cf2e69fda8f) ) - - ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ - ROM_LOAD( "kov_igs027.bin", 0x000000, 0x04000, NO_DUMP ) // IGS 027 55857E 100 9901 HONG KONG - - ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ - PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u9", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u7", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovplus ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "p0600.119", 0x100000, 0x400000, CRC(e4b0875d) SHA1(e8382e131b0e431406dc2a05cc1ef128302d987c) ) + ROM_LOAD16_WORD_SWAP( "pgm_p0603_v119.u1", 0x100000, 0x400000, CRC(e4b0875d) SHA1(e8382e131b0e431406dc2a05cc1ef128302d987c) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u9", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u7", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END @@ -1444,32 +1527,32 @@ ROM_START( kovplusa ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "v119.u3", 0x100001, 0x080000, CRC(6750388f) SHA1(869f4ad27f2992cc62baa9a78bf7984a43ec4cc5) ) - ROM_LOAD16_BYTE( "v119.u5", 0x100000, 0x080000, CRC(d4101ffd) SHA1(a327fd56eec65b07df9305cd93ef2c46bf8e40f3) ) - ROM_LOAD16_BYTE( "v119.u4", 0x200001, 0x080000, CRC(8200ece6) SHA1(97081d2e8aed2ac6fbe5951890aecea18af5ce2e) ) - ROM_LOAD16_BYTE( "v119.u6", 0x200000, 0x080000, CRC(71e28f27) SHA1(db382807e9185f0dc17124f210165fa1b36ca6ac) ) - ROM_LOAD16_WORD_SWAP( "v119.u2",0x300000, 0x080000, CRC(29588ef2) SHA1(17d1a308d44434cf65224a24360cf4b6e32d28f3) ) + ROM_LOAD16_BYTE( "v119.u4", 0x100001, 0x080000, CRC(6750388f) SHA1(869f4ad27f2992cc62baa9a78bf7984a43ec4cc5) ) + ROM_LOAD16_BYTE( "v119.u7", 0x100000, 0x080000, CRC(d4101ffd) SHA1(a327fd56eec65b07df9305cd93ef2c46bf8e40f3) ) + ROM_LOAD16_BYTE( "v119.u5", 0x200001, 0x080000, CRC(8200ece6) SHA1(97081d2e8aed2ac6fbe5951890aecea18af5ce2e) ) + ROM_LOAD16_BYTE( "v119.u8", 0x200000, 0x080000, CRC(71e28f27) SHA1(db382807e9185f0dc17124f210165fa1b36ca6ac) ) + ROM_LOAD16_WORD_SWAP( "v119.u10", 0x300000, 0x080000, CRC(29588ef2) SHA1(17d1a308d44434cf65224a24360cf4b6e32d28f3) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u9", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u7", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovsgqyz ) @@ -1482,21 +1565,21 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovsgqyza ) @@ -1509,21 +1592,21 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovsgqyzb ) @@ -1536,30 +1619,27 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) ) + ROM_LOAD( "pgm_a0600.u2", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) ) + ROM_LOAD( "pgm_b0600.u5", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u3", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END - - - ROM_START( kovsh ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "p0600.322", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) ) + ROM_LOAD16_WORD_SWAP( "pgm_p0605_v104.u1", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) ) //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ @@ -1567,54 +1647,54 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) /* all roms below need checking to see if they're the same on this board */ ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) - ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + ROM_LOAD( "pgm_a0600.u1", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u3", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u5", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u7", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0604_v200.u9", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) - ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + ROM_LOAD( "pgm_b0600.u6", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u8", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0602_v200.u10", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u4", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovsh103 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "p0600.103", 0x100000, 0x400000, CRC(f0b3da82) SHA1(4067beb69c049b51bce6154f4cf880600ca4de11) ) + ROM_LOAD16_WORD_SWAP( "pgm_p0604_v103.u1", 0x100000, 0x400000, CRC(f0b3da82) SHA1(4067beb69c049b51bce6154f4cf880600ca4de11) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) /* all roms below need checking to see if they're the same on this board */ ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) - ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + ROM_LOAD( "pgm_a0600.u1", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u3", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u5", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u7", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0604_v200.u9", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) - ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) // this dump had the same rom 4x bigger but with the data duplicated 4x, which is correct? + ROM_LOAD( "pgm_b0600.u6", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u8", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0602_v200.u10", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u4", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovsh102 ) @@ -1627,24 +1707,24 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) /* all roms below need checking to see if they're the same on this board */ ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) - ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + ROM_LOAD( "pgm_a0600.u1", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u3", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u5", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u7", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0604_v200.u9", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) - ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + ROM_LOAD( "pgm_b0600.u6", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u8", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0602_v200.u10", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u4", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovsh101 ) @@ -1657,24 +1737,24 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) /* all roms below need checking to see if they're the same on this board */ ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) - ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + ROM_LOAD( "pgm_a0600.u1", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u3", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u5", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u7", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0604_v200.u9", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) - ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + ROM_LOAD( "pgm_b0600.u6", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u8", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0602_v200.u10", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u4", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovsh100 ) @@ -1687,24 +1767,24 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u11", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) /* all roms below need checking to see if they're the same on this board */ ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) - ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + ROM_LOAD( "pgm_a0600.u1", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u3", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u5", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0603.u7", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "pgm_a0604_v200.u9", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) - ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + ROM_LOAD( "pgm_b0600.u6", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "pgm_b0601.u8", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "pgm_b0602_v200.u10", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u4", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovqhsgs ) @@ -1741,7 +1821,7 @@ p0701_v105.u2 -IGS +IGS PCB NO-0220-1 PGM P0701 V105 1B2687LC C994746 @@ -1751,30 +1831,27 @@ ROM_START( photoy2k ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "p0701_v105.u2", 0x100000, 0x200000, CRC(fab142e0) SHA1(8dc7e53b740ed68bac98c0ef7ca4943c517e6f5d) ) // 10/12/99 21:07:53 + ROM_LOAD16_WORD_SWAP( "pgm_p0701_v105.u2", 0x100000, 0x200000, CRC(fab142e0) SHA1(8dc7e53b740ed68bac98c0ef7ca4943c517e6f5d) ) // 10/12/99 21:07:53 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "igs027a_photoy2k_v100_china.asic", 0x000000, 0x04000, CRC(1a0b68f6) SHA1(290441ed652f54b26ace8f59a26220881fb62084) ) // 3 bytes differ from the read in the other sets. I think this one is GOOD and the other is bad. This always gives the same read, so unless the actual chips is bad... TBC ROM_REGION( 0x280000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0700.rom", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) + ROM_LOAD( "pgm_t0700.u11", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0700.l", 0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0700.h", 0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.l", 0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.h", 0x0c00000, 0x0400000, CRC(5f2efd37) SHA1(9a5bd9751691bc085b0751b9fa8ede9eb97b1248) ) - ROM_LOAD( "a0702.rom", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) + ROM_LOAD( "pgm_a0700.u2", 0x0000000, 0x0800000, CRC(503c855b) SHA1(aa910cc33a23ac8f1c91f88da388ed92e49fa1b8) ) + ROM_LOAD( "pgm_a0701.u4", 0x0800000, 0x0800000, CRC(845e11a8) SHA1(9e35d0e6620acd023eba83f86d970e9895204767) ) + ROM_LOAD( "pgm_a0702.u3", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0700.l", 0x0000000, 0x0400000, CRC(af096904) SHA1(8e86b36cc44720ece68022e409279bf9144341ba) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "b0700.h", 0x0400000, 0x0400000, CRC(6d53de26) SHA1(f3f93fd2f87adb815834ba0242b94073fbb5e333) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "cgv101.rom", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) + ROM_LOAD( "pgm_b0700.u7", 0x0000000, 0x0800000, CRC(8cd027f6) SHA1(e377c64facbf657f58b8567d8b483ca067967fc0) ) + ROM_LOAD( "photo_y2k_cg_v101_u6.u6", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) ROM_REGION( 0x480000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0700.rom", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) + ROM_LOAD( "pgm_m0700.u5", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) ROM_END @@ -1788,23 +1865,20 @@ ROM_REGION( 0x280000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0700.rom", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) + ROM_LOAD( "pgm_t0700.u11", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0700.l", 0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0700.h", 0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.l", 0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.h", 0x0c00000, 0x0400000, CRC(5f2efd37) SHA1(9a5bd9751691bc085b0751b9fa8ede9eb97b1248) ) - ROM_LOAD( "a0702.rom", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) + ROM_LOAD( "pgm_a0700.u2", 0x0000000, 0x0800000, CRC(503c855b) SHA1(aa910cc33a23ac8f1c91f88da388ed92e49fa1b8) ) + ROM_LOAD( "pgm_a0701.u4", 0x0800000, 0x0800000, CRC(845e11a8) SHA1(9e35d0e6620acd023eba83f86d970e9895204767) ) + ROM_LOAD( "pgm_a0702.u3", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0700.l", 0x0000000, 0x0400000, CRC(af096904) SHA1(8e86b36cc44720ece68022e409279bf9144341ba) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "b0700.h", 0x0400000, 0x0400000, CRC(6d53de26) SHA1(f3f93fd2f87adb815834ba0242b94073fbb5e333) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "cgv101.rom", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) + ROM_LOAD( "pgm_b0700.u7", 0x0000000, 0x0800000, CRC(8cd027f6) SHA1(e377c64facbf657f58b8567d8b483ca067967fc0) ) + ROM_LOAD( "photo_y2k_cg_v101_u6.u6", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) ROM_REGION( 0x480000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0700.rom", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) + ROM_LOAD( "pgm_m0700.u5", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) ROM_END @@ -1821,23 +1895,20 @@ ROM_REGION( 0x280000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0700.rom", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) + ROM_LOAD( "pgm_t0700.u11", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0700.l", 0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0700.h", 0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.l", 0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.h", 0x0c00000, 0x0400000, CRC(5f2efd37) SHA1(9a5bd9751691bc085b0751b9fa8ede9eb97b1248) ) - ROM_LOAD( "a0702.rom", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) + ROM_LOAD( "pgm_a0700.u2", 0x0000000, 0x0800000, CRC(503c855b) SHA1(aa910cc33a23ac8f1c91f88da388ed92e49fa1b8) ) + ROM_LOAD( "pgm_a0701.u4", 0x0800000, 0x0800000, CRC(845e11a8) SHA1(9e35d0e6620acd023eba83f86d970e9895204767) ) + ROM_LOAD( "pgm_a0702.u3", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0700.l", 0x0000000, 0x0400000, CRC(af096904) SHA1(8e86b36cc44720ece68022e409279bf9144341ba) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "b0700.h", 0x0400000, 0x0400000, CRC(6d53de26) SHA1(f3f93fd2f87adb815834ba0242b94073fbb5e333) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "cgv101.rom", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) + ROM_LOAD( "pgm_b0700.u7", 0x0000000, 0x0800000, CRC(8cd027f6) SHA1(e377c64facbf657f58b8567d8b483ca067967fc0) ) + ROM_LOAD( "photo_y2k_cg_v101_u6.u6", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) ROM_REGION( 0x480000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0700.rom", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) + ROM_LOAD( "photo_y2k_sp_v102_u5.u5", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) ROM_END @@ -1871,36 +1942,33 @@ */ -ROM_START( photoy2k102 ) +ROM_START( photoy2k102j ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "v102.u4", 0x100001, 0x080000, CRC(a65eda9f) SHA1(6307cacf4a262e781753eff14700a0455837780c) ) // 05/03/99 16:06:33 - ROM_LOAD16_BYTE( "v102.u6", 0x100000, 0x080000, CRC(b9ca5504) SHA1(058cf01316f233236ca9861349f515935283b75e) ) - ROM_LOAD16_BYTE( "v102.u5", 0x200001, 0x080000, CRC(9201621b) SHA1(1ca3ebe7eec40614bfa8b911657fa2b51f2c51a4) ) - ROM_LOAD16_BYTE( "v102.u8", 0x200000, 0x080000, CRC(3be22b8f) SHA1(03634fbd6a8a8369c6cb1fd6694a3784dac5bf59) ) + ROM_LOAD16_BYTE( "photo_y2k_v102_u4.u4", 0x100001, 0x080000, CRC(a65eda9f) SHA1(6307cacf4a262e781753eff14700a0455837780c) ) // 05/03/99 16:06:33 + ROM_LOAD16_BYTE( "photo_y2k_v102_u6.u6", 0x100000, 0x080000, CRC(b9ca5504) SHA1(058cf01316f233236ca9861349f515935283b75e) ) + ROM_LOAD16_BYTE( "photo_y2k_v102_u5.u5", 0x200001, 0x080000, CRC(9201621b) SHA1(1ca3ebe7eec40614bfa8b911657fa2b51f2c51a4) ) + ROM_LOAD16_BYTE( "photo_y2k_v102_u8.u8", 0x200000, 0x080000, CRC(3be22b8f) SHA1(03634fbd6a8a8369c6cb1fd6694a3784dac5bf59) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "igs027a_photoy2k_v100_china_alt.asic", 0x000000, 0x04000, CRC(6dd7f257) SHA1(1984f98a282d8b3264674f231c3b7def1757cf72) ) ROM_REGION( 0x280000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0700.rom", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) + ROM_LOAD( "pgm_t0700.u11", 0x180000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0700.l", 0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0700.h", 0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.l", 0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0701.h", 0x0c00000, 0x0400000, CRC(5f2efd37) SHA1(9a5bd9751691bc085b0751b9fa8ede9eb97b1248) ) - ROM_LOAD( "a0702.rom", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) + ROM_LOAD( "pgm_a0700.u2", 0x0000000, 0x0800000, CRC(503c855b) SHA1(aa910cc33a23ac8f1c91f88da388ed92e49fa1b8) ) + ROM_LOAD( "pgm_a0701.u4", 0x0800000, 0x0800000, CRC(845e11a8) SHA1(9e35d0e6620acd023eba83f86d970e9895204767) ) + ROM_LOAD( "pgm_a0702.u3", 0x1000000, 0x0080000, CRC(42239e1b) SHA1(2b6d20958abf8a67ce525d5c8964b6d225ccaeda) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0700.l", 0x0000000, 0x0400000, CRC(af096904) SHA1(8e86b36cc44720ece68022e409279bf9144341ba) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "b0700.h", 0x0400000, 0x0400000, CRC(6d53de26) SHA1(f3f93fd2f87adb815834ba0242b94073fbb5e333) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "cgv101.rom", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) + ROM_LOAD( "pgm_b0700.u7", 0x0000000, 0x0800000, CRC(8cd027f6) SHA1(e377c64facbf657f58b8567d8b483ca067967fc0) ) + ROM_LOAD( "photo_y2k_cg_v101_u6.u6", 0x0800000, 0x0020000, CRC(da02ec3e) SHA1(7ee21d748c9b932f53e790a9040167f904fecefc) ) ROM_REGION( 0x480000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0700.rom", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) + ROM_LOAD( "photo_y2k_sp_v102_u5.u5", 0x400000, 0x080000, CRC(acc7afce) SHA1(ac2d344ebac336f0f363bb045dd8ea4e83d1fb50) ) ROM_END @@ -1936,18 +2004,18 @@ /* no extra tilemap rom */ ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "y2k2_a1100.u6", 0x0000000, 0x0800000, CRC(e32ce499) SHA1(f84c7daa55c25a05da467b5654ebf432b7ce1754) ) - ROM_LOAD( "y2k2_a1101.u7", 0x0800000, 0x0800000, CRC(4e7568bc) SHA1(bf9cc453191bd5ec9fbcce62891809f253a44267) ) - ROM_LOAD( "y2k2_a1102.u8", 0x1000000, 0x0800000, CRC(6da7c143) SHA1(9408ba7722bfc8013f851aadea5e2819f5263129) ) - ROM_LOAD( "y2k2_a1103.u9", 0x1800000, 0x0800000, CRC(0ebebfdc) SHA1(4faad7f97c7e734f179ec934a37e75d8d6adccf4) ) + ROM_LOAD( "pgm_a1100.u6", 0x0000000, 0x0800000, CRC(e32ce499) SHA1(f84c7daa55c25a05da467b5654ebf432b7ce1754) ) + ROM_LOAD( "pgm_a1101.u7", 0x0800000, 0x0800000, CRC(4e7568bc) SHA1(bf9cc453191bd5ec9fbcce62891809f253a44267) ) + ROM_LOAD( "pgm_a1102.u8", 0x1000000, 0x0800000, CRC(6da7c143) SHA1(9408ba7722bfc8013f851aadea5e2819f5263129) ) + ROM_LOAD( "pgm_a1103.u9", 0x1800000, 0x0800000, CRC(0ebebfdc) SHA1(4faad7f97c7e734f179ec934a37e75d8d6adccf4) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "y2k2_b1100.u4", 0x0000000, 0x0800000, CRC(fa53d6f6) SHA1(c2da55f4b7e721fa1c63bd7f9528f261643164e8) ) - ROM_LOAD( "y2k2_b1101.u5", 0x0800000, 0x0800000, CRC(001e4c81) SHA1(21119055f8fd7f831529e73ff9c97bca3987a1dc)) + ROM_LOAD( "pgm_b1100.u4", 0x0000000, 0x0800000, CRC(fa53d6f6) SHA1(c2da55f4b7e721fa1c63bd7f9528f261643164e8) ) + ROM_LOAD( "pgm_b1101.u5", 0x0800000, 0x0800000, CRC(001e4c81) SHA1(21119055f8fd7f831529e73ff9c97bca3987a1dc)) ROM_REGION( 0x880000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "y2k2_m1100.u3", 0x400000, 0x200000, CRC(fb1515f8) SHA1(90e5e5bfdac9a460445bf224952e4a536888dc1b) ) + ROM_LOAD( "pgm_m1100.u3", 0x400000, 0x200000, CRC(fb1515f8) SHA1(90e5e5bfdac9a460445bf224952e4a536888dc1b) ) ROM_END ROM_START( py2k2100 ) @@ -1963,24 +2031,58 @@ /* no extra tilemap rom */ ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "y2k2_a1100.u6", 0x0000000, 0x0800000, CRC(e32ce499) SHA1(f84c7daa55c25a05da467b5654ebf432b7ce1754) ) - ROM_LOAD( "y2k2_a1101.u7", 0x0800000, 0x0800000, CRC(4e7568bc) SHA1(bf9cc453191bd5ec9fbcce62891809f253a44267) ) - ROM_LOAD( "y2k2_a1102.u8", 0x1000000, 0x0800000, CRC(6da7c143) SHA1(9408ba7722bfc8013f851aadea5e2819f5263129) ) - ROM_LOAD( "y2k2_a1103.u9", 0x1800000, 0x0800000, CRC(0ebebfdc) SHA1(4faad7f97c7e734f179ec934a37e75d8d6adccf4) ) + ROM_LOAD( "pgm_a1100.u6", 0x0000000, 0x0800000, CRC(e32ce499) SHA1(f84c7daa55c25a05da467b5654ebf432b7ce1754) ) + ROM_LOAD( "pgm_a1101.u7", 0x0800000, 0x0800000, CRC(4e7568bc) SHA1(bf9cc453191bd5ec9fbcce62891809f253a44267) ) + ROM_LOAD( "pgm_a1102.u8", 0x1000000, 0x0800000, CRC(6da7c143) SHA1(9408ba7722bfc8013f851aadea5e2819f5263129) ) + ROM_LOAD( "pgm_a1103.u9", 0x1800000, 0x0800000, CRC(0ebebfdc) SHA1(4faad7f97c7e734f179ec934a37e75d8d6adccf4) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "y2k2_b1100.u4", 0x0000000, 0x0800000, CRC(fa53d6f6) SHA1(c2da55f4b7e721fa1c63bd7f9528f261643164e8) ) - ROM_LOAD( "y2k2_b1101.u5", 0x0800000, 0x0800000, CRC(001e4c81) SHA1(21119055f8fd7f831529e73ff9c97bca3987a1dc)) + ROM_LOAD( "pgm_b1100.u4", 0x0000000, 0x0800000, CRC(fa53d6f6) SHA1(c2da55f4b7e721fa1c63bd7f9528f261643164e8) ) + ROM_LOAD( "pgm_b1101.u5", 0x0800000, 0x0800000, CRC(001e4c81) SHA1(21119055f8fd7f831529e73ff9c97bca3987a1dc)) ROM_REGION( 0x880000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "y2k2_m1100.u3", 0x400000, 0x200000, CRC(fb1515f8) SHA1(90e5e5bfdac9a460445bf224952e4a536888dc1b) ) + ROM_LOAD( "pgm_m1100.u3", 0x400000, 0x200000, CRC(fb1515f8) SHA1(90e5e5bfdac9a460445bf224952e4a536888dc1b) ) ROM_END ROM_START( pgm3in1 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v-102cn.u3", 0x100000, 0x200000, CRC(72e06b2b) SHA1(0d72f90b1a2df5f0e8708b59d2a7c13dba998acd)) // M68K V102 08/23/04 13:03:26 (encrypted) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "igs027a_pgm3in1.asic", 0x000000, 0x04000, NO_DUMP ) + + /* No external ARM rom */ + + ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "u5.u5", 0x180000, 0x200000, CRC(da375a50) SHA1(62cd2fd3dfc1897528eaa38d243d7a9526eac71b) ) + + ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgm_a1100.u4", 0x0000000, 0x0800000, CRC(e32ce499) SHA1(f84c7daa55c25a05da467b5654ebf432b7ce1754) ) // == y2k2_a1100.u6 + ROM_LOAD( "pgm_a1101.u5", 0x0800000, 0x0800000, CRC(4e7568bc) SHA1(bf9cc453191bd5ec9fbcce62891809f253a44267) ) // == y2k2_a1101.u7 + ROM_LOAD( "pgm_a1102.u6", 0x1000000, 0x0800000, CRC(6da7c143) SHA1(9408ba7722bfc8013f851aadea5e2819f5263129) ) // == y2k2_a1102.u8 + ROM_LOAD( "pgm_a1103.u7", 0x1800000, 0x0800000, CRC(0ebebfdc) SHA1(4faad7f97c7e734f179ec934a37e75d8d6adccf4) ) // == y2k2_a1103.u9 + ROM_LOAD( "ext_bit_cg.u20", 0x2000000, 0x0400000, CRC(fe314754) SHA1(ae3e8bbdce852a3fa39806a5221c053dee5abfd4) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", ROMREGION_ERASE00 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b1100.u8", 0x0000000, 0x0800000, CRC(fa53d6f6) SHA1(c2da55f4b7e721fa1c63bd7f9528f261643164e8) ) // == y2k2_b1100.u4 + ROM_LOAD( "pgm_b1101.u9", 0x0800000, 0x0800000, CRC(001e4c81) SHA1(21119055f8fd7f831529e73ff9c97bca3987a1dc) ) // == y2k2_b1101.u5 + ROM_LOAD( "ext_bit_map.u21", 0x0f00000, 0x0100000, CRC(fe31dca6) SHA1(825bab7342c944794514fc7fe3e41779de3b5cd4) ) // yes this loads over the empty part of u9 + ROM_IGNORE(0x0100000) // the 2nd half is empty + + ROM_REGION( 0xe80000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgm_m1100.u17", 0x400000, 0x200000, CRC(fb1515f8) SHA1(90e5e5bfdac9a460445bf224952e4a536888dc1b) ) // == y2k2_m1100.u3 + ROM_LOAD( "u16.u16", 0x600000, 0x800000, CRC(714c33e5) SHA1(5478d5247349cdfb5f835171615d6ca2e5689140) ) // check loading +ROM_END + + +ROM_START( pgm3in1c100 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS ROM_LOAD16_WORD_SWAP( "v-100cn.u3", 0x100000, 0x200000, CRC(a39f59b4) SHA1(4eb53fb9f173cb470e16dc8f193c8909cf045e3d)) // M68K V100 07/13/04 12:09:20 (encrypted) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ @@ -2097,33 +2199,38 @@ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS ROM_LOAD16_WORD_SWAP( "p0300_v109.u9", 0x100000, 0x200000, CRC(2fcee215) SHA1(855281a9090bfdf3da9f4d50c121765131a13400) ) + // also found with 4 smaller ROMs + // p0300_v109.u9 [even 1/2] kb_u3_v109.u3 IDENTICAL CRC(fe028dd5) SHA1(a865639e6ce9a5ad7100bc0445a58b0465bfe8a6) + // p0300_v109.u9 [odd 1/2] kb_u6_v109.u6 IDENTICAL CRC(e50dba01) SHA1(0103192a877ab18c4da0b3448a1dd9e088c7a740) + // p0300_v109.u9 [even 2/2] kb_u4_v109.u4 IDENTICAL CRC(6ac58bb3) SHA1(5e911d1490f6a32f90e150ea933d8679302e0f61) + // p0300_v109.u9 [odd 2/2] kb_u5_v109.u5 IDENTICAL CRC(7dabf576) SHA1(a9fb7fb4c487752597793962ef2bc17ae244fc0a) ROM_REGION( 0x010000, "igs022", 0 ) /* Protection Data */ - ROM_LOAD( "kb_u2.rom", 0x000000, 0x010000, CRC(de3eae63) SHA1(03af767ef764055bda528b5cc6a24b9e1218cca8) ) + ROM_LOAD( "kb_u2_v109.u2", 0x000000, 0x010000, CRC(de3eae63) SHA1(03af767ef764055bda528b5cc6a24b9e1218cca8) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0300.u14", 0x180000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) + ROM_LOAD( "pgm_t0300.u14", 0x180000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) - ROM_LOAD( "a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) - ROM_LOAD( "a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) - ROM_LOAD( "a0306.u12", 0x0c00000, 0x0400000, CRC(cc018a8e) SHA1(37752d46f238fb57c0ab5a4f96b1e013f2077347) ) - ROM_LOAD( "a0307.u2", 0x1000000, 0x0400000, CRC(bc772e39) SHA1(079cc42a190cb916f02b59bca8fa90e524acefe9) ) -// ROM_LOAD( "a0302.u3", 0x1400000, 0x0200000, CRC(a4810e38) SHA1(c31fe641feab2c93795fc35bf71d4f37af1056d4) ) // from lord of gun! unused.. -// ROM_LOAD( "a0304.u4", 0x1600000, 0x0200000, CRC(3096de1c) SHA1(d010990d21cfda9cb8ab5b4bc0e329c23b7719f5) ) // from lord of gun! unused.. -// ROM_LOAD( "a0305.u5", 0x1800000, 0x0200000, CRC(2234531e) SHA1(58a82e31a1c0c1a4dd026576319f4e7ecffd140e) ) // from lord of gun! unused.. + ROM_LOAD( "pgm_a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) + ROM_LOAD( "pgm_a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) + ROM_LOAD( "pgm_a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) + ROM_LOAD( "pgm_a0306.u12", 0x0c00000, 0x0400000, CRC(cc018a8e) SHA1(37752d46f238fb57c0ab5a4f96b1e013f2077347) ) + ROM_LOAD( "pgm_a0307.u2", 0x1000000, 0x0400000, CRC(bc772e39) SHA1(079cc42a190cb916f02b59bca8fa90e524acefe9) ) +// ROM_LOAD( "pgm_a0302.u3", 0x1400000, 0x0200000, CRC(a4810e38) SHA1(c31fe641feab2c93795fc35bf71d4f37af1056d4) ) // from lord of gun! unused.. +// ROM_LOAD( "pgm_a0304.u4", 0x1600000, 0x0200000, CRC(3096de1c) SHA1(d010990d21cfda9cb8ab5b4bc0e329c23b7719f5) ) // from lord of gun! unused.. +// ROM_LOAD( "pgm_a0305.u5", 0x1800000, 0x0200000, CRC(2234531e) SHA1(58a82e31a1c0c1a4dd026576319f4e7ecffd140e) ) // from lord of gun! unused.. ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0300.u13", 0x0000000, 0x0400000, CRC(7f876981) SHA1(43555a200929ad5ecc42137fc9aeb42dc4f50d20) ) - ROM_LOAD( "b0302.u14", 0x0400000, 0x0400000, CRC(eea9c502) SHA1(04b3972c7111ea59a3cceab6ad124080c4ce3520) ) - ROM_LOAD( "b0303.u15", 0x0800000, 0x0200000, CRC(77a9652e) SHA1(2342f643d37945fbda224a5034c013796e5134ca) ) -// ROM_LOAD( "b0301.u8", 0x0a00000, 0x0200000, CRC(400abe33) SHA1(20de1eb626424ea41bd55eb3cecd6b50be744ee0) ) // from lord of gun! unused.. + ROM_LOAD( "pgm_b0300.u13", 0x0000000, 0x0400000, CRC(7f876981) SHA1(43555a200929ad5ecc42137fc9aeb42dc4f50d20) ) + ROM_LOAD( "pgm_b0302.u14", 0x0400000, 0x0400000, CRC(eea9c502) SHA1(04b3972c7111ea59a3cceab6ad124080c4ce3520) ) + ROM_LOAD( "pgm_b0303.u15", 0x0800000, 0x0200000, CRC(77a9652e) SHA1(2342f643d37945fbda224a5034c013796e5134ca) ) +// ROM_LOAD( "pgm_b0301.u8", 0x0a00000, 0x0200000, CRC(400abe33) SHA1(20de1eb626424ea41bd55eb3cecd6b50be744ee0) ) // from lord of gun! unused.. ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0300.u1", 0x400000, 0x400000, CRC(93159695) SHA1(50c5976c9b681bd3d1ebefa3bfa9fe6e72dcb96f) ) + ROM_LOAD( "pgm_m0300.u1", 0x400000, 0x400000, CRC(93159695) SHA1(50c5976c9b681bd3d1ebefa3bfa9fe6e72dcb96f) ) ROM_END ROM_START( killbld104 ) @@ -2139,27 +2246,27 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0300.u14", 0x180000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) + ROM_LOAD( "pgm_t0300.u14", 0x180000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) - ROM_LOAD( "a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) - ROM_LOAD( "a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) - ROM_LOAD( "a0306.u12", 0x0c00000, 0x0400000, CRC(cc018a8e) SHA1(37752d46f238fb57c0ab5a4f96b1e013f2077347) ) - ROM_LOAD( "a0307.u2", 0x1000000, 0x0400000, CRC(bc772e39) SHA1(079cc42a190cb916f02b59bca8fa90e524acefe9) ) -// ROM_LOAD( "a0302.u3", 0x1400000, 0x0200000, CRC(a4810e38) SHA1(c31fe641feab2c93795fc35bf71d4f37af1056d4) ) // from lord of gun! unused.. -// ROM_LOAD( "a0304.u4", 0x1600000, 0x0200000, CRC(3096de1c) SHA1(d010990d21cfda9cb8ab5b4bc0e329c23b7719f5) ) // from lord of gun! unused.. -// ROM_LOAD( "a0305.u5", 0x1800000, 0x0200000, CRC(2234531e) SHA1(58a82e31a1c0c1a4dd026576319f4e7ecffd140e) ) // from lord of gun! unused.. - - ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0300.u13", 0x0000000, 0x0400000, CRC(7f876981) SHA1(43555a200929ad5ecc42137fc9aeb42dc4f50d20) ) - ROM_LOAD( "b0302.u14", 0x0400000, 0x0400000, CRC(eea9c502) SHA1(04b3972c7111ea59a3cceab6ad124080c4ce3520) ) - ROM_LOAD( "b0303.u15", 0x0800000, 0x0200000, CRC(77a9652e) SHA1(2342f643d37945fbda224a5034c013796e5134ca) ) -// ROM_LOAD( "b0301.u8", 0x0a00000, 0x0200000, CRC(400abe33) SHA1(20de1eb626424ea41bd55eb3cecd6b50be744ee0) ) // from lord of gun! unused.. + ROM_LOAD( "pgm_a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) + ROM_LOAD( "pgm_a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) + ROM_LOAD( "pgm_a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) + ROM_LOAD( "pgm_a0306.u12", 0x0c00000, 0x0400000, CRC(cc018a8e) SHA1(37752d46f238fb57c0ab5a4f96b1e013f2077347) ) + ROM_LOAD( "pgm_a0307.u2", 0x1000000, 0x0400000, CRC(bc772e39) SHA1(079cc42a190cb916f02b59bca8fa90e524acefe9) ) +// ROM_LOAD( "pgm_a0302.u3", 0x1400000, 0x0200000, CRC(a4810e38) SHA1(c31fe641feab2c93795fc35bf71d4f37af1056d4) ) // from lord of gun! unused.. +// ROM_LOAD( "pgm_a0304.u4", 0x1600000, 0x0200000, CRC(3096de1c) SHA1(d010990d21cfda9cb8ab5b4bc0e329c23b7719f5) ) // from lord of gun! unused.. +// ROM_LOAD( "pgm_a0305.u5", 0x1800000, 0x0200000, CRC(2234531e) SHA1(58a82e31a1c0c1a4dd026576319f4e7ecffd140e) ) // from lord of gun! unused.. + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b0300.u13", 0x0000000, 0x0400000, CRC(7f876981) SHA1(43555a200929ad5ecc42137fc9aeb42dc4f50d20) ) + ROM_LOAD( "pgm_b0302.u14", 0x0400000, 0x0400000, CRC(eea9c502) SHA1(04b3972c7111ea59a3cceab6ad124080c4ce3520) ) + ROM_LOAD( "pgm_b0303.u15", 0x0800000, 0x0200000, CRC(77a9652e) SHA1(2342f643d37945fbda224a5034c013796e5134ca) ) +// ROM_LOAD( "pgm_b0301.u8", 0x0a00000, 0x0200000, CRC(400abe33) SHA1(20de1eb626424ea41bd55eb3cecd6b50be744ee0) ) // from lord of gun! unused.. ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0300.u1", 0x400000, 0x400000, CRC(93159695) SHA1(50c5976c9b681bd3d1ebefa3bfa9fe6e72dcb96f) ) + ROM_LOAD( "pgm_m0300.u1", 0x400000, 0x400000, CRC(93159695) SHA1(50c5976c9b681bd3d1ebefa3bfa9fe6e72dcb96f) ) ROM_END ROM_START( killbld106 ) @@ -2175,32 +2282,30 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0300.u14", 0x180000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) + ROM_LOAD( "pgm_t0300.u14", 0x180000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) - ROM_LOAD( "a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) - ROM_LOAD( "a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) - ROM_LOAD( "a0306.u12", 0x0c00000, 0x0400000, CRC(cc018a8e) SHA1(37752d46f238fb57c0ab5a4f96b1e013f2077347) ) - ROM_LOAD( "a0307.u2", 0x1000000, 0x0400000, CRC(bc772e39) SHA1(079cc42a190cb916f02b59bca8fa90e524acefe9) ) -// ROM_LOAD( "a0302.u3", 0x1400000, 0x0200000, CRC(a4810e38) SHA1(c31fe641feab2c93795fc35bf71d4f37af1056d4) ) // from lord of gun! unused.. -// ROM_LOAD( "a0304.u4", 0x1600000, 0x0200000, CRC(3096de1c) SHA1(d010990d21cfda9cb8ab5b4bc0e329c23b7719f5) ) // from lord of gun! unused.. -// ROM_LOAD( "a0305.u5", 0x1800000, 0x0200000, CRC(2234531e) SHA1(58a82e31a1c0c1a4dd026576319f4e7ecffd140e) ) // from lord of gun! unused.. - - ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0300.u13", 0x0000000, 0x0400000, CRC(7f876981) SHA1(43555a200929ad5ecc42137fc9aeb42dc4f50d20) ) - ROM_LOAD( "b0302.u14", 0x0400000, 0x0400000, CRC(eea9c502) SHA1(04b3972c7111ea59a3cceab6ad124080c4ce3520) ) - ROM_LOAD( "b0303.u15", 0x0800000, 0x0200000, CRC(77a9652e) SHA1(2342f643d37945fbda224a5034c013796e5134ca) ) -// ROM_LOAD( "b0301.u8", 0x0a00000, 0x0200000, CRC(400abe33) SHA1(20de1eb626424ea41bd55eb3cecd6b50be744ee0) ) // from lord of gun! unused.. + ROM_LOAD( "pgm_a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) + ROM_LOAD( "pgm_a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) + ROM_LOAD( "pgm_a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) + ROM_LOAD( "pgm_a0306.u12", 0x0c00000, 0x0400000, CRC(cc018a8e) SHA1(37752d46f238fb57c0ab5a4f96b1e013f2077347) ) + ROM_LOAD( "pgm_a0307.u2", 0x1000000, 0x0400000, CRC(bc772e39) SHA1(079cc42a190cb916f02b59bca8fa90e524acefe9) ) +// ROM_LOAD( "pgm_a0302.u3", 0x1400000, 0x0200000, CRC(a4810e38) SHA1(c31fe641feab2c93795fc35bf71d4f37af1056d4) ) // from lord of gun! unused.. +// ROM_LOAD( "pgm_a0304.u4", 0x1600000, 0x0200000, CRC(3096de1c) SHA1(d010990d21cfda9cb8ab5b4bc0e329c23b7719f5) ) // from lord of gun! unused.. +// ROM_LOAD( "pgm_a0305.u5", 0x1800000, 0x0200000, CRC(2234531e) SHA1(58a82e31a1c0c1a4dd026576319f4e7ecffd140e) ) // from lord of gun! unused.. + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b0300.u13", 0x0000000, 0x0400000, CRC(7f876981) SHA1(43555a200929ad5ecc42137fc9aeb42dc4f50d20) ) + ROM_LOAD( "pgm_b0302.u14", 0x0400000, 0x0400000, CRC(eea9c502) SHA1(04b3972c7111ea59a3cceab6ad124080c4ce3520) ) + ROM_LOAD( "pgm_b0303.u15", 0x0800000, 0x0200000, CRC(77a9652e) SHA1(2342f643d37945fbda224a5034c013796e5134ca) ) +// ROM_LOAD( "pgm_b0301.u8", 0x0a00000, 0x0200000, CRC(400abe33) SHA1(20de1eb626424ea41bd55eb3cecd6b50be744ee0) ) // from lord of gun! unused.. ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0300.u1", 0x400000, 0x400000, CRC(93159695) SHA1(50c5976c9b681bd3d1ebefa3bfa9fe6e72dcb96f) ) + ROM_LOAD( "pgm_m0300.u1", 0x400000, 0x400000, CRC(93159695) SHA1(50c5976c9b681bd3d1ebefa3bfa9fe6e72dcb96f) ) ROM_END - - /* Puzzle Star IGS, 1999 @@ -2252,7 +2357,31 @@ U3 - 16MBit MaskROM (DIP42) */ -ROM_START( puzlstar ) +ROM_START( puzlstar ) // V100MG 09/30/99 11:39:23 + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_BYTE( "puzzlestar_u1_v100mg.u1", 0x100000, 0x080000, CRC(c6ee43d7) SHA1(2419414ded556b5e4868d51b0da5dfce374d6bc0) ) + ROM_LOAD16_BYTE( "puzzlestar_u2_v100mg.u2", 0x100001, 0x080000, CRC(42aa03ce) SHA1(8e1666cc3ded98179a3e4854973604172921bbd6) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "puzlstar_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgm_t0800.u5", 0x180000, 0x200000, CRC(f9d84e59) SHA1(80ec77025ac5bf355b1a60f2a678dd4c56071f6b) ) + + ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgm_a0800.u1", 0x0000000, 0x0400000, CRC(e1e6ec40) SHA1(390432431f144ef63424a426582b311765a61771) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b0800.u3", 0x0000000, 0x0200000, CRC(52e7bef5) SHA1(a678251b7e46a1016d0afc1d8d5c9928008ad5b1) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgm_m0800.u2", 0x400000, 0x400000, CRC(e1a46541) SHA1(6fe9de5700d8638374734d80551dcedb62975140) ) +ROM_END + +ROM_START( puzlstara ) // V100MG 09/20/99 15:16:02 ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS ROM_LOAD16_BYTE( "v100mg.u1", 0x100000, 0x080000, CRC(5788b77d) SHA1(7770aae6e686da92b2623c977d1bc8f019f48267) ) @@ -2263,17 +2392,17 @@ ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0800.u5", 0x180000, 0x200000, CRC(f9d84e59) SHA1(80ec77025ac5bf355b1a60f2a678dd4c56071f6b) ) + ROM_LOAD( "pgm_t0800.u5", 0x180000, 0x200000, CRC(f9d84e59) SHA1(80ec77025ac5bf355b1a60f2a678dd4c56071f6b) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0800.u1", 0x0000000, 0x0400000, CRC(e1e6ec40) SHA1(390432431f144ef63424a426582b311765a61771) ) + ROM_LOAD( "pgm_a0800.u1", 0x0000000, 0x0400000, CRC(e1e6ec40) SHA1(390432431f144ef63424a426582b311765a61771) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0800.u3", 0x0000000, 0x0200000, CRC(52e7bef5) SHA1(a678251b7e46a1016d0afc1d8d5c9928008ad5b1) ) + ROM_LOAD( "pgm_b0800.u3", 0x0000000, 0x0200000, CRC(52e7bef5) SHA1(a678251b7e46a1016d0afc1d8d5c9928008ad5b1) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0800.u2", 0x400000, 0x400000, CRC(e1a46541) SHA1(6fe9de5700d8638374734d80551dcedb62975140) ) + ROM_LOAD( "pgm_m0800.u2", 0x400000, 0x400000, CRC(e1a46541) SHA1(6fe9de5700d8638374734d80551dcedb62975140) ) ROM_END @@ -2332,10 +2461,6 @@ */ - - - - ROM_START( olds103t ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS @@ -2343,40 +2468,40 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0500.rom", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) - ROM_LOAD( "t0501.rom", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) + ROM_LOAD( "pgm_t0500.u18", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) + ROM_LOAD( "pgm_t0501.u19", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) - ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) - ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) - ROM_LOAD( "a0503.rom", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) - ROM_LOAD( "a0504.rom", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) - ROM_LOAD( "a0505.rom", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) - ROM_LOAD( "a0506.rom", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) + ROM_LOAD( "pgm_a0500.u5", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) + ROM_LOAD( "pgm_a0501.u6", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) + ROM_LOAD( "pgm_a0502.u7", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) + ROM_LOAD( "pgm_a0503.u8", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) + ROM_LOAD( "pgm_a0504.u11", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) + ROM_LOAD( "pgm_a0505.u12", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) + ROM_LOAD( "pgm_a0506.u13", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0500.rom", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) - ROM_LOAD( "b0501.rom", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) - ROM_LOAD( "b0502.rom", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) - ROM_LOAD( "b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) + ROM_LOAD( "pgm_b0500.u9", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) + ROM_LOAD( "pgm_b0501.u10", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) + ROM_LOAD( "pgm_b0502.u15", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) + ROM_LOAD( "pgm_b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0500.rom", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) + ROM_LOAD( "pgm_m0500.u1", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) ROM_END ROM_START( olds ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "sp_v101.u2", 0x100001, 0x080000, CRC(08eb9661) SHA1(105946e72e562adb1a9fd794ca0fd2c91967eb56) ) - ROM_LOAD16_BYTE( "sp_v101.u3", 0x100000, 0x080000, CRC(0a358c1e) SHA1(95c7c3f069c5d05001e22535750f6b3cd7de105f) ) - ROM_LOAD16_BYTE( "sp_v101.u4", 0x200001, 0x080000, CRC(766570e0) SHA1(e7c3f5664ec69b662b82c2e1375555db7305390c) ) - ROM_LOAD16_BYTE( "sp_v101.u5", 0x200000, 0x080000, CRC(58662e12) SHA1(2b39bd847e9c4968a8e77a2f3cec77cf323ceee3) ) - ROM_LOAD16_WORD_SWAP( "sp_v101.u1",0x300000, 0x080000, CRC(2b2f4f1e) SHA1(67b97cf8cc7f517d67cd45588addd2ad8e24612a) ) + ROM_LOAD16_BYTE( "sp_v101_u2.u2", 0x100001, 0x080000, CRC(08eb9661) SHA1(105946e72e562adb1a9fd794ca0fd2c91967eb56) ) + ROM_LOAD16_BYTE( "sp_v101_u3.u3", 0x100000, 0x080000, CRC(0a358c1e) SHA1(95c7c3f069c5d05001e22535750f6b3cd7de105f) ) + ROM_LOAD16_BYTE( "sp_v101_u4.u4", 0x200001, 0x080000, CRC(766570e0) SHA1(e7c3f5664ec69b662b82c2e1375555db7305390c) ) + ROM_LOAD16_BYTE( "sp_v101_u5.u5", 0x200000, 0x080000, CRC(58662e12) SHA1(2b39bd847e9c4968a8e77a2f3cec77cf323ceee3) ) + ROM_LOAD16_WORD_SWAP( "sp_v101_u1.u1", 0x300000, 0x080000, CRC(2b2f4f1e) SHA1(67b97cf8cc7f517d67cd45588addd2ad8e24612a) ) ROM_REGION32_LE( 0x010000, "user1", 0 ) /* IGS028 Protection Data */ - ROM_LOAD( "sp_v101.u6", 0x000000, 0x010000, CRC(097046bc) SHA1(6d75db85cf4c79b63e837897785c253014b2126d) ) + ROM_LOAD( "sp_v101_u6.u6", 0x000000, 0x010000, CRC(097046bc) SHA1(6d75db85cf4c79b63e837897785c253014b2126d) ) ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF ) /* its a dump of the shared protection rom/ram from pcb. */ // clearly not for this revision @@ -2384,68 +2509,68 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0500.rom", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) - ROM_LOAD( "t0501.rom", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) + ROM_LOAD( "pgm_t0500.u18", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) + ROM_LOAD( "pgm_t0501.u19", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) - ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) - ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) - ROM_LOAD( "a0503.rom", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) - ROM_LOAD( "a0504.rom", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) - ROM_LOAD( "a0505.rom", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) - ROM_LOAD( "a0506.rom", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) + ROM_LOAD( "pgm_a0500.u5", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) + ROM_LOAD( "pgm_a0501.u6", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) + ROM_LOAD( "pgm_a0502.u7", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) + ROM_LOAD( "pgm_a0503.u8", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) + ROM_LOAD( "pgm_a0504.u11", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) + ROM_LOAD( "pgm_a0505.u12", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) + ROM_LOAD( "pgm_a0506.u13", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0500.rom", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) - ROM_LOAD( "b0501.rom", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) - ROM_LOAD( "b0502.rom", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) - ROM_LOAD( "b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) + ROM_LOAD( "pgm_b0500.u9", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) + ROM_LOAD( "pgm_b0501.u10", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) + ROM_LOAD( "pgm_b0502.u15", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) + ROM_LOAD( "pgm_b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0500.rom", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) + ROM_LOAD( "pgm_m0500.u1", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) ROM_END ROM_START( olds100 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_BYTE( "v100-u2.040", 0x100001, 0x080000, CRC(517c2a06) SHA1(bbf5b311fac9b0bb4d4129c0561e5e24f6963fa2) ) - ROM_LOAD16_BYTE( "v100-u3.040", 0x100000, 0x080000, CRC(d0e2b741) SHA1(2e671dbb4320d1f0c059b35efd33cdea26f12131) ) - ROM_LOAD16_BYTE( "v100-u4.040", 0x200001, 0x080000, CRC(32a6bdbd) SHA1(a93d7f4eae722a58eca9ec351ad5890cefda56f0) ) - ROM_LOAD16_BYTE( "v100-u5.040", 0x200000, 0x080000, CRC(b4a1cafb) SHA1(b2fccd480ede93f58ad043387b18b898152f06ef) ) - ROM_LOAD16_WORD_SWAP( "v100-u1.040", 0x300000, 0x080000, CRC(37ea4e75) SHA1(a94fcb89da3394a43d360f885419677f511d2580) ) + ROM_LOAD16_BYTE( "sp_v100_u2.u2", 0x100001, 0x080000, CRC(517c2a06) SHA1(bbf5b311fac9b0bb4d4129c0561e5e24f6963fa2) ) + ROM_LOAD16_BYTE( "sp_v100_u3.u3", 0x100000, 0x080000, CRC(d0e2b741) SHA1(2e671dbb4320d1f0c059b35efd33cdea26f12131) ) + ROM_LOAD16_BYTE( "sp_v100_u4.u4", 0x200001, 0x080000, CRC(32a6bdbd) SHA1(a93d7f4eae722a58eca9ec351ad5890cefda56f0) ) + ROM_LOAD16_BYTE( "sp_v100_u5.u5", 0x200000, 0x080000, CRC(b4a1cafb) SHA1(b2fccd480ede93f58ad043387b18b898152f06ef) ) + ROM_LOAD16_WORD_SWAP( "sp_v100_u1.u1", 0x300000, 0x080000, CRC(37ea4e75) SHA1(a94fcb89da3394a43d360f885419677f511d2580) ) ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF ) /* its a dump of the shared protection rom/ram from pcb. */ // used to simulate encrypted DMA protection device for now .. ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) ) ROM_REGION32_LE( 0x010000, "user1", 0 ) /* IGS028 Protection Data */ - ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) ) + ROM_LOAD( "sp_v100_u6.u6", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0500.rom", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) - ROM_LOAD( "t0501.rom", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) + ROM_LOAD( "pgm_t0500.u18", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) + ROM_LOAD( "pgm_t0501.u19", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) - ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) - ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) - ROM_LOAD( "a0503.rom", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) - ROM_LOAD( "a0504.rom", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) - ROM_LOAD( "a0505.rom", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) - ROM_LOAD( "a0506.rom", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) + ROM_LOAD( "pgm_a0500.u5", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) + ROM_LOAD( "pgm_a0501.u6", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) + ROM_LOAD( "pgm_a0502.u7", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) + ROM_LOAD( "pgm_a0503.u8", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) + ROM_LOAD( "pgm_a0504.u11", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) + ROM_LOAD( "pgm_a0505.u12", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) + ROM_LOAD( "pgm_a0506.u13", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0500.rom", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) - ROM_LOAD( "b0501.rom", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) - ROM_LOAD( "b0502.rom", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) - ROM_LOAD( "b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) + ROM_LOAD( "pgm_b0500.u9", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) + ROM_LOAD( "pgm_b0501.u10", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) + ROM_LOAD( "pgm_b0502.u15", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) + ROM_LOAD( "pgm_b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0500.rom", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) + ROM_LOAD( "pgm_m0500.u1", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) ROM_END /* this is the set which the protection ram dump seems to be for.. */ @@ -2453,10 +2578,11 @@ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS /* this rom had a lame hack applied to it by the dumper, this was removed, hopefully it is correct now */ - ROM_LOAD16_WORD_SWAP( "p0500.v10", 0x100000, 0x400000, CRC(8981fc87) SHA1(678d6705d06b99bca5951ff77708adadc4c4396b) ) + ROM_LOAD16_WORD_SWAP( "pgm_p0500_v100.u24", 0x100000, 0x400000, CRC(8981fc87) SHA1(678d6705d06b99bca5951ff77708adadc4c4396b) ) - ROM_REGION32_LE( 0x010000, "user1", ROMREGION_ERASEFF ) /* IGS028 Protection Data */ - /* missing from this set .. */ + /* ROM label SP 西遊記 DATA on sticker */ + ROM_REGION32_LE( 0x010000, "user1", 0 ) /* IGS028 Protection Data */ + ROM_LOAD( "sp_data.u6", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) ) ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF ) /* its a dump of the shared protection rom/ram from pcb. */ // used to simulate encrypted DMA protection device for now .. @@ -2464,370 +2590,401 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0500.rom", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) - ROM_LOAD( "t0501.rom", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) + ROM_LOAD( "pgm_t0500.u18", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) + ROM_LOAD( "pgm_t0501.u19", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) - ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) - ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) - ROM_LOAD( "a0503.rom", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) - ROM_LOAD( "a0504.rom", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) - ROM_LOAD( "a0505.rom", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) - ROM_LOAD( "a0506.rom", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) + ROM_LOAD( "pgm_a0500.u5", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) + ROM_LOAD( "pgm_a0501.u6", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) + ROM_LOAD( "pgm_a0502.u7", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) + ROM_LOAD( "pgm_a0503.u8", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) ) + ROM_LOAD( "pgm_a0504.u11", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) ) + ROM_LOAD( "pgm_a0505.u12", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) ) + ROM_LOAD( "pgm_a0506.u13", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0500.rom", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) - ROM_LOAD( "b0501.rom", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) - ROM_LOAD( "b0502.rom", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) - ROM_LOAD( "b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) + ROM_LOAD( "pgm_b0500.u9", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) ) + ROM_LOAD( "pgm_b0501.u10", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) ) + ROM_LOAD( "pgm_b0502.u15", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) ) + ROM_LOAD( "pgm_b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0500.rom", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) + ROM_LOAD( "pgm_m0500.u1", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) ) ROM_END ROM_START( kov2 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u18.107", 0x100000, 0x400000, CRC(661a5b2c) SHA1(125054fabc93d4f4cba869c3e6adf863650d30cf) ) // 05/10/01 14:24:08 V107 + ROM_LOAD16_WORD_SWAP( "v107_u18.u18", 0x100000, 0x400000, CRC(661a5b2c) SHA1(125054fabc93d4f4cba869c3e6adf863650d30cf) ) // 05/10/01 14:24:08 V107 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u19.102", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) ) + ROM_LOAD( "v102_u19.u19", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2106 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u18.106", 0x100000, 0x400000, CRC(40051ad9) SHA1(ba2ddf267fe688d5dfed575aeeccbab10135b37b) ) // 02/27/01 13:26:46 V106 + ROM_LOAD16_WORD_SWAP( "v106_u18.u18", 0x100000, 0x400000, CRC(40051ad9) SHA1(ba2ddf267fe688d5dfed575aeeccbab10135b37b) ) // 02/27/01 13:26:46 V106 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u19.102", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) ) + ROM_LOAD( "v102_u19.u19", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2104 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u18.104", 0x100000, 0x400000, CRC(0fdb050b) SHA1(8ac704459e1a17d0956dd3529e81b6bcd8abf361) ) // 01/19/01 10:19:38 V104 + ROM_LOAD16_WORD_SWAP( "v104_u18.u18", 0x100000, 0x400000, CRC(0fdb050b) SHA1(8ac704459e1a17d0956dd3529e81b6bcd8abf361) ) // 01/19/01 10:19:38 V104 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u19.102", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) ) + ROM_LOAD( "v102_u19.u19", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2103 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u18.103", 0x100000, 0x400000, CRC(98c32f76) SHA1(ec7e35e8071bb7097e415493be4e40be0ca19fd6) ) // 12/28/00 15:09:31 V103 + ROM_LOAD16_WORD_SWAP( "v103_u18.u18", 0x100000, 0x400000, CRC(98c32f76) SHA1(ec7e35e8071bb7097e415493be4e40be0ca19fd6) ) // 12/28/00 15:09:31 V103 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u19.101", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) ) + ROM_LOAD( "v101_u19.u19", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2102 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u18.102", 0x100000, 0x400000, CRC(a2489c37) SHA1(77ea7cdec211848296dafd45bee1d042133ea2a6) ) // 12/14/00 10:33:36 V102 + ROM_LOAD16_WORD_SWAP( "v102_u18.u18", 0x100000, 0x400000, CRC(a2489c37) SHA1(77ea7cdec211848296dafd45bee1d042133ea2a6) ) // 12/14/00 10:33:36 V102 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u19.101", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) ) + ROM_LOAD( "v101_u19.u19", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2101 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u18.101", 0x100000, 0x400000, CRC(c9926f35) SHA1(a9c72d0c5d239164107894c7d3fffe4af29ed201) ) // 12/07/00 16:40:30 V101 + ROM_LOAD16_WORD_SWAP( "v101_u18.u18", 0x100000, 0x400000, CRC(c9926f35) SHA1(a9c72d0c5d239164107894c7d3fffe4af29ed201) ) // 12/07/00 16:40:30 V101 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u19.101", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) ) + ROM_LOAD( "v101_u19.u19", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2100 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "igs_u18.rom", 0x100000, 0x400000, CRC(86205879) SHA1(f73d5b70b41d39be1cac75e474b025de2cce0b01) ) // 11/29/00 11:03:08 V100 + ROM_LOAD16_WORD_SWAP( "v100_u18.u18", 0x100000, 0x400000, CRC(86205879) SHA1(f73d5b70b41d39be1cac75e474b025de2cce0b01) ) // 11/29/00 11:03:08 V100 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u19.100", 0x000000, 0x200000, CRC(edd59922) SHA1(09b14f20f685944a93292c83e5830849aade42c9) ) + ROM_LOAD( "v100_u19.u19", 0x000000, 0x200000, CRC(edd59922) SHA1(09b14f20f685944a93292c83e5830849aade42c9) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2p ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u8-27322.rom", 0x100000, 0x400000, CRC(3a2cc0de) SHA1(d7511478b34bfb03b2fb5b8268b60502d05b9414) ) // 04/25/02 17:48:27 M205XX + ROM_LOAD16_WORD_SWAP( "v205_32m.u8", 0x100000, 0x400000, CRC(3a2cc0de) SHA1(d7511478b34bfb03b2fb5b8268b60502d05b9414) ) // 04/25/02 17:48:27 M205XX ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + ROM_LOAD( "v200_16m.u23", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2p204 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v204-32m.rom", 0x100000, 0x400000, CRC(583e0650) SHA1(2e5656dd9c6cba9f84af9baa3f5f70cdccf9db47) ) // 08/28/01 09:11:49 M204XX + ROM_LOAD16_WORD_SWAP( "v204_32m.u8", 0x100000, 0x400000, CRC(583e0650) SHA1(2e5656dd9c6cba9f84af9baa3f5f70cdccf9db47) ) // 08/28/01 09:11:49 M204XX + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) + + ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v200_16m.u23", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + + ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) +ROM_END + +ROM_START( kov2p203 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v203_32m.u8", 0x100000, 0x400000, CRC(11416886) SHA1(00088165893ed0b5fb8bbac3def0edeb9ff0c4fd) ) // 08/13/01 16:57:32 M203XX ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + ROM_LOAD( "v200_16m.u23", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2p202 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v202.bin", 0x100000, 0x400000, CRC(e9b5aa0c) SHA1(39a776c8501e8557d305cfa56c997f9adeb6bcd2) ) // 07/09/01 11:03:50 M202XX + ROM_LOAD16_WORD_SWAP( "v202_32m.u8", 0x100000, 0x400000, CRC(e9b5aa0c) SHA1(39a776c8501e8557d305cfa56c997f9adeb6bcd2) ) // 07/09/01 11:03:50 M202XX ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + ROM_LOAD( "v200_16m.u23", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END ROM_START( kov2p200 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v200_32m.ic8", 0x100000, 0x400000, CRC(9a09fd61) SHA1(690a0b323e1f275a08ba84febf93bf8edc2d0802) ) // 06/18/01 22:59:12 M200XX + ROM_LOAD16_WORD_SWAP( "v200_32m.u8", 0x100000, 0x400000, CRC(9a09fd61) SHA1(690a0b323e1f275a08ba84febf93bf8edc2d0802) ) // 06/18/01 22:59:12 M200XX ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + ROM_LOAD( "v200_16m.u23", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + ROM_LOAD( "pgm_t1200.u27", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) - ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) - ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) - ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) - ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + ROM_LOAD( "pgm_a1200.u1", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "pgm_a1201.u4", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "pgm_a1202.u6", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "pgm_a1203.u8", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "pgm_a1204.u10", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) - ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + ROM_LOAD( "pgm_b1200.u5", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "pgm_b1201.u7", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) + ROM_LOAD( "pgm_m1200.u3", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) ROM_END /* @@ -2876,18 +3033,18 @@ #define DDP2_COMMON_ROMS \ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ \ - ROM_LOAD( "v100.u23", 0x000000, 0x20000, CRC(06c3dd29) SHA1(20c9479f158467fc2037dcf162b6c6be18c91d46) ) \ + ROM_LOAD( "v100_210.u23", 0x000000, 0x20000, CRC(06c3dd29) SHA1(20c9479f158467fc2037dcf162b6c6be18c91d46) ) \ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ \ PGM_VIDEO_BIOS \ - ROM_LOAD( "t1300.u21", 0x180000, 0x800000, CRC(e748f0cb) SHA1(5843bee3a17c33648ce904af2b98c6a90aff7393) ) \ + ROM_LOAD( "pgm_t1300.u21", 0x180000, 0x800000, CRC(e748f0cb) SHA1(5843bee3a17c33648ce904af2b98c6a90aff7393) ) \ ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ \ - ROM_LOAD( "a1300.u1", 0x0000000, 0x0800000, CRC(fc87a405) SHA1(115c21ecc56997652e527c92654076870bc9fa51) ) /* FIXED BITS (xxxxxxxx1xxxxxxx) */ \ - ROM_LOAD( "a1301.u2", 0x0800000, 0x0800000, CRC(0c8520da) SHA1(390317857ae5baa94a4cc042874b00a811f06a63) ) /* FIXED BITS (xxxxxxxx1xxxxxxx) */ \ + ROM_LOAD( "pgm_a1300.u1", 0x0000000, 0x0800000, CRC(fc87a405) SHA1(115c21ecc56997652e527c92654076870bc9fa51) ) /* FIXED BITS (xxxxxxxx1xxxxxxx) */ \ + ROM_LOAD( "pgm_a1301.u2", 0x0800000, 0x0800000, CRC(0c8520da) SHA1(390317857ae5baa94a4cc042874b00a811f06a63) ) /* FIXED BITS (xxxxxxxx1xxxxxxx) */ \ ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ \ - ROM_LOAD( "b1300.u7", 0x0000000, 0x0800000, CRC(ef646604) SHA1(d737ff513792962f18df88c2caa9dd71de449079) ) \ + ROM_LOAD( "pgm_b1300.u7", 0x0000000, 0x0800000, CRC(ef646604) SHA1(d737ff513792962f18df88c2caa9dd71de449079) ) \ ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ \ PGM_AUDIO_BIOS \ - ROM_LOAD( "m1300.u5", 0x400000, 0x400000, CRC(82d4015d) SHA1(d4cdc1aec1c97cf23ff7a20ccaad822962e66ffa) ) + ROM_LOAD( "pgm_m1300.u5", 0x400000, 0x400000, CRC(82d4015d) SHA1(d4cdc1aec1c97cf23ff7a20ccaad822962e66ffa) ) #define DDP2_PROGRAM_102 \ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ \ @@ -3038,58 +3195,87 @@ */ ROM_START( dw2001 ) + /* All ROMs labels are on stickers */ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "2001.u22", 0x100000, 0x80000, CRC(5cabed92) SHA1(d513e353c5c4695b16228e0bda9388c396aa4a81) ) // 02/21/01 16:05:16 + ROM_LOAD16_WORD_SWAP( "dw2001_u22.u22", 0x100000, 0x80000, CRC(5cabed92) SHA1(d513e353c5c4695b16228e0bda9388c396aa4a81) ) // 02/21/01 16:05:16 ROM_REGION( 0x4000, "prot", ROMREGION_ERASEFF ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "dw2001_igs027a_japan.bin", 0x000000, 0x04000, CRC(3a79159b) SHA1(0d693c798ce24c6a749669be8c7b1e4633409e49) ) ROM_REGION32_LE( 0x4000000, "user1", ROMREGION_ERASEFF ) - ROM_LOAD( "2001.u12", 0x000000, 0x80000, CRC(973db1ab) SHA1(cc35e1a8534fa5d59d888f530769bae4e08c62ca) ) // external ARM data rom (encrypted) + ROM_LOAD( "dw2001_u12.u12", 0x000000, 0x80000, CRC(973db1ab) SHA1(cc35e1a8534fa5d59d888f530769bae4e08c62ca) ) // external ARM data rom (encrypted) ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "2001.u11", 0x180000, 0x200000, CRC(b27cf093) SHA1(7c5736a3d72b89742da1c92b2604d66e48b95e56) ) + ROM_LOAD( "dw2001_u11.u11", 0x180000, 0x200000, CRC(b27cf093) SHA1(7c5736a3d72b89742da1c92b2604d66e48b95e56) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "2001.u2", 0x000000, 0x200000, CRC(d11c733c) SHA1(8faad32e8e215631a2263bdd51a9ae434540d028) ) - ROM_LOAD( "2001.u3", 0x200000, 0x200000, CRC(1435aef2) SHA1(582eb9f6415c89418401be7ebad041adeb600515) ) + ROM_LOAD( "dw2001_u2.u2", 0x000000, 0x200000, CRC(d11c733c) SHA1(8faad32e8e215631a2263bdd51a9ae434540d028) ) + ROM_LOAD( "dw2001_u3.u3", 0x200000, 0x200000, CRC(1435aef2) SHA1(582eb9f6415c89418401be7ebad041adeb600515) ) ROM_REGION16_LE( 0x0200000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "2001.u9", 0x000000, 0x200000, CRC(ccbca572) SHA1(4d3512e82cb65e5cdfcc6cb18deec9f4a6dd350a) ) + ROM_LOAD( "dw2001_u9.u9", 0x000000, 0x200000, CRC(ccbca572) SHA1(4d3512e82cb65e5cdfcc6cb18deec9f4a6dd350a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "2001.u7", 0x200000, 0x200000, CRC(4ea62f21) SHA1(318f8a1ff5d4ff029a1c4133fe7acc2fc185d112) ) + ROM_LOAD( "dw2001_u7.u7", 0x200000, 0x200000, CRC(4ea62f21) SHA1(318f8a1ff5d4ff029a1c4133fe7acc2fc185d112) ) ROM_END - ROM_START( dwpc ) + /* All ROMs labels are on stickers */ + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "dwpc_v110cn_u22.u22", 0x100000, 0x80000, CRC(64f22362) SHA1(5f7c58498ae5cbec1c36eaa65c75287c36b6bd52) ) // 03/19/02 11:13:16 + + ROM_REGION( 0x4000, "prot", ROMREGION_ERASEFF ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "dw2001_igs027a_japan.bin", 0x000000, 0x04000, BAD_DUMP CRC(3a79159b) SHA1(0d693c798ce24c6a749669be8c7b1e4633409e49) ) // this was dumped for the Japanese version + + ROM_REGION32_LE( 0x4000000, "user1", ROMREGION_ERASEFF ) + ROM_LOAD( "dwpc_v110cn_u12.u12", 0x000000, 0x80000, CRC(5bb1ee6a) SHA1(7844e7eb8c10a5aeb18c6057d9dc2fee7ff822ba) ) // external ARM data rom (encrypted) + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "dwpc_v110cn_u11.u11", 0x180000, 0x400000, CRC(db219cb8) SHA1(8af5a8dac8db93a7720675c64212293d7eab106d) ) + + ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "dwpc_v101xx_u2.u2", 0x000000, 0x200000, CRC(48b2f407) SHA1(9b3c0f315805aaca72c9dc3a35406f775856a8bb) ) + ROM_LOAD( "dwpc_v101xx_u3.u3", 0x200000, 0x200000, CRC(3bb45a97) SHA1(5c5cd5a241ed25dbb83690cb879472b60cd03260) ) + + ROM_REGION16_LE( 0x0200000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "dwpc_v101xx_u9.u9", 0x000000, 0x200000, CRC(481b89b1) SHA1(6a241dc3b4a53ce320f3f17e972ffffe46adda4f) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "dwpc_v101xx_u7.u7", 0x200000, 0x200000, CRC(5cf9bada) SHA1(c5868a31e09e6909c724411a402d8964c29584fc) ) +ROM_END + +ROM_START( dwpc101j ) + /* All ROMs labels are on stickers */ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "dwpc_v101jp.u22", 0x100000, 0x80000, CRC(b93027c0) SHA1(602e5f651ccb63e6465ebd7762d8d2dcf7d54077) ) // 09/26/01 10:23:26 + ROM_LOAD16_WORD_SWAP( "dwpc_v101jp_u22.u22", 0x100000, 0x80000, CRC(b93027c0) SHA1(602e5f651ccb63e6465ebd7762d8d2dcf7d54077) ) // 09/26/01 10:23:26 ROM_REGION( 0x4000, "prot", ROMREGION_ERASEFF ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "dw2001_igs027a_japan.bin", 0x000000, 0x04000, CRC(3a79159b) SHA1(0d693c798ce24c6a749669be8c7b1e4633409e49) ) ROM_REGION32_LE( 0x4000000, "user1", ROMREGION_ERASEFF ) - ROM_LOAD( "dwpc_v100jp.u12", 0x000000, 0x80000, CRC(0d112126) SHA1(2b569b8ef974d1d9906cc052eee63b869c8d4fa4) ) // external ARM data rom (encrypted) + ROM_LOAD( "dwpc_v100jp_u12.u12", 0x000000, 0x80000, CRC(0d112126) SHA1(2b569b8ef974d1d9906cc052eee63b869c8d4fa4) ) // external ARM data rom (encrypted) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "dwpc_v100jp.u11", 0x180000, 0x400000, CRC(3aa5a787) SHA1(ef7bb83f7141b24621c86237244fd9f280923ed1) ) + ROM_LOAD( "dwpc_v100jp_u11.u11", 0x180000, 0x400000, CRC(3aa5a787) SHA1(ef7bb83f7141b24621c86237244fd9f280923ed1) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "dwpc_v100jp.u2", 0x000000, 0x200000, CRC(e7115763) SHA1(f1bf06e9434a3b962166849f51b9dc3a74d7f2a4) ) - ROM_LOAD( "dwpc_v100jp.u3", 0x200000, 0x200000, CRC(49c184a4) SHA1(320504adf596c38db56247e9cef02e7c7a363ccb) ) + ROM_LOAD( "dwpc_v100jp_u2.u2", 0x000000, 0x200000, CRC(e7115763) SHA1(f1bf06e9434a3b962166849f51b9dc3a74d7f2a4) ) + ROM_LOAD( "dwpc_v100jp_u3.u3", 0x200000, 0x200000, CRC(49c184a4) SHA1(320504adf596c38db56247e9cef02e7c7a363ccb) ) ROM_REGION16_LE( 0x0200000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "dwpc_v100jp.u9", 0x000000, 0x200000, CRC(412b9913) SHA1(52fc42a966575e02991aa92382b855744f44854a) ) + ROM_LOAD( "dwpc_v100jp_u9.u9", 0x000000, 0x200000, CRC(412b9913) SHA1(52fc42a966575e02991aa92382b855744f44854a) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "dwpc_v100jp.u7", 0x200000, 0x200000, CRC(5cf9bada) SHA1(c5868a31e09e6909c724411a402d8964c29584fc) ) + ROM_LOAD( "dwpc_v100jp_u7.u7", 0x200000, 0x200000, CRC(5cf9bada) SHA1(c5868a31e09e6909c724411a402d8964c29584fc) ) ROM_END /* @@ -3149,24 +3335,24 @@ ROM_START( puzzli2 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v100.u5", 0x100000, 0x200000, CRC(1abb4595) SHA1(860bb49efc3cb55b6b9846f5ab787d6fd586432d) ) // PUZZLI-2 V0001 + ROM_LOAD16_WORD_SWAP( "v100_u5.u5", 0x100000, 0x200000, CRC(1abb4595) SHA1(860bb49efc3cb55b6b9846f5ab787d6fd586432d) ) // PUZZLI-2 V0001 ROM_REGION( 0x4000, "prot", ROMREGION_ERASEFF ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "puzzli2_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0900.u9", 0x180000, 0x200000, CRC(70615611) SHA1(a46d4aa71396947b427f9ba4ba0e636876c09d6b) ) + ROM_LOAD( "pgm_t0900.u9", 0x180000, 0x200000, CRC(70615611) SHA1(a46d4aa71396947b427f9ba4ba0e636876c09d6b) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0900.u3", 0x0000000, 0x0400000, CRC(14911251) SHA1(e0d10ef50c408dbcf0907f81d4f0e49aeb651a6c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0900.u3", 0x0000000, 0x0400000, CRC(14911251) SHA1(e0d10ef50c408dbcf0907f81d4f0e49aeb651a6c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION16_LE( 0x0200000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0900.u4", 0x0000000, 0x0200000, CRC(6f0638b6) SHA1(14b315fe9e80b3314bb63487e6ea9ce04c9703bd) ) + ROM_LOAD( "pgm_b0900.u4", 0x0000000, 0x0200000, CRC(6f0638b6) SHA1(14b315fe9e80b3314bb63487e6ea9ce04c9703bd) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0900.u2", 0x400000, 0x400000, CRC(9ea7af2e) SHA1(d2593d391a93c5cf5a554750c32886dea6599b3d) ) + ROM_LOAD( "pgm_m0900.u2", 0x400000, 0x400000, CRC(9ea7af2e) SHA1(d2593d391a93c5cf5a554750c32886dea6599b3d) ) ROM_END @@ -3181,17 +3367,17 @@ ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0900.u9", 0x180000, 0x200000, CRC(70615611) SHA1(a46d4aa71396947b427f9ba4ba0e636876c09d6b) ) + ROM_LOAD( "pgm_t0900.u9", 0x180000, 0x200000, CRC(70615611) SHA1(a46d4aa71396947b427f9ba4ba0e636876c09d6b) ) ROM_REGION16_LE( 0x0400000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0900.u3", 0x0000000, 0x0400000, CRC(14911251) SHA1(e0d10ef50c408dbcf0907f81d4f0e49aeb651a6c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0900.u3", 0x0000000, 0x0400000, CRC(14911251) SHA1(e0d10ef50c408dbcf0907f81d4f0e49aeb651a6c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_REGION16_LE( 0x0200000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0900.u4", 0x0000000, 0x0200000, CRC(6f0638b6) SHA1(14b315fe9e80b3314bb63487e6ea9ce04c9703bd) ) + ROM_LOAD( "pgm_b0900.u4", 0x0000000, 0x0200000, CRC(6f0638b6) SHA1(14b315fe9e80b3314bb63487e6ea9ce04c9703bd) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0900.u2", 0x400000, 0x400000, CRC(9ea7af2e) SHA1(d2593d391a93c5cf5a554750c32886dea6599b3d) ) + ROM_LOAD( "pgm_m0900.u2", 0x400000, 0x400000, CRC(9ea7af2e) SHA1(d2593d391a93c5cf5a554750c32886dea6599b3d) ) ROM_END @@ -3263,30 +3449,30 @@ ROM_LOAD( "martial_masters_v102_usa.asic", 0x000000, 0x04000, CRC(a6c0828c) SHA1(0a5bda56dca264c3c7ff7698b8f699563f203c4d) ) // not verified, could be bad ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) + ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) // maybe incorrect size, probably needs redump ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) + ROM_LOAD( "pgm_t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) - ROM_LOAD( "a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) - ROM_LOAD( "a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) - ROM_LOAD( "a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) - ROM_LOAD( "a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) + ROM_LOAD( "pgm_a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) + ROM_LOAD( "pgm_a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) + ROM_LOAD( "pgm_a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) + ROM_LOAD( "pgm_a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) + ROM_LOAD( "pgm_a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) - ROM_LOAD( "b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) + ROM_LOAD( "pgm_b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) + ROM_LOAD( "pgm_b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) - ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) + ROM_LOAD( "pgm_m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) + ROM_LOAD( "pgm_m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) ROM_END -ROM_START( martmastc ) +ROM_START( martmast104c ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS ROM_LOAD16_WORD_SWAP( "v104_32m.u9", 0x100000, 0x400000, CRC(cfd9dff4) SHA1(328eaf6ac49a73265ee4e0f992b1b1312f49877b) ) @@ -3295,30 +3481,30 @@ ROM_LOAD( "martial_masters_v101_cn.asic", 0x000000, 0x04000, CRC(b3e25b7d) SHA1(6147d7ee2e11636521df1bb96ed5da8ad21b2a57) ) // not verified, could be bad ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) + ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) // maybe incorrect size, probably needs redump ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) + ROM_LOAD( "pgm_t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) - ROM_LOAD( "a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) - ROM_LOAD( "a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) - ROM_LOAD( "a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) - ROM_LOAD( "a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) + ROM_LOAD( "pgm_a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) + ROM_LOAD( "pgm_a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) + ROM_LOAD( "pgm_a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) + ROM_LOAD( "pgm_a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) + ROM_LOAD( "pgm_a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) - ROM_LOAD( "b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) + ROM_LOAD( "pgm_b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) + ROM_LOAD( "pgm_b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) - ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) + ROM_LOAD( "pgm_m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) + ROM_LOAD( "pgm_m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) ROM_END -ROM_START( martmastc103 ) +ROM_START( martmast103c ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS ROM_LOAD16_WORD_SWAP( "v103_32m.u9", 0x100000, 0x400000, CRC(df5ffbe9) SHA1(cd37900b3741707f81077ca07565997031409131) ) @@ -3327,63 +3513,63 @@ ROM_LOAD( "martial_masters_v101_cn.asic", 0x000000, 0x04000, CRC(b3e25b7d) SHA1(6147d7ee2e11636521df1bb96ed5da8ad21b2a57) ) // v102 on the PCB the maincpu ROM was dumped from. v102 Chinese ASIC hasn't been dumped yet. ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) + ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) // maybe incorrect size, probably needs redump ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) + ROM_LOAD( "pgm_t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) - ROM_LOAD( "a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) - ROM_LOAD( "a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) - ROM_LOAD( "a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) - ROM_LOAD( "a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) + ROM_LOAD( "pgm_a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) + ROM_LOAD( "pgm_a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) + ROM_LOAD( "pgm_a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) + ROM_LOAD( "pgm_a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) + ROM_LOAD( "pgm_a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) - ROM_LOAD( "b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) + ROM_LOAD( "pgm_b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) + ROM_LOAD( "pgm_b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) - ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) + ROM_LOAD( "pgm_m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) + ROM_LOAD( "pgm_m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) ROM_END -ROM_START( martmastc102 ) +ROM_START( martmast102c ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "martmast_u9-v102.322", 0x100000, 0x400000, CRC(bb24b92a) SHA1(442cb9e3f51727be82f71c078c5c3e49dc1a23f0) ) + ROM_LOAD16_WORD_SWAP( "mm_v102_u9.u9", 0x100000, 0x400000, CRC(bb24b92a) SHA1(442cb9e3f51727be82f71c078c5c3e49dc1a23f0) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "martial_masters_v101_cn.asic", 0x000000, 0x04000, CRC(b3e25b7d) SHA1(6147d7ee2e11636521df1bb96ed5da8ad21b2a57) ) // not verified, could be bad ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "martmast_u10-v101.160", 0x000000, 0x200000, CRC(d5d93294) SHA1(58d0a99749f7dc05814892b508ce21b160410947) ) + ROM_LOAD( "mm_v101_u10.u10", 0x000000, 0x400000, CRC(41b9497c) SHA1(a941abbb938fb769112eaad374cc513a71aaa556) ) // double size wrt to other sets ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) + ROM_LOAD( "pgm_t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) - ROM_LOAD( "a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) - ROM_LOAD( "a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) - ROM_LOAD( "a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) - ROM_LOAD( "a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) + ROM_LOAD( "pgm_a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) + ROM_LOAD( "pgm_a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) + ROM_LOAD( "pgm_a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) + ROM_LOAD( "pgm_a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) + ROM_LOAD( "pgm_a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) - ROM_LOAD( "b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) + ROM_LOAD( "pgm_b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) + ROM_LOAD( "pgm_b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) - ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) + ROM_LOAD( "pgm_m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) + ROM_LOAD( "pgm_m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) ROM_END /* -Only the ROMs at U9 and U10 were dumped. +Only the ROMs at U9 and U10 were dumped. According to FBNeo they could be bad dumps. U9 and U10 are not standard EPROMs, instead they are 27C322 adapter boards with an SMD OKI 27C3202 TSOP. */ @@ -3391,33 +3577,33 @@ ROM_START( martmasttw ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "mm_v102_u9.bin", 0x100000, 0x400000, CRC(7eb41ed4) SHA1(7df7789db8f9110fe747f41e193b4a28096018e7) ) + ROM_LOAD16_WORD_SWAP( "mm_v102_u9.u9", 0x100000, 0x400000, CRC(7eb41ed4) SHA1(7df7789db8f9110fe747f41e193b4a28096018e7) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "martial_masters_v101_tw.asic", 0x000000, 0x04000, NO_DUMP ) ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "mm_v101_u10.bin", 0x000000, 0x400000, CRC(917beb91) SHA1(0d867d8382518197ac98522bfc69063042db9890) ) // double size wrt to other sets + ROM_LOAD( "mm_v101_u10.u10", 0x000000, 0x400000, CRC(917beb91) SHA1(0d867d8382518197ac98522bfc69063042db9890) ) // double size wrt to other sets ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) + ROM_LOAD( "pgm_t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) ROM_REGION16_LE( 0x4000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) - ROM_LOAD( "a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) - ROM_LOAD( "a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) - ROM_LOAD( "a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) - ROM_LOAD( "a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) + ROM_LOAD( "pgm_a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) + ROM_LOAD( "pgm_a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) + ROM_LOAD( "pgm_a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) + ROM_LOAD( "pgm_a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) + ROM_LOAD( "pgm_a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) - ROM_LOAD( "b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) + ROM_LOAD( "pgm_b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) + ROM_LOAD( "pgm_b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) - ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) + ROM_LOAD( "pgm_m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) + ROM_LOAD( "pgm_m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) ROM_END /* @@ -3471,7 +3657,7 @@ */ -ROM_START( dmnfrnt ) +ROM_START( dmnfrnt ) // same romset has also been found on a single PCB board (set dmnfrnta in FBNeo) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS ROM_LOAD16_WORD_SWAP( "v105_16m.u5", 0x100000, 0x200000, CRC(bda083bd) SHA1(58d6438737a2c43aa8bbcb7f34fb51375b781b1c) ) @@ -3484,108 +3670,107 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t04501.u29", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) + ROM_LOAD( "igs_t04501w064.u29", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04501.u3", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) - ROM_LOAD( "a04502.u4", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) - ROM_LOAD( "a04503.u6", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) + ROM_LOAD( "igs_a04501w064.u3", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) + ROM_LOAD( "igs_a04502w064.u4", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) + ROM_LOAD( "igs_a04503w064.u6", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04501.u9", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) - ROM_LOAD( "b04502.u11", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) + ROM_LOAD( "igs_b04501w064.u9", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) + ROM_LOAD( "igs_b04502w016.u11", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w04501.u5", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) + ROM_LOAD( "igs_w04501b064.u5", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) ROM_END -ROM_START( dmnfrnta ) +ROM_START( dmnfrnt103 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v102_16m.u5", 0x100000, 0x200000, CRC(3d4d481a) SHA1(95953b8f31343389405cc722b4177ff5adf67b62) ) + ROM_LOAD16_WORD_SWAP( "v103_16m.u5", 0x100000, 0x200000, CRC(2ddafb3d) SHA1(c7d22e007952459de6d23a42ce32aab67b493fc3) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "dmnfrnt_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ - ROM_LOAD( "v101_32m.u26", 0x000000, 0x400000, CRC(93965281) SHA1(89da198aaa7ca759cb96b5f18859a477e55fd590) ) + ROM_LOAD( "v103_32m.u26", 0x000000, 0x400000, CRC(e78383a3) SHA1(7ae99e93489e79fb1e4240124d22b6002fb7fe18) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t04501.u29", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) + ROM_LOAD( "igs_t04501w064.u29", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04501.u3", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) - ROM_LOAD( "a04502.u4", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) - ROM_LOAD( "a04503.u6", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) + ROM_LOAD( "igs_a04501w064.u3", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) + ROM_LOAD( "igs_a04502w064.u4", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) + ROM_LOAD( "igs_a04503w064.u6", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04501.u9", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) - ROM_LOAD( "b04502.u11", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) + ROM_LOAD( "igs_b04501w064.u9", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) + ROM_LOAD( "igs_b04502w016.u11", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w04501.u5", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) + ROM_LOAD( "igs_w04501b064.u5", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) ROM_END - -ROM_START( dmnfrntb ) +ROM_START( dmnfrnt102 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v103_16m.u5", 0x100000, 0x200000, CRC(2ddafb3d) SHA1(c7d22e007952459de6d23a42ce32aab67b493fc3) ) + ROM_LOAD16_WORD_SWAP( "v102_16m.u5", 0x100000, 0x200000, CRC(3d4d481a) SHA1(95953b8f31343389405cc722b4177ff5adf67b62) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "dmnfrnt_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ - ROM_LOAD( "v103_32m.u26", 0x000000, 0x400000, CRC(e78383a3) SHA1(7ae99e93489e79fb1e4240124d22b6002fb7fe18) ) + ROM_LOAD( "v101_32m.u26", 0x000000, 0x400000, CRC(93965281) SHA1(89da198aaa7ca759cb96b5f18859a477e55fd590) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t04501.u29", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) + ROM_LOAD( "igs_t04501w064.u29", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04501.u3", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) - ROM_LOAD( "a04502.u4", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) - ROM_LOAD( "a04503.u6", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) + ROM_LOAD( "igs_a04501w064.u3", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) + ROM_LOAD( "igs_a04502w064.u4", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) + ROM_LOAD( "igs_a04503w064.u6", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04501.u9", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) - ROM_LOAD( "b04502.u11", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) + ROM_LOAD( "igs_b04501w064.u9", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) + ROM_LOAD( "igs_b04502w016.u11", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w04501.u5", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) + ROM_LOAD( "igs_w04501b064.u5", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) ROM_END ROM_START( dmnfrntpcb ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_WORD_SWAP( "pgm_p02s.u42", 0x00000, 0x020000, CRC(78c15fa2) SHA1(885a6558e022602cc6f482ac9667ba9f61e75092) ) /* IGS PGM P02S 1A3708A1A0 S002838 (uses standard PGM v2 bios) */ - ROM_LOAD16_WORD_SWAP( "demonfront_v107-u43.bin", 0x100000, 0x200000, CRC(671d8a31) SHA1(a0c2af67d7c56b4b355883892a47640fc72408a1) ) + ROM_LOAD16_WORD_SWAP( "demonfront_v107kr_u43.u43", 0x100000, 0x200000, CRC(671d8a31) SHA1(a0c2af67d7c56b4b355883892a47640fc72408a1) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "dmnfrnt_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ - ROM_LOAD( "demonfront_v107-u62.bin", 0x000000, 0x400000, CRC(cb94772e) SHA1(4213600be41fd9ea295dd308920b1d89b635724f) ) + ROM_LOAD( "demonfront_v107kr_u62.u62", 0x000000, 0x400000, CRC(cb94772e) SHA1(4213600be41fd9ea295dd308920b1d89b635724f) ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t04501.u29", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) + ROM_LOAD( "igs_t04501w064.u71", 0x180000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04501.u3", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) - ROM_LOAD( "a04502.u4", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) - ROM_LOAD( "a04503.u6", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) + ROM_LOAD( "igs_a04501w064.u30", 0x0000000, 0x0800000, CRC(9741bea6) SHA1(e3e904249be228628c8c2bd3495cda23586dc048) ) + ROM_LOAD( "igs_a04502w064.u31", 0x0800000, 0x0800000, CRC(e104f405) SHA1(124b3deed3e838f8bae6c7d78bdd788859597585) ) + ROM_LOAD( "igs_a04503w064.u32", 0x1000000, 0x0800000, CRC(bfd5cfe3) SHA1(fbe4c0a2987c2036df707b86597d78124ee2e665) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04501.u9", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) - ROM_LOAD( "b04502.u11", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) + ROM_LOAD( "igs_b04501w064.u40", 0x0000000, 0x0800000, CRC(29320b7d) SHA1(59c78805e666f912df201c34616744f46057937b) ) + ROM_LOAD( "igs_b04502w016.u41", 0x0800000, 0x0200000, CRC(578c00e9) SHA1(14235cc8b0f8c7dd659512f017a2d4aacd91d89d) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w04501.u5", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) + ROM_LOAD( "igs_w04501b064.u8", 0x400000, 0x800000, CRC(3ab58137) SHA1(b221f7e551ff0bfa3fd97b6ebedbac69442a66e9) ) ROM_END // the (readable part of) internal roms have been verified on @@ -3596,31 +3781,31 @@ ROM_START( theglad ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v101.u6", 0x100000, 0x080000, CRC(f799e866) SHA1(dccc3c903357c40c3cf85ac0ae8fc12fb0f853a6) ) // V101 05/15/03 09:00:32 + ROM_LOAD16_WORD_SWAP( "v101_u6.u6", 0x100000, 0x080000, CRC(f799e866) SHA1(dccc3c903357c40c3cf85ac0ae8fc12fb0f853a6) ) // V101 05/15/03 09:00:32 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "theglad_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) ROM_LOAD( "theglad_igs027a_v100_overseas.bin", 0x0188, 0x3e78, CRC(02fe6f52) SHA1(0b0ddf4507856cfc5b7d4ef7e4c5375254c2a024) ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ - ROM_LOAD( "v107.u26", 0x000000, 0x200000, CRC(f7c61357) SHA1(52d31c464dfc83c5371b078cb6b73c0d0e0d57e3) ) // 06/06/03 16:17:27 V107 + ROM_LOAD( "v107_u26.u26", 0x000000, 0x200000, CRC(f7c61357) SHA1(52d31c464dfc83c5371b078cb6b73c0d0e0d57e3) ) // 06/06/03 16:17:27 V107 ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t04601.u33", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) + ROM_LOAD( "igs_t04601w64m.u33", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04601.u2", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) - ROM_LOAD( "a04602.u4", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) - ROM_LOAD( "a04603.u6", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) + ROM_LOAD( "igs_a04601w64m.u2", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) + ROM_LOAD( "igs_a04602w64m.u4", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) + ROM_LOAD( "igs_a04603w64m.u6", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04601.u11", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) - ROM_LOAD( "b04602.u12", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) + ROM_LOAD( "igs_b04601w64m.u11", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) + ROM_LOAD( "igs_b04602w32m.u12", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w04601.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) + ROM_LOAD( "igs_w04601b64m.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) ROM_END ROM_START( theglad100 ) // is this actually a pre-v100 proto? @@ -3637,20 +3822,20 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t04601.u33", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) + ROM_LOAD( "igs_t04601w64m.u33", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04601.u2", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) - ROM_LOAD( "a04602.u4", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) - ROM_LOAD( "a04603.u6", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) + ROM_LOAD( "igs_a04601w64m.u2", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) + ROM_LOAD( "igs_a04602w64m.u4", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) + ROM_LOAD( "igs_a04603w64m.u6", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04601.u11", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) - ROM_LOAD( "b04602.u12", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) + ROM_LOAD( "igs_b04601w64m.u11", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) + ROM_LOAD( "igs_b04602w32m.u12", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w04601.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) + ROM_LOAD( "igs_w04601b64m.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) ROM_END @@ -3668,58 +3853,89 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t04601.u33", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) + ROM_LOAD( "igs_t04601w64m.u33", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04601.u2", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) - ROM_LOAD( "a04602.u4", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) - ROM_LOAD( "a04603.u6", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) + ROM_LOAD( "igs_a04601w64m.u2", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) + ROM_LOAD( "igs_a04602w64m.u4", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) + ROM_LOAD( "igs_a04603w64m.u6", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04601.u11", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) - ROM_LOAD( "b04602.u12", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) + ROM_LOAD( "igs_b04601w64m.u11", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) + ROM_LOAD( "igs_b04602w32m.u12", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w04601.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) + ROM_LOAD( "igs_w04601b64m.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) ROM_END ROM_START( thegladpcb ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ - ROM_LOAD16_WORD_SWAP( "bios.42", 0x000000, 0x020000, CRC(517cf7a2) SHA1(f5720b29e3be6ec22be03a768618cb2a1aa4ade7) ) // V0001-001J - ROM_LOAD16_WORD_SWAP( "glad_v100.43", 0x100000, 0x080000, CRC(bcf3b172) SHA1(df7e2808c0341be0a59eefa852c857a3a919223e) ) // 02/25/03 17:42:51 + ROM_LOAD16_WORD_SWAP( "bios.42", 0x000000, 0x020000, CRC(517cf7a2) SHA1(f5720b29e3be6ec22be03a768618cb2a1aa4ade7) ) // V0001-001J + ROM_LOAD16_WORD_SWAP( "v100_u43.u43", 0x100000, 0x080000, CRC(bcf3b172) SHA1(df7e2808c0341be0a59eefa852c857a3a919223e) ) // 02/25/03 17:42:51 + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "thegladpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) + ROM_LOAD( "thegladpcb_igs027a_v100_japan.bin", 0x0188, 0x3e78, CRC(d7f06e2d) SHA1(9c3aca7a487f5329d84731e2c63d5ed591bf9d24) ) // from 'thegladpcb set' + + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ + ROM_LOAD( "v101_u62.u62", 0x000000, 0x200000, CRC(23faec02) SHA1(9065d55c2a14e6889e735a452bbc32530056645a) ) // 03/13/03 14:06:44 V101 + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + ROM_LOAD( "pgm_t01s.u72", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // standard PGM tx bios + ROM_LOAD( "igs_t04601w64m.u71", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) + + ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "igs_a04601w64m.u30", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) + ROM_LOAD( "igs_a04602w64m.u31", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) + ROM_LOAD( "igs_a04603w64m.u32", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "igs_b04601w64m.u40", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) + ROM_LOAD( "igs_b04602w32m.u41", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + ROM_LOAD( "pgm_m01s.u4", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // standard PGM sample bios + ROM_LOAD( "igs_w04601b64m.u8", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) + ROM_LOAD( "wave_u29.u29", 0xc00000, 0x200000, CRC(51acb395) SHA1(65a2ecd3de2ff782f2aa0f0f905f9b18323aea64) ) // extra ROM on the PCB version for the Japanese music +ROM_END + +ROM_START( thegladpcba ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + ROM_LOAD16_WORD_SWAP( "bios.42", 0x000000, 0x020000, CRC(517cf7a2) SHA1(f5720b29e3be6ec22be03a768618cb2a1aa4ade7) ) // V0001-001J + ROM_LOAD16_WORD_SWAP( "v100_u43.u43", 0x100000, 0x080000, CRC(bcf3b172) SHA1(df7e2808c0341be0a59eefa852c857a3a919223e) ) // 02/25/03 17:42:51 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "thegladpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) ROM_LOAD( "thegladpcb_igs027a_v100_japan.bin", 0x0188, 0x3e78, CRC(d7f06e2d) SHA1(9c3aca7a487f5329d84731e2c63d5ed591bf9d24) ) // from 'thegladpcb set' ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ - ROM_LOAD( "igs_v100.62", 0x000000, 0x200000, CRC(0f3f511e) SHA1(28dd8d27495cec86e968a3ea549c5b30513dbb6e) ) // 02/25/03 16:32:21 V100 + ROM_LOAD( "v100_u62.u62", 0x000000, 0x200000, CRC(0f3f511e) SHA1(28dd8d27495cec86e968a3ea549c5b30513dbb6e) ) // 02/25/03 16:32:21 V100 ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ - ROM_LOAD( "pgm_t01s.u72", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // standard PGM tx bios - ROM_LOAD( "t04601.u71", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) + ROM_LOAD( "pgm_t01s.u72", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // standard PGM tx bios + ROM_LOAD( "igs_t04601w64m.u71", 0x180000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04601.u30", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) - ROM_LOAD( "a04602.u31", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) - ROM_LOAD( "a04603.u32", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) + ROM_LOAD( "igs_a04601w64m.u30", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) + ROM_LOAD( "igs_a04602w64m.u31", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) + ROM_LOAD( "igs_a04603w64m.u32", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04601.u40", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) - ROM_LOAD( "b04602.u41", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) + ROM_LOAD( "igs_b04601w64m.u40", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) + ROM_LOAD( "igs_b04602w32m.u41", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ - ROM_LOAD( "pgm_m01s.u4", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // standard PGM sample bios - ROM_LOAD( "w04601.u8", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) - ROM_LOAD( "igs29.bin", 0xc00000, 0x200000, CRC(51acb395) SHA1(65a2ecd3de2ff782f2aa0f0f905f9b18323aea64) ) // extra ROM on the PCB version for the Japanese music + ROM_LOAD( "pgm_m01s.u4", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // standard PGM sample bios + ROM_LOAD( "igs_w04601b64m.u8", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) + ROM_LOAD( "wave_u29.u29", 0xc00000, 0x200000, CRC(51acb395) SHA1(65a2ecd3de2ff782f2aa0f0f905f9b18323aea64) ) // extra ROM on the PCB version for the Japanese music ROM_END ROM_START( oldsplus ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "p05301.rom", 0x100000, 0x400000, CRC(923f7246) SHA1(818ade79e9724f5a2b0cc5a647ae5d4ee0374799) ) + ROM_LOAD16_WORD_SWAP( "v-205cn.u10", 0x100000, 0x400000, CRC(923f7246) SHA1(818ade79e9724f5a2b0cc5a647ae5d4ee0374799) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) @@ -3728,21 +3944,50 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t05301.rom", 0x180000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) ) + ROM_LOAD( "igs_t05301w064.u2", 0x180000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) ) + + ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "igs_a05301w064.u3", 0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05302w064.u4", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05303w064.u6", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05304w064.u8", 0x1800000, 0x0800000, CRC(f03ef7a6) SHA1(c18b1b622b430d5e031e65daa6819b84c3e12ef5) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "igs_b05301w064.u9", 0x0000000, 0x0800000, CRC(fd98f503) SHA1(02046ab1aa89f63bff149003d9d61776e025a92a) ) + ROM_LOAD( "igs_b05302w064.u11", 0x0800000, 0x0800000, CRC(9f6094a8) SHA1(69f6f2003ab975eae13ea6b5c2ffa40df6e6bdf6) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "igs_w05301b032.u5", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) ) +ROM_END + +ROM_START( oldsplus203 ) // only program ROM provided for this set + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v-203cn.u10", 0x100000, 0x400000, CRC(c728cadc) SHA1(7e6acd2535b1700fdefc048bd521c305d3170108) ) + + ROM_REGION( 0x4000, "prot", 0 ) // ARM protection ASIC - internal ROM + ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION32_LE( 0x800000, "user1", ROMREGION_ERASE00 ) + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "igs_t05301w064.u2", 0x180000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a05301.rom", 0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a05302.rom", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a05303.rom", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a05304.rom", 0x1800000, 0x0800000, CRC(f03ef7a6) SHA1(c18b1b622b430d5e031e65daa6819b84c3e12ef5) ) + ROM_LOAD( "igs_a05301w064.u3", 0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05302w064.u4", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05303w064.u6", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05304w064.u8", 0x1800000, 0x0800000, CRC(f03ef7a6) SHA1(c18b1b622b430d5e031e65daa6819b84c3e12ef5) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b05301.rom", 0x0000000, 0x0800000, CRC(fd98f503) SHA1(02046ab1aa89f63bff149003d9d61776e025a92a) ) - ROM_LOAD( "b05302.rom", 0x0800000, 0x0800000, CRC(9f6094a8) SHA1(69f6f2003ab975eae13ea6b5c2ffa40df6e6bdf6) ) + ROM_LOAD( "igs_b05301w064.u9", 0x0000000, 0x0800000, CRC(fd98f503) SHA1(02046ab1aa89f63bff149003d9d61776e025a92a) ) + ROM_LOAD( "igs_b05302w064.u11", 0x0800000, 0x0800000, CRC(9f6094a8) SHA1(69f6f2003ab975eae13ea6b5c2ffa40df6e6bdf6) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m05301.rom", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) ) + ROM_LOAD( "igs_w05301b032.u5", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) ) ROM_END ROM_START( kovshp ) @@ -3755,48 +4000,51 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u2", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + // also seen split in 2 smaller ROMs + // "s&k_fntcg_u3.u3" - t0600.rom [1/2] IDENTICAL - CRC(164b3c94) SHA1(f00ea66886ca6bff74bbeaa49e7f5c75c275d5d7) + // "s&k_fntcg_u7.u7" - t0600.rom [2/2] IDENTICAL - CRC(b1fae5e8) SHA1(88b84879b5ce9c29081647186b3a1b003efe6dcc) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) ) + ROM_LOAD( "pgm_a0600.u3", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05401w064.u8", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) ) + ROM_LOAD( "pgm_b0600.u9", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "igs_b05401w064.u11", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u5", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END -ROM_START( kovshpa ) +ROM_START( kovshp100 ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "p0600h.rom", 0x100000, 0x400000, CRC(e251e8e4) SHA1(af5b7c81632a39e1450d932951bed634c76b84e8) ) + ROM_LOAD16_WORD_SWAP( "s__s_m-100cn.u10", 0x100000, 0x400000, CRC(e251e8e4) SHA1(af5b7c81632a39e1450d932951bed634c76b84e8) ) ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u2", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) ) + ROM_LOAD( "pgm_a0600.u3", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05401w064.u8", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) ) + ROM_LOAD( "pgm_b0600.u9", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "igs_b05401w064.u11", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u5", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END @@ -3811,27 +4059,27 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + ROM_LOAD( "pgm_t0600.u2", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) ) + ROM_LOAD( "pgm_a0600.u3", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0601.u4", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "pgm_a0602.u6", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "igs_a05401w064.u8", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) ) + ROM_LOAD( "pgm_b0600.u9", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "igs_b05401w064.u11", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) + ROM_LOAD( "pgm_m0600.u5", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) ROM_END ROM_START( kovshxas ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "de_p0609.322", 0x100000, 0x400000, CRC(3b7b627f) SHA1(b331148501f9349fbd5882fb3f184f6304e58646) ) // V202CN Oct 6 2008 09:59:26 + ROM_LOAD16_WORD_SWAP( "assg_v202cn.rom", 0x100000, 0x400000, CRC(3b7b627f) SHA1(b331148501f9349fbd5882fb3f184f6304e58646) ) // V202CN Oct 6 2008 09:59:26 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls @@ -3844,11 +4092,11 @@ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) - ROM_LOAD( "a0603xas.rom", 0x1800000, 0x0800000, CRC(7057b37e) SHA1(85a19f23303b4d581c4fa315b2c204af92fcb424) ) + ROM_LOAD( "a0603as.rom", 0x1800000, 0x0800000, CRC(7057b37e) SHA1(85a19f23303b4d581c4fa315b2c204af92fcb424) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) - ROM_LOAD( "b0601xas.rom", 0x0800000, 0x0800000, CRC(3784fb49) SHA1(7e85fe5b5fb8746f1321c03ad2350d2a58969d7a) ) + ROM_LOAD( "b0601as.rom", 0x0800000, 0x0800000, CRC(3784fb49) SHA1(7e85fe5b5fb8746f1321c03ad2350d2a58969d7a) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS @@ -3977,7 +4225,7 @@ ROM_START( killbldp ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v300x.u6", 0x100000, 0x080000, CRC(b7fb8ec9) SHA1(e71b2d74269a82c7155b9818821156e128b68b28) ) // V300 05-09-16 11:58:20 + ROM_LOAD16_WORD_SWAP( "v300xx_u6.u6", 0x100000, 0x080000, CRC(b7fb8ec9) SHA1(e71b2d74269a82c7155b9818821156e128b68b28) ) // V300 05-09-16 11:58:20 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ /* the first 0x268 bytes of this are EXECUTE ONLY in the original chip, attempting to read them even via the original CPU just returns what is on the bus */ @@ -3986,131 +4234,133 @@ ROM_LOAD( "killbldp_igs027a_alt.bin", 0x000000, 0x04000, CRC(98316b06) SHA1(09be9fad24d68980a0a5beae60ced48012286216) ) // from a bootleg ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v300x.u26", 0x000000, 0x200000, CRC(144388c8) SHA1(d7469df077c1a674129f18210584ba4d05a61888) ) // 05-09-16 23:52:32 V300 + ROM_LOAD( "v300xx_u26.u26", 0x000000, 0x200000, CRC(144388c8) SHA1(d7469df077c1a674129f18210584ba4d05a61888) ) // 05-09-16 23:52:32 V300 ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t05701w032.bin",0x180000, 0x400000, CRC(567c714f) SHA1(b25b20e1ec9f077d6f7b9d41723a68d0d461bef2) ) + ROM_LOAD( "igs_t05701w032.u33", 0x180000, 0x400000, CRC(567c714f) SHA1(b25b20e1ec9f077d6f7b9d41723a68d0d461bef2) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a05701w064.bin", 0x0000000, 0x0800000, CRC(8c0c992c) SHA1(28391e50ca4400060676f1524bd49ede373292da) ) - ROM_LOAD( "a05702w064.bin", 0x0800000, 0x0800000, CRC(7e5b0f27) SHA1(9e8d69f34c30216925fcb7af87f8b37f703317e7) ) - ROM_LOAD( "a05703w064.bin", 0x1000000, 0x0800000, CRC(accbdb44) SHA1(d59b2452c7a5b4e666473dc973b73a0f2b4edc13) ) + ROM_LOAD( "igs_a05701w064.u3", 0x0000000, 0x0800000, CRC(8c0c992c) SHA1(28391e50ca4400060676f1524bd49ede373292da) ) + ROM_LOAD( "igs_a05702w064.u4", 0x0800000, 0x0800000, CRC(7e5b0f27) SHA1(9e8d69f34c30216925fcb7af87f8b37f703317e7) ) + ROM_LOAD( "igs_a05703w064.u6", 0x1000000, 0x0800000, CRC(accbdb44) SHA1(d59b2452c7a5b4e666473dc973b73a0f2b4edc13) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b05701w064.bin", 0x0000000, 0x0800000, CRC(a20cdcef) SHA1(029a49971adf1e72ab556a207172bdfbd0b86b03) ) - ROM_LOAD( "b05702w016.bin", 0x0800000, 0x0200000, CRC(fe7457df) SHA1(d66b1b31102b0210f9faf40e1473cd1511ccaf1f) ) + ROM_LOAD( "igs_b05701w064.u9", 0x0000000, 0x0800000, CRC(a20cdcef) SHA1(029a49971adf1e72ab556a207172bdfbd0b86b03) ) + ROM_LOAD( "igs_b05702w016.u11", 0x0800000, 0x0200000, CRC(fe7457df) SHA1(d66b1b31102b0210f9faf40e1473cd1511ccaf1f) ) ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w05701b032.bin", 0x400000, 0x400000, CRC(2d3ae593) SHA1(b9c1d2994be95ba974bc134a3bf115bc9c9c9c16) ) + ROM_LOAD( "igs_w05701b032.u5", 0x400000, 0x400000, CRC(2d3ae593) SHA1(b9c1d2994be95ba974bc134a3bf115bc9c9c9c16) ) ROM_END ROM_START( svg ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "u30.bin", 0x100000, 0x080000, CRC(34c18f3f) SHA1(42d1edd0dcfaa5e44861c6a1d4cb24f51ba23de8) ) // V200 09/12/05 16:42:51 + ROM_LOAD16_WORD_SWAP( "svg_v200_u30.u30", 0x100000, 0x080000, CRC(34c18f3f) SHA1(42d1edd0dcfaa5e44861c6a1d4cb24f51ba23de8) ) // V200 09/12/05 16:42:51 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "svg_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) ROM_LOAD( "svg_igs027a_v200_china.bin", 0x0188, 0x3e78, CRC(72b73169) SHA1(ffc0caea855ab4b01beb3aebd0bf17187c66c22c) ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "u26.bin", 0x000000, 0x400000, CRC(46826ec8) SHA1(ad1daf6f615fb8d748ce7f98f19dd3bf22f79fba) ) // 10/11/05 10:07:20 V201 - ROM_LOAD( "u29.bin", 0x400000, 0x400000, CRC(fa5f3901) SHA1(8ab7c6763df4f752b50ed2197063f58046b32ddb) ) + /* eproms with no labels stickers */ + ROM_LOAD( "epr.u26", 0x000000, 0x400000, CRC(46826ec8) SHA1(ad1daf6f615fb8d748ce7f98f19dd3bf22f79fba) ) // 10/11/05 10:07:20 V201 + ROM_LOAD( "epr.u36", 0x400000, 0x400000, CRC(fa5f3901) SHA1(8ab7c6763df4f752b50ed2197063f58046b32ddb) ) ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t05601w016.bin",0x180000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) + ROM_LOAD( "igs_t05601w016.u29", 0x180000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a05601w064.bin", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) - ROM_LOAD( "a05602w064.bin", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) - ROM_LOAD( "a05603w064.bin", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) - ROM_LOAD( "a05604w032.bin", 0x1800000, 0x0400000, CRC(9452a567) SHA1(01fdb8e1f131603843ef4c49ab76d7a56b2d6414) ) + ROM_LOAD( "igs_a05601w064.u3", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) + ROM_LOAD( "igs_a05602w064.u4", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) + ROM_LOAD( "igs_a05603w064.u6", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) + ROM_LOAD( "igs_a05604w032.u8", 0x1800000, 0x0400000, CRC(9452a567) SHA1(01fdb8e1f131603843ef4c49ab76d7a56b2d6414) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b05601w064.bin", 0x0000000, 0x0800000, CRC(35c0a489) SHA1(a7d5527da01f8eaa7499fb6785b57094521bce97) ) - ROM_LOAD( "b05602w064.bin", 0x0800000, 0x0800000, CRC(8aad3f85) SHA1(da6996d901d42b3a2ba7019ad014bb938a5e328b) ) + ROM_LOAD( "igs_b05601w064.u9", 0x0000000, 0x0800000, CRC(35c0a489) SHA1(a7d5527da01f8eaa7499fb6785b57094521bce97) ) + ROM_LOAD( "igs_b05602w064.u11", 0x0800000, 0x0800000, CRC(8aad3f85) SHA1(da6996d901d42b3a2ba7019ad014bb938a5e328b) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w05601b064.bin", 0x400000, 0x800000, CRC(bfe61a71) SHA1(e682ca8d57ca51c4d72f64fc091161f3dbdce871) ) - ROM_LOAD( "w05602b032.bin", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) + ROM_LOAD( "igs_w05601b064.u5", 0x400000, 0x800000, CRC(bfe61a71) SHA1(e682ca8d57ca51c4d72f64fc091161f3dbdce871) ) + ROM_LOAD( "igs_w05602b032.u7", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) ROM_END ROM_START( svgtw ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v101tw.u30", 0x100000, 0x080000, CRC(8d0405e4) SHA1(b6175c9ffeaac531d28e7845cb34c673476e286a) ) // V100 03/14/05 20:04:08 + ROM_LOAD16_WORD_SWAP( "v101tw_u30.u30", 0x100000, 0x080000, CRC(8d0405e4) SHA1(b6175c9ffeaac531d28e7845cb34c673476e286a) ) // V100 03/14/05 20:04:08 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ // marked H1 ROM_LOAD( "svgpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) ROM_LOAD( "svgcpb_igs027a_v100_japan.bin", 0x0188, 0x3e78, CRC(7a59da5d) SHA1(d67ba465db40ca716b4b901b1c8e762716fb954e) ) // this is from the Japan set, the cart this came from was Taiwan ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v101tw.u26", 0x000000, 0x400000, CRC(cc24f542) SHA1(623ed398d2eeea229833d92eb4fb6492133202b3) ) // 06/20/05 11:36:15 V100 - ROM_LOAD( "v101tw.u36", 0x400000, 0x400000, CRC(f18283e2) SHA1(15323c5f816a0bf6f510311eb49d485ccf713cf7) ) + ROM_LOAD( "v101tw_u26.u26", 0x000000, 0x400000, CRC(cc24f542) SHA1(623ed398d2eeea229833d92eb4fb6492133202b3) ) // 06/20/05 11:36:15 V100 + ROM_LOAD( "v101tw_u36.u36", 0x400000, 0x400000, CRC(f18283e2) SHA1(15323c5f816a0bf6f510311eb49d485ccf713cf7) ) ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t05601w016.bin",0x180000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) + ROM_LOAD( "igs_t05601w016.u29", 0x180000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a05601w064.bin", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) - ROM_LOAD( "a05602w064.bin", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) - ROM_LOAD( "a05603w064.bin", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) - ROM_LOAD( "a05604w032.bin", 0x1800000, 0x0400000, CRC(9452a567) SHA1(01fdb8e1f131603843ef4c49ab76d7a56b2d6414) ) + ROM_LOAD( "igs_a05601w064.u3", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) + ROM_LOAD( "igs_a05602w064.u4", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) + ROM_LOAD( "igs_a05603w064.u6", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) + ROM_LOAD( "igs_a05604w032.u8", 0x1800000, 0x0400000, CRC(9452a567) SHA1(01fdb8e1f131603843ef4c49ab76d7a56b2d6414) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b05601w064.bin", 0x0000000, 0x0800000, CRC(35c0a489) SHA1(a7d5527da01f8eaa7499fb6785b57094521bce97) ) - ROM_LOAD( "b05602w064.bin", 0x0800000, 0x0800000, CRC(8aad3f85) SHA1(da6996d901d42b3a2ba7019ad014bb938a5e328b) ) + ROM_LOAD( "igs_b05601w064.u9", 0x0000000, 0x0800000, CRC(35c0a489) SHA1(a7d5527da01f8eaa7499fb6785b57094521bce97) ) + ROM_LOAD( "igs_b05602w064.u11", 0x0800000, 0x0800000, CRC(8aad3f85) SHA1(da6996d901d42b3a2ba7019ad014bb938a5e328b) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w05601b064.bin", 0x400000, 0x800000, CRC(bfe61a71) SHA1(e682ca8d57ca51c4d72f64fc091161f3dbdce871) ) - ROM_LOAD( "w05602b032.bin", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) + ROM_LOAD( "igs_w05601b064.u5", 0x400000, 0x800000, CRC(bfe61a71) SHA1(e682ca8d57ca51c4d72f64fc091161f3dbdce871) ) + ROM_LOAD( "igs_w05602b032.u7", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) ROM_END ROM_START( svgpcb ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ - ROM_LOAD16_WORD_SWAP( "svg_bios.u49", 0x000000, 0x020000, CRC(3346401f) SHA1(28bd730b6026c1e521c95072d33c7bdcd19c1460) ) - ROM_LOAD16_WORD_SWAP( "svg_v100jp.u50", 0x100000, 0x080000, CRC(8d0405e4) SHA1(b6175c9ffeaac531d28e7845cb34c673476e286a) ) // V100 03/14/05 20:04:08 + ROM_LOAD16_WORD_SWAP( "svg_bios.u49", 0x000000, 0x020000, CRC(3346401f) SHA1(28bd730b6026c1e521c95072d33c7bdcd19c1460) ) + ROM_LOAD16_WORD_SWAP( "svg_v100jp_u50.u50", 0x100000, 0x080000, CRC(8d0405e4) SHA1(b6175c9ffeaac531d28e7845cb34c673476e286a) ) // V100 03/14/05 20:04:08 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "svgpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) ROM_LOAD( "svgcpb_igs027a_v100_japan.bin", 0x0188, 0x3e78, CRC(7a59da5d) SHA1(d67ba465db40ca716b4b901b1c8e762716fb954e) ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "svg_v100jp.u64", 0x000000, 0x400000, CRC(399d4a8b) SHA1(b120e8386a259e6fd7941acf3c33cf288eda616c) ) // 05/12/05 15:31:35 V100 - ROM_LOAD( "svg_v100jp.u65", 0x400000, 0x400000, CRC(6e1c33b1) SHA1(66f26b2f4c0b3dcf6d1bb1df48e2ddbcc9d9432d) ) + ROM_LOAD( "svg_v100jp_u64.u64", 0x000000, 0x400000, CRC(399d4a8b) SHA1(b120e8386a259e6fd7941acf3c33cf288eda616c) ) // 05/12/05 15:31:35 V100 + ROM_LOAD( "svg_v100jp_u65.u65", 0x400000, 0x400000, CRC(6e1c33b1) SHA1(66f26b2f4c0b3dcf6d1bb1df48e2ddbcc9d9432d) ) ROM_REGION( 0x500000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS // IGS PGM T01S 1B8558A1 M002146 - ROM_LOAD( "t05601w016.bin",0x180000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) // IGS T05601W016 2C35 B270 2L464103 B050924 + ROM_LOAD( "igs_t05601w016.u70", 0x180000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) // IGS T05601W016 2C35 B270 2L464103 B050924 ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a05601w064.bin", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) // IGS A05601W064 44BF 2ECD 2E153602A1 S050914 - ROM_LOAD( "a05602w064.bin", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) // IGS A05602W064 85C1 8A1F 2E153602A2 S050914 - ROM_LOAD( "a05603w064.bin", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) // IGS A05603W064 8EC7 329A 2E153602A3 S050914 - ROM_LOAD( "a05604w032.bin", 0x1800000, 0x0400000, CRC(9452a567) SHA1(01fdb8e1f131603843ef4c49ab76d7a56b2d6414) ) // IGS A05604W032 55F5 4CDB SL529808 S050912 + ROM_LOAD( "igs_a05601w064.u44", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) // IGS A05601W064 44BF 2ECD 2E153602A1 S050914 + ROM_LOAD( "igs_a05602w064.u45", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) // IGS A05602W064 85C1 8A1F 2E153602A2 S050914 + ROM_LOAD( "igs_a05603w064.u46", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) // IGS A05603W064 8EC7 329A 2E153602A3 S050914 + ROM_LOAD( "igs_a05604w032.u47", 0x1800000, 0x0400000, CRC(9452a567) SHA1(01fdb8e1f131603843ef4c49ab76d7a56b2d6414) ) // IGS A05604W032 55F5 4CDB SL529808 S050912 ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b05601w064.bin", 0x0000000, 0x0800000, CRC(35c0a489) SHA1(a7d5527da01f8eaa7499fb6785b57094521bce97) ) // IGS B05601W064 EED5 E656 2E350003A1 S050914 - ROM_LOAD( "b05602w064.bin", 0x0800000, 0x0800000, CRC(8aad3f85) SHA1(da6996d901d42b3a2ba7019ad014bb938a5e328b) ) // IGS B05602W064 DD65 3D89 2E350004A2 S050914 + ROM_LOAD( "igs_b05601w064.u61", 0x0000000, 0x0800000, CRC(35c0a489) SHA1(a7d5527da01f8eaa7499fb6785b57094521bce97) ) // IGS B05601W064 EED5 E656 2E350003A1 S050914 + ROM_LOAD( "igs_b05602w064.u62", 0x0800000, 0x0800000, CRC(8aad3f85) SHA1(da6996d901d42b3a2ba7019ad014bb938a5e328b) ) // IGS B05602W064 DD65 3D89 2E350004A2 S050914 ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS // IGS PGM M01S 1BB278A1 E002146 - ROM_LOAD( "w05601b064.bin", 0x400000, 0x800000, CRC(bfe61a71) SHA1(e682ca8d57ca51c4d72f64fc091161f3dbdce871) ) // IGS W05601B064 2530 FBF6 2E350004A3 S050914 - ROM_LOAD( "w05602b032.bin", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) // IGS w05602B032 1BC2 90D3 2K453504 S050912 + ROM_LOAD( "igs_w05601b064.u30", 0x400000, 0x800000, CRC(bfe61a71) SHA1(e682ca8d57ca51c4d72f64fc091161f3dbdce871) ) // IGS W05601B064 2530 FBF6 2E350004A3 S050914 + ROM_LOAD( "igs_w05602b032.u31", 0xc00000, 0x400000, CRC(0685166d) SHA1(64dac49abd2a46d5fb58c678027aa5e23d672dc4) ) // IGS w05602B032 1BC2 90D3 2K453504 S050912 ROM_END ROM_START( happy6 ) + /* All ROMs labels are on stickers */ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "v101cn.u5", 0x100000, 0x080000, CRC(aa4646e3) SHA1(e6772cc480ddd3e1d199364b1f2ff93b973e6842) ) // V101 03/17/04 11:26:48 + ROM_LOAD16_WORD_SWAP( "s101xx_u5.u5", 0x100000, 0x080000, CRC(aa4646e3) SHA1(e6772cc480ddd3e1d199364b1f2ff93b973e6842) ) // V101 03/17/04 11:26:48 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ // data before 0x188 is read-protected and cannot be read even with a trojan (as with most 2001/2+ IGS titles) @@ -4119,28 +4369,29 @@ ROM_LOAD( "happy6_igs027a_v100_china.bin", 0x0188, 0x3e78, CRC(ed530445) SHA1(05c92d649701be2541557b1334dd6c820ca1009e) ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "v102cn.u26", 0x000000, 0x400000, CRC(310510fb) SHA1(e0e80a04e9f7bf27e6581a8935c960bad33bb6de) ) // 03/16/04 14:29:17 V102 + ROM_LOAD( "v-102cn_u26.u26", 0x000000, 0x400000, CRC(310510fb) SHA1(e0e80a04e9f7bf27e6581a8935c960bad33bb6de) ) // 03/16/04 14:29:17 V102 ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t01w64m.u29",0x180000, 0x800000, CRC(2d3feb8b) SHA1(9832b1c46b1ee73febf5c5c8913859f4e0581665) ) + ROM_LOAD( "t01w64m_u29.u29", 0x180000, 0x800000, CRC(2d3feb8b) SHA1(9832b1c46b1ee73febf5c5c8913859f4e0581665) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a01w64m.u5", 0x0000000, 0x0800000, CRC(bbaa3df3) SHA1(a72268d3989e96d571242279922291d0dc72db28) ) - ROM_LOAD( "a02w64m.u6", 0x0800000, 0x0800000, CRC(f8c9cd36) SHA1(d9613a83bcc2364492fa922fde1c4f0d07b3009c) ) + ROM_LOAD( "a01w64m_u5.u5", 0x0000000, 0x0800000, CRC(bbaa3df3) SHA1(a72268d3989e96d571242279922291d0dc72db28) ) + ROM_LOAD( "a02w64m_u6.u6", 0x0800000, 0x0800000, CRC(f8c9cd36) SHA1(d9613a83bcc2364492fa922fde1c4f0d07b3009c) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b01w64m.u19", 0x0000000, 0x0800000, CRC(73f5f225) SHA1(507126fa96dcec967bdbc0978d79fbce9d25db37) ) + ROM_LOAD( "b01w64m_u19.u19", 0x0000000, 0x0800000, CRC(73f5f225) SHA1(507126fa96dcec967bdbc0978d79fbce9d25db37) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w01w64m.u17", 0x400000, 0x800000, CRC(7e23e2be) SHA1(5e920b8e480f00b6666292d4a56039b40af18141) ) + ROM_LOAD( "w01w64m_u17.u17", 0x400000, 0x800000, CRC(7e23e2be) SHA1(5e920b8e480f00b6666292d4a56039b40af18141) ) ROM_END ROM_START( happy6101 ) + /* All ROMs labels are on stickers */ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "happy6in1_v100cn.u5", 0x100000, 0x080000, CRC(a25418e8) SHA1(acd7e7b69956cb4ce8e26c6420cb97bb4bf404e7) ) // V100 12/22/03 15:35:33 + ROM_LOAD16_WORD_SWAP( "v100cn_u5.u5", 0x100000, 0x080000, CRC(a25418e8) SHA1(acd7e7b69956cb4ce8e26c6420cb97bb4bf404e7) ) // V100 12/22/03 15:35:33 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ // data before 0x188 is read-protected and cannot be read even with a trojan (as with most 2001/2+ IGS titles) @@ -4149,28 +4400,29 @@ ROM_LOAD( "happy6_igs027a_v100_china.bin", 0x0188, 0x3e78, CRC(ed530445) SHA1(05c92d649701be2541557b1334dd6c820ca1009e) ) ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "happy6in1_v101cn.u26", 0x000000, 0x400000, CRC(4a48ca1c) SHA1(3bebc091787903d45cb84c7302046602a903f59c) ) // 01/09/04 19:51:11 V101 + ROM_LOAD( "v101cn_u26.u26", 0x000000, 0x400000, CRC(4a48ca1c) SHA1(3bebc091787903d45cb84c7302046602a903f59c) ) // 01/09/04 19:51:11 V101 ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t01w64m.u29",0x180000, 0x800000, CRC(2d3feb8b) SHA1(9832b1c46b1ee73febf5c5c8913859f4e0581665) ) + ROM_LOAD( "t01w64m_u29.u29", 0x180000, 0x800000, CRC(2d3feb8b) SHA1(9832b1c46b1ee73febf5c5c8913859f4e0581665) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a01w64m.u5", 0x0000000, 0x0800000, CRC(bbaa3df3) SHA1(a72268d3989e96d571242279922291d0dc72db28) ) - ROM_LOAD( "a02w64m.u6", 0x0800000, 0x0800000, CRC(f8c9cd36) SHA1(d9613a83bcc2364492fa922fde1c4f0d07b3009c) ) + ROM_LOAD( "a01w64m_u5.u5", 0x0000000, 0x0800000, CRC(bbaa3df3) SHA1(a72268d3989e96d571242279922291d0dc72db28) ) + ROM_LOAD( "a02w64m_u6.u6", 0x0800000, 0x0800000, CRC(f8c9cd36) SHA1(d9613a83bcc2364492fa922fde1c4f0d07b3009c) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b01w64m.u19", 0x0000000, 0x0800000, CRC(73f5f225) SHA1(507126fa96dcec967bdbc0978d79fbce9d25db37) ) + ROM_LOAD( "b01w64m_u19.u19", 0x0000000, 0x0800000, CRC(73f5f225) SHA1(507126fa96dcec967bdbc0978d79fbce9d25db37) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w01w64m.u17", 0x400000, 0x800000, CRC(7e23e2be) SHA1(5e920b8e480f00b6666292d4a56039b40af18141) ) + ROM_LOAD( "w01w64m_u17.u17", 0x400000, 0x800000, CRC(7e23e2be) SHA1(5e920b8e480f00b6666292d4a56039b40af18141) ) ROM_END ROM_START( happy6100hk ) + /* All ROMs labels are on stickers */ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ PGM_68K_BIOS - ROM_LOAD16_WORD_SWAP( "h6n1_prog_v100hk.u5", 0x100000, 0x080000, CRC(a25418e8) SHA1(acd7e7b69956cb4ce8e26c6420cb97bb4bf404e7) ) // V100 12/22/03 15:35:33 + ROM_LOAD16_WORD_SWAP( "v100hk_u5.u5", 0x100000, 0x080000, CRC(a25418e8) SHA1(acd7e7b69956cb4ce8e26c6420cb97bb4bf404e7) ) // V100 12/22/03 15:35:33 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ // data before 0x188 is read-protected and cannot be read even with a trojan (as with most 2001/2+ IGS titles) @@ -4179,22 +4431,53 @@ ROM_LOAD( "happy6_igs027a_v100_china.bin", 0x0188, 0x3e78, BAD_DUMP CRC(ed530445) SHA1(05c92d649701be2541557b1334dd6c820ca1009e) ) // needs the HK version ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ - ROM_LOAD( "h6n1_arm_v100hk.u26", 0x000000, 0x400000, CRC(8f2feb1f) SHA1(acbc6620a296e8a6819bf088886bcbfc329f286d) ) // 12/22/03 11:28:36 V100 + ROM_LOAD( "v100hk_u26.u26", 0x000000, 0x400000, CRC(8f2feb1f) SHA1(acbc6620a296e8a6819bf088886bcbfc329f286d) ) // 12/22/03 11:28:36 V100 + + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t01w64m_u29.u29", 0x180000, 0x800000, CRC(2d3feb8b) SHA1(9832b1c46b1ee73febf5c5c8913859f4e0581665) ) + + ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a01w64m_u5.u5", 0x0000000, 0x0800000, CRC(bbaa3df3) SHA1(a72268d3989e96d571242279922291d0dc72db28) ) + ROM_LOAD( "a02w64m_u6.u6", 0x0800000, 0x0800000, CRC(f8c9cd36) SHA1(d9613a83bcc2364492fa922fde1c4f0d07b3009c) ) + + ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b01w64m_u19.u19", 0x0000000, 0x0800000, CRC(73f5f225) SHA1(507126fa96dcec967bdbc0978d79fbce9d25db37) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "w01w64m_u17.u17", 0x400000, 0x800000, CRC(7e23e2be) SHA1(5e920b8e480f00b6666292d4a56039b40af18141) ) +ROM_END + +ROM_START( happy6100cn ) + /* All ROMs labels are on stickers */ + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v100cn_u5.u5", 0x100000, 0x080000, CRC(a25418e8) SHA1(acd7e7b69956cb4ce8e26c6420cb97bb4bf404e7) ) // V100 12/22/03 15:35:33 + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + // data before 0x188 is read-protected and cannot be read even with a trojan (as with most 2001/2+ IGS titles) +// ROM_LOAD( "happy6_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + ROM_LOAD( "happy6_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP ) + ROM_LOAD( "happy6_igs027a_v100_china.bin", 0x0188, 0x3e78, CRC(ed530445) SHA1(05c92d649701be2541557b1334dd6c820ca1009e) ) + + ROM_REGION32_LE( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v100cn_u26.u26", 0x000000, 0x400000, CRC(9c29e482) SHA1(17a054cb4ab0663e3eba9661c3a9d4dfb7dad010) ) // 12/22/03 11:28:36 V100 ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS - ROM_LOAD( "t01w64m.u29",0x180000, 0x800000, CRC(2d3feb8b) SHA1(9832b1c46b1ee73febf5c5c8913859f4e0581665) ) + ROM_LOAD( "t01w64m_u29.u29", 0x180000, 0x800000, CRC(2d3feb8b) SHA1(9832b1c46b1ee73febf5c5c8913859f4e0581665) ) ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a01w64m.u5", 0x0000000, 0x0800000, CRC(bbaa3df3) SHA1(a72268d3989e96d571242279922291d0dc72db28) ) - ROM_LOAD( "a02w64m.u6", 0x0800000, 0x0800000, CRC(f8c9cd36) SHA1(d9613a83bcc2364492fa922fde1c4f0d07b3009c) ) + ROM_LOAD( "a01w64m_u5.u5", 0x0000000, 0x0800000, CRC(bbaa3df3) SHA1(a72268d3989e96d571242279922291d0dc72db28) ) + ROM_LOAD( "a02w64m_u6.u6", 0x0800000, 0x0800000, CRC(f8c9cd36) SHA1(d9613a83bcc2364492fa922fde1c4f0d07b3009c) ) ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b01w64m.u19", 0x0000000, 0x0800000, CRC(73f5f225) SHA1(507126fa96dcec967bdbc0978d79fbce9d25db37) ) + ROM_LOAD( "b01w64m_u19.u19", 0x0000000, 0x0800000, CRC(73f5f225) SHA1(507126fa96dcec967bdbc0978d79fbce9d25db37) ) ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ PGM_AUDIO_BIOS - ROM_LOAD( "w01w64m.u17", 0x400000, 0x800000, CRC(7e23e2be) SHA1(5e920b8e480f00b6666292d4a56039b40af18141) ) + ROM_LOAD( "w01w64m_u17.u17", 0x400000, 0x800000, CRC(7e23e2be) SHA1(5e920b8e480f00b6666292d4a56039b40af18141) ) ROM_END /* all known revisions of ketsui have roms marked v100, even when the actual game revision is upgraded */ @@ -4209,18 +4492,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4236,18 +4519,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4263,18 +4546,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4290,18 +4573,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4318,18 +4601,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4346,18 +4629,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4373,18 +4656,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4400,18 +4683,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4427,18 +4710,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4454,18 +4737,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4475,22 +4758,23 @@ ROM_REGION( 0x600000, "maincpu", 0 ) ROM_LOAD16_WORD_SWAP( "ketarr17_v100.u38", 0x000000, 0x200000, CRC(2cb80b89) SHA1(e1aa072b8344890486e11795e02703aa2d234bb1) ) - ROM_REGION( 0x4000, "prot", 0 ) + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) - ROM_REGION( 0xa00000, "tiles", 0 ) - ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) - ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details + ROM_LOAD( "cave_t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 - ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) - ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 - ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "cave_a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "cave_a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 - ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) - ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "cave_b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 - ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) - ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ + /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ + ROM_LOAD( "cave_m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) @@ -4548,18 +4832,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "t01s.u18", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details - ROM_LOAD( "t04801w064.u19", 0x180000, 0x800000, CRC(6021c79e) SHA1(fbc340dafb18aa3094de29b881318a5a9794e4bc) ) //text-1 + ROM_LOAD( "cave_t04801w064.u19", 0x180000, 0x800000, CRC(6021c79e) SHA1(fbc340dafb18aa3094de29b881318a5a9794e4bc) ) //text-1 ROM_REGION16_LE( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04801w064.u7", 0x0000000, 0x0800000, CRC(26dd4932) SHA1(9bbabb5a53cb5ba88397cc2c258980f3b70314ce) ) //image-1 - ROM_LOAD( "a04802w064.u8", 0x0800000, 0x0800000, CRC(0e6bf7a9) SHA1(a7541e2b5a0df2bc62a5b347e54dbc2ed1922db2) ) //image-2 + ROM_LOAD( "cave_a04801w064.u7", 0x0000000, 0x0800000, CRC(26dd4932) SHA1(9bbabb5a53cb5ba88397cc2c258980f3b70314ce) ) //image-1 + ROM_LOAD( "cave_a04802w064.u8", 0x0800000, 0x0800000, CRC(0e6bf7a9) SHA1(a7541e2b5a0df2bc62a5b347e54dbc2ed1922db2) ) //image-2 ROM_REGION16_LE( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04801w064.u1", 0x0000000, 0x0800000, CRC(98dce13a) SHA1(61d48b7117459f7babc022b68231f6928177a71d) ) //bitmap-1 + ROM_LOAD( "cave_b04801w064.u1", 0x0000000, 0x0800000, CRC(98dce13a) SHA1(61d48b7117459f7babc022b68231f6928177a71d) ) //bitmap-1 ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ /* there is a position for the PGM audio bios rom, but it's unpopulated, same as ketsui but not "PGM" string on PCB */ - ROM_LOAD( "w04801b032.u17", 0x400000, 0x400000, CRC(60298536) SHA1(6b7333f16cce778c5725dbdf75a5446f0906397a) ) //music-1 + ROM_LOAD( "cave_w04801b032.u17", 0x400000, 0x400000, CRC(60298536) SHA1(6b7333f16cce778c5725dbdf75a5446f0906397a) ) //music-1 ROM_END ROM_START( espgalbl ) // this assumes a Dodonpachi 2 Bee Storm cart was used @@ -4601,18 +4885,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM bios - ROM_LOAD( "t04401w064.u19",0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 + ROM_LOAD( "cave_t04401w064.u19", 0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 - ROM_LOAD( "a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 + ROM_LOAD( "cave_a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 + ROM_LOAD( "cave_a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 + ROM_LOAD( "cave_b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // same as standard PGM bios - ROM_LOAD( "m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 + ROM_LOAD( "cave_m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ddp3_defaults.nv", 0x0000000, 0x020000, CRC(571e96c0) SHA1(348940c77ca348213331b85b9b1d3aabb96a528a) ) @@ -4620,7 +4904,7 @@ ROM_START( ddpdoj ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ - ROM_LOAD16_WORD_SWAP( "ddp3_bios.u37", 0x00000, 0x080000, CRC(b3cc5c8f) SHA1(02d9511cf71e4a0d6ca8fd9a1ef2c79b0d001824) ) // uses a standard PGM bios with the startup logos hacked out + ROM_LOAD16_WORD_SWAP( "ddp3_bios.u37", 0x00000, 0x080000, CRC(b3cc5c8f) SHA1(02d9511cf71e4a0d6ca8fd9a1ef2c79b0d001824) ) // uses a standard PGM bios with the startup logos hacked out ROM_LOAD16_WORD_SWAP( "ddp3_v101.u36", 0x100000, 0x200000, CRC(195b5c1e) SHA1(f18d791c034b0a3d85888a92fb5d326ee3deb04f) ) // yes this one was actually marked v101 which goes against the standard Cave marking system ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ @@ -4628,18 +4912,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM bios - ROM_LOAD( "t04401w064.u19",0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 + ROM_LOAD( "cave_t04401w064.u19", 0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 - ROM_LOAD( "a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 + ROM_LOAD( "cave_a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 + ROM_LOAD( "cave_a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 + ROM_LOAD( "cave_b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // same as standard PGM bios - ROM_LOAD( "m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 + ROM_LOAD( "cave_m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ddp3_defaults.nv", 0x0000000, 0x020000, CRC(571e96c0) SHA1(348940c77ca348213331b85b9b1d3aabb96a528a) ) @@ -4656,18 +4940,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM bios - ROM_LOAD( "t04401w064.u19",0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 + ROM_LOAD( "cave_t04401w064.u19", 0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 - ROM_LOAD( "a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 + ROM_LOAD( "cave_a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 + ROM_LOAD( "cave_a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 + ROM_LOAD( "cave_b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // same as standard PGM bios - ROM_LOAD( "m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 + ROM_LOAD( "cave_m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ddp3_defaults.nv", 0x0000000, 0x020000, CRC(571e96c0) SHA1(348940c77ca348213331b85b9b1d3aabb96a528a) ) @@ -4676,25 +4960,25 @@ ROM_START( ddpdojb ) ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_WORD_SWAP( "ddp3_bios.u37", 0x00000, 0x080000, CRC(b3cc5c8f) SHA1(02d9511cf71e4a0d6ca8fd9a1ef2c79b0d001824) ) // uses a standard PGM bios with the startup logos hacked out - ROM_LOAD16_WORD_SWAP( "dd v100.bin", 0x100000, 0x200000, CRC(7da0c1e4) SHA1(aca2fe35ba0ab3628900fa2aba2d22fc4fd7046d) ) // marked v100 + ROM_LOAD16_WORD_SWAP( "dd_v100.u36", 0x100000, 0x200000, CRC(7da0c1e4) SHA1(aca2fe35ba0ab3628900fa2aba2d22fc4fd7046d) ) // marked v100 ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ ROM_LOAD( "ddp3_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM bios - ROM_LOAD( "t04401w064.u19",0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 + ROM_LOAD( "cave_t04401w064.u19", 0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 - ROM_LOAD( "a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 + ROM_LOAD( "cave_a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 + ROM_LOAD( "cave_a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 + ROM_LOAD( "cave_b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // same as standard PGM bios - ROM_LOAD( "m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 + ROM_LOAD( "cave_m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ ROM_LOAD( "ddp3_defaults.nv", 0x0000000, 0x020000, CRC(571e96c0) SHA1(348940c77ca348213331b85b9b1d3aabb96a528a) ) @@ -4741,18 +5025,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM bios - ROM_LOAD( "t04401w064.u19",0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 + ROM_LOAD( "cave_t04401w064.u19", 0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 - ROM_LOAD( "a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 + ROM_LOAD( "cave_a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 + ROM_LOAD( "cave_a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 + ROM_LOAD( "cave_b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // same as standard PGM bios - ROM_LOAD( "m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 + ROM_LOAD( "cave_m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* NVRAM with factory programmed values - needed to boot */ ROM_LOAD( "ddp3blk_defaults.nv", 0x0000000, 0x020000, CRC(a1651904) SHA1(5b80d3c4c764895c40953a66161d4dd84f742604) ) @@ -4768,18 +5052,18 @@ ROM_REGION( 0xa00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM bios - ROM_LOAD( "t04401w064.u19",0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 + ROM_LOAD( "cave_t04401w064.u19", 0x180000, 0x800000, CRC(3a95f19c) SHA1(fd3c47cf0b8b1e20c6bec4be68a089fc8bbf4dbe) ) //text-1 ROM_REGION16_LE( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ - ROM_LOAD( "a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 - ROM_LOAD( "a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 + ROM_LOAD( "cave_a04401w064.u7", 0x0000000, 0x0800000, CRC(ed229794) SHA1(1cf1863495a18c7c7d277a9be43ec116b00960b0) ) //image-1 + ROM_LOAD( "cave_a04402w064.u8", 0x0800000, 0x0800000, CRC(752167b0) SHA1(c33c3398dd8e479c9d5bd348924958a6aecbf0fc) ) //image-2 ROM_REGION16_LE( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ - ROM_LOAD( "b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 + ROM_LOAD( "cave_b04401w064.u1", 0x0000000, 0x0800000, CRC(17731c9d) SHA1(0e0aa0ec01035323985ac8e08228a0fd6edf6689) ) //bitmap-1 ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // same as standard PGM bios - ROM_LOAD( "m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 + ROM_LOAD( "cave_m04401b032.u17", 0x400000, 0x400000, CRC(5a0dbd76) SHA1(06ab202f6bd5ebfb35b9d8cc7a8fb83ec8840659) ) //music-1 ROM_REGION( 0x20000, "sram", 0 ) /* NVRAM with factory programmed values - needed to boot */ ROM_LOAD( "ddp3blk_defaults.nv", 0x0000000, 0x020000, CRC(a1651904) SHA1(5b80d3c4c764895c40953a66161d4dd84f742604) ) @@ -4847,16 +5131,18 @@ GAME( 1997, orlegend111c, orlegend, pgm_asic3, orlegend, pgm_asic3_state, init_orlegend, ROT0, "IGS", "Oriental Legend / Xiyou Shi E Chuan (ver. 111, Chinese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0001 no date! - runs as HongKong, China, China GAME( 1997, orlegend111t, orlegend, pgm_asic3, orlegendt, pgm_asic3_state, init_orlegend, ROT0, "IGS", "Oriental Legend / Xiyou Shi E Chuan (ver. 111, Taiwanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// V0001 no date! - needs a different protection sequence GAME( 1997, orlegend111k, orlegend, pgm_asic3, orlegendk, pgm_asic3_state, init_orlegend, ROT0, "IGS", "Oriental Legend / Xiyou Shi E Chuan (ver. 111, Korean Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // not checked +GAME( 1997, orlegend105t, orlegend, pgm_asic3, orlegendt, pgm_asic3_state, init_orlegend, ROT0, "IGS", "Oriental Legend / Xiyou Shi E Chuan (ver. 105, Taiwanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// V0000 no date! - needs a different protection sequence GAME( 1997, orlegend105k, orlegend, pgm_asic3, orlegendk, pgm_asic3_state, init_orlegend, ROT0, "IGS", "Oriental Legend / Xiyou Shi E Chuan (ver. 105, Korean Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0000 no date! - runs as Korea //Dragon World II //中國龍II/Zhōngguó lóng II (China, Taiwan, Japan; Traditional Chinese only in title screen) //東方之珠II/Dung1Fong1 Zi1 Zyu1 II (Hong Kong)/dongbang jiju II (Korea(undumped)) GAME( 1997, drgw2, pgm, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2, ROT0, "IGS", "Dragon World II (ver. 110X, Export)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, dw2v100x, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_dw2v100x, ROT0, "IGS", "Dragon World II (ver. 100X, Export)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, drgw2j, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2j, ROT0, "IGS (Alta license)", "Chuugokuryuu II (ver. 100J, Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, drgw2c, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2c, ROT0, "IGS", "Zhongguo Long II (ver. 100C, China)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, drgw2hk, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2hk, ROT0, "IGS", "Dungfong Zi Zyu II (ver. 100H, Hong Kong)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // (region is shown as Hokg Kong, Dragon World 3 is the same) +GAME( 1997, drgw2100x, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_dw2v100x, ROT0, "IGS", "Dragon World II (ver. 100X, Export)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, drgw2100j, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2j, ROT0, "IGS (Alta license)", "Chuugokuryuu II (ver. 100J, Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, drgw2101c, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2c101,ROT0, "IGS", "Zhongguo Long II (ver. 101C, China)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, drgw2100c, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2c, ROT0, "IGS", "Zhongguo Long II (ver. 100C, China)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, drgw2100hk, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, init_drgw2hk, ROT0, "IGS", "Dungfong Zi Zyu II (ver. 100H, Hong Kong)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // (region is shown as Hokg Kong, Dragon World 3 is the same) //The Killing Blade //傲剑狂刀/Ào jiàn kuáng dāo (China, Hong Kong; Simplified Chinese) @@ -4885,7 +5171,7 @@ GAME( 1999, photoy2k, pgm, pgm_arm_type1, photoy2k, pgm_arm_type1_state, init_photoy2k, ROT0, "IGS", "Photo Y2K / Chaoji Bi Yi Bi / Dajia Lai Zhao Cha / Real and Fake (ver. 105)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */ GAME( 1999, photoy2k104, photoy2k, pgm_arm_type1, photoy2k, pgm_arm_type1_state, init_photoy2k, ROT0, "IGS", "Photo Y2K / Chaoji Bi Yi Bi / Dajia Lai Zhao Cha / Real and Fake (ver. 104)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */ GAME( 1999, photoy2k103j, photoy2k, pgm_arm_type1, photoy2kj, pgm_arm_type1_state, init_photoy2k, ROT0, "IGS", "Photo Y2K / Chaoji Bi Yi Bi / Dajia Lai Zhao Cha / Real and Fake (ver. 103, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */ -GAME( 1999, photoy2k102, photoy2k, pgm_arm_type1, photoy2k, pgm_arm_type1_state, init_photoy2k, ROT0, "IGS", "Photo Y2K / Chaoji Bi Yi Bi / Dajia Lai Zhao Cha / Real and Fake (ver. 102, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */ +GAME( 1999, photoy2k102j, photoy2k, pgm_arm_type1, photoy2k, pgm_arm_type1_state, init_photoy2k, ROT0, "IGS", "Photo Y2K / Chaoji Bi Yi Bi / Dajia Lai Zhao Cha / Real and Fake (ver. 102, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */ //三国战纪风云再起/Sānguó zhàn jì Fēngyún zàiqǐ (China, Hong Kong; Simplified Chinese) //三國戰紀風雲再起/Sānguó zhàn jì Fēngyún zàiqǐ (Taiwan; Traditional Chinese) @@ -4917,15 +5203,16 @@ // region provided by internal ARM rom (we only have a China internal ROM) GAME( 2001, kov2p, pgm, pgm_arm_type2, kov2, pgm_arm_type2_state, init_kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sanguo Zhan Ji 2 Qunxiong Zhengba / Sanguo Zhan Ji 2 Feilong Zai Tian / Sangoku Senki Busyou Souha (ver. M205XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 04/25/02 17:48:27 M205XX GAME( 2001, kov2p204, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, init_kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sanguo Zhan Ji 2 Qunxiong Zhengba / Sanguo Zhan Ji 2 Feilong Zai Tian / Sangoku Senki Busyou Souha (ver. M204XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 08/28/01 09:11:49 M204XX +GAME( 2001, kov2p203, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, init_kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sanguo Zhan Ji 2 Qunxiong Zhengba / Sanguo Zhan Ji 2 Feilong Zai Tian / Sangoku Senki Busyou Souha (ver. M203XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 08/13/01 16:57:32 M203XX GAME( 2001, kov2p202, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, init_kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sanguo Zhan Ji 2 Qunxiong Zhengba / Sanguo Zhan Ji 2 Feilong Zai Tian / Sangoku Senki Busyou Souha (ver. M202XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 07/09/01 11:03:50 M202XX GAME( 2001, kov2p200, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, init_kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sanguo Zhan Ji 2 Qunxiong Zhengba / Sanguo Zhan Ji 2 Feilong Zai Tian / Sangoku Senki Busyou Souha (ver. M200XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 06/18/01 22:59:12 M200XX //形意拳/Xíng yì quán/Sin ī ken(Japanese label) // region provided by internal ARM rom GAME( 2001, martmast, pgm, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 104, 102, 102US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 102US -GAME( 2001, martmastc, martmast, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 104, 102, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 101CN -GAME( 2001, martmastc103, martmast, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 103, 102, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V103, Ext Arm 102, Int Arm 101CN (actually 102 CN on the PCB, needs to be dumped) -GAME( 2001, martmastc102, martmast, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 102, 101, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V102, Ext Arm 101, Int Arm 101CN +GAME( 2001, martmast104c, martmast, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 104, 102, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 101CN +GAME( 2001, martmast103c, martmast, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 103, 102, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V103, Ext Arm 102, Int Arm 101CN (actually 102 CN on the PCB, needs to be dumped) +GAME( 2001, martmast102c, martmast, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 102, 101, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V102, Ext Arm 101, Int Arm 101CN GAME( 2001, martmasttw, martmast, pgm_arm_type2_22m, martmast, pgm_arm_type2_state, init_martmast, ROT0, "IGS", "Martial Masters / Xing Yi Quan (ver. 102, 101, 101TW)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // 68k V102, Ext Arm 101, Int Arm 101TW //蜂暴/Fēng bào (Chinese, Title call excepting Japan)/Fung1 Bou6 (Hong Kong, Jyutping) @@ -4955,27 +5242,28 @@ // japan region only? service mode calls it Dragon World Pretty Chance so I'm leaving that title in the description // english / chinese version also exists -GAME( 2001, dwpc, pgm, pgm_arm_type2_22m, dw2001, pgm_arm_type2_state, init_dwpc, ROT0, "IGS", "Chuugokuryuu Pretty Chance [Dragon World Pretty Chance] (V101 09/26/01 10:23:26, Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 09/26/01 10:23:26 +GAME( 2001, dwpc, pgm, pgm_arm_type2_22m, dw2001, pgm_arm_type2_state, init_dwpc, ROT0, "IGS", "Zhongguo Long Pretty Chance [Dragon World Pretty Chance] (V110 03/19/02 11:13:16, China)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 03/19/02 11:13:16, needs proper ARM internal ROM dump, currently hacked, needs reset before working +GAME( 2001, dwpc101j, dwpc, pgm_arm_type2_22m, dw2001, pgm_arm_type2_state, init_dwpc101j, ROT0, "IGS", "Chuugokuryuu Pretty Chance [Dragon World Pretty Chance] (V101 09/26/01 10:23:26, Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 09/26/01 10:23:26 //魔域戰線/Móyù zhànxiàn (Traditional Chinese) //魔域战线/Móyù zhànxiàn (Simplified Chinese) // we bypass the internal ARM rom on these, ideally it should still be dumped tho! the region screens show a blank string where the internal ROM revision would otherwise be displayed // ARM version strings don't match 100% with labels... for 68k ROMs I'm using the build time / date stamp from near the start of the rom, there are some slightly different time stamps later GAME( 2002, dmnfrnt, pgm, pgm_arm_type3_22m, pgm, pgm_arm_type3_state, init_dmnfrnt, ROT0, "IGS", "Demon Front / Moyu Zhanxian (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 10:24:11 ARM time: 10:33:23 -GAME( 2002, dmnfrntb, dmnfrnt, pgm_arm_type3_22m, pgm, pgm_arm_type3_state, init_dmnfrnt, ROT0, "IGS", "Demon Front / Moyu Zhanxian (68k label V103, ROM M103XX 07/05/02) (ARM label V103, ROM 07/05/02 S103XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 14:43:13 ARM time: 11:04:24 -GAME( 2002, dmnfrnta, dmnfrnt, pgm_arm_type3_22m, pgm, pgm_arm_type3_state, init_dmnfrnt, ROT0, "IGS", "Demon Front / Moyu Zhanxian (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 13:44:08 ARM time: 13:04:31 (from the strings it looks like V102 only upgraded the 68k ROM) +GAME( 2002, dmnfrnt103, dmnfrnt, pgm_arm_type3_22m, pgm, pgm_arm_type3_state, init_dmnfrnt, ROT0, "IGS", "Demon Front / Moyu Zhanxian (68k label V103, ROM M103XX 07/05/02) (ARM label V103, ROM 07/05/02 S103XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 14:43:13 ARM time: 11:04:24 +GAME( 2002, dmnfrnt102, dmnfrnt, pgm_arm_type3_22m, pgm, pgm_arm_type3_state, init_dmnfrnt, ROT0, "IGS", "Demon Front / Moyu Zhanxian (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 13:44:08 ARM time: 13:04:31 (from the strings it looks like V102 only upgraded the 68k ROM) GAME( 2002, dmnfrntpcb, dmnfrnt, pgm_arm_type3_24m, pgm, pgm_arm_type3_state, init_dmnfrnt, ROT0, "IGS", "Demon Front V1.1 / Moyu Zhanxian V1.1 (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // works but reports version mismatch (wants internal rom version and region to match external?) /* these don't use an External ARM rom, and don't have any weak internal functions which would allow the internal ROM to be read out */ -GAME( 2002, ddp3, 0, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi III (World, 2002.05.15 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, ddpdoj, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05.Master Ver, 68k Label V101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // is there a v101 without the . after 05? -GAME( 2002, ddpdoja, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05.Master Ver, 68k Label V100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, ddpdojb, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, ddpdojp, ddp3, pgm, ddp3, pgm_state, init_pgm, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver, location test)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unprotected, but still has strings related to the protection ASIC -GAME( 2002, ddpdojblk, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07.Black Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07.Black Ver" (new) -GAME( 2002, ddpdojblka, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07 Black Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07 Black Ver" (new) -GAME( 2012, ddpdojblkbl,ddp3, pgm_arm_type1, pgm, pgm_arm_type1_state, init_kovsh, ROT270, "bootleg", "DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07 Black Ver., bootleg Knights of Valour Super Heroes conversion)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // the extra . in the revision has been added by bootlegger +GAME( 2002, ddp3, 0, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi III (World, 2002.05.15 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, ddpdoj, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05.Master Ver, 68k Label V101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // is there a v101 without the . after 05? +GAME( 2002, ddpdoja, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05.Master Ver, 68k Label V100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, ddpdojb, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, ddpdojp, ddp3, pgm, ddp3, pgm_state, init_pgm, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver, location test)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unprotected, but still has strings related to the protection ASIC +GAME( 2002, ddpdojblk, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07.Black Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07.Black Ver" (new) +GAME( 2002, ddpdojblka, ddp3, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07 Black Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07 Black Ver" (new) +GAME( 2012, ddpdojblkbl, ddp3, pgm_arm_type1, pgm, pgm_arm_type1_state, init_kovsh, ROT270, "bootleg", "DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07 Black Ver., bootleg Knights of Valour Super Heroes conversion)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // the extra . in the revision has been added by bootlegger // the exact text of the 'version' shows which revision of the game it is; the newest has 2 '.' symbols in the string, the oldest, none. // the only difference between 'ket' and 'ket1' is the ROM fill at 0x1443bc-0x1c88cd, on ket1 it seems to be randomized / garbage data, on ket it's all 0xff, both have been seen on more than one PCB. @@ -5028,7 +5316,8 @@ // the v100 68k ROM on this is older than the v101 set, this set also uses a different internal ROM to everything else, must be a very early release, maybe pre v100 proto with v100 strings? GAME( 2003, theglad100, theglad, pgm_arm_type3_22m, theglad, pgm_arm_type3_state, init_theglada, ROT0, "IGS", "The Gladiator / Shen Jian Fu Mo Lu / Shen Jian Fengyun (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* need correct internal rom of IGS027A - we currently patch the one we have */ // ARM time: 10:39:25 // newer than ARM V100 Cart, older than ARM V101 Cart, same 68k rom as V101 Cart. -GAME( 2003, thegladpcb, theglad, pgm_arm_type3_33m, pgm, pgm_arm_type3_state, init_theglad, ROT0, "IGS (Alta/AMI license)", "Tougenkyou - Road of the Sword (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (Japan, JAMMA PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// ARM time: 16:32:21 // PCB version only released in Japan? +GAME( 2003, thegladpcb, theglad, pgm_arm_type3_33m, pgm, pgm_arm_type3_state, init_theglad, ROT0, "IGS (Alta/AMI license)", "Tougenkyou - Road of the Sword (M68k label V100) (ARM label V101, ROM 03/13/03 SHEN JIAN) (Japan, JAMMA PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// ARM time: 16:17:27 // PCB version only released in Japan? +GAME( 2003, thegladpcba, theglad, pgm_arm_type3_33m, pgm, pgm_arm_type3_state, init_theglad, ROT0, "IGS (Alta/AMI license)", "Tougenkyou - Road of the Sword (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (Japan, JAMMA PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// ARM time: 16:32:21 // PCB version only released in Japan? //圣魔世纪/Shèng mó shìjì (China) //聖魔世紀/Shèng mó shìjì (Taiwan, Hong Kong) @@ -5041,6 +5330,7 @@ GAME( 2004, happy6, pgm, pgm_arm_type3_24m, happy6, pgm_arm_type3_state, init_happy6, ROT0, "IGS", "Huanle Liuhe Yi (Happy 6-in-1) (M68K ver. V101, ARM ver. V102CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 2004, happy6101, happy6, pgm_arm_type3_24m, happy6, pgm_arm_type3_state, init_happy6, ROT0, "IGS", "Huanle Liuhe Yi (Happy 6-in-1) (M68K ver. V100, ARM ver. V101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 2004, happy6100hk, happy6, pgm_arm_type3_24m, happy6hk, pgm_arm_type3_state, init_happy6, ROT0, "IGS", "Huanle Liuhe Yi (Happy 6-in-1) (M68K ver. V100HK, ARM ver. V100HK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2004, happy6100cn, happy6, pgm_arm_type3_24m, happy6, pgm_arm_type3_state, init_happy6, ROT0, "IGS", "Huanle Liuhe Yi (Happy 6-in-1) (M68K ver. V100, ARM ver. V100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) //超級比一比2/Chāojí bǐ yī bǐ 2 (Taiwan) //大家来找碴2/Dàjiā lái zhǎo chá 2/Daai6gaa1 Loi4 Zaau2 Caa4 2 (China, Hong Kong) @@ -5064,11 +5354,12 @@ //三國戰紀/Sānguó zhàn jì (Taiwan, Japan; Traditional Chinese) GAME( 1999, kov, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 117)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0008 04/27/99 10:33:33 GAME( 1999, kov115, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 115)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0006 02/22/99 11:53:18 -GAME( 1999, kov100, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 100, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0002 01/31/99 01:54:16 -GAME( 1999, kov100hk, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 100, Hong Kong)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +GAME( 1999, kov114, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 114, Hong Kong)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +GAME( 1999, kov111, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 111, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0002 01/31/99 01:54:16 //三国战纪正宗Plus/Sānguó zhàn jì Zhèngzōng Plus (China/Hong Kong; Simplified Chinese) //三國戰紀正宗Plus/Sānguó zhàn jì Zhèngzōng Plus (Taiwan, Japan; Traditional Chinese) +// no PLUS on screen when set to Korea GAME( 1999, kovplus, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour Plus / Sanguo Zhan Ji Zhengzong Plus / Sangoku Senki Masamune Plus (ver. 119, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ GAME( 1999, kovplusa, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, init_kov, ROT0, "IGS", "Knights of Valour Plus / Sanguo Zhan Ji Zhengzong Plus / Sangoku Senki Masamune Plus (ver. 119, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ @@ -5084,11 +5375,13 @@ -----------------------------------------------------------------------------------------------------------------------*/ //魔幻星座/Móhuàn xīngzuò -GAME( 1999, puzlstar, pgm, pgm_arm_type1_sim, pstar, pgm_arm_type1_state, init_pstar, ROT0, "IGS (Metro license)", "Puzzle Star / Mohuan Xingzuo (ver. 100MG)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +GAME( 1999, puzlstar, pgm, pgm_arm_type1_sim, pstar, pgm_arm_type1_state, init_pstar, ROT0, "IGS (Metro license)", "Puzzle Star / Mohuan Xingzuo (ver. 100MG, 09/30/99 build)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +GAME( 1999, puzlstara, puzlstar, pgm_arm_type1_sim, pstar, pgm_arm_type1_state, init_pstar, ROT0, "IGS (Metro license)", "Puzzle Star / Mohuan Xingzuo (ver. 100MG, 09/20/99 build)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ //閃亮三合一/Shǎn liàng sān hé yī (Taiwan, Hong Kong, Oversea) //闪亮三合一/Shǎn liàng sān hé yī (China) -GAME( 2004, pgm3in1, pgm, pgm_arm_type1_sim, pgm3in1, pgm_arm_type1_state, init_pgm3in1, ROT0, "IGS", "Shan Liang San He Yi (Flash 3-in-1) (V100 07/13/04 12:09:20)", MACHINE_NOT_WORKING ) /* need internal rom of IGS027A */ +GAME( 2004, pgm3in1, pgm, pgm_arm_type1_sim, pgm3in1, pgm_arm_type1_state, init_pgm3in1, ROT0, "IGS", "Shan Liang San He Yi (Flash 3-in-1) (V102 08/23/04 13:03:26)", MACHINE_NOT_WORKING ) /* need internal rom of IGS027A */ +GAME( 2004, pgm3in1c100, pgm3in1, pgm_arm_type1_sim, pgm3in1, pgm_arm_type1_state, init_pgm3in1, ROT0, "IGS", "Shan Liang San He Yi (Flash 3-in-1) (V100 07/13/04 12:09:20)", MACHINE_NOT_WORKING ) /* need internal rom of IGS027A */ /* Games below this point are known to have an 'execute only' internal ROM area covering an area at the start of the internal ROM. This can't be read when running code from either internal or external ROM space. */ @@ -5096,10 +5389,11 @@ //西游释厄传群魔乱舞/Xīyóu shì è chuán Qúnmóluànwǔ (China, Japan; Simplified Chinese) //西遊釋厄傳群魔亂舞/Xīyóu shì è chuán Qúnmóluànwǔ (Hong Kong, World, Taiwan; Traditional Chinese) //Oriental Legend 2/손오공 2/Son Ogong 2 (Korea) -// Simulation doesn't seem 100% so marked as NOT WORKING. Probably wasn't released in all specified regions (protection device intenral ROM supplies the region) "Oriental Ex" is the identifier string used in test mode. -GAME( 2004, oldsplus, pgm, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, init_oldsplus, ROT0, "IGS", "Oriental Legend 2 (Korea) / Xiyou Shi E Chuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (ver. 205) [Oriental Ex]", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +// Simulation doesn't seem 100% so marked as NOT WORKING. Probably wasn't released in all specified regions (protection device internal ROM supplies the region) "Oriental Ex" is the identifier string used in test mode. +GAME( 2004, oldsplus, pgm, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, init_oldsplus, ROT0, "IGS", "Oriental Legend 2 (Korea) / Xiyou Shi E Chuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (ver. 205) [Oriental Ex]", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +GAME( 2004, oldsplus203, oldsplus, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, init_oldsplus, ROT0, "IGS", "Oriental Legend 2 (Korea) / Xiyou Shi E Chuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (ver. 203) [Oriental Ex]", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ -// we use the kovsh ARM rom for this, itercepting commands and changing them to match it, doesn't seem 100% correct tho so I'm leaving it as NOT WORKING; for example the ARM rom supplies addresses of Z80 music data sections, which have moved causing incorrect music, some damage rates could be different too. +// we use the kovsh ARM rom for this, intercepting commands and changing them to match it, doesn't seem 100% correct tho so I'm leaving it as NOT WORKING; for example the ARM rom supplies addresses of Z80 music data sections, which have moved causing incorrect music, some damage rates could be different too. // the game logo remains stuck on the screen during gameplay, but videos of the original board suggest this happens on real hardware as well // if the internal ROM can't be extracted (likely case, execute only area and NO chance of custom code execution at all due to lack of external ROM) then a reference simulator should probably be written based on the actual // kovsh code, tweaked based on tests done with this specific board to catch any different behaviors. These all seem to be for China only, they don't work as expected when set to other regions. @@ -5107,7 +5401,7 @@ //三国战记乱世枭雄/Sānguó zhàn jì Luànshì xiāoxióng (China; Simplified Chinese, Official?) //三國戰記亂世梟雄/Sānguó zhàn jì Luànshì xiāoxióng (Traditional Chinese, Official?) GAME( 2004, kovshp, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, init_kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sanguo Zhan Ji Luanshi Xiaoxiong (ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ -GAME( 2004, kovshpa, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, init_kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sanguo Zhan Ji Luanshi Xiaoxiong (ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +GAME( 2004, kovshp100, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, init_kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sanguo Zhan Ji Luanshi Xiaoxiong (ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // First(possibly) major updated version of kovsh with 3 game modes and new characters, Version is V201 and identification string is "SANGO EX+" instead "SANGO EX". // 一统中原/Yītǒng zhōngyuán is game mode(this mode is similar as kovsh), and ROM labels too? GAME( 1999, kovytzy, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, init_kovshp, ROT0, "IGS", "Knights of Valour Super Heroes / Sanguo Zhan Ji Fengyun Zaiqi / Sangoku Senki Super Heroes (SANGO EX+) (ver. 201 'Yitong Zhongyuan', China)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ diff -Nru mame-0.223+dfsg.1/src/mame/drivers/photoply.cpp mame-0.224+dfsg.1/src/mame/drivers/photoply.cpp --- mame-0.223+dfsg.1/src/mame/drivers/photoply.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/photoply.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -8,8 +8,8 @@ TODO: - BIOS CMOS doesn't save at all (needed for setting up the Hard Disk); -- DISK BOOT FAILURE after eeprom checking (many unknown IDE cs1 reads/writes); -- partition boot sector is missing from the CHD dump, protection? +- DISK BOOT FAILURE after EEPROM checking (many unknown IDE cs1 reads/writes); +- Partition boot sector is missing from the CHD dump, protection? - Detects CPU type as "-S 16 MHz"? Sometimes it detects it as 486SX, unknown repro (after fiddling with CMOS settings anyway) - VGA BIOS reports being a Cirrus Logic GD5436 / 5446, it is unknown what exactly this game uses. - PCI hookups (no idea about what this uses), and improve/device-ify SiS85C49x; @@ -42,6 +42,7 @@ } void photoply(machine_config &config); + void photoply_dx4_100(machine_config &config); private: required_device m_eeprom; @@ -203,8 +204,6 @@ map(0xfffe0000, 0xffffffff).lr8([this] (offs_t offset) { return m_main_bios[offset]; }, "bios_upper_r"); } - - void photoply_state::photoply_io(address_map &map) { pcat32_io_common(map); @@ -231,43 +230,43 @@ static INPUT_PORTS_START( photoply ) PORT_START("pc_keyboard_0") - PORT_BIT ( 0x0001, 0x0000, IPT_UNUSED ) /* unused scancode 0 */ - AT_KEYB_HELPER( 0x0002, "Esc", KEYCODE_Q ) /* Esc 01 81 */ - AT_KEYB_HELPER( 0x0004, "1", KEYCODE_1 ) - AT_KEYB_HELPER( 0x0008, "2", KEYCODE_2 ) - AT_KEYB_HELPER( 0x0010, "3", KEYCODE_3 ) - AT_KEYB_HELPER( 0x0020, "4", KEYCODE_4 ) - AT_KEYB_HELPER( 0x0040, "5", KEYCODE_5 ) - AT_KEYB_HELPER( 0x0080, "6", KEYCODE_6 ) - AT_KEYB_HELPER( 0x0100, "7", KEYCODE_7 ) - AT_KEYB_HELPER( 0x0200, "8", KEYCODE_8 ) - AT_KEYB_HELPER( 0x0400, "9", KEYCODE_9 ) - AT_KEYB_HELPER( 0x0800, "0", KEYCODE_0 ) + PORT_BIT ( 0x0001, 0x0000, IPT_UNUSED ) // Unused scancode 0 + AT_KEYB_HELPER( 0x0002, "Esc", KEYCODE_Q ) // Esc 01 81 + AT_KEYB_HELPER( 0x0004, "1", KEYCODE_1 ) + AT_KEYB_HELPER( 0x0008, "2", KEYCODE_2 ) + AT_KEYB_HELPER( 0x0010, "3", KEYCODE_3 ) + AT_KEYB_HELPER( 0x0020, "4", KEYCODE_4 ) + AT_KEYB_HELPER( 0x0040, "5", KEYCODE_5 ) + AT_KEYB_HELPER( 0x0080, "6", KEYCODE_6 ) + AT_KEYB_HELPER( 0x0100, "7", KEYCODE_7 ) + AT_KEYB_HELPER( 0x0200, "8", KEYCODE_8 ) + AT_KEYB_HELPER( 0x0400, "9", KEYCODE_9 ) + AT_KEYB_HELPER( 0x0800, "0", KEYCODE_0 ) PORT_START("pc_keyboard_1") - AT_KEYB_HELPER( 0x0020, "Y", KEYCODE_Y ) /* Y 15 95 */ - AT_KEYB_HELPER( 0x1000, "Enter", KEYCODE_ENTER ) /* Enter 1C 9C */ + AT_KEYB_HELPER( 0x0020, "Y", KEYCODE_Y ) // Y 15 95 + AT_KEYB_HELPER( 0x1000, "Enter", KEYCODE_ENTER ) // Enter 1C 9C PORT_START("pc_keyboard_2") PORT_START("pc_keyboard_3") - AT_KEYB_HELPER( 0x0002, "N", KEYCODE_N ) /* N 31 B1 */ - AT_KEYB_HELPER( 0x0800, "F1", KEYCODE_F1 ) /* F1 3B BB */ - AT_KEYB_HELPER( 0x1000, "F2", KEYCODE_F2 ) - AT_KEYB_HELPER( 0x4000, "F4", KEYCODE_F4 ) + AT_KEYB_HELPER( 0x0002, "N", KEYCODE_N ) // N 31 B1 + AT_KEYB_HELPER( 0x0800, "F1", KEYCODE_F1 ) // F1 3B BB + AT_KEYB_HELPER( 0x1000, "F2", KEYCODE_F2 ) + AT_KEYB_HELPER( 0x4000, "F4", KEYCODE_F4 ) PORT_START("pc_keyboard_4") PORT_START("pc_keyboard_5") PORT_START("pc_keyboard_6") - AT_KEYB_HELPER( 0x0040, "(MF2)Cursor Up", KEYCODE_UP ) /* Up 67 e7 */ - AT_KEYB_HELPER( 0x0080, "(MF2)Page Up", KEYCODE_PGUP ) /* Page Up 68 e8 */ - AT_KEYB_HELPER( 0x0100, "(MF2)Cursor Left", KEYCODE_LEFT ) /* Left 69 e9 */ - AT_KEYB_HELPER( 0x0200, "(MF2)Cursor Right", KEYCODE_RIGHT ) /* Right 6a ea */ - AT_KEYB_HELPER( 0x0800, "(MF2)Cursor Down", KEYCODE_DOWN ) /* Down 6c ec */ - AT_KEYB_HELPER( 0x1000, "(MF2)Page Down", KEYCODE_PGDN ) /* Page Down 6d ed */ - AT_KEYB_HELPER( 0x4000, "Del", KEYCODE_A ) /* Delete 6f ef */ + AT_KEYB_HELPER( 0x0040, "(MF2)Cursor Up", KEYCODE_UP ) // Up 67 e7 + AT_KEYB_HELPER( 0x0080, "(MF2)Page Up", KEYCODE_PGUP ) // Page Up 68 e8 + AT_KEYB_HELPER( 0x0100, "(MF2)Cursor Left", KEYCODE_LEFT ) // Left 69 e9 + AT_KEYB_HELPER( 0x0200, "(MF2)Cursor Right", KEYCODE_RIGHT ) // Right 6a ea + AT_KEYB_HELPER( 0x0800, "(MF2)Cursor Down", KEYCODE_DOWN ) // Down 6c ec + AT_KEYB_HELPER( 0x1000, "(MF2)Page Down", KEYCODE_PGDN ) // Page Down 6d ed + AT_KEYB_HELPER( 0x4000, "Del", KEYCODE_A ) // Delete 6f ef PORT_START("pc_keyboard_7") INPUT_PORTS_END @@ -283,7 +282,6 @@ m_pci_shadow_reg = 0; } - static const gfx_layout CGA_charlayout = { 8,8, @@ -296,14 +294,14 @@ }; static GFXDECODE_START( gfx_photoply ) - GFXDECODE_ENTRY( "video_bios", 0x6000+0xa5*8+7, CGA_charlayout, 0, 256 ) - //there's also a 8x16 entry (just after the 8x8) + GFXDECODE_ENTRY( "video_bios", 0x6000+0xa5*8+7, CGA_charlayout, 0, 256 ) + // There's also a 8x16 entry (just after the 8x8) GFXDECODE_END void photoply_state::photoply(machine_config &config) { - /* basic machine hardware */ - I486DX4(config, m_maincpu, 75000000); /* I486DX4, 75 or 100 Mhz */ + // Basic machine hardware + I486DX4(config, m_maincpu, 75000000); // I486DX4, 75 or 100 Mhz m_maincpu->set_addrmap(AS_PROGRAM, &photoply_state::photoply_map); m_maincpu->set_addrmap(AS_IO, &photoply_state::photoply_io); m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); @@ -332,30 +330,90 @@ .erase_all_time(attotime::from_usec(10)); } +void photoply_state::photoply_dx4_100(machine_config &config) +{ + photoply(config); + m_maincpu->set_clock(100000000); // 100MHz +} + +/* Intel A80486DX4100 + 4096KB RAM + SiS 85C496 + 85C497 + 5 x ISSI IS61C256AN-15N Cache RAM + Winbond W83787IF (near Xtal 24.00 MHz) + 3 x ISA + 2 x PCI */ +ROM_START(photoply99sp) + ROM_REGION(0x20000, "bios", 0) // Motherboard BIOS + ROM_LOAD("funworld_1999_award_v4.51g.bin", 0x000000, 0x20000, CRC(af7ff1d4) SHA1(72eeecf798a03817ce7ba4d65cd4128ed3ef7e68) ) // Award Modular BIOS v4.51G, AT29C010A + + /* Multifunction board with a ESS AudioDrive chip ISA Sound + I/O (PP2000/CI-8000) + ESS AudioDrve ES1868F + NEC D71055L-10 Parallel Interface Unit + Winbond W83877AF + Xtal 24.000 MHz (near W83877AF and D71055L-10) + Xtal 14.31818 MHz (near ES1868F) + Atmel 93C46 Serial EEPROM + PALCE16V8H (UNDUMPED) + PALCE16V8H (UNDUMPED) + 8 Dips */ + ROM_REGION(0x8000, "ex_bios", ROMREGION_ERASE00 ) + ROM_LOAD("enhanced_bios_1.06.u13", 0x0000, 0x8000, CRC(d05e9d20) SHA1(854501b7b3bf988b10516109d058f7ca2aa07d3e) ) // Centos Combo I/O ROM BIOS for CI-8000/PP2000 v1.06, W27E257 + + /* Cirrus Logic PCI CL-GD5446-HC-A + 512MB RAM (2 x M5416258B-30J) + Xtal 14.31818 MHz */ + ROM_REGION(0x8000, "video_bios", 0 ) + ROM_LOAD("cl-gd5446_pci_vga_bios_version_1.31.u2", 0x0000, 0x8000, CRC(61f8cac7) SHA1(6e54aadfe10dfa5c7e417a054e9a64499a99083c) ) // Cirrus Logic/Quadtel CL-GD5446 PCI VGA BIOS v1.31 , AT27C256R + + /* The PhotoPlay 1999 parallel port dongle contains, under expoxy resin: + Atmel AT89C2051 MCU (2KBytes internal ROM, UNDUMPED) + Xtal 11.05MHz + 24C08W6 SEEPROM + HC132 */ + ROM_REGION(0xC00, "dongle", 0) + ROM_SYSTEM_BIOS(0, "pp_99_dongle_r3", "Parallel port dongle Rev. 3") + ROMX_LOAD("dongle_photoply_1999_sp_r3_mcu.bin", 0x000, 0x800, NO_DUMP, ROM_BIOS(0)) // AT89C2051 + ROMX_LOAD("dongle_photoply_1999_sp_r3_seeprom.bin", 0x800, 0x400, CRC(62f68a79) SHA1(72477e07db0982764aede1b7e723aedf58937426), ROM_BIOS(0)) // 24C08W6 + ROM_SYSTEM_BIOS(1, "pp_99_dongle_r3a", "Parallel port dongle Rev. 3 (alt)") + ROMX_LOAD("dongle_photoply_1999_sp_r3_alt_mcu.bin", 0x000, 0x800, NO_DUMP, ROM_BIOS(1)) // AT89C2051 + ROMX_LOAD("dongle_photoply_1999_sp_r3_alt_seeprom.bin", 0x800, 0x400, CRC(9442d1d7) SHA1(4426542c4dbb3f1df65e7ba798a7d7e0d8b98838), ROM_BIOS(1)) // 24C08W6 + ROM_SYSTEM_BIOS(2, "pp_99_dongle_r2", "Parallel port dongle Rev. 2") + ROMX_LOAD("dongle_photoply_1999_sp_r2_mcu.bin", 0x000, 0x800, NO_DUMP, ROM_BIOS(2)) // AT89C2051 + ROMX_LOAD("dongle_photoply_1999_sp_r2_seeprom.bin", 0x800, 0x400, CRC(52274688) SHA1(786f7407e510b303401120b8e1b082cdb412e648), ROM_BIOS(2)) // 24C08W6 + ROM_SYSTEM_BIOS(3, "pp_99_dongle_r1", "Parallel port dongle Rev. 1") + ROMX_LOAD("dongle_photoply_1999_sp_r1_mcu.bin", 0x000, 0x800, NO_DUMP, ROM_BIOS(3)) // AT89C2051 + ROMX_LOAD("dongle_photoply_1999_sp_r1_seeprom.bin", 0x800, 0x400, CRC(fe8f14d2) SHA1(1caad3200a22e0d510238ba44e5d96f561045ec1), ROM_BIOS(3)) // 24C08W6 + + // Quantum Fireball EX3.2A + // C/H/S: 3.2 - 6256/16/63 + // PhotoPlay label: 09.02.1999 + DISK_REGION( "ide:0:hdd:image" ) + DISK_IMAGE( "photoplay99sp", 0, BAD_DUMP SHA1(887e5b8c931d6122a1c3a8eda5cb919eb162eced) ) // From an operated HDD. A clean one must be recreated from the CDs +ROM_END ROM_START(photoply) - ROM_REGION(0x20000, "bios", 0) /* motherboard bios */ - ROM_LOAD("award bootblock bios v1.0.bin", 0x000000, 0x20000, CRC(e96d1bbc) SHA1(64d0726c4e9ecee8fddf4cc39d92aecaa8184d5c) ) + ROM_REGION(0x20000, "bios", 0) // Motherboard BIOS + ROM_LOAD("award bootblock bios v1.0.bin", 0x000000, 0x20000, CRC(e96d1bbc) SHA1(64d0726c4e9ecee8fddf4cc39d92aecaa8184d5c) ) // Award Modular BIOS v4.51G - ROM_REGION(0x8000, "ex_bios", ROMREGION_ERASE00 ) /* multifunction board with a ESS AudioDrive chip, M27128A */ - ROM_LOAD("enhanced bios.bin", 0x000000, 0x4000, CRC(a216404e) SHA1(c9067cf87d5c8106de00866bb211eae3a6c02c65) ) + ROM_REGION(0x8000, "ex_bios", ROMREGION_ERASE00 ) // Multifunction board with a ESS AudioDrive chip + ROM_LOAD("enhanced bios.bin", 0x000000, 0x4000, CRC(a216404e) SHA1(c9067cf87d5c8106de00866bb211eae3a6c02c65) ) // Centos Combo I/O ROM BIOS for CI-8000/PP2000 v1.06, M27128A // ROM_RELOAD( 0x004000, 0x4000 ) // ROM_RELOAD( 0x008000, 0x4000 ) // ROM_RELOAD( 0x00c000, 0x4000 ) ROM_REGION(0x8000, "video_bios", 0 ) - ROM_LOAD("vga.bin", 0x000000, 0x8000, CRC(7a859659) SHA1(ff667218261969c48082ec12aa91088a01b0cb2a) ) + ROM_LOAD("vga.bin", 0x000000, 0x8000, CRC(7a859659) SHA1(ff667218261969c48082ec12aa91088a01b0cb2a) ) // Cirrus Logic/Quadtel CL-GD5436/46 PCI VGA BIOS v1.25 DISK_REGION( "ide:0:hdd:image" ) DISK_IMAGE( "pp201", 0, SHA1(23e1940d485d19401e7d0ad912ddad2cf2ea10b4) ) ROM_END -// bios not provided, might be different +// BIOS not provided, might be different ROM_START(photoply2k4) - ROM_REGION(0x20000, "bios", 0) /* motherboard bios */ + ROM_REGION(0x20000, "bios", 0) // Motherboard BIOS ROM_LOAD("award bootblock bios v1.0.bin", 0x000000, 0x20000, BAD_DUMP CRC(e96d1bbc) SHA1(64d0726c4e9ecee8fddf4cc39d92aecaa8184d5c) ) - ROM_REGION(0x8000, "ex_bios", ROMREGION_ERASE00 ) /* multifunction board with a ESS AudioDrive chip, M27128A */ + ROM_REGION(0x8000, "ex_bios", ROMREGION_ERASE00 ) // Multifunction board with a ESS AudioDrive chip, M27128A ROM_LOAD("enhanced bios.bin", 0x000000, 0x4000, BAD_DUMP CRC(a216404e) SHA1(c9067cf87d5c8106de00866bb211eae3a6c02c65) ) // ROM_RELOAD( 0x004000, 0x4000 ) // ROM_RELOAD( 0x008000, 0x4000 ) @@ -370,6 +428,6 @@ ROM_END -GAME( 199?, photoply, 0, photoply, photoply, photoply_state, empty_init, ROT0, "Funworld", "Photo Play 2000 (v2.01)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_UNEMULATED_PROTECTION ) -GAME( 2004, photoply2k4, 0, photoply, photoply, photoply_state, empty_init, ROT0, "Funworld", "Photo Play 2004", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_UNEMULATED_PROTECTION ) - +GAME( 1999, photoply99sp, 0, photoply_dx4_100, photoply, photoply_state, empty_init, ROT0, "Funworld", "Photo Play 1999 (Spanish)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_UNEMULATED_PROTECTION ) +GAME( 199?, photoply, 0, photoply, photoply, photoply_state, empty_init, ROT0, "Funworld", "Photo Play 2000 (v2.01)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_UNEMULATED_PROTECTION ) +GAME( 2004, photoply2k4, 0, photoply, photoply, photoply_state, empty_init, ROT0, "Funworld", "Photo Play 2004", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_UNEMULATED_PROTECTION ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/pmd85.cpp mame-0.224+dfsg.1/src/mame/drivers/pmd85.cpp --- mame-0.223+dfsg.1/src/mame/drivers/pmd85.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/pmd85.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -26,19 +26,19 @@ Notes on emulation status and to do list: ----------------------------------------- -1. V.24. -2. Tape emulation for other machines than PMD-85.1. -3. Flash video attribute. -4. External interfaces connectors (K2-K5). -5. Speaker. -6. Verify PMD-85.2A, PMD-85.3, Didaktik Alfa and Mato monitor roms. -7. Verify all Basic roms. -8. 8251 in Didaktik Alfa. -9. Colors (if any). -10. PMD-85, Didaktik Alfa 2 and Didaktik Beta (ROMs and documentation needed). -11. FDD interface (ROMs and disk images needed). -12. "Duch & Pampuch" Mato game displays scores with incorrect characters. -13. Tape save in pmd851 is badly formatted - cannot be loaded. +1. V.24. +2. Flash video attribute. +3. External interfaces connectors (K2-K5). +4. C2717PMD is marked MNW, but there's nothing to say why. +5. Verify PMD-85.2A, PMD-85.3, Didaktik Alfa and Mato monitor roms. +6. Verify all Basic roms. +7. 8251 in Didaktik Alfa. +8. Colors (if any). Seems most versions supported 4 colours via RGB connector. But, the TV modulator only carried the G line. + The video signals are developed in a forest of gates which may take a while to work out. +9. PMD-85, Didaktik Alfa 2 and Didaktik Beta (ROMs and documentation needed). +10. FDD interface (ROMs and disk images needed). +11. "Duch & Pampuch" Mato game displays scores with incorrect characters. + PMD-85 technical information ============================ @@ -183,47 +183,50 @@ Cassette -------- -The systems belong to 3 groups which are not compatible with each other. -- pmd851, alfa -- mato -- pmd852, pmd852a, pmd852b, pmd853, c2717, c2717pmd Cassettes tested with Basic - pmd852,pmd852a,pmd852b,pmd853,c2717,c2717pmd - these can save and load back their own files -- pmd851 - won't go into basic -- mato,alfa - don't come with basic? - -Software list items -- mato - not compatible -- all others - recognise headers of sw-item-tapes, but won't load? Maybe the usage is not understood properly. +- pmd851,mato,alfa - not tested yet. -- Some software items will crash the emulator, for example >mame pmd851 bdash +Getting into Basic: +- pmd852,pmd852a,pmd852b,pmd853 : In the Machine Configuration, enable Basic and Reset. +- pmd851,alfa : type BASIC 00 (or any parameter) +- mato : type BASIC +- c2717,c2717pmd : you're already in Basic. +- How to get out? Unknown. + +Loading a tape: +- In the monitor : type MGLD , where is the file number, usually 00. File numbers will be shown in the + software list usage. +- In Basic : type LOAD , where is the same as above. +- The tape can only be loaded into the environment it's meant for. Otherwise, you'll only get header information + followed by a freeze. -Header information from what I can understand -xx/z yyyyyyyy +Header information from what I can understand: xx/z yyyyyyyy +yyyyyyyy = filename xx = file number z = status code (guesses below) > - only loadable by Basic - ? - only loadable by the monitor - it gives no clue as to the exec address - P - protected? I've had no luck getting one to load -yyyyyyyy = filename + ? - only loadable by the monitor - it gives no clue as to the exec address, but should start by itself if it's + been saved correctly. + x - other codes are added by the user and have program-specific meanings. + +Software list items: Some work, some don't, and some only work on certain machines. A test with "bludiste" +(a monitor program) produced the following: +- pmd851,pmd852,pmd852a,pmd852b,alfa - loads and runs +- c2717,c2717pmd - recognises and prints the header, but then doesn't load the tape, because the machine is + stuck in Basic. +- mato,pmd853 - does nothing + +Some software items will crash MAME, for example "bdash". *******************************************************************************************************************/ #include "emu.h" #include "includes/pmd85.h" - #include "cpu/i8085/i8085.h" -#include "imagedev/cassette.h" -#include "machine/i8251.h" -#include "machine/i8255.h" -#include "machine/pit8253.h" -#include "machine/ram.h" - #include "screen.h" -#include "softlist.h" #include "speaker.h" - #include "formats/pmd_cas.h" @@ -231,7 +234,7 @@ // VIDEO EMULATION //************************************************************************** -uint32_t pmd85_state::screen_update_pmd85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t pmd85_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { for (int y = 0; y < 256; y++) { @@ -258,12 +261,12 @@ /* I/O ports */ -void pmd85_state::pmd85_io_map(address_map &map) +void pmd85_state::pmd85_io(address_map &map) { - map(0x00, 0xff).rw(FUNC(pmd85_state::pmd85_io_r), FUNC(pmd85_state::pmd85_io_w)); + map(0x00, 0xff).rw(FUNC(pmd85_state::io_r), FUNC(pmd85_state::io_w)); } -void pmd85_state::mato_io_map(address_map &map) +void pmd85_state::mato_io(address_map &map) { map(0x00, 0xff).rw(FUNC(pmd85_state::mato_io_r), FUNC(pmd85_state::mato_io_w)); } @@ -278,9 +281,7 @@ map(0x3000, 0x3fff).bankrw("bank4"); map(0x4000, 0x7fff).bankrw("bank5"); map(0x8000, 0x8fff).bankr("bank6"); - map(0x9000, 0x9fff).noprw(); map(0xa000, 0xafff).bankr("bank7"); - map(0xb000, 0xbfff).noprw(); map(0xc000, 0xffff).bankrw("bank8"); } @@ -318,7 +319,6 @@ map(0x4000, 0x7fff).bankrw("bank4"); map(0x8000, 0x8fff).bankr("bank5"); map(0x9000, 0xb3ff).bankr("bank6"); - map(0xb400, 0xbfff).noprw(); map(0xc000, 0xffff).bankrw("bank7"); } @@ -518,7 +518,7 @@ PORT_INCLUDE( pmd85 ) PORT_MODIFY( "DSW0" ) - PORT_BIT( 0x01, 0x00, IPT_UNUSED ) + PORT_BIT( 0x01, 0x01, IPT_UNUSED ) INPUT_PORTS_END @@ -623,7 +623,7 @@ /* basic machine hardware */ I8080(config, m_maincpu, XTAL(18'432'000)/9); m_maincpu->set_addrmap(AS_PROGRAM, &pmd85_state::pmd85_mem); - m_maincpu->set_addrmap(AS_IO, &pmd85_state::pmd85_io_map); + m_maincpu->set_addrmap(AS_IO, &pmd85_state::pmd85_io); config.set_maximum_quantum(attotime::from_hz(60)); @@ -647,10 +647,10 @@ *******************************************************************************/ - PIT8253(config, m_pit8253, 0); - m_pit8253->set_clk<0>(0); - m_pit8253->set_clk<1>(XTAL(18'432'000)/9); - m_pit8253->set_clk<2>(1); + PIT8253(config, m_pit, 0); + m_pit->set_clk<0>(0); + m_pit->set_clk<1>(XTAL(18'432'000)/9); + m_pit->set_clk<2>(1); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -659,13 +659,14 @@ screen.set_vblank_time(0); screen.set_size(288, 256); screen.set_visarea(0, 288-1, 0, 256-1); - screen.set_screen_update(FUNC(pmd85_state::screen_update_pmd85)); + screen.set_screen_update(FUNC(pmd85_state::screen_update)); screen.set_palette(m_palette); PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT); /* sound hardware */ SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); /* cassette */ CASSETTE(config, m_cassette); @@ -687,44 +688,44 @@ } /* internal ram */ - RAM(config, m_ram).set_default_size("64K"); + RAM(config, m_ram).set_default_size("64K").set_default_value(0x00); } void pmd85_state::pmd851(machine_config &config) { pmd85(config); - I8255(config, m_ppi8255_0, 0); - m_ppi8255_0->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_0_porta_r)); - m_ppi8255_0->in_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portb_r)); - m_ppi8255_0->in_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portc_r)); - m_ppi8255_0->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_0_porta_w)); - m_ppi8255_0->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portb_w)); - m_ppi8255_0->out_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portc_w)); - - I8255(config, m_ppi8255_1, 0); - m_ppi8255_1->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_1_porta_r)); - m_ppi8255_1->in_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portb_r)); - m_ppi8255_1->in_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portc_r)); - m_ppi8255_1->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_1_porta_w)); - m_ppi8255_1->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portb_w)); - m_ppi8255_1->out_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portc_w)); - - I8255(config, m_ppi8255_2, 0); - m_ppi8255_2->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_2_porta_r)); - m_ppi8255_2->in_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portb_r)); - m_ppi8255_2->in_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portc_r)); - m_ppi8255_2->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_2_porta_w)); - m_ppi8255_2->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portb_w)); - m_ppi8255_2->out_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portc_w)); - - I8255(config, m_ppi8255_3, 0); - m_ppi8255_3->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_3_porta_r)); - m_ppi8255_3->in_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_3_portb_r)); - m_ppi8255_3->in_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_3_portc_r)); - m_ppi8255_3->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_3_porta_w)); - m_ppi8255_3->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_3_portb_w)); - m_ppi8255_3->out_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_3_portc_w)); + I8255(config, m_ppi0, 0); + m_ppi0->in_pa_callback().set(FUNC(pmd85_state::ppi0_porta_r)); + m_ppi0->in_pb_callback().set(FUNC(pmd85_state::ppi0_portb_r)); + m_ppi0->in_pc_callback().set(FUNC(pmd85_state::ppi0_portc_r)); + m_ppi0->out_pa_callback().set(FUNC(pmd85_state::ppi0_porta_w)); + m_ppi0->out_pb_callback().set(FUNC(pmd85_state::ppi0_portb_w)); + m_ppi0->out_pc_callback().set(FUNC(pmd85_state::ppi0_portc_w)); + + I8255(config, m_ppi1, 0); + m_ppi1->in_pa_callback().set(FUNC(pmd85_state::ppi1_porta_r)); + m_ppi1->in_pb_callback().set(FUNC(pmd85_state::ppi1_portb_r)); + m_ppi1->in_pc_callback().set(FUNC(pmd85_state::ppi1_portc_r)); + m_ppi1->out_pa_callback().set(FUNC(pmd85_state::ppi1_porta_w)); + m_ppi1->out_pb_callback().set(FUNC(pmd85_state::ppi1_portb_w)); + m_ppi1->out_pc_callback().set(FUNC(pmd85_state::ppi1_portc_w)); + + I8255(config, m_ppi2, 0); + m_ppi2->in_pa_callback().set(FUNC(pmd85_state::ppi2_porta_r)); + m_ppi2->in_pb_callback().set(FUNC(pmd85_state::ppi2_portb_r)); + m_ppi2->in_pc_callback().set(FUNC(pmd85_state::ppi2_portc_r)); + m_ppi2->out_pa_callback().set(FUNC(pmd85_state::ppi2_porta_w)); + m_ppi2->out_pb_callback().set(FUNC(pmd85_state::ppi2_portb_w)); + m_ppi2->out_pc_callback().set(FUNC(pmd85_state::ppi2_portc_w)); + + I8255(config, m_ppi3, 0); + m_ppi3->in_pa_callback().set(FUNC(pmd85_state::ppi3_porta_r)); + m_ppi3->in_pb_callback().set(FUNC(pmd85_state::ppi3_portb_r)); + m_ppi3->in_pc_callback().set(FUNC(pmd85_state::ppi3_portc_r)); + m_ppi3->out_pa_callback().set(FUNC(pmd85_state::ppi3_porta_w)); + m_ppi3->out_pb_callback().set(FUNC(pmd85_state::ppi3_portb_w)); + m_ppi3->out_pc_callback().set(FUNC(pmd85_state::ppi3_portc_w)); } void pmd85_state::pmd852a(machine_config &config) @@ -744,44 +745,44 @@ pmd85(config); m_maincpu->set_addrmap(AS_PROGRAM, &pmd85_state::alfa_mem); - I8255(config, m_ppi8255_0, 0); - m_ppi8255_0->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_0_porta_r)); - m_ppi8255_0->in_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portb_r)); - m_ppi8255_0->in_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portc_r)); - m_ppi8255_0->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_0_porta_w)); - m_ppi8255_0->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portb_w)); - m_ppi8255_0->out_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portc_w)); - - I8255(config, m_ppi8255_1, 0); - m_ppi8255_1->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_1_porta_r)); - m_ppi8255_1->in_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portb_r)); - m_ppi8255_1->in_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portc_r)); - m_ppi8255_1->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_1_porta_w)); - m_ppi8255_1->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portb_w)); - m_ppi8255_1->out_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_1_portc_w)); - - I8255(config, m_ppi8255_2, 0); - m_ppi8255_2->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_2_porta_r)); - m_ppi8255_2->in_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portb_r)); - m_ppi8255_2->in_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portc_r)); - m_ppi8255_2->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_2_porta_w)); - m_ppi8255_2->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portb_w)); - m_ppi8255_2->out_pc_callback().set(FUNC(pmd85_state::pmd85_ppi_2_portc_w)); + I8255(config, m_ppi0, 0); + m_ppi0->in_pa_callback().set(FUNC(pmd85_state::ppi0_porta_r)); + m_ppi0->in_pb_callback().set(FUNC(pmd85_state::ppi0_portb_r)); + m_ppi0->in_pc_callback().set(FUNC(pmd85_state::ppi0_portc_r)); + m_ppi0->out_pa_callback().set(FUNC(pmd85_state::ppi0_porta_w)); + m_ppi0->out_pb_callback().set(FUNC(pmd85_state::ppi0_portb_w)); + m_ppi0->out_pc_callback().set(FUNC(pmd85_state::ppi0_portc_w)); + + I8255(config, m_ppi1, 0); + m_ppi1->in_pa_callback().set(FUNC(pmd85_state::ppi1_porta_r)); + m_ppi1->in_pb_callback().set(FUNC(pmd85_state::ppi1_portb_r)); + m_ppi1->in_pc_callback().set(FUNC(pmd85_state::ppi1_portc_r)); + m_ppi1->out_pa_callback().set(FUNC(pmd85_state::ppi1_porta_w)); + m_ppi1->out_pb_callback().set(FUNC(pmd85_state::ppi1_portb_w)); + m_ppi1->out_pc_callback().set(FUNC(pmd85_state::ppi1_portc_w)); + + I8255(config, m_ppi2, 0); + m_ppi2->in_pa_callback().set(FUNC(pmd85_state::ppi2_porta_r)); + m_ppi2->in_pb_callback().set(FUNC(pmd85_state::ppi2_portb_r)); + m_ppi2->in_pc_callback().set(FUNC(pmd85_state::ppi2_portc_r)); + m_ppi2->out_pa_callback().set(FUNC(pmd85_state::ppi2_porta_w)); + m_ppi2->out_pb_callback().set(FUNC(pmd85_state::ppi2_portb_w)); + m_ppi2->out_pc_callback().set(FUNC(pmd85_state::ppi2_portc_w)); } void pmd85_state::mato(machine_config &config) { pmd85(config, false); /* no uart */ m_maincpu->set_addrmap(AS_PROGRAM, &pmd85_state::mato_mem); - m_maincpu->set_addrmap(AS_IO, &pmd85_state::mato_io_map); + m_maincpu->set_addrmap(AS_IO, &pmd85_state::mato_io); - I8255(config, m_ppi8255_0, 0); - m_ppi8255_0->in_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_0_porta_r)); - m_ppi8255_0->out_pa_callback().set(FUNC(pmd85_state::pmd85_ppi_0_porta_w)); - m_ppi8255_0->in_pb_callback().set(FUNC(pmd85_state::mato_ppi_0_portb_r)); - m_ppi8255_0->out_pb_callback().set(FUNC(pmd85_state::pmd85_ppi_0_portb_w)); - m_ppi8255_0->in_pc_callback().set(FUNC(pmd85_state::mato_ppi_0_portc_r)); - m_ppi8255_0->out_pc_callback().set(FUNC(pmd85_state::mato_ppi_0_portc_w)); + I8255(config, m_ppi0, 0); + m_ppi0->in_pa_callback().set(FUNC(pmd85_state::ppi0_porta_r)); + m_ppi0->out_pa_callback().set(FUNC(pmd85_state::ppi0_porta_w)); + m_ppi0->in_pb_callback().set(FUNC(pmd85_state::mato_ppi0_portb_r)); + m_ppi0->out_pb_callback().set(FUNC(pmd85_state::ppi0_portb_w)); + m_ppi0->in_pc_callback().set(FUNC(pmd85_state::mato_ppi0_portc_r)); + m_ppi0->out_pc_callback().set(FUNC(pmd85_state::mato_ppi0_portc_w)); } void pmd85_state::c2717(machine_config &config) @@ -792,82 +793,87 @@ ROM_START(pmd851) - ROM_REGION(0x11000,"maincpu",0) - ROM_LOAD("pmd85-1.bin", 0x10000, 0x1000, CRC(ef50b416) SHA1(afa3ec0d03228adc5287a4cba905ce7ad0497dff)) + ROM_REGION(0x1000,"maincpu",0) + ROM_LOAD("pmd85-1.bin", 0x0000, 0x1000, CRC(ef50b416) SHA1(afa3ec0d03228adc5287a4cba905ce7ad0497dff)) + ROM_REGION(0x2400,"user1",0) - ROM_LOAD_OPTIONAL("pmd85-1.bas", 0x0000, 0x2400, CRC(4fc37d45) SHA1(3bd0f92f37a3f2ee539916dc75508bda37433a72)) + ROM_LOAD("pmd85-1.bas", 0x0000, 0x2400, CRC(4fc37d45) SHA1(3bd0f92f37a3f2ee539916dc75508bda37433a72)) ROM_END ROM_START(pmd852) - ROM_REGION(0x11000,"maincpu",0) - ROM_LOAD("pmd85-2.bin", 0x10000, 0x1000, CRC(d4786f63) SHA1(6facdf37bb012714244b012a0c4bd715a956e42b)) + ROM_REGION(0x1000,"maincpu",0) + ROM_LOAD("pmd85-2.bin", 0x0000, 0x1000, CRC(d4786f63) SHA1(6facdf37bb012714244b012a0c4bd715a956e42b)) + ROM_REGION(0x2400,"user1",0) - ROM_LOAD_OPTIONAL("pmd85-2.bas", 0x0000, 0x2400, CRC(fc4a3ebf) SHA1(3bfc0e9a5cd5187da573b5d539d7246358125a88)) + ROM_LOAD("pmd85-2.bas", 0x0000, 0x2400, CRC(fc4a3ebf) SHA1(3bfc0e9a5cd5187da573b5d539d7246358125a88)) ROM_END ROM_START(pmd852a) - ROM_REGION(0x11000,"maincpu",0) - ROM_LOAD("pmd85-2a.bin", 0x10000, 0x1000, CRC(5a9a961b) SHA1(7363341596367d08b9a98767c6585ce18dfd03af)) + ROM_REGION(0x1000,"maincpu",0) + ROM_LOAD("pmd85-2a.bin", 0x0000, 0x1000, CRC(5a9a961b) SHA1(7363341596367d08b9a98767c6585ce18dfd03af)) + ROM_REGION(0x2400,"user1",0) - ROM_LOAD_OPTIONAL("pmd85-2a.bas", 0x0000, 0x2400, CRC(6ff379ad) SHA1(edcaf2420cac9771596ead5c86c41116b228eca3)) + ROM_LOAD("pmd85-2a.bas", 0x0000, 0x2400, CRC(6ff379ad) SHA1(edcaf2420cac9771596ead5c86c41116b228eca3)) ROM_END ROM_START(pmd852b) - ROM_REGION(0x11000,"maincpu",0) - ROM_LOAD("pmd85-2a.bin", 0x10000, 0x1000, CRC(5a9a961b) SHA1(7363341596367d08b9a98767c6585ce18dfd03af)) + ROM_REGION(0x1000,"maincpu",0) + ROM_LOAD("pmd85-2a.bin", 0x0000, 0x1000, CRC(5a9a961b) SHA1(7363341596367d08b9a98767c6585ce18dfd03af)) + ROM_REGION(0x2400,"user1",0) - ROM_LOAD_OPTIONAL("pmd85-2a.bas", 0x0000, 0x2400, CRC(6ff379ad) SHA1(edcaf2420cac9771596ead5c86c41116b228eca3)) + ROM_LOAD("pmd85-2a.bas", 0x0000, 0x2400, CRC(6ff379ad) SHA1(edcaf2420cac9771596ead5c86c41116b228eca3)) ROM_END ROM_START(pmd853) - ROM_REGION(0x12000,"maincpu",0) - ROM_LOAD("pmd85-3.bin", 0x10000, 0x2000, CRC(83e22c47) SHA1(5f131e27ae3ec8907adbe5cd228c67d131066084)) + ROM_REGION(0x2000,"maincpu",0) + ROM_LOAD("pmd85-3.bin", 0x0000, 0x2000, CRC(83e22c47) SHA1(5f131e27ae3ec8907adbe5cd228c67d131066084)) + ROM_REGION(0x2800,"user1",0) - ROM_LOAD_OPTIONAL("pmd85-3.bas", 0x0000, 0x2800, CRC(1e30e91d) SHA1(d086040abf4c0a7e5da8cf4db7d1668a1d9309a4)) + ROM_LOAD("pmd85-3.bas", 0x0000, 0x2800, CRC(1e30e91d) SHA1(d086040abf4c0a7e5da8cf4db7d1668a1d9309a4)) ROM_END ROM_START(alfa) - ROM_REGION(0x13400,"maincpu",0) - ROM_LOAD("alfa.bin", 0x10000, 0x1000, CRC(e425eedb) SHA1(db93b5de1e16b5ae71be08feb083a2ac15759495)) - ROM_LOAD("alfa.bas", 0x11000, 0x2400, CRC(9a73bfd2) SHA1(74314d989846f64e715f64deb84cb177fa62f4a9)) + ROM_REGION(0x3400,"maincpu",0) + ROM_LOAD("alfa.bin", 0x0000, 0x1000, CRC(e425eedb) SHA1(db93b5de1e16b5ae71be08feb083a2ac15759495)) + ROM_LOAD("alfa.bas", 0x1000, 0x2400, CRC(9a73bfd2) SHA1(74314d989846f64e715f64deb84cb177fa62f4a9)) ROM_END ROM_START(mato) - ROM_REGION(0x14000,"maincpu",0) + ROM_REGION(0x4000,"maincpu",0) ROM_SYSTEM_BIOS(0, "default", "BASIC") - ROMX_LOAD("mato.bin", 0x10000, 0x4000, CRC(574110a6) SHA1(4ff2cd4b07a1a700c55f92e5b381c04f758fb461), ROM_BIOS(0)) + ROMX_LOAD("mato.bin", 0x0000, 0x4000, CRC(574110a6) SHA1(4ff2cd4b07a1a700c55f92e5b381c04f758fb461), ROM_BIOS(0)) ROM_SYSTEM_BIOS(1, "ru", "Russian") - ROMX_LOAD("mato-ru.rom", 0x10000, 0x4000, CRC(44b68be4) SHA1(0d9ea9a9380e2af011a2f0b64c534dd0eb0a1fac), ROM_BIOS(1)) + ROMX_LOAD("mato-ru.rom", 0x0000, 0x4000, CRC(44b68be4) SHA1(0d9ea9a9380e2af011a2f0b64c534dd0eb0a1fac), ROM_BIOS(1)) ROM_SYSTEM_BIOS(2, "lan", "BASIC LAN") - ROMX_LOAD("mato-lan.rom", 0x10000, 0x4000, CRC(422cddde) SHA1(2a3dacf8e3e7637109c9d267f589a00881e9a5f4), ROM_BIOS(2)) + ROMX_LOAD("mato-lan.rom", 0x0000, 0x4000, CRC(422cddde) SHA1(2a3dacf8e3e7637109c9d267f589a00881e9a5f4), ROM_BIOS(2)) ROM_SYSTEM_BIOS(3, "games", "Games v1") - ROMX_LOAD("matoh.bin", 0x10000, 0x4000, CRC(ca25880d) SHA1(38ce0b6a26d48a09fdf96863c3eaf3705aca2590), ROM_BIOS(3)) + ROMX_LOAD("matoh.bin", 0x0000, 0x4000, CRC(ca25880d) SHA1(38ce0b6a26d48a09fdf96863c3eaf3705aca2590), ROM_BIOS(3)) ROM_SYSTEM_BIOS(4, "gamesen", "Games v2 EN") - ROMX_LOAD("matogmen.rom", 0x10000, 0x4000, CRC(47e039c8) SHA1(6cc73a6b58921b33691d2751dee28428456eb222), ROM_BIOS(4)) + ROMX_LOAD("matogmen.rom", 0x0000, 0x4000, CRC(47e039c8) SHA1(6cc73a6b58921b33691d2751dee28428456eb222), ROM_BIOS(4)) ROM_SYSTEM_BIOS(5, "gamessk", "Games v2 SK") - ROMX_LOAD("matogmsk.rom", 0x10000, 0x4000, CRC(d0c9b1e7) SHA1(9e7289d971a957bf161c317e5fa76db3289ee23c), ROM_BIOS(5)) + ROMX_LOAD("matogmsk.rom", 0x0000, 0x4000, CRC(d0c9b1e7) SHA1(9e7289d971a957bf161c317e5fa76db3289ee23c), ROM_BIOS(5)) ROM_SYSTEM_BIOS(6, "games3", "Games v3") - ROMX_LOAD("matogm3.rom", 0x10000, 0x4000, CRC(9352f2c1) SHA1(b3e45c56d2800c69a0bb02febda6fa715f1afbc3), ROM_BIOS(6)) + ROMX_LOAD("matogm3.rom", 0x0000, 0x4000, CRC(9352f2c1) SHA1(b3e45c56d2800c69a0bb02febda6fa715f1afbc3), ROM_BIOS(6)) ROM_END ROM_START(c2717) - ROM_REGION(0x14000,"maincpu",0) - ROM_LOAD("c2717.rom", 0x10000, 0x4000, CRC(da1703b1) SHA1(9fb93e6cae8b551064c7175bf3b4e3113429ce73)) + ROM_REGION(0x4000,"maincpu",0) + ROM_LOAD("c2717.rom", 0x0000, 0x4000, CRC(da1703b1) SHA1(9fb93e6cae8b551064c7175bf3b4e3113429ce73)) ROM_END ROM_START(c2717pmd) - ROM_REGION(0x14000,"maincpu",0) - ROM_LOAD( "c2717-pmd32.rom", 0x10000, 0x4000, CRC(cbdd323c) SHA1(ee9fea11be8bd4f945c583b0ae5684269906d0ce)) + ROM_REGION(0x4000,"maincpu",0) + ROM_LOAD( "c2717-pmd32.rom", 0x00000, 0x4000, CRC(cbdd323c) SHA1(ee9fea11be8bd4f945c583b0ae5684269906d0ce)) ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1985, pmd851, 0, 0, pmd851, pmd85, pmd85_state, init_pmd851, "Tesla", "PMD-85.1", 0 ) -COMP( 1985, pmd852, pmd851, 0, pmd851, pmd85, pmd85_state, init_pmd852, "Tesla", "PMD-85.2", 0 ) -COMP( 1985, pmd852a, pmd851, 0, pmd852a, pmd85, pmd85_state, init_pmd852a, "Tesla", "PMD-85.2A", 0 ) -COMP( 1985, pmd852b, pmd851, 0, pmd852a, pmd85, pmd85_state, init_pmd852a, "Tesla", "PMD-85.2B", 0 ) -COMP( 1988, pmd853, pmd851, 0, pmd853, pmd85, pmd85_state, init_pmd853, "Tesla", "PMD-85.3", 0 ) -COMP( 1986, alfa, pmd851, 0, alfa, alfa, pmd85_state, init_alfa, "Didaktik Skalica", "Didaktik Alfa", 0 ) -COMP( 1985, mato, pmd851, 0, mato, mato, pmd85_state, init_mato, "Statny", "Mato", 0 ) -COMP( 1989, c2717, pmd851, 0, c2717, pmd85, pmd85_state, init_c2717, "Zbrojovka Brno", "Consul 2717", 0 ) -COMP( 1989, c2717pmd, pmd851, 0, c2717, pmd85, pmd85_state, init_c2717, "Zbrojovka Brno", "Consul 2717 (with PMD-32)", MACHINE_NOT_WORKING ) +COMP( 1985, pmd851, 0, 0, pmd851, alfa, pmd85_state, init_pmd851, "Tesla", "PMD-85.1", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, pmd852, pmd851, 0, pmd851, pmd85, pmd85_state, init_pmd852, "Tesla", "PMD-85.2", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, pmd852a, pmd851, 0, pmd852a, pmd85, pmd85_state, init_pmd852a, "Tesla", "PMD-85.2A", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, pmd852b, pmd851, 0, pmd852a, pmd85, pmd85_state, init_pmd852a, "Tesla", "PMD-85.2B", MACHINE_SUPPORTS_SAVE ) +COMP( 1988, pmd853, pmd851, 0, pmd853, pmd85, pmd85_state, init_pmd853, "Tesla", "PMD-85.3", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, alfa, pmd851, 0, alfa, alfa, pmd85_state, init_alfa, "Didaktik Skalica", "Didaktik Alfa", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, mato, pmd851, 0, mato, mato, pmd85_state, init_mato, "Statny", "Mato", MACHINE_SUPPORTS_SAVE ) +COMP( 1989, c2717, pmd851, 0, c2717, pmd85, pmd85_state, init_c2717, "Zbrojovka Brno", "Consul 2717", MACHINE_SUPPORTS_SAVE ) +COMP( 1989, c2717pmd, pmd851, 0, c2717, pmd85, pmd85_state, init_c2717, "Zbrojovka Brno", "Consul 2717 (with PMD-32)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/progolf.cpp mame-0.224+dfsg.1/src/mame/drivers/progolf.cpp --- mame-0.223+dfsg.1/src/mame/drivers/progolf.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/progolf.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,43 +13,133 @@ ========================================================================================= -Pro Golf +18 Holes Pro Golf (PCB version) Data East 1981 -PCB version (not cassette) --------------- +Hardware info by Guru -All eproms 2732 -g0-m through g6-m on top pcb. -g7-m through g9-m on bottom pcb. - -Three Proms are 82S123 or equivalents. - -gam.k11 -gbm.k4 -gcm.a14 - -Top pcb contains: ------------------ -One 6502 CPU - -Two AY-3-8910 - -One 6116 ram. - -Two 8 dip banks ------------------- - -Bottom pcb contains: --------------------- -Epoxy CPU module. - -MC6845P CRT controller. - -Two 6116 rams. - -Twenty four 8116 rams. +Top Board (Sound/Inputs) +------------------------ +GGM-Ø2 DE-0087C-0 MADE IN JAPAN +DE-0087B-0 (top side) +DE-0087A-0 (bottom side) + |---------------------------------------| + | G6-M.1B | + |-| 6502 | + | | G4-M.2A MK4118 | + | | AY3-8910 | + | | G3-M.4A | + | | AY3-8910 | + | | G2-M.6A | + |-| DSW1 | + | G1-M.8A | + | | + | G0-M.9A DSW2 | +|-| | +|1 A18 | +|8 | +|W | +|A 555 555 | +|Y | +|-|A1 TA75558 | + | C1181H VOL | + |---------------------------------------| +Notes: + 6502 Clock - 441.458333kHz [10.595/24] + AY3-8910 Clock - 1.324375MHz [10.595/8] (both) + MK4118 - MOSTEK MK4118 1kx8 SRAM (also seen 6116 and M58725 on other + PCBs which are both 2kx8 SRAM) + DSW1/2 - 8-position DIP Switch + TA75558 - Toshiba TA75558 Dual Operational Amplifier + C1181H - NEC uPC1181H Power AMP + 555 - 555 Timer + VOL - 1k Volume Pot + G* - 2732 4kx8-bit EPROM + + TOP BOARD PINOUT + ------------------------- + Parts Side Solder Side + ------+---------+-------- + GND | A1 B1 | GND + GND | A2 B2 | GND + GND | A3 B3 | GND + SPKR+| A4 B4 | SPKR- + -----+---------+----- (KEY) + RIGHT P1 | A5 B5 | RIGHT P2 + LEFT P1 | A6 B6 | LEFT P2 + UP P1 | A7 B7 | UP P2 + DOWN P1 | A8 B8 | DOWN P2 +BUTTON P1 | A9 B9 | BUTTON P2 + NC | A10 B10| NC + START P1 | A11 B11| START P2 + NC | A12 B12| NC + COIN 1| A13 B13| COIN 2 + NC | A14 B14| NC + NC | A15 B15| NC + GND | A16 B16| GND + +5V | A17 B17| +5V + +12V| A18 B18| +12V + -------+---------+------- + + +Bottom Board (CPU/Video) +------------------------ + +GGM-Ø1 DE-0086 MADE IN JAPAN +DE-0086B-0 (top side) +DE-0086A-0 (bottom side) + |-------------------------------------------------------------------| + | | + |-| |----------| | + | | | DECO | | + | | | CPU-6 | 6845P | + | | | CUSTOM | | + | | | MODULE | M58725 GBM.4K| + | | |----------| | + |-| G7-M.7A M58725 | + | | + | G8-M.9A | + | | +|-| G9-M.10A 555 | +|1 A10 GAM.11K| +|0 8116 8116 8116 8116 | +|W 8116 8116 8116 8116 | +|A 8116 8116 8116 8116 | +|Y GCM.14A 8116 8116 8116 8116 | +|-|A1 8116 8116 8116 8116 | + | 8116 8116 8116 8116 10.595MHz | + |-------------------------------------------------------------------| +Notes: + MC6845P - Motorola MC6845P CRT Controller (CRTC). Clock 662.1875kHz [10.595/16] + CPU-6 - The input base clock on several pins is 1.324375MHz [10.595/8]. + There are no other different clocks going into the CPU module. + Note the logic inside the CPU-6 module may be dividing the clock so the + actual CPU clock is unknown but a 6502 running at 1.32437MHz is highly likely. + 8116 - Fujitsu MB8116E 16kx1 DRAM (24 chips = 48kB) + M58725 - Mitsubishi M58725 2kx8 SRAM (compatible with 6116) + Gx-M* - 2732 4kx8-bit EPROM +GCM/GBM/GAM - Harris M3 7603-5 Bipolar PROM (compatible with 82S123) + 555 - 555 Timer + HSync - 15.45kHz + VSync - 57Hz + + BOTTOM BOARD PINOUT + ------------------------- + Parts Side Solder Side + ------+---------+-------- + +5V | A1 B1 | +5V + +5V | A2 B2 | +5V + +5V | A3 B3 | +5V + +12V| A4 B4 | +12V + -5V | A5 B5 | -5V + RED | A6 B6 | GREEN + BLUE| A7 B7 | SYNC + GND | A8 B8 | GND + -----+---------+----- (KEY) + GND | A9 B9 | GND + GND | A10 B10| GND +-------+---------+------- ****************************************************************************************/ #include "emu.h" @@ -82,6 +172,9 @@ DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); +protected: + virtual void video_start() override; + private: required_device m_maincpu; required_device m_audiocpu; @@ -106,8 +199,6 @@ uint8_t videoram_r(offs_t offset); void videoram_w(offs_t offset, uint8_t data); - virtual void machine_start() override; - virtual void video_start() override; void progolf_palette(palette_device &palette) const; uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -115,11 +206,6 @@ void sound_cpu(address_map &map); }; - -void progolf_state::machine_start() -{ -} - void progolf_state::video_start() { m_scrollx_hi = 0; @@ -160,7 +246,7 @@ } } - /* framebuffer is 8x8 chars arranged like a bitmap + a register that controls the pen handling. */ + // framebuffer is 8x8 chars arranged like a bitmap + a register that controls the pen handling. { count = 0; @@ -273,7 +359,7 @@ map(0x9000, 0x9000).portr("IN2").w(FUNC(progolf_state::char_vregs_w)); map(0x9200, 0x9200).portr("P1").w(FUNC(progolf_state::scrollx_hi_w)); //p1 inputs map(0x9400, 0x9400).portr("P2").w(FUNC(progolf_state::scrollx_lo_w)); //p2 inputs - map(0x9600, 0x9600).portr("IN0").w(FUNC(progolf_state::flip_screen_w)); /* VBLANK */ + map(0x9600, 0x9600).portr("IN0").w(FUNC(progolf_state::flip_screen_w)); // VBLANK map(0x9800, 0x9800).portr("DSW1"); map(0x9800, 0x9800).w("crtc", FUNC(mc6845_device::address_w)); map(0x9801, 0x9801).w("crtc", FUNC(mc6845_device::register_w)); @@ -299,7 +385,7 @@ m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } -/* verified from M6502 code */ +// verified from M6502 code static INPUT_PORTS_START( progolf ) PORT_START("IN0") PORT_BIT( 0x7f, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -327,66 +413,56 @@ PORT_START("IN2") PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW,IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, progolf_state,coin_inserted, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW,IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, progolf_state,coin_inserted, 0) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, progolf_state, coin_inserted, 0) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, progolf_state, coin_inserted, 0) PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DSW1:1,2") PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW1:3,4") PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x00) PORT_DIPSETTING( 0x08, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW2",0x40,EQUALS,0x40) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:5") PORT_DIPSETTING( 0x10, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPUNUSED( 0x20, IP_ACTIVE_HIGH ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, progolf_state,coin_inserted, 0) /* same coinage as COIN1 */ - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) + PORT_DIPUNUSED( 0x20, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("DSW1:6") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_DIPLOCATION("DSW1:7") PORT_CHANGED_MEMBER(DEVICE_SELF, progolf_state, coin_inserted, 0) // same coinage as COIN1 + PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("DSW1:8") PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW2:1") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) /* table at 0xd16e (4 * 3 bytes, LSB first) - no multiple bonus lives */ + PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW2:2,3") // table at 0xd16e (4 * 3 bytes, LSB first) - no multiple bonus lives PORT_DIPSETTING( 0x00, "10000" ) PORT_DIPSETTING( 0x02, "30000" ) PORT_DIPSETTING( 0x04, "50000" ) PORT_DIPSETTING( 0x06, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) /* code at 0xd188 */ + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DSW2:4") // code at 0xd188 PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x00, "Display Strength and Position" ) + PORT_DIPNAME( 0x10, 0x00, "Display Strength and Position" ) PORT_DIPLOCATION("DSW2:5") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "Force Coinage = A 1C/3C - B 1C/8C" ) /* SERVICE1 = 2C/1C */ + PORT_DIPNAME( 0x20, 0x00, "Force Coinage = A 1C/3C - B 1C/8C" ) PORT_DIPLOCATION("DSW2:6") // SERVICE1 = 2C/1C PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x00, "Coin Mode" ) + PORT_DIPNAME( 0x40, 0x00, "Coin Mode" ) PORT_DIPLOCATION("DSW2:7") PORT_DIPSETTING( 0x00, "Mode 1" ) PORT_DIPSETTING( 0x40, "Mode 2" ) - PORT_DIPUNUSED( 0x80, IP_ACTIVE_HIGH ) + PORT_DIPUNUSED( 0x80, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("DSW2:8") INPUT_PORTS_END -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,3), /* 512 characters */ - 3, /* 3 bits per pixel */ - { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 consecutive bytes */ -}; static GFXDECODE_START( gfx_progolf ) - GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0, 8 ) /* sprites */ + GFXDECODE_ENTRY( "gfx1", 0x0000, gfx_8x8x3_planar, 0, 8 ) // sprites GFXDECODE_END @@ -420,11 +496,11 @@ void progolf_state::progolf(machine_config &config) { - /* basic machine hardware */ - DECO_222(config, m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */ + // basic machine hardware + DECO_222(config, m_maincpu, 10.595_MHz_XTAL / 8); m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu); - M6502(config, m_audiocpu, 500000); + M6502(config, m_audiocpu, 10.595_MHz_XTAL / 24); m_audiocpu->set_addrmap(AS_PROGRAM, &progolf_state::sound_cpu); config.set_perfect_quantum(m_maincpu); @@ -433,7 +509,7 @@ soundlatch.data_pending_callback().set_inputline(m_audiocpu, 0); soundlatch.set_separate_acknowledge(true); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(57); screen.set_vblank_time(ATTOSECONDS_IN_USEC(3072)); @@ -444,24 +520,24 @@ GFXDECODE(config, m_gfxdecode, m_palette, gfx_progolf); PALETTE(config, m_palette, FUNC(progolf_state::progolf_palette), 32 * 3); - mc6845_device &crtc(MC6845(config, "crtc", 3000000/4)); /* hand tuned to get ~57 fps */ + mc6845_device &crtc(MC6845(config, "crtc", 10.595_MHz_XTAL / 16)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); - AY8910(config, "ay1", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23); + AY8910(config, "ay1", 10.595_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "mono", 0.23); - AY8910(config, "ay2", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23); + AY8910(config, "ay2", 10.595_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "mono", 0.23); } void progolf_state::progolfa(machine_config &config) { progolf(config); - /* different encrypted cpu to progolf */ - DECO_CPU6(config.replace(), m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */ + // different encrypted cpu to progolf + DECO_CPU6(config.replace(), m_maincpu, 10.595_MHz_XTAL / 8); m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu); } @@ -497,11 +573,11 @@ ROM_LOAD( "g2-m.a6", 0xd000, 0x1000, CRC(fafec36e) SHA1(70880d6f9b11505d466f36c12a43361ee2639fed) ) ROM_LOAD( "g1-m.a8", 0xe000, 0x1000, CRC(749032eb) SHA1(daa356b2c70bcd8cdd0c4df4268b6158bc8aae8e) ) ROM_LOAD( "g0-m.a9", 0xf000, 0x1000, CRC(a03c533f) SHA1(2e0006be40e32b64b1490bd339d9fc9302eee7c4) ) - // the following single byte patch gets the ball position to be correct like in the parent. TODO: verify g3-m.a4 dump + // the following single byte patch gets the ball position to be correct like in the parent. g3-m.a4 dump has been verified on multiple PCBs // ROM_FILL( 0xc14b, 0x01, 0xf0) // from: EB 07 sbc #$07 to: F0 07 beq $c154 ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "g5-m.b1", 0xf000, 0x1000, CRC(0c6fadf5) SHA1(9af2c2152b339cadab7aff0b0164d4431d2558bd) ) + ROM_LOAD( "g6-m.b1", 0xf000, 0x1000, CRC(0c6fadf5) SHA1(9af2c2152b339cadab7aff0b0164d4431d2558bd) ) ROM_REGION( 0x3000, "gfx1", 0 ) ROM_LOAD( "g7-m.a8", 0x0000, 0x1000, CRC(16b42975) SHA1(29268a8a660781ff0de77b3b1bfc16edff7be134) ) @@ -515,10 +591,7 @@ ROM_END - - - // this uses DECO222 style encryption GAME( 1981, progolf, 0, progolf, progolf, progolf_state, empty_init, ROT270, "Data East Corporation", "18 Holes Pro Golf (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -// this uses DECO CPU-6 as custom module CPU (the same as Zoar, are we sure? our Zoar has different encryption, CPU-7 style) +// this uses DECO CPU-6 as custom module CPU GAME( 1981, progolfa, progolf, progolfa, progolf, progolf_state, empty_init, ROT270, "Data East Corporation", "18 Holes Pro Golf (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/qix.cpp mame-0.224+dfsg.1/src/mame/drivers/qix.cpp --- mame-0.223+dfsg.1/src/mame/drivers/qix.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/qix.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -681,7 +681,12 @@ video(config); } - +void zookeep_state::zookeepbl(machine_config &config) +{ + qix(config); + m_maincpu->set_addrmap(AS_PROGRAM, &zookeep_state::main_map); + video(config); +} /*************************************************************************** @@ -1106,6 +1111,28 @@ ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) ) ROM_END +// the top PCB is definitely an Italian made one (same place Sidam PCBs were made). The bottom PCB (MTD-19) looks like one of those Taito PCBs made for licensees. +// there's an unpopulated IC location for an M68705 +// only ROMS 16-17, 18-19 and 26-27 had still stickers on, so the others are educated guesses +ROM_START( zookeepbl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zk-12-13.bin", 0x8000, 0x2000, CRC(b85e5200) SHA1(3f47626fe35f2e9fa893595e06ea4275a9beb10b) ) + ROM_LOAD( "zk-14-15.bin", 0xa000, 0x2000, CRC(b621a415) SHA1(7b6e595f1c797d6619e7ea128aeb67f432d64a83) ) + ROM_LOAD( "zk-16-17.bin", 0xc000, 0x2000, CRC(9e192104) SHA1(318c902debfcb49a02a3a776bf2a860685603b3c) ) + ROM_LOAD( "zk-18-19.bin", 0xe000, 0x2000, CRC(2854b69d) SHA1(3d258d57909228d13b1b557e8178b722ec297d6d) ) + + ROM_REGION( 0x12000, "videocpu", 0 ) + ROM_LOAD( "zk-5-6.bin", 0x0a000, 0x2000, CRC(467b42dc) SHA1(e92a98b56959f5ccf2a4dc4ebafa13f9074e551b) ) + ROM_LOAD( "zk-7-8.bin", 0x0c000, 0x2000, CRC(2a5571ed) SHA1(ac6947c8fb22c0c549c747cc88b1a4da7063fcf6) ) + ROM_LOAD( "zk-9-10.bin", 0x0e000, 0x2000, CRC(7430e09c) SHA1(05a2cd5a9dd06c235881e7d9b734be1d3e41de5d) ) // only ROM with differences compared to the parent + ROM_LOAD( "zk-3-4.bin", 0x10000, 0x2000, CRC(ab5a72f0) SHA1(4595a785d212464d599cfacd75ea4fc368231550) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "zk-25.bin", 0xd000, 0x1000, CRC(32e6d667) SHA1(4d693ac4a73746f17515b805382f5aeaf606da39) ) // 0xxxxxxxxxxxx = 0xFF + ROM_CONTINUE( 0xd000, 0x1000 ) + ROM_LOAD( "zk-26-27.bin", 0xe000, 0x2000, CRC(2138554c) SHA1(6fbf46e0dd3d8a0dd526064baee3d84212713b9a) ) +ROM_END + ROM_START( slither ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -1433,21 +1460,22 @@ * *************************************/ -GAME( 1981, qix, 0, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (Rev 2)", MACHINE_SUPPORTS_SAVE ) // newest set? closest to 'qix2' -GAME( 1981, qixa, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, smaller roms)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, qixb, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, larger roms)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, qixo, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 3, earlier)", MACHINE_SUPPORTS_SAVE ) // oldest set / prototype? has incorrect spelling 'deutch' and doesn't allow language selection to be changed -GAME( 1981, qix2, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix II (Tournament)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, sdungeon, 0, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon", MACHINE_SUPPORTS_SAVE ) // actually released July 1982 -GAME( 1981, sdungeona, sdungeon, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon (larger roms)", MACHINE_SUPPORTS_SAVE ) // same as above but uses larger ROMs -GAMEL(1982, elecyoyo, 0, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) -GAMEL(1982, elecyoyo2, elecyoyo, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) -GAME( 1982, kram, 0, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, kram2, kram, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, kram3, kram, kram3, kram, qix_state, init_kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zookeep, 0, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zookeep2, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zookeep3, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, slither, 0, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, slithera, slither, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, complexx, 0, qix, complexx, qix_state, empty_init, ROT270, "Taito America Corporation", "Complex X", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, qix, 0, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (Rev 2)", MACHINE_SUPPORTS_SAVE ) // newest set? closest to 'qix2' +GAME( 1981, qixa, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, smaller roms)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, qixb, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 2, larger roms)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, qixo, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix (set 3, earlier)", MACHINE_SUPPORTS_SAVE ) // oldest set / prototype? has incorrect spelling 'deutch' and doesn't allow language selection to be changed +GAME( 1981, qix2, qix, qix, qix, qix_state, empty_init, ROT270, "Taito America Corporation", "Qix II (Tournament)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, sdungeon, 0, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon", MACHINE_SUPPORTS_SAVE ) // actually released July 1982 +GAME( 1981, sdungeona, sdungeon, mcu, sdungeon, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "Space Dungeon (larger roms)", MACHINE_SUPPORTS_SAVE ) // same as above but uses larger ROMs +GAMEL(1982, elecyoyo, 0, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) +GAMEL(1982, elecyoyo2, elecyoyo, mcu, elecyoyo, qixmcu_state, empty_init, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) +GAME( 1982, kram, 0, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, kram2, kram, mcu, kram, qixmcu_state, empty_init, ROT0, "Taito America Corporation", "Kram (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, kram3, kram, kram3, kram, qix_state, init_kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zookeep, 0, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zookeep2, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zookeep3, zookeep, zookeep, zookeep, zookeep_state, empty_init, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zookeepbl, zookeep, zookeepbl, zookeep, zookeep_state, empty_init, ROT0, "bootleg", "Zoo Keeper (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, slither, 0, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, slithera, slither, slither, slither, qix_state, empty_init, ROT270, "Century II", "Slither (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, complexx, 0, qix, complexx, qix_state, empty_init, ROT270, "Taito America Corporation", "Complex X", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/qvt70.cpp mame-0.224+dfsg.1/src/mame/drivers/qvt70.cpp --- mame-0.223+dfsg.1/src/mame/drivers/qvt70.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/qvt70.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2,9 +2,9 @@ // copyright-holders: Dirk Best /**************************************************************************** - Qume QVT-70 terminal + Qume QVT-70/QVT-82 terminal - Hardware: + QVT-70: - Z80 (Z8040008VSC) - Z80 DART (Z0847006PSC) - QUME 303489-01 QFP144 @@ -22,6 +22,16 @@ - 64 background/foreground colors - 80/132 columns + QVT-82: + - Z80 (Z0840008PSC) + - Z80 DART (Z0847006PSC) + - QUME 303489-01 QFP144 + - ROM 64k * 2 + - RAM 8k UM6264AK-10L (above Z80) + 8k UM6264K-70L * 3 (below Z80) + - DS1231 + - 54.2857MHz XTAL + - Battery + ****************************************************************************/ #include "emu.h" @@ -331,12 +341,13 @@ void qvt70_state::rombank_w(uint8_t data) { -// logerror("rombank_w: %02x\n", data); + if (data & ~0x19) + logerror("rombank_w: %02x\n", data); - // 765----- unknown - // ---43--- bankswitching - // -----21- unknown - // -------0 bankswitching + // 765----- unknown + // ---43--- bankswitching + // -----21- unknown + // -------0 bankswitching switch (data & 0x19) { @@ -407,4 +418,11 @@ ROM_LOAD( "251513-04_revj.u12", 0x20000, 0x10000, CRC(3960bbd5) SHA1(9db306cef09be21ff43c081ebe11e9b46f617861) ) // 251513-04 C/S:18D0 95' REV.J (checksum matches) ROM_END +ROM_START( qvt82 ) + ROM_REGION(0x30000, "maincpu", 0) + ROM_LOAD( "304229-02d_revd.u6", 0x00000, 0x10000, CRC(597431df) SHA1(10c4669b759dd7cfd6746e54dc12807197cf841a) ) // 304229-02D QVT-82 REV. D U6 (BF7F) (checksum matches) + ROM_LOAD( "304229-01d_revd.u5", 0x20000, 0x10000, CRC(9ebd09b6) SHA1(ef9f002016d05b770e7b66d15f05fc286bd022d9) ) // 304229-01D QVT-82 REV. D U5 (462B) (checksum matches) +ROM_END + COMP( 1992, qvt70, 0, 0, qvt70, qvt70, qvt70_state, empty_init, "Qume", "QVT-70", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1993, qvt82, 0, 0, qvt70, qvt70, qvt70_state, empty_init, "Qume", "QVT-82", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/raiden_ms.cpp mame-0.224+dfsg.1/src/mame/drivers/raiden_ms.cpp --- mame-0.223+dfsg.1/src/mame/drivers/raiden_ms.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/raiden_ms.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -9,18 +9,193 @@ For this game the Modular System cage contains 8 main boards and 1 sub board. - Unmarked red board - 2 V30s, unpopulated M68000 socket + 6 ROMs + RAMs. - MOD-6/1 - RAMs, 20 MHz XTAL and unpopulated M68000 socket. + 8086/1 red board - 2 V30s, M68000 socket for connecting to board 6/1 + 6 ROMs + RAMs. + MOD-6/1 - RAMs, 20 MHz XTAL and M68000 socket used for connecting to board 8086/1. MOD 21/1 - 24 MHz XTAL. MOD 1/5 - Sound board (Z80, 2xYM2203C). 2 8-dips banks + small sub board with OKI M5205. MOD 51/3 - Sprite board, has logic + 4 sprite ROMs. - MOD 4/3 - Tilemap board, has logic + 4 tilemap ROMs, long thin sub-board (CAR-0484/1 SOLD) with no chips, just routing along one edge. - MOD 4/3 - Tilemap board, has logic + 4 tilemap ROMs, long thin sub-board (CAR-0484/1 SOLD) with no chips, just routing along one edge. - MOD 4/3 - Tilemap board, has logic + 4 tilemap ROMs, long thin sub-board (CAR-0484/1 SOLD) with no chips, just routing along one edge. + MOD 4/3 - Tilemap board, has logic + 4 tilemap ROMs, long thin sub-board (CAR-0484/1) for terminating the connector (it's not used). + MOD 4/3 - Tilemap board, has logic + 4 tilemap ROMs, long thin sub-board (CAR-0484/1) for terminating the connector (it's not used). + MOD 4/3 - Tilemap board, has logic + 4 tilemap ROMs, long thin sub-board (CAR-0484/1) for terminating the connector (it's not used). PCBs pictures and dip listing are available at: http://www.recreativas.org/modular-system-raiden-4315-gaelco-sa -*/ +Board 6/1 Board 21/1 + _____________________________________________ ______________________________________________ + | _______________ __|_ | | + | | | | | | | + | | HM62256LP-12 | | | | ________ _______ ________ | + | |______________| | | | |_EMPTY_| |_EMPTY_| |_EMPTY_| | + | _______ ________________ ________ | | | | + | 74LS367AN | | T74LS138B1 | | | | + | | EMPTY | | | | | + | |_______________| | | | ________ _______ ________ | + | _______ ________________ _______ | | | |74F74N_| 74LS393PC 74LS393PC | + | 74LS367AN | | 74LS245N | | | | + | | EMPTY | | | | | + | |_______________| | | | | + | ________________ | | | ________ ________ ________ | + | _______ | | _______ | | | 74LS7273N |82S129_| |82S129_| | + | 74LS138N | EMPTY | 74LS374N | | | P0202 211 | + | |_______________| | | | | + | _______________ | | | | + | _______ | | _______ |___| | ________ _______ ________ | + | GAL16V8 | HM62256LP-12 | 74LS245N | | 74LS74AN XTAL SN74LS367AN | + | 686 |______________| | | 24.000 MHz | + | ________________ | | | + | _______ | | _______ | | ________ _______ ________ | + | 74LS174N | EMPTY | 74LS374N | __ |_ 74LS32PC 74LS368AB UM2148-1 | + | |_______________| | | | | + | ________________ | | | | + | | | | | | ________ _______ ________ | + | _______ | EMPTY | _______ | | | 74LS157N 74F112PC UM2148-1 | + | GAL16V8 |_______________| T74LS138B1 | | | | + | 645B* ________________ | | | | + | | | | | | ________ _______ ________ | + | | EMPTY | | | | 74LS148N 74LS368AB UM2148-1 | + | |_______________| _______ | | | | + | __________________________ 74LS32B1 | | | | + | | 68000 SOCKET BUT | | | | ________ _______ ________ ________ | + | | CONNECTED TO CPU PCB | _______ | | | 74LS298N 74LS298N 74LS298N 74LS174PC | + | |_________________________| 74LS20N | | | | + | | | | | + | _______ ______ _______ _______ | | | ________ _______ ________ ________ | + | |74S74N XTAL 74LS368AB1 74LS132N | | | 74LS245N 74LS245N |74LS08B 74LS174PC | + | 20.000MHz | |___| | + |____________________________________________| |_____________________________________________| + + Sound Board (1/5) + ______________________________________________ + | | + | ________ ________ ________ | + | 74LS107N |74LS32N| |_EMPTY_| | + | | + | ________ __________________ | + | 74LS368AB1 | | | + | | EMPTY | | + | ________ |_________________| | + | 74LS74AN __________________ | + | | Z8400BB1 | | + | ________ | Z80 B CPU | ________ | + | 74HCT157E |_________________| |LM324AN| | + | ________________ | + | ________ | | __ | + 110->N82S123N | RD 01 | |D|| + | ________ |_______________| |I|| + | 74HCT157E ________________ |P|| SOUND SUB + | __________ | | _____ _____ |S|| __________________ + | | || LH5164D-10L |Y3014B Y3014B|-|| | ______ | + | | SOUND ||_______________| |D|| | LM358N ___ | + | | SUB | |I|| | .......... | | | + | | | |P|| | |OKI | + __|_|_________|__________________ |S|| | .......... |M5205 + | | | YAMAHA | |_|| | ________ |__| | + | | | YM2203C | | | 74LS377P | + | | |_________________| | |_________________| + | | | + | | _______ ________ | + | | |EMPTY_| 74LS74AN | + | | | + | | | + | | __________________ _____ | + | | _______ | YAMAHA | TDA2003 | + | | |EMPTY| | YM2203C | | + | | |_________________| | + | | | + | | _________ _________ | + | | 74LS244B1 74LS244B1 | + | | | + |___| __________________________ | + |__________| |_|_|_|_|_|_|_|_|_|_|_| |________| + PRE-JAMMA + + CPU PCB (8086/1) Board 51/3 + ______________________________________________ _____________________________________________ + | ____________ ____________ | | | + ||RD601B | ________ |NEC D70116C-10 | __________ ________ ________ ________ | + ||____________|SN74LS373N |_V30________|| | |RD504 | 74LS299N 74LS169BN CY7C149| | + | ____________ ____________ | | |_________| ________ ________ ________ | + ||RD601B | ________ |NEC D70116C-10 | 74LS169BN 74LS169BN CY7C149| | + ||____________|SN74LS373N |_V30________|| | | + | ___________ ___________ | | __________ ________ ________ ________ | + | |RD603 | ________ |RD605B || | |RD503 | 74LS158A 74LS169BN 82S129N <- 502 + | |___________|SN74LS373N |___________|| | |_________| ________ ________ ________ | + | ___________ ________ ___________ | | 74LS299N 74LS169BN 74LS244N | + | |RD604 |SN74LS373N |RD606B || | | + | |___________| |___________|| | __________ ________ ________ ________ | + | ___________ ________ ________ __________ | | |RD502 | 74LS299N 74LS169BN 74LS244N | + | |SRM20256LC |SN74LS373N 74LS00N |D4464-15L || | |_________| ________ ________ ________ | + | |___________| ________ ________ |__________|| | 74LS20B1 |CY7C149 74LS298B1 | + | ___________ SN74LS373N 74LS368AN __________ | | | + | |SRM20256LC | ________ ________ |D4464-15L || | __________ ________ ________ ________ | + | |___________| |74LS32N 74LS139N |__________|| | |RD501 | 74LS299N |CY7C149 74LS298B1 | + | | | |_________| | + | ________ ________ ________ ________ | | ________ ________ ________ ________ __ | + | 74LS245N 74LS157N 74LS157N 74LS245N | | 74LS273B1 |74LS00N 74LS86B1 74LS244N | || + | ________ ________ ________ ________ | | | || + | 74LS245N 74LS157N 74LS157N 74LS245N | _|_ ________ ________ ________ ________ |V|| + | ______________________ ________ | | | |74LS08N 74F158APC 74LS74B1 74LS20B1 |O|| + | | 68000 SOCKET BUT | GAL16V8 <- 645C | | |I|| + | | CONNECTED TO PCB 6/1 | ________ | | | ________ ________ ________ ________ |D|| + | |______________________| PALCE16V8 <- 645D 503-> GAL16V8 74LS393B1 74LS368AB1 74LS377N|E|| + |______________________________________________| | | |D|| + | | ________ ________ ________ ________ | || + | | 74LS138N 74LS283N UM2148-2 |_EMPTY_| | || + | | | || + | | ________ ________ ________ ________ | || + | | 74LS175B1 74LS283N UM2148-2 74LS273B1 | || + | | | || + | | ________ ________ ________ ________ |_|| + | | 74LS298B1 74LS157N 74LS157N 74LS273B1 | + | | | + | | ________ ________ ________ ________ | + | | 74LS158P 74LS169BN 74LS169BN 74LS245B1 | + |__| | + |____________________________________________| + + Board 4/3 (B) Board 4/3 (A) Board 4/3 + _____________________________________________ _____________________________________________ _____________________________________________ + | | | | | | + | ________ ________ ________ ________ | | ________ ________ ________ ________ | | ________ ________ ________ ________ | + | 74LS00PC |74S20N| 74LS244N 74LS163A __ | | 74LS00PC |74S20N| 74LS244N 74LS163A __ | | 74LS00PC |74S20N| 74LS244N 74LS163A __ | + | | || | | || | | || + | | || | | || | | || + | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || + | PAL16R8A 74LS163A 74LS373PC 74LS163A | || | PAL16R8A 74LS163A 74LS373PC 74LS163A | || | PAL16R8A 74LS163A 74LS373PC 74LS163A | || + | PC403 | || | 403 | || | P0403 | || + | | || | | || | | || + | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || + | 74LS138PC 74LS283N 74LS273PC 74LS163A | || | 74LS138PC 74LS283N 74LS273PC 74LS163A | || | 74LS138B1 74LS283N 74LS273PC 74LS163A | || + | | || | | || | | || + | | || | | || | | || + | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || + | 74LS393N 74LS283N 74LS273N 74LS153PC | || | 74LS393N 74LS283N 74LS273N 74LS153 | || | 74LS393N 74LS283N 74LS273N 74LS153PC | || + | | || | | || | | || + | | || | | || | | || + | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || + | 74LS86PC 74LS299N |RD4B4 | 74LS153PC| || | 74LS86PC 74LS299N |RD4A4 | 74LS153 | || | 74LS86PC 74LS299 |RD401 | 74LS153N | || + | |_______| | || | |_______| | || | |_______| | || + | | || | | || | | || + | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || | ________ ________ ________ ________ | || +_|_ 74LS86PC 74LS299N |RD4B3 | 74LS153PC|V|| _|_ 74LS86PC 74LS299N |RD4A3 | 74LS153 |V|| _|_ 74LS86PC 74LS299 |RD402 | 74LS153N |V|| +| | |_______| |O|| | | |_______| |O|| | | |_______| |O|| +| | |I|| | | |I|| | | |I|| +| | ________ ________ ________ ________ |D|| | | ________ ________ ________ ________ |D|| | | ________ ________ ________ ________ |D|| +| | 74LS04 74LS299N |RD4B2 | 74LS153PC|E|| | | 74LS04 74LS299N |RD4A2 | 74LS153 |E|| | | 74LS04 74LS299 |RD403 | 74LS153N |E|| +| | |_______| |D|| | | |_______| |D|| | | |_______| |D|| +| | | || | | | || | | | || +| | ________ ________ ________ ________ | || | | ________ ________ ________ ________ | || | | ________ ________ ________ ________ | || +| | 74LS245P 74LS299N |RD4B1 | 74LS153PC| || | | 74LS245P 74LS299N |RD4A1 | 74LS153 | || | | 74LS245P 74LS299 |RD4A4 | 74LS153N | || +| | |_______| | || | | |_______| | || | | |_______| | || +| | | || | | | || | | | || +| | ________ ________ ________ ________ | || | | ________ ________ ________ ________ | || | | ________ ________ ________ ________ | || +| | 74LS32PC 74LS158P |D4364C | 74LS153PC| || | | 74LS32PC 74LS158P |HM32064| 74LS153 | || | | 74LS32B1 74LS158N |SRM2064| 74LS153N | || +| | |15L____| | || | | |5______| | || | | |C15____| | || +| | |_|| | | |_|| | | |_|| +|__| | |__| | |__| | + |____________________________________________| |____________________________________________| |____________________________________________| + +*/ #include "emu.h" #include "cpu/nec/nec.h" @@ -588,4 +763,4 @@ ROM_LOAD( "msraid_6-1-8086-1_645d_gal16v8.u27", 0x000, 0x117, NO_DUMP ) ROM_END -GAME( 199?, raidenm, raiden, raidenm, raidenm, raiden_ms_state, init_raidenm, ROT270, "bootleg (Gaelco / Ervisa)", "Raiden (Modular System)", MACHINE_IS_SKELETON ) +GAME( 1990, raidenm, raiden, raidenm, raidenm, raiden_ms_state, init_raidenm, ROT270, "bootleg (Gaelco / Ervisa)", "Raiden (Modular System)", MACHINE_NOT_WORKING ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/renegade.cpp mame-0.224+dfsg.1/src/mame/drivers/renegade.cpp --- mame-0.223+dfsg.1/src/mame/drivers/renegade.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/renegade.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -9,55 +9,55 @@ (c)1986 Technos Japan Nekketsu Kouha Kunio Kun (bootleg) +Renegade (bootleg) driver by Phil Stroffolino, Carlos A. Lozano, Rob Rosenbrock to enter test mode, hold down P1+P2 and press reset NMI is used to refresh the sprites -IRQ is used to handle coin inputs +IRQ is used to poll the coin and service inputs +coin counter outputs are connected directly to coin inputs (via 74LS04 inverter gates IC55, IC43) +no coin lockout Known issues: -- Knockdown samples farts (coming from YM3526 DAC); -- Static ADPCM sound, end trigger not understood. - Most likely ends when specific data format is encountered during playback - cfr. jantotsu.cpp; -- Verify irq sources; - Unemulated partial update bg scrolling, which should effectively add layer tearing at line ~12 according to the refs. Scrolling currently triggers at line 6 with current timings so we are quite off. Additionally scrolling updates every other frame so simply using partial updates won't cope with it; -- None of the refs has the top 8 pixels shown but 256x232 seems unlikely. - Verify what it shows on real HW, should be either garbage or vblank or - border color; -- Verify if coin counter is really tied to $3807; -Memory Map (Preliminary): +Non-emulation issues: (these are confirmed accurate, present on real pcb) +- Knockdown samples farts (coming from YM3526 DAC) +- Static ADPCM sound +- Active video period is 238 lines but last 7 lines are unused + + +Memory Map: Working RAM - $24 used to mirror bankswitch state - $25 coin trigger state - $26 #credits (decimal) - $27 - $28 partial credits - $2C - $2D sprite refresh trigger (used by NMI) - $31 live/demo (if live, player controls are read from input ports) - $32 indicates 2 player (alternating) game, or 1 player game - $33 active player - $37 stage number - $38 stage state (for stages with more than one part) - $40 game status flags; 0x80 indicates time over, 0x40 indicates player dead - $220 player health - $222 - $223 stage timer - $48a - $48b horizontal scroll buffer - $511 - $690 sprite RAM buffer - $693 num pending sound commands - $694 - $698 sound command queue + $24 used to mirror bankswitch state + $25 coin trigger state + $26 #credits (decimal) + $27 - $28 partial credits + $2C - $2D sprite refresh trigger (used by NMI) + $31 live/demo (if live, player controls are read from input ports) + $32 indicates 2 player (alternating) game, or 1 player game + $33 active player + $37 stage number + $38 stage state (for stages with more than one part) + $40 game status flags; 0x80 indicates time over, 0x40 indicates player dead + $220 player health + $222 - $223 stage timer + $48a - $48b horizontal scroll buffer + $511 - $690 sprite RAM buffer + $693 num pending sound commands + $694 - $698 sound command queue -$1002 #lives +$1002 #lives $1014 - $1015 stage timer - separated digits $1017 - $1019 stage timer: (ticks,seconds,minutes) -$101a timer for palette animation +$101a timer for palette animation $1020 - $1048 high score table $10e5 - $10ff 68705 data buffer @@ -80,33 +80,33 @@ $3804r receive data from 68705 $3805w bankswitch -$3806w watchdog? -$3807w coin counter +$3806w nmi clear +$3807w irq clear -$3800r 'player1' - xx start buttons - xx fire buttons - xxxx joystick state - -$3801r 'player2' - xx coin inputs - xx fire buttons - xxxx joystick state - -$3802r 'DIP2' - x unused? - x vblank - x 0: 68705 is ready to send information - x 1: 68705 is ready to receive information - xx 3rd fire buttons for player 2,1 - xx difficulty - -$3803r 'DIP1' - x screen flip - x cabinet type - x bonus (extra life for high score) - x starting lives: 1 or 2 - xxxx coins per play +$3800r player 1 controls +xx start buttons + xx fire buttons + xxxx joystick state + +$3801r player 2 controls +xx coin inputs + xx fire buttons + xxxx joystick state + +$3802r dipswitch 2 + misc +x service input + x vblank (reads state of nmi flipflop) + x 0: 68705 is ready to send information + x 1: 68705 is ready to receive information + xx 3rd fire buttons for player 2,1 + xx difficulty + +$3803r dipswitch 1 +x screen flip + x cabinet type + x bonus (extra life for high score) + x starting lives: 1 or 2 + xxxx coins per play ROM $4000 - $7fff bankswitched ROM @@ -128,15 +128,22 @@ /**************************************************************************/ /* ADPCM sound ** -** Inferred from the 6809 code and analogy with ddragon -** NMI at end of sample is not needed in order for -** playback to work, but seems to be what the code expects +** oki m5205 s/w selectable 4/8KHz +** 12x speech samples of 0x2000*2 samples each (approx 2.5 seconds) +** 4x chained 4-bit binary counters clock out the rom data (2x 74LS393, IC48/IC46, 2 counters per chip) +** 74LS74A @ IC45 is the nmi control flipflop, nmi = Q, m5205 and counter chain shared reset = /Q +** 6809 wr to 3000-37ff asserts nmi (ff CLR pin) +** 6809 wr to 1800-1fff clears nmi, releases m5205/counter shared reset line (ff SET pin) +** 6809 wr to 2000-27ff selects 1 of 3 sample roms, sets upper 2 address lines, and sets m5205 sample rate +** counter asserts nmi on rollover (sample playback finished) (ff CLK pin, ff D = gnd) +** main system reset line is ANDed (74LS08 IC11) with ff CLR pin such that nmi is asserted on system reset */ void renegade_state::adpcm_start_w(uint8_t data) { m_msm->reset_w(0); m_adpcm_playing = true; + m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); } void renegade_state::adpcm_addr_w(uint8_t data) @@ -144,36 +151,38 @@ // table at $CB52 in audiocpu program: // 38 38 39 3A 3B 34 35 36 37 2C 2D 2E 2F // - // bits 2-4 are active-low chip select; bit 5 is always set - // (chip select for an unpopulated fourth ROM?) + // bits 2-4 are active-low chip select switch (data & 0x1c) { - case 0x18: m_adpcm_pos = 0 * 0x8000 * 2; break; // 110 -> ic33 - case 0x14: m_adpcm_pos = 1 * 0x8000 * 2; break; // 101 -> ic32 - case 0x0c: m_adpcm_pos = 2 * 0x8000 * 2; break; // 011 -> ic31 - default: m_adpcm_pos = m_adpcm_end = 0; return; // doesn't happen + case 0x18: m_adpcm_pos = 0 * 0x8000 * 2; break; // 110 -> ic33 + case 0x14: m_adpcm_pos = 1 * 0x8000 * 2; break; // 101 -> ic32 + case 0x0c: m_adpcm_pos = 2 * 0x8000 * 2; break; // 011 -> ic31 + default: m_adpcm_pos = m_adpcm_end = 0; return; // doesn't happen } // bits 0-1 are a13-a14 m_adpcm_pos |= (data & 0x03) * 0x2000 * 2; // a0-a12 are driven by a binary counter; playback ends when it rolls over m_adpcm_end = m_adpcm_pos + 0x2000 * 2; + // bit 5 selects 8 or 4 KHz m5205 sample rate (connected to the S1 pin, S2 pin is gnd) + m_msm->playmode_w(BIT(data, 5) ? msm5205_device::S48_4B : msm5205_device::S96_4B); } void renegade_state::adpcm_stop_w(uint8_t data) { m_msm->reset_w(1); m_adpcm_playing = false; + m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } WRITE_LINE_MEMBER(renegade_state::adpcm_int) { - if (!m_adpcm_playing) return; + if (!m_adpcm_playing || !state) return; if (m_adpcm_pos >= m_adpcm_end) { m_msm->reset_w(1); m_adpcm_playing = false; - m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); + m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } else { @@ -234,9 +243,14 @@ { int scanline = param; - // vblank irq? - if (scanline == 240) + // nmi 8 lines before vsync + if (scanline == 265) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); + + // irq 16 clks per frame: once every 16 lines, but increases to 24 lines during vblank + // (lines 16,40,56,72,88,104,120,136,152,168,184,200,216,232,248,264) + if (scanline == 0x10 || (scanline > 0x20 && (scanline & 0xf) == 8)) + m_maincpu->set_input_line(0, ASSERT_LINE); } void renegade_state::nmi_ack_w(uint8_t data) @@ -246,13 +260,7 @@ void renegade_state::irq_ack_w(uint8_t data) { - if (data != 0xff) - { - // guess: trigger a 1->0 transition on irq ack - machine().bookkeeping().coin_counter_w(0, 1); - machine().bookkeeping().coin_counter_w(0, 0); - } - //m_maincpu->set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(0, CLEAR_LINE); } @@ -287,18 +295,18 @@ void renegade_state::renegade_sound_map(address_map &map) { map(0x0000, 0x0fff).ram(); - map(0x1000, 0x1000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); - map(0x1800, 0x1800).w(FUNC(renegade_state::adpcm_start_w)); - map(0x2000, 0x2000).w(FUNC(renegade_state::adpcm_addr_w)); - map(0x2800, 0x2801).rw("ymsnd", FUNC(ym3526_device::read), FUNC(ym3526_device::write)); - map(0x3000, 0x3000).w(FUNC(renegade_state::adpcm_stop_w)); -// map(0x2000, 0x7fff) read in service mode during sound test + map(0x1000, 0x17ff).r(m_soundlatch, FUNC(generic_latch_8_device::read)); + map(0x1800, 0x1fff).w(FUNC(renegade_state::adpcm_start_w)); + map(0x2000, 0x27ff).w(FUNC(renegade_state::adpcm_addr_w)); + map(0x2800, 0x2fff).rw("ymsnd", FUNC(ym3526_device::read), FUNC(ym3526_device::write)); + map(0x3000, 0x37ff).w(FUNC(renegade_state::adpcm_stop_w)); + map(0x3800, 0x7fff).nopr(); // misc reads in service mode during sound test map(0x8000, 0xffff).rom(); } INPUT_CHANGED_MEMBER(renegade_state::coin_inserted) { - m_maincpu->set_input_line(0, newval ? CLEAR_LINE : ASSERT_LINE); + machine().bookkeeping().coin_counter_w(param ? 1 : 0, oldval); } @@ -321,7 +329,7 @@ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Left Attack") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Jump") PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, renegade_state, coin_inserted, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, renegade_state, coin_inserted, 0) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, renegade_state, coin_inserted, 1) PORT_START("DSW2") /* DIP2 */ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") @@ -333,7 +341,7 @@ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Right Attack") PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(renegade_state, mcu_status_r) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, renegade_state, coin_inserted, 0) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_START("DSW1") /* DIP1 */ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2") @@ -496,6 +504,7 @@ m_rombank->set_entry(0); m_msm->reset_w(1); m_adpcm_playing = 0; + m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } @@ -506,14 +515,14 @@ m_maincpu->set_addrmap(AS_PROGRAM, &renegade_state::renegade_map); TIMER(config, "scantimer").configure_scanline(FUNC(renegade_state::interrupt), "screen", 0, 1); - MC6809(config, m_audiocpu, 12000000/2); // HD68A09P + MC6809(config, m_audiocpu, 12000000/2); /* HD68A09P 6 MHz (measured) */ m_audiocpu->set_addrmap(AS_PROGRAM, &renegade_state::renegade_sound_map); /* IRQs are caused by the main CPU */ - TAITO68705_MCU(config, m_mcu, 12000000/4); // ? + TAITO68705_MCU(config, m_mcu, 12000000/4); /* 3 MHz (measured) */ /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(12000000/2, 384, 0, 256, 272, 0, 240); // assume same as ddragon.cpp + m_screen->set_raw(12000000/2, 384, 0, 256, 272, 19, 257); m_screen->set_screen_update(FUNC(renegade_state::screen_update)); m_screen->set_palette("palette"); @@ -526,13 +535,12 @@ GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, M6809_IRQ_LINE); - ym3526_device &ymsnd(YM3526(config, "ymsnd", 12000000/4)); + ym3526_device &ymsnd(YM3526(config, "ymsnd", 12000000/4)); /* 3 MHz (measured) */ ymsnd.irq_handler().set_inputline(m_audiocpu, M6809_FIRQ_LINE); ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); - MSM5205(config, m_msm, 12000000/32); - m_msm->vck_legacy_callback().set(FUNC(renegade_state::adpcm_int)); - m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8kHz */ + MSM5205(config, m_msm, 12000000/32); /* 375 KHz (measured) */ + m_msm->vck_callback().set(FUNC(renegade_state::adpcm_int)); m_msm->add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -709,7 +717,7 @@ -GAME( 1986, renegade, 0, renegade, renegade, renegade_state, empty_init, ROT0, "Technos Japan (Taito America license)", "Renegade (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, renegadeb, renegade, kuniokunb, renegade, renegade_state, empty_init, ROT0, "bootleg", "Renegade (US bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, kuniokun, renegade, renegade, renegade, renegade_state, empty_init, ROT0, "Technos Japan", "Nekketsu Kouha Kunio-kun (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, kuniokunb, renegade, kuniokunb, renegade, renegade_state, empty_init, ROT0, "bootleg", "Nekketsu Kouha Kunio-kun (Japan bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, renegade, 0, renegade, renegade, renegade_state, empty_init, ROT0, "Technos Japan (Taito America license)", "Renegade (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, renegadeb, renegade, kuniokunb, renegade, renegade_state, empty_init, ROT0, "bootleg", "Renegade (US bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, kuniokun, renegade, renegade, renegade, renegade_state, empty_init, ROT0, "Technos Japan", "Nekketsu Kouha Kunio-kun (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, kuniokunb, renegade, kuniokunb, renegade, renegade_state, empty_init, ROT0, "bootleg", "Nekketsu Kouha Kunio-kun (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/s11a.cpp mame-0.224+dfsg.1/src/mame/drivers/s11a.cpp --- mame-0.223+dfsg.1/src/mame/drivers/s11a.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/s11a.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -16,7 +16,9 @@ hold one of the trough switches (usually the left) and the ball shooter switch for about 1 second. Then you are able to start a game. For Pinbot, you must hold L and V for a second, then press start. - For Millionaire, you must hold [ and ] for a second, then start. + For Millionaire, you must hold [ and ] for a second, then press start. + For Fire!, you must hold U, I, O for a second, then press start. + For F-14, unknown. It seems likely it would be D, F, G, H, or D, F, G but this doesn't seem to work. The machine may be EXTREMELY picky about seeing all 4 balls pass the 4 trough sensors in the expected order before it thinks they are present *****************************************************************************************/ @@ -30,28 +32,6 @@ #include "s11a.lh" -void s11a_state::s11a_main_map(address_map &map) -{ - map(0x0000, 0x0fff).ram().share("nvram"); - map(0x2100, 0x2103).mirror(0x00fc).rw(m_pia21, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids - map(0x2200, 0x2200).mirror(0x01ff).w(FUNC(s11a_state::sol3_w)); // solenoids - map(0x2400, 0x2403).mirror(0x03fc).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps - map(0x2800, 0x2803).mirror(0x03fc).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display - map(0x2c00, 0x2c03).mirror(0x03fc).rw(m_pia2c, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // alphanumeric display - map(0x3000, 0x3003).mirror(0x03fc).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs - map(0x3400, 0x3403).mirror(0x0bfc).rw(m_pia34, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // widget - map(0x4000, 0xffff).rom(); -} - -void s11a_state::s11a_audio_map(address_map &map) -{ - map(0x0000, 0x07ff).mirror(0x0800).ram(); - map(0x1000, 0x1fff).w(FUNC(s11a_state::bank_w)); - map(0x2000, 0x2003).mirror(0x0ffc).rw(m_pias, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x8000, 0xbfff).bankr("bank0"); - map(0xc000, 0xffff).bankr("bank1"); -} - static INPUT_PORTS_START( s11a ) PORT_START("SW.0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) // always plumb-bob tilt @@ -166,11 +146,11 @@ s11_state::init_s11(); } -void s11a_state::s11a(machine_config &config) +void s11a_state::s11a_base(machine_config &config) { /* basic machine hardware */ M6808(config, m_maincpu, XTAL(4'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &s11a_state::s11a_main_map); + m_maincpu->set_addrmap(AS_PROGRAM, &s11_state::s11_main_map); MCFG_MACHINE_RESET_OVERRIDE(s11a_state, s11a) INPUT_MERGER_ANY_HIGH(config, m_mainirq).output_handler().set(FUNC(s11_state::main_irq)); INPUT_MERGER_ANY_HIGH(config, m_piairq).output_handler().set(FUNC(s11_state::pia_irq)); @@ -226,7 +206,6 @@ PIA6821(config, m_pia34, 0); m_pia34->writepa_handler().set(FUNC(s11_state::pia34_pa_w)); m_pia34->writepb_handler().set(FUNC(s11_state::pia34_pb_w)); - m_pia34->ca2_handler().set(m_bg, FUNC(s11c_bg_device::resetq_w)); m_pia34->cb2_handler().set(FUNC(s11_state::pia34_cb2_w)); m_pia34->irqa_handler().set(m_piairq, FUNC(input_merger_device::in_w<11>)); m_pia34->irqb_handler().set(m_piairq, FUNC(input_merger_device::in_w<12>)); @@ -236,13 +215,13 @@ /* Add the soundcard */ M6802(config, m_audiocpu, XTAL(4'000'000)); m_audiocpu->set_ram_enable(false); - m_audiocpu->set_addrmap(AS_PROGRAM, &s11a_state::s11a_audio_map); + m_audiocpu->set_addrmap(AS_PROGRAM, &s11_state::s11_audio_map); INPUT_MERGER_ANY_HIGH(config, m_audioirq).output_handler().set_inputline(m_audiocpu, M6802_IRQ_LINE); SPEAKER(config, "speaker").front_center(); - MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); + MC1408(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); - vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, m_dac, 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, m_dac, -1.0, DAC_VREF_NEG_INPUT); SPEAKER(config, "speech").front_center(); HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, "speech", 0.50); @@ -251,19 +230,35 @@ m_pias->readpa_handler().set(FUNC(s11_state::sound_r)); m_pias->set_port_a_input_overrides_output_mask(0xff); m_pias->writepa_handler().set(FUNC(s11_state::sound_w)); - m_pias->writepb_handler().set("dac", FUNC(dac_byte_interface::data_w)); + m_pias->writepb_handler().set(m_dac, FUNC(dac_byte_interface::data_w)); m_pias->ca2_handler().set(m_hc55516, FUNC(hc55516_device::clock_w)); m_pias->cb2_handler().set(m_hc55516, FUNC(hc55516_device::digit_w)); m_pias->irqa_handler().set(m_audioirq, FUNC(input_merger_device::in_w<0>)); m_pias->irqb_handler().set(m_audioirq, FUNC(input_merger_device::in_w<1>)); +} +void s11a_state::s11a(machine_config &config) +{ + s11a_base(config); /* Add the background music card */ - SPEAKER(config, "bg").front_center(); + SPEAKER(config, "bgspk").front_center(); S11_BG(config, m_bg); + m_pia34->ca2_handler().set(m_bg, FUNC(s11_bg_device::resetq_w)); + m_bg->pb_cb().set(m_pia34, FUNC(pia6821_device::portb_w)); + m_bg->cb2_cb().set(m_pia34, FUNC(pia6821_device::cb1_w)); + m_bg->add_route(ALL_OUTPUTS, "bgspk", 1.0); +} + +void s11a_state::s11a_obg(machine_config &config) +{ + s11a_base(config); + /* Add the older-style background music card */ + SPEAKER(config, "bgspk").front_center(); + S11_OBG(config, m_bg); + m_pia34->ca2_handler().set(m_bg, FUNC(s11_obg_device::resetq_w)); m_bg->pb_cb().set(m_pia34, FUNC(pia6821_device::portb_w)); m_bg->cb2_cb().set(m_pia34, FUNC(pia6821_device::cb1_w)); - m_bg->set_romregion(m_bgcpu); - m_bg->add_route(ALL_OUTPUTS, "bg", 1.0); + m_bg->add_route(ALL_OUTPUTS, "bgspk", 1.0); } /*------------------------ @@ -279,7 +274,7 @@ ROM_LOAD("f14_u21.l1", 0x18000, 0x8000, CRC(e412300c) SHA1(382d0cfa47abea295f0c7501bc0a010473e9d73b)) ROM_LOAD("f14_u22.l1", 0x10000, 0x8000, CRC(c9dd7496) SHA1(de3cb855d87033274cc912578b02d1593d2d69f9)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("f14_u4.l1", 0x00000, 0x8000, CRC(43ecaabf) SHA1(64b50dbff03cd556130d0cff47b951fdf37d397d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -299,7 +294,7 @@ ROM_LOAD("f14_u21.l1", 0x18000, 0x8000, CRC(e412300c) SHA1(382d0cfa47abea295f0c7501bc0a010473e9d73b)) ROM_LOAD("f14_u22.l1", 0x10000, 0x8000, CRC(c9dd7496) SHA1(de3cb855d87033274cc912578b02d1593d2d69f9)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("f14_u4.l1", 0x00000, 0x8000, CRC(43ecaabf) SHA1(64b50dbff03cd556130d0cff47b951fdf37d397d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -319,7 +314,7 @@ ROM_LOAD("f14_u21.l1", 0x18000, 0x8000, CRC(e412300c) SHA1(382d0cfa47abea295f0c7501bc0a010473e9d73b)) ROM_LOAD("f14_u22.l1", 0x10000, 0x8000, CRC(c9dd7496) SHA1(de3cb855d87033274cc912578b02d1593d2d69f9)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("f14_u4.l1", 0x00000, 0x8000, CRC(43ecaabf) SHA1(64b50dbff03cd556130d0cff47b951fdf37d397d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -339,7 +334,7 @@ ROM_LOAD("f14_u21.l1", 0x18000, 0x8000, CRC(e412300c) SHA1(382d0cfa47abea295f0c7501bc0a010473e9d73b)) ROM_LOAD("f14_u22.l1", 0x10000, 0x8000, CRC(c9dd7496) SHA1(de3cb855d87033274cc912578b02d1593d2d69f9)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("f14_u4.l1", 0x00000, 0x8000, CRC(43ecaabf) SHA1(64b50dbff03cd556130d0cff47b951fdf37d397d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -362,7 +357,7 @@ ROM_LOAD("fire_u21.l2", 0x18000, 0x8000, CRC(2edde0a4) SHA1(de292a340a3a06b0b996fc69fee73eb7bbfbbe64)) ROM_LOAD("fire_u22.l2", 0x10000, 0x8000, CRC(16145c97) SHA1(523e99df3907a2c843c6e27df4d16799c4136a46)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("fire_u4.l1", 0x00000, 0x8000, CRC(0e058918) SHA1(4d6bf2290141119174787f8dd653c47ea4c73693)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -378,7 +373,7 @@ ROM_LOAD("fire_u21.l2", 0x18000, 0x8000, CRC(2edde0a4) SHA1(de292a340a3a06b0b996fc69fee73eb7bbfbbe64)) ROM_LOAD("fire_u22.l2", 0x10000, 0x8000, CRC(16145c97) SHA1(523e99df3907a2c843c6e27df4d16799c4136a46)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("fire_u4.l1", 0x00000, 0x8000, CRC(0e058918) SHA1(4d6bf2290141119174787f8dd653c47ea4c73693)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -401,7 +396,7 @@ ROM_LOAD("mill_u21.l1", 0x18000, 0x8000, CRC(4cd1ee90) SHA1(4e24b96138ced16eff9036303ca6347e3423dbfc)) ROM_LOAD("mill_u22.l1", 0x10000, 0x8000, CRC(73735cfc) SHA1(f74c873a20990263e0d6b35609fc51c08c9f8e31)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("mill_u4.l1", 0x00000, 0x8000, CRC(cf766506) SHA1(a6e4df19a513102abbce2653d4f72245f54407b1)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -424,7 +419,7 @@ ROM_LOAD("pbot_u21.l1", 0x18000, 0x8000, CRC(3eab88d9) SHA1(667e3b675e2ae8fec6a6faddb9b0dd5531d64f8f)) ROM_LOAD("pbot_u22.l1", 0x10000, 0x8000, CRC(a2d2c9cb) SHA1(46437dc54538f1626caf41a2818ddcf8000c44e4)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pbot_u4.l1", 0x00000, 0x8000, CRC(de5926bd) SHA1(3d111e27c5f0c8c0afc5fe5cc45bf77c12b69228)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -444,7 +439,7 @@ ROM_LOAD("pbot_u21.l1", 0x18000, 0x8000, CRC(3eab88d9) SHA1(667e3b675e2ae8fec6a6faddb9b0dd5531d64f8f)) ROM_LOAD("pbot_u22.l1", 0x10000, 0x8000, CRC(a2d2c9cb) SHA1(46437dc54538f1626caf41a2818ddcf8000c44e4)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pbot_u4.l1", 0x00000, 0x8000, CRC(de5926bd) SHA1(3d111e27c5f0c8c0afc5fe5cc45bf77c12b69228)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -464,7 +459,7 @@ ROM_LOAD("pbot_u21.l1", 0x18000, 0x8000, CRC(3eab88d9) SHA1(667e3b675e2ae8fec6a6faddb9b0dd5531d64f8f)) ROM_LOAD("pbot_u22.l1", 0x10000, 0x8000, CRC(a2d2c9cb) SHA1(46437dc54538f1626caf41a2818ddcf8000c44e4)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pbot_u4.l1", 0x00000, 0x8000, CRC(de5926bd) SHA1(3d111e27c5f0c8c0afc5fe5cc45bf77c12b69228)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -484,7 +479,7 @@ ROM_LOAD("pbot_u21.l1", 0x18000, 0x8000, CRC(3eab88d9) SHA1(667e3b675e2ae8fec6a6faddb9b0dd5531d64f8f)) ROM_LOAD("pbot_u22.l1", 0x10000, 0x8000, CRC(a2d2c9cb) SHA1(46437dc54538f1626caf41a2818ddcf8000c44e4)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pbot_u4.l1", 0x00000, 0x8000, CRC(de5926bd) SHA1(3d111e27c5f0c8c0afc5fe5cc45bf77c12b69228)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -504,7 +499,7 @@ ROM_LOAD("pbot_u21.l1", 0x18000, 0x8000, CRC(3eab88d9) SHA1(667e3b675e2ae8fec6a6faddb9b0dd5531d64f8f)) ROM_LOAD("pbot_u22.l1", 0x10000, 0x8000, CRC(a2d2c9cb) SHA1(46437dc54538f1626caf41a2818ddcf8000c44e4)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pbot_u4.l1", 0x00000, 0x8000, CRC(de5926bd) SHA1(3d111e27c5f0c8c0afc5fe5cc45bf77c12b69228)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -521,9 +516,9 @@ GAME(1987, f14_p5, f14_l1, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "F-14 Tomcat (P-5)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1987, fire_l3, 0, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Fire! (L-3)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1987, fire_l2, fire_l3, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Fire! (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, milln_l3, 0, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Millionaire (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l5, 0, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l1, pb_l5, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l2, pb_l5, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l3, pb_l5, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_p4, pb_l5, s11a, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (P-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, milln_l3, 0, s11a_obg, s11a, s11a_state, init_s11a, ROT0, "Williams", "Millionaire (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l5, 0, s11a_obg, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l1, pb_l5, s11a_obg, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l2, pb_l5, s11a_obg, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l3, pb_l5, s11a_obg, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_p4, pb_l5, s11a_obg, s11a, s11a_state, init_s11a, ROT0, "Williams", "Pin-Bot (P-4)", MACHINE_IS_SKELETON_MECHANICAL) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/s11b.cpp mame-0.224+dfsg.1/src/mame/drivers/s11b.cpp --- mame-0.223+dfsg.1/src/mame/drivers/s11b.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/s11b.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,8 +13,12 @@ or a code bug which is hit if the motor drawbridge limit sensors are not working/emulated, as in MAME. Proximate cause is smashing the stack, after which the RTS at 61DE (in bk2k_l4) transfers to 0000 (where no valid code exists). + This may or may not be an original game bug if the game is started if the + coin door is left open (hence the memory protect switch is left disengaged. + We do not currently emulate the memory protect function to write protect + the ram at 0x780-0x7ff, so it is possible that the protection being + active prevents the real machine from crashing) - Black Knight 2000 LG-1 set reports U26 ROM FAILURE. Bad/hacked dump or original bug? - - Jokerz has an entirely different "Pin Sound '88" stereo audio board (D-12338-567) which has to be emulated - Taxi and Police Force both have issues with the display showing garbage overlaid by the alphanumerics. Known keys necessary to get games to start (so the proper number of balls are detected): @@ -27,12 +31,13 @@ - Cyclone: Nothing, game does not have switches to check for balls in the trough. - Earthshaker: "D" "F" "W" - Elvira and the Party Monsters: "D" "F" "U" + - Jokerz!: "D" "F" "H" - Mousin' Around: "D" "F" "H" - Police Force: "D" "F" - Space Station: "D" "F" "End" - Swords of Fury: "D" "F" "H" - Taxi: "D" "F" - - Transporter the Rescue: "D" "F" "H" + - Transporter: the Rescue: "D" "F" "H" - Whirlwind: "D" "F" "H" */ @@ -46,28 +51,6 @@ #include "s11b.lh" -void s11b_state::s11b_main_map(address_map &map) -{ - map(0x0000, 0x0fff).ram().share("nvram"); - map(0x2100, 0x2103).mirror(0x00fc).rw(m_pia21, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids - map(0x2200, 0x2200).mirror(0x01ff).w(FUNC(s11b_state::sol3_w)); // solenoids - map(0x2400, 0x2403).mirror(0x03fc).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps - map(0x2800, 0x2803).mirror(0x03fc).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display - map(0x2c00, 0x2c03).mirror(0x03fc).rw(m_pia2c, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // alphanumeric display - map(0x3000, 0x3003).mirror(0x03fc).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs - map(0x3400, 0x3403).mirror(0x0bfc).rw(m_pia34, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // widget - map(0x4000, 0xffff).rom(); -} - -void s11b_state::s11b_audio_map(address_map &map) -{ - map(0x0000, 0x07ff).mirror(0x0800).ram(); - map(0x1000, 0x1000).mirror(0x0fff).w(FUNC(s11b_state::bank_w)); - map(0x2000, 0x2003).mirror(0x0ffc).rw(m_pias, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x8000, 0xbfff).bankr("bank0"); - map(0xc000, 0xffff).bankr("bank1"); -} - static INPUT_PORTS_START( s11b ) PORT_START("SW.0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) // always plumb-bob tilt @@ -245,11 +228,11 @@ m_invert = true; } -void s11b_state::s11b(machine_config &config) +void s11b_state::s11b_base(machine_config &config) { /* basic machine hardware */ M6808(config, m_maincpu, XTAL(4'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &s11b_state::s11b_main_map); + m_maincpu->set_addrmap(AS_PROGRAM, &s11_state::s11_main_map); MCFG_MACHINE_RESET_OVERRIDE(s11b_state, s11b) INPUT_MERGER_ANY_HIGH(config, m_mainirq).output_handler().set(FUNC(s11_state::main_irq)); INPUT_MERGER_ANY_HIGH(config, m_piairq).output_handler().set(FUNC(s11_state::pia_irq)); @@ -305,7 +288,6 @@ PIA6821(config, m_pia34, 0); m_pia34->writepa_handler().set(FUNC(s11b_state::pia34_pa_w)); m_pia34->writepb_handler().set(FUNC(s11_state::pia34_pb_w)); - m_pia34->ca2_handler().set(m_bg, FUNC(s11c_bg_device::resetq_w)); m_pia34->cb2_handler().set(FUNC(s11_state::pia34_cb2_w)); m_pia34->irqa_handler().set(m_piairq, FUNC(input_merger_device::in_w<11>)); m_pia34->irqb_handler().set(m_piairq, FUNC(input_merger_device::in_w<12>)); @@ -315,13 +297,13 @@ /* Add the soundcard */ M6802(config, m_audiocpu, XTAL(4'000'000)); m_audiocpu->set_ram_enable(false); - m_audiocpu->set_addrmap(AS_PROGRAM, &s11b_state::s11b_audio_map); + m_audiocpu->set_addrmap(AS_PROGRAM, &s11_state::s11_audio_map); INPUT_MERGER_ANY_HIGH(config, m_audioirq).output_handler().set_inputline(m_audiocpu, M6802_IRQ_LINE); SPEAKER(config, "speaker").front_center(); - MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); + MC1408(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); - vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, m_dac, 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, m_dac, -1.0, DAC_VREF_NEG_INPUT); SPEAKER(config, "speech").front_center(); HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, "speech", 0.50); @@ -330,19 +312,36 @@ m_pias->readpa_handler().set(FUNC(s11_state::sound_r)); m_pias->set_port_a_input_overrides_output_mask(0xff); m_pias->writepa_handler().set(FUNC(s11_state::sound_w)); - m_pias->writepb_handler().set("dac", FUNC(dac_byte_interface::data_w)); + m_pias->writepb_handler().set(m_dac, FUNC(dac_byte_interface::data_w)); m_pias->ca2_handler().set(m_hc55516, FUNC(hc55516_device::clock_w)); m_pias->cb2_handler().set(m_hc55516, FUNC(hc55516_device::digit_w)); m_pias->irqa_handler().set(m_audioirq, FUNC(input_merger_device::in_w<0>)); m_pias->irqb_handler().set(m_audioirq, FUNC(input_merger_device::in_w<1>)); +} +void s11b_state::s11b(machine_config &config) +{ + s11b_base(config); /* Add the background music card */ - SPEAKER(config, "bg").front_center(); S11_BG(config, m_bg); + m_pia34->ca2_handler().set(m_bg, FUNC(s11_bg_device::resetq_w)); m_bg->pb_cb().set(m_pia34, FUNC(pia6821_device::portb_w)); m_bg->cb2_cb().set(m_pia34, FUNC(pia6821_device::cb1_w)); - m_bg->set_romregion(m_bgcpu); - m_bg->add_route(ALL_OUTPUTS, "bg", 1.0); + SPEAKER(config, "bgspk").front_center(); + m_bg->add_route(ALL_OUTPUTS, "bgspk", 1.0); +} + +void s11b_state::s11b_jokerz(machine_config &config) +{ + s11b_base(config); + /* Add the pin sound 88 music card */ + PINSND88(config, m_ps88); + m_pia34->ca2_handler().set(m_ps88, FUNC(pinsnd88_device::resetq_w)); + m_ps88->syncq_cb().set(m_pia34, FUNC(pia6821_device::ca1_w)); // the sync connection comes from sound connector pin 16 to MCA1, not the usual pin 12 to MCB1 + SPEAKER(config, "cabinet").front_floor(); // the cabinet speaker is aimed down underneath the pinball table itself + SPEAKER(config, "backbox").front_center(); // the backbox speakers are roughly level with the user, but farther in front of them than the cabinet + m_ps88->add_route(0, "cabinet", 1.0); + m_ps88->add_route(1, "backbox", 1.0); } /*----------------------- @@ -355,7 +354,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("cats_u21.l1", 0x18000, 0x8000, CRC(04110d08) SHA1(4b44b26983cb5d14a93c16a19dc2bdbaa665dc69)) ROM_LOAD("cats_u22.l1", 0x10000, 0x8000, CRC(7e152c78) SHA1(b4ab770fdd9420a5d35e55bf8fb84c99ac544b8b)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("cats_u4.l1", 0x00000, 0x8000, CRC(18c62813) SHA1(a4fb69cfedd0b92c22b599913df3cdf8b3eef42c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -377,7 +376,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("cats_u21.l1", 0x18000, 0x8000, CRC(04110d08) SHA1(4b44b26983cb5d14a93c16a19dc2bdbaa665dc69)) ROM_LOAD("cats_u22.l1", 0x10000, 0x8000, CRC(7e152c78) SHA1(b4ab770fdd9420a5d35e55bf8fb84c99ac544b8b)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("cats_u4.l1", 0x00000, 0x8000, CRC(18c62813) SHA1(a4fb69cfedd0b92c22b599913df3cdf8b3eef42c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -402,7 +401,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("banz_u21.l1", 0x18000, 0x8000, CRC(cd06716e) SHA1(b61a0dc017dd4a09296a43a855461c5cee07517b)) ROM_LOAD("banz_u22.l1", 0x10000, 0x8000, CRC(e8159033) SHA1(e8f15801feefeb30768e88d685c208108aa134e8)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("banz_u4.l1", 0x00000, 0x8000, CRC(8fd69c69) SHA1(c024cda85c6616943c3a12ab5943a7be8709bfe3)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -424,7 +423,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("banz_u21.l1", 0x18000, 0x8000, CRC(cd06716e) SHA1(b61a0dc017dd4a09296a43a855461c5cee07517b)) ROM_LOAD("banz_u22.l1", 0x10000, 0x8000, CRC(e8159033) SHA1(e8f15801feefeb30768e88d685c208108aa134e8)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("banz_u4.l1", 0x00000, 0x8000, CRC(8fd69c69) SHA1(c024cda85c6616943c3a12ab5943a7be8709bfe3)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -446,7 +445,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("banz_u21.l1", 0x18000, 0x8000, CRC(cd06716e) SHA1(b61a0dc017dd4a09296a43a855461c5cee07517b)) ROM_LOAD("banz_u22.l1", 0x10000, 0x8000, CRC(e8159033) SHA1(e8f15801feefeb30768e88d685c208108aa134e8)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("banz_u4.l1", 0x00000, 0x8000, CRC(8fd69c69) SHA1(c024cda85c6616943c3a12ab5943a7be8709bfe3)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -468,7 +467,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("banz_u21.l1", 0x18000, 0x8000, CRC(cd06716e) SHA1(b61a0dc017dd4a09296a43a855461c5cee07517b)) ROM_LOAD("banz_u22.l1", 0x10000, 0x8000, CRC(e8159033) SHA1(e8f15801feefeb30768e88d685c208108aa134e8)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("u4-p7.rom", 0x00000, 0x8000, CRC(630d1ce9) SHA1(fb7f6004b94bf20281216519f18b53949eef4405)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -493,7 +492,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("guns_u21.l1", 0x18000, 0x8000, CRC(35c6bfe4) SHA1(83dbd10311add75f56046de58d315f8a87389703)) ROM_LOAD("guns_u22.l1", 0x10000, 0x8000, CRC(091a5cb8) SHA1(db77314241eb6ed7f4385f99312a49b7caad1283)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gund_u4.l1", 0x00000, 0x8000, CRC(d4a430a3) SHA1(5b44e3f313cc7cb75f51c239013d46e5eb986f9d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -511,7 +510,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("guns_u21.l1", 0x18000, 0x8000, CRC(35c6bfe4) SHA1(83dbd10311add75f56046de58d315f8a87389703)) ROM_LOAD("guns_u22.l1", 0x10000, 0x8000, CRC(091a5cb8) SHA1(db77314241eb6ed7f4385f99312a49b7caad1283)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gund_u4.l1", 0x00000, 0x8000, CRC(d4a430a3) SHA1(5b44e3f313cc7cb75f51c239013d46e5eb986f9d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -529,7 +528,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("guns_u21.l1", 0x18000, 0x8000, CRC(35c6bfe4) SHA1(83dbd10311add75f56046de58d315f8a87389703)) ROM_LOAD("guns_u22.l1", 0x10000, 0x8000, CRC(091a5cb8) SHA1(db77314241eb6ed7f4385f99312a49b7caad1283)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gund_u4.l1", 0x00000, 0x8000, CRC(d4a430a3) SHA1(5b44e3f313cc7cb75f51c239013d46e5eb986f9d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -547,7 +546,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("guns_u21.l1", 0x18000, 0x8000, CRC(35c6bfe4) SHA1(83dbd10311add75f56046de58d315f8a87389703)) ROM_LOAD("guns_u22.l1", 0x10000, 0x8000, CRC(091a5cb8) SHA1(db77314241eb6ed7f4385f99312a49b7caad1283)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gund_u4.l1", 0x00000, 0x8000, CRC(d4a430a3) SHA1(5b44e3f313cc7cb75f51c239013d46e5eb986f9d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -568,7 +567,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -586,7 +585,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -604,7 +603,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -622,7 +621,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -640,7 +639,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -658,7 +657,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -676,7 +675,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -694,7 +693,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u21.l1", 0x18000, 0x8000, CRC(08be36ad) SHA1(0f4c448e003df54ed8ccf0e0c57f6123ce1e2027)) ROM_LOAD("bk2k_u22.l1", 0x10000, 0x8000, CRC(9c8becd8) SHA1(9090e8104dad63f14246caabafec428d94d5e18d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bk2k_u4.l2", 0x00000, 0x8000, CRC(1d87281b) SHA1(609288b017aac6ce6da8717a35fdf87013adeb3c)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -715,7 +714,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("cycl_u21.l1", 0x18000, 0x8000, CRC(d4f69a7c) SHA1(da0ce27d92b22583be54a41fc8083cee803c987a)) ROM_LOAD("cycl_u22.l1", 0x10000, 0x8000, CRC(28dc8f13) SHA1(bccce3a9b6b2f52da919c6df8db07e5e3de12657)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("cycl_u4.l5", 0x00000, 0x8000, CRC(d04b663b) SHA1(f54c6df08ec73b733cfeb2a989e44e5c04da3d9e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -733,7 +732,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("cycl_u21.l1", 0x18000, 0x8000, CRC(d4f69a7c) SHA1(da0ce27d92b22583be54a41fc8083cee803c987a)) ROM_LOAD("cycl_u22.l1", 0x10000, 0x8000, CRC(28dc8f13) SHA1(bccce3a9b6b2f52da919c6df8db07e5e3de12657)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("cycl_u4.l5", 0x00000, 0x8000, CRC(d04b663b) SHA1(f54c6df08ec73b733cfeb2a989e44e5c04da3d9e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -751,7 +750,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("cycl_u21.l1", 0x18000, 0x8000, CRC(d4f69a7c) SHA1(da0ce27d92b22583be54a41fc8083cee803c987a)) ROM_LOAD("cycl_u22.l1", 0x10000, 0x8000, CRC(28dc8f13) SHA1(bccce3a9b6b2f52da919c6df8db07e5e3de12657)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("cycl_u4.l5", 0x00000, 0x8000, CRC(d04b663b) SHA1(f54c6df08ec73b733cfeb2a989e44e5c04da3d9e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -772,7 +771,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u4.l1", 0x00000, 0x8000, CRC(40069f8c) SHA1(aafdc189259fa9c8dc49e60e978b84775e16c64e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -790,7 +789,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u4.l1", 0x00000, 0x8000, CRC(40069f8c) SHA1(aafdc189259fa9c8dc49e60e978b84775e16c64e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -808,7 +807,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u4.l1", 0x00000, 0x8000, CRC(40069f8c) SHA1(aafdc189259fa9c8dc49e60e978b84775e16c64e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -826,7 +825,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u4.l1", 0x00000, 0x8000, CRC(40069f8c) SHA1(aafdc189259fa9c8dc49e60e978b84775e16c64e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -844,7 +843,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u4.l1", 0x00000, 0x8000, CRC(40069f8c) SHA1(aafdc189259fa9c8dc49e60e978b84775e16c64e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -862,7 +861,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u4.l1", 0x00000, 0x8000, CRC(40069f8c) SHA1(aafdc189259fa9c8dc49e60e978b84775e16c64e)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -880,7 +879,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("u4-p1.rom", 0x00000, 0x8000, CRC(7219ffc2) SHA1(b8585b7d12f401d8ba4d95a5e2f20d35ff0ac26a)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -898,7 +897,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("eshk_u21.l1", 0x18000, 0x8000, CRC(feac68e5) SHA1(2f12a78398bc3a468e3e0656da91260d45b0663b)) ROM_LOAD("eshk_u22.l1", 0x10000, 0x8000, CRC(44f50fe1) SHA1(a8e24dbb0f5cf300118e1ebdcd2bb6b274d87936)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("u4-p1.rom", 0x00000, 0x8000, CRC(7219ffc2) SHA1(b8585b7d12f401d8ba4d95a5e2f20d35ff0ac26a)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -919,7 +918,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u21.l1", 0x18000, 0x8000, CRC(68d44545) SHA1(8c3ea8521a44b1539cd148f142cca14184174ba7)) ROM_LOAD("elvi_u22.l1", 0x10000, 0x8000, CRC(e525b4fe) SHA1(be728ec33a00b93c3346428a9248b588460af945)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u4.l1", 0x00000, 0x8000, CRC(b5afa4db) SHA1(59b72dac5301a4befa01b93da5162478682e6021)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -941,7 +940,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u21.l1", 0x18000, 0x8000, CRC(68d44545) SHA1(8c3ea8521a44b1539cd148f142cca14184174ba7)) ROM_LOAD("elvi_u22.l1", 0x10000, 0x8000, CRC(e525b4fe) SHA1(be728ec33a00b93c3346428a9248b588460af945)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u4.l1", 0x00000, 0x8000, CRC(b5afa4db) SHA1(59b72dac5301a4befa01b93da5162478682e6021)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -963,7 +962,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u21.l1", 0x18000, 0x8000, CRC(68d44545) SHA1(8c3ea8521a44b1539cd148f142cca14184174ba7)) ROM_LOAD("elvi_u22.l1", 0x10000, 0x8000, CRC(e525b4fe) SHA1(be728ec33a00b93c3346428a9248b588460af945)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u4.l1", 0x00000, 0x8000, CRC(b5afa4db) SHA1(59b72dac5301a4befa01b93da5162478682e6021)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -985,7 +984,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u21.l1", 0x18000, 0x8000, CRC(68d44545) SHA1(8c3ea8521a44b1539cd148f142cca14184174ba7)) ROM_LOAD("elvi_u22.l1", 0x10000, 0x8000, CRC(e525b4fe) SHA1(be728ec33a00b93c3346428a9248b588460af945)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u4.l1", 0x00000, 0x8000, CRC(b5afa4db) SHA1(59b72dac5301a4befa01b93da5162478682e6021)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1007,7 +1006,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u21.l1", 0x18000, 0x8000, CRC(68d44545) SHA1(8c3ea8521a44b1539cd148f142cca14184174ba7)) ROM_LOAD("elvi_u22.l1", 0x10000, 0x8000, CRC(e525b4fe) SHA1(be728ec33a00b93c3346428a9248b588460af945)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u4.l1", 0x00000, 0x8000, CRC(b5afa4db) SHA1(59b72dac5301a4befa01b93da5162478682e6021)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1029,7 +1028,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u21.l1", 0x18000, 0x8000, CRC(68d44545) SHA1(8c3ea8521a44b1539cd148f142cca14184174ba7)) ROM_LOAD("elvi_u22.l1", 0x10000, 0x8000, CRC(e525b4fe) SHA1(be728ec33a00b93c3346428a9248b588460af945)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u4.l1", 0x00000, 0x8000, CRC(b5afa4db) SHA1(59b72dac5301a4befa01b93da5162478682e6021)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1051,7 +1050,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u21.l1", 0x18000, 0x8000, CRC(68d44545) SHA1(8c3ea8521a44b1539cd148f142cca14184174ba7)) ROM_LOAD("elvi_u22.l1", 0x10000, 0x8000, CRC(e525b4fe) SHA1(be728ec33a00b93c3346428a9248b588460af945)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("elvi_u4.l1", 0x00000, 0x8000, CRC(b5afa4db) SHA1(59b72dac5301a4befa01b93da5162478682e6021)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1077,8 +1076,8 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("jokeru21.l1", 0x18000, 0x8000, CRC(9e2be4f6) SHA1(6e26b55935d0c8138176b54a11c1a9ab58366628)) ROM_LOAD("jokeru22.l1", 0x10000, 0x8000, CRC(2f67160c) SHA1(f1e179fde41f9bf8226069c24b0bd5152a13e518)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("jokeru5.l2", 0x00000, 0x10000, CRC(e9dc0095) SHA1(23a99555e50461ccc8e67de01796642c080294c2)) + ROM_REGION(0x40000, "ps88:cpu", ROMREGION_ERASEFF) + ROM_LOAD("jokeru5.l2", 0x30000, 0x10000, CRC(e9dc0095) SHA1(23a99555e50461ccc8e67de01796642c080294c2)) ROM_RELOAD(0x20000,0x10000) ROM_END @@ -1089,9 +1088,9 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("jokeru21.l1", 0x18000, 0x8000, CRC(9e2be4f6) SHA1(6e26b55935d0c8138176b54a11c1a9ab58366628)) ROM_LOAD("jokeru22.l1", 0x10000, 0x8000, CRC(2f67160c) SHA1(f1e179fde41f9bf8226069c24b0bd5152a13e518)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("jokeru5.l2", 0x00000, 0x10000, CRC(e9dc0095) SHA1(23a99555e50461ccc8e67de01796642c080294c2)) - ROM_RELOAD(0x20000, 0x10000) + ROM_REGION(0x40000, "ps88:cpu", ROMREGION_ERASEFF) + ROM_LOAD("jokeru5.l2", 0x30000, 0x10000, CRC(e9dc0095) SHA1(23a99555e50461ccc8e67de01796642c080294c2)) + ROM_RELOAD(0x20000,0x10000) ROM_END ROM_START(jokrz_g4) @@ -1101,9 +1100,9 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("jokeru21.l1", 0x18000, 0x8000, CRC(9e2be4f6) SHA1(6e26b55935d0c8138176b54a11c1a9ab58366628)) ROM_LOAD("jokeru22.l1", 0x10000, 0x8000, CRC(2f67160c) SHA1(f1e179fde41f9bf8226069c24b0bd5152a13e518)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("jokeru5.l2", 0x00000, 0x10000, CRC(e9dc0095) SHA1(23a99555e50461ccc8e67de01796642c080294c2)) - ROM_RELOAD(0x20000, 0x10000) + ROM_REGION(0x40000, "ps88:cpu", ROMREGION_ERASEFF) + ROM_LOAD("jokeru5.l2", 0x30000, 0x10000, CRC(e9dc0095) SHA1(23a99555e50461ccc8e67de01796642c080294c2)) + ROM_RELOAD(0x20000,0x10000) ROM_END /*----------------------- @@ -1116,7 +1115,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u20.l2", 0x18000, 0x8000, CRC(59b1b0c5) SHA1(443426be41c1413f22b137145dbc3bcf84d9ccc7)) ROM_LOAD("mous_u22.l1", 0x10000, 0x8000, CRC(00ad198c) SHA1(4f15696909e1f3574ad20b28e31da2c155ed129f)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u4.l2", 0x00000, 0x8000, CRC(643add1e) SHA1(45dea0f4c6f24d17e6f7dda75afaa7caefdc6b96)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1138,7 +1137,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u20.l2", 0x18000, 0x8000, CRC(59b1b0c5) SHA1(443426be41c1413f22b137145dbc3bcf84d9ccc7)) ROM_LOAD("mous_u22.l1", 0x10000, 0x8000, CRC(00ad198c) SHA1(4f15696909e1f3574ad20b28e31da2c155ed129f)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u4.l2", 0x00000, 0x8000, CRC(643add1e) SHA1(45dea0f4c6f24d17e6f7dda75afaa7caefdc6b96)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1160,7 +1159,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u20.l2", 0x18000, 0x8000, CRC(59b1b0c5) SHA1(443426be41c1413f22b137145dbc3bcf84d9ccc7)) ROM_LOAD("mous_u22.l1", 0x10000, 0x8000, CRC(00ad198c) SHA1(4f15696909e1f3574ad20b28e31da2c155ed129f)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u4.l2", 0x00000, 0x8000, CRC(643add1e) SHA1(45dea0f4c6f24d17e6f7dda75afaa7caefdc6b96)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1182,7 +1181,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u20.l2", 0x18000, 0x8000, CRC(59b1b0c5) SHA1(443426be41c1413f22b137145dbc3bcf84d9ccc7)) ROM_LOAD("mous_u22.l1", 0x10000, 0x8000, CRC(00ad198c) SHA1(4f15696909e1f3574ad20b28e31da2c155ed129f)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("mous_u4.lx", 0x00000, 0x8000, CRC(d311db4a) SHA1(d9d20921eb42c19c5074c976608bfec0d3130204)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1207,7 +1206,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u21.l1", 0x18000, 0x8000, CRC(7729afd3) SHA1(9cd2898a7a4203cf3b2dcd203e25cde5dd582ee7)) ROM_LOAD("pfrc_u22.l1", 0x10000, 0x8000, CRC(40f5e6b2) SHA1(4af2e2658720b08d03d24c9d314a6e5074b2c747)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u4.l2", 0x00000, 0x8000, CRC(8f431529) SHA1(0f479990715a31fd860c000a066cffb70da502c2)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1225,7 +1224,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u21.l1", 0x18000, 0x8000, CRC(7729afd3) SHA1(9cd2898a7a4203cf3b2dcd203e25cde5dd582ee7)) ROM_LOAD("pfrc_u22.l1", 0x10000, 0x8000, CRC(40f5e6b2) SHA1(4af2e2658720b08d03d24c9d314a6e5074b2c747)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u4.l2", 0x00000, 0x8000, CRC(8f431529) SHA1(0f479990715a31fd860c000a066cffb70da502c2)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1243,7 +1242,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u21.l1", 0x18000, 0x8000, CRC(7729afd3) SHA1(9cd2898a7a4203cf3b2dcd203e25cde5dd582ee7)) ROM_LOAD("pfrc_u22.l1", 0x10000, 0x8000, CRC(40f5e6b2) SHA1(4af2e2658720b08d03d24c9d314a6e5074b2c747)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u4.l2", 0x00000, 0x8000, CRC(8f431529) SHA1(0f479990715a31fd860c000a066cffb70da502c2)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1261,7 +1260,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u21.l1", 0x18000, 0x8000, CRC(7729afd3) SHA1(9cd2898a7a4203cf3b2dcd203e25cde5dd582ee7)) ROM_LOAD("pfrc_u22.l1", 0x10000, 0x8000, CRC(40f5e6b2) SHA1(4af2e2658720b08d03d24c9d314a6e5074b2c747)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pfrc_u4.l2", 0x00000, 0x8000, CRC(8f431529) SHA1(0f479990715a31fd860c000a066cffb70da502c2)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1282,7 +1281,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("sstn_u21.l1", 0x18000, 0x8000, CRC(a2ceccaa) SHA1(4c23713543e06458e49e3f2d472543c4a4246a93)) ROM_LOAD("sstn_u22.l1", 0x10000, 0x8000, CRC(2b745994) SHA1(67ebfe13db6670237496b033611bf9d4ba8d5c30)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("sstn_u4.l1", 0x00000, 0x8000, CRC(ad7a0511) SHA1(9aa6412de12599fd0d10faef8fffb5d535f49015)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1299,7 +1298,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("swrd_u21.l1", 0x18000, 0x8000, CRC(ee8b0a64) SHA1(c2c52059a9a5f7c0abcfdd76cfc6d5b5451f7d1e)) ROM_LOAD("swrd_u22.l1", 0x10000, 0x8000, CRC(73dcdbb0) SHA1(66f5b3804442a1742b6fb3cccf539c4df956b3f2)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("swrd_u4.l1", 0x00000, 0x8000, CRC(272b509c) SHA1(756d3783f664ca1c41dd1d12032330b74c3f89ea)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1317,7 +1316,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("swrd_u21.l1", 0x18000, 0x8000, CRC(ee8b0a64) SHA1(c2c52059a9a5f7c0abcfdd76cfc6d5b5451f7d1e)) ROM_LOAD("swrd_u22.l1", 0x10000, 0x8000, CRC(73dcdbb0) SHA1(66f5b3804442a1742b6fb3cccf539c4df956b3f2)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("swrd_u4.l1", 0x00000, 0x8000, CRC(272b509c) SHA1(756d3783f664ca1c41dd1d12032330b74c3f89ea)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1338,7 +1337,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u21.l1", 0x18000, 0x8000, CRC(2b20e9ab) SHA1(d785667ae0fd237dd8343bb1ecfbacf050ec2c6f)) ROM_LOAD("taxi_u22.l1", 0x10000, 0x8000, CRC(d13055c5) SHA1(8c2959bde03567b83db425ebc9e7309d9601c2b2)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u4.l1", 0x00000, 0x8000, CRC(6082ebb5) SHA1(37e19ad27fe05b4c8e572f6598d2d574e4ac5a7d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1356,7 +1355,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u21.l1", 0x18000, 0x8000, CRC(2b20e9ab) SHA1(d785667ae0fd237dd8343bb1ecfbacf050ec2c6f)) ROM_LOAD("taxi_u22.l1", 0x10000, 0x8000, CRC(d13055c5) SHA1(8c2959bde03567b83db425ebc9e7309d9601c2b2)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u4.l1", 0x00000, 0x8000, CRC(6082ebb5) SHA1(37e19ad27fe05b4c8e572f6598d2d574e4ac5a7d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1374,7 +1373,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u21.l1", 0x18000, 0x8000, CRC(2b20e9ab) SHA1(d785667ae0fd237dd8343bb1ecfbacf050ec2c6f)) ROM_LOAD("taxi_u22.l1", 0x10000, 0x8000, CRC(d13055c5) SHA1(8c2959bde03567b83db425ebc9e7309d9601c2b2)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u4.l1", 0x00000, 0x8000, CRC(6082ebb5) SHA1(37e19ad27fe05b4c8e572f6598d2d574e4ac5a7d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1392,7 +1391,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u21.l1", 0x18000, 0x8000, CRC(2b20e9ab) SHA1(d785667ae0fd237dd8343bb1ecfbacf050ec2c6f)) ROM_LOAD("taxi_u22.l1", 0x10000, 0x8000, CRC(d13055c5) SHA1(8c2959bde03567b83db425ebc9e7309d9601c2b2)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u4.l1", 0x00000, 0x8000, CRC(6082ebb5) SHA1(37e19ad27fe05b4c8e572f6598d2d574e4ac5a7d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1410,7 +1409,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u21.l1", 0x18000, 0x8000, CRC(2b20e9ab) SHA1(d785667ae0fd237dd8343bb1ecfbacf050ec2c6f)) ROM_LOAD("taxi_u22.l1", 0x10000, 0x8000, CRC(d13055c5) SHA1(8c2959bde03567b83db425ebc9e7309d9601c2b2)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("taxi_u4.l1", 0x00000, 0x8000, CRC(6082ebb5) SHA1(37e19ad27fe05b4c8e572f6598d2d574e4ac5a7d)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1431,7 +1430,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("tran_u21.l2", 0x18000, 0x8000, CRC(b10120ee) SHA1(305a898a8b762c27dba26921ef169556bf96e518)) ROM_LOAD("tran_u22.l2", 0x10000, 0x8000, CRC(337784b5) SHA1(30c17afd8f76118940982db946cd3a2a29445d10)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("tran_u4.l2", 0x00000, 0x8000, CRC(a06ddd61) SHA1(630fe7ab94516930c4876a95f822024a44371170)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1456,7 +1455,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("whir_u21.l1", 0x18000, 0x8000, CRC(fa3da322) SHA1(732107eace9eecdb97eff4abb4420a2febef7425)) ROM_LOAD("whir_u22.l1", 0x10000, 0x8000, CRC(fcaf8c4e) SHA1(8e8cab1923a56bcef4671dce28aef1e39303c04a)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("whir_u4.l1", 0x00000, 0x8000, CRC(29952d84) SHA1(26479a341b0552c5f9d9bf9dd013855e51a7b857)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1478,7 +1477,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("whir_u21.l1", 0x18000, 0x8000, CRC(fa3da322) SHA1(732107eace9eecdb97eff4abb4420a2febef7425)) ROM_LOAD("whir_u22.l1", 0x10000, 0x8000, CRC(fcaf8c4e) SHA1(8e8cab1923a56bcef4671dce28aef1e39303c04a)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("whir_u4.l1", 0x00000, 0x8000, CRC(29952d84) SHA1(26479a341b0552c5f9d9bf9dd013855e51a7b857)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1500,7 +1499,7 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("whir_u21.l1", 0x18000, 0x8000, CRC(fa3da322) SHA1(732107eace9eecdb97eff4abb4420a2febef7425)) ROM_LOAD("whir_u22.l1", 0x10000, 0x8000, CRC(fcaf8c4e) SHA1(8e8cab1923a56bcef4671dce28aef1e39303c04a)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("whir_u4.l1", 0x00000, 0x8000, CRC(29952d84) SHA1(26479a341b0552c5f9d9bf9dd013855e51a7b857)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) @@ -1551,9 +1550,9 @@ GAME(1989, eatpm_4u, eatpm_l4, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LU-4)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1989, eatpm_f1, eatpm_l4, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LF-1) French", MACHINE_IS_SKELETON_MECHANICAL) GAME(1989, eatpm_p7, eatpm_l4, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (PA-7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, jokrz_l6, 0, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Williams", "Jokerz! (L-6)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, jokrz_l3, jokrz_l6, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Williams", "Jokerz! (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, jokrz_g4, jokrz_l6, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Williams", "Jokerz! (G-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, jokrz_l6, 0, s11b_jokerz, s11b, s11b_state, init_s11b_invert, ROT0, "Williams", "Jokerz! (L-6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, jokrz_l3, jokrz_l6, s11b_jokerz, s11b, s11b_state, init_s11b_invert, ROT0, "Williams", "Jokerz! (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, jokrz_g4, jokrz_l6, s11b_jokerz, s11b, s11b_state, init_s11b_invert, ROT0, "Williams", "Jokerz! (G-4)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1989, mousn_l4, 0, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-4)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1989, mousn_l1, mousn_l4, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-1)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1989, mousn_lu, mousn_l4, s11b, s11b, s11b_state, init_s11b_invert, ROT0, "Bally", "Mousin' Around! (LU-1)", MACHINE_IS_SKELETON_MECHANICAL) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/s11c.cpp mame-0.224+dfsg.1/src/mame/drivers/s11c.cpp --- mame-0.223+dfsg.1/src/mame/drivers/s11c.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/s11c.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,20 +13,6 @@ #include "s11c.lh" -void s11c_state::s11c_main_map(address_map &map) -{ - map(0x0000, 0x0fff).ram().share("nvram"); - map(0x2100, 0x2103).mirror(0x00fc).rw(m_pia21, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids - map(0x2200, 0x2200).mirror(0x01ff).w(FUNC(s11c_state::sol3_w)); // solenoids - map(0x2400, 0x2403).mirror(0x03fc).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps - map(0x2800, 0x2803).mirror(0x03fc).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display - map(0x2c00, 0x2c03).mirror(0x03fc).rw(m_pia2c, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // alphanumeric display - map(0x3000, 0x3003).mirror(0x03fc).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs - map(0x3400, 0x3403).mirror(0x0bfc).rw(m_pia34, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // widget - map(0x4000, 0xffff).rom(); -} - - static INPUT_PORTS_START( s11c ) PORT_START("SW.0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) // always plumb-bob tilt @@ -135,7 +121,7 @@ { /* basic machine hardware */ M6808(config, m_maincpu, XTAL(4'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &s11c_state::s11c_main_map); + m_maincpu->set_addrmap(AS_PROGRAM, &s11_state::s11_main_map); INPUT_MERGER_ANY_HIGH(config, m_mainirq).output_handler().set(FUNC(s11_state::main_irq)); INPUT_MERGER_ANY_HIGH(config, m_piairq).output_handler().set(FUNC(s11_state::pia_irq)); @@ -190,7 +176,6 @@ PIA6821(config, m_pia34, 0); m_pia34->writepa_handler().set(FUNC(s11b_state::pia34_pa_w)); m_pia34->writepb_handler().set(FUNC(s11b_state::pia34_pb_w)); - m_pia34->ca2_handler().set(m_bg, FUNC(s11c_bg_device::resetq_w)); m_pia34->cb2_handler().set(FUNC(s11b_state::pia34_cb2_w)); m_pia34->irqa_handler().set(m_piairq, FUNC(input_merger_device::in_w<11>)); m_pia34->irqb_handler().set(m_piairq, FUNC(input_merger_device::in_w<12>)); @@ -202,9 +187,9 @@ /* Add the background music card */ SPEAKER(config, "speaker").front_center(); S11C_BG(config, m_bg); + m_pia34->ca2_handler().set(m_bg, FUNC(s11c_bg_device::resetq_w)); m_bg->pb_cb().set(m_pia34, FUNC(pia6821_device::portb_w)); m_bg->cb2_cb().set(m_pia34, FUNC(pia6821_device::cb1_w)); - m_bg->set_romregion(m_bgcpu); m_bg->add_route(ALL_OUTPUTS, "speaker", 1.0); } @@ -219,7 +204,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("bugs_u26.l2", 0x4000, 0x4000, CRC(b4358920) SHA1(93af1cf5dc2b5442f428a621c0f73b27c197a3df)) ROM_LOAD("bugs_u27.l2", 0x8000, 0x8000, CRC(8ff29439) SHA1(8fcdcea556e9e01ea8cb7c1548f98af2467c8a5f)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bugs_u4.l2", 0x00000, 0x10000, CRC(04bc9aa5) SHA1(c3da2dc3e26b88a0ebc6f87e61fc71bec45330c3)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("bugs_u19.l1", 0x20000, 0x10000, CRC(a2084702) SHA1(ffd749387e7b52bad1e98c6a8939fb87bc67524c)) @@ -232,7 +217,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("bugs_u26.l2", 0x4000, 0x4000, CRC(b4358920) SHA1(93af1cf5dc2b5442f428a621c0f73b27c197a3df)) ROM_LOAD("u27-lu2.rom", 0x8000, 0x8000, CRC(aaa2c82d) SHA1(b279c87cb2ac90a818eeb1afa6115b8cdab1b0df)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("bugs_u4.l2", 0x00000, 0x10000, CRC(04bc9aa5) SHA1(c3da2dc3e26b88a0ebc6f87e61fc71bec45330c3)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("bugs_u19.l1", 0x20000, 0x10000, CRC(a2084702) SHA1(ffd749387e7b52bad1e98c6a8939fb87bc67524c)) @@ -248,7 +233,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dinr_u26.l4", 0x4000, 0x4000, CRC(6f187abf) SHA1(8acabbccdf3528a9c5e60cc8939ab960bf4c5512)) ROM_LOAD("dinr_u27.l4", 0x8000, 0x8000, CRC(d69f9f74) SHA1(88d9b42c2313a90e5d6f50220d3b44331595d86b)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) @@ -261,7 +246,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dinr_u26.l2", 0x4000, 0x4000, CRC(8b6aa22e) SHA1(6b802a85fc2babf5a183fb434df11597363c1c9d)) ROM_LOAD("u27-la3.rom", 0x8000, 0x8000, CRC(4171451a) SHA1(818e330245691d9ef3181b885c9342880f89d912)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) @@ -274,7 +259,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dinr_u26.l2", 0x4000, 0x4000, CRC(8b6aa22e) SHA1(6b802a85fc2babf5a183fb434df11597363c1c9d)) ROM_LOAD("dinr_u27.lu2", 0x8000, 0x8000, CRC(ea72f6aa) SHA1(58df02e8353dd9be2ecfbcdc78fc54981dd001e1)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) @@ -287,7 +272,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dinr_u26.l2", 0x4000, 0x4000, CRC(8b6aa22e) SHA1(6b802a85fc2babf5a183fb434df11597363c1c9d)) ROM_LOAD("dinr_u27.lf2", 0x8000, 0x8000, CRC(343af291) SHA1(ecf30dd828537cd68dc6c9f97256a38c820b9afc)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) @@ -300,7 +285,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u26-lu1.rom", 0x4000, 0x4000, CRC(259b302f) SHA1(d7e19c2d2ad7805d9158178c24d180d158a59b0c)) ROM_LOAD("u27-lu1.rom", 0x8000, 0x8000, CRC(35fafbb3) SHA1(0db3d0c9421f4fdcf4d376d543626559e1bf2daa)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) @@ -313,7 +298,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dinr_u26.pa0", 0x4000, 0x4000, CRC(dbf5de09) SHA1(55ca30bdf6e6e482f3ce5891b866103492fa3754)) ROM_LOAD("dinr_u27.pa0", 0x8000, 0x8000, CRC(9875d16e) SHA1(fbbab61cc9e8e3f7a1bf1428ad50ad3c13f0f120)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) @@ -329,7 +314,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dude_u26.lu1", 0x4000, 0x4000, CRC(6f6a6e22) SHA1(2d8a1b472eb06a9f7aeea4b2f9a82f83eb4ee08a)) ROM_LOAD("dude_u27.lu1", 0x8000, 0x8000, CRC(43c2d4f3) SHA1(d61d855fa06394bdc1142e21624bdaac1ee9ca20)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dude_u4.l1", 0x00000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dude_u19.l1", 0x20000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) @@ -342,7 +327,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dude_u26.l2", 0x4000, 0x4000, CRC(d1e19fc2) SHA1(800329b5fd563fcd27add14da4522082c01eb86e)) ROM_LOAD("dude_u27.l2", 0x8000, 0x8000, CRC(654b5d4c) SHA1(e73834dbb35cf78eab68a5966e4049640e16dddf)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dude_u4.l1", 0x00000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dude_u19.l1", 0x20000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) @@ -355,7 +340,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u26-pa6.11c", 0x4000, 0x4000, CRC(6f6a6e22) SHA1(2d8a1b472eb06a9f7aeea4b2f9a82f83eb4ee08a)) ROM_LOAD("u27-pa6.11c", 0x8000, 0x8000, CRC(26022273) SHA1(ca66139c3bd0c313d41a396c484d2c1b8f4ae536)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dude_u4.l1", 0x00000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("dude_u19.l1", 0x20000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) @@ -371,7 +356,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.l7", 0x4000, 0x4000, CRC(cee98aed) SHA1(5b652684c10ab4945783089d848b2f663d3b2547)) ROM_LOAD("pool_u27.l7", 0x8000, 0x8000, CRC(356d9a89) SHA1(ce795c535d03a14d28fb3f2071cae48ccdb1a856)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) @@ -384,7 +369,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.la6", 0x4000, 0x4000, CRC(fec70d5a) SHA1(bc155a590f64f2b43b8799c1a6d2336dde45a10c)) ROM_LOAD("pool_u27.la6", 0x8000, 0x8000, CRC(91fb5231) SHA1(538ddc66a5885e4b7a840d35a1e62b92f73b39ad)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) @@ -397,7 +382,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.l5", 0x4000, 0x4000, CRC(373d18d9) SHA1(320d72777380971c16fe59cb1ed2314dec76705d)) ROM_LOAD("pool_u27.l5", 0x8000, 0x8000, CRC(1a2f0717) SHA1(cb8a7a62e0aac721ce68ae0bb1157b92edda62cb)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) @@ -410,7 +395,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.le2", 0x4000, 0x4000, CRC(70526965) SHA1(69c7b74fff8fcc351e8bd9b8fce7655aebf7205c)) ROM_LOAD("pool_u27.le2", 0x8000, 0x8000, CRC(90911f02) SHA1(ef3d32b3c5bafcd886bbde8b897cb225c0c04464)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) @@ -423,7 +408,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.pa7", 0x4000, 0x4000, CRC(91d2aae9) SHA1(b3dbc80809bca8b0435c3d8a0ceb504acab4a04a)) ROM_LOAD("pool_u27.pa7", 0x8000, 0x8000, CRC(eff6b940) SHA1(e0c3858803bbc5cacedefe57681efc2dc339e16d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) @@ -439,7 +424,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rad_u26.l1", 0x4000, 0x4000, CRC(84b1a125) SHA1(dd01fb9189acd2620c57149921aadb051f7a2412)) ROM_LOAD("rad_u27.l1", 0x8000, 0x8000, CRC(6f6ca382) SHA1(a61055aab97d3fe2ecd0ed4281a9681b1d910269)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) // W10/W11 are jumpered: W11 shorted, W10 open (U20 is a 27256) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) // W10/W11 are jumpered: W11 shorted, W10 open (U20 is a 27256) ROM_LOAD("rad_u4.l1", 0x00000, 0x10000, CRC(5aafc09c) SHA1(27984bbc91dc7593e6a5b42f74dd6ddf58189bec)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rad_u19.l1", 0x20000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) @@ -454,7 +439,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rad_u26.l1", 0x4000, 0x4000, CRC(84b1a125) SHA1(dd01fb9189acd2620c57149921aadb051f7a2412)) ROM_LOAD("u27-lg1.rom", 0x8000, 0x8000, CRC(4f2eca4b) SHA1(ff44deded1686cfa0351c4499485d6eb4561cbc1)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) // W10/W11 are jumpered: W11 shorted, W10 open (U20 is a 27256) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) // W10/W11 are jumpered: W11 shorted, W10 open (U20 is a 27256) ROM_LOAD("rad_u4.l1", 0x00000, 0x10000, CRC(5aafc09c) SHA1(27984bbc91dc7593e6a5b42f74dd6ddf58189bec)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rad_u19.l1", 0x20000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) @@ -469,7 +454,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rad_u26.p1", 0x4000, 0x4000, CRC(7d736ae9) SHA1(4ea6945fa5cfbd33fcdf780814b0bf5cb3faa388)) ROM_LOAD("u27-p1.rom", 0x8000, 0x8000, CRC(83b1d928) SHA1(b1bd5d8a93f1ab9fb9bf5c268d8530be438448e6)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) // W10/W11 are jumpered: W11 shorted, W10 open (U20 is a 27256) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) // W10/W11 are jumpered: W11 shorted, W10 open (U20 is a 27256) ROM_LOAD("rad_u4.p3", 0x00000, 0x10000, CRC(d31b7744) SHA1(7ebcc1503fc322909d32c7c8bda8c0b6505919b3)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rad_u19.l1", 0x20000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) @@ -487,7 +472,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gamb_u26.l3", 0x4000, 0x4000, CRC(a65f6004) SHA1(ea44bb7f8f2ec9e5989be63ba41f674b14d19b8a)) ROM_LOAD("gamb_u27.l3", 0x8000, 0x8000, CRC(9be0f613) SHA1(1c2b442bc3daef212fe23ff03f5409c354e79989)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gamb_u4.l2", 0x00000, 0x10000, CRC(c0cfa9be) SHA1(352df9a4dcbc131ae249416e9e517137a04627ba)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("gamb_u19.l1", 0x20000, 0x10000, CRC(04a3a8c8) SHA1(e72ef767f13282d2335cda3288037610d9bfedf2)) @@ -500,7 +485,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gamb_u26.pa7", 0x4000, 0x4000, CRC(594db647) SHA1(914d10755c2a1609d3945554fdd8006f7d294287)) ROM_LOAD("gamb_u27.pa7", 0x8000, 0x8000, CRC(696248c4) SHA1(892ea48121165792d10d64dcfc188e4a100e6371)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gamb_u4.l2", 0x00000, 0x10000, CRC(c0cfa9be) SHA1(352df9a4dcbc131ae249416e9e517137a04627ba)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("gamb_u19.l1", 0x20000, 0x10000, CRC(04a3a8c8) SHA1(e72ef767f13282d2335cda3288037610d9bfedf2)) @@ -516,7 +501,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr_u26.l2", 0x4000, 0x4000, CRC(cd7cad9e) SHA1(e381fa73895c307a0b3b4b699cfec2a68908f6f7)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -529,7 +514,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.ea3", 0x4000, 0x4000, CRC(78c3c1ad) SHA1(04e4370548b3ba85c49634402a0ea166e3643f68)) ROM_LOAD("rolr_u27.ea3", 0x8000, 0x8000, CRC(18685158) SHA1(d1a79fbe1185fb9e1ae1d9e2b2751429f487bb4c)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -542,7 +527,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr_u26.pe1", 0x4000, 0x4000, CRC(56620505) SHA1(2df9097e52178f246148a40e0ad4a6e6a5cdb5d4)) ROM_LOAD("rolr_u27.pe1", 0x8000, 0x8000, CRC(724d0af2) SHA1(5de5596f4e594c0e6b8448817de6ff46ffc7194b)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.pe1", 0x00000, 0x10000, CRC(8c383b24) SHA1(5c738e5ec566f7fa5706cd4c33e5d706fa76c72d)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.pe1", 0x20000, 0x10000, CRC(c6880cff) SHA1(c8ce23d68297d36ef62e508855a478434ff9a592)) @@ -555,7 +540,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr_u26.pa2", 0x4000, 0x4000, CRC(11d96b1c) SHA1(e96991bdef8b14043285feeb4cacc182a6e9dcbd)) ROM_LOAD("rolr_u27.pa2", 0x8000, 0x8000, CRC(ee547bd5) SHA1(db45bf7a25321ac041f58404f7512bded9ebf11e)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.pa1", 0x00000, 0x10000, CRC(324df946) SHA1(e7ba2b9434baea20a0cf38540fdab1668c058539)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.pa1", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -568,7 +553,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.lu3", 0x4000, 0x4000, CRC(7d71ed50) SHA1(092aa13706a7fe58ad80e88c1c4a5c1d7d712546)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -581,7 +566,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.lg3", 0x4000, 0x4000, CRC(438d2b94) SHA1(f507a06794563701b6d4fc51ff90a42a6d21d060)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -594,7 +579,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.lf2", 0x4000, 0x4000, CRC(a33a3a39) SHA1(fa67cede5fe9f86ce8772e49dba8d929d2b53ecb)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -607,7 +592,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.lf3", 0x4000, 0x4000, CRC(0c54de2a) SHA1(764a0986bb1966ddfd547ee6380debaaa1ea3769)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -620,7 +605,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.ad2", 0x4000, 0x4000, CRC(913574ac) SHA1(52e2b398d087e998ba5c16a623c7d1a02b99ca55)) ROM_LOAD("rolr_u27.ad2", 0x8000, 0x8000, CRC(92d2172f) SHA1(73f15d338f2680ee2dd961e9e4d4ea97e9328b6e)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) @@ -636,7 +621,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gshw_u26.l3", 0x4000, 0x4000, CRC(3419bfb2) SHA1(7ce294a3118d20c7cdc3d5cd946e4c43090c5151)) ROM_LOAD("u27-lu4.rom", 0x8000, 0x8000, CRC(ba265978) SHA1(66ac8e83e35cdfd72f1d3aa8ce6d92c2c833f304)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gshw_u4.l2", 0x00000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("gshw_u19.l1", 0x20000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) @@ -649,7 +634,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gameshow_u26-lu3.rom", 0x4000, 0x4000, CRC(4fa15683) SHA1(789bac55090a54d5b5180a0ef49c3903238f407f)) ROM_LOAD("gameshow_u27-lu3.rom", 0x8000, 0x8000, CRC(22270bd2) SHA1(a24a5e199179fd7c7ae8cd1b24c1d21b2fadf8da)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gshw_u4.l2", 0x00000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("gshw_u19.l1", 0x20000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) @@ -662,7 +647,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gshw_u26.l3", 0x4000, 0x4000, CRC(3419bfb2) SHA1(7ce294a3118d20c7cdc3d5cd946e4c43090c5151)) ROM_LOAD("gshw_u27.l3", 0x8000, 0x8000, CRC(4f3babb6) SHA1(87091a6786fc6817529cfed7f60396babe153d8d)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gshw_u4.l2", 0x00000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("gshw_u19.l1", 0x20000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) @@ -675,7 +660,7 @@ ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gshw_u26.l3", 0x4000, 0x4000, CRC(3419bfb2) SHA1(7ce294a3118d20c7cdc3d5cd946e4c43090c5151)) ROM_LOAD("u27-lg6.bin", 0x8000, 0x8000, CRC(02c75b24) SHA1(29bc0404c8598393cb1d0f17fb157e84f3b9a794)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("gshw_u4.l2", 0x00000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) ROM_RELOAD(0x10000, 0x10000) ROM_LOAD("gshw_u19.l1", 0x20000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) @@ -695,7 +680,7 @@ ROM_REGION(0x10000, "sound2", 0) ROM_LOAD("strx_u21.l1", 0x0000, 0x8000, CRC(6a323227) SHA1(7c7263754e5672c654a2ee9582f0b278e637a909)) ROM_LOAD("strx_u22.l1", 0x8000, 0x8000, CRC(58407eb4) SHA1(6bd9b304c88d9470eae5afb6621187f4a8313573)) - ROM_REGION(0x80000, "bgcpu", ROMREGION_ERASEFF) // W2/W3 are jumpered: W3 shorted, W2 open (U4 and U19 are 27256s); W10/W11 don't matter because U20 is unpopulated + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) // W2/W3 are jumpered: W3 shorted, W2 open (U4 and U19 are 27256s); W10/W11 don't matter because U20 is unpopulated ROM_LOAD("pfrc_u4.l2", 0x00000, 0x8000, CRC(8f431529) SHA1(0f479990715a31fd860c000a066cffb70da502c2)) ROM_RELOAD(0x08000,0x8000) ROM_RELOAD(0x10000,0x8000) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/s11.cpp mame-0.224+dfsg.1/src/mame/drivers/s11.cpp --- mame-0.223+dfsg.1/src/mame/drivers/s11.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/s11.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -9,10 +9,14 @@ ToDo: -- Can coin up but not start +- tic-tac-strike belongs in s11a.cpp +- gold mine belongs in s11b.cpp +- top dawg belongs in s11b.cpp +- shuffle inn belongs in s11b.cpp Known keys necessary to get games to start (so the proper number of balls are detected): - - Road Kings: press 'Up' (the direction key) and Q, and press "1" after inserting 1 or more credits. + - Grand Lizard: Press S, D, F, and press "1" after inserting 1 or more credits. + - Road Kings: press 'Up' (the direction key) and 'Delete', and press "1" after inserting 1 or more credits. - High Speed: press D (ball trough center), F (ball trough lower right) and Enter (Ball Shooter) after inserting 1 or more credits. *****************************************************************************************/ @@ -26,10 +30,22 @@ #include "s11.lh" - +/* +15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 RW MEMPROT +0 0 0 0 0 x x x 0 * * * * * * * * * battery backed RAM RW normal +0 0 0 0 0 x x 0 x * * * * * * * * * battery backed RAM RW normal +0 0 0 0 0 x 0 x x * * * * * * * * * battery backed RAM RW normal +0 0 0 0 0 0 x x x * * * * * * * * * battery backed RAM RW normal +0 0 0 0 0 1 1 1 1 * * * * * * * * 0 battery backed RAM RW in protected area, but protection switch is off +0 0 0 0 0 1 1 1 1 * * * * * * * R 1 battery backed RAM Read in protected area, but protection switch is on, read is allowed +0 0 0 0 0 1 1 1 1 * * * * * * * W 1 battery backed RAM Write in protected area, but protection switch is on, write is BLOCKED +*/ void s11_state::s11_main_map(address_map &map) { map(0x0000, 0x07ff).ram().share("nvram"); + // TODO: + //map(0x0000, 0x077f).ram().share("nvram"); // unprotected ram area + //map(0x0780, 0x07ff).rw(FUNC(prot_ram_r), FUNC(prot_ram_w)); // protected ram area map(0x2100, 0x2103).rw(m_pia21, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids map(0x2200, 0x2200).w(FUNC(s11_state::sol3_w)); // solenoids map(0x2400, 0x2403).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps @@ -49,14 +65,6 @@ map(0xc000, 0xffff).bankr("bank1"); } -void s11_state::s11_bg_map(address_map &map) -{ - map(0x0000, 0x07ff).mirror(0x1800).ram(); - map(0x2000, 0x2001).mirror(0x1ffe).rw(m_ym2151, FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x4000, 0x4003).mirror(0x1ffc).rw(m_pia40, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x8000, 0xffff).rom(); -} - static INPUT_PORTS_START( s11 ) PORT_START("SW.0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) // always plumb-bob tilt @@ -238,8 +246,6 @@ // sound ns if(m_pias) m_pias->ca1_w(state); - if(m_pia40) - m_pia40->cb2_w(state); } void s11_state::lamp0_w(uint8_t data) @@ -336,18 +342,18 @@ void s11_state::pia34_pb_w(uint8_t data) { - if(m_pia40) - m_pia40->portb_w(data); - else + if(m_bg) m_bg->data_w(data); + else if (m_ps88) + m_ps88->data_w(data); } WRITE_LINE_MEMBER( s11_state::pia34_cb2_w ) { - if(m_pia40) - m_pia40->cb1_w(state); // MCB2 through CPU interface - else - m_bg->ctrl_w(state); + if(m_bg) + m_bg->ctrl_w(state); // MCB2 through CPU interface + else if (m_ps88) + m_ps88->strobe_w(state); } void s11_state::bank_w(uint8_t data) @@ -375,27 +381,6 @@ return m_sound_data; } -WRITE_LINE_MEMBER( s11_state::ym2151_irq_w ) -{ - if(m_pia40) - { - if(state == CLEAR_LINE) - m_pia40->ca1_w(1); - else - m_pia40->ca1_w(0); - } -} - -WRITE_LINE_MEMBER( s11_state::pia40_cb2_w ) -{ - m_pia34->cb1_w(state); // To Widget MCB1 through CPU Data interface -} - -void s11_state::pia40_pb_w(uint8_t data) -{ - m_pia34->portb_w(data); -} - void s11_state::init_s11() { uint8_t *ROM = memregion("audiocpu")->base(); @@ -482,41 +467,46 @@ INPUT_MERGER_ANY_HIGH(config, m_audioirq).output_handler().set_inputline(m_audiocpu, M6808_IRQ_LINE); SPEAKER(config, "speaker").front_center(); - MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); + MC1408(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); - vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, m_dac, 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, m_dac, -1.0, DAC_VREF_NEG_INPUT); SPEAKER(config, "speech").front_center(); - HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, "speech", 1.00); + HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, "speech", 0.5); PIA6821(config, m_pias, 0); m_pias->readpa_handler().set(FUNC(s11_state::sound_r)); m_pias->set_port_a_input_overrides_output_mask(0xff); m_pias->writepa_handler().set(FUNC(s11_state::sound_w)); - m_pias->writepb_handler().set("dac", FUNC(dac_byte_interface::data_w)); + m_pias->writepb_handler().set(m_dac, FUNC(dac_byte_interface::data_w)); m_pias->ca2_handler().set(m_hc55516, FUNC(hc55516_device::clock_w)); m_pias->cb2_handler().set(m_hc55516, FUNC(hc55516_device::digit_w)); m_pias->irqa_handler().set(m_audioirq, FUNC(input_merger_device::in_w<0>)); m_pias->irqb_handler().set(m_audioirq, FUNC(input_merger_device::in_w<1>)); +} - /* Add the background music card */ - MC6809E(config, m_bgcpu, 8000000 / 4); // MC68B09E - m_bgcpu->set_addrmap(AS_PROGRAM, &s11_state::s11_bg_map); +void s11_state::s11_bgs(machine_config &config) +{ + s11(config); + /* Add the background sound card */ + SPEAKER(config, "bgspk").front_center(); + S11_BGS(config, m_bg); + m_pia34->ca2_handler().set(m_bg, FUNC(s11_bgs_device::resetq_w)); + m_bg->pb_cb().set(m_pia34, FUNC(pia6821_device::portb_w)); + m_bg->cb2_cb().set(m_pia34, FUNC(pia6821_device::cb1_w)); + m_bg->add_route(ALL_OUTPUTS, "bgspk", 0.5); +} - SPEAKER(config, "bg").front_center(); - YM2151(config, m_ym2151, 3580000); - m_ym2151->irq_handler().set(FUNC(s11_state::ym2151_irq_w)); - m_ym2151->add_route(ALL_OUTPUTS, "bg", 0.50); - - MC1408(config, "dac1", 0).add_route(ALL_OUTPUTS, "bg", 0.25); - - PIA6821(config, m_pia40, 0); - m_pia40->writepa_handler().set("dac1", FUNC(dac_byte_interface::data_w)); - m_pia40->writepb_handler().set(FUNC(s11_state::pia40_pb_w)); - m_pia40->cb2_handler().set(FUNC(s11_state::pia40_cb2_w)); - m_pia40->irqa_handler().set_inputline(m_bgcpu, M6809_FIRQ_LINE); - m_pia40->irqb_handler().set_inputline(m_bgcpu, INPUT_LINE_NMI); +void s11_state::s11_bgm(machine_config &config) +{ + s11(config); + /* Add the background music card */ + SPEAKER(config, "bgspk").front_center(); + S11_BGM(config, m_bg); + m_pia34->ca2_handler().set(m_bg, FUNC(s11_bgm_device::resetq_w)); + m_bg->pb_cb().set(m_pia34, FUNC(pia6821_device::portb_w)); + m_bg->cb2_cb().set(m_pia34, FUNC(pia6821_device::cb1_w)); + m_bg->add_route(ALL_OUTPUTS, "bgspk", 1.0); } @@ -537,8 +527,8 @@ ROM_LOAD("lzrd_u22.l1", 0x14000, 0x4000, CRC(4e782eba) SHA1(b44ab499128300175bdb57f07ffe2992c82e47e4)) ROM_RELOAD( 0x10000, 0x4000) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("lzrd_u4.l1", 0x8000, 0x8000, CRC(4baafc11) SHA1(3507f5f37e02688fa56cf5bb303eaccdcedede06)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("lzrd_u4.l1", 0x0000, 0x8000, CRC(4baafc11) SHA1(3507f5f37e02688fa56cf5bb303eaccdcedede06)) ROM_END ROM_START(grand_l3) @@ -555,8 +545,8 @@ ROM_LOAD("lzrd_u22.l1", 0x14000, 0x4000, CRC(4e782eba) SHA1(b44ab499128300175bdb57f07ffe2992c82e47e4)) ROM_RELOAD( 0x10000, 0x4000) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("lzrd_u4.l1", 0x8000, 0x8000, CRC(4baafc11) SHA1(3507f5f37e02688fa56cf5bb303eaccdcedede06)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("lzrd_u4.l1", 0x0000, 0x8000, CRC(4baafc11) SHA1(3507f5f37e02688fa56cf5bb303eaccdcedede06)) ROM_END /*------------------------- @@ -572,8 +562,8 @@ ROM_LOAD("hs_u21.l2", 0x18000, 0x8000, CRC(c0580037) SHA1(675ca65a6a20f8607232c532b4d127641f77d837)) ROM_LOAD("hs_u22.l2", 0x10000, 0x8000, CRC(c03be631) SHA1(53823e0f55377a45aa181882c310dd307cf368f5)) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("hs_u4.l1", 0x8000, 0x8000, CRC(0f96e094) SHA1(58650705a02a71ced85f5c2a243722a35282cbf7)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("hs_u4.l1", 0x0000, 0x8000, CRC(0f96e094) SHA1(58650705a02a71ced85f5c2a243722a35282cbf7)) ROM_END ROM_START(hs_l3) @@ -586,8 +576,8 @@ ROM_LOAD("hs_u21.l2", 0x18000, 0x8000, CRC(c0580037) SHA1(675ca65a6a20f8607232c532b4d127641f77d837)) ROM_LOAD("hs_u22.l2", 0x10000, 0x8000, CRC(c03be631) SHA1(53823e0f55377a45aa181882c310dd307cf368f5)) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("hs_u4.l1", 0x8000, 0x8000, CRC(0f96e094) SHA1(58650705a02a71ced85f5c2a243722a35282cbf7)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("hs_u4.l1", 0x0000, 0x8000, CRC(0f96e094) SHA1(58650705a02a71ced85f5c2a243722a35282cbf7)) ROM_END /*------------------------- @@ -603,8 +593,8 @@ ROM_LOAD("road_u21.l1", 0x18000, 0x8000, CRC(f34efbf4) SHA1(cb5ffe9818994f4681e3492a5cd46f410d2e5353)) ROM_LOAD("road_u22.l1", 0x10000, 0x8000, CRC(a9803804) SHA1(a400d4621c3f7a6e47546b2f33dc4920183a5a74)) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("road_u4.l1", 0x8000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("road_u4.l1", 0x0000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) ROM_END ROM_START(rdkng_l2) @@ -616,8 +606,8 @@ ROM_LOAD("road_u21.l1", 0x18000, 0x8000, CRC(f34efbf4) SHA1(cb5ffe9818994f4681e3492a5cd46f410d2e5353)) ROM_LOAD("road_u22.l1", 0x10000, 0x8000, CRC(a9803804) SHA1(a400d4621c3f7a6e47546b2f33dc4920183a5a74)) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("road_u4.l1", 0x8000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("road_u4.l1", 0x0000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) ROM_END ROM_START(rdkng_l3) @@ -629,8 +619,8 @@ ROM_LOAD("road_u21.l1", 0x18000, 0x8000, CRC(f34efbf4) SHA1(cb5ffe9818994f4681e3492a5cd46f410d2e5353)) ROM_LOAD("road_u22.l1", 0x10000, 0x8000, CRC(a9803804) SHA1(a400d4621c3f7a6e47546b2f33dc4920183a5a74)) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("road_u4.l1", 0x8000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("road_u4.l1", 0x0000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) ROM_END ROM_START(rdkng_l4) @@ -642,8 +632,8 @@ ROM_LOAD("road_u21.l1", 0x18000, 0x8000, CRC(f34efbf4) SHA1(cb5ffe9818994f4681e3492a5cd46f410d2e5353)) ROM_LOAD("road_u22.l1", 0x10000, 0x8000, CRC(a9803804) SHA1(a400d4621c3f7a6e47546b2f33dc4920183a5a74)) - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) - ROM_LOAD("road_u4.l1", 0x8000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) + ROM_LOAD("road_u4.l1", 0x0000, 0x8000, CRC(4395b48f) SHA1(2325ce6ba7f6f92f884c302e6f053c31229dc774)) ROM_END /************************ From here, not pinball machines **************************************/ @@ -659,8 +649,6 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("tts_u21.256", 0x18000, 0x8000, NO_DUMP) ROM_LOAD("tts_u22.256", 0x10000, 0x8000, NO_DUMP) - - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) ROM_END ROM_START(tts_l1) @@ -671,8 +659,6 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("tts_u21.256", 0x18000, 0x8000, NO_DUMP) ROM_LOAD("tts_u22.256", 0x10000, 0x8000, NO_DUMP) - - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) ROM_END /*------------------------------- @@ -686,8 +672,6 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("u21.256", 0x18000, 0x8000, CRC(3b801570) SHA1(50b50ff826dcb031a30940fa3099bd3a8d773831)) ROM_LOAD("u22.256", 0x10000, 0x8000, CRC(08352101) SHA1(a7437847a71cf037a80686292f9616b1e08922df)) - - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) ROM_END /*------------------------- @@ -701,8 +685,6 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("tdsu21r1.256", 0x18000, 0x8000, CRC(6a323227) SHA1(7c7263754e5672c654a2ee9582f0b278e637a909)) ROM_LOAD("tdsu22r1.256", 0x10000, 0x8000, CRC(58407eb4) SHA1(6bd9b304c88d9470eae5afb6621187f4a8313573)) - - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) ROM_END /*---------------------------- @@ -716,18 +698,16 @@ ROM_REGION(0x20000, "audiocpu", ROMREGION_ERASEFF) ROM_LOAD("u21snd-2.rv1", 0x18000, 0x8000, CRC(80ddce05) SHA1(9498260e5ccd2fe0eb03ff321dd34eb945b0213a)) ROM_LOAD("u22snd-2.rv1", 0x10000, 0x8000, CRC(6894abaf) SHA1(2d661765fbfce33a73a20778c41233c0bd9933e9)) - - ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF) ROM_END -GAME( 1986, grand_l4, 0, s11, s11, s11_state, init_s11, ROT0, "Williams", "Grand Lizard (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, grand_l3, grand_l4, s11, s11, s11_state, init_s11, ROT0, "Williams", "Grand Lizard (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, hs_l4, 0, s11, s11, s11_state, init_s11, ROT0, "Williams", "High Speed (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, hs_l3, hs_l4, s11, s11, s11_state, init_s11, ROT0, "Williams", "High Speed (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l4, 0, s11, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l1, rdkng_l4, s11, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l2, rdkng_l4, s11, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l3, rdkng_l4, s11, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, grand_l4, 0, s11_bgs, s11, s11_state, init_s11, ROT0, "Williams", "Grand Lizard (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, grand_l3, grand_l4, s11_bgs, s11, s11_state, init_s11, ROT0, "Williams", "Grand Lizard (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, hs_l4, 0, s11_bgs, s11, s11_state, init_s11, ROT0, "Williams", "High Speed (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, hs_l3, hs_l4, s11_bgs, s11, s11_state, init_s11, ROT0, "Williams", "High Speed (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l4, 0, s11_bgm, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l1, rdkng_l4, s11_bgm, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l2, rdkng_l4, s11_bgm, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l3, rdkng_l4, s11_bgm, s11, s11_state, init_s11, ROT0, "Williams", "Road Kings (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) GAME( 1986, tts_l2, 0, s11, s11, s11_state, init_s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) GAME( 1986, tts_l1, tts_l2, s11, s11, s11_state, init_s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/saitek_exchess.cpp mame-0.224+dfsg.1/src/mame/drivers/saitek_exchess.cpp --- mame-0.223+dfsg.1/src/mame/drivers/saitek_exchess.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/saitek_exchess.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -241,7 +241,7 @@ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); - screen.set_size(1020, 1080); + screen.set_size(1020/1.5, 1080/1.5); screen.set_visarea_full(); } diff -Nru mame-0.223+dfsg.1/src/mame/drivers/saitek_intchess.cpp mame-0.224+dfsg.1/src/mame/drivers/saitek_intchess.cpp --- mame-0.223+dfsg.1/src/mame/drivers/saitek_intchess.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/saitek_intchess.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -164,6 +164,7 @@ } + /****************************************************************************** I/O ******************************************************************************/ diff -Nru mame-0.223+dfsg.1/src/mame/drivers/saitek_mark5.cpp mame-0.224+dfsg.1/src/mame/drivers/saitek_mark5.cpp --- mame-0.223+dfsg.1/src/mame/drivers/saitek_mark5.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/saitek_mark5.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -436,7 +436,7 @@ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); - screen.set_size(942, 1080); + screen.set_size(942/1.5, 1080/1.5); screen.set_visarea_full(); config.set_default_layout(layout_saitek_mark5); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/saitek_simultano.cpp mame-0.224+dfsg.1/src/mame/drivers/saitek_simultano.cpp --- mame-0.223+dfsg.1/src/mame/drivers/saitek_simultano.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/saitek_simultano.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -19,6 +19,9 @@ It also appeared in Tandy's Chess Champion 2150, not as a simple rebrand, but with hardware differences: 3MHz R65C02, 1 64KB ROM and no EGR socket. +TODO: +- where does the IRQ come from? same problem as with stratos + ***************************************************************************/ #include "emu.h" diff -Nru mame-0.223+dfsg.1/src/mame/drivers/saitek_ssystem3.cpp mame-0.224+dfsg.1/src/mame/drivers/saitek_ssystem3.cpp --- mame-0.223+dfsg.1/src/mame/drivers/saitek_ssystem3.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/saitek_ssystem3.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -8,13 +8,11 @@ manufacturing chain is unknown. The software is by SciSys (no mention of Novag in the ROM, it has "COPYRIGHT SCISYS LTD 1979"). -This is their 1st original product. MK II was licensed from Commodore, and +This is their 1st original product. MK II was licensed from Peter Jennings, and MK I was, to put it bluntly, a bootleg. The chess engine is by Mike Johnson, with support from David Levy. -Hardware notes: - -Master Unit: +Hardware notes (Master Unit): - Synertek 6502A @ 2MHz (4MHz XTAL) - Synertek 6522 VIA - 8KB ROM (2*Synertek 2332) @@ -25,7 +23,7 @@ Chess Unit: - PCB label: Radofin XM-2057-0C -- Fairchild F6808P CPU @ ~6MHz (M6808 compatible) +- Fairchild F6808P CPU @ ~6.8MHz (M6808 compatible) - Fairchild F6821P PIA - 2KB ROM(2316), 128x8 RAM(F6810P) - 2*HLCD0438, chessboard LCD @@ -54,7 +52,6 @@ Should be doable to add, but 6522 device doesn't support live clock changes. - LCD TC pin? connects to the display, source is a 50hz timer(from power supply), probably to keep refreshing the LCD when inactive, there is no need to emulate it -- finish chess unit lcd emulation - dump/add printer unit - dump/add ssystem3 1980 program revision, were the BTANB fixed? - ssystem4 softwarelist if a prototype cartridge is ever dumped @@ -65,6 +62,8 @@ lessen the chance by adding a spring to the switch. - Similar to the TIME switch bug, pressing 2 buttons simultaneously can cause it to malfunction, eg. press A+CE or C+CE and an "8" appears in the display. +- chess unit screen briefly flickers at power-on and when the subcpu receives an + NMI in the middle of updating the LCD, it is mentioned in the manual ******************************************************************************/ @@ -97,15 +96,20 @@ ssystem3_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_subcpu(*this, "subcpu"), m_via(*this, "via"), m_pia(*this, "pia"), - m_lcd(*this, "lcd"), - m_display(*this, "display"), + m_lcd1(*this, "lcd1"), + m_lcd2(*this, "lcd2_%u", 0), + m_display(*this, "display%u", 0), m_dac(*this, "dac"), m_nvram(*this, "nvram"), - m_inputs(*this, "IN.%u", 0) + m_inputs(*this, "IN.%u", 0), + m_out_lcd2(*this, "s%u.%u", 0U, 0U) { } + DECLARE_INPUT_CHANGED_MEMBER(cu_plug); + // machine configs void ssystem3(machine_config &config); void ssystem4(machine_config &config); @@ -118,13 +122,16 @@ private: // devices/pointers required_device m_maincpu; + optional_device m_subcpu; required_device m_via; optional_device m_pia; - required_device m_lcd; - required_device m_display; + required_device m_lcd1; + optional_device_array m_lcd2; + optional_device_array m_display; required_device m_dac; optional_shared_ptr m_nvram; - required_ioport_array<4+2> m_inputs; + optional_ioport_array<4+3> m_inputs; + output_finder<8, 48> m_out_lcd2; // address maps void ssystem3_map(address_map &map); @@ -132,7 +139,7 @@ void chessunit_map(address_map &map); // I/O handlers - void lcd_q_w(u32 data) { m_lcd_q = data; } + void lcd1_output_w(u32 data) { m_lcd1_data = data; } void input_w(u8 data); u8 input_r(); void control_w(u8 data); @@ -141,26 +148,34 @@ void nvram_w(offs_t offset, u8 data); u8 nvram_r(offs_t offset); - void pia_a_w(u8 data); - u8 pia_a_r(); - void pia_b_w(u8 data); - u8 pia_b_r(); - void pia_cb2_w(int state); + void lcd2_pwm_w(offs_t offset, u8 data); + void lcd2_update(); + template void lcd2_output_w(offs_t offset, u32 data); + void cu_pia_a_w(u8 data); + u8 cu_pia_a_r(); + void cu_pia_b_w(u8 data); + u8 cu_pia_b_r(); u8 m_inp_mux = 0; u8 m_control = 0; u8 m_shift = 0; - u32 m_lcd_q = 0; + u32 m_lcd1_data = 0; + u64 m_lcd2_data = 0; + u8 m_lcd2_select = 0; bool m_xor_kludge = false; }; void ssystem3_state::machine_start() { + m_out_lcd2.resolve(); + // register for savestates save_item(NAME(m_inp_mux)); save_item(NAME(m_control)); save_item(NAME(m_shift)); - save_item(NAME(m_lcd_q)); + save_item(NAME(m_lcd1_data)); + save_item(NAME(m_lcd2_data)); + save_item(NAME(m_lcd2_select)); } @@ -206,28 +221,28 @@ // PB1: LCD DI // PB2: LCD CLK - m_lcd->di_w(BIT(data, 1)); - m_lcd->clk_w(BIT(data, 2)); + m_lcd1->di_w(BIT(data, 1)); + m_lcd1->clk_w(BIT(data, 2)); // PB2 also clocks a 4015B // DA: LCD DO, DB: Q3A if (data & ~m_control & 4) { - m_shift = m_shift << 1 | m_lcd->do_r(); + m_shift = m_shift << 1 | m_lcd1->do_r(); // weird TTL maze, I assume it's a hw kludge to fix a bug after the maskroms were already manufactured - u8 xorval = m_xor_kludge && (BIT(m_shift, 3) & ~(BIT(m_shift, 1) ^ BIT(m_shift, 4)) & ~(BIT(m_lcd_q, 7) & BIT(m_lcd_q, 23))) ? 0x12 : 0; + u8 xorval = m_xor_kludge && (BIT(m_shift, 3) & ~(BIT(m_shift, 1) ^ BIT(m_shift, 4)) & ~(BIT(m_lcd1_data, 7) & BIT(m_lcd1_data, 23))) ? 0x12 : 0; // update display for (int i = 0; i < 4; i++) - m_display->write_row(i, m_lcd_q >> (8*i) & 0xff); - m_display->write_row(4, (m_shift ^ xorval) | 0x100); - m_display->update(); + m_display[0]->write_row(i, m_lcd1_data >> (8*i) & 0xff); + m_display[0]->write_row(4, (m_shift ^ xorval) | 0x100); + m_display[0]->update(); } // PB3: device serial out if (m_inputs[5]->read() & 2) - m_pia->ca1_w(BIT(data, 3)); + m_pia->ca1_w(BIT(~data, 3)); // PB7: tied to PB6 (pulse timer 2) m_via->write_pb6(BIT(data, 7)); @@ -239,9 +254,10 @@ { u8 data = 0; - // PB4: device busy - // PB5: device attached? - //data ^= 0x30; + // PB4: device busy (unused on chess unit) + // PB5: device attached + if (m_inputs[5]->read() & 2) + data ^= 0x30; return ~data; } @@ -264,26 +280,74 @@ // Chess Unit -void ssystem3_state::pia_a_w(u8 data) +INPUT_CHANGED_MEMBER(ssystem3_state::cu_plug) +{ + m_subcpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE); + + if (newval) + m_pia->reset(); + else + m_display[1]->clear(); +} + +void ssystem3_state::lcd2_pwm_w(offs_t offset, u8 data) { + m_out_lcd2[offset & 0x3f][offset >> 6] = data; } -u8 ssystem3_state::pia_a_r() +void ssystem3_state::lcd2_update() { - return 0; + if (m_inputs[5]->read() & 2) + m_display[1]->matrix(1 << m_lcd2_select, m_lcd2_data); } -void ssystem3_state::pia_b_w(u8 data) +template +void ssystem3_state::lcd2_output_w(offs_t offset, u32 data) { + if (!offset) + data = 0; + + m_lcd2_data = u64(data) << 32 | m_lcd2_data >> 32; + + if (N == 1) + lcd2_update(); } -u8 ssystem3_state::pia_b_r() +void ssystem3_state::cu_pia_a_w(u8 data) { - return 0; + // PA0-PA2: CD4051 to LCD column + m_lcd2_select = data & 7; + lcd2_update(); } -void ssystem3_state::pia_cb2_w(int state) +u8 ssystem3_state::cu_pia_a_r() { + // PA7: serial data in + return ~m_control << 4 & 0x80; +} + +void ssystem3_state::cu_pia_b_w(u8 data) +{ + // PB3: LCD LOAD (both) + // PB4: LCD LCD (both) + CD4051 COM OUT/IN + // PB6: LCD CLOCK (both) + // PB7: LCD DATA IN (1st) + m_lcd2[0]->data_w(BIT(data, 7)); + + for (int i = 0; i < 2; i++) + m_lcd2[i]->clock_w(BIT(data, 6)); + + for (int i = 0; i < 2; i++) + m_lcd2[i]->load_w(BIT(~data, 3)); + + for (int i = 0; i < 2; i++) + m_lcd2[i]->lcd_w(BIT(data, 4)); +} + +u8 ssystem3_state::cu_pia_b_r() +{ + // PB5: look switch + return m_inputs[6]->read() << 5 & 0x20; } @@ -310,9 +374,9 @@ void ssystem3_state::chessunit_map(address_map &map) { - map(0x3600, 0x367f).ram(); + map(0x3000, 0x307f).mirror(0x0f80).ram(); map(0x4000, 0x47ff).mirror(0xb800).rom(); - map(0xa000, 0xa003).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x8000, 0x8003).mirror(0x3ffc).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); } @@ -350,7 +414,7 @@ PORT_CONFNAME( 0x01, 0x01, "Sound" ) PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_CONFNAME( 0x02, 0x02, "LCD Light" ) + PORT_CONFNAME( 0x02, 0x02, "LCD 1 Light" ) PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) PORT_CONFSETTING( 0x02, DEF_STR( On ) ) @@ -368,14 +432,22 @@ PORT_MODIFY("IN.3") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Time") // spring-loaded + PORT_MODIFY("IN.4") // switches + PORT_CONFNAME( 0x04, 0x04, "LCD 2 Light" ) + PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x04, DEF_STR( On ) ) + PORT_MODIFY("IN.5") // accessories/diodes PORT_CONFNAME( 0x01, 0x01, "Memory Unit" ) PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_CONFNAME( 0x02, 0x02, "Chess Unit" ) + PORT_CONFNAME( 0x02, 0x02, "Chess Unit" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ssystem3_state, cu_plug, 0) PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) PORT_CONFSETTING( 0x02, DEF_STR( On ) ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_CUSTOM) + + PORT_START("IN.6") // chess unit + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_TOGGLE PORT_CODE(KEYCODE_O) PORT_NAME("Look") INPUT_PORTS_END @@ -397,16 +469,16 @@ m_via->readpb_handler().set(FUNC(ssystem3_state::control_r)); /* video hardware */ - MD4332B(config, m_lcd); - m_lcd->write_q().set(FUNC(ssystem3_state::lcd_q_w)); + MD4332B(config, m_lcd1); + m_lcd1->write_q().set(FUNC(ssystem3_state::lcd1_output_w)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_refresh_hz(60); screen.set_size(1920/2, 729/2); screen.set_visarea_full(); - PWM_DISPLAY(config, m_display).set_size(5, 9); - m_display->set_bri_levels(0.25); + PWM_DISPLAY(config, m_display[0]).set_size(5, 9); + m_display[0]->set_bri_levels(0.25); config.set_default_layout(layout_saitek_ssystem4); @@ -423,22 +495,39 @@ /* basic machine hardware */ m_maincpu->set_addrmap(AS_PROGRAM, &ssystem3_state::ssystem3_map); - m6808_cpu_device &subcpu(M6808(config, "subcpu", 6000000)); // LC circuit - subcpu.set_addrmap(AS_PROGRAM, &ssystem3_state::chessunit_map); + M6808(config, m_subcpu, 6800000); // LC circuit, measured + m_subcpu->set_addrmap(AS_PROGRAM, &ssystem3_state::chessunit_map); config.set_perfect_quantum(m_maincpu); PIA6821(config, m_pia, 0); - m_pia->irqa_handler().set_inputline("subcpu", INPUT_LINE_NMI); - m_pia->writepa_handler().set(FUNC(ssystem3_state::pia_a_w)); - m_pia->readpa_handler().set(FUNC(ssystem3_state::pia_a_r)); - m_pia->writepb_handler().set(FUNC(ssystem3_state::pia_b_w)); - m_pia->readpb_handler().set(FUNC(ssystem3_state::pia_b_r)); - m_pia->cb2_handler().set(FUNC(ssystem3_state::pia_cb2_w)); + m_pia->irqa_handler().set_inputline(m_subcpu, INPUT_LINE_NMI); + m_pia->writepa_handler().set(FUNC(ssystem3_state::cu_pia_a_w)); + m_pia->readpa_handler().set(FUNC(ssystem3_state::cu_pia_a_r)); + m_pia->writepb_handler().set(FUNC(ssystem3_state::cu_pia_b_w)); + m_pia->readpb_handler().set(FUNC(ssystem3_state::cu_pia_b_r)); + m_pia->cb2_handler().set(m_pia, FUNC(pia6821_device::cb1_w)); + m_pia->cb2_handler().append(m_pia, FUNC(pia6821_device::ca2_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - m_display->set_segmask(0xf, 0x7f); // 7segs are at expected positions + /* video hardware */ + HLCD0438(config, m_lcd2[0], 0); + m_lcd2[0]->write_segs().set(FUNC(ssystem3_state::lcd2_output_w<0>)); + m_lcd2[0]->write_data().set(m_lcd2[1], FUNC(hlcd0438_device::data_w)); + + HLCD0438(config, m_lcd2[1], 0); + m_lcd2[1]->write_segs().set(FUNC(ssystem3_state::lcd2_output_w<1>)); + + screen_device &screen(SCREEN(config, "chessunit", SCREEN_TYPE_SVG)); + screen.set_refresh_hz(60); + screen.set_size(1060/1.5, 1080/1.5); + screen.set_visarea_full(); + + PWM_DISPLAY(config, m_display[1]).set_size(8, 48); + m_display[1]->output_x().set(FUNC(ssystem3_state::lcd2_pwm_w)); + + m_display[0]->set_segmask(0xf, 0x7f); // 7segs are at expected positions config.set_default_layout(layout_saitek_ssystem3); } @@ -464,6 +553,9 @@ ROM_REGION(53552, "screen", 0) ROM_LOAD("ssystem3.svg", 0, 53552, CRC(6047f88f) SHA1(2ff9cfce01cd3811a3f46f84b47fdc4ea2cf2ba8) ) + + ROM_REGION(748939, "chessunit", 0) + ROM_LOAD("chessunit.svg", 0, 748939, CRC(713a46fd) SHA1(6119162fb7c00f81aeca0dfe274475dc8575dd70) ) ROM_END ROM_START( ssystem4 ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/saitek_stratos.cpp mame-0.224+dfsg.1/src/mame/drivers/saitek_stratos.cpp --- mame-0.223+dfsg.1/src/mame/drivers/saitek_stratos.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/saitek_stratos.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -9,7 +9,6 @@ - Stratos - Turbo King - Corona --> saitek_corona.cpp -- Simultano --> saitek_simultano.cpp IMPORTANT: The user is expected to press the STOP button to turn off the computer. When not using -autosave, press that button before exiting MAME, or NVRAM can get corrupt. @@ -38,7 +37,6 @@ Stratos/Turbo King are identical. Corona has magnet sensors and two HELIOS chips. -Simultano has an extra LCD screen representing the chessboard state. There is no official Saitek program versioning for these. The D/D+ versions are known since they're the same chess engine as later Saitek modules, such as the Analyst module. diff -Nru mame-0.223+dfsg.1/src/mame/drivers/seattle.cpp mame-0.224+dfsg.1/src/mame/drivers/seattle.cpp --- mame-0.223+dfsg.1/src/mame/drivers/seattle.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/seattle.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2299,6 +2299,9 @@ ROM_REGION16_LE( 0x10000, "dcs", 0 ) // ADSP-2115 data Version L1.1, Labeled as Version 1.0 ROM_LOAD16_BYTE( "soundl11.u95", 0x000000, 0x8000, CRC(c589458c) SHA1(0cf970a35910a74cdcf3bd8119bfc0c693e19b00) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "314_mace.u96", 0x0000, 0x2000, CRC(65943e82) SHA1(984a1938f43671fc8f6394677396451dab7f042b) ) ROM_END @@ -2313,6 +2316,9 @@ ROM_REGION16_LE( 0x10000, "dcs", 0 ) // ADSP-2115 data Version L1.1 ROM_LOAD16_BYTE( "soundl11.u95", 0x000000, 0x8000, CRC(c589458c) SHA1(0cf970a35910a74cdcf3bd8119bfc0c693e19b00) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "314_mace.u96", 0x0000, 0x2000, CRC(65943e82) SHA1(984a1938f43671fc8f6394677396451dab7f042b) ) ROM_END @@ -2546,6 +2552,9 @@ DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" ) // Hard Drive Version 1.30 DISK_IMAGE( "blitz99", 0, SHA1(19877e26ffce81dd525031e9e2b4f83ff982e2d9) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "481_blitz-99.u96", 0x0000, 0x2000, CRC(f58df548) SHA1(5bda123035f49f06b4721ab4a1577a115470aa02) ) ROM_END ROM_START( blitz99a ) @@ -2562,6 +2571,9 @@ DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" ) // Hard Drive Version 1.30 DISK_IMAGE( "blitz99a", 0, SHA1(43f834727ce01d7a63b482fc28cbf292477fc6f2) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "481_blitz-99.u96", 0x0000, 0x2000, CRC(f58df548) SHA1(5bda123035f49f06b4721ab4a1577a115470aa02) ) ROM_END @@ -2590,6 +2602,9 @@ DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" ) // Hard Drive v1.0.3 Diagnostics v3.4 / Feb 1 1999 16:00:07 DISK_IMAGE( "carnevil", 0, SHA1(5cffb0de63ad36eb01c5951bab04d3f8a9e23e16) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "486_carnevil.u96", 0x0000, 0x2000, CRC(40eea9d4) SHA1(60a5f5c4de716722fa2ff55dccfc5fbbd7cd02e1) ) ROM_END @@ -2604,6 +2619,9 @@ DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" ) // Hard Drive v1.0.1 Diagnostics v3.3 / Oct 20 1998 11:44:41 DISK_IMAGE( "carnevi1", 0, BAD_DUMP SHA1(94532727512280930a100fe473bf3a938fe2d44f) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "486_carnevil.u96", 0x0000, 0x2000, CRC(40eea9d4) SHA1(60a5f5c4de716722fa2ff55dccfc5fbbd7cd02e1) ) ROM_END diff -Nru mame-0.223+dfsg.1/src/mame/drivers/segag80r.cpp mame-0.224+dfsg.1/src/mame/drivers/segag80r.cpp --- mame-0.223+dfsg.1/src/mame/drivers/segag80r.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/segag80r.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -136,6 +136,11 @@ #define VBEND (0) #define VBSTART (224) +// Unsure whether this should be 2 or 3. It depends on how many rising clock +// edges MEMRQ is held for, plus 1 additional cycle. Going to 3 creates +// noticeable slowdowns in Space Fury. +static constexpr int WAIT_STATES = 2; + /************************************* @@ -856,8 +861,8 @@ SPEAKER(config, "speaker").front_center(); /* sound boards */ - astrob_sound_board(config); - sega_speech_board(config); + ASTRO_BLASTER_AUDIO(config, m_g80_audio, 0).add_route(ALL_OUTPUTS, "speech", 1.0); + SEGA_SPEECH_BOARD(config, "speech", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); } @@ -1007,19 +1012,21 @@ ROM_LOAD( "924a.prom-u18", 0x9000, 0x0800, CRC(120a39c7) SHA1(d8fdf97290725cf9ebddab9eeb34d7adba097394) ) ROM_LOAD( "925a.prom-u19", 0x9800, 0x0800, CRC(790a7f4e) SHA1(16b7b8e864a8f5f59da6bf2ad17f1e4791f34abe) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "pr84.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) ) ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) ) ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) ) ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) ) - ROM_REGION( 0x0440, "proms", 0 ) // not dumped for this set, but believed identical + ROM_REGION( 0x0420, "proms", 0 ) // not dumped for this set, but believed identical ROM_LOAD( "316-0806.video1-u52", 0x0000, 0x0020, CRC(358128b6) SHA1(b6b4b9ecfdcc69b45e69e7a8614153d83be4c62b) ) /* 6331 */ ROM_LOAD( "316-0764.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* 6331, CPU board addressing */ - ROM_LOAD( "pr84.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ ROM_END ROM_START( astrob2 ) @@ -1045,19 +1052,21 @@ ROM_LOAD( "905.prom-u18", 0x9000, 0x0800, CRC(4f08f9f4) SHA1(755a825b18ed50caa7bf274a0a5c3a1b00b1c070) ) ROM_LOAD( "906.prom-u19", 0x9800, 0x0800, CRC(58149df1) SHA1(2bba56576a225ca47ce31a5b6dcc491546dfffec) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "pr84.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) ) ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) ) ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) ) ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) ) - ROM_REGION( 0x0440, "proms", 0 ) // not dumped for this set, but believed identical + ROM_REGION( 0x0420, "proms", 0 ) // not dumped for this set, but believed identical ROM_LOAD( "316-0806.video1-u52", 0x0000, 0x0020, CRC(358128b6) SHA1(b6b4b9ecfdcc69b45e69e7a8614153d83be4c62b) ) /* 6331 */ ROM_LOAD( "316-0764.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* 6331, CPU board addressing */ - ROM_LOAD( "pr84.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ ROM_END ROM_START( astrob2a ) @@ -1083,19 +1092,21 @@ ROM_LOAD( "905.prom-u18", 0x9000, 0x0800, CRC(4f08f9f4) SHA1(755a825b18ed50caa7bf274a0a5c3a1b00b1c070) ) ROM_LOAD( "906.prom-u19", 0x9800, 0x0800, CRC(58149df1) SHA1(2bba56576a225ca47ce31a5b6dcc491546dfffec) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "pr84.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) ) ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) ) ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) ) ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) ) - ROM_REGION( 0x0440, "proms", 0 ) + ROM_REGION( 0x0420, "proms", 0 ) ROM_LOAD( "316-0806.video1-u52", 0x0000, 0x0020, CRC(358128b6) SHA1(b6b4b9ecfdcc69b45e69e7a8614153d83be4c62b) ) /* 6331 */ ROM_LOAD( "316-0764.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* 6331, CPU board addressing */ - ROM_LOAD( "pr84.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ ROM_END ROM_START( astrob2b ) // This was dumped from 2 different PCB sets, with matching reads. Only different ROM from astrob2a is 829d. @@ -1121,19 +1132,21 @@ ROM_LOAD( "905.prom-u18", 0x9000, 0x0800, CRC(4f08f9f4) SHA1(755a825b18ed50caa7bf274a0a5c3a1b00b1c070) ) ROM_LOAD( "906.prom-u19", 0x9800, 0x0800, CRC(58149df1) SHA1(2bba56576a225ca47ce31a5b6dcc491546dfffec) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "pr84.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) ) ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) ) ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) ) ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) ) - ROM_REGION( 0x0440, "proms", 0 ) + ROM_REGION( 0x0420, "proms", 0 ) ROM_LOAD( "316-0806.video1-u52", 0x0000, 0x0020, CRC(358128b6) SHA1(b6b4b9ecfdcc69b45e69e7a8614153d83be4c62b) ) /* 6331 */ ROM_LOAD( "316-0764.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* 6331, CPU board addressing */ - ROM_LOAD( "pr84.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ ROM_END ROM_START( astrob1 ) @@ -1156,19 +1169,21 @@ ROM_LOAD( "851.prom-u15", 0x7800, 0x0800, CRC(3d4cf9f0) SHA1(11e996f33f3a104e50d0a54a0814ea3e07735683) ) ROM_LOAD( "852.prom-u16", 0x8000, 0x0800, CRC(af88a97e) SHA1(fe7993101c629b296b5da05519b0990cc2b78286) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "pr84.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) ) ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) ) ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) ) ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) ) - ROM_REGION( 0x0440, "proms", 0 ) // not dumped for this set, but believed identical + ROM_REGION( 0x0420, "proms", 0 ) // not dumped for this set, but believed identical ROM_LOAD( "316-0806.video1-u52", 0x0000, 0x0020, CRC(358128b6) SHA1(b6b4b9ecfdcc69b45e69e7a8614153d83be4c62b) ) /* 6331 */ ROM_LOAD( "316-0764.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* 6331, CPU board addressing */ - ROM_LOAD( "pr84.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ ROM_END ROM_START( astrobg ) @@ -1191,19 +1206,21 @@ ROM_LOAD( "835.u15", 0x7800, 0x0800, CRC(6eeeb409) SHA1(1caf9b7ac08a4adcbf8c17f9e4b398373db706e1) ) ROM_LOAD( "836.u16", 0x8000, 0x0800, CRC(07ffe6dc) SHA1(70673e8266139034afa64bf980b1b9ddbf294e0f) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808b_speech_de.u07", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "pr84.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "830_speech_de.u06", 0x0000, 0x0800, CRC(2d840552) SHA1(7a2a7b54378b6cc85b8ab5c26e42266aa747c635) ) ROM_LOAD( "831_speech_de.u05", 0x0800, 0x0800, CRC(46b30ee4) SHA1(c9e19a9b9ebc9b3b853e79f93ad74e4ec5dfd1ae) ) ROM_LOAD( "832_speech_de.u04", 0x1000, 0x0800, CRC(d05280b8) SHA1(8d30b23b83b32465a8a2decd2ce9bfed24394e7e) ) ROM_LOAD( "833_speech_de.u03", 0x1800, 0x0800, CRC(08f11459) SHA1(da6dc2bf30b95882f95c21739ec02fc89d286a66) ) - ROM_REGION( 0x0440, "proms", 0 ) // not dumped for this set, but believed identical + ROM_REGION( 0x0420, "proms", 0 ) // not dumped for this set, but believed identical ROM_LOAD( "316-0806.video1-u52", 0x0000, 0x0020, CRC(358128b6) SHA1(b6b4b9ecfdcc69b45e69e7a8614153d83be4c62b) ) /* 6331 */ ROM_LOAD( "316-0764.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* 6331, CPU board addressing */ - ROM_LOAD( "pr84.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* 7051, speech board addressing */ ROM_END ROM_START( 005 ) @@ -1526,8 +1543,36 @@ * *************************************/ +void segag80r_state::init_waitstates() +{ + address_space &pgmspace = m_maincpu->space(AS_PROGRAM); + address_space &opspace = m_maincpu->space(AS_OPCODES); + + pgmspace.install_read_tap(0x0000, 0xffff, "program_waitstate_r",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-WAIT_STATES); + return data; + }); + pgmspace.install_write_tap(0x0000, 0xffff, "program_waitstate_w",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-WAIT_STATES); + return data; + }); + + opspace.install_read_tap(0x0000, 0xffff, "opcodes_waitstate_r",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-WAIT_STATES); + return data; + }); +} + void segag80r_state::init_astrob() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); /* configure the 315-0062 security chip */ @@ -1537,19 +1582,18 @@ m_background_pcb = G80_BACKGROUND_NONE; /* install speech board */ - iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(speech_sound_device::data_w))); - iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(speech_sound_device::control_w))); + iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(sega_speech_device::data_w))); + iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(sega_speech_device::control_w))); /* install Astro Blaster sound board */ - iospace.install_write_handler(0x3e, 0x3f, write8sm_delegate(*this, FUNC(segag80r_state::astrob_sound_w))); - - save_item(NAME(m_sound_state)); - save_item(NAME(m_sound_rate)); + iospace.install_write_handler(0x3e, 0x3f, write8sm_delegate(*m_g80_audio, FUNC(segag80_audio_device::write))); } void segag80r_state::init_005() { + init_waitstates(); + /* configure the 315-0070 security chip */ m_decrypt = segag80_security(70); @@ -1566,6 +1610,8 @@ void segag80r_state::init_spaceod() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); /* configure the 315-0063 security chip */ @@ -1590,6 +1636,8 @@ void segag80r_state::init_monsterb() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); address_space &pgmspace = m_maincpu->space(AS_PROGRAM); @@ -1611,6 +1659,8 @@ void segag80r_state::init_monster2() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); address_space &pgmspace = m_maincpu->space(AS_PROGRAM); @@ -1633,6 +1683,8 @@ void segag80r_state::init_pignewt() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); address_space &pgmspace = m_maincpu->space(AS_PROGRAM); @@ -1657,6 +1709,8 @@ void segag80r_state::init_sindbadm() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); address_space &pgmspace = m_maincpu->space(AS_PROGRAM); @@ -1681,12 +1735,12 @@ // YEAR, NAME, PARENT, MACHINE, INPUT, CLASS, INIT, MONITOR,COMPANY,FULLNAME,FLAGS /* basic G-80 system with: CPU board, PROM board, Video I board, custom sound boards */ -GAME( 1981, astrob, 0, astrob, astrob, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 3)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, astrob2, astrob, astrob, astrob2, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 2)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, astrob2a, astrob, astrob, astrob2, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 2a)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, astrob2b, astrob, astrob, astrob2, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 2b)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, astrob1, astrob, astrob, astrob, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 1)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // instant death if you start game with 1 credit, protection?, bad dump? -GAME( 1981, astrobg, astrob, astrob, astrob, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (German)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, astrob, 0, astrob, astrob, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 3)", 0 ) +GAME( 1981, astrob2, astrob, astrob, astrob2, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 2)", 0 ) +GAME( 1981, astrob2a, astrob, astrob, astrob2, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 2a)", 0 ) +GAME( 1981, astrob2b, astrob, astrob, astrob2, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 2b)", 0 ) +GAME( 1981, astrob1, astrob, astrob, astrob, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (version 1)", 0 | MACHINE_NOT_WORKING ) // instant death if you start game with 1 credit, protection?, bad dump? +GAME( 1981, astrobg, astrob, astrob, astrob, segag80r_state, init_astrob, ROT270, "Sega", "Astro Blaster (German)", 0 ) GAME( 1981, 005, 0, sega005, 005, segag80r_state, init_005, ROT270, "Sega", "005", MACHINE_IMPERFECT_SOUND ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/segag80v.cpp mame-0.224+dfsg.1/src/mame/drivers/segag80v.cpp --- mame-0.223+dfsg.1/src/mame/drivers/segag80v.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/segag80v.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -135,6 +135,7 @@ ***************************************************************************/ #include "emu.h" +#include "audio/segag80.h" #include "includes/segag80v.h" #include "machine/segag80.h" @@ -143,15 +144,10 @@ #include "speaker.h" -/************************************* - * - * Constants - * - *************************************/ - -#define CPU_CLOCK 8000000 /* not used when video boards are connected */ -#define VIDEO_CLOCK 15468480 - +// Unsure whether this should be 2 or 3. It depends on how many rising clock +// edges MEMRQ is held for, plus 1 additional cycle. Going to 3 creates +// noticeable slowdowns in Space Fury. +static constexpr int WAIT_STATES = 2; /************************************* @@ -160,10 +156,10 @@ * *************************************/ -INPUT_CHANGED_MEMBER(segag80v_state::service_switch) +WRITE_LINE_MEMBER(segag80v_state::service_switch_w) { - /* pressing the service switch sends an NMI */ - if (newval) + // pressing the service switch sends an NMI + if (state) m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } @@ -172,13 +168,15 @@ { m_scrambled_write_pc = 0xffff; - /* register for save states */ save_item(NAME(m_mult_data)); save_item(NAME(m_mult_result)); save_item(NAME(m_spinner_select)); save_item(NAME(m_spinner_sign)); save_item(NAME(m_spinner_count)); save_item(NAME(m_scrambled_write_pc)); + save_item(NAME(m_coin_ff_state)); + save_item(NAME(m_coin_last_state)); + save_item(NAME(m_edgint_ff_state)); } @@ -189,10 +187,10 @@ * *************************************/ -uint8_t segag80v_state::g80v_opcode_r(offs_t offset) +u8 segag80v_state::opcode_r(offs_t offset) { // opcodes themselves are not scrambled - uint8_t op = m_maincpu->space(AS_PROGRAM).read_byte(offset); + u8 op = m_maincpu->space(AS_PROGRAM).read_byte(offset); // writes via opcode $32 (LD $(XXYY),A) get scrambled if (!machine().side_effects_disabled()) @@ -209,17 +207,21 @@ offs_t pc = m_scrambled_write_pc; m_scrambled_write_pc = 0xffff; - /* munge the low byte of the address */ + // munge the low byte of the address return (offset & 0xff00) | (*m_decrypt)(pc, offset & 0xff); } -void segag80v_state::mainram_w(offs_t offset, uint8_t data) +void segag80v_state::mainram_w(offs_t offset, u8 data) { m_mainram[decrypt_offset(offset)] = data; } -void segag80v_state::usb_ram_w(offs_t offset, uint8_t data){ m_usb->ram_w(decrypt_offset(offset), data); } -void segag80v_state::vectorram_w(offs_t offset, uint8_t data) +void segag80v_state::usb_ram_w(offs_t offset, u8 data) +{ + m_usb->ram_w(decrypt_offset(offset), data); +} + +void segag80v_state::vectorram_w(offs_t offset, u8 data) { m_vectorram[decrypt_offset(offset)] = data; } @@ -232,28 +234,50 @@ * *************************************/ -inline uint8_t segag80v_state::demangle(uint8_t d7d6, uint8_t d5d4, uint8_t d3d2, uint8_t d1d0) -{ - return ((d7d6 << 7) & 0x80) | ((d7d6 << 2) & 0x40) | - ((d5d4 << 5) & 0x20) | ((d5d4 << 0) & 0x10) | - ((d3d2 << 3) & 0x08) | ((d3d2 >> 2) & 0x04) | - ((d1d0 << 1) & 0x02) | ((d1d0 >> 4) & 0x01); -} - +// +// I/O port mapping +// +// +--------------- Offset-----------------+ +// | 0 | 1 | 2 | 3 | +// +----+---------+---------+---------+---------+ +// | D7 | COINA | n/c | n/c | n/c | +// | D6 | COINB | P1.13 | P1.14 | n/c | +// | D5 | SERVICE | P1.15 | P1.16 | P1.17 | +// | D4 | P1.18 | P1.19 | P1.20 | P1.21 | +// | D3 | SW1.8 | SW1.7 | SW1.6 | SW1.5 | +// | D2 | SW1.4 | SW1.3 | SW1.2 | SW1.1 | +// | D1 | SW2.8 | SW2.7 | SW2.6 | SW2.5 | +// | D0 | SW2.4 | SW2.3 | SW2.2 | SW2.1 | +// +----+---------+---------+---------+---------+ +// +// Notes: +// COINA, COINB are gated to be impulses, and signal an INT +// SERVICE is gated to be an impulse, but does not signal +// P1.13 = DRAW signal from XY board +// +// The input ports are mapped to how the schematics show them, so +// to achieve the matrix above, they must be demangled. +// + +u8 segag80v_state::mangled_ports_r(offs_t offset) +{ + u8 d7d6 = m_d7d6->read(); + u8 d5d4 = m_d5d4->read(); + u8 d3d2 = m_d3d2->read(); + u8 d1d0 = m_d1d0->read(); + + offset &= 3; + u8 result = + (BIT(d7d6, offset + 0) << 7) | + (BIT(d7d6, offset + 4) << 6) | + (BIT(d5d4, offset + 0) << 5) | + (BIT(d5d4, offset + 4) << 4) | + (BIT(d3d2, offset + 0) << 3) | + (BIT(d3d2, offset + 4) << 2) | + (BIT(d1d0, offset + 0) << 1) | + (BIT(d1d0, offset + 4) << 0); -uint8_t segag80v_state::mangled_ports_r(offs_t offset) -{ - /* The input ports are odd. Neighboring lines are read via a mux chip */ - /* one bit at a time. This means that one bank of DIP switches will be */ - /* read as two bits from each of 4 ports. For this reason, the input */ - /* ports have been organized logically, and are demangled at runtime. */ - /* 4 input ports each provide 8 bits of information. */ - uint8_t d7d6 = ioport("D7D6")->read(); - uint8_t d5d4 = ioport("D5D4")->read(); - uint8_t d3d2 = ioport("D3D2")->read(); - uint8_t d1d0 = ioport("D1D0")->read(); - int shift = offset & 3; - return demangle(d7d6 >> shift, d5d4 >> shift, d3d2 >> shift, d1d0 >> shift); + return result; } @@ -264,28 +288,24 @@ * *************************************/ -void segag80v_state::spinner_select_w(uint8_t data) +void segag80v_state::spinner_select_w(u8 data) { m_spinner_select = data; } -uint8_t segag80v_state::spinner_input_r() +u8 segag80v_state::spinner_input_r() { - int8_t delta; - if (m_spinner_select & 1) - return ioport("FC")->read(); - -/* - * The values returned are always increasing. That is, regardless of whether - * you turn the spinner left or right, the self-test should always show the - * number as increasing. The direction is only reflected in the least - * significant bit. - */ + return m_fc->read(); - /* I'm sure this can be further simplified ;-) BW */ - delta = ioport("SPINNER")->read(); + // + // The values returned are always increasing. That is, regardless of whether + // you turn the spinner left or right, the self-test should always show the + // number as increasing. The direction is only reflected in the least + // significant bit. + // + s8 delta = m_spinner->read(); if (delta != 0) { m_spinner_sign = (delta >> 7) & 1; @@ -304,32 +324,33 @@ READ_LINE_MEMBER(segag80v_state::elim4_joint_coin_r) { - return (ioport("COINS")->read() & 0xf) != 0xf; + return (m_coins->read() & 0xf) != 0xf; } -uint8_t segag80v_state::elim4_input_r() +u8 segag80v_state::elim4_input_r() { - uint8_t result = 0; + u8 result = 0; - /* bit 3 enables demux */ - if (m_spinner_select & 8) + // bit 3 enables demux + if (BIT(m_spinner_select, 3) != 0) { - /* Demux bit 0-2. Only 6 and 7 are connected */ + // Demux bit 0-2. Only 6 and 7 are connected switch (m_spinner_select & 7) { case 6: - /* player 3 & 4 controls */ - result = ioport("FC")->read(); + // player 3 & 4 controls + result = m_fc->read(); break; + case 7: - /* the 4 coin inputs */ - result = ioport("COINS")->read(); + // the 4 coin inputs + result = m_coins->read(); break; } } - /* LS240 has inverting outputs */ + // LS240 has inverting outputs return (result ^ 0xff); } @@ -341,7 +362,7 @@ * *************************************/ -void segag80v_state::multiply_w(offs_t offset, uint8_t data) +void segag80v_state::multiply_w(offs_t offset, u8 data) { m_mult_data[offset] = data; if (offset == 1) @@ -349,9 +370,9 @@ } -uint8_t segag80v_state::multiply_r() +u8 segag80v_state::multiply_r() { - uint8_t result = m_mult_result; + u8 result = m_mult_result; m_mult_result >>= 8; return result; } @@ -364,21 +385,76 @@ * *************************************/ -void segag80v_state::coin_count_w(uint8_t data) +void segag80v_state::coin_count_w(u8 data) { machine().bookkeeping().coin_counter_w(0, (data >> 7) & 1); machine().bookkeeping().coin_counter_w(1, (data >> 6) & 1); } -void segag80v_state::unknown_w(uint8_t data) +void segag80v_state::unknown_w(u8 data) { - /* writing an 0x04 here enables interrupts */ - /* some games write 0x00/0x01 here as well */ + // writing an 0x04 here enables interrupts + // some games write 0x00/0x01 here as well if (data != 0x00 && data != 0x01 && data != 0x04) osd_printf_debug("%04X:unknown_w = %02X\n", m_maincpu->pc(), data); } +READ_LINE_MEMBER(segag80v_state::draw_r) +{ + return (machine().scheduler().time() < m_draw_end_time); +} + + + +/************************************* + * + * Main CPU interrupts + * + *************************************/ + +void segag80v_state::vblank_callback(screen_device &screen, bool state) +{ + if (!state) + { + m_edgint_ff_state = 1; + update_int(); + } +} + +void segag80v_state::update_int() +{ + // + // IRQ signal comes from multiple sources: + // * XINT signal, which is a combination of: + // - COINA impulse, clocks an LS74, cleared by INTCL signal + // - COINB impulse, clocks an LS74, cleared by INTCL signal + // - SERVICE impulse + // * /EDGINT signal from vector board, clocks an LS74, cleared by INTCL signal + // - signal comes from 15468480 crystal, divided by 3, and then by 0x1f788 + // * /INT signal from ??? + // + + if (m_coin_ff_state != 0 || m_edgint_ff_state != 0) + m_maincpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); + else + m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); + + // SERVICE coin doesn't have a flip-flop; it's instantaneous + m_coin_ff_state &= ~0x04; +} + +WRITE_LINE_MEMBER(segag80v_state::irq_ack_w) +{ + if (state) + { + // INTCL signal clears both coin flip-flops and EDGINT flip-flop + m_coin_ff_state = 0; + m_edgint_ff_state = 0; + update_int(); + } +} + /************************************* @@ -387,26 +463,26 @@ * *************************************/ -/* complete memory map derived from schematics */ +// complete memory map derived from schematics void segag80v_state::main_map(address_map &map) { - map(0x0000, 0x07ff).rom(); /* CPU board ROM */ - map(0x0800, 0xbfff).rom(); /* PROM board ROM area */ + map(0x0000, 0x07ff).rom(); // CPU board ROM + map(0x0800, 0xbfff).rom(); // PROM board ROM area map(0xc800, 0xcfff).ram().w(FUNC(segag80v_state::mainram_w)).share("mainram"); map(0xe000, 0xefff).ram().w(FUNC(segag80v_state::vectorram_w)).share("vectorram"); } void segag80v_state::opcodes_map(address_map &map) { - map(0x0000, 0xffff).r(FUNC(segag80v_state::g80v_opcode_r)); + map(0x0000, 0xffff).r(FUNC(segag80v_state::opcode_r)); } -/* complete memory map derived from schematics */ +// complete memory map derived from schematics void segag80v_state::main_portmap(address_map &map) { map.global_mask(0xff); - map(0xbc, 0xbc); /* .r(FUNC(segag80v_state::)); ??? */ + map(0xbc, 0xbc); // .r(FUNC(segag80v_state::)); ??? map(0xbd, 0xbe).w(FUNC(segag80v_state::multiply_w)); map(0xbe, 0xbe).r(FUNC(segag80v_state::multiply_r)); map(0xbf, 0xbf).w(FUNC(segag80v_state::unknown_w)); @@ -426,24 +502,24 @@ static INPUT_PORTS_START( g80v_generic ) PORT_START("D7D6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) /* P1.5 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(3) /* P1.8 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.13 */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.14 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_WRITE_LINE_MEMBER(segag80v_state, coin_w<0>) // P1.5 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // n/c + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) // n/c + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) // n/c + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_WRITE_LINE_MEMBER(segag80v_state, coin_w<1>) // P1.8 + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(segag80v_state, draw_r) // P1.13 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.14 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) // n/c PORT_START("D5D4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* P1.10 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) /* P1.15 */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.16 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.17 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.18 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) /* P1.19 */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.20 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.21 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_WRITE_LINE_MEMBER(segag80v_state, coin_w<2>) // P1.10 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) // P1.15 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.16 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.17 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.18 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) // P1.19 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.20 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.21 PORT_START("D3D2") PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW1:8" ) @@ -492,17 +568,17 @@ PORT_DIPSETTING( 0x80, DEF_STR( 1C_6C )) PORT_START("FC") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.23 */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.24 */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.25 */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.26 */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.27 */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.28 */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.29 */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.30 */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.23 + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.24 + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.25 + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.26 + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.27 + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.28 + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.29 + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) // P1.30 PORT_START("SERVICESW") - PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_HIGH ) PORT_CHANGED_MEMBER(DEVICE_SELF, segag80v_state,service_switch, 0) + PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_HIGH ) PORT_WRITE_LINE_MEMBER(segag80v_state, service_switch_w) INPUT_PORTS_END @@ -714,8 +790,8 @@ PORT_DIPSETTING( 0x40, "30000" ) PORT_MODIFY("D5D4") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.15 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.19 */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.15 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.19 PORT_MODIFY("FC") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) @@ -755,8 +831,8 @@ PORT_DIPSETTING( 0x40, "30000" ) PORT_MODIFY("D5D4") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.15 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.19 */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.15 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.19 PORT_MODIFY("FC") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) @@ -796,8 +872,8 @@ PORT_DIPSETTING( 0xc0, "40000" ) PORT_MODIFY("D5D4") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.15 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.19 */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.15 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) // P1.19 PORT_MODIFY("FC") @@ -816,161 +892,65 @@ /************************************* * - * Eliminator sound interfaces - * - *************************************/ - -static const char *const elim_sample_names[] = -{ - "*elim2", - "elim1", - "elim2", - "elim3", - "elim4", - "elim5", - "elim6", - "elim7", - "elim8", - "elim9", - "elim10", - "elim11", - "elim12", - nullptr /* end of array */ -}; - - -/************************************* - * - * Space Fury sound interfaces - * - *************************************/ - -static const char *const spacfury_sample_names[] = -{ - "*spacfury", - /* Sound samples */ - "sfury1", - "sfury2", - "sfury3", - "sfury4", - "sfury5", - "sfury6", - "sfury7", - "sfury8", - "sfury9", - "sfury10", - nullptr /* end of array */ -}; - -/************************************* - * - * Zektor sound interfaces - * - *************************************/ - -static const char *const zektor_sample_names[] = -{ - "*zektor", - "elim1", /* 0 fireball */ - "elim2", /* 1 bounce */ - "elim3", /* 2 Skitter */ - "elim4", /* 3 Eliminator */ - "elim5", /* 4 Electron */ - "elim6", /* 5 fire */ - "elim7", /* 6 thrust */ - "elim8", /* 7 Electron */ - "elim9", /* 8 small explosion */ - "elim10", /* 9 med explosion */ - "elim11", /* 10 big explosion */ - nullptr -}; - - -/************************************* - * * Machine drivers * *************************************/ void segag80v_state::g80v_base(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware Z80(config, m_maincpu, VIDEO_CLOCK/4); m_maincpu->set_addrmap(AS_PROGRAM, &segag80v_state::main_map); m_maincpu->set_addrmap(AS_OPCODES, &segag80v_state::opcodes_map); m_maincpu->set_addrmap(AS_IO, &segag80v_state::main_portmap); - m_maincpu->set_vblank_int("screen", FUNC(segag80v_state::irq0_line_hold)); + m_maincpu->irqack_cb().set(FUNC(segag80v_state::irq_ack_w)); +// m_maincpu->set_vblank_int("screen", FUNC(segag80v_state::irq0_line_hold)); - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_VECTOR); m_screen->set_refresh_hz(40); m_screen->set_size(400, 300); m_screen->set_visarea(512, 1536, 640-32, 1408+32); m_screen->set_screen_update(FUNC(segag80v_state::screen_update_segag80v)); + m_screen->register_vblank_callback(vblank_state_delegate(&segag80v_state::vblank_callback, this)); VECTOR(config, m_vector); - /* sound hardware */ + // sound hardware SPEAKER(config, "speaker").front_center(); } void segag80v_state::elim2(machine_config &config) { g80v_base(config); - - /* custom sound board */ - SAMPLES(config, m_samples); - m_samples->set_channels(8); - m_samples->set_samples_names(elim_sample_names); - m_samples->add_route(ALL_OUTPUTS, "speaker", 1.0); + ELIMINATOR_AUDIO(config, m_g80_audio, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); } void segag80v_state::spacfury(machine_config &config) { g80v_base(config); - - /* custom sound board */ - SAMPLES(config, m_samples); - m_samples->set_channels(8); - m_samples->set_samples_names(spacfury_sample_names); - m_samples->add_route(ALL_OUTPUTS, "speaker", 0.1); - - /* speech board */ - sega_speech_board(config); + SPACE_FURY_AUDIO(config, m_g80_audio, 0).add_route(ALL_OUTPUTS, "speech", 1.0); + SEGA_SPEECH_BOARD(config, "speech", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); } void segag80v_state::zektor(machine_config &config) { g80v_base(config); - - /* custom sound board */ - SAMPLES(config, m_samples); - m_samples->set_channels(8); - m_samples->set_samples_names(zektor_sample_names); - m_samples->add_route(ALL_OUTPUTS, "speaker", 0.1); - - AY8912(config, m_aysnd, VIDEO_CLOCK/4/2).add_route(ALL_OUTPUTS, "speaker", 0.33); - - /* speech board */ - sega_speech_board(config); + ZEKTOR_AUDIO(config, m_g80_audio, 0).add_route(ALL_OUTPUTS, "speech", 0.7); + SEGA_SPEECH_BOARD(config, "speech", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); } - void segag80v_state::tacscan(machine_config &config) { g80v_base(config); - - /* universal sound board */ SEGAUSB(config, m_usb, 0, m_maincpu).add_route(ALL_OUTPUTS, "speaker", 1.0); } - void segag80v_state::startrek(machine_config &config) { - tacscan(config); - - /* speech board */ - sega_speech_board(config); + g80v_base(config); + SEGAUSB(config, m_usb, 0, m_maincpu).add_route(ALL_OUTPUTS, "speech", 1.0); + SEGA_SPEECH_BOARD(config, "speech", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); } @@ -999,8 +979,8 @@ ROM_LOAD( "1345.prom-u13", 0x6800, 0x0800, CRC(40597a92) SHA1(ee1ae2b424c38b40d2cbeda4aba3328e6d3f9c81) ) ROM_REGION( 0x0420, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END ROM_START( elim2a ) @@ -1021,8 +1001,8 @@ ROM_LOAD( "1170a.prom-u13", 0x6800, 0x0800, CRC(8cdacd35) SHA1(f24f8a74cb4b8452ddbd42e61d3b0366bbee7f98) ) ROM_REGION( 0x0420, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END ROM_START( elim2c ) @@ -1043,8 +1023,8 @@ ROM_LOAD( "1212.prom-u13", 0x6800, 0x0800, CRC(152cf376) SHA1(56c3141598b8bac81e85b1fc7052fdd19cd95609) ) ROM_REGION( 0x0420, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END ROM_START( elim4 ) @@ -1066,8 +1046,8 @@ ROM_LOAD( "1360.prom-u14", 0x7000, 0x0800, CRC(96d48238) SHA1(76a7b49081cd2d0dd1976077aa66b6d5ae5b2b43) ) ROM_REGION( 0x0420, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END ROM_START( elim4p ) @@ -1089,12 +1069,12 @@ ROM_LOAD( "swe.prom-u14", 0x7000, 0x0800, CRC(ec4cc343) SHA1(00e107eaf530ce6bec2afffd7d7bedd7763cfb17) ) ROM_REGION( 0x0420, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END -ROM_START( spacfury ) /* Revision C */ +ROM_START( spacfury ) // Revision C ROM_REGION( 0xc000, "maincpu", 0 ) ROM_LOAD( "969c.cpu-u25", 0x0000, 0x0800, CRC(411207f2) SHA1(2a082be4052b5d8f365abd0a51ea805d270d1189) ) ROM_LOAD( "960c.prom-u1", 0x0800, 0x0800, CRC(d071ab7e) SHA1(c7d2429e4fa77988d7ac62bc68f876ffb7467838) ) @@ -1107,21 +1087,23 @@ ROM_LOAD( "967c.prom-u8", 0x4000, 0x0800, CRC(330f0751) SHA1(07ae52fdbfa2cc326f88dc76c3dc8e145b592863) ) ROM_LOAD( "968c.prom-u9", 0x4800, 0x0800, CRC(8366eadb) SHA1(8e4cb30a730237da2e933370faf5eaa1a41cacbf) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808c.speech-u7", 0x0000, 0x0800, CRC(b779884b) SHA1(ac07e99717a1f51b79f3e43a5d873ebfa0559320) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "6331.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) // speech board addressing + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "970c.speech-u6", 0x0000, 0x1000, CRC(979d8535) SHA1(1ed097e563319ca6d2b7df9875ce7ee921eae468) ) ROM_LOAD( "971c.speech-u5", 0x1000, 0x1000, CRC(022dbd32) SHA1(4e0504b5ccc28094078912673c49571cf83804ab) ) ROM_LOAD( "972c.speech-u4", 0x2000, 0x1000, CRC(fad9346d) SHA1(784e5ab0fb00235cfd733c502baf23960923504f) ) - ROM_REGION( 0x0440, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END -ROM_START( spacfurya ) /* Revision A */ +ROM_START( spacfurya ) // Revision A ROM_REGION( 0xc000, "maincpu", 0 ) ROM_LOAD( "969a.cpu-u25", 0x0000, 0x0800, CRC(896a615c) SHA1(542386196eca9fd822e36508e173201ee8a962ed) ) ROM_LOAD( "960a.prom-u1", 0x0800, 0x0800, CRC(e1ea7964) SHA1(9c84c525973fcf1437b062d98195272723249d02) ) @@ -1134,21 +1116,23 @@ ROM_LOAD( "967a.prom-u8", 0x4000, 0x0800, CRC(d60f667d) SHA1(821271ec1918e22ed29a5b1f4b0182765ef5ba10) ) ROM_LOAD( "968a.prom-u9", 0x4800, 0x0800, CRC(aea85b6a) SHA1(8778ff0be34cd4fd5b8f6f76c64bfca68d4d240e) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808a.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "6331.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) // speech board addressing + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "970.speech-u6", 0x0000, 0x1000, CRC(f3b47b36) SHA1(6ae0b627349664140a7f70799645b368e452d69c) ) ROM_LOAD( "971.speech-u5", 0x1000, 0x1000, CRC(e72bbe88) SHA1(efadf8aa448c289cf4d0cf1831255b9ac60820f2) ) ROM_LOAD( "972.speech-u4", 0x2000, 0x1000, CRC(8b3da539) SHA1(3a0c4af96a2116fc668a340534582776b2018663) ) - ROM_REGION( 0x0440, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END -ROM_START( spacfuryb ) /* Revision B */ +ROM_START( spacfuryb ) // Revision B ROM_REGION( 0xc000, "maincpu", 0 ) ROM_LOAD( "969a.cpu-u25", 0x0000, 0x0800, CRC(896a615c) SHA1(542386196eca9fd822e36508e173201ee8a962ed) ) ROM_LOAD( "960b.prom-u1", 0x0800, 0x0800, CRC(8a99b63f) SHA1(4b9ec152e0fad50afeea11f5d61331f3211da606) ) @@ -1161,18 +1145,20 @@ ROM_LOAD( "967b.prom-u8", 0x4000, 0x0800, CRC(82b5768d) SHA1(823d8c0a537bad62e8186f88f8d02a0f3dc6da0f) ) ROM_LOAD( "968b.prom-u9", 0x4800, 0x0800, CRC(fea68f02) SHA1(83bef40dfaac014b7929239d81075335ff8fd506) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "808a.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "6331.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) // speech board addressing + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "970.speech-u6", 0x0000, 0x1000, CRC(f3b47b36) SHA1(6ae0b627349664140a7f70799645b368e452d69c) ) ROM_LOAD( "971.speech-u5", 0x1000, 0x1000, CRC(e72bbe88) SHA1(efadf8aa448c289cf4d0cf1831255b9ac60820f2) ) ROM_LOAD( "972.speech-u4", 0x2000, 0x1000, CRC(8b3da539) SHA1(3a0c4af96a2116fc668a340534582776b2018663) ) - ROM_REGION( 0x0440, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END @@ -1201,18 +1187,20 @@ ROM_LOAD( "1605.prom-u20", 0xa000, 0x0800, CRC(e27d7144) SHA1(5b82fda797d86e11882d1f9738a59092c5e3e7d8) ) ROM_LOAD( "1606.prom-u21", 0xa800, 0x0800, CRC(7965f636) SHA1(5c8720beedab4979a813ce7f0e8961c863973ff7) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "1607.speech-u7", 0x0000, 0x0800, CRC(b779884b) SHA1(ac07e99717a1f51b79f3e43a5d873ebfa0559320) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "6331.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) // speech board addressing + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "1608.speech-u6", 0x0000, 0x1000, CRC(637e2b13) SHA1(8a470f9a8a722f7ced340c4d32b4cf6f05b3e848) ) ROM_LOAD( "1609.speech-u5", 0x1000, 0x1000, CRC(675ee8e5) SHA1(e314482028b8925ad02e833a1d22224533d0a683) ) ROM_LOAD( "1610.speech-u4", 0x2000, 0x1000, CRC(2915c7bd) SHA1(3ed98747b5237aa1b3bab6866292370dc2c7655a) ) - ROM_REGION( 0x0440, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END @@ -1242,8 +1230,8 @@ ROM_LOAD( "1710a.prom-u21", 0xa800, 0x0800, CRC(6203be22) SHA1(89731c7c88d0125a11368d707f566eb53c783266) ) ROM_REGION( 0x0420, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END @@ -1274,17 +1262,19 @@ ROM_LOAD( "1869.prom-u22", 0xb000, 0x0800, CRC(e5663070) SHA1(735944c2b924964f72f3bb3d251a35ea2aef3d15) ) ROM_LOAD( "1870.prom-u23", 0xb800, 0x0800, CRC(4340616d) SHA1(e93686a29377933332523425532d102e30211111) ) - ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_REGION( 0x0800, "speech:cpu", 0 ) ROM_LOAD( "1670.speech-u7", 0x0000, 0x0800, CRC(b779884b) SHA1(ac07e99717a1f51b79f3e43a5d873ebfa0559320) ) - ROM_REGION( 0x4000, SEGASND_SEGASPEECH_REGION, 0 ) + ROM_REGION( 0x0020, "speech:proms", 0 ) + ROM_LOAD( "6331.speech-u30", 0x0000, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) // speech board addressing + + ROM_REGION( 0x4000, "speech:data", 0 ) ROM_LOAD( "1871.speech-u6", 0x0000, 0x1000, CRC(03713920) SHA1(25a0158cab9983248e91133f96d1849c9e9bcbd2) ) ROM_LOAD( "1872.speech-u5", 0x1000, 0x1000, CRC(ebb5c3a9) SHA1(533b6f0499b311f561cf7aba14a7f48ca7c47321) ) - ROM_REGION( 0x0440, "proms", 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table + ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing ROM_END @@ -1295,31 +1285,59 @@ * *************************************/ +void segag80v_state::init_waitstates() +{ + address_space &pgmspace = m_maincpu->space(AS_PROGRAM); + address_space &opspace = m_maincpu->space(AS_OPCODES); + + pgmspace.install_read_tap(0x0000, 0xffff, "program_waitstate_r",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-WAIT_STATES); + return data; + }); + pgmspace.install_write_tap(0x0000, 0xffff, "program_waitstate_w",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-WAIT_STATES); + return data; + }); + + opspace.install_read_tap(0x0000, 0xffff, "opcodes_waitstate_r",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-WAIT_STATES); + return data; + }); +} + void segag80v_state::init_elim2() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); - /* configure security */ + // configure security m_decrypt = segag80_security(70); - /* configure sound */ - iospace.install_write_handler(0x3e, 0x3e, write8smo_delegate(*this, FUNC(segag80v_state::elim1_sh_w))); - iospace.install_write_handler(0x3f, 0x3f, write8smo_delegate(*this, FUNC(segag80v_state::elim2_sh_w))); + // configure sound + iospace.install_write_handler(0x3e, 0x3f, write8sm_delegate(*m_g80_audio, FUNC(segag80_audio_device::write))); } void segag80v_state::init_elim4() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); - /* configure security */ + // configure security m_decrypt = segag80_security(76); - /* configure sound */ - iospace.install_write_handler(0x3e, 0x3e, write8smo_delegate(*this, FUNC(segag80v_state::elim1_sh_w))); - iospace.install_write_handler(0x3f, 0x3f, write8smo_delegate(*this, FUNC(segag80v_state::elim2_sh_w))); + // configure sound + iospace.install_write_handler(0x3e, 0x3f, write8sm_delegate(*m_g80_audio, FUNC(segag80_audio_device::write))); - /* configure inputs */ + // configure inputs iospace.install_write_handler(0xf8, 0xf8, write8smo_delegate(*this, FUNC(segag80v_state::spinner_select_w))); iospace.install_read_handler(0xfc, 0xfc, read8smo_delegate(*this, FUNC(segag80v_state::elim4_input_r))); } @@ -1327,34 +1345,36 @@ void segag80v_state::init_spacfury() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); - /* configure security */ + // configure security m_decrypt = segag80_security(64); - /* configure sound */ - iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(speech_sound_device::data_w))); - iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(speech_sound_device::control_w))); - iospace.install_write_handler(0x3e, 0x3e, write8smo_delegate(*this, FUNC(segag80v_state::spacfury1_sh_w))); - iospace.install_write_handler(0x3f, 0x3f, write8smo_delegate(*this, FUNC(segag80v_state::spacfury2_sh_w))); + // configure sound + iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(sega_speech_device::data_w))); + iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(sega_speech_device::control_w))); + iospace.install_write_handler(0x3e, 0x3f, write8sm_delegate(*m_g80_audio, FUNC(segag80_audio_device::write))); } void segag80v_state::init_zektor() { + init_waitstates(); + address_space &iospace = m_maincpu->space(AS_IO); - /* configure security */ + // configure security m_decrypt = segag80_security(82); - /* configure sound */ - iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(speech_sound_device::data_w))); - iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(speech_sound_device::control_w))); - iospace.install_write_handler(0x3c, 0x3d, write8sm_delegate(*m_aysnd, FUNC(ay8912_device::address_data_w))); - iospace.install_write_handler(0x3e, 0x3e, write8smo_delegate(*this, FUNC(segag80v_state::zektor1_sh_w))); - iospace.install_write_handler(0x3f, 0x3f, write8smo_delegate(*this, FUNC(segag80v_state::zektor2_sh_w))); + // configure sound + iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(sega_speech_device::data_w))); + iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(sega_speech_device::control_w))); + iospace.install_write_handler(0x3c, 0x3d, write8sm_delegate(*m_g80_audio, FUNC(segag80_audio_device::write_ay))); + iospace.install_write_handler(0x3e, 0x3f, write8sm_delegate(*m_g80_audio, FUNC(segag80_audio_device::write))); - /* configure inputs */ + // configure inputs iospace.install_write_handler(0xf8, 0xf8, write8smo_delegate(*this, FUNC(segag80v_state::spinner_select_w))); iospace.install_read_handler(0xfc, 0xfc, read8smo_delegate(*this, FUNC(segag80v_state::spinner_input_r))); } @@ -1362,18 +1382,20 @@ void segag80v_state::init_tacscan() { + init_waitstates(); + address_space &pgmspace = m_maincpu->space(AS_PROGRAM); address_space &iospace = m_maincpu->space(AS_IO); - /* configure security */ + // configure security m_decrypt = segag80_security(76); - /* configure sound */ + // configure sound iospace.install_readwrite_handler(0x3f, 0x3f, read8smo_delegate(*m_usb, FUNC(usb_sound_device::status_r)), write8smo_delegate(*m_usb, FUNC(usb_sound_device::data_w))); pgmspace.install_read_handler(0xd000, 0xdfff, read8sm_delegate(*m_usb, FUNC(usb_sound_device::ram_r))); pgmspace.install_write_handler(0xd000, 0xdfff, write8sm_delegate(*this, FUNC(segag80v_state::usb_ram_w))); - /* configure inputs */ + // configure inputs iospace.install_write_handler(0xf8, 0xf8, write8smo_delegate(*this, FUNC(segag80v_state::spinner_select_w))); iospace.install_read_handler(0xfc, 0xfc, read8smo_delegate(*this, FUNC(segag80v_state::spinner_input_r))); } @@ -1381,21 +1403,23 @@ void segag80v_state::init_startrek() { + init_waitstates(); + address_space &pgmspace = m_maincpu->space(AS_PROGRAM); address_space &iospace = m_maincpu->space(AS_IO); - /* configure security */ + // configure security m_decrypt = segag80_security(64); - /* configure sound */ - iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(speech_sound_device::data_w))); - iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(speech_sound_device::control_w))); + // configure sound + iospace.install_write_handler(0x38, 0x38, write8smo_delegate(*m_speech, FUNC(sega_speech_device::data_w))); + iospace.install_write_handler(0x3b, 0x3b, write8smo_delegate(*m_speech, FUNC(sega_speech_device::control_w))); iospace.install_readwrite_handler(0x3f, 0x3f, read8smo_delegate(*m_usb, FUNC(usb_sound_device::status_r)), write8smo_delegate(*m_usb, FUNC(usb_sound_device::data_w))); pgmspace.install_read_handler(0xd000, 0xdfff, read8sm_delegate(*m_usb, FUNC(usb_sound_device::ram_r))); pgmspace.install_write_handler(0xd000, 0xdfff, write8sm_delegate(*this, FUNC(segag80v_state::usb_ram_w))); - /* configure inputs */ + // configure inputs iospace.install_write_handler(0xf8, 0xf8, write8smo_delegate(*this, FUNC(segag80v_state::spinner_select_w))); iospace.install_read_handler(0xfc, 0xfc, read8smo_delegate(*this, FUNC(segag80v_state::spinner_input_r))); } @@ -1409,14 +1433,14 @@ *************************************/ // YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT, MONITOR, COMPANY, FULLNAME,FLAGS -GAME( 1981, elim2, 0, elim2, elim2, segag80v_state, init_elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 1)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim2a, elim2, elim2, elim2, segag80v_state, init_elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 2)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim2c, elim2, elim2, elim2c, segag80v_state, init_elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, cocktail)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim4, elim2, elim2, elim4, segag80v_state, init_elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim4p, elim2, elim2, elim4, segag80v_state, init_elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players, prototype)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, spacfury, 0, spacfury, spacfury, segag80v_state, init_spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision C)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, spacfurya, spacfury, spacfury, spacfury, segag80v_state, init_spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision A)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, spacfuryb, spacfury, spacfury, spacfury, segag80v_state, init_spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision B)", MACHINE_IMPERFECT_SOUND ) -GAME( 1982, zektor, 0, zektor, zektor, segag80v_state, init_zektor, ORIENTATION_FLIP_Y, "Sega", "Zektor (revision B)", MACHINE_IMPERFECT_SOUND ) -GAME( 1982, tacscan, 0, tacscan, tacscan, segag80v_state, init_tacscan, ORIENTATION_FLIP_X ^ ROT270, "Sega", "Tac/Scan", MACHINE_IMPERFECT_SOUND ) -GAME( 1982, startrek, 0, startrek, startrek, segag80v_state, init_startrek, ORIENTATION_FLIP_Y, "Sega", "Star Trek", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, elim2, 0, elim2, elim2, segag80v_state, init_elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 1)", 0 ) +GAME( 1981, elim2a, elim2, elim2, elim2, segag80v_state, init_elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 2)", 0 ) +GAME( 1981, elim2c, elim2, elim2, elim2c, segag80v_state, init_elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, cocktail)", 0 ) +GAME( 1981, elim4, elim2, elim2, elim4, segag80v_state, init_elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players)", 0 ) +GAME( 1981, elim4p, elim2, elim2, elim4, segag80v_state, init_elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players, prototype)", 0 ) +GAME( 1981, spacfury, 0, spacfury, spacfury, segag80v_state, init_spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision C)", 0 ) +GAME( 1981, spacfurya, spacfury, spacfury, spacfury, segag80v_state, init_spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision A)", 0 ) +GAME( 1981, spacfuryb, spacfury, spacfury, spacfury, segag80v_state, init_spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision B)", 0 ) +GAME( 1982, zektor, 0, zektor, zektor, segag80v_state, init_zektor, ORIENTATION_FLIP_Y, "Sega", "Zektor (revision B)", 0 ) +GAME( 1982, tacscan, 0, tacscan, tacscan, segag80v_state, init_tacscan, ORIENTATION_FLIP_X ^ ROT270, "Sega", "Tac/Scan", 0 ) +GAME( 1982, startrek, 0, startrek, startrek, segag80v_state, init_startrek, ORIENTATION_FLIP_Y, "Sega", "Star Trek", 0 ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/segas16a.cpp mame-0.224+dfsg.1/src/mame/drivers/segas16a.cpp --- mame-0.223+dfsg.1/src/mame/drivers/segas16a.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/segas16a.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2827,7 +2827,7 @@ ROM_LOAD16_BYTE( "ic18-2614.bin", 0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) ) // MATCH // these were missing, but it seems like they should be different? - ROM_LOAD16_BYTE( "ic23", 0x20001, 0x8000, BAD_DUMP CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) ) // misisng + ROM_LOAD16_BYTE( "ic23", 0x20001, 0x8000, BAD_DUMP CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) ) // missing ROM_LOAD16_BYTE( "ic24", 0x20000, 0x8000, BAD_DUMP CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) ) // missing ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU @@ -3052,6 +3052,8 @@ // // CPU/Video/Sound Board: 171-5335 // ROM Board: 171-5336 +// Sega game ID: 837-5934 +// ROM board: 837-5935 // ROM_START( quartet2 ) ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code diff -Nru mame-0.223+dfsg.1/src/mame/drivers/segattl.cpp mame-0.224+dfsg.1/src/mame/drivers/segattl.cpp --- mame-0.223+dfsg.1/src/mame/drivers/segattl.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/segattl.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -19,7 +19,7 @@ Double Block Duck Shoot Erase - Fonz 94789-P IC86.86 IC87.87 PR-09.49 PR-08.50 + Fonz 94789-P IC86.86 IC87.87 PR-09.49 PR-08.50 Galaxy War Goal Kick Heavyweight Champ @@ -33,7 +33,7 @@ Pong-Tron II Pro Monaco GP Pro Racer - Road Race + Road Race 94540Y-P Rock'n Bark Secret Base Secret War diff -Nru mame-0.223+dfsg.1/src/mame/drivers/seicross.cpp mame-0.224+dfsg.1/src/mame/drivers/seicross.cpp --- mame-0.223+dfsg.1/src/mame/drivers/seicross.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/seicross.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,11 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria /*************************************************************************** - -Seicross memory map (preliminary) - driver by Nicola Salmoria +Seicross memory map (preliminary) 0000-77ff ROM 7800-7fff RAM @@ -28,13 +26,11 @@ 1 8910 write 4 8910 read - There is a microcontroller on the board. Nichibutsu custom part marked NSC81050-102 8127 E37 and labeled No. 00363. It's a 40-pin IC at location 4F on the (Seicross-) board. Looks like it is linked to the dips (and those are on a very small daughterboard). - Differences in new/old version of Frisky Tom - The lady wears bikini in new version - Game config is backed up by 4.5v battery in old version @@ -74,7 +70,7 @@ void seicross_state::machine_reset() { - /* start with the protection mcu halted */ + // start with the protection mcu halted m_mcu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); } @@ -88,20 +84,20 @@ void seicross_state::portB_w(uint8_t data) { //logerror("PC %04x: 8910 port B = %02x\n", m_maincpu->pc(), data); - /* bit 0 is IRQ enable */ + // bit 0 is IRQ enable m_irq_mask = data & 1; - /* bit 1 flips screen */ + // bit 1 flips screen - /* bit 2 resets the microcontroller */ + // bit 2 resets the microcontroller if (((m_portb & 4) == 0) && (data & 4)) { - /* reset and start the protection mcu */ + // reset and start the protection mcu m_mcu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); m_mcu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE); } - /* other bits unknown */ + // other bits unknown m_portb = data; } @@ -115,13 +111,13 @@ map(0x0000, 0x77ff).rom(); map(0x7800, 0x7fff).ram().share("share1"); map(0x8820, 0x887f).ram().share("spriteram"); - map(0x9000, 0x93ff).ram().w(FUNC(seicross_state::videoram_w)).share("videoram"); /* video RAM */ + map(0x9000, 0x93ff).ram().w(FUNC(seicross_state::videoram_w)).share("videoram"); map(0x9800, 0x981f).ram().share("row_scroll"); map(0x9880, 0x989f).writeonly().share("spriteram2"); map(0x9c00, 0x9fff).ram().w(FUNC(seicross_state::colorram_w)).share("colorram"); - map(0xa000, 0xa000).portr("IN0"); /* IN0 */ - map(0xa800, 0xa800).portr("IN1"); /* IN1 */ - map(0xb000, 0xb000).portr("TEST"); /* test */ + map(0xa000, 0xa000).portr("IN0"); + map(0xa800, 0xa800).portr("IN1"); + map(0xb000, 0xb000).portr("TEST"); map(0xb800, 0xb800).r("watchdog", FUNC(watchdog_timer_device::reset_r)); } @@ -143,24 +139,17 @@ void seicross_state::mcu_no_nvram_map(address_map &map) { - map(0x1003, 0x1003).portr("DSW1"); /* DSW1 */ - map(0x1005, 0x1005).portr("DSW2"); /* DSW2 */ - map(0x1006, 0x1006).portr("DSW3"); /* DSW3 */ + map(0x1003, 0x1003).portr("DSW1"); + map(0x1005, 0x1005).portr("DSW2"); + map(0x1006, 0x1006).portr("DSW3"); map(0x2000, 0x2000).w(FUNC(seicross_state::dac_w)); map(0x8000, 0xf7ff).rom().region("maincpu", 0); map(0xf800, 0xffff).ram().share("share1"); } -void seicross_state::decrypted_opcodes_map(address_map &map) -{ - map(0x8000, 0xf7ff).rom().share("decrypted_opcodes"); - map(0xf800, 0xffff).ram().share("share1"); -} - - static INPUT_PORTS_START( friskyt ) - PORT_START("IN0") /* IN0 */ + PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY @@ -170,7 +159,7 @@ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_START("IN1") /* IN1 */ + PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL @@ -182,18 +171,18 @@ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - PORT_START("TEST") /* Test */ + PORT_START("TEST") PORT_DIPNAME( 0x01, 0x00, "Test Mode" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x00, "Connection Error" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */ + PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // probably unused INPUT_PORTS_END static INPUT_PORTS_START( radrad ) - PORT_START("IN0") /* IN0 */ + PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY @@ -203,7 +192,7 @@ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_START("IN1") /* IN1 */ + PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL @@ -213,12 +202,12 @@ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_START("TEST") /* Test */ + PORT_START("TEST") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */ + PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // probably unused - PORT_START("DSW1") /* DSW1 */ + PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) @@ -232,7 +221,7 @@ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_START("DSW2") /* DSW2 */ + PORT_START("DSW2") PORT_DIPNAME( 0x0f, 0x01, DEF_STR( Coin_A ) ) PORT_DIPSETTING( 0x07, DEF_STR( 7C_1C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 6C_1C ) ) @@ -251,7 +240,7 @@ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_START("DSW3") /* DSW3 */ + PORT_START("DSW3") PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_B ) ) PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x09, DEF_STR( 2C_2C ) ) @@ -273,7 +262,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( seicross ) - PORT_START("IN0") /* IN0 */ + PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY @@ -283,24 +272,24 @@ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_START("IN1") /* IN1 */ + PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */ + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // probably unused PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_START("TEST") /* Test */ + PORT_START("TEST") PORT_SERVICE( 0x01, IP_ACTIVE_HIGH ) PORT_DIPNAME( 0x02, 0x00, "Connection Error" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* probably unused */ + PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // probably unused - PORT_START("DSW1") /* DSW1 */ + PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) @@ -314,7 +303,7 @@ PORT_DIPSETTING( 0x0c, "30000 60000 90000" ) PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_START("DSW2") /* DSW2 */ + PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) @@ -328,7 +317,7 @@ PORT_DIPSETTING( 0x0c, "5" ) PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_START("DSW3") /* DSW3 */ + PORT_START("DSW3") PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) @@ -341,7 +330,7 @@ PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ) ) PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_START("DEBUG") /* Debug */ + PORT_START("DEBUG") PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_DIPNAME( 0x20, 0x20, "Debug Mode" ) PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) @@ -356,25 +345,25 @@ static const gfx_layout charlayout = { - 8,8, /* 8*8 characters */ - 512, /* 512 characters */ - 2, /* 2 bits per pixel */ - { 0, 4 }, /* the two bitplanes are packed in one byte */ + 8,8, // 8*8 characters + 512, // 512 characters + 2, // 2 bits per pixel + { 0, 4 }, // the two bitplanes are packed in one byte { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 }, { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 /* every char takes 16 consecutive bytes */ + 16*8 // every char takes 16 consecutive bytes }; static const gfx_layout spritelayout = { - 16,16, /* 16*16 sprites */ - 256, /* 256 sprites */ - 2, /* 2 bits per pixel */ - { 0, 4 }, /* the two bitplanes are packed in one byte */ + 16,16, // 16*16 sprites + 256, // 256 sprites + 2, // 2 bits per pixel + { 0, 4 }, // the two bitplanes are packed in one byte { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 17*8+0, 17*8+1, 17*8+2, 17*8+3 }, { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 }, - 64*8 /* every sprite takes 64 consecutive bytes */ + 64*8 // every sprite takes 64 consecutive bytes }; @@ -395,24 +384,23 @@ void seicross_state::no_nvram(machine_config &config) { - /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(18'432'000) / 6); /* D780C, 3.072 MHz? */ + // Basic machine hardware + Z80(config, m_maincpu, XTAL(18'432'000) / 6); // D780C, 3.072 MHz? m_maincpu->set_addrmap(AS_PROGRAM, &seicross_state::main_map); m_maincpu->set_addrmap(AS_IO, &seicross_state::main_portmap); m_maincpu->set_vblank_int("screen", FUNC(seicross_state::vblank_irq)); - NSC8105(config, m_mcu, XTAL(18'432'000) / 6); /* ??? */ + NSC8105(config, m_mcu, XTAL(18'432'000) / 6); // ??? m_mcu->set_addrmap(AS_PROGRAM, &seicross_state::mcu_no_nvram_map); - config.set_maximum_quantum(attotime::from_hz(1200)); /* 20 CPU slices per frame - a high value to ensure proper */ - /* synchronization of the CPUs */ + config.set_maximum_quantum(attotime::from_hz(1200)); // 20 CPU slices per frame, a high value to ensure proper synchronization of the CPUs WATCHDOG_TIMER(config, "watchdog"); - /* video hardware */ + // Video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate - frames per second, vblank duration screen.set_size(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(seicross_state::screen_update)); @@ -421,7 +409,7 @@ GFXDECODE(config, m_gfxdecode, m_palette, gfx_seicross); PALETTE(config, m_palette, FUNC(seicross_state::seicross_palette), 64); - /* sound hardware */ + // Sound hardware SPEAKER(config, "speaker").front_center(); ay8910_device &aysnd(AY8910(config, "aysnd", XTAL(18'432'000) / 12)); @@ -440,7 +428,7 @@ { no_nvram(config); - /* basic machine hardware */ + // Basic machine hardware m_mcu->set_addrmap(AS_PROGRAM, &seicross_state::mcu_nvram_map); NVRAM(config, "nvram").set_custom_handler(FUNC(seicross_state::nvram_init)); @@ -449,14 +437,19 @@ void seicross_state::friskytb(machine_config &config) { nvram(config); - m_mcu->set_addrmap(AS_OPCODES, &seicross_state::decrypted_opcodes_map); + M6802(config.replace(), m_mcu, XTAL(18'432'000) / 6); // presumed to be an HD46802P or compatible + m_mcu->set_addrmap(AS_PROGRAM, &seicross_state::mcu_nvram_map); } +void seicross_state::sectznt(machine_config &config) +{ + no_nvram(config); + M6802(config.replace(), m_mcu, XTAL(18'432'000) / 6); // actually HD46802P + m_mcu->set_addrmap(AS_PROGRAM, &seicross_state::mcu_no_nvram_map); +} /*************************************************************************** - Game driver(s) - ***************************************************************************/ ROM_START( friskyt ) @@ -654,22 +647,65 @@ ROM_LOAD( "pal16h2.3b", 0x0000, 0x0044, CRC(e1a6a86d) SHA1(740a5c2ef8a992f6a794c0fc4c81eb50cfcedc32) ) ROM_END -void seicross_state::init_friskytb() -{ - uint8_t *ROM = memregion("maincpu")->base(); - // this code is in ROM 6.3h, maps to MCU at dxxx - for (int i = 0; i < 0x7800; i++) - { - m_decrypted_opcodes[i] = bitswap<8>(ROM[i], 6, 7, 5, 4, 3, 2, 0, 1); - } -} +ROM_START( sectrzont ) + ROM_REGION( 0x7800, "maincpu", 0 ) + ROM_LOAD( "czt_1.bin", 0x0000, 0x1000, CRC(f0a45cb4) SHA1(ab3b8d78e25cdbb2fd6a6c0718ae13767364994d) ) + ROM_LOAD( "czt_2.bin", 0x1000, 0x1000, CRC(fea68ddb) SHA1(b9ed0cad9a2ded04bcc7042d975b77be63313070) ) + ROM_LOAD( "czt_3.bin", 0x2000, 0x1000, CRC(baad4294) SHA1(e7fc3ccc940de6df8d786c986b602127c9db9ebb) ) + ROM_LOAD( "czt_4.bin", 0x3000, 0x1000, CRC(75f2ca75) SHA1(fbf990edcb7b5a58f8dcee160883fde5e222ca6b) ) + ROM_LOAD( "czt_5.bin", 0x4000, 0x1000, CRC(dc14f2c8) SHA1(dcda8d6f7be458d0adcddc37bbe0eb636a5b0b06) ) + ROM_LOAD( "czt_6.bin", 0x5000, 0x1000, CRC(397a38c5) SHA1(6189028376c1781aae107c5fe0aec181a1d885e1) ) + ROM_LOAD( "czt_7.bin", 0x6000, 0x1000, CRC(7b34dc1c) SHA1(fb163a908c991cd214e0d2d685e74563a460a929) ) + ROM_LOAD( "czt_8.bin", 0x7000, 0x0800, CRC(673a20e7) SHA1(66be7581323dceddb594eed53dd3abc62b450327) ) // 1ST AND 2ND HALF IDENTICAL + ROM_IGNORE( 0x0800) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "czt_11.bin", 0x0000, 0x1000, CRC(fbd9b91d) SHA1(6b3581f4b518c058b970d569ced07dd7dc6a87e6) ) + ROM_LOAD( "czt_12.bin", 0x1000, 0x1000, CRC(2bdef9ad) SHA1(50fe41e81c1307317b4fb6b47bf0619d141c42ff) ) + ROM_LOAD( "czt_9.bin", 0x2000, 0x1000, CRC(4819f0cd) SHA1(fa8d371efc3198daf76ff1264e22673c5521becf) ) + ROM_LOAD( "czt_10.bin", 0x3000, 0x1000, CRC(4c268778) SHA1(a1444fb3eb397c8167d769aa1f935c5f19df4d6d) ) + + ROM_REGION( 0x0040, "proms", 0 ) + ROM_LOAD( "czt_2_82s123.bin", 0x0000, 0x0020, CRC(4d218a3c) SHA1(26364dfdb7e13080357328a06c3bcf504778defd) ) + ROM_LOAD( "czt_1_82s123.bin", 0x0020, 0x0020, CRC(c550531c) SHA1(d564aeb8a99861d29e00cf968242fe6c6cec478b) ) + + ROM_REGION( 0x0100, "plds", 0 ) + ROM_LOAD( "czt_pal16h2cn.bin", 0x0000, 0x0044, CRC(7edec1ed) SHA1(1b28cb250875f14a76d84bfc0b23ee02b1862c2c) ) +ROM_END + +ROM_START( sectrzona ) // This and set seicross seem bug-fixed versions, where the attract mode works. In the other sets during attract the player only goes straight until he crashes + ROM_REGION( 0x7800, "maincpu", 0 ) + ROM_LOAD( "sz1.3a", 0x0000, 0x1000, CRC(f6c3aeca) SHA1(d57019e80f7e3d47ca74f54604e92d40ba9819fc) ) + ROM_LOAD( "sz2.3c", 0x1000, 0x1000, CRC(f167f10e) SHA1(d23043afe0f7a06fbec92b333d6db172523faf27) ) + ROM_LOAD( "sz3.3d", 0x2000, 0x1000, CRC(ceb3c8f4) SHA1(e49f834637b4addcf362cd010e31802c3e145cbe) ) + ROM_LOAD( "sz4.3e", 0x3000, 0x1000, CRC(3112af59) SHA1(3d4e5a74a13bdeaf07f059f8c3a0d2ca8cbb3d32) ) + ROM_LOAD( "sz5.3fg", 0x4000, 0x1000, CRC(b494a993) SHA1(ed60cbaef2ac780c11426d29a612d34e76b29a0e) ) + ROM_LOAD( "sz6.3h", 0x5000, 0x1000, CRC(09d5b9da) SHA1(636a8d4717df4ed1fc02fa83782fa8d96b88f969) ) + ROM_LOAD( "sz7.3i", 0x6000, 0x1000, CRC(13052b03) SHA1(2866f2533a788f734310a74789f762f3fa17a57a) ) + ROM_LOAD( "sz8.3j", 0x7000, 0x0800, CRC(019f9651) SHA1(2b030e7823b277fb6e3f37753a4d52d277e0e079) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "sz11.7k", 0x0000, 0x1000, CRC(fbd9b91d) SHA1(6b3581f4b518c058b970d569ced07dd7dc6a87e6) ) + ROM_LOAD( "sz12.7m", 0x1000, 0x1000, CRC(2bdef9ad) SHA1(50fe41e81c1307317b4fb6b47bf0619d141c42ff) ) + ROM_LOAD( "sz9.7j", 0x2000, 0x1000, CRC(4819f0cd) SHA1(fa8d371efc3198daf76ff1264e22673c5521becf) ) + ROM_LOAD( "sz10.7h", 0x3000, 0x1000, CRC(4c268778) SHA1(a1444fb3eb397c8167d769aa1f935c5f19df4d6d) ) + + ROM_REGION( 0x0040, "proms", 0 ) // not dumped for this set + ROM_LOAD( "sz73.10c", 0x0000, 0x0020, BAD_DUMP CRC(4d218a3c) SHA1(26364dfdb7e13080357328a06c3bcf504778defd) ) + ROM_LOAD( "sz74.10b", 0x0020, 0x0020, BAD_DUMP CRC(c550531c) SHA1(d564aeb8a99861d29e00cf968242fe6c6cec478b) ) + + ROM_REGION( 0x0100, "plds", 0 ) // not dumped for this set + ROM_LOAD( "pal16h2.3b", 0x0000, 0x0044, BAD_DUMP CRC(e1a6a86d) SHA1(740a5c2ef8a992f6a794c0fc4c81eb50cfcedc32) ) +ROM_END -GAME( 1981, friskyt, 0, nvram, friskyt, seicross_state, empty_init, ROT0, "Nichibutsu", "Frisky Tom (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, friskyta, friskyt, nvram, friskyt, seicross_state, empty_init, ROT0, "Nichibutsu", "Frisky Tom (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, friskytb, friskyt, friskytb, friskyt, seicross_state, init_friskytb, ROT0, "Nichibutsu", "Frisky Tom (set 3, encrypted)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // protection mcu runs encrypted opcodes -GAME( 1982, radrad, 0, no_nvram, radrad, seicross_state, empty_init, ROT0, "Nichibutsu USA", "Radical Radial (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, radradj, radrad, no_nvram, radrad, seicross_state, empty_init, ROT0, "Logitec Corp.", "Radical Radial (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, seicross, 0, no_nvram, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Seicross (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, seicrossa, seicross, no_nvram, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Seicross (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sectrzon, seicross, no_nvram, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Sector Zone", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, friskyt, 0, nvram, friskyt, seicross_state, empty_init, ROT0, "Nichibutsu", "Frisky Tom (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, friskyta, friskyt, nvram, friskyt, seicross_state, empty_init, ROT0, "Nichibutsu", "Frisky Tom (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, friskytb, friskyt, friskytb, friskyt, seicross_state, empty_init, ROT0, "Nichibutsu", "Frisky Tom (set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, radrad, 0, no_nvram, radrad, seicross_state, empty_init, ROT0, "Nichibutsu USA", "Radical Radial (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, radradj, radrad, no_nvram, radrad, seicross_state, empty_init, ROT0, "Logitec Corp.", "Radical Radial (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, seicross, 0, no_nvram, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Seicross (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, seicrossa, seicross, no_nvram, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Seicross (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sectrzon, seicross, no_nvram, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Sector Zone (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sectrzont, seicross, sectznt, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Sector Zone (set 2, Tecfri hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sectrzona, seicross, no_nvram, seicross, seicross_state, empty_init, ROT90, "Nichibutsu / Alice", "Sector Zone (set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/seta.cpp mame-0.224+dfsg.1/src/mame/drivers/seta.cpp --- mame-0.223+dfsg.1/src/mame/drivers/seta.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/seta.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -139,6 +139,7 @@ stage 2: when BOX-MEN gets angry - games using 6bpp gfx switch tilemaps color mode. Only blandia uses both, while the other ones use only mode 1, thus mode 0 is untested for them + ***************************************************************************/ /*************************************************************************** @@ -4558,11 +4559,11 @@ JOY_TYPE2_2BUTTONS(2) PORT_START("COINS") //Coins - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) @@ -4642,7 +4643,7 @@ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -4711,7 +4712,7 @@ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) PORT_START("P2") //Player 2 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) @@ -4808,10 +4809,10 @@ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") //2 DSWs - $600001 & 3.b PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3,4") @@ -4867,34 +4868,34 @@ static INPUT_PORTS_START( zombraid ) PORT_START("P1") //Player 1 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Trigger") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Reload") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Trigger") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Reload") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) PORT_START("P2") //Player 2 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Trigger") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Reload") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Trigger") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Reload") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) PORT_START("COINS") //Coins PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") PORT_DIPNAME( 0x0001, 0x0001, "Vertical Screen Flip" ) PORT_DIPLOCATION("SW2:1") @@ -4907,9 +4908,9 @@ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0004, DEF_STR( On ) ) PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,5") - PORT_DIPSETTING( 0x0010, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) @@ -4971,11 +4972,11 @@ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") //2 DSWs - $600001 & 3.b PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3") @@ -5039,7 +5040,7 @@ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* These are NOT Dip Switches but jumpers */ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) @@ -5125,11 +5126,11 @@ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(5) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW") //2 DSWs - $600001 & 3.b PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1") @@ -5208,20 +5209,22 @@ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) - /* These are NOT Dip Switches but jumpers */ - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, "Country" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( World ) ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) + // Soldered Jumpers on board + PORT_CONFNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) + PORT_CONFSETTING( 0x0010, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x0000, DEF_STR( On ) ) + PORT_CONFNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) + PORT_CONFSETTING( 0x0020, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x0000, DEF_STR( On ) ) + PORT_CONFNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) + PORT_CONFSETTING( 0x0040, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x0000, DEF_STR( On ) ) + // TODO: pinpoint for what market is the Chinese title for + // (Is our current romset even suited for this setting to properly work? It still says Mad Shark during attract) + PORT_CONFNAME( 0x0080, 0x0000, "Title Language" ) // Changes title graphics only + PORT_CONFSETTING( 0x0000, "English" ) // Mad Shark - title used in most of the world, including Japan + PORT_CONFSETTING( 0x0080, "Traditional Chinese" ) // 最強鮫 - presumably for Taiwan (Zuìqiáng Jiāo) or Hong Kong (Zeoi Koeng Gaau) PORT_START("DSW") //2 DSWs PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1") diff -Nru mame-0.223+dfsg.1/src/mame/drivers/shine.cpp mame-0.224+dfsg.1/src/mame/drivers/shine.cpp --- mame-0.223+dfsg.1/src/mame/drivers/shine.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/shine.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,12 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Nigel Barnes -/*************************************************************************** +/*********************************************************************************** Shine/1 TODO: everything to be verified. -****************************************************************************/ +The system rom has an inbuilt monitor program - unknown how to access it. + +The floppy disk is accessed via an "expansion" socket on the back. Inbuilt commands +such as DIR [1|2], RENAME, ERASE, PROT, XFER look interesting. The DIR command does +multiple reads of 0x9E00. + +There's a DIN socket for cassette. Commands BAUD, SAVE, LOAD appear to be the ones +but the syntax has yet to be worked out. BAUD [0-9] is allowed but what is it doing? + + +************************************************************************************/ #include "emu.h" #include "cpu/m6502/m6502.h" @@ -35,21 +45,21 @@ , m_via(*this, "via%u", 0) , m_fdc(*this, "fdc") , m_floppy(*this, "fdc:%u", 0) - , m_cassette(*this, "cassette") , m_centronics(*this, "centronics") , m_speaker(*this, "speaker") , m_cass(*this, "cassette") , m_irqs(*this, "irqs") - , m_y(*this, "Y%u", 0) + , m_y(*this, "Y%u", 0U) , m_video_ram(*this, "video_ram") { } - virtual void machine_start() override; - void shine_mem(address_map &map); - void shine(machine_config &config); +protected: + virtual void machine_start() override; + private: + void shine_mem(address_map &map); uint8_t via0_pa_r(); void via0_pb_w(uint8_t data); void floppy_w(uint8_t data); @@ -61,7 +71,6 @@ required_device_array m_via; required_device m_fdc; required_device_array m_floppy; - required_device m_cassette; required_device m_centronics; required_device m_speaker; required_device m_cass; @@ -70,7 +79,7 @@ required_shared_ptr m_video_ram; /* keyboard state */ - int m_keylatch; + u8 m_keylatch; }; @@ -84,7 +93,7 @@ map(0x9800, 0x980f).m(m_via[1], FUNC(via6522_device::map)); map(0x9c00, 0x9c03).rw(m_fdc, FUNC(fd1771_device::read), FUNC(fd1771_device::write)); map(0x9d00, 0x9d00).w(FUNC(shine_state::floppy_w)); - map(0xb000, 0xffff).rom(); + map(0xb000, 0xffff).rom().region("maincpu",0); } @@ -258,6 +267,7 @@ m_via[0]->readpa_handler().set(FUNC(shine_state::via0_pa_r)); m_via[0]->writepb_handler().set(FUNC(shine_state::via0_pb_w)); m_via[0]->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); + m_via[0]->cb2_handler().set(m_speaker, FUNC(speaker_sound_device::level_w)); VIA6522(config, m_via[1], 1000000); m_via[1]->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); @@ -276,14 +286,14 @@ ROM_START( shine ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("basic_plus.ic58", 0xb000, 0x1000, CRC(c75d9675) SHA1(eecc12533aa33c7744e1ea1fde56883739ac7436)) - ROM_LOAD("disco-dk2.ic59", 0xc000, 0x1000, CRC(b9230d50) SHA1(3975e5850356c035cd1963e0fbca1e980463ee01)) - ROM_LOAD("d3.ic62", 0xd000, 0x1000, CRC(7c88e219) SHA1(93003715bb82d63b6d4f673f89eae59c73f2945e)) - ROM_LOAD("e3.ic61", 0xe000, 0x1000, CRC(5a1624e9) SHA1(b4fbc983c646d4e70dda878d5dd75e45408522a9)) - ROM_LOAD("f3.ic60", 0xf000, 0x1000, CRC(1549ca2f) SHA1(5b011cdca0121a550af956b6d4580544942459ce)) + ROM_REGION( 0x5000, "maincpu", 0 ) + ROM_LOAD("basic_plus.ic58", 0x0000, 0x1000, CRC(c75d9675) SHA1(eecc12533aa33c7744e1ea1fde56883739ac7436)) + ROM_LOAD("disco-dk2.ic59", 0x1000, 0x1000, CRC(b9230d50) SHA1(3975e5850356c035cd1963e0fbca1e980463ee01)) + ROM_LOAD("d3.ic62", 0x2000, 0x1000, CRC(7c88e219) SHA1(93003715bb82d63b6d4f673f89eae59c73f2945e)) + ROM_LOAD("e3.ic61", 0x3000, 0x1000, CRC(5a1624e9) SHA1(b4fbc983c646d4e70dda878d5dd75e45408522a9)) + ROM_LOAD("f3.ic60", 0x4000, 0x1000, CRC(1549ca2f) SHA1(5b011cdca0121a550af956b6d4580544942459ce)) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, shine, 0, 0, shine, shine, shine_state, empty_init, "Lorenzon Elettronica", "Shine/1", MACHINE_NOT_WORKING ) +COMP( 1983, shine, 0, 0, shine, shine, shine_state, empty_init, "Lorenzon Elettronica", "Shine/1", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/sigmab98.cpp mame-0.224+dfsg.1/src/mame/drivers/sigmab98.cpp --- mame-0.223+dfsg.1/src/mame/drivers/sigmab98.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/sigmab98.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -96,7 +96,7 @@ To Do: -- KL5C80 emulation is needed to consolidate the sammymdl games in one memory map and to run the BIOS +- Consolidate the sammymdl games in one memory map and run the BIOS without ROM patches - Remove ROM patches: gegege checks the EEPROM output after reset, and wants a timed 0->1 transition or locks up while saving setting in service mode. Using a reset_delay of 7 works, unless when "play style" is set to "coin" (it probably changes the number of reads from port $C0). @@ -105,6 +105,7 @@ with no visible gaps. It currently leaves the screen empty instead, for several seconds. - tdoboon: no smoke from hit planes as shown in the video? Tiles are present (f60-125f) and used in demo mode. - dashhero does not acknowledge the button bashing correctly, it's very hard to win (a slower pace works better!) +- dodghero and sushimar often write zeroes to 81XX1 and 00XX1 for some reason (maybe just sloppy coding?) Notes: @@ -114,7 +115,7 @@ #include "emu.h" #include "cpu/z80/kl5c80a12.h" -#include "cpu/z80/z80.h" +#include "cpu/z80/ky80.h" #include "machine/74165.h" #include "machine/eepromser.h" #include "machine/mb3773.h" @@ -190,19 +191,14 @@ sigmab98_state(const machine_config &mconfig, device_type type, const char *tag) : sigmab98_base_state(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_nvramdev(*this, "nvram") - , m_eeprom(*this, "eeprom") , m_hopper(*this, "hopper") - , m_nvram(*this, "nvram") + , m_eeprom(*this, "eeprom") , m_leds(*this, "led%u", 0U) { } void sigmab98(machine_config &config); void dodghero(machine_config &config); - void dashhero(machine_config &config); - void gegege(machine_config &config); - void init_dodghero(); void init_b3rinsya(); void init_tbeastw2(); void init_dashhero(); @@ -211,19 +207,6 @@ void init_ucytokyu(); protected: - void gegege_regs_w(offs_t offset, uint8_t data); - uint8_t gegege_regs_r(offs_t offset); - void gegege_regs2_w(offs_t offset, uint8_t data); - uint8_t gegege_regs2_r(offs_t offset); - - void dodghero_regs_w(offs_t offset, uint8_t data); - uint8_t dodghero_regs_r(offs_t offset); - void dodghero_regs2_w(offs_t offset, uint8_t data); - uint8_t dodghero_regs2_r(offs_t offset); - - void dashhero_regs2_w(offs_t offset, uint8_t data); - uint8_t dashhero_regs2_r(offs_t offset); - void c4_w(uint8_t data); void c6_w(uint8_t data); void c8_w(uint8_t data); @@ -231,12 +214,8 @@ void show_outputs(); void eeprom_w(uint8_t data); - DECLARE_MACHINE_RESET(sigmab98); - INTERRUPT_GEN_MEMBER(sigmab98_vblank_interrupt); - void dashhero_io_map(address_map &map); - void dodghero_io_map(address_map &map); void dodghero_mem_map(address_map &map); void gegege_io_map(address_map &map); void gegege_mem_map(address_map &map); @@ -244,27 +223,14 @@ virtual void machine_start() override { m_leds.resolve(); } // Required devices - required_device m_maincpu; + required_device m_maincpu; + required_device m_hopper; // Optional devices - optional_device m_nvramdev; // battery backed RAM (should be required, but dashhero breaks with it) optional_device m_eeprom; - optional_device m_hopper; - - // Shared pointers - required_shared_ptr m_nvram; output_finder<4> m_leds; - uint8_t m_reg; - uint8_t m_rombank; - uint8_t m_reg2; - uint8_t m_rambank; - - uint8_t m_vblank_vector; - uint8_t m_timer0_vector; - uint8_t m_timer1_vector; - uint8_t m_c0; uint8_t m_c4; uint8_t m_c6; @@ -294,20 +260,20 @@ int m_dsw_bit; DECLARE_WRITE_LINE_MEMBER(dsw_w); - void lufykzku_regs_w(offs_t offset, uint8_t data); - uint8_t lufykzku_regs_r(offs_t offset); void lufykzku_c4_w(uint8_t data); void lufykzku_c6_w(uint8_t data); uint8_t lufykzku_c8_r(); void lufykzku_c8_w(uint8_t data); void lufykzku_watchdog_w(uint8_t data); - DECLARE_MACHINE_RESET(lufykzku); - TIMER_DEVICE_CALLBACK_MEMBER(lufykzku_irq); void lufykzku_io_map(address_map &map); void lufykzku_mem_map(address_map &map); + + uint8_t m_vblank_vector; + uint8_t m_timer0_vector; + uint8_t m_timer1_vector; }; @@ -343,7 +309,6 @@ private: TIMER_DEVICE_CALLBACK_MEMBER(sammymdl_irq); - uint8_t unk_34_r(); uint8_t coin_counter_r(); void coin_counter_w(uint8_t data); uint8_t leds_r(); @@ -739,229 +704,27 @@ Minna Atsumare! Dodge Hero ***************************************************************************/ -// rombank -void sigmab98_state::dodghero_regs_w(offs_t offset, uint8_t data) -{ - if (offset == 0) - { - m_reg = data; - return; - } - - switch ( m_reg ) - { - case 0x1f: - m_rombank = data; - if (data >= 0x18) - logerror("%s: unknown rom bank = %02x\n", machine().describe_context(), data); - else - membank("rombank")->set_entry(data * 2); - break; - - case 0x9f: - m_rombank = data; - if (data >= 0x18) - logerror("%s: unknown rom bank2 = %02x\n", machine().describe_context(), data); - else - membank("rombank")->set_entry(data * 2 + 1); - break; - - default: - logerror("%s: unknown reg written: %02x = %02x\n", machine().describe_context(), m_reg, data); - } -} -uint8_t sigmab98_state::dodghero_regs_r(offs_t offset) -{ - if (offset == 0) - return m_reg; - - switch ( m_reg ) - { - case 0x1f: - case 0x9f: - return m_rombank; - - default: - logerror("%s: unknown reg read: %02x\n", machine().describe_context(), m_reg); - return 0x00; - } -} - -// rambank -void sigmab98_state::dodghero_regs2_w(offs_t offset, uint8_t data) -{ - if (offset == 0) - { - m_reg2 = data; - return; - } - - switch ( m_reg2 ) - { - case 0x37: - m_rambank = data; - switch (data) - { - case 0x32: - membank("rambank")->set_entry(0); - break; - case 0x36: - membank("rambank")->set_entry(1); - break; - default: - logerror("%s: unknown ram bank = %02x\n", machine().describe_context(), data); - } - break; - - default: - logerror("%s: unknown reg2 written: %02x = %02x\n", machine().describe_context(), m_reg2, data); - } -} -uint8_t sigmab98_state::dodghero_regs2_r(offs_t offset) -{ - if (offset == 0) - return m_reg2; - - switch ( m_reg2 ) - { - case 0x37: - return m_rambank; - - default: - logerror("%s: unknown reg2 read: %02x\n", machine().describe_context(), m_reg2); - return 0x00; - } -} - void sigmab98_state::dodghero_mem_map(address_map &map) { - map(0x0000, 0x7fff).rom(); - map(0x8000, 0xa7ff).bankr("rombank"); - - map(0xa800, 0xb7ff).ram().share("spriteram"); - - map(0xc800, 0xc9ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); - - map(0xd001, 0xd07f).ram().share("vtable"); - - map(0xd800, 0xdfff).bankrw("rambank"); // not used, where is it mapped? - - map(0xd800, 0xd821).rw(FUNC(sigmab98_state::vregs_r), FUNC(sigmab98_state::vregs_w)).share("vregs"); - map(0xd813, 0xd813).r(FUNC(sigmab98_state::d013_r)); - map(0xd821, 0xd821).r(FUNC(sigmab98_state::d021_r)); + map(0x00000, 0x1ffff).rom().nopw(); - map(0xe000, 0xefff).ram().share("nvram"); // battery backed RAM + map(0x40000, 0x41fff).ram().share("nvram"); // battery backed RAM - map(0xf000, 0xffff).ram(); -} + map(0x80000, 0x80fff).ram().share("spriteram"); + map(0x81000, 0x811ff).nopw(); + map(0x82000, 0x821ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); -void sigmab98_state::dodghero_io_map(address_map &map) -{ - map.global_mask(0xff); + map(0x82800, 0x8287f).ram().share("vtable"); - map(0x00, 0x01).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); - - map(0xa0, 0xa1).rw(FUNC(sigmab98_state::dodghero_regs_r), FUNC(sigmab98_state::dodghero_regs_w)); -// map(0xa2, 0xa3) - map(0xa4, 0xa5).rw(FUNC(sigmab98_state::dodghero_regs2_r), FUNC(sigmab98_state::dodghero_regs2_w)); - - map(0xc0, 0xc0).portr("EEPROM").w(FUNC(sigmab98_state::eeprom_w)); - map(0xc2, 0xc2).portr("BUTTON"); - map(0xc4, 0xc4).portr("PAYOUT").w(FUNC(sigmab98_state::c4_w)); - map(0xc6, 0xc6).w(FUNC(sigmab98_state::c6_w)); - map(0xc8, 0xc8).w(FUNC(sigmab98_state::c8_w)); + map(0x83000, 0x83021).rw(FUNC(sigmab98_state::vregs_r), FUNC(sigmab98_state::vregs_w)).share("vregs"); + map(0x83013, 0x83013).r(FUNC(sigmab98_state::d013_r)); + map(0x83021, 0x83021).r(FUNC(sigmab98_state::d021_r)); } /*************************************************************************** GeGeGe no Kitarou Youkai Slot ***************************************************************************/ -// rombank -void sigmab98_state::gegege_regs_w(offs_t offset, uint8_t data) -{ - if (offset == 0) - { - m_reg = data; - return; - } - - switch ( m_reg ) - { - case 0x1f: - m_rombank = data; - if (data >= 0x18) - logerror("%s: unknown rom bank = %02x\n", machine().describe_context(), data); - else - membank("rombank")->set_entry(data); - break; - - default: - logerror("%s: unknown reg written: %02x = %02x\n", machine().describe_context(), m_reg, data); - } -} -uint8_t sigmab98_state::gegege_regs_r(offs_t offset) -{ - if (offset == 0) - return m_reg; - - switch ( m_reg ) - { - case 0x1f: - return m_rombank; - - default: - logerror("%s: unknown reg read: %02x\n", machine().describe_context(), m_reg); - return 0x00; - } -} - -// rambank -void sigmab98_state::gegege_regs2_w(offs_t offset, uint8_t data) -{ - if (offset == 0) - { - m_reg2 = data; - return; - } - - switch ( m_reg2 ) - { - case 0xb5: - m_rambank = data; - switch (data) - { - case 0x32: - membank("rambank")->set_entry(0); - break; - case 0x36: - membank("rambank")->set_entry(1); - break; - default: - logerror("%s: unknown ram bank = %02x\n", machine().describe_context(), data); - } - break; - - default: - logerror("%s: unknown reg2 written: %02x = %02x\n", machine().describe_context(), m_reg2, data); - } -} -uint8_t sigmab98_state::gegege_regs2_r(offs_t offset) -{ - if (offset == 0) - return m_reg2; - - switch ( m_reg2 ) - { - case 0xb5: - return m_rambank; - - default: - logerror("%s: unknown reg2 read: %02x\n", machine().describe_context(), m_reg2); - return 0x00; - } -} - - // Outputs void sigmab98_state::show_outputs() @@ -1033,24 +796,19 @@ void sigmab98_state::gegege_mem_map(address_map &map) { - map(0x0000, 0x7fff).rom(); - map(0x8000, 0x9fff).bankr("rombank"); - - map(0xa000, 0xafff).ram().share("spriteram"); + map(0x00000, 0x1ffff).rom(); - map(0xc000, 0xc1ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); + map(0x40000, 0x47fff).ram().share("nvram"); // battery backed RAM - map(0xc800, 0xc87f).ram().share("vtable"); + map(0x80000, 0x80fff).ram().share("spriteram"); - map(0xd000, 0xd021).rw(FUNC(sigmab98_state::vregs_r), FUNC(sigmab98_state::vregs_w)).share("vregs"); - map(0xd013, 0xd013).r(FUNC(sigmab98_state::d013_r)); - map(0xd021, 0xd021).r(FUNC(sigmab98_state::d021_r)); + map(0x82000, 0x821ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); - map(0xd800, 0xdfff).bankrw("rambank"); + map(0x82800, 0x8287f).ram().share("vtable"); - map(0xe000, 0xefff).ram().share("nvram"); // battery backed RAM - - map(0xf000, 0xffff).ram(); + map(0x83000, 0x83021).rw(FUNC(sigmab98_state::vregs_r), FUNC(sigmab98_state::vregs_w)).share("vregs"); + map(0x83013, 0x83013).r(FUNC(sigmab98_state::d013_r)); + map(0x83021, 0x83021).r(FUNC(sigmab98_state::d021_r)); } void sigmab98_state::gegege_io_map(address_map &map) @@ -1059,89 +817,6 @@ map(0x00, 0x01).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); - map(0xa0, 0xa1).rw(FUNC(sigmab98_state::gegege_regs_r), FUNC(sigmab98_state::gegege_regs_w)); -// map(0xa2, 0xa3) - map(0xa4, 0xa5).rw(FUNC(sigmab98_state::gegege_regs2_r), FUNC(sigmab98_state::gegege_regs2_w)); - - map(0xc0, 0xc0).portr("EEPROM").w(FUNC(sigmab98_state::eeprom_w)); - map(0xc2, 0xc2).portr("BUTTON"); - map(0xc4, 0xc4).portr("PAYOUT").w(FUNC(sigmab98_state::c4_w)); - map(0xc6, 0xc6).w(FUNC(sigmab98_state::c6_w)); - map(0xc8, 0xc8).w(FUNC(sigmab98_state::c8_w)); - - map(0xe5, 0xe5).nopr(); // during irq -} - -/*************************************************************************** - Minna Ganbare! Dash Hero -***************************************************************************/ - -// rambank -void sigmab98_state::dashhero_regs2_w(offs_t offset, uint8_t data) -{ - if (offset == 0) - { - m_reg2 = data; - return; - } - - switch ( m_reg2 ) - { - case 0x75: - case 0xb5: - case 0xf5: - m_rambank = data; - switch (data) - { - case 0x32: - membank("rambank")->set_entry(0); - break; - case 0x34: - membank("rambank")->set_entry(1); - break; - case 0x36: - membank("rambank")->set_entry(2); - break; - case 0x39: - membank("rambank")->set_entry(3); - break; - default: - logerror("%s: unknown ram bank = %02x\n", machine().describe_context(), data); - } - break; - - default: - logerror("%s: unknown reg2 written: %02x = %02x\n", machine().describe_context(), m_reg2, data); - } -} -uint8_t sigmab98_state::dashhero_regs2_r(offs_t offset) -{ - if (offset == 0) - return m_reg2; - - switch ( m_reg2 ) - { - case 0x75: - case 0xb5: - case 0xf5: - return m_rambank; - - default: - logerror("%s: unknown reg2 read: %02x\n", machine().describe_context(), m_reg2); - return 0x00; - } -} - -void sigmab98_state::dashhero_io_map(address_map &map) -{ - map.global_mask(0xff); - - map(0x00, 0x01).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); - - map(0xa0, 0xa1).rw(FUNC(sigmab98_state::gegege_regs_r), FUNC(sigmab98_state::gegege_regs_w)); -// map(0xa2, 0xa3) - map(0xa4, 0xa5).rw(FUNC(sigmab98_state::dashhero_regs2_r), FUNC(sigmab98_state::dashhero_regs2_w)); - map(0xc0, 0xc0).portr("EEPROM").w(FUNC(sigmab98_state::eeprom_w)); map(0xc2, 0xc2).portr("BUTTON"); map(0xc4, 0xc4).portr("PAYOUT").w(FUNC(sigmab98_state::c4_w)); @@ -1156,56 +831,6 @@ Otakara Itadaki Luffy Kaizoku-Dan! ***************************************************************************/ -// romrambank -void lufykzku_state::lufykzku_regs_w(offs_t offset, uint8_t data) -{ - if (offset == 0) - { - m_reg = data; - return; - } - - switch ( m_reg ) - { - case 0x1f: // 8000 - m_rombank = data; - switch (data) - { - case 0x00: // (8000) ROM - membank("romrambank")->set_entry(0); - break; - - case 0x78: // (80000) NVRAM - membank("romrambank")->set_entry(1); - break; - - default: - logerror("%s: unknown rom bank = %02x, reg = %02x\n", machine().describe_context(), data, m_reg); - } - break; - - default: - logerror("%s: unknown reg written: %02x = %02x\n", machine().describe_context(), m_reg, data); - } -} - -uint8_t lufykzku_state::lufykzku_regs_r(offs_t offset) -{ - if (offset == 0) - return m_reg; - - switch ( m_reg ) - { - case 0x00: - case 0x78: - return m_rombank; - - default: - logerror("%s: unknown reg read: %02x\n", machine().describe_context(), m_reg); - return 0x00; - } -} - WRITE_LINE_MEMBER(lufykzku_state::dsw_w) { m_dsw_bit = state; @@ -1267,20 +892,16 @@ void lufykzku_state::lufykzku_mem_map(address_map &map) { - map(0x0000, 0x7fff).rom(); - map(0x8000, 0xbfff).bankrw("romrambank").share("nvram"); // ROM | NVRAM - - map(0xc000, 0xcfff).ram().share("spriteram"); - - map(0xd000, 0xefff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // more palette entries - - map(0xf000, 0xf021).rw(FUNC(lufykzku_state::vregs_r), FUNC(lufykzku_state::vregs_w)).share("vregs"); - map(0xf013, 0xf013).r(FUNC(lufykzku_state::d013_r)); - map(0xf021, 0xf021).r(FUNC(lufykzku_state::d021_r)); + map(0x00000, 0x1ffff).rom(); + map(0x80000, 0x83fff).ram().share("nvram"); - map(0xf400, 0xf47f).ram().share("vtable"); + map(0xc0000, 0xc0fff).ram().share("spriteram"); + map(0xc1000, 0xc2fff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); // more palette entries + map(0xc3000, 0xc3021).rw(FUNC(lufykzku_state::vregs_r), FUNC(lufykzku_state::vregs_w)).share("vregs"); + map(0xc3013, 0xc3013).r(FUNC(lufykzku_state::d013_r)); + map(0xc3021, 0xc3021).r(FUNC(lufykzku_state::d021_r)); - map(0xfc00, 0xffff).ram(); + map(0xc3400, 0xc347f).ram().share("vtable"); } void lufykzku_state::lufykzku_io_map(address_map &map) @@ -1289,8 +910,6 @@ map(0x00, 0x00).w("oki", FUNC(okim9810_device::write)); map(0x01, 0x01).w("oki", FUNC(okim9810_device::tmp_register_w)); - map(0xa2, 0xa3).rw(FUNC(lufykzku_state::lufykzku_regs_r), FUNC(lufykzku_state::lufykzku_regs_w)); - map(0xc0, 0xc0).portr("COIN").w(FUNC(lufykzku_state::lufykzku_watchdog_w)); // bit 7 -> watchdog map(0xc2, 0xc2).portr("BUTTON"); map(0xc4, 0xc4).portr("PAYOUT").w(FUNC(lufykzku_state::lufykzku_c4_w)); // bit 7 = medal lock, bit 6 = coin3, bit 5 = yen @@ -1323,12 +942,6 @@ logerror("%s: unknown eeeprom bits written %02x\n", machine().describe_context(), data); } -uint8_t sammymdl_state::unk_34_r() -{ - // mask 0x01? - return 0x01; -} - uint8_t sigmab98_base_state::vblank_r() { // mask 0x04 must be set before writing sprite list @@ -1433,7 +1046,6 @@ map(0x30, 0x30).portr("BUTTON"); map(0x31, 0x31).rw(FUNC(sammymdl_state::coin_counter_r), FUNC(sammymdl_state::coin_counter_w)); map(0x32, 0x32).rw(FUNC(sammymdl_state::leds_r), FUNC(sammymdl_state::leds_w)); - map(0x34, 0x34).r(FUNC(sammymdl_state::unk_34_r)); map(0x90, 0x90).w("oki", FUNC(okim9810_device::write)); map(0x91, 0x91).w("oki", FUNC(okim9810_device::tmp_register_w)); map(0x92, 0x92).r("oki", FUNC(okim9810_device::read)); @@ -1447,7 +1059,7 @@ void sammymdl_state::gocowboy_map(address_map &map) { - map(0x00000, 0x3ffff).rom().region("mainbios", 0); + map(0x00000, 0x5ffff).rom().region("mainbios", 0); map(0x60000, 0x67fff).ram().share("nvram"); map(0x70000, 0x70fff).ram().share("spriteram"); map(0x72000, 0x721ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); @@ -1905,15 +1517,6 @@ Sigma B-98 Games ***************************************************************************/ -MACHINE_RESET_MEMBER(sigmab98_state,sigmab98) -{ - m_rombank = 0; - membank("rombank")->set_entry(0); - - m_rambank = 0; - membank("rambank")->set_entry(0); -} - INTERRUPT_GEN_MEMBER(sigmab98_state::sigmab98_vblank_interrupt) { device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x5a); // Z80 @@ -1921,13 +1524,11 @@ void sigmab98_state::sigmab98(machine_config &config) { - Z80(config, m_maincpu, 10000000); // !! TAXAN KY-80, clock @X1? !! + KY80(config, m_maincpu, 20000000); // !! TAXAN KY-80, clock @X1? !! m_maincpu->set_addrmap(AS_PROGRAM, &sigmab98_state::gegege_mem_map); m_maincpu->set_addrmap(AS_IO, &sigmab98_state::gegege_io_map); m_maincpu->set_vblank_int("screen", FUNC(sigmab98_state::sigmab98_vblank_interrupt)); - MCFG_MACHINE_RESET_OVERRIDE(sigmab98_state, sigmab98) - NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); EEPROM_93C46_16BIT(config, "eeprom"); @@ -1962,25 +1563,6 @@ sigmab98(config); m_maincpu->set_addrmap(AS_PROGRAM, &sigmab98_state::dodghero_mem_map); - m_maincpu->set_addrmap(AS_IO, &sigmab98_state::dodghero_io_map); -} - -void sigmab98_state::gegege(machine_config &config) -{ - sigmab98(config); - - m_maincpu->set_addrmap(AS_PROGRAM, &sigmab98_state::gegege_mem_map); - m_maincpu->set_addrmap(AS_IO, &sigmab98_state::gegege_io_map); -} - -void sigmab98_state::dashhero(machine_config &config) -{ - sigmab98(config); - - m_maincpu->set_addrmap(AS_PROGRAM, &sigmab98_state::gegege_mem_map); - m_maincpu->set_addrmap(AS_IO, &sigmab98_state::dashhero_io_map); - - config.device_remove("nvram"); // FIXME: does not survive between sessions otherwise } @@ -1988,12 +1570,6 @@ Banpresto Medal Games ***************************************************************************/ -MACHINE_RESET_MEMBER(lufykzku_state,lufykzku) -{ - m_rombank = 0; - membank("romrambank")->set_entry(0); -} - TIMER_DEVICE_CALLBACK_MEMBER(lufykzku_state::lufykzku_irq) { int scanline = param; @@ -2008,13 +1584,11 @@ void lufykzku_state::lufykzku(machine_config &config) { - Z80(config, m_maincpu, XTAL(20'000'000) / 2); // !! TAXAN KY-80, clock @X1? !! + KY80(config, m_maincpu, XTAL(20'000'000)); // !! TAXAN KY-80, clock @X1? !! m_maincpu->set_addrmap(AS_PROGRAM, &lufykzku_state::lufykzku_mem_map); m_maincpu->set_addrmap(AS_IO, &lufykzku_state::lufykzku_io_map); TIMER(config, "scantimer").configure_scanline(FUNC(lufykzku_state::lufykzku_irq), "screen", 0, 1); - MCFG_MACHINE_RESET_OVERRIDE(lufykzku_state, lufykzku) - NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // battery backed RAM // No EEPROM @@ -2061,15 +1635,20 @@ TIMER_DEVICE_CALLBACK_MEMBER(sammymdl_state::sammymdl_irq) { int scanline = param; + uint16_t irqs = 0; if (scanline == 240) - m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_vblank_vector); // Z80 + irqs |= 1 << ((m_vblank_vector & 0x1e) >> 1); if (scanline == 128) - m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_timer0_vector); // Z80 + irqs |= 1 << ((m_timer0_vector & 0x1e) >> 1); if (scanline == 32) - m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_timer1_vector); // Z80 + irqs |= 1 << ((m_timer1_vector & 0x1e) >> 1); + + // FIXME: this is not much less of a hack than HOLD_LINE + if (irqs != 0) + m_maincpu->set_state_int(kl5c80a12_device::KP69_IRR, m_maincpu->state_int(kl5c80a12_device::KP69_IRR) | irqs); } void sammymdl_state::sammymdl(machine_config &config) @@ -2192,17 +1771,6 @@ ROM_LOAD( "b9802-6.ic26", 0x80000, 0x80000, CRC(d83d8537) SHA1(9a5afdc68417db828a09188d653552452930b136) ) ROM_END -void sigmab98_state::init_dodghero() -{ - // ROM banks - uint8_t *rom = memregion("maincpu")->base(); - membank("rombank")->configure_entries(0, 0x18*2, rom + 0x8000, 0x800); - - // RAM banks - uint8_t *bankedram = auto_alloc_array(machine(), uint8_t, 0x800 * 2); - membank("rambank")->configure_entries(0, 2, bankedram, 0x800); -} - /*************************************************************************** Itazura Daisuki! Sushimaru Kun @@ -2287,15 +1855,6 @@ rom[0x8164] = 0x00; rom[0x8165] = 0x00; - - // ROM banks - membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); - membank("rombank")->set_entry(0); - - // RAM banks - uint8_t *bankedram = auto_alloc_array(machine(), uint8_t, 0x800 * 2); - membank("rambank")->configure_entries(0, 2, bankedram, 0x800); - membank("rambank")->set_entry(0); } /*************************************************************************** @@ -2326,15 +1885,6 @@ rom[0x8164] = 0x00; rom[0x8165] = 0x00; - - // ROM banks - membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); - membank("rombank")->set_entry(0); - - // RAM banks - uint8_t *bankedram = auto_alloc_array(machine(), uint8_t, 0x800 * 2); - membank("rambank")->configure_entries(0, 2, bankedram, 0x800); - membank("rambank")->set_entry(0); } /*************************************************************************** @@ -2373,15 +1923,6 @@ rom[0x8164] = 0x00; rom[0x8165] = 0x00; - - // ROM banks - membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); - membank("rombank")->set_entry(0); - - // RAM banks - uint8_t *bankedram = auto_alloc_array(machine(), uint8_t, 0x800 * 2); - membank("rambank")->configure_entries(0, 2, bankedram, 0x800); - membank("rambank")->set_entry(0); } /*************************************************************************** @@ -2414,15 +1955,6 @@ rom[0x8164] = 0x00; rom[0x8165] = 0x00; - - // ROM banks - membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); - membank("rombank")->set_entry(0); - - // RAM banks - uint8_t *bankedram = auto_alloc_array(machine(), uint8_t, 0x800 * 2); - membank("rambank")->configure_entries(0, 2, bankedram, 0x800); - membank("rambank")->set_entry(0); } /*************************************************************************** @@ -2463,15 +1995,6 @@ rom[0x8164] = 0x00; rom[0x8165] = 0x00; - - // ROM banks - membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); - membank("rombank")->set_entry(0); - - // RAM banks - uint8_t *bankedram = auto_alloc_array(machine(), uint8_t, 0x800 * 2); - membank("rambank")->configure_entries(0, 2, bankedram, 0x800); - membank("rambank")->set_entry(0); } /*************************************************************************** @@ -2503,15 +2026,6 @@ rom[0x8162] = 0x00; rom[0x8163] = 0x00; - - // ROM banks - membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); - membank("rombank")->set_entry(0); - - // RAM banks - uint8_t *bankedram = auto_alloc_array(machine(), uint8_t, 0x800 * 4); - membank("rambank")->configure_entries(0, 4, bankedram, 0x800); - membank("rambank")->set_entry(0); } @@ -2561,17 +2075,6 @@ void lufykzku_state::init_lufykzku() { - m_nvram.allocate(0x4000); - memset(m_nvram, 0, 0x4000); - m_nvramdev->set_base(m_nvram, 0x4000); - - // ROM/RAM banks - uint8_t *rom = memregion("maincpu")->base(); - - membank("romrambank")->configure_entry(0, rom + 0x8000); - membank("romrambank")->configure_entry(1, m_nvram); - membank("romrambank")->set_entry(0); - m_vblank_vector = 0xfa; // nop m_timer0_vector = 0xfc; // write coin counters/lockout, drive hopper m_timer1_vector = 0xfe; // read inputs and hopper sensor, handle coin in @@ -2876,14 +2379,14 @@ ***************************************************************************/ // Sigma Medal Games -GAME( 1997, dodghero, 0, dodghero, sigma_1b, sigmab98_state, init_dodghero, ROT0, "Sigma", "Minna Atsumare! Dodge Hero", 0 ) -GAME( 1997, sushimar, 0, dodghero, sigma_3b, sigmab98_state, init_dodghero, ROT0, "Sigma", "Itazura Daisuki! Sushimaru Kun", 0 ) -GAME( 1997, gegege, 0, gegege, sigma_1b, sigmab98_state, init_gegege, ROT0, "Sigma / Banpresto", "GeGeGe no Kitarou Youkai Slot", 0 ) -GAME( 1997, b3rinsya, 0, gegege, sigma_5b, sigmab98_state, init_b3rinsya, ROT0, "Sigma", "Burning Sanrinsya - Burning Tricycle", 0 ) // 1997 in the rom -GAME( 1997, pepsiman, 0, gegege, sigma_3b, sigmab98_state, init_pepsiman, ROT0, "Sigma", "PEPSI Man", 0 ) -GAME( 1998, tbeastw2, 0, gegege, sigma_3b, sigmab98_state, init_tbeastw2, ROT0, "Sigma / Transformer Production Company / Takara", "Transformers Beast Wars II", 0 ) // 1997 in the rom -GAME( 1997, ucytokyu, 0, gegege, sigma_js, sigmab98_state, init_ucytokyu, ROT0, "Sigma", "Uchuu Tokkyuu Medalian", 0 ) // Banpresto + others in the ROM -GAME( 2000, dashhero, 0, dashhero, sigma_1b, sigmab98_state, init_dashhero, ROT0, "Sigma", "Minna Ganbare! Dash Hero", MACHINE_NOT_WORKING ) // 1999 in the rom +GAME( 1997, dodghero, 0, dodghero, sigma_1b, sigmab98_state, empty_init, ROT0, "Sigma", "Minna Atsumare! Dodge Hero", 0 ) +GAME( 1997, sushimar, 0, dodghero, sigma_3b, sigmab98_state, empty_init, ROT0, "Sigma", "Itazura Daisuki! Sushimaru Kun", 0 ) +GAME( 1997, gegege, 0, sigmab98, sigma_1b, sigmab98_state, init_gegege, ROT0, "Sigma / Banpresto", "GeGeGe no Kitarou Youkai Slot", 0 ) +GAME( 1997, b3rinsya, 0, sigmab98, sigma_5b, sigmab98_state, init_b3rinsya, ROT0, "Sigma", "Burning Sanrinsya - Burning Tricycle", 0 ) // 1997 in the rom +GAME( 1997, pepsiman, 0, sigmab98, sigma_3b, sigmab98_state, init_pepsiman, ROT0, "Sigma", "PEPSI Man", 0 ) +GAME( 1998, tbeastw2, 0, sigmab98, sigma_3b, sigmab98_state, init_tbeastw2, ROT0, "Sigma / Transformer Production Company / Takara", "Transformers Beast Wars II", 0 ) // 1997 in the rom +GAME( 1997, ucytokyu, 0, sigmab98, sigma_js, sigmab98_state, init_ucytokyu, ROT0, "Sigma", "Uchuu Tokkyuu Medalian", 0 ) // Banpresto + others in the ROM +GAME( 2000, dashhero, 0, sigmab98, sigma_1b, sigmab98_state, init_dashhero, ROT0, "Sigma", "Minna Ganbare! Dash Hero", MACHINE_NOT_WORKING ) // 1999 in the rom // Banpresto Medal Games GAME( 2001, lufykzku, 0, lufykzku, lufykzku, lufykzku_state, init_lufykzku, ROT0, "Banpresto / Eiichiro Oda / Shueisha - Fuji TV - Toho Animation", "Otakara Itadaki Luffy Kaizoku-Dan! (Japan, v1.02)", 0 ) // Sammy Medal Games: diff -Nru mame-0.223+dfsg.1/src/mame/drivers/snesb51.cpp mame-0.224+dfsg.1/src/mame/drivers/snesb51.cpp --- mame-0.223+dfsg.1/src/mame/drivers/snesb51.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/snesb51.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -6,9 +6,10 @@ Skeleton driver - Currently there are dumps for a Mortal Kombat 3 board and a board with - 4 slots that supports various games directly and also has a generic - timer based mode. + The following systems are dumped: + - Mortal Kombat 3 + - 4 Slot board + - 4 Slot board with built-in NBA Jam Hardware (for the 4 slot switcher): - MCS-51 based CPU 44-pin (markings removed) @@ -67,6 +68,7 @@ void mk3snes(machine_config &config); void snes4sl(machine_config &config); + void snes4sln(machine_config &config); protected: void machine_start() override; @@ -180,7 +182,7 @@ void snesb51_state::mk3snes(machine_config &config) { - I8751(config, m_mcu, 12_MHz_XTAL / 6); + I8751(config, m_mcu, 12_MHz_XTAL); m_mcu->set_addrmap(AS_IO, &snesb51_state::io_map); m_mcu->port_out_cb<1>().set(FUNC(snesb51_state::mcu_p1_w)); m_mcu->port_in_cb<3>().set(FUNC(snesb51_state::mcu_p3_r)); @@ -189,8 +191,8 @@ void snesb51_state::snes4sl(machine_config &config) { - // exact type and clock unknown - I8031(config, m_mcu, 12_MHz_XTAL / 6); + // exact type unknown + I8031(config, m_mcu, 12_MHz_XTAL); m_mcu->set_addrmap(AS_PROGRAM, &snesb51_state::mem_map); m_mcu->set_addrmap(AS_IO, &snesb51_state::io_map); m_mcu->port_out_cb<1>().set(FUNC(snesb51_state::mcu_p1_w)); @@ -202,6 +204,16 @@ GFXDECODE(config, "gfxdecode", "palette", chars); } +void snesb51_state::snes4sln(machine_config &config) +{ + I8051(config, m_mcu, 12_MHz_XTAL); // SAB 8051A-P + m_mcu->set_addrmap(AS_PROGRAM, &snesb51_state::mem_map); + m_mcu->set_addrmap(AS_IO, &snesb51_state::io_map); + m_mcu->port_out_cb<1>().set(FUNC(snesb51_state::mcu_p1_w)); + m_mcu->port_in_cb<3>().set(FUNC(snesb51_state::mcu_p3_r)); + m_mcu->port_out_cb<3>().set(FUNC(snesb51_state::mcu_p3_w)); +} + // this is identical to the snes release apart from a single byte ROM_START( mk3snes ) ROM_REGION(0x400000, "game", 0) @@ -227,6 +239,19 @@ ROM_LOAD("27c256_11-03.bin", 0x0000, 0x8000, CRC(4e471581) SHA1(0f23ad065d448097f56ab45c3850d53cf85f3670)) ROM_END -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS -GAME( 199?, mk3snes, 0, mk3snes, mk3snes, snesb51_state, empty_init, ROT0, "bootleg", "Mortal Kombat 3 (SNES bootleg)", MACHINE_IS_SKELETON ) -GAME( 1993, snes4sl, 0, snes4sl, snes4sl, snesb51_state, empty_init, ROT0, "bootleg", "SNES 4 Slot arcade switcher", MACHINE_IS_SKELETON ) +ROM_START( snes4sln ) + // identical to NBA Jam (nbajamua) + ROM_REGION(0x400000, "game", 0) + ROM_LOAD("4.bin", 0x000000, 0x080000, CRC(d27bbebe) SHA1(fcf614fcd3c0fb06037038514d828f0cb597838e)) + ROM_LOAD("3.bin", 0x080000, 0x080000, CRC(c0ca8c3c) SHA1(af5caa1b0254f6b42e4f7f3ba07d0af904017e3c)) + ROM_LOAD("2.bin", 0x100000, 0x080000, CRC(4de70641) SHA1(1f575282a1bb842afcc80e29cebc13d96f8158a4)) + ROM_LOAD("1.bin", 0x180000, 0x080000, CRC(9d59835f) SHA1(061872d9a2b39d271fbfc90b9e8f9abefcfa4282)) + + ROM_REGION(0x8000, "mcu", 0) + ROM_LOAD("5.bin", 0x0000, 0x8000, CRC(af8a64e3) SHA1(f13187d213fe7c2a0edcb88d4e828bd24112e812)) +ROM_END + +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS +GAME( 199?, mk3snes, 0, mk3snes, mk3snes, snesb51_state, empty_init, ROT0, "bootleg", "Mortal Kombat 3 (SNES bootleg)", MACHINE_IS_SKELETON ) +GAME( 1993, snes4sl, 0, snes4sl, snes4sl, snesb51_state, empty_init, ROT0, "bootleg", "SNES 4 Slot arcade switcher", MACHINE_IS_SKELETON ) +GAME( 1994, snes4sln, 0, snes4sln, snes4sl, snesb51_state, empty_init, ROT0, "bootleg", "SNES 4 Slot arcade switcher (NBA Jam)", MACHINE_IS_SKELETON ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/spg2xx.cpp mame-0.224+dfsg.1/src/mame/drivers/spg2xx.cpp --- mame-0.223+dfsg.1/src/mame/drivers/spg2xx.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/spg2xx.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -317,6 +317,14 @@ map(0x200000, 0x3fffff).bankr("upperbank"); } + +void spg2xx_game_wfcentro_state::mem_map_wfcentro(address_map &map) +{ + map(0x000000, 0x37ffff).bankr("cartbank"); + map(0x380000, 0x3fffff).ram(); +} + + static INPUT_PORTS_START( spg2xx ) // base structure for easy debugging / figuring out of inputs PORT_START("P1") PORT_DIPNAME( 0x0001, 0x0001, "P1:0001" ) @@ -629,6 +637,19 @@ PORT_MODIFY("P3") INPUT_PORTS_END + +static INPUT_PORTS_START( ordentv ) + PORT_INCLUDE( spg2xx ) + + PORT_MODIFY("P2") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) +INPUT_PORTS_END + static INPUT_PORTS_START( fordrace ) PORT_INCLUDE( spg2xx ) @@ -1482,6 +1503,20 @@ } +void spg2xx_game_wfcentro_state::wfcentro(machine_config &config) +{ + SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen); + m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_wfcentro_state::mem_map_wfcentro); + + spg2xx_base(config); + + m_maincpu->porta_in().set(FUNC(spg2xx_game_wfcentro_state::base_porta_r)); + m_maincpu->portb_in().set(FUNC(spg2xx_game_wfcentro_state::base_portb_r)); + m_maincpu->portc_in().set(FUNC(spg2xx_game_wfcentro_state::base_portc_r)); +} + + + void spg2xx_game_senwfit_state::portc_w(offs_t offset, uint16_t data, uint16_t mem_mask) { int bank = 0; @@ -1560,6 +1595,26 @@ m_maincpu->i2c_r().set(FUNC(spg2xx_game_state::i2c_r)); } +uint16_t spg2xx_game_ordentv_state::ordentv_portc_r(offs_t offset, uint16_t mem_mask) +{ + uint16_t data = m_io_p3->read() ^ (machine().rand() & 1); + logerror("%s: Port C Read: %04x (%04x)\n", machine().describe_context(), data, mem_mask); + return data; +} + +void spg2xx_game_ordentv_state::ordentv(machine_config &config) +{ + SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen); + m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_ordentv_state::mem_map_4m); + + spg2xx_base(config); + + m_maincpu->porta_in().set(FUNC(spg2xx_game_ordentv_state::base_porta_r)); + m_maincpu->portb_in().set(FUNC(spg2xx_game_ordentv_state::base_portb_r)); + m_maincpu->portc_in().set(FUNC(spg2xx_game_ordentv_state::ordentv_portc_r)); +} + + ROM_START( rad_skat ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "skateboarder.bin", 0x000000, 0x400000, CRC(08b9ab91) SHA1(6665edc4740804956136c68065890925a144626b) ) @@ -1600,7 +1655,6 @@ ROM_START( ablkickb ) ROM_REGION( 0x1000000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "ablkickboxing.bin", 0x000000, 0x800000, CRC(61394c45) SHA1(291d28a39edcb32a8f5d776a5e5c05e6fd0abece) ) - ROM_LOAD16_WORD_SWAP( "fm25q16a.bin", 0x800000, 0x200000, CRC(aeb472ac) SHA1(500c24b725f6d3308ef8cbdf4259f5be556c7c92) ) ROM_END ROM_START( lxspidaj ) @@ -1716,6 +1770,21 @@ ROM_LOAD16_WORD_SWAP( "speedracer.bin", 0x000000, 0x800000, CRC(4efbcd39) SHA1(2edffbaa9ea309ad308fa60f32d8b7a98ee313c7) ) ROM_END +ROM_START( ordentv ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "taikeeordenadortv.bin", 0x000000, 0x800000, CRC(ba15895a) SHA1(0a18076cbc3264c91473b8518dfb10d679321b47) ) +ROM_END + +ROM_START( wfcentro ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "winfuncentro.bin", 0x000000, 0x800000, CRC(fd6ad052) SHA1(78af844729bf4843dc70531349e38a8c25caf748) ) +ROM_END + +ROM_START( tiktokmm ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "webcamthingy.bin", 0x000000, 0x800000, CRC(54c0d4a9) SHA1(709ee607ca447baa6f7e686268df1998372fe617) ) +ROM_END + void spg2xx_game_state::init_crc() { // several games have a byte sum checksum listed at the start of ROM, this little helper function logs what it should match. @@ -1764,6 +1833,13 @@ decrypt_ac_ff(ROM, size); } +void spg2xx_game_ordentv_state::init_ordentv() +{ + // the game will die by jumping to an infinite loop if this check fails, what is it checking? + uint16_t* rom = (uint16_t*)memregion("maincpu")->base(); + rom[0x4fef8] = 0xee07; +} + // year, name, parent, compat, machine, input, class, init, company, fullname, flags @@ -1825,6 +1901,11 @@ CONS( 2008, swclone, 0, 0, swclone, swclone, spg2xx_game_swclone_state, init_swclone, "Hasbro / Tiger Electronics", "Star Wars - The Clone Wars", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // Mattel games -CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, empty_init, "Mattel", "Mattel Classic Sports", MACHINE_IMPERFECT_SOUND ) +CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, empty_init, "Mattel", "Mattel Classic Sports", MACHINE_IMPERFECT_SOUND ) + +CONS( 2007, ordentv, 0, 0, ordentv, ordentv, spg2xx_game_ordentv_state, init_ordentv, "Taikee / V-Tac", "Ordenador-TV (Spain)", MACHINE_NOT_WORKING ) + +CONS( 200?, wfcentro, 0, 0, wfcentro, spg2xx, spg2xx_game_wfcentro_state, empty_init, "WinFun", "Centro TV de Diseno Artistico (Spain)", MACHINE_NOT_WORKING ) -// Both the WiWi and Fox Sports units seem to be related to the 'Virtual Interactive' (aka 'Vi') console +// set 2862 to 0003 (irq enable) when it stalls on boot to show something (doesn't turn on IRQs again otherwise?) needs camera emulating +CONS( 200?, tiktokmm, 0, 0, spg2xx, spg2xx, spg2xx_game_wfcentro_state, empty_init, "TikTokTech Ltd. / 3T Games / Senario", "Moving Music (MM-TV110)", MACHINE_NOT_WORKING ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/spg2xx_zone_32bit.cpp mame-0.224+dfsg.1/src/mame/drivers/spg2xx_zone_32bit.cpp --- mame-0.223+dfsg.1/src/mame/drivers/spg2xx_zone_32bit.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/spg2xx_zone_32bit.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -49,6 +49,18 @@ int m_basebank; }; +class mywicogt_state : public zon32bit_state +{ +public: + mywicogt_state(const machine_config& mconfig, device_type type, const char* tag) : + zon32bit_state(mconfig, type, tag) + { } + +protected: + virtual void porta_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override; +}; + + class mywicodx_state : public zon32bit_state { public: @@ -153,6 +165,52 @@ } +void mywicogt_state::porta_w(offs_t offset, uint16_t data, uint16_t mem_mask) +{ + if (1) + logerror("%s: porta_w %04x (%04x) %c %c %c %c | %c %c %c %c | %c %c %c %c | %c %c %c %c \n", machine().describe_context(), data, mem_mask, + (mem_mask & 0x8000) ? ((data & 0x8000) ? '1' : '0') : 'x', + (mem_mask & 0x4000) ? ((data & 0x4000) ? '1' : '0') : 'x', + (mem_mask & 0x2000) ? ((data & 0x2000) ? '1' : '0') : 'x', + (mem_mask & 0x1000) ? ((data & 0x1000) ? '1' : '0') : 'x', + (mem_mask & 0x0800) ? ((data & 0x0800) ? '1' : '0') : 'x', + (mem_mask & 0x0400) ? ((data & 0x0400) ? '1' : '0') : 'x', + (mem_mask & 0x0200) ? ((data & 0x0200) ? '1' : '0') : 'x', + (mem_mask & 0x0100) ? ((data & 0x0100) ? '1' : '0') : 'x', + (mem_mask & 0x0080) ? ((data & 0x0080) ? '1' : '0') : 'x', + (mem_mask & 0x0040) ? ((data & 0x0040) ? '1' : '0') : 'x', + (mem_mask & 0x0020) ? ((data & 0x0020) ? '1' : '0') : 'x', + (mem_mask & 0x0010) ? ((data & 0x0010) ? '1' : '0') : 'x', + (mem_mask & 0x0008) ? ((data & 0x0008) ? '1' : '0') : 'x', + (mem_mask & 0x0004) ? ((data & 0x0004) ? '1' : '0') : 'x', + (mem_mask & 0x0002) ? ((data & 0x0002) ? '1' : '0') : 'x', + (mem_mask & 0x0001) ? ((data & 0x0001) ? '1' : '0') : 'x'); + +//[:] ':maincpu' (000508): porta_w 0b00 (0f00) x x x x | 1 0 1 1 | x x x x | x x x x +//[:] ':maincpu' (000510): porta_w 0b00 (0f00) x x x x | 1 0 1 1 | x x x x | x x x x +//[:] ':maincpu' (000518): porta_w 0f00 (0f00) x x x x | 1 1 1 1 | x x x x | x x x x + + if (m_maincpu->pc() < 0x1000) + { + if (data == 0x0f00) + { + m_basebank = 1; + m_maincpu->invalidate_cache(); + logerror("changing to bank 1\n"); + + } + else if (data == 0x0b00) + { + m_basebank = 0; + m_maincpu->invalidate_cache(); + logerror("changing to bank 0\n"); + } + } + + m_porta_dat = data; +} + + void mywicodx_state::porta_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (0) @@ -747,6 +805,14 @@ ROM_CONTINUE(0x1800000, 0x0800000) ROM_END +ROM_START( mywicogt ) + ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "mywicoguitar.bin", 0x0000000, 0x0800000, CRC(3c037c50) SHA1(3b9a28fb643c9f90563d653be0f38eba09c26f26) ) + ROM_CONTINUE(0x1000000, 0x0800000) + ROM_CONTINUE(0x0800000, 0x0800000) + ROM_CONTINUE(0x1800000, 0x0800000) +ROM_END + /* Following pinout was used for dumping @@ -928,6 +994,8 @@ // The Mi Guitar menu contains 24 games, but they're dupes, and just counting those would exclude the other Mi Fit and Mi Papacon menus (which also contain dupes) CONS( 200?, mywicodx, 0, 0, zon32bit, zon32bit, mywicodx_state, empty_init, "", "My Wico Deluxe (Family Sport 85-in-1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 200?, mywicogt, 0, 0, zon32bit, zon32bit, mywicogt_state, empty_init, "", "My Wico Guitar", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) + // issues with 'low battery' always showing, but otherwise functional CONS( 200?, oplayer, 0, 0, zon32bit_bat, oplayer, oplayer_100in1_state, init_oplayer, "OPlayer", "OPlayer Mobile Game Console (MGS03-white) (Family Sport 100-in-1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/splash.cpp mame-0.224+dfsg.1/src/mame/drivers/splash.cpp --- mame-0.223+dfsg.1/src/mame/drivers/splash.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/splash.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -32,14 +32,16 @@ Sound not working on Return of Lady Frog TS 2006.12.22: -- Funny Strip is runing on pSOS RTOS ( http://en.wikipedia.org/wiki/PSOS and http://dr-linux.net/newbase/reference/psosCD/ ) . - There's copyright text at $480 +- Funny Strip is running on pSOS RTOS ( http://en.wikipedia.org/wiki/PSOS and http://dr-linux.net/newbase/reference/psosCD/ ) . + There's copyright text at $480. In Ring & Ball the copyright text is at 0x7c7a0. Also Rebus and TRoLF are running on it (the same internal code structure - traps, interrupt vectors), but copyright messages are removed. - Rebus protection patch sits at the end of trap $b (rtos call) and in some cases returns 0 in D0. - It's not a real protection check i think. + It's not a real protection check I think. +- Ring & Ball is mostly decrypted, currently stops at 'scheda da inizializzare' (board must be initialized). Switching the dip to clear RAM it says + 'Inizializzazione ok, ver 2.6' (Initialization ok, ver 2.6) then stops. By switching DSW2.8 it's possible to enter test mode. -More notes about Funny Strip protection issues at the bottom of source file (DRIVER INIT) +More notes about Funny Strip protection issues at the bottom of source file (init_funystrp) ***************************************************************************/ @@ -1051,9 +1053,9 @@ ROM_START( ringball ) ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 code + gfx */ - // TODO: encrypted, there's a device with scratched part between 68k and roms. u87 looks to have standard 68k vectors with scrambled bits. - ROM_LOAD( "u87.bin", 0x000000, 0x040000, CRC(f8f21cfd) SHA1(c258689fc79195945db21663d2df0a33a4412618) ) - ROM_LOAD( "u111.bin", 0x040000, 0x040000, CRC(11e246b0) SHA1(b056bcaa52ab2898f470a29b0a5c2f3594e2522b) ) // actually "u101"? + // TODO: encrypted, there's a device with scratched part between 68k and roms + ROM_LOAD16_BYTE( "u87.bin", 0x000000, 0x040000, CRC(f8f21cfd) SHA1(c258689fc79195945db21663d2df0a33a4412618) ) + ROM_LOAD16_BYTE( "u111.bin", 0x000001, 0x040000, CRC(11e246b0) SHA1(b056bcaa52ab2898f470a29b0a5c2f3594e2522b) ) // actually "u101"? ROM_REGION( 0x080000, "audiocpu", 0 ) /* Z80 code + sound data */ ROM_LOAD( "u130.bin", 0x000000, 0x080000, CRC(892202ea) SHA1(10b5933b136a6595f739510d380d12c4cefd9f09) ) @@ -1440,6 +1442,35 @@ m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x1fffff, read16sm_delegate(*this, FUNC(funystrp_state::protection_r))); } +void funystrp_state::init_ringball() // decryption is preliminary, can probably be simplified / rearranged once completely figured out +{ + m_bitmap_type = 0; + m_sprite_attr2_shift = 0; + + uint16_t *audiorom = (uint16_t *)memregion("audiocpu")->base(); + + membank("sound_bank")->configure_entries(0, 16, &audiorom[0x00000], 0x8000); + + uint16_t *src = (uint16_t *)memregion("maincpu")->base(); + + for (int i = 0x0000; i < 0x2000 / 2; i++) // believed ok + src[i] = bitswap<16>(src[i] ^ 0x85cc, 12, 13, 15, 10, 9, 11, 8, 14, 5, 4, 3, 2, 1, 0, 7, 6); + + for (int i = 0x2000 / 2 ; i < 0x4000 / 2; i++) // believed ok + src[i] = bitswap<16>(src[i] ^ 0xb622, 5, 4, 3, 2, 1, 0, 7, 6, 9, 8, 15, 14, 13, 12, 11, 10); + + for (int i = 0x4000 / 2 ; i < 0x8000 / 2; i++) // probably + src[i] = bitswap<16>(src[i] ^ 0xb66d, 8, 9, 10, 11, 12, 13, 14, 15, 1, 0, 2, 3, 4, 5, 6, 7); + + for (int i = 0x8000 / 2; i < 0x10000 / 2; i++) // believed ok + src[i] = bitswap<16>(src[i] ^ 0xc8a6, 1, 3, 0, 5, 7, 9, 11, 13, 15, 14, 12, 8, 10, 6, 4, 2); + + // 0x10000 - 0x61817 is 0xff filled + + for (int i = 0x60000 / 2; i < 0x80000 / 2; i ++) // believed ok for 0x7c000 - 0x80000, probably ok for the rest (test mode doesn't appear otherwise) + src[i] ^= 0xffff; +} + GAME( 1992, splash, 0, splash, splash, splash_state, init_splash, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.2 World)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, splash10, splash, splash, splash, splash_state, init_splash10, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.0 World)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, paintlad, splash, splash, splash, splash_state, init_splash, ROT0, "Gaelco / OMK Software", "Painted Lady (Splash) (Ver. 1.3 US)", MACHINE_SUPPORTS_SAVE ) @@ -1449,4 +1480,4 @@ GAME( 1995, rebus, 0, roldfrog, splash, splash_state, init_rebus, ROT0, "Microhard", "Rebus", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 199?, funystrp, 0, funystrp, funystrp, funystrp_state, init_funystrp, ROT0, "Microhard / MagicGames", "Funny Strip", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) GAME( 199?, puckpepl, funystrp, funystrp, funystrp, funystrp_state, init_funystrp, ROT0, "Microhard", "Puck People", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, ringball, funystrp, funystrp, funystrp, funystrp_state, init_funystrp, ROT0, "Microhard", "Ring & Ball (unknown title)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // Wouldn't surprise me if in-game is actually called King & Bell ... +GAME( 1995, ringball, funystrp, funystrp, funystrp, funystrp_state, init_ringball, ROT0, "Microhard", "Ring Ball (Ver. 2.6)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // Wouldn't surprise me if in-game is actually called King & Bell ... diff -Nru mame-0.223+dfsg.1/src/mame/drivers/sspeedr.cpp mame-0.224+dfsg.1/src/mame/drivers/sspeedr.cpp --- mame-0.223+dfsg.1/src/mame/drivers/sspeedr.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/sspeedr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2,12 +2,14 @@ // copyright-holders:Stefan Jokisch /*************************************************************************** -Taito Super Speed Race driver +Taito / Midway Super Speed Race driver ***************************************************************************/ #include "emu.h" #include "includes/sspeedr.h" +#include "audio/nl_sspeedr.h" +#include "speaker.h" #include "cpu/z80/z80.h" #include "machine/watchdog.h" @@ -17,7 +19,7 @@ -void sspeedr_state::sspeedr_palette(palette_device &palette) const +void sspeedr_state::palette(palette_device &palette) const { for (int i = 0; i < 16; i++) { @@ -37,13 +39,13 @@ } -void sspeedr_state::sspeedr_int_ack_w(uint8_t data) +void sspeedr_state::int_ack_w(uint8_t data) { m_maincpu->set_input_line(0, CLEAR_LINE); } -void sspeedr_state::sspeedr_lamp_w(uint8_t data) +void sspeedr_state::lamp_w(uint8_t data) { output().set_value("lampGO", BIT(data, 0)); output().set_value("lampEP", BIT(data, 1)); @@ -51,64 +53,111 @@ } -/* uses a 7447A, which is equivalent to an LS47/48 */ +// uses a 7447A, which is equivalent to an LS47/48 constexpr uint8_t ls48_map[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 }; -void sspeedr_state::sspeedr_time_w(offs_t offset, uint8_t data) +void sspeedr_state::time_w(offs_t offset, uint8_t data) { data = data & 15; m_digits[24 + offset] = ls48_map[data]; - m_led_TIME[offset] = data; + m_led_time[offset] = data; } -void sspeedr_state::sspeedr_score_w(offs_t offset, uint8_t data) +void sspeedr_state::score_w(offs_t offset, uint8_t data) { data = ~data & 15; m_digits[offset] = ls48_map[data]; - m_led_SCORE[offset] = data; + m_led_score[offset] = data; } -void sspeedr_state::sspeedr_sound_w(uint8_t data) +void sspeedr_state::sound1_w(uint8_t data) { - /* not implemented */ + // **** Output pins from 74174 latch at C2 **** + + // Bits 0-3 (PEDAL_BIT0 to PEDAL_BIT3): accelerator pedal position + // Sets the frequency and volume of the engine sound oscillators. + m_pedal_bit0->write_line(BIT(data, 0)); + m_pedal_bit1->write_line(BIT(data, 1)); + m_pedal_bit2->write_line(BIT(data, 2)); + m_pedal_bit3->write_line(BIT(data, 3)); + + // Bit 4 (HI SHIFT): set when gearshift is in high gear + // Modifies the engine sound to be lower pitched at a given speed and + // to change more slowly. + m_hi_shift->write_line(BIT(data, 4)); + + // Bit 5 (LO SHIFT): set when gearshift is in low gear + // Modifies the engine sound to be higher pitched at a given speed and + // to change faster. + m_lo_shift->write_line(BIT(data, 5)); + + // Bits 6-7 (D6, D7): not connected. } -void sspeedr_state::sspeedr_map(address_map &map) +void sspeedr_state::sound2_w(uint8_t data) +{ + // **** Output pins from 74174 latch at D2 **** + + // Bit 0 (BOOM): Set to activate boom sound for a crash. Cleared to + // terminate boom. + m_boom->write_line(BIT(data, 0)); + + // Bit 1 (ENGINE SOUND OFF): Set to turn *off* engine sound. + // Used in a crash. + m_engine_sound_off->write_line(BIT(data, 1)); + + // Bit 2 (NOISE CR 1): tire squealing sound + // Set to activate "tire squeal" noise from noise generator. + m_noise_cr_1->write_line(BIT(data, 2)); + + // Bit 3 (NOISE CR 2): secondary crash noise + // Set to activate high-pitched screeching hiss that accompanies BOOM + // when the the car crashes. In Super Speed Race, the BOOM and NOISE + // CR 2 effects play simultaneously. + m_noise_cr_2->write_line(BIT(data, 3)); + + // Bit 4 (SILENCE): mute all sound when game is not running. + m_silence->write_line(BIT(data, 4)); + + // Bits 5-7 (D5, D6, D7): not connected. +} + + +void sspeedr_state::prg_map(address_map &map) { map(0x0000, 0x0fff).rom(); map(0x2000, 0x21ff).ram(); - map(0x7f00, 0x7f17).w(FUNC(sspeedr_state::sspeedr_score_w)); + map(0x7f00, 0x7f17).w(FUNC(sspeedr_state::score_w)); } -void sspeedr_state::sspeedr_io_map(address_map &map) +void sspeedr_state::io_map(address_map &map) { map.global_mask(0xff); - map(0x00, 0x00).portr("IN0"); - map(0x01, 0x01).portr("IN1"); - map(0x00, 0x01).w(FUNC(sspeedr_state::sspeedr_sound_w)); - map(0x02, 0x02).w(FUNC(sspeedr_state::sspeedr_lamp_w)); + map(0x00, 0x00).portr("IN0").w(FUNC(sspeedr_state::sound1_w)); + map(0x01, 0x01).portr("IN1").w(FUNC(sspeedr_state::sound2_w)); + map(0x02, 0x02).w(FUNC(sspeedr_state::lamp_w)); map(0x03, 0x03).portr("DSW"); map(0x04, 0x04).portr("IN2"); - map(0x04, 0x05).w(FUNC(sspeedr_state::sspeedr_time_w)); + map(0x04, 0x05).w(FUNC(sspeedr_state::time_w)); map(0x06, 0x06).w("watchdog", FUNC(watchdog_timer_device::reset_w)); - map(0x10, 0x10).w(FUNC(sspeedr_state::sspeedr_driver_horz_w)); - map(0x11, 0x11).w(FUNC(sspeedr_state::sspeedr_driver_pic_w)); - map(0x12, 0x12).w(FUNC(sspeedr_state::sspeedr_driver_horz_2_w)); - map(0x13, 0x13).w(FUNC(sspeedr_state::sspeedr_drones_horz_w)); - map(0x14, 0x14).w(FUNC(sspeedr_state::sspeedr_drones_horz_2_w)); - map(0x15, 0x15).w(FUNC(sspeedr_state::sspeedr_drones_mask_w)); - map(0x16, 0x16).w(FUNC(sspeedr_state::sspeedr_driver_vert_w)); - map(0x17, 0x18).w(FUNC(sspeedr_state::sspeedr_track_vert_w)); - map(0x19, 0x19).w(FUNC(sspeedr_state::sspeedr_track_horz_w)); - map(0x1a, 0x1a).w(FUNC(sspeedr_state::sspeedr_track_horz_2_w)); - map(0x1b, 0x1b).w(FUNC(sspeedr_state::sspeedr_track_ice_w)); - map(0x1c, 0x1e).w(FUNC(sspeedr_state::sspeedr_drones_vert_w)); - map(0x1f, 0x1f).w(FUNC(sspeedr_state::sspeedr_int_ack_w)); + map(0x10, 0x10).w(FUNC(sspeedr_state::driver_horz_w)); + map(0x11, 0x11).w(FUNC(sspeedr_state::driver_pic_w)); + map(0x12, 0x12).w(FUNC(sspeedr_state::driver_horz_2_w)); + map(0x13, 0x13).w(FUNC(sspeedr_state::drones_horz_w)); + map(0x14, 0x14).w(FUNC(sspeedr_state::drones_horz_2_w)); + map(0x15, 0x15).w(FUNC(sspeedr_state::drones_mask_w)); + map(0x16, 0x16).w(FUNC(sspeedr_state::driver_vert_w)); + map(0x17, 0x18).w(FUNC(sspeedr_state::track_vert_w)); + map(0x19, 0x19).w(FUNC(sspeedr_state::track_horz_w)); + map(0x1a, 0x1a).w(FUNC(sspeedr_state::track_horz_2_w)); + map(0x1b, 0x1b).w(FUNC(sspeedr_state::track_ice_w)); + map(0x1c, 0x1e).w(FUNC(sspeedr_state::drones_vert_w)); + map(0x1f, 0x1f).w(FUNC(sspeedr_state::int_ack_w)); } @@ -131,8 +180,8 @@ PORT_BIT( 0x3f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(64) PORT_REMAP_TABLE(sspeedr_controller_table) PORT_WRAPS PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_START("IN1") - /* The gas pedal is adjusted physically so the encoder is at position 2 when the pedal is not pressed. */ - /* It also only uses half of the encoder. */ + // The gas pedal is adjusted physically so the encoder is at position 2 when the pedal is not pressed. + // It also only uses half of the encoder. PORT_BIT( 0x1f, 0x00, IPT_POSITIONAL_V ) PORT_POSITIONS(30) PORT_REMAP_TABLE(sspeedr_controller_table + 2) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_START("DSW") @@ -159,6 +208,9 @@ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shifter") PORT_TOGGLE PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) + + PORT_START("POT_MASTER_VOL") + PORT_ADJUSTER( 50, "Pot: Master Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "pot_master_vol") INPUT_PORTS_END @@ -183,17 +235,17 @@ static GFXDECODE_START( gfx_sspeedr ) - GFXDECODE_ENTRY( "gfx1", 0, car_layout, 0, 1 ) - GFXDECODE_ENTRY( "gfx2", 0, car_layout, 0, 1 ) + GFXDECODE_ENTRY( "driver", 0, car_layout, 0, 1 ) + GFXDECODE_ENTRY( "drone", 0, car_layout, 0, 1 ) GFXDECODE_END void sspeedr_state::sspeedr(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware Z80(config, m_maincpu, XTAL(19'968'000)/8); - m_maincpu->set_addrmap(AS_PROGRAM, &sspeedr_state::sspeedr_map); - m_maincpu->set_addrmap(AS_IO, &sspeedr_state::sspeedr_io_map); + m_maincpu->set_addrmap(AS_PROGRAM, &sspeedr_state::prg_map); + m_maincpu->set_addrmap(AS_IO, &sspeedr_state::io_map); m_maincpu->set_vblank_int("screen", FUNC(sspeedr_state::irq0_line_assert)); WATCHDOG_TIMER(config, "watchdog"); @@ -204,14 +256,39 @@ screen.set_vblank_time(ATTOSECONDS_IN_USEC(16 * 1000000 / 15680)); screen.set_size(376, 256); screen.set_visarea(0, 375, 0, 247); - screen.set_screen_update(FUNC(sspeedr_state::screen_update_sspeedr)); - screen.screen_vblank().set(FUNC(sspeedr_state::screen_vblank_sspeedr)); + screen.set_screen_update(FUNC(sspeedr_state::screen_update)); + screen.screen_vblank().set(FUNC(sspeedr_state::screen_vblank)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_sspeedr); - PALETTE(config, m_palette, FUNC(sspeedr_state::sspeedr_palette), 16); + PALETTE(config, m_palette, FUNC(sspeedr_state::palette), 16); /* sound hardware */ + SPEAKER(config, "mono").front_center(); + + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(sspeedr)) + .add_route(ALL_OUTPUTS, "mono", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit0", "I_PEDAL_BIT0", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit1", "I_PEDAL_BIT1", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit2", "I_PEDAL_BIT2", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:pedal_bit3", "I_PEDAL_BIT3", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:hi_shift", "I_HI_SHIFT", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:lo_shift", "I_LO_SHIFT", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:boom", "I_BOOM", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:engine_sound_off", + "I_ENGINE_SOUND_OFF", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:noise_cr_1", "I_NOISE_CR_1", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:noise_cr_2", "I_NOISE_CR_2", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:silence", "I_SILENCE", 0); + + // Audio output is from an LM3900 op-amp whose output has a + // peak-to-peak range of about 12 volts, centered on 6 volts. + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(32767.0 / 6.0, -32767.0); + + // Netlist volume-potentiometer interface + NETLIST_ANALOG_INPUT(config, "sound_nl:pot_master_vol", "R70.DIAL"); } @@ -220,15 +297,15 @@ ROM_LOAD( "ssr0000.pgm", 0x0000, 0x0800, CRC(bfc7069a) SHA1(2f7aa3d3c7cfd804ba4b625c6a8338534a204855) ) ROM_LOAD( "ssr0800.pgm", 0x0800, 0x0800, CRC(ec46b59a) SHA1(d5727efecb32ad3d034b885e4a57d7373368ca9e) ) - ROM_REGION( 0x0800, "gfx1", 0 ) /* driver */ + ROM_REGION( 0x0800, "driver", 0 ) ROM_LOAD( "ssrm762a.f3", 0x0000, 0x0800, CRC(de4653a9) SHA1(a6bbffb7eb60581eee43c74d20ca00b50c9a6e07) ) - ROM_REGION( 0x0800, "gfx2", 0 ) /* drone */ + ROM_REGION( 0x0800, "drone", 0 ) ROM_LOAD( "ssrm762b.j3", 0x0000, 0x0800, CRC(ef6a1cd6) SHA1(77c31f14783e5ba90849bdc930b099c8360aeba7) ) - ROM_REGION( 0x0800, "gfx3", 0 ) /* track */ + ROM_REGION( 0x0800, "track", 0 ) ROM_LOAD( "ssrm762c.l3", 0x0000, 0x0800, CRC(ebaad3ee) SHA1(54ac994b505d20c75cf07a4f68da12360ee00153) ) ROM_END -GAMEL( 1979, sspeedr, 0, sspeedr, sspeedr, sspeedr_state, empty_init, ROT270, "Midway", "Super Speed Race", MACHINE_NO_SOUND, layout_sspeedr ) +GAMEL( 1979, sspeedr, 0, sspeedr, sspeedr, sspeedr_state, empty_init, ROT270, "Midway", "Super Speed Race", MACHINE_SUPPORTS_SAVE, layout_sspeedr ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/stactics.cpp mame-0.224+dfsg.1/src/mame/drivers/stactics.cpp --- mame-0.223+dfsg.1/src/mame/drivers/stactics.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/stactics.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -311,7 +311,7 @@ void stactics_state::stactics(machine_config &config) { /* basic machine hardware */ - I8080(config, m_maincpu, 1933560); + I8080(config, m_maincpu, 15.46848_MHz_XTAL / 8); // divider not verified m_maincpu->set_addrmap(AS_PROGRAM, &stactics_state::main_map); m_maincpu->set_vblank_int("screen", FUNC(stactics_state::interrupt)); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/starcrus.cpp mame-0.224+dfsg.1/src/mame/drivers/starcrus.cpp --- mame-0.223+dfsg.1/src/mame/drivers/starcrus.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/starcrus.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,13 +1,15 @@ // license:BSD-3-Clause -// copyright-holders:Frank Palazzolo +// copyright-holders:Frank Palazzolo, Ryan Holtz /*************************************************************************** -Ramtek Star Cruiser Driver + Ramtek Star Cruiser Driver -(no known issues) + (no known issues) -Frank Palazzolo -palazzol@home.com + Frank Palazzolo + palazzol@home.com + + Netlist Audio by Ryan Holtz ***************************************************************************/ @@ -15,7 +17,6 @@ #include "includes/starcrus.h" #include "cpu/i8085/i8085.h" -#include "sound/samples.h" #include "screen.h" #include "speaker.h" @@ -84,6 +85,12 @@ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("POT_1") + PORT_ADJUSTER( 50, "Pot: Noise Level" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "noise_volume") + + PORT_START("POT_2") + PORT_ADJUSTER( 50, "Pot: Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "volume") INPUT_PORTS_END @@ -129,17 +136,6 @@ GFXDECODE_END -static const char *const starcrus_sample_names[] = -{ - "*starcrus", - "engine", /* engine sound, channel 0 */ - "explos1", /* explosion sound, first part, channel 1 */ - "explos2", /* explosion sound, second part, channel 1 */ - "launch", /* launch sound, channels 2 and 3 */ - nullptr -}; - - void starcrus_state::starcrus(machine_config &config) { /* basic machine hardware */ @@ -163,10 +159,20 @@ /* sound hardware */ SPEAKER(config, "mono").front_center(); - SAMPLES(config, m_samples); - m_samples->set_channels(4); - m_samples->set_samples_names(starcrus_sample_names); - m_samples->add_route(ALL_OUTPUTS, "mono", 1.0); + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(starcrus)) + .add_route(ALL_OUTPUTS, "mono", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:explode1", "EXPLODE_1.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:explode2", "EXPLODE_2.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:launch1", "LAUNCH_1.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:launch2", "LAUNCH_2.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:engine1", "ENGINE_1.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:engine2", "ENGINE_2.IN", 0); + NETLIST_ANALOG_INPUT(config, "sound_nl:noise_volume", "R23.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:volume", "R75.DIAL"); + + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "R77.2").set_mult_offset(100000.0, 0.0); } /*************************************************************************** diff -Nru mame-0.223+dfsg.1/src/mame/drivers/starfire.cpp mame-0.224+dfsg.1/src/mame/drivers/starfire.cpp --- mame-0.223+dfsg.1/src/mame/drivers/starfire.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/starfire.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,11 +1,13 @@ // license:BSD-3-Clause -// copyright-holders:Dan Boris, Olivier Galibert, Aaron Giles +// copyright-holders:Dan Boris, Olivier Galibert, Aaron Giles, Ryan Holtz /*************************************************************************** Star Fire/Fire One system driver by Daniel Boris, Olivier Galibert, Aaron Giles + netlist audio by Ryan Holtz + **************************************************************************** Memory map @@ -41,8 +43,8 @@ Notes: -starfira has one less rom in total than starfire but everything passes as - ok in the rom test so its probably just an earlier revision or something +starfira has one less ROM in total than starfire, but everything passes as + OK in the ROM test, so it's probably just an earlier revision. ***************************************************************************/ @@ -50,45 +52,45 @@ #include "includes/starfire.h" #include "cpu/z80/z80.h" -#include "sound/samples.h" #include "speaker.h" - /************************************* * * Scratch RAM, mapped into video RAM * *************************************/ -void starfire_state::starfire_scratch_w(offs_t offset, uint8_t data) +void starfire_base_state::scratch_w(offs_t offset, uint8_t data) { - /* A12 and A3 select video control registers */ + /* A12 and A3 select video control registers, only the low 4 addresses have an effect */ if ((offset & 0x1008) == 0x1000) { switch (offset & 7) { - case 0: m_starfire_vidctrl = data; break; - case 1: m_starfire_vidctrl1 = data; break; - case 2: m_io2_write(data); break; + case 0: m_vidctrl = data; break; + case 1: m_vidctrl1 = data; break; + case 2: + case 3: sound_w(offset & 1, data); break; + case 7: music_w((offset >> 10) & 3, data); break; default: break; } } /* convert to a videoram offset */ offset = (offset & 0x31f) | ((offset & 0xe0) << 5); - m_starfire_videoram[offset] = data; + m_videoram[offset] = data; } -uint8_t starfire_state::starfire_scratch_r(offs_t offset) +uint8_t starfire_base_state::scratch_r(offs_t offset) { /* A11 selects input ports */ if (offset & 0x800) - return m_input_read(offset); + return input_r(offset); /* convert to a videoram offset */ offset = (offset & 0x31f) | ((offset & 0xe0) << 5); - return m_starfire_videoram[offset]; + return m_videoram[offset]; } @@ -99,65 +101,97 @@ * *************************************/ -void starfire_state::starfire_sound_w(uint8_t data) +void starfire_state::sound_w(offs_t offset, uint8_t data) { - // starfire sound samples (preliminary) - uint8_t rise = data & ~m_prev_sound; - m_prev_sound = data; + m_sound_size->write(BIT(data, 0)); + m_sound_explosion->write(BIT(data, 1)); + m_sound_tie->write(BIT(data, 2)); + m_sound_laser->write(BIT(data, 3)); + m_sound_track->write(BIT(data, 4)); + m_sound_lock->write(BIT(data, 5)); + m_sound_scanner->write(BIT(data, 6)); + m_sound_overheat->write(BIT(data, 7)); + synchronize(); +} - // d0: rumble - if (rise & 1) m_samples->start(0, 0, true); - if (~data & 1) m_samples->stop(0); +void fireone_state::sound_w(offs_t offset, uint8_t data) +{ + if (offset == 0) + { + m_sound_left_torpedo->write(BIT(data, 0)); + m_sound_left_partial_hit->write(BIT(data, 1)); + m_sound_left_boom->write(BIT(data, 2)); + m_player_select = BIT(~data, 3); + m_pit->write_gate0(BIT(data, 4)); + m_pit->write_gate1(BIT(data, 5)); + m_pit->write_gate2(BIT(data, 6)); + m_sound_off_left->write(BIT(data, 7)); // HACK: There's only one SOUND_OFF signal, but it splits into the left and right mixer stages. + m_sound_off_right->write(BIT(data, 7)); // Having the left and right halves split provides a better opportunity for frontier isolation. + } + else + { + m_sound_right_torpedo->write(BIT(data, 0)); + m_sound_right_partial_hit->write(BIT(data, 1)); + m_sound_right_boom->write(BIT(data, 2)); + m_sound_torpedo_collision->write(BIT(data, 3)); + m_sound_submarine_engine->write(BIT(data, 4)); + m_sound_alert->write(BIT(data, 5)); + m_sound_sonar_sync->write(BIT(data, 6)); + m_sound_sonar_enable->write(BIT(~data, 7)); + } +} - // d1: explosion - // d2: tie weapon - // d3: laser - if (rise & 2) m_samples->start(1, 1); - if (rise & 4) m_samples->start(2, 2); - if (rise & 8) m_samples->start(3, 3); +void fireone_state::music_w(offs_t offset, uint8_t data) +{ + m_pit->write(offset, data); +} - // these are from the same generator (called "computer" in schematics) - // d4: track - // d5: lock - // d6: scanner - // d7: overheat - if (rise & 0x80) m_samples->start(4, 7); - else if (rise & 0x40) m_samples->start(4, 6); - else if (rise & 0x20) m_samples->start(4, 5); - else if (rise & 0x10) m_samples->start(4, 4); +WRITE_LINE_MEMBER(fireone_state::music_a_out_cb) +{ + m_music_a->write(state); } -void starfire_state::fireone_sound_w(uint8_t data) +WRITE_LINE_MEMBER(fireone_state::music_b_out_cb) { - // TODO: sound - m_fireone_select = (data & 0x8) ? 0 : 1; + m_music_b->write(state); } +WRITE_LINE_MEMBER(fireone_state::music_c_out_cb) +{ + m_music_c->write(state); +} -uint8_t starfire_state::starfire_input_r(offs_t offset) +uint8_t starfire_state::input_r(offs_t offset) { switch (offset & 15) { - case 0: return ioport("DSW")->read(); - case 1: - { - // d3 and d4 come from the audio circuit, how does it work exactly? - // tie_on sounds ok, but laser_on sounds buggy - uint8_t tie_on = m_samples->playing(2) ? 0x00 : 0x08; - uint8_t laser_on = m_samples->playing(3) ? 0x00 : 0x10; - uint8_t input = ioport("SYSTEM")->read() & 0xe7; - return input | tie_on | laser_on | 0x10; // disable laser_on for now - } - case 5: return ioport("STICKZ")->read(); - case 6: return ioport("STICKX")->read(); - case 7: return ioport("STICKY")->read(); + case 0: return m_dsw->read(); + case 1: return (m_system->read() & 0xe7) | m_sound_tie_on | m_sound_laser_on; + case 5: return m_stickz->read(); + case 6: return m_stickx->read(); + case 7: return m_sticky->read(); default: return 0xff; } } -uint8_t starfire_state::fireone_input_r(offs_t offset) +NETDEV_ANALOG_CALLBACK_MEMBER(starfire_state::tieon1_cb) +{ + m_sound_tie_on = (data > 2.5) ? 0x00 : 0x08; +} + +NETDEV_ANALOG_CALLBACK_MEMBER(starfire_state::laseron1_cb) { - static const uint8_t fireone_paddle_map[64] = + m_sound_laser_on = (data > 2.5) ? 0x00 : 0x10; +} + +NETDEV_ANALOG_CALLBACK_MEMBER(starfire_state::sound_out_cb) +{ + m_dac->write(std::round(8192.0 * data)); +} + +uint8_t fireone_state::input_r(offs_t offset) +{ + static const uint8_t s_paddle_map[64] = { 0x00,0x01,0x03,0x02,0x06,0x07,0x05,0x04, 0x0c,0x0d,0x0f,0x0e,0x0a,0x0b,0x09,0x08, @@ -171,12 +205,14 @@ switch (offset & 15) { - case 0: return ioport("DSW")->read(); - case 1: return ioport("SYSTEM")->read(); + case 0: + return m_dsw->read(); + case 1: + return m_system->read(); case 2: { - uint8_t input = m_fireone_select ? ioport("P1")->read() : ioport("P2")->read(); - return (input & 0xc0) | fireone_paddle_map[input & 0x3f]; + const uint8_t input = m_controls[m_player_select]->read(); + return (input & 0xc0) | s_paddle_map[input & 0x3f]; } default: return 0xff; } @@ -190,12 +226,12 @@ * *************************************/ -void starfire_state::main_map(address_map &map) +void starfire_base_state::main_map(address_map &map) { map(0x0000, 0x7fff).rom(); - map(0x8000, 0x9fff).rw(FUNC(starfire_state::starfire_scratch_r), FUNC(starfire_state::starfire_scratch_w)); - map(0xa000, 0xbfff).rw(FUNC(starfire_state::starfire_colorram_r), FUNC(starfire_state::starfire_colorram_w)).share("colorram"); - map(0xc000, 0xffff).rw(FUNC(starfire_state::starfire_videoram_r), FUNC(starfire_state::starfire_videoram_w)).share("videoram"); + map(0x8000, 0x9fff).rw(FUNC(starfire_base_state::scratch_r), FUNC(starfire_base_state::scratch_w)); + map(0xa000, 0xbfff).rw(FUNC(starfire_base_state::colorram_r), FUNC(starfire_base_state::colorram_w)).share("colorram"); + map(0xc000, 0xffff).rw(FUNC(starfire_base_state::videoram_r), FUNC(starfire_base_state::videoram_w)).share("videoram"); } @@ -233,8 +269,8 @@ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // (audio) TIE ON, see starfire_input_r - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_CUSTOM ) // (audio) LASER ON, see starfire_input_r + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // (audio) TIE ON, see input_r + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_CUSTOM ) // (audio) LASER ON, see input_r PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) // SLAM/STATIC PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -252,6 +288,27 @@ PORT_CONFNAME( 0x01, 0x01, "Jumper J6/4G: Enable NMI" ) PORT_CONFSETTING( 0x00, DEF_STR( No ) ) PORT_CONFSETTING( 0x01, DEF_STR( Yes ) ) + + PORT_START("POT_TRACK") + PORT_ADJUSTER( 50, "Tracking Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "trackvol") + + PORT_START("POT_LASER") + PORT_ADJUSTER( 50, "Laser Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "laservol") + + PORT_START("POT_TIE") + PORT_ADJUSTER( 50, "Enemy Shot Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "enemyvol") + + PORT_START("POT_SIZE") + PORT_ADJUSTER( 50, "'Size' Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "sizevol") + + PORT_START("POT_EXPLO") + PORT_ADJUSTER( 50, "Explosion Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "explovol") + + PORT_START("POT_LOH") + PORT_ADJUSTER( 50, "Lock/Scan/Overheat Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "lohvol") + + PORT_START("POT_MAIN") + PORT_ADJUSTER( 50, "Main Volume" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "mainvol") INPUT_PORTS_END @@ -296,6 +353,12 @@ PORT_BIT( 0x3f, 0x20, IPT_PADDLE ) PORT_MINMAX(0,63) PORT_SENSITIVITY(50) PORT_KEYDELTA(1) PORT_PLAYER(2) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + + PORT_START("POT_L") + PORT_ADJUSTER( 50, "Mixer Volume (L)" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "volume_l") + + PORT_START("POT_R") + PORT_ADJUSTER( 50, "Mixer Volume (R)" ) NETLIST_ANALOG_PORT_CHANGED("sound_nl", "volume_r") INPUT_PORTS_END @@ -306,51 +369,133 @@ * *************************************/ -static const char *const starfire_sample_names[] = +void starfire_state::machine_start() +{ + save_item(NAME(m_sound_tie_on)); + save_item(NAME(m_sound_laser_on)); +} + +void starfire_state::machine_reset() { - "*starfire", - "size", - "explosion", - "tie", - "laser", - "track", - "lock", - "scanner", - "overheat", - nullptr -}; + m_sound_tie_on = 0x08; + m_sound_laser_on = 0x10; +} + +void fireone_state::machine_start() +{ + save_item(NAME(m_player_select)); + + m_pit->set_clockin(0, STARFIRE_CPU_CLOCK.dvalue()); + m_pit->set_clockin(1, STARFIRE_CPU_CLOCK.dvalue()); + m_pit->set_clockin(2, STARFIRE_CPU_CLOCK.dvalue()); +} + +void fireone_state::machine_reset() +{ + m_player_select = 0; +} INTERRUPT_GEN_MEMBER(starfire_state::vblank_int) { // starfire has a jumper for disabling NMI, used to do a complete RAM test - if (m_nmi.read_safe(0x01)) + if (m_nmi->read()) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -void starfire_state::fireone(machine_config &config) +INTERRUPT_GEN_MEMBER(fireone_state::vblank_int) +{ + device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); +} + +void starfire_base_state::base_config(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, STARFIRE_CPU_CLOCK); - m_maincpu->set_addrmap(AS_PROGRAM, &starfire_state::main_map); - m_maincpu->set_vblank_int("screen", FUNC(starfire_state::vblank_int)); + m_maincpu->set_addrmap(AS_PROGRAM, &starfire_base_state::main_map); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(STARFIRE_PIXEL_CLOCK, STARFIRE_HTOTAL, STARFIRE_HBEND, STARFIRE_HBSTART, STARFIRE_VTOTAL, STARFIRE_VBEND, STARFIRE_VBSTART); - m_screen->set_screen_update(FUNC(starfire_state::screen_update_starfire)); + m_screen->set_screen_update(FUNC(starfire_base_state::screen_update)); +} + +void fireone_state::fireone(machine_config &config) +{ + base_config(config); + m_maincpu->set_vblank_int("screen", FUNC(fireone_state::vblank_int)); + + PIT8253(config, m_pit); + m_pit->out_handler<0>().set(FUNC(fireone_state::music_a_out_cb)); + m_pit->out_handler<1>().set(FUNC(fireone_state::music_b_out_cb)); + m_pit->out_handler<2>().set(FUNC(fireone_state::music_c_out_cb)); + + /* sound hardware */ + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(fireone)) + .add_route(0, "lspeaker", 1.0) + .add_route(1, "rspeaker", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:ltorp", "LTORP.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:lshpht", "LSHPHT.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:lboom", "LBOOM.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:lsound_off", "SOUND_OFF_L.IN", 0); // HACK: Split the SOUND OFF into left/right halves for better netlist isolation. + NETLIST_LOGIC_INPUT(config, "sound_nl:rsound_off", "SOUND_OFF_R.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:rtorp", "RTORP.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:rshpht", "RSHPHT.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:rboom", "RBOOM.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:torpcoll", "TORPCOLL.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:subeng", "SUBENG.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:alert", "ALERT.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:sonar_enable", "SONAR_ENABLE.POS", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:sonar_sync", "SONAR_SYNC.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:music_a", "MUSIC_A.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:music_b", "MUSIC_B.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:music_c", "MUSIC_C.IN", 0); + NETLIST_ANALOG_INPUT(config, "sound_nl:volume_l", "R64.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:volume_r", "R65.DIAL"); + + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUT_L").set_mult_offset(100000.0, 0.0); + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout1", 1, "OUT_R").set_mult_offset(100000.0, 0.0); } void starfire_state::starfire(machine_config &config) { - fireone(config); + base_config(config); + m_maincpu->set_vblank_int("screen", FUNC(starfire_state::vblank_int)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - SAMPLES(config, m_samples); - m_samples->set_channels(5); - m_samples->set_samples_names(starfire_sample_names); - m_samples->add_route(ALL_OUTPUTS, "mono", 1.0); + NETLIST_CPU(config, "sound_nl", netlist::config::DEFAULT_CLOCK()).set_source(NETLIST_NAME(starfire)); + + NETLIST_LOGIC_INPUT(config, "sound_nl:size", "SIZE.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:sexplo", "SEXPLO.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:stie", "STIE.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:slaser", "SLASER.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:track", "TRACK.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:lock", "LOCK.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:scanner", "SCANNER.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:oheat", "OHEAT.IN", 0); + + NETLIST_ANALOG_INPUT(config, "sound_nl:trackvol", "R16.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:laservol", "R18.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:enemyvol", "R17.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:sizevol", "R19.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:explovol", "R20.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:lohvol", "R15.DIAL"); + NETLIST_ANALOG_INPUT(config, "sound_nl:mainvol", "R21.DIAL"); + + NETLIST_ANALOG_OUTPUT(config, "sound_nl:tieon1", 0).set_params("TIEON1", FUNC(starfire_state::tieon1_cb)); + NETLIST_ANALOG_OUTPUT(config, "sound_nl:laseron1", 0).set_params("LASERON1", FUNC(starfire_state::laseron1_cb)); + NETLIST_ANALOG_OUTPUT(config, "sound_nl:output", 0).set_params("OUTPUT", FUNC(starfire_state::sound_out_cb)); + + DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac, 0).add_route(ALL_OUTPUTS, "mono", 0.5); // Not actually a DAC, just here to receive output. + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); } @@ -440,41 +585,13 @@ ROM_LOAD( "prom-2.8a", 0x0020, 0x0020, CRC(9b713924) SHA1(943ad55d232f7bb99886a9a273dd14a1e1533491) ) /* BPROM type is N82S123 */ ROM_END - - -/************************************* - * - * Driver init - * - *************************************/ - -void starfire_state::init_starfire() -{ - m_input_read = read8sm_delegate(*this, FUNC(starfire_state::starfire_input_r)); - m_io2_write = write8smo_delegate(*this, FUNC(starfire_state::starfire_sound_w)); - - /* register for state saving */ - save_item(NAME(m_prev_sound)); -} - -void starfire_state::init_fireone() -{ - m_input_read = read8sm_delegate(*this, FUNC(starfire_state::fireone_input_r)); - m_io2_write = write8smo_delegate(*this, FUNC(starfire_state::fireone_sound_w)); - - /* register for state saving */ - save_item(NAME(m_fireone_select)); -} - - - /************************************* * * Game drivers * *************************************/ -GAME( 1979, starfire, 0, starfire, starfire, starfire_state, init_starfire, ROT0, "Exidy", "Star Fire (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, starfirea,starfire, starfire, starfire, starfire_state, init_starfire, ROT0, "Exidy", "Star Fire (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, fireone, 0, fireone, fireone, starfire_state, init_fireone, ROT0, "Exidy", "Fire One", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, starfir2, 0, starfire, starfire, starfire_state, init_starfire, ROT0, "Exidy", "Star Fire 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, starfire, 0, starfire, starfire, starfire_state, empty_init, ROT0, "Exidy", "Star Fire (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, starfirea,starfire, starfire, starfire, starfire_state, empty_init, ROT0, "Exidy", "Star Fire (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, fireone, 0, fireone, fireone, fireone_state, empty_init, ROT0, "Exidy", "Fire One", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, starfir2, 0, starfire, starfire, starfire_state, empty_init, ROT0, "Exidy", "Star Fire 2", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/taito_f3.cpp mame-0.224+dfsg.1/src/mame/drivers/taito_f3.cpp --- mame-0.223+dfsg.1/src/mame/drivers/taito_f3.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/taito_f3.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3455,7 +3455,7 @@ all genuine parts including mask ROMs, PALs, ect. However the 4 program ROMs were replaced with 4 EPROMs without specific labels. The replacement ROMs were 27C010 type instead of the standard 27C040 that Taito would normaly use. In the case of Cleopatra -Fortune, each original program ROM is 0xFF filled from bytes 0x20000 through 0x3FFFF. +Fortune, each original program ROM is 0xFF filled from bytes 0x20000 through 0x7FFFF. In cleopatro, the program ROMs match the 1st 1/4 of cleopatr program ROMs except for 1 byte in ic17.bin. 0x1FFFF has been changed from 0x00 to 0x03, which amounts to a simple region hack. diff -Nru mame-0.223+dfsg.1/src/mame/drivers/tamag1.cpp mame-0.224+dfsg.1/src/mame/drivers/tamag1.cpp --- mame-0.223+dfsg.1/src/mame/drivers/tamag1.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/tamag1.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,5 +1,6 @@ // license:BSD-3-Clause // copyright-holders:hap +// thanks-to:digshadow, segher /*************************************************************************** Bandai Tamagotchi generation 1 hardware diff -Nru mame-0.223+dfsg.1/src/mame/drivers/tankbatt.cpp mame-0.224+dfsg.1/src/mame/drivers/tankbatt.cpp --- mame-0.223+dfsg.1/src/mame/drivers/tankbatt.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/tankbatt.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2,59 +2,74 @@ // copyright-holders:Brad Oliver /*************************************************************************** -Tank Battalion memory map (preliminary) +Tank Battalion memory map (verified) driver by Brad Oliver -$0000-$000f : bullet ram, first entry is player's bullet -$0010-$01ff : zero page & stack -$0200-$07ff : RAM -$0800-$0bff : videoram -$0c00-$0c1f : I/O - -Read: - $0c00-$0c03 : p1 joystick - $0c04 - $0c07 : stop at grid self-test if bit 7 is low - $0c0f : stop at first self-test if bit 7 is low - - $0c18 : Cabinet, 0 = table, 1 = upright - $0c19-$0c1a : Coinage, 00 = free play, 01 = 2 coin 1 credit, 10 = 1 coin 2 credits, 11 = 1 coin 1 credit - $0c1b-$0c1c : Bonus, 00 = 10000, 01 = 15000, 10 = 20000, 11 = none - $0c1d : Tanks, 0 = 3, 1 = 2 - $0c1e-$0c1f : ?? - -Write: - $0c00-$0c01 : p1/p2 start leds - $0c02 : ?? written to at end of IRQ, either 0 or 1 - coin counter? - $0c03 : ?? written to during IRQ if grid test is on - $0c08 : ?? written to during IRQ if grid test is on - $0c09 : Sound - coin ding - $0c0a : NMI enable (active low) ?? game only ?? - $0c0b : Sound - background noise, 0 - low rumble, 1 - high rumble - $0c0c : Sound - player fire - $0c0d : Sound - explosion - $0c0f : NMI enable (active high) ?? demo only ?? - - $0c10 : IRQ ack ?? - $0c18 : Watchdog ?? Not written to while game screen is up - -$2000-$3fff : ROM +Memory Map: + $0000-$03ff : Work RAM 0 + $0400-$07ff : Work RAM 1 + $0800-$0bff : VRAM + $0c00-$0fff : I/O + $2000-$3fff : ROM + +A 4-bit BCD value is created from the following four bits: + Bit 0: A3 + Bit 1: A4 + Bit 2: Read + Bit 3: !(A10 & A11) + +For writes, the following upper ranges are decoded: + xxxx 11xx xxx0 0xxx: OUT0 + xxxx 11xx xxx0 1xxx: OUT1 + xxxx 11xx xxx1 0xxx: INTACK + xxxx 11xx xxx1 1xxx: Watchdog + +For reads, the following upper ranges are decoded: + xxxx 11xx xxx0 0xxx: IN0 + xxxx 11xx xxx0 1xxx: IN1 + xxxx 11xx xxx1 0xxx: - + xxxx 11xx xxx1 1xxx: DIP switches + +OUT0: + 000: Edge Pin F P1 LED (schematic states Unused) + 001: Edge Pin 6 P2 LED (schematic states Unused) + 010: Edge Pin H Coin Counter (schematic states Unused) + 011: Edge Pin 7 Coin Lockout (schematic states Coin Counter) + 1xx: Unused + +OUT1: + 000: S1 (Square Wave 1, connected to 2V) + 001: S2 (Square Wave 2, connected to 4V) + 010: Sound off (1), on (0) + 011: Rumble hi (1), rumble low (0) + 100: Shoot sound effect + 101: Hit sound effect + 110: Unused + 111: NMI Enable + +IN0: + 000: Edge Pin Y Joystick Up + 001: Edge Pin M Joystick Left + 010: Edge Pin 14 Joystick Down + 011: Edge Pin 11 Joystick Right + 100: Edge Pin N Shoot + 101: Edge Pin J Coin 1 + 110: Edge Pin 8 Coin 2 + 111: Edge Pin 9 Service Switch + +IN1: + 000: Edge Pin 21 Joystick Up (Cocktail) + 001: Edge Pin P Joystick Left (Cocktail) + 010: Edge Pin V Joystick Down (Cocktail) + 011: Edge Pin 13 Joystick Right (Cocktail) + 100: Edge Pin 12 Shoot (Cocktail) + 101: Edge Pin L P1 Start + 110: Edge Pin 10 P2 Start + 111: Edge Pin K Test DIP Switch TODO: - . Needs proper discrete emulation - . Resistor values on the color prom need to be verified - -Changes: - 28 Feb 98 LBO - . Fixed the coin interrupts - . Fixed the color issues, should be 100% if I guessed at the resistor values properly - . Fixed the 2nd player cocktail joystick, had the polarity reversed - . Hacked the sound sample triggers so they work better - -Known issues: - . The 'moving' tank rumble noise seems to keep playing a second too long - . Sample support is all a crapshoot. I have no idea how it really works + . Resistor values on the color prom need to be corrected ***************************************************************************/ @@ -63,87 +78,35 @@ #include "cpu/m6502/m6502.h" #include "machine/74259.h" -#include "sound/samples.h" +#include "machine/input_merger.h" +#include "machine/watchdog.h" #include "screen.h" #include "speaker.h" void tankbatt_state::machine_start() { - save_item(NAME(m_nmi_enable)); save_item(NAME(m_sound_enable)); } uint8_t tankbatt_state::in0_r(offs_t offset) { - int val; - - val = ioport("P1")->read(); - return ((val << (7 - offset)) & 0x80); + return BIT(m_player_input[0]->read(), offset) << 7; } uint8_t tankbatt_state::in1_r(offs_t offset) { - int val; - - val = ioport("P2")->read(); - return ((val << (7 - offset)) & 0x80); + return BIT(m_player_input[1]->read(), offset) << 7; } uint8_t tankbatt_state::dsw_r(offs_t offset) { - int val; - - val = ioport("DSW")->read(); - return ((val << (7 - offset)) & 0x80); + return BIT(m_dips->read(), offset) << 7; } -WRITE_LINE_MEMBER(tankbatt_state::interrupt_enable_w) +void tankbatt_state::intack_w(uint8_t data) { - m_nmi_enable = !state; - m_sound_enable = !state; - - /* hack - turn off the engine noise if the normal game nmi's are disabled */ - if (state) m_samples->stop(2); -} - -WRITE_LINE_MEMBER(tankbatt_state::demo_interrupt_enable_w) -{ - m_nmi_enable = state; -} - -WRITE_LINE_MEMBER(tankbatt_state::sh_expl_w) -{ - if (state) // rising edge - { - m_samples->start(1, 3); - } -} - -WRITE_LINE_MEMBER(tankbatt_state::sh_engine_w) -{ - if (m_sound_enable) - { - if (state) - m_samples->start(2, 2, true); - else - m_samples->start(2, 1, true); - } - else m_samples->stop(2); -} - -WRITE_LINE_MEMBER(tankbatt_state::sh_fire_w) -{ - if (state) // rising edge - { - m_samples->start(0, 0); - } -} - -void tankbatt_state::irq_ack_w(uint8_t data) -{ - /* 0x6e written at the end of the irq routine, could be either irq ack or a coin sample */ - m_maincpu->set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(m6502_device::IRQ_LINE, CLEAR_LINE); } WRITE_LINE_MEMBER(tankbatt_state::coincounter_w) @@ -159,29 +122,21 @@ void tankbatt_state::main_map(address_map &map) { - map(0x0000, 0x000f).ram().share("bulletsram"); - map(0x0010, 0x01ff).ram(); - map(0x0200, 0x07ff).ram(); - map(0x0800, 0x0bff).ram().w(FUNC(tankbatt_state::videoram_w)).share("videoram"); - map(0x0c00, 0x0c07).r(FUNC(tankbatt_state::in0_r)).w("outlatch", FUNC(cd4099_device::write_d0)); - map(0x0c08, 0x0c0f).r(FUNC(tankbatt_state::in1_r)).w("mainlatch", FUNC(cd4099_device::write_d0)); - map(0x0c10, 0x0c10).w(FUNC(tankbatt_state::irq_ack_w)); - map(0x0c18, 0x0c1f).r(FUNC(tankbatt_state::dsw_r)); - map(0x0c18, 0x0c18).nopw(); /* watchdog ?? */ - map(0x6000, 0x7fff).rom().region("maincpu", 0); - map(0xe000, 0xffff).rom().region("maincpu", 0); //mirror for the reset/irq vectors - map(0x2000, 0x5fff).nopr(); //anything else might be left-over for a diagnostic ROM or something related to the discrete sound HW - map(0x8000, 0xdfff).nopr(); -} - -INTERRUPT_GEN_MEMBER(tankbatt_state::interrupt) -{ - if (m_nmi_enable) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); + map.global_mask(0x3fff); + map(0x0000, 0x000f).mirror(0x1000).ram().share("bulletsram"); + map(0x0010, 0x07ff).mirror(0x1000).ram(); + map(0x0800, 0x0bff).mirror(0x1000).ram().w(FUNC(tankbatt_state::videoram_w)).share("videoram"); + map(0x0c00, 0x0c07).mirror(0x13e0).r(FUNC(tankbatt_state::in0_r)).w("outlatch0", FUNC(cd4099_device::write_d0)); + map(0x0c08, 0x0c0f).mirror(0x13e0).r(FUNC(tankbatt_state::in1_r)).w("outlatch1", FUNC(cd4099_device::write_d0)); + map(0x0c10, 0x0c10).mirror(0x13e7).w(FUNC(tankbatt_state::intack_w)); + map(0x0c18, 0x0c1f).mirror(0x13e0).r(FUNC(tankbatt_state::dsw_r)); + map(0x0c18, 0x0c18).mirror(0x13e7).w("watchdog", FUNC(watchdog_timer_device::reset_w)); + map(0x2000, 0x3fff).rom().region("maincpu", 0); } -INPUT_CHANGED_MEMBER(tankbatt_state::coin_inserted) +TIMER_DEVICE_CALLBACK_MEMBER(tankbatt_state::scanline_interrupt) { - m_maincpu->set_input_line(0, ASSERT_LINE); + m_maincpu->set_input_line(m6502_device::IRQ_LINE, ASSERT_LINE); } static INPUT_PORTS_START( tankbatt ) @@ -191,9 +146,9 @@ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, tankbatt_state,coin_inserted, 0) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, tankbatt_state,coin_inserted, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_START("P2") /* IN1 */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL @@ -258,47 +213,41 @@ -static const char *const tankbatt_sample_names[] = -{ - "*tankbatt", - "fire", - "engine1", - "engine2", - "explode1", - nullptr /* end of array */ -}; - - void tankbatt_state::tankbatt(machine_config &config) { /* basic machine hardware */ - M6502(config, m_maincpu, 1000000); /* 1 MHz ???? */ + M6502(config, m_maincpu, 18.432_MHz_XTAL / 24); // ϕ0 = 4H m_maincpu->set_addrmap(AS_PROGRAM, &tankbatt_state::main_map); - m_maincpu->set_vblank_int("screen", FUNC(tankbatt_state::interrupt)); - cd4099_device &mainlatch(CD4099(config, "mainlatch")); // latches at 4H and 5H (are the empty 4J and 5J locations for LS259 substitution?) - mainlatch.q_out_cb<0>().set_nop(); //coin counter mirror? - mainlatch.q_out_cb<2>().set(FUNC(tankbatt_state::interrupt_enable_w)); - mainlatch.q_out_cb<3>().set(FUNC(tankbatt_state::sh_engine_w)); - mainlatch.q_out_cb<4>().set(FUNC(tankbatt_state::sh_fire_w)); - mainlatch.q_out_cb<5>().set(FUNC(tankbatt_state::sh_expl_w)); // bit 7 also set by ASL instruction - mainlatch.q_out_cb<6>().set_nop(); // bit 7 also set by ASL instruction - mainlatch.q_out_cb<7>().set(FUNC(tankbatt_state::demo_interrupt_enable_w)); - - cd4099_device &outlatch(CD4099(config, "outlatch")); - outlatch.q_out_cb<0>().set_output("led0"); - outlatch.q_out_cb<1>().set_output("led1"); - outlatch.q_out_cb<2>().set(FUNC(tankbatt_state::coincounter_w)); - outlatch.q_out_cb<3>().set(FUNC(tankbatt_state::coinlockout_w)); + INPUT_MERGER_ALL_HIGH(config, "nmigate").output_handler().set_inputline(m_maincpu, m6502_device::NMI_LINE); + + TIMER(config, "16v").configure_scanline(FUNC(tankbatt_state::scanline_interrupt), "screen", 16, 32); + + WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 16); // system reset pulse is ripple carry output of 74LS161 at 7C + + cd4099_device &outlatch0(CD4099(config, "outlatch0")); // 4099 at 5H or 259 at 5J + outlatch0.q_out_cb<0>().set_output("led0"); + outlatch0.q_out_cb<1>().set_output("led1"); + outlatch0.q_out_cb<2>().set(FUNC(tankbatt_state::coincounter_w)); + outlatch0.q_out_cb<3>().set(FUNC(tankbatt_state::coinlockout_w)); + // Q4 through Q7 are not connected + + cd4099_device &outlatch1(CD4099(config, "outlatch1")); // 4099 at 4H or 259 at 4J + outlatch1.q_out_cb<0>().set(m_sound_s1, FUNC(netlist_mame_logic_input_device::write_line)); + outlatch1.q_out_cb<1>().set(m_sound_s2, FUNC(netlist_mame_logic_input_device::write_line)); + outlatch1.q_out_cb<2>().set(m_sound_off, FUNC(netlist_mame_logic_input_device::write_line)); + outlatch1.q_out_cb<3>().set(m_sound_engine_hi, FUNC(netlist_mame_logic_input_device::write_line)); + outlatch1.q_out_cb<4>().set(m_sound_shoot, FUNC(netlist_mame_logic_input_device::write_line)); + outlatch1.q_out_cb<5>().set(m_sound_hit, FUNC(netlist_mame_logic_input_device::write_line)); + // Q6 is not connected + outlatch1.q_out_cb<7>().set("nmigate", FUNC(input_merger_device::in_w<1>)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(32*8, 32*8); - screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_raw(18.432_MHz_XTAL / 3, 384, 0, 256, 264, 16, 240); // timing chain is same as in Galaxian screen.set_screen_update(FUNC(tankbatt_state::screen_update)); screen.set_palette(m_palette); + screen.screen_vblank().set("nmigate", FUNC(input_merger_device::in_w<0>)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tankbatt); PALETTE(config, m_palette, FUNC(tankbatt_state::tankbatt_palette), 256*2, 256); @@ -306,10 +255,18 @@ /* sound hardware */ SPEAKER(config, "mono").front_center(); - SAMPLES(config, m_samples); - m_samples->set_channels(3); - m_samples->set_samples_names(tankbatt_sample_names); - m_samples->add_route(ALL_OUTPUTS, "mono", 0.25); + NETLIST_SOUND(config, "sound_nl", 48000) + .set_source(NETLIST_NAME(tankbatt)) + .add_route(ALL_OUTPUTS, "mono", 1.0); + + NETLIST_LOGIC_INPUT(config, "sound_nl:s1", "S1.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:s2", "S2.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:off", "OFF.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:engine_hi", "ENGINE_HI.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:shoot", "SHOOT.IN", 0); + NETLIST_LOGIC_INPUT(config, "sound_nl:hit", "HIT.IN", 0); + + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "R35.2").set_mult_offset(10000.0, 0.0); } @@ -348,5 +305,5 @@ ROM_LOAD( "bct1-1.l3", 0x0000, 0x0100, CRC(d17518bc) SHA1(f3b0deffa586808bc59e9a24ec1699c54ebe84cc) ) // dm74s287n.3l ROM_END -GAME( 1980, tankbatt, 0, tankbatt, tankbatt, tankbatt_state, empty_init, ROT90, "Namco", "Tank Battalion", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tankbattb, tankbatt, tankbatt, tankbatt, tankbatt_state, empty_init, ROT90, "bootleg", "Tank Battalion (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tankbatt, 0, tankbatt, tankbatt, tankbatt_state, empty_init, ROT90, "Namco", "Tank Battalion", MACHINE_IMPERFECT_COLORS |MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tankbattb, tankbatt, tankbatt, tankbatt, tankbatt_state, empty_init, ROT90, "bootleg", "Tank Battalion (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/tecmo.cpp mame-0.224+dfsg.1/src/mame/drivers/tecmo.cpp --- mame-0.223+dfsg.1/src/mame/drivers/tecmo.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/tecmo.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1105,6 +1105,12 @@ sound cpu: sharp LH0080A Z80A @ 4MHz 8705 this set shows "GF" (revision?) on title screen this seems to be a bootleg of a prototype, not sure if it's the other proto set hacked or another rev proto + some of the tile roms are half size but the original has a lot of unused data so nothing is missing in game. + the various Mitsubishi custom chips present on original board are implemented with standard ttl chips: + MN50005XTA on the main board is 11 ttl chips + M60002-0118P on the video board is 27 ttl chips + MA7053 sil module on the main board is 4 ttl chips + these are all properly integrated into the design of the boards, not plug-in sub/daughter boards. */ ROM_START( silkwormb ) ROM_REGION( 0x20000, "maincpu", 0 ) @@ -1133,7 +1139,7 @@ ROM_LOAD( "silkworm.14", 0x00000, 0x10000, CRC(409df64b) SHA1(cada970bf9cc8f6522e7a71e00fe873568852873) ) /* bg tiles TMM24512 */ ROM_LOAD( "e14.15", 0x10000, 0x08000, CRC(b02acdb6) SHA1(6be74bb89680b79b3a5d13af638ed5a0bb077dad) ) /* bg tiles 27C256 */ ROM_LOAD( "e15.16", 0x20000, 0x08000, CRC(caf7b25e) SHA1(2c348af9d03efd801cbbc06deb02869bd6449518) ) /* bg tiles 27C256 */ - ROM_LOAD( "e16.17", 0x30000, 0x08000, CRC(7ec93873) SHA1(0993a3b3e5ca84ef0ea32159825e379ba4cc5fbb) ) /* bg tiles 27C256 */ + ROM_LOAD( "e16.17", 0x38000, 0x08000, CRC(7ec93873) SHA1(0993a3b3e5ca84ef0ea32159825e379ba4cc5fbb) ) /* bg tiles 27C256 */ ROM_END /* diff -Nru mame-0.223+dfsg.1/src/mame/drivers/tecnodar.cpp mame-0.224+dfsg.1/src/mame/drivers/tecnodar.cpp --- mame-0.223+dfsg.1/src/mame/drivers/tecnodar.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/tecnodar.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,8 +1,38 @@ // license:BSD-3-Clause // copyright-holders:AJR /******************************************************************************* - Skeleton driver for Automatics Pasqual darts with CRT display. + ________________________________________________________________________________ + | _______ _______ ______ | + | |__CN__| |__CN__| |__CN_| ___ | + | ___ ___ | || + | |F| |F| __________ ___ | || + | |U| |U| |74LS373N_| ____ | | | || + | |S| |S| __________ ___________ |___|| | | || + | |E| |E| KS74HCTLS379N | RAM | _________ | | |C || + | |__________| |_LM380N_| ______ |__| |N || + | _________ ____________ _________ | | ___ | || + | |SN74HC14N | EMPTY | |MT4264-10 | | | | | || + | |___________| _________ | | | | | || + | _________ ____________ |MT4264-10 TMP82C55AP-2 | | || + | |74HC32AP| | EMPTY | _________ | | |__| |__|| + | |___________| |MT4264-10 | | ___ ___ | + | ___ _________ ____________ _________ | | | | |C || + | |F| |GAL16V8_| | ROM 3 | |MT4264-10 |_____| | | |N || + | |U| |___________| _________ ______ | | | || + | |S| _________ ____________ |MT4264-10 | | |__|<-ULN2903A + | |E| |74HC244AP | ROM 2 | _________ | | |__|| + | |___________| |MT4264-10 | | ___ | + | ___ _________ ____________ _________ | | |CN|| + | |F| |74HC244AP | ROM 1 | |MT4264-10 AY38910A/P |__|| + | |U| |___________| _________ | | ___ | + | |S| _________ _________ _____ |MT4264-10 | | | || + | |E| |74HC244AP |74HC245AP |XTAL 10.245MHz |_____| |C || + | ________________ ________________ _____ |N || + | _________ |Z8400A PS | |VIDEO | |DIPS |__|| + | |_GD4011B| |_______________| |_______________| _________ | + | |CD40208E| | + |_______________________________________________________________________________| *******************************************************************************/ diff -Nru mame-0.223+dfsg.1/src/mame/drivers/thunderx.cpp mame-0.224+dfsg.1/src/mame/drivers/thunderx.cpp --- mame-0.223+dfsg.1/src/mame/drivers/thunderx.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/thunderx.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -727,46 +727,54 @@ ROM_LOAD( "775-c01.bin", 0x00000, 0x08000, CRC(0ced785a) SHA1(1eebe005a968fbaac595c168499107e34763976c) ) ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ - ROM_LOAD32_BYTE( "775-a07a.bin", 0x00000, 0x20000, CRC(e716bdf3) SHA1(82e10132f248aed8cc1aea6bb7afe9a1479c8b59) ) - ROM_LOAD32_BYTE( "775-a07e.bin", 0x00001, 0x20000, CRC(0986e3a5) SHA1(61c33a3f2e4fde7d23d440b5c3151fe38e25716b) ) - ROM_LOAD32_BYTE( "775-a08a.bin", 0x00002, 0x20000, CRC(3ddd11a4) SHA1(4831a891d6cb4507053d576eddd658c338318176) ) - ROM_LOAD32_BYTE( "775-a08e.bin", 0x00003, 0x20000, CRC(1007d963) SHA1(cba4ca058dee1c8cdeb019e1cc50cae76bf419a1) ) - ROM_LOAD32_BYTE( "775-f07c.bin", 0x80000, 0x10000, CRC(b0b30915) SHA1(0abd858f93f7cc5383a805a5ae06c086c120f208) ) - ROM_LOAD32_BYTE( "775-f07g.bin", 0x80001, 0x10000, CRC(fbed827d) SHA1(7fcc6cc03ab6238b05799dd50f38c29eb9f98b5a) ) - ROM_LOAD32_BYTE( "775-f08c.bin", 0x80002, 0x10000, CRC(53abdaec) SHA1(0e0f7fe4bb9139a1ae94506a832153b711961564) ) - ROM_LOAD32_BYTE( "775-f08g.bin", 0x80003, 0x10000, CRC(3df85a6e) SHA1(25a49abbf6e9fe63d4ff6bfff9219c98aa1b5e7b) ) - ROM_LOAD32_BYTE( "775-f07d.bin", 0xc0000, 0x10000, CRC(f184be8e) SHA1(c266be12762f7e81edbe4b36f3c96b03f6ec552b) ) - ROM_LOAD32_BYTE( "775-f07h.bin", 0xc0001, 0x10000, CRC(7b56c348) SHA1(f75c1c0962389f204c8cf1a0bc2da01a922cd742) ) - ROM_LOAD32_BYTE( "775-f08d.bin", 0xc0002, 0x10000, CRC(102dcace) SHA1(03036b6d9d66a12cb3e97980f149c09d1efbd6d8) ) - ROM_LOAD32_BYTE( "775-f08h.bin", 0xc0003, 0x10000, CRC(ad9d7016) SHA1(91e9f279b781eefcafffc70afe207f35cc6f4d9d) ) + ROM_LOAD32_BYTE( "775-a07a.6f", 0x00000, 0x20000, CRC(e716bdf3) SHA1(82e10132f248aed8cc1aea6bb7afe9a1479c8b59) ) + ROM_LOAD32_BYTE( "775-a07e.5f", 0x00001, 0x20000, CRC(0986e3a5) SHA1(61c33a3f2e4fde7d23d440b5c3151fe38e25716b) ) + ROM_LOAD32_BYTE( "775-a08a.4f", 0x00002, 0x20000, CRC(3ddd11a4) SHA1(4831a891d6cb4507053d576eddd658c338318176) ) + ROM_LOAD32_BYTE( "775-a08e.3f", 0x00003, 0x20000, CRC(1007d963) SHA1(cba4ca058dee1c8cdeb019e1cc50cae76bf419a1) ) + //ROM_LOAD32_BYTE( "775a07a.6f", 0x00000, 0x10000, CRC(bf37d991) SHA1(56dd9daebcb8a2a46925348175b4b5cdf9d42845) ) // also seen on a 'PWB350958 ROMBOARD 34M' with the following, smaller ROMs + //ROM_LOAD32_BYTE( "775a07e.5f", 0x00001, 0x10000, CRC(1927cb28) SHA1(a659d10280d4236478a3740ffeef26602077d86e) ) + //ROM_LOAD32_BYTE( "775a08a.4f", 0x00002, 0x10000, CRC(1fda0814) SHA1(da5541482d60e745a18a5671165cac79ea80711f) ) + //ROM_LOAD32_BYTE( "775a08e.3f", 0x00003, 0x10000, CRC(74ee0609) SHA1(2fa547a17dc14d4d37f120cc7c7e90cd85460160) ) + //ROM_LOAD32_BYTE( "775a07b.6e", 0x40000, 0x10000, CRC(ff057896) SHA1(00ec1f6300478a5fc5bcc0187a6dc826664c5322) ) + //ROM_LOAD32_BYTE( "775a07f.5e", 0x40001, 0x10000, CRC(8488e6ba) SHA1(a6e693aaf2e30fd0c2130d4ba30feb43e208b279) ) + //ROM_LOAD32_BYTE( "775a08b.4e", 0x40002, 0x10000, CRC(55d79ef4) SHA1(f4b2de68c38b4346b9a4a56578cfe4069caaa3a3) ) + //ROM_LOAD32_BYTE( "775a08f.3e", 0x40003, 0x10000, CRC(727aadc1) SHA1(884d11104e3b5795654999b2d07eac12e0931800) ) + ROM_LOAD32_BYTE( "775-f07c.6d", 0x80000, 0x10000, CRC(b0b30915) SHA1(0abd858f93f7cc5383a805a5ae06c086c120f208) ) + ROM_LOAD32_BYTE( "775-f07g.5d", 0x80001, 0x10000, CRC(fbed827d) SHA1(7fcc6cc03ab6238b05799dd50f38c29eb9f98b5a) ) + ROM_LOAD32_BYTE( "775-f08c.4d", 0x80002, 0x10000, CRC(53abdaec) SHA1(0e0f7fe4bb9139a1ae94506a832153b711961564) ) + ROM_LOAD32_BYTE( "775-f08g.3d", 0x80003, 0x10000, CRC(3df85a6e) SHA1(25a49abbf6e9fe63d4ff6bfff9219c98aa1b5e7b) ) + ROM_LOAD32_BYTE( "775-f07d.7f", 0xc0000, 0x10000, CRC(f184be8e) SHA1(c266be12762f7e81edbe4b36f3c96b03f6ec552b) ) + ROM_LOAD32_BYTE( "775-f07h.7e", 0xc0001, 0x10000, CRC(7b56c348) SHA1(f75c1c0962389f204c8cf1a0bc2da01a922cd742) ) + ROM_LOAD32_BYTE( "775-f08d.7d", 0xc0002, 0x10000, CRC(102dcace) SHA1(03036b6d9d66a12cb3e97980f149c09d1efbd6d8) ) + ROM_LOAD32_BYTE( "775-f08h.7c", 0xc0003, 0x10000, CRC(ad9d7016) SHA1(91e9f279b781eefcafffc70afe207f35cc6f4d9d) ) ROM_REGION( 0x100000, "k051960", 0 ) /* sprites */ - ROM_LOAD32_BYTE( "775-a05a.bin", 0x00000, 0x10000, CRC(a0767045) SHA1(e6df0731a9fb3b3d918607de81844e1f9353aac7) ) - ROM_LOAD32_BYTE( "775-a05e.bin", 0x00001, 0x10000, CRC(2f656f08) SHA1(140e7948c45d27c6705622d588a65b59ebcc624c) ) - ROM_LOAD32_BYTE( "775-a06a.bin", 0x00002, 0x10000, CRC(77a34ad0) SHA1(3653fb8458c1e7eb7d83b5cd63f02343c0f2d93e) ) - ROM_LOAD32_BYTE( "775-a06e.bin", 0x00003, 0x10000, CRC(8a910c94) SHA1(0387a7f412a977fa7a5ca685653ac1bb3dfdbbcb) ) - ROM_LOAD32_BYTE( "775-a05b.bin", 0x40000, 0x10000, CRC(ab8ad4fd) SHA1(c9ae537fa1607fbd11403390d1da923955f0d1ab) ) - ROM_LOAD32_BYTE( "775-a05f.bin", 0x40001, 0x10000, CRC(1c0eb1b6) SHA1(420eb26acd54ff484301aa2dad587f1b6b437363) ) - ROM_LOAD32_BYTE( "775-a06b.bin", 0x40002, 0x10000, CRC(563fb565) SHA1(96a2a95ab02456e53651718a7080f18c252451c8) ) - ROM_LOAD32_BYTE( "775-a06f.bin", 0x40003, 0x10000, CRC(e14995c0) SHA1(1d7fdfb8f9eacb005b0897b2b62b85ce334cd4d6) ) - ROM_LOAD32_BYTE( "775-f05c.bin", 0x80000, 0x10000, CRC(5647761e) SHA1(ff7983cb0c2f84f7be9d44e20b01266db4b2836a) ) - ROM_LOAD32_BYTE( "775-f05g.bin", 0x80001, 0x10000, CRC(a1692cca) SHA1(2cefc4b7532a9d29361843419ee427fb9421b79b) ) - ROM_LOAD32_BYTE( "775-f06c.bin", 0x80002, 0x10000, CRC(5ee6f3c1) SHA1(9138ea3588b63862849f6e783725a711e7e50669) ) - ROM_LOAD32_BYTE( "775-f06g.bin", 0x80003, 0x10000, CRC(2645274d) SHA1(2fd04b0adbcf53562669946259b59f1ec9c52bda) ) - ROM_LOAD32_BYTE( "775-f05d.bin", 0xc0000, 0x10000, CRC(ad676a6f) SHA1(f2ca759c8c8a8007aa022d6c058d0431057a639a) ) - ROM_LOAD32_BYTE( "775-f05h.bin", 0xc0001, 0x10000, CRC(3f925bcf) SHA1(434dd442c0cb5c5c039a69683a3a5f226e49261c) ) - ROM_LOAD32_BYTE( "775-f06d.bin", 0xc0002, 0x10000, CRC(c8b764fa) SHA1(62f7f59ed36dca7346ec9eb019a4e435e8476dc6) ) - ROM_LOAD32_BYTE( "775-f06h.bin", 0xc0003, 0x10000, CRC(d6595f59) SHA1(777ea6da2026c90e7fbbc598275c8f95f2eb99c2) ) + ROM_LOAD32_BYTE( "775-a05a.11f", 0x00000, 0x10000, CRC(a0767045) SHA1(e6df0731a9fb3b3d918607de81844e1f9353aac7) ) + ROM_LOAD32_BYTE( "775-a05e.10f", 0x00001, 0x10000, CRC(2f656f08) SHA1(140e7948c45d27c6705622d588a65b59ebcc624c) ) + ROM_LOAD32_BYTE( "775-a06a.9f", 0x00002, 0x10000, CRC(77a34ad0) SHA1(3653fb8458c1e7eb7d83b5cd63f02343c0f2d93e) ) + ROM_LOAD32_BYTE( "775-a06e.8f", 0x00003, 0x10000, CRC(8a910c94) SHA1(0387a7f412a977fa7a5ca685653ac1bb3dfdbbcb) ) + ROM_LOAD32_BYTE( "775-a05b.11e", 0x40000, 0x10000, CRC(ab8ad4fd) SHA1(c9ae537fa1607fbd11403390d1da923955f0d1ab) ) + ROM_LOAD32_BYTE( "775-a05f.10e", 0x40001, 0x10000, CRC(1c0eb1b6) SHA1(420eb26acd54ff484301aa2dad587f1b6b437363) ) + ROM_LOAD32_BYTE( "775-a06b.9e", 0x40002, 0x10000, CRC(563fb565) SHA1(96a2a95ab02456e53651718a7080f18c252451c8) ) + ROM_LOAD32_BYTE( "775-a06f.8e", 0x40003, 0x10000, CRC(e14995c0) SHA1(1d7fdfb8f9eacb005b0897b2b62b85ce334cd4d6) ) + ROM_LOAD32_BYTE( "775-f05c.11d", 0x80000, 0x10000, CRC(5647761e) SHA1(ff7983cb0c2f84f7be9d44e20b01266db4b2836a) ) + ROM_LOAD32_BYTE( "775-f05g.10d", 0x80001, 0x10000, CRC(a1692cca) SHA1(2cefc4b7532a9d29361843419ee427fb9421b79b) ) + ROM_LOAD32_BYTE( "775-f06c.9d", 0x80002, 0x10000, CRC(5ee6f3c1) SHA1(9138ea3588b63862849f6e783725a711e7e50669) ) + ROM_LOAD32_BYTE( "775-f06g.8d", 0x80003, 0x10000, CRC(2645274d) SHA1(2fd04b0adbcf53562669946259b59f1ec9c52bda) ) + ROM_LOAD32_BYTE( "775-f05d.11c", 0xc0000, 0x10000, CRC(ad676a6f) SHA1(f2ca759c8c8a8007aa022d6c058d0431057a639a) ) + ROM_LOAD32_BYTE( "775-f05h.10c", 0xc0001, 0x10000, CRC(3f925bcf) SHA1(434dd442c0cb5c5c039a69683a3a5f226e49261c) ) + ROM_LOAD32_BYTE( "775-f06d.9c", 0xc0002, 0x10000, CRC(c8b764fa) SHA1(62f7f59ed36dca7346ec9eb019a4e435e8476dc6) ) + ROM_LOAD32_BYTE( "775-f06h.8c", 0xc0003, 0x10000, CRC(d6595f59) SHA1(777ea6da2026c90e7fbbc598275c8f95f2eb99c2) ) ROM_REGION( 0x80000, "k007232", 0 ) /* k007232 data */ - ROM_LOAD( "775-a04a.bin", 0x00000, 0x10000, CRC(7efb2e0f) SHA1(fb350a056b547fe4f981bc211e2f9518ae5a3499) ) - ROM_LOAD( "775-a04b.bin", 0x10000, 0x10000, CRC(f41a2b33) SHA1(dffa06360b6032f7370fe72698aacad4d8779472) ) - ROM_LOAD( "775-a04c.bin", 0x20000, 0x10000, CRC(e4e58f14) SHA1(23dcb4dfa9a44115d1b730d9efcc314801b811c7) ) - ROM_LOAD( "775-a04d.bin", 0x30000, 0x10000, CRC(d46736f6) SHA1(586e914a35d3d7a71cccec66ca45a5bbbb9e504b) ) - ROM_LOAD( "775-f04e.bin", 0x40000, 0x10000, CRC(fbf7e363) SHA1(53578eb7dab8f723439dc12eefade3edb027c148) ) - ROM_LOAD( "775-f04f.bin", 0x50000, 0x10000, CRC(b031ef2d) SHA1(0124fe15871c3972ef1e2dbaf53d17668c1dccfd) ) - ROM_LOAD( "775-f04g.bin", 0x60000, 0x10000, CRC(ee107bbb) SHA1(e21de761a0dfd3811ddcbc33d8868479010e86d0) ) - ROM_LOAD( "775-f04h.bin", 0x70000, 0x10000, CRC(fb0fab46) SHA1(fcbf904f7cf4d265352dc73ed228390b29784aad) ) + ROM_LOAD( "775-a04a.11b", 0x00000, 0x10000, CRC(7efb2e0f) SHA1(fb350a056b547fe4f981bc211e2f9518ae5a3499) ) + ROM_LOAD( "775-a04b.10b", 0x10000, 0x10000, CRC(f41a2b33) SHA1(dffa06360b6032f7370fe72698aacad4d8779472) ) + ROM_LOAD( "775-a04c.9b", 0x20000, 0x10000, CRC(e4e58f14) SHA1(23dcb4dfa9a44115d1b730d9efcc314801b811c7) ) + ROM_LOAD( "775-a04d.8b", 0x30000, 0x10000, CRC(d46736f6) SHA1(586e914a35d3d7a71cccec66ca45a5bbbb9e504b) ) + ROM_LOAD( "775-f04e.11a", 0x40000, 0x10000, CRC(fbf7e363) SHA1(53578eb7dab8f723439dc12eefade3edb027c148) ) + ROM_LOAD( "775-f04f.10a", 0x50000, 0x10000, CRC(b031ef2d) SHA1(0124fe15871c3972ef1e2dbaf53d17668c1dccfd) ) + ROM_LOAD( "775-f04g.9a", 0x60000, 0x10000, CRC(ee107bbb) SHA1(e21de761a0dfd3811ddcbc33d8868479010e86d0) ) + ROM_LOAD( "775-f04h.8a", 0x70000, 0x10000, CRC(fb0fab46) SHA1(fcbf904f7cf4d265352dc73ed228390b29784aad) ) ROM_REGION( 0x0100, "proms", 0 ) ROM_LOAD( "775a09.b19", 0x0000, 0x0100, CRC(46d1e0df) SHA1(65dad04a124cc49cbc9bb271f865d77efbc4d57c) ) /* priority encoder (not used) */ diff -Nru mame-0.223+dfsg.1/src/mame/drivers/tnzs.cpp mame-0.224+dfsg.1/src/mame/drivers/tnzs.cpp --- mame-0.223+dfsg.1/src/mame/drivers/tnzs.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/tnzs.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -19,7 +19,7 @@ Invulnerability isn't possible in 'tnzsop' (level select is stucked to level 6-1). -Hardware datails for the newer tnzs board (from pictures): +Hardware details for the newer tnzs board (from pictures): Main board M6100409A N.ZEALAND STORY (written on label) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/unk6502_st2xxx.cpp mame-0.224+dfsg.1/src/mame/drivers/unk6502_st2xxx.cpp --- mame-0.223+dfsg.1/src/mame/drivers/unk6502_st2xxx.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/unk6502_st2xxx.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,161 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood + +// unknown 6502 based handhelds, possibly ST2205U architecture + +// the BBL 380 - 180 in 1 features similar menus / presentation / games to the 'ORB Gaming Retro Arcade Pocket Handheld Games Console with 153 Games' (eg has Matchstick Man, Gang Tie III etc.) +// https://www.youtube.com/watch?v=NacY2WHd-CY + +// these games were ported to unSP hardware at some point, see generaplus_gpl_unknown.cpp + +// BIOS calls are made very frequently to the undumped firmware. +// The most common call ($6058 in bbl380, $6062 in ragc153 & dphh8630) seems to involve downloading a snippet of code from Flash and executing it from RAM at $0300. +// A variant of this call ($60d2 in bbl380, $60e3 in ragc153 & dphh8630) is invoked with jsr. +// For these calls, a 24-bit starting address is specified in $82:$81:$80, and the length in bytes is twice the number specified in $84:$83. +// ST2205U cannot execute code directly from Flash, but has a built-in DMA-compatible NAND interface on Port F ($05). +// The XOR used on ragc153 & dphh8630 is likely performed by the DMA controller. +// $6003 performs a table lookup, depositing a sequence of data at $008e. +// $6000 generates some duration of delay based on the X register. +// One other BIOS call ($6975 in bbl380, $69d2 in ragc153) has an unknown purpose. + +#include "emu.h" + +#include "cpu/m6502/st2205u.h" +#include "screen.h" +#include "emupal.h" +#include "speaker.h" + +class bbl380_state : public driver_device +{ +public: + bbl380_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_palette(*this, "palette"), + m_screen(*this, "screen") + { } + + void bbl380(machine_config &config); + void init_ragc153(); + +private: + void lcdc_command_w(u8 data); + u8 lcdc_data_r(); + void lcdc_data_w(u8 data); + + virtual void machine_start() override; + virtual void machine_reset() override; + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + void bbl380_map(address_map &map); + + required_device m_maincpu; + required_device m_palette; + required_device m_screen; +}; + +uint32_t bbl380_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void bbl380_state::machine_start() +{ +} + +void bbl380_state::machine_reset() +{ +} + +void bbl380_state::lcdc_command_w(u8 data) +{ + logerror("%s: LCDC command $%02X\n", machine().describe_context(), data); +} + +u8 bbl380_state::lcdc_data_r() +{ + if (!machine().side_effects_disabled()) + logerror("%s: LCDC data read\n", machine().describe_context()); + return 0; +} + +void bbl380_state::lcdc_data_w(u8 data) +{ + logerror("%s: LCDC data $%02X\n", machine().describe_context(), data); +} + +void bbl380_state::bbl380_map(address_map &map) +{ + map(0x000000, 0x3fffff).rom().region("maincpu", 0); // FIXME: probably not directly mapped (ST2205U has serial Flash interface on port F) + map(0x600000, 0x600000).w(FUNC(bbl380_state::lcdc_command_w)); + map(0x604000, 0x604000).rw(FUNC(bbl380_state::lcdc_data_r), FUNC(bbl380_state::lcdc_data_w)); +} + +static INPUT_PORTS_START( bbl380 ) +INPUT_PORTS_END + +void bbl380_state::bbl380(machine_config &config) +{ + ST2205U(config, m_maincpu, 8000000); // unknown clock; type guessed + m_maincpu->set_addrmap(AS_DATA, &bbl380_state::bbl380_map); + + SCREEN(config, m_screen, SCREEN_TYPE_LCD); // TFT color LCD + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(132, 162); + m_screen->set_visarea(0, 132-1, 0, 162-1); + m_screen->set_screen_update(FUNC(bbl380_state::screen_update)); + m_screen->set_palette(m_palette); + + PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200); + + // LCD controller seems to be either Sitronix ST7735R or (if RDDID bytes match) Ilitek ILI9163C + // (unless the SoC's built-in one is used and the routines which program these are leftovers) + // Several other LCDC models are identified by ragc153 and dphh8630 +} + +ROM_START( bbl380 ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "bbl380_st2205u.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS + ROM_LOAD( "bbl 380 180 in 1.bin", 0x000000, 0x400000, CRC(146c88da) SHA1(7f18526a6d8cf991f86febce3418d35aac9f49ad) BAD_DUMP ) + // 0x0022XX, 0x0026XX, 0x002AXX, 0x002CXX, 0x002DXX, 0x0031XX, 0x0036XX, etc. should not be FF fill +ROM_END + + +ROM_START( ragc153 ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "ragc153_st2205u.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS (addresses are different from bbl380) + ROM_LOAD( "25q32ams.bin", 0x000000, 0x400000, CRC(de328d73) SHA1(d17b97e9057be4add68b9f5a26e04c9f0a139673) ) // first 0x100 bytes would read as 0xff at regular speed, but give valid looking consistent data at a slower rate +ROM_END + +ROM_START( dphh8630 ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "ragc153_st2205u.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS + ROM_LOAD( "bg25q16.bin", 0x000000, 0x200000, CRC(277850d5) SHA1(740087842e1e63bf99b4ca9c1b2053361f267269) ) +ROM_END + +ROM_START( dgun2953 ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "dgun2953_st2205u.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS + ROM_LOAD( "dg160_25x32v_ef3016.bin", 0x000000, 0x400000, CRC(2e993bac) SHA1(4b310e326a47df1980aeef38aa9a59018d7fe76f) ) +ROM_END + + + +void bbl380_state::init_ragc153() +{ + uint8_t *ROM = memregion("maincpu")->base(); + int size = memregion("maincpu")->bytes(); + + for (int i = 0; i < size; i++) + { + ROM[i] = ROM[i] ^ 0xe4; + } +} + +CONS( 200?, bbl380, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "BaoBaoLong", "BBL380 - 180 in 1", MACHINE_IS_SKELETON ) +CONS( 200?, ragc153, 0, 0, bbl380, bbl380, bbl380_state, init_ragc153, "Orb", "Retro Arcade Game Controller 153-in-1", MACHINE_IS_SKELETON ) +CONS( 200?, dphh8630, 0, 0, bbl380, bbl380, bbl380_state, init_ragc153, "PCP", "PCP 8630 - 230-in-1 - Digital Pocket Hand Held System", MACHINE_IS_SKELETON ) // PCP isn't mentioned on packaging +CONS( 200?, dgun2953, 0, 0, bbl380, bbl380, bbl380_state, init_ragc153, "dreamGEAR", "My Arcade Gamer Mini 160-in-1 (DGUN-2953)", MACHINE_IS_SKELETON ) + diff -Nru mame-0.223+dfsg.1/src/mame/drivers/unkmandd.cpp mame-0.224+dfsg.1/src/mame/drivers/unkmandd.cpp --- mame-0.223+dfsg.1/src/mame/drivers/unkmandd.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/unkmandd.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:David Haywood - -// unkmandd contains unsp code, but no obvious startup code / vectors, so it's probably booting from another device / bootstrapped - -#include "emu.h" - -#include "screen.h" -#include "emupal.h" -#include "speaker.h" - -class unkmandd_state : public driver_device -{ -public: - unkmandd_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_palette(*this, "palette"), - m_screen(*this, "screen") - { } - - void unkmandd(machine_config &config); - -private: - virtual void machine_start() override; - virtual void machine_reset() override; - - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - required_device m_palette; - required_device m_screen; -}; - -uint32_t unkmandd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - return 0; -} - - - - -void unkmandd_state::machine_start() -{ -} - -void unkmandd_state::machine_reset() -{ -} - -static INPUT_PORTS_START( unkmandd ) -INPUT_PORTS_END - -void unkmandd_state::unkmandd(machine_config &config) -{ - // unknown CPU, unsp based - - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(60); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); - m_screen->set_size(64*8, 32*8); - m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1); - m_screen->set_screen_update(FUNC(unkmandd_state::screen_update)); - m_screen->set_palette(m_palette); - - PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200); -} - -ROM_START( unkmandd ) - ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "8718_en25f32.bin", 0x000000, 0x400000, CRC(cc138db4) SHA1(379af3d94ae840f52c06416d6cf32e25923af5ae) ) -ROM_END - -CONS( 200?, unkmandd, 0, 0, unkmandd, unkmandd, unkmandd_state, empty_init, "M&D", "unknown M&D handheld", MACHINE_IS_SKELETON ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vector06.cpp mame-0.224+dfsg.1/src/mame/drivers/vector06.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vector06.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vector06.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,13 +13,22 @@ press F12 after initial boot was load (indicated in screen lower part) hold Ctrl ("YC" key) during MicroDOS start to format RAM disk (required by some games) +48k MicroDos one-letter commands: +B crash? +D dir +E erase +K ? +O some kind of status display +U user + TODO: - correct CPU speed / latency emulation, each machine cycle takes here 4 clocks, i.e. INX B 4+1 will be 2*4=8clocks, SHLD addr is 4+3+3+3+3 so it will be 5*4=20clocks and so on - - "Card Game" wont work, jump to 0 instead of vblank interrupt RST7, something direct.explicit or banking related ? - - border emulaton + - "Card Game" wont work, jump to 0 instead of vblank interrupt RST7, something banking related ? + - border emulation - separate base unexpanded Vector06C configuration - slotify AY8910 sound boards ? + - Rus/Lat key doesn't seem to be right? ****************************************************************************/ @@ -28,121 +37,120 @@ #include "formats/vector06_dsk.h" #include "screen.h" -#include "softlist.h" #include "speaker.h" /* Address maps */ -void vector06_state::vector06_mem(address_map &map) +void vector06_state::mem_map(address_map &map) { map(0x0000, 0xffff).bankrw("bank1"); map(0x0000, 0x7fff).bankr("bank2"); map(0xa000, 0xdfff).bankrw("bank3"); } -void vector06_state::vector06_io(address_map &map) +void vector06_state::io_map(address_map &map) { map.global_mask(0xff); map.unmap_value_high(); - map(0x00, 0x03).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi8255->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi8255->write(offset^3, data); })); - map(0x04, 0x07).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi8255_2->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi8255_2->write(offset^3, data); })); - map(0x08, 0x0b).lrw8(NAME([this] (offs_t offset) -> u8 { return m_pit8253->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_pit8253->write(offset^3, data); })); - map(0x0c, 0x0c).w(FUNC(vector06_state::vector06_color_set)); - map(0x10, 0x10).w(FUNC(vector06_state::vector06_ramdisk_w)); + map(0x00, 0x03).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi1->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi1->write(offset^3, data); })); + map(0x04, 0x07).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi2->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi2->write(offset^3, data); })); + map(0x08, 0x0b).lrw8(NAME([this] (offs_t offset) -> u8 { return m_pit->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_pit->write(offset^3, data); })); + map(0x0c, 0x0c).w(FUNC(vector06_state::color_set)); + map(0x10, 0x10).w(FUNC(vector06_state::ramdisk_w)); map(0x14, 0x15).rw(m_ay, FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_address_w)); map(0x18, 0x18).rw(m_fdc, FUNC(kr1818vg93_device::data_r), FUNC(kr1818vg93_device::data_w)); map(0x19, 0x19).rw(m_fdc, FUNC(kr1818vg93_device::sector_r), FUNC(kr1818vg93_device::sector_w)); map(0x1a, 0x1a).rw(m_fdc, FUNC(kr1818vg93_device::track_r), FUNC(kr1818vg93_device::track_w)); map(0x1b, 0x1b).rw(m_fdc, FUNC(kr1818vg93_device::status_r), FUNC(kr1818vg93_device::cmd_w)); - map(0x1c, 0x1c).w(FUNC(vector06_state::vector06_disc_w)); + map(0x1c, 0x1c).w(FUNC(vector06_state::disc_w)); } /* Input ports */ static INPUT_PORTS_START( vector06 ) PORT_START("LINE.0") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BkSp") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BkSp") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_START("LINE.1") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Home") PORT_CODE(KEYCODE_HOME) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Home") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PgUp") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_START("LINE.2") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 \'") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') PORT_START("LINE.3") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("'") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("=") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(':') PORT_CHAR('*') + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('=') + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_START("LINE.4") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@ `") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('@') PORT_CHAR('`') + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a') + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b') + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c') + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d') + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('e') + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f') + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g') PORT_START("LINE.5") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h') + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i') + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j') + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k') + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m') + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o') PORT_START("LINE.6") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p') + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHAR('q') + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHAR('r') + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s') + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHAR('t') + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('u') + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v') + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHAR('w') PORT_START("LINE.7") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("~") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x') + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('y') + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z') + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('{') PORT_CHAR('[') + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('|') PORT_CHAR('\\') + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('}') PORT_CHAR(']') + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^ ~") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('^') PORT_CHAR('~') + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(32) PORT_START("LINE.8") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Rus/Lat") PORT_CODE(KEYCODE_LALT) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl YC") PORT_CODE(KEYCODE_LCONTROL) //PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Rus/Lat") PORT_CODE(KEYCODE_LALT) // This acts as a caps lock in the CP/M screen PORT_START("RESET") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F11) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset 2") PORT_CODE(KEYCODE_F12) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11)) PORT_CHANGED_MEMBER(DEVICE_SELF, vector06_state, f11_button, 0) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("AP2") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) PORT_CHANGED_MEMBER(DEVICE_SELF, vector06_state, f12_button, 0) INPUT_PORTS_END @@ -162,11 +170,11 @@ { /* basic machine hardware */ I8080(config, m_maincpu, 3000000); // actual speed is wrong due to unemulated latency - m_maincpu->set_addrmap(AS_PROGRAM, &vector06_state::vector06_mem); - m_maincpu->set_addrmap(AS_IO, &vector06_state::vector06_io); - m_maincpu->out_status_func().set(FUNC(vector06_state::vector06_status_callback)); - m_maincpu->set_vblank_int("screen", FUNC(vector06_state::vector06_interrupt)); - m_maincpu->set_irq_acknowledge_callback(FUNC(vector06_state::vector06_irq_callback)); + m_maincpu->set_addrmap(AS_PROGRAM, &vector06_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &vector06_state::io_map); + m_maincpu->out_status_func().set(FUNC(vector06_state::status_callback)); + m_maincpu->set_vblank_int("screen", FUNC(vector06_state::irq0_line_hold)); + m_maincpu->set_irq_acknowledge_callback(FUNC(vector06_state::irq_callback)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); @@ -174,7 +182,7 @@ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ m_screen->set_size(256+64, 256+64); m_screen->set_visarea(0, 256+64-1, 0, 256+64-1); - m_screen->set_screen_update(FUNC(vector06_state::screen_update_vector06)); + m_screen->set_screen_update(FUNC(vector06_state::screen_update)); m_screen->set_palette(m_palette); PALETTE(config, m_palette, palette_device::BLACK, 16); @@ -182,17 +190,17 @@ SPEAKER(config, "mono").front_center(); /* devices */ - I8255(config, m_ppi8255); - m_ppi8255->in_pb_callback().set(FUNC(vector06_state::vector06_8255_portb_r)); - m_ppi8255->in_pc_callback().set(FUNC(vector06_state::vector06_8255_portc_r)); - m_ppi8255->out_pa_callback().set(FUNC(vector06_state::vector06_8255_porta_w)); - m_ppi8255->out_pb_callback().set(FUNC(vector06_state::vector06_8255_portb_w)); - - I8255(config, m_ppi8255_2); - m_ppi8255_2->in_pb_callback().set(FUNC(vector06_state::vector06_romdisk_portb_r)); - m_ppi8255_2->out_pa_callback().set(FUNC(vector06_state::vector06_romdisk_porta_w)); - m_ppi8255_2->out_pb_callback().set(FUNC(vector06_state::vector06_romdisk_portb_w)); - m_ppi8255_2->out_pc_callback().set(FUNC(vector06_state::vector06_romdisk_portc_w)); + I8255(config, m_ppi1); + m_ppi1->in_pb_callback().set(FUNC(vector06_state::ppi1_portb_r)); + m_ppi1->in_pc_callback().set(FUNC(vector06_state::ppi1_portc_r)); + m_ppi1->out_pa_callback().set(FUNC(vector06_state::ppi1_porta_w)); + m_ppi1->out_pb_callback().set(FUNC(vector06_state::ppi1_portb_w)); + + I8255(config, m_ppi2); + m_ppi2->in_pb_callback().set(FUNC(vector06_state::ppi2_portb_r)); + m_ppi2->out_pa_callback().set(FUNC(vector06_state::ppi2_porta_w)); + m_ppi2->out_pb_callback().set(FUNC(vector06_state::ppi2_portb_w)); + m_ppi2->out_pc_callback().set(FUNC(vector06_state::ppi2_portc_w)); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); @@ -200,8 +208,8 @@ KR1818VG93(config, m_fdc, 1_MHz_XTAL); - FLOPPY_CONNECTOR(config, "wd1793:0", vector06_floppies, "qd", vector06_state::floppy_formats); - FLOPPY_CONNECTOR(config, "wd1793:1", vector06_floppies, "qd", vector06_state::floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:0", vector06_floppies, "qd", vector06_state::floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:1", vector06_floppies, "qd", vector06_state::floppy_formats); SOFTWARE_LIST(config, "flop_list").set_original("vector06_flop"); /* cartridge */ @@ -213,58 +221,61 @@ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); - PIT8253(config, m_pit8253, 0); - m_pit8253->set_clk<0>(1500000); - m_pit8253->set_clk<1>(1500000); - m_pit8253->set_clk<2>(1500000); - m_pit8253->out_handler<0>().set(FUNC(vector06_state::speaker_w)); - m_pit8253->out_handler<1>().set(FUNC(vector06_state::speaker_w)); - m_pit8253->out_handler<2>().set(FUNC(vector06_state::speaker_w)); + PIT8253(config, m_pit, 0); + m_pit->set_clk<0>(1500000); + m_pit->set_clk<1>(1500000); + m_pit->set_clk<2>(1500000); + m_pit->out_handler<0>().set(FUNC(vector06_state::speaker_w)); + m_pit->out_handler<1>().set(FUNC(vector06_state::speaker_w)); + m_pit->out_handler<2>().set(FUNC(vector06_state::speaker_w)); // optional AY8910(config, m_ay, 1773400).add_route(ALL_OUTPUTS, "mono", 0.50); } + /* ROM definition */ ROM_START( vector06 ) - ROM_REGION( 0x18000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF ) ROM_SYSTEM_BIOS(0, "unboot32k", "Universal Boot 32K") - ROMX_LOAD( "unboot32k.rt", 0x10000, 0x8000, CRC(28c9b5cd) SHA1(8cd7fb658896a7066ae93b10eaafa0f12139ad81), ROM_BIOS(0)) + ROMX_LOAD( "unboot32k.rt", 0x0000, 0x8000, CRC(28c9b5cd) SHA1(8cd7fb658896a7066ae93b10eaafa0f12139ad81), ROM_BIOS(0)) ROM_SYSTEM_BIOS(1, "unboot2k", "Universal Boot 2K") - ROMX_LOAD( "unboot2k.rt", 0x10000, 0x0800, CRC(4c80dc31) SHA1(7e5e3acfdbea2e52b0d64c5868821deaec383815), ROM_BIOS(1)) + ROMX_LOAD( "unboot2k.rt", 0x0000, 0x0800, CRC(4c80dc31) SHA1(7e5e3acfdbea2e52b0d64c5868821deaec383815), ROM_BIOS(1)) ROM_SYSTEM_BIOS(2, "coman", "Boot Coman") - ROMX_LOAD( "coman.rt", 0x10000, 0x0800, CRC(f8c4a85a) SHA1(47fa8b02f09a1d06aa63a2b90b2597b1d93d976f), ROM_BIOS(2)) + ROMX_LOAD( "coman.rt", 0x0000, 0x0800, CRC(f8c4a85a) SHA1(47fa8b02f09a1d06aa63a2b90b2597b1d93d976f), ROM_BIOS(2)) ROM_SYSTEM_BIOS(3, "bootbyte", "Boot Byte") - ROMX_LOAD( "bootbyte.rt", 0x10000, 0x0800, CRC(3b42fd9d) SHA1(a112f4fe519bc3dbee85b09040d4804a17c9eda2), ROM_BIOS(3)) + ROMX_LOAD( "bootbyte.rt", 0x0000, 0x0800, CRC(3b42fd9d) SHA1(a112f4fe519bc3dbee85b09040d4804a17c9eda2), ROM_BIOS(3)) ROM_SYSTEM_BIOS(4, "bootos", "Boot OS") - ROMX_LOAD( "bootos.rt", 0x10000, 0x0200, CRC(46bef038) SHA1(6732f4a360cd38112c53c458842d31f5b035cf59), ROM_BIOS(4)) + ROMX_LOAD( "bootos.rt", 0x0000, 0x0200, CRC(46bef038) SHA1(6732f4a360cd38112c53c458842d31f5b035cf59), ROM_BIOS(4)) ROM_SYSTEM_BIOS(5, "boot512", "Boot 512") - ROMX_LOAD( "boot512.rt", 0x10000, 0x0200, CRC(a0b1c6b2) SHA1(f6fe15cb0974aed30f9b7aa72133324a66d1ed3f), ROM_BIOS(5)) + ROMX_LOAD( "boot512.rt", 0x0000, 0x0200, CRC(a0b1c6b2) SHA1(f6fe15cb0974aed30f9b7aa72133324a66d1ed3f), ROM_BIOS(5)) ROM_END ROM_START( vec1200 ) - ROM_REGION( 0x18000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "vec1200.bin", 0x10000, 0x2000, CRC(37349224) SHA1(060fbb2c1a89040c929521cfd58cb6f1431a8b75)) + ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "vec1200.bin", 0x0000, 0x2000, CRC(37349224) SHA1(060fbb2c1a89040c929521cfd58cb6f1431a8b75)) ROM_REGION( 0x0200, "palette", 0 ) ROM_LOAD( "palette.bin", 0x0000, 0x0200, CRC(74b7376b) SHA1(fb56b60babd7e6ed68e5f4e791ad2800d7ef6729)) ROM_END ROM_START( pk6128c ) - ROM_REGION( 0x18000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "6128.bin", 0x10000, 0x4000, CRC(d4f68433) SHA1(ef5ac75f9240ca8996689c23642d4e47e5e774d8)) + ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "6128.bin", 0x0000, 0x4000, CRC(d4f68433) SHA1(ef5ac75f9240ca8996689c23642d4e47e5e774d8)) ROM_END -ROM_START( krista2 ) - ROM_REGION( 0x18000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "krista2.epr", 0x10000, 0x0200, CRC(df5440b0) SHA1(bcbbb3cc10aeb17c1262b45111d20279266b9ba4)) +ROM_START( krista2 ) // appears it wants to load a tape at boot + ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "krista2.epr", 0x0000, 0x0200, CRC(df5440b0) SHA1(bcbbb3cc10aeb17c1262b45111d20279266b9ba4)) + + ROM_REGION( 0x0200, "palette", 0 ) ROM_LOAD( "krista2.pal", 0x0000, 0x0200, CRC(b243da33) SHA1(9af7873e6f8bf452c8d831833ffb02dce833c095)) ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, vector06, 0, 0, vector06, vector06, vector06_state, empty_init, "", "Vector 06c", 0) -COMP( 1987, vec1200, vector06, 0, vector06, vector06, vector06_state, empty_init, "", "Vector 1200", MACHINE_NOT_WORKING) -COMP( 1987, pk6128c, vector06, 0, vector06, vector06, vector06_state, empty_init, "", "PK-6128c", MACHINE_NOT_WORKING) -COMP( 1987, krista2, vector06, 0, vector06, vector06, vector06_state, empty_init, "", "Krista-2", MACHINE_NOT_WORKING) +COMP( 1987, vector06, 0, 0, vector06, vector06, vector06_state, empty_init, "", "Vector 06c", MACHINE_SUPPORTS_SAVE ) +COMP( 1987, vec1200, vector06, 0, vector06, vector06, vector06_state, empty_init, "", "Vector 1200", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1987, pk6128c, vector06, 0, vector06, vector06, vector06_state, empty_init, "", "PK-6128c", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1987, krista2, vector06, 0, vector06, vector06, vector06_state, empty_init, "", "Krista-2", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vegas.cpp mame-0.224+dfsg.1/src/mame/drivers/vegas.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vegas.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vegas.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2240,6 +2240,9 @@ ROM_REGION16_LE( 0x10000, "dcs", 0 ) // Vegas SIO boot ROM ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "322_gauntlet.u37", 0x0000, 0x2000, CRC(0fe0bd0a) SHA1(bfd54572e2923d26392e89961d044357f551872a) ) ROM_END @@ -2265,6 +2268,9 @@ ROM_REGION16_LE( 0x10000, "dcs", 0 ) // Vegas SIO boot ROM ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "322_gauntlet.u37", 0x0000, 0x2000, CRC(0fe0bd0a) SHA1(bfd54572e2923d26392e89961d044357f551872a) ) ROM_END @@ -2280,6 +2286,9 @@ ROM_REGION16_LE( 0x10000, "dcs", 0 ) // Vegas SIO boot ROM ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "346_gauntlet-dl.u37", 0x0000, 0x2000, CRC(09420dd3) SHA1(9ffc62049b3e329b525469849944896163b1582b) ) ROM_END @@ -2295,6 +2304,9 @@ ROM_REGION16_LE( 0x10000, "dcs", 0 ) // Vegas SIO boot ROM ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) ) + + ROM_REGION( 0x2000, "serial_security_pic", 0 ) // security PIC (provides game ID code and serial number) + ROM_LOAD( "346_gauntlet-dl.u37", 0x0000, 0x2000, CRC(09420dd3) SHA1(9ffc62049b3e329b525469849944896163b1582b) ) ROM_END diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vigilant.cpp mame-0.224+dfsg.1/src/mame/drivers/vigilant.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vigilant.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vigilant.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -954,7 +954,13 @@ ROM_LOAD( "tbp24s10_7a.ic52", 0x0000, 0x0100, CRC(c324835e) SHA1(cf6ffe38523badfda211d341410e93e647de87a9) ) // tbp24s10, 82s129-equivalent - video timing ROM_END -ROM_START( vigilantbl ) /* Bootleg */ +/* Bootleg + "JB 306" silkscreen part# on bottom board, "VT-20" sticker on top board. + The various Nanao custom chips are implemented with standard ttl, makes the bottom board considerably larger. + The 3 additional proms are part of the KNA6074601 custom chip implementation. + The differing pal has some unused pins repurposed as part of the KNA6032701 custom chip implementation. + The board-board connectors are 2x 50-pin vs the 2x 60-pin used on original game. */ +ROM_START( vigilantbl ) ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */ ROM_LOAD( "g07_c03.bin", 0x00000, 0x08000, CRC(9dcca081) SHA1(6d086b70e6bf1fbafa746ef5c82334645f199be9) ) ROM_LOAD( "j07_c04.bin", 0x10000, 0x10000, CRC(e0159105) SHA1(da6d74ec075863c67c0ce21b07a54029d138f688) ) @@ -985,10 +991,16 @@ ROM_REGION( 0x10000, "m72", 0 ) /* samples */ ROM_LOAD( "d04_c01.bin", 0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) ) - ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - not convinced these exist in this form on bootleg */ - ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) ) - ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) ) - ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) ) + ROM_REGION( 0x0600, "plds", 0 ) /* 3x pal16l8 */ + ROM_LOAD( "p09_16l8.bin", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) ) // == official set ic90 + ROM_LOAD( "m05_16l8.bin", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) ) // == official set ic38 + ROM_LOAD( "b01_16l8.bin", 0x0400, 0x0104, CRC(1beae498) SHA1(031c2f589eb715dc3909614bab8d89994f69be80) ) + + ROM_REGION( 0x0400, "proms", 0 ) /* 4x 82s129 */ + ROM_LOAD( "a07_129.bin", 0x0000, 0x0100, CRC(c324835e) SHA1(cf6ffe38523badfda211d341410e93e647de87a9) ) // == official set ic52 + ROM_LOAD( "t10_129a.bin", 0x0100, 0x0100, CRC(1513df33) SHA1(7ab5066e3b5eb47fc4d5498b168929a9ade9bb7c) ) + ROM_LOAD( "u10_129b.bin", 0x0200, 0x0100, CRC(06661d00) SHA1(aa12a31751cad355ad545d92485432d6be12b45e) ) + ROM_LOAD( "v10_129c.bin", 0x0300, 0x0100, CRC(3f186bc8) SHA1(e5270fbc16c5844294cf20b42e57f4edaabbe629) ) ROM_END diff -Nru mame-0.223+dfsg.1/src/mame/drivers/votrtnt.cpp mame-0.224+dfsg.1/src/mame/drivers/votrtnt.cpp --- mame-0.223+dfsg.1/src/mame/drivers/votrtnt.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/votrtnt.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -55,7 +55,7 @@ private: virtual void machine_reset() override; - void _6802_mem(address_map &map); + void mem_map(address_map &map); required_device m_maincpu; required_device m_votrax; @@ -81,13 +81,13 @@ x 1 1 x * * * * * * * * * * * * R ROM (2332 4kx8 Mask ROM, inside potted brick) */ -void votrtnt_state::_6802_mem(address_map &map) +void votrtnt_state::mem_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0x03ff).mirror(0x9c00).ram(); /* RAM, 2114*2 (0x400 bytes) mirrored 4x */ map(0x2000, 0x2001).mirror(0x9ffe).rw("acia", FUNC(acia6850_device::read), FUNC(acia6850_device::write)); map(0x4000, 0x4000).mirror(0x9fff).w(m_votrax, FUNC(votrax_sc01_device::write)); - map(0x6000, 0x6fff).mirror(0x9000).rom(); /* ROM in potted block */ + map(0x6000, 0x6fff).mirror(0x9000).rom().region("maincpu",0); /* ROM in potted block */ } @@ -141,7 +141,7 @@ /* basic machine hardware */ M6802(config, m_maincpu, 2.4576_MHz_XTAL); // 2.4576MHz XTAL, verified; divided by 4 inside the MC6802 m_maincpu->set_ram_enable(false); - m_maincpu->set_addrmap(AS_PROGRAM, &votrtnt_state::_6802_mem); + m_maincpu->set_addrmap(AS_PROGRAM, &votrtnt_state::mem_map); /* video hardware */ //config.set_default_layout(layout_votrtnt); @@ -173,8 +173,8 @@ ******************************************************************************/ ROM_START(votrtnt) - ROM_REGION(0x10000, "maincpu", 0) - ROM_LOAD("cn49752n.bin", 0x6000, 0x1000, CRC(a44e1af3) SHA1(af83b9e84f44c126b24ee754a22e34ca992a8d3d)) /* 2332 mask rom inside potted brick */ + ROM_REGION(0x1000, "maincpu", 0) + ROM_LOAD("cn49752n.bin", 0x0000, 0x1000, CRC(a44e1af3) SHA1(af83b9e84f44c126b24ee754a22e34ca992a8d3d)) /* 2332 mask rom inside potted brick */ ROM_END @@ -183,4 +183,4 @@ ******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1980, votrtnt, 0, 0, votrtnt, votrtnt, votrtnt_state, empty_init, "Votrax", "Type 'N Talk", 0 ) +COMP( 1980, votrtnt, 0, 0, votrtnt, votrtnt, votrtnt_state, empty_init, "Votrax", "Type 'N Talk", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vp101.cpp mame-0.224+dfsg.1/src/mame/drivers/vp101.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vp101.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vp101.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -106,6 +106,9 @@ #include "imagedev/harddriv.h" #include "screen.h" +#define VERBOSE (0) +#include "logmacro.h" + class vp10x_state : public driver_device { public: @@ -113,8 +116,7 @@ : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_mainram(*this, "mainram"), - m_ata(*this, "ata"), - m_in0(*this, "IN0") + m_ata(*this, "ata") { } void vp50(machine_config &config); @@ -126,7 +128,14 @@ uint32_t tty_ready_r(); void tty_w(uint32_t data); - uint32_t test_r() { return 0xffffffff; } + uint32_t test_r(); + uint32_t sound_r(offs_t offset); + void sound_w(offs_t offset, uint32_t data); + void fb_base_w(uint32_t data); + uint32_t video_r(offs_t offset); + void video_w(offs_t offset, uint32_t data); + uint32_t video2_r(offs_t offset); + void video2_w(offs_t offset, uint32_t data); uint32_t pic_r(); void pic_w(uint32_t data); @@ -152,7 +161,6 @@ required_device m_maincpu; required_shared_ptr m_mainram; required_device m_ata; - required_ioport m_in0; // driver_device overrides virtual void video_start() override; @@ -161,6 +169,9 @@ int m_dmarq_state; uint32_t m_dma_ptr; uint32_t m_spi_select; + uint32_t m_unk_sound_toggle; + uint32_t m_sound_cmd; + uint32_t m_fb_base; }; void vp10x_state::machine_reset() @@ -171,12 +182,19 @@ void vp10x_state::machine_start() { - m_maincpu->mips3drc_set_options(MIPS3DRC_FASTEST_OPTIONS); + m_maincpu->mips3drc_set_options(MIPS3DRC_FASTEST_OPTIONS | MIPS3DRC_DISABLE_INTRABLOCK); // m_maincpu->add_fastram(0x00000000, 0x03ffffff, false, m_mainram); } +uint32_t vp10x_state::test_r() +{ + LOG("%s: test_r\n", machine().describe_context()); + return 0xffffffff; +} + void vp10x_state::dmaaddr_w(uint32_t data) { + LOG("%s: dmaaddr_w: %08x\n", machine().describe_context(), data); m_dma_ptr = (data & 0x07ffffff); } @@ -228,7 +246,7 @@ void vp10x_state::pic_w(uint32_t data) { - //printf("%02x to pic_cmd\n", data&0xff); + LOG("%s: pic_w: %08x\n", machine().describe_context(), data); if ((data & 0xff) == 0) { return; @@ -239,12 +257,13 @@ uint32_t vp10x_state::spi_r() { + LOG("%s: spi_r\n", machine().describe_context()); return 0xffffffff; } void vp10x_state::spi_w(uint32_t data) { -// printf("%d to SPI select\n", data); + LOG("%s: spi_w: %08x\n", machine().describe_context(), data); m_spi_select = data; } @@ -257,7 +276,7 @@ for (int y = 0; y < 240; y++) { uint32_t *line = &bitmap.pix32(y); - const uint32_t *video_ram = (const uint32_t *) &m_mainram[(0x7400000/4) + (y * (0x1000/4)) + 4]; + const uint32_t *video_ram = (const uint32_t *) &m_mainram[(m_fb_base/4) + (y * (0x1000/4)) + 4]; for (int x = 0; x < 320; x++) { @@ -266,6 +285,17 @@ *line++ = word; } } + + if (machine().input().code_pressed_once(KEYCODE_R)) + m_maincpu->set_input_line(MIPS3_IRQ0, ASSERT_LINE); + if (machine().input().code_pressed_once(KEYCODE_T)) + m_maincpu->set_input_line(MIPS3_IRQ1, ASSERT_LINE); + if (machine().input().code_pressed_once(KEYCODE_Y)) + m_maincpu->set_input_line(MIPS3_IRQ2, ASSERT_LINE); + if (machine().input().code_pressed_once(KEYCODE_U)) + m_maincpu->set_input_line(MIPS3_IRQ3, ASSERT_LINE); + if (machine().input().code_pressed_once(KEYCODE_I)) + m_maincpu->set_input_line(MIPS3_IRQ4, ASSERT_LINE); return 0; } @@ -294,6 +324,7 @@ uint32_t vp10x_state::tty_ready_r() { + LOG("%s: tty_ready_r\n", machine().describe_context()); return 0x60; // must return &0x20 for output at tty_w to continue } @@ -301,23 +332,124 @@ { // uncomment to see startup messages - it says "RAM OK" and "EPI RSS Ver 4.5.1" followed by "" and then lots of dots // Special Forces also says " = 00000032" -// printf("%c", data); + if (data >= 0x20 || data == 0x09) + printf("%c", data); + else if (data == 0x0d) + printf("\n"); +} + +uint32_t vp10x_state::video_r(offs_t offset) +{ + uint32_t data = 0; + if (offset == (0x10 >> 2)) + { + data = 0xffffffff; + } + LOG("%s: video_r %08x: %08x\n", machine().describe_context(), 0x1a000000 + (offset << 2), data); + return data; +} + +void vp10x_state::video_w(offs_t offset, uint32_t data) +{ + LOG("%s: video_w %08x = %08x\n", machine().describe_context(), 0x1a000000 + (offset << 2), data); +} + +uint32_t vp10x_state::video2_r(offs_t offset) +{ + uint32_t data = machine().rand(); + //LOG("%s: video2_r %08x: %08x\n", machine().describe_context(), 0x1a800000 + (offset << 2), data); + return data; +} + +void vp10x_state::video2_w(offs_t offset, uint32_t data) +{ + //LOG("%s: video2_w %08x = %08x\n", machine().describe_context(), 0x1a800000 + (offset << 2), data); +} + +void vp10x_state::fb_base_w(uint32_t data) +{ + m_fb_base = data & 0x07ffffff; +} + +uint32_t vp10x_state::sound_r(offs_t offset) +{ + switch (offset) + { + case 0: + LOG("%s: sound_r: hardware flags(?): 11000000 = %08x\n", machine().describe_context(), 1 << 4); + return (1 << 4); // Flag that sound hardware is initialized + case 3: + { + uint32_t cmd_return = 0; + bool known = true; + switch (m_sound_cmd) + { + case 0xa6: + cmd_return = 0x0000000e; + break; + case 0xfc: + cmd_return = 0x00004352; // Some sort of info request? Looks like ASCII, 'CR' - codec is from Crystal Semi? + break; + default: + known = false; + break; + } + if (known) + { + LOG("%s: sound_r: sound command return value(?): 11000004 = %08x for cmd %02x\n", machine().describe_context(), cmd_return, m_sound_cmd); + } + else + { + LOG("%s: sound_r: sound command return value(?): 11000004 = %08x for unknown cmd %02x\n", machine().describe_context(), cmd_return, m_sound_cmd); + } + return cmd_return; + } + case 4: + m_unk_sound_toggle ^= 1; + LOG("%s: sound_r: unknown: 11000010 = %08x\n", machine().describe_context(), m_unk_sound_toggle); + return m_unk_sound_toggle; // Unknown + default: + LOG("%s: sound_r: %08x\n", machine().describe_context(), 0x11000000 | (offset << 2)); + return 0; + } +} + +void vp10x_state::sound_w(offs_t offset, uint32_t data) +{ + switch (offset) + { + case 1: + LOG("%s: sound_w: command(?): 11000004 = %08x\n", machine().describe_context(), data); + m_sound_cmd = data; + return; + default: + LOG("%s: sound_w: %08x = %08x\n", machine().describe_context(), 0x11000000 | (offset << 2), data); + return; + } } void vp10x_state::main_map(address_map &map) { map(0x00000000, 0x07ffffff).ram().share("mainram"); + map(0x11000000, 0x11000013).rw(FUNC(vp10x_state::sound_r), FUNC(vp10x_state::sound_w)); map(0x14000000, 0x14000003).r(FUNC(vp10x_state::test_r)); + map(0x18000010, 0x18000013).w(FUNC(vp10x_state::fb_base_w)); + map(0x1a000000, 0x1a000013).rw(FUNC(vp10x_state::video_r), FUNC(vp10x_state::video_w)); + map(0x1a800000, 0x1a800003).rw(FUNC(vp10x_state::video2_r), FUNC(vp10x_state::video2_w)); map(0x1c000000, 0x1c000003).w(FUNC(vp10x_state::tty_w)); // RSS OS code uses this one map(0x1c000014, 0x1c000017).r(FUNC(vp10x_state::tty_ready_r)); map(0x1c400000, 0x1c400003).w(FUNC(vp10x_state::tty_w)); // boot ROM code uses this one map(0x1c400014, 0x1c400017).r(FUNC(vp10x_state::tty_ready_r)); - map(0x1ca0000c, 0x1ca0000f).portr("IN0"); - map(0x1ca00010, 0x1ca00013).r(FUNC(vp10x_state::test_r)); // bits here cause various test mode stuff + map(0x1ca00000, 0x1ca00003).portr("GUNX"); + map(0x1ca00004, 0x1ca00007).portr("GUNY"); + map(0x1ca00008, 0x1ca0000b).portr("GUNBUTTONS"); + map(0x1ca0000c, 0x1ca0000f).portr("BUTTONS"); + map(0x1ca00010, 0x1ca00013).portr("DIPS"); map(0x1cf00000, 0x1cf00003).noprw().nopr(); map(0x1d000030, 0x1d000033).w(FUNC(vp10x_state::dmaaddr_w)); // ATA DMA destination address map(0x1d000040, 0x1d00005f).rw(m_ata, FUNC(ata_interface_device::cs0_r), FUNC(ata_interface_device::cs0_w)).umask32(0x0000ffff); map(0x1d000060, 0x1d00007f).rw(m_ata, FUNC(ata_interface_device::cs1_r), FUNC(ata_interface_device::cs1_w)).umask32(0x0000ffff); + map(0x1f200000, 0x1f200003).rw(FUNC(vp10x_state::pic_r), FUNC(vp10x_state::pic_w)); map(0x1f807000, 0x1f807fff).ram().share("nvram"); map(0x1fc00000, 0x1fffffff).rom().region("maincpu", 0); @@ -340,14 +472,70 @@ map(0xff1ff818, 0xff1ff81b).rw(FUNC(vp10x_state::spi_r), FUNC(vp10x_state::spi_w)); } -static INPUT_PORTS_START( vp101 ) - PORT_START("IN0") +static INPUT_PORTS_START( jnero ) + PORT_START("GUNX") + PORT_BIT( 0x1ff, 0x000, IPT_LIGHTGUN_X ) PORT_MINMAX(0x000, 0x1ff) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) + + PORT_START("GUNY") + PORT_BIT( 0xff, 0x00, IPT_LIGHTGUN_Y ) PORT_MINMAX(0x00, 0xff) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) + + PORT_START("GUNBUTTONS") + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("Trigger") + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("Sense") + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("Pump") + PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("Trigger") + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("Sense") + PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("Pump") + PORT_BIT( 0xffffff88, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("BUTTONS") PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT (0x00000040, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT (0x00000080, IP_ACTIVE_LOW, IPT_SERVICE2 ) + PORT_BIT (0x00001000, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) + PORT_BIT (0x00002000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) + PORT_BIT( 0xffffcf30, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("DIPS") + PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Test ) ) + PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_BIT( 0xffffefaf, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x00001040, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END - PORT_BIT( 0xfffffff0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) +static INPUT_PORTS_START( specfrce ) + PORT_START("GUNX") + PORT_BIT( 0x1ff, 0x000, IPT_LIGHTGUN_X ) PORT_MINMAX(0x000, 0x1ff) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) + + PORT_START("GUNY") + PORT_BIT( 0xff, 0x00, IPT_LIGHTGUN_Y ) PORT_MINMAX(0x00, 0xff) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) + + PORT_START("GUNBUTTONS") + PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Trigger") + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Sense") + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Pump") + PORT_BIT( 0xfffffff8, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("BUTTONS") + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT (0x00000040, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT (0x00000080, IP_ACTIVE_LOW, IPT_SERVICE2 ) + PORT_BIT (0x00001000, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) + PORT_BIT (0x00002000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) + PORT_BIT( 0xffffcf38, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("DIPS") + PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Test ) ) + PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_BIT( 0xffffefaf, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x00001040, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( vp50 ) @@ -356,8 +544,10 @@ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xfffffff0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END void vp10x_state::vp101(machine_config &config) @@ -465,8 +655,8 @@ DISK_IMAGE_READONLY("rhn010104", 0, SHA1(5bc2e5817b29bf42ec483414242795fd76d749d9) ) ROM_END -GAME( 2002, specfrce, 0, vp101, vp101, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.02.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, specfrceo, specfrce, vp101, vp101, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.01.01)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, rhnation, 0, vp50, vp50, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Rhythm Nation (v01.00.04, boot v3.1.5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 2004, jnero, 0, vp101, vp101, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Johnny Nero Action Hero (v01.01.08)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2006, zoofari, 0, vp50, vp50, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Zoofari", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 2002, specfrce, 0, vp101, specfrce, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.02.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, specfrceo, specfrce, vp101, specfrce, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.01.01)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, rhnation, 0, vp50, vp50, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Rhythm Nation (v01.00.04, boot v3.1.5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 2004, jnero, 0, vp101, jnero, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Johnny Nero Action Hero (v01.01.08)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2006, zoofari, 0, vp50, vp50, vp10x_state, empty_init, ROT0, "ICE/Play Mechanix", "Zoofari", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vsmile.cpp mame-0.224+dfsg.1/src/mame/drivers/vsmile.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vsmile.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vsmile.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,6 +13,8 @@ #include "softlist.h" #include "speaker.h" +#include "vsmile.lh" + #define VERBOSE (1) #include "logmacro.h" @@ -57,6 +59,11 @@ { vsmile_base_state::machine_start(); + m_redled.resolve(); + m_yellowled.resolve(); + m_blueled.resolve(); + m_greenled.resolve(); + save_item(NAME(m_ctrl_rts)); save_item(NAME(m_ctrl_select)); } @@ -85,6 +92,25 @@ //printf("Ctrl Rx: %02x\n", data); m_ctrl[0]->data_w(data); m_ctrl[1]->data_w(data); + + //TODO: should be moved to pad code somehow + if ((data & 0xF0) == 0x60) + { + if (m_ctrl_select[0]) + { + m_redled[0] = BIT(data, 3); + m_yellowled[0] = BIT(data, 2); + m_blueled[0] = BIT(data, 1); + m_greenled[0] = BIT(data, 0); + } + if (m_ctrl_select[1]) + { + m_redled[1] = BIT(data, 3); + m_yellowled[1] = BIT(data, 2); + m_blueled[1] = BIT(data, 1); + m_greenled[1] = BIT(data, 0); + } + } } uint16_t vsmile_state::portb_r() @@ -245,6 +271,8 @@ void vsmile_base_state::vsmile_base(machine_config &config) { + config.set_default_layout(layout_vsmile); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_size(320, 262); diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vt1682.cpp mame-0.224+dfsg.1/src/mame/drivers/vt1682.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vt1682.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vt1682.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -685,6 +685,10 @@ { } void vt1682_lxts3(machine_config& config); + void vt1682_unk1682(machine_config& config); + + void unk1682_init(); + void njp60in1_init(); protected: uint8_t uio_porta_r(); @@ -5687,6 +5691,18 @@ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) INPUT_PORTS_END +static INPUT_PORTS_START( njp60in1 ) + PORT_START("IN0") + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) +INPUT_PORTS_END + static INPUT_PORTS_START( exsprt48 ) PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) @@ -5964,6 +5980,26 @@ m_uio->porta_in().set(FUNC(vt1682_lxts3_state::uio_porta_r)); } +void vt1682_lxts3_state::vt1682_unk1682(machine_config& config) +{ + vt_vt1682_palbase(config); + vt_vt1682_common(config); + + M6502(config.replace(), m_maincpu, MAIN_CPU_CLOCK_PAL); // no opcode bitswap + m_maincpu->set_addrmap(AS_PROGRAM, &vt1682_lxts3_state::vt_vt1682_map); + + m_leftdac->reset_routes(); + m_rightdac->reset_routes(); + + config.device_remove(":lspeaker"); + config.device_remove(":rspeaker"); + + SPEAKER(config, "mono").front_center(); + m_leftdac->add_route(0, "mono", 0.5); + m_rightdac->add_route(0, "mono", 0.5); + + m_uio->porta_in().set(FUNC(vt1682_lxts3_state::uio_porta_r)); +} void vt1682_wow_state::vt1682_wow(machine_config& config) @@ -5996,8 +6032,28 @@ } +void vt1682_lxts3_state::unk1682_init() +{ + regular_init(); + + uint8_t* ROM = memregion("mainrom")->base(); + // this jumps to a function on startup that has a bunch of jumps / accesses to the 3xxx region, which is internal ROM + // but bypassing it allows the unit to boot. + ROM[0x7ef43] = 0xea; + ROM[0x7ef44] = 0xea; + ROM[0x7ef45] = 0xea; +} +void vt1682_lxts3_state::njp60in1_init() +{ + regular_init(); + uint8_t* ROM = memregion("mainrom")->base(); + // first jsr in the code is for some port based security(?) check, might be SEEPROM + ROM[0x7ff44] = 0xea; + ROM[0x7ff45] = 0xea; + ROM[0x7ff46] = 0xea; +} // the VT1682 can have 0x1000 bytes of internal ROM, but none of the software dumped makes use of it. @@ -6072,6 +6128,31 @@ ROM_RELOAD(0x1000000,0x1000000) ROM_END +ROM_START( unk1682 ) + ROM_REGION( 0x1000, "internal", 0 ) + // this appears to use the internal ROM on startup, so mark it as missing + ROM_LOAD( "101in1.internal.rom", 0x00000, 0x1000, NO_DUMP ) + + ROM_REGION( 0x2000000, "mainrom", 0 ) + ROM_LOAD( "vt1682_101in1.bin", 0x00000, 0x0800000, CRC(82879200) SHA1(c1977d1733f8849326286102c0755629d0406ec4) ) + ROM_CONTINUE(0x0800000, 0x0800000) + ROM_CONTINUE(0x1000000, 0x0800000) + ROM_CONTINUE(0x1800000, 0x0800000) + + // also has a 24c02N SEEPROM, no accesses noted (maybe accessed from 'internal ROM' code?) +ROM_END + +ROM_START( njp60in1 ) + ROM_REGION( 0x2000000, "mainrom", 0 ) // the 6Mbyte - 7Mbyte region of the ROM is missing, causing Extreme Power Soccer to fail + ROM_LOAD( "60-in-1.bin", 0x00000, 0x0800000, CRC(7b2ee951) SHA1(fc7c214704908b85676efc64a21930483d24a457) ) + ROM_CONTINUE(0x0800000, 0x0800000) + ROM_CONTINUE(0x1000000, 0x0800000) + ROM_CONTINUE(0x1800000, 0x0800000) + + // also has a 24c02n SEEPROM, seems to access it on startup (security check?) +ROM_END + + ROM_START( 110dance ) ROM_REGION( 0x2000000, "mainrom", 0 ) ROM_LOAD( "110songdancemat.bin", 0x00000, 0x2000000, CRC(cd668e41) SHA1(975bfe05f4cce047860b05766bc8539218f6014f) ) @@ -6144,6 +6225,7 @@ // 'Riding Horse' on the other hand actually needs PAL timings, so this unit clearly was designed for PAL regions, however 'Explosion' was left broken. CONS( 200?, wowwg, 0, 0, vt1682_wow, exsprt48, vt1682_wow_state, regular_init, "Wow", "Wow Wireless Gaming (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // needs high colour line mode for main menu + CONS( 200?, 110dance, 0, 0, vt1682_dance, 110dance, vt1682_dance_state, regular_init, "", "Retro Dance Mat (110 song Super StepMania + 9-in-1 games) (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // songs 5-8 are repeats of songs 1-4, but probably not a bug? @@ -6152,4 +6234,14 @@ // NJ Pocket 60-in-1 (NJ-250) is meant to have similar games to the mini-games found in wowwg and 110dance, so almost certainly fits here +// manual explicitly states it has NTSC output only (unit can be connected to a TV) and both Ranning Horse + Explosion (Bomberman) are the NTSC versions +// has 21.477 Mhz XTAL +CONS( 200?, njp60in1, 0, 0, vt1682_lxts3, njp60in1, vt1682_lxts3_state, njp60in1_init, "", "NJ Pocket 60-in-1 handheld 'X zero' (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // needs high colour line mode for main menu + +// this appears to be related to the NJ Pocket, claims 101-in-1 but has some duplicates. +// Like the 'Wow Wireless gaming' it incorrectly mixes the PAL version of 'Ranning Horse' with the NTSC version of 'Bomberman', it has no TV output. +// has 26.6017 Mhz (6xPAL) XTAL +CONS( 200?, unk1682, 0, 0, vt1682_unk1682, lxts3, vt1682_lxts3_state, unk1682_init, "", "unknown VT1682-based 101-in-1 handheld (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) // needs high colour line mode for main menu + CONS( 2010, lxts3, 0, 0, vt1682_lxts3, lxts3, vt1682_lxts3_state, regular_init, "Lexibook", "Toy Story 3 (Lexibook)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // random number generation issues on 2 games, linescroll on racing games + diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vtech1.cpp mame-0.224+dfsg.1/src/mame/drivers/vtech1.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vtech1.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vtech1.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -40,7 +40,6 @@ #include "sound/spkrdev.h" #include "video/mc6847.h" -#include "softlist.h" #include "speaker.h" #include "formats/imageutl.h" @@ -64,15 +63,16 @@ class vtech1_state : public driver_device { public: - vtech1_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_videoram(*this, "videoram"), - m_maincpu(*this, "maincpu"), - m_mc6847(*this, "mc6847"), - m_speaker(*this, "speaker"), - m_cassette(*this, "cassette"), - m_ioexp(*this, "io"), - m_memexp(*this, "mem") + vtech1_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_vram(*this, "videoram") + , m_maincpu(*this, "maincpu") + , m_crtc(*this, "crtc") + , m_speaker(*this, "speaker") + , m_cassette(*this, "cassette") + , m_io_keyboard(*this, "X%u", 0U) + , m_ioexp(*this, "io") + , m_memexp(*this, "mem") { } @@ -85,11 +85,10 @@ void init_vtech1h(); private: - uint8_t vtech1_lightpen_r(offs_t offset); - uint8_t vtech1_keyboard_r(offs_t offset); - void vtech1_latch_w(uint8_t data); - - void vtech1_video_bank_w(uint8_t data); + uint8_t lightpen_r(offs_t offset); + uint8_t keyboard_r(offs_t offset); + void latch_w(uint8_t data); + void video_bank_w(uint8_t data); uint8_t mc6847_videoram_r(offs_t offset); DECLARE_SNAPSHOT_LOAD_MEMBER(snapshot_cb); @@ -103,12 +102,12 @@ static const uint8_t VZ_BASIC = 0xf0; static const uint8_t VZ_MCODE = 0xf1; - required_shared_ptr m_videoram; - + required_shared_ptr m_vram; required_device m_maincpu; - required_device m_mc6847; + required_device m_crtc; required_device m_speaker; required_device m_cassette; + required_ioport_array<8> m_io_keyboard; required_device m_ioexp; required_device m_memexp; }; @@ -191,31 +190,25 @@ INPUTS ***************************************************************************/ -uint8_t vtech1_state::vtech1_lightpen_r(offs_t offset) +uint8_t vtech1_state::lightpen_r(offs_t offset) { logerror("vtech1_lightpen_r(%d)\n", offset); return 0xff; } -uint8_t vtech1_state::vtech1_keyboard_r(offs_t offset) +uint8_t vtech1_state::keyboard_r(offs_t offset) { uint8_t result = 0x3f; // bit 0 to 5, keyboard input - if (!BIT(offset, 0)) result &= ioport("keyboard_0")->read(); - if (!BIT(offset, 1)) result &= ioport("keyboard_1")->read(); - if (!BIT(offset, 2)) result &= ioport("keyboard_2")->read(); - if (!BIT(offset, 3)) result &= ioport("keyboard_3")->read(); - if (!BIT(offset, 4)) result &= ioport("keyboard_4")->read(); - if (!BIT(offset, 5)) result &= ioport("keyboard_5")->read(); - if (!BIT(offset, 6)) result &= ioport("keyboard_6")->read(); - if (!BIT(offset, 7)) result &= ioport("keyboard_7")->read(); + for (u8 i = 0; i < 8; i++) + if (!BIT(offset, i)) result &= m_io_keyboard[i]->read(); // bit 6, cassette input result |= (m_cassette->input() > 0.04) ? 0 : 0x40; // bit 7, field sync - result |= m_mc6847->fs_r() << 7; + result |= m_crtc->fs_r() << 7; return result; } @@ -225,24 +218,24 @@ I/O LATCH ***************************************************************************/ -void vtech1_state::vtech1_latch_w(uint8_t data) +void vtech1_state::latch_w(uint8_t data) { if (LOG_VTECH1_LATCH) logerror("vtech1_latch_w $%02X\n", data); // bit 1, SHRG mod (if installed) - if (m_videoram.bytes() == 0x2000) + if (m_vram.bytes() == 0x2000) { - m_mc6847->gm0_w(BIT(data, 1)); - m_mc6847->gm2_w(BIT(data, 1)); + m_crtc->gm0_w(BIT(data, 1)); + m_crtc->gm2_w(BIT(data, 1)); } // bit 2, cassette out (actually bits 1 and 2 perform this function, so either can be used) m_cassette->output( BIT(data, 2) ? 1.0 : -1.0); // bit 3 and 4, vdc mode control lines - m_mc6847->ag_w(BIT(data, 3)); - m_mc6847->css_w(BIT(data, 4)); + m_crtc->ag_w(BIT(data, 3)); + m_crtc->css_w(BIT(data, 4)); // bit 0 and 5, speaker m_speaker->level_w((BIT(data, 5) << 1) | BIT(data, 0)); @@ -253,7 +246,7 @@ MEMORY BANKING ***************************************************************************/ -void vtech1_state::vtech1_video_bank_w(uint8_t data) +void vtech1_state::video_bank_w(uint8_t data) { membank("bank4")->set_entry(data & 0x03); } @@ -267,10 +260,10 @@ { if (offset == ~0) return 0xff; - m_mc6847->inv_w(BIT(m_videoram[offset], 6)); - m_mc6847->as_w(BIT(m_videoram[offset], 7)); + m_crtc->inv_w(BIT(m_vram[offset], 6)); + m_crtc->as_w(BIT(m_vram[offset], 7)); - return m_videoram[offset]; + return m_vram[offset]; } @@ -281,10 +274,10 @@ void vtech1_state::init_vtech1h() { // the SHRG mod replaces the standard videoram chip with an 8k chip - m_videoram.allocate(0x2000); + m_vram.allocate(0x2000); m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x7000, 0x77ff, "bank4"); - membank("bank4")->configure_entries(0, 4, m_videoram, 0x800); + membank("bank4")->configure_entries(0, 4, m_vram, 0x800); membank("bank4")->set_entry(0); } @@ -296,37 +289,34 @@ void vtech1_state::laser110_mem(address_map &map) { map(0x0000, 0x3fff).rom(); // basic rom - map(0x6800, 0x6fff).rw(FUNC(vtech1_state::vtech1_keyboard_r), FUNC(vtech1_state::vtech1_latch_w)); + map(0x6800, 0x6fff).rw(FUNC(vtech1_state::keyboard_r), FUNC(vtech1_state::latch_w)); map(0x7000, 0x77ff).ram().share("videoram"); // 6847 map(0x7800, 0x7fff).ram(); // 2k user ram } void vtech1_state::laser210_mem(address_map &map) { - map(0x0000, 0x3fff).rom(); // basic rom - map(0x6800, 0x6fff).rw(FUNC(vtech1_state::vtech1_keyboard_r), FUNC(vtech1_state::vtech1_latch_w)); - map(0x7000, 0x77ff).ram().share("videoram"); // 6847 + laser110_mem(map); map(0x7800, 0x8fff).ram(); // 6k user ram } void vtech1_state::laser310_mem(address_map &map) { - map(0x0000, 0x3fff).rom(); // basic rom - map(0x6800, 0x6fff).rw(FUNC(vtech1_state::vtech1_keyboard_r), FUNC(vtech1_state::vtech1_latch_w)); - map(0x7000, 0x77ff).ram().share("videoram"); // 6847 + laser110_mem(map); map(0x7800, 0xb7ff).ram(); // 16k user ram } void vtech1_state::vtech1_io(address_map &map) { map.global_mask(0xff); - map(0x40, 0x4f).r(FUNC(vtech1_state::vtech1_lightpen_r)); + map(0x40, 0x4f).r(FUNC(vtech1_state::lightpen_r)); } void vtech1_state::vtech1_shrg_io(address_map &map) { + map.global_mask(0xff); vtech1_io(map); - map(0xd0, 0xdf).w(FUNC(vtech1_state::vtech1_video_bank_w)); + map(0xd0, 0xdf).w(FUNC(vtech1_state::video_bank_w)); } @@ -335,8 +325,7 @@ ***************************************************************************/ static INPUT_PORTS_START(vtech1) - PORT_START("keyboard_0") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X0") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R RETURN LEFT$") PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q FOR CHR$") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E NEXT LEN(") PORT_CODE(KEYCODE_E) PORT_CHAR('E') @@ -344,8 +333,7 @@ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W TO VAL(") PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T THEN MID$") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_START("keyboard_1") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X1") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F GOSUB RND(") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A MODE( ASC(") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D DIM RESTORE") PORT_CODE(KEYCODE_D) PORT_CHAR('D') @@ -353,8 +341,7 @@ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S STEP STR$(") PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G GOTO STOP") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_START("keyboard_2") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X2") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V LPRINT USR") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z PEEK( INP") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C CONT COPY") PORT_CODE(KEYCODE_C) PORT_CHAR('C') @@ -362,8 +349,7 @@ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X POKE OUT") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B LLIST SOUND") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_START("keyboard_3") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X3") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $ VERIFY ATN(") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 ! CSAVE SIN(") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # CRUN TAN(") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') @@ -371,8 +357,7 @@ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \" CLOAD COS(") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 % LIST LOG(") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_START("keyboard_4") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X4") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M \\ \xE2\x86\x90") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('\\') PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE \xE2\x86\x93") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_CHAR('~') PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", < \xE2\x86\x92") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) @@ -380,8 +365,7 @@ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". > \xE2\x86\x91") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N ^ COLOR USING") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('^') - PORT_START("keyboard_5") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X5") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 ' END SGN(") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 @ DATA INT(") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('@') PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 ( NEW SQR(") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') @@ -389,8 +373,7 @@ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 ) READ ABS(") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 & RUN EXP(") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_START("keyboard_6") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X6") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U IF INKEY$") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P ] PRINT NOT") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR(']') PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I INPUT AND") PORT_CODE(KEYCODE_I) PORT_CHAR('I') @@ -398,23 +381,13 @@ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O [ LET OR") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('[') PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y ELSE RIGHT$(") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_START("keyboard_7") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_START("X7") PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J REM RESET") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; + [Rubout]") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') PORT_CHAR(UCHAR_MAMEKEY(DEL)) PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K / TAB( POINT") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('/') PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": * [Inverse]") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L ? [Insert]") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('?') PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H CLS SET") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - - /* Enhanced options not available on real hardware */ - PORT_START("CONFIG") - PORT_CONFNAME( 0x01, 0x01, "Autorun on Quickload") - PORT_CONFSETTING( 0x00, DEF_STR(No)) - PORT_CONFSETTING( 0x01, DEF_STR(Yes)) -// PORT_CONFNAME( 0x08, 0x08, "Cassette Speaker") -// PORT_CONFSETTING( 0x08, DEF_STR(On)) -// PORT_CONFSETTING( 0x00, DEF_STR(Off)) INPUT_PORTS_END @@ -432,12 +405,12 @@ m_maincpu->set_addrmap(AS_IO, &vtech1_state::vtech1_io); // video hardware - MC6847_PAL(config, m_mc6847, XTAL(4'433'619)); - m_mc6847->set_screen("screen"); - m_mc6847->fsync_wr_callback().set_inputline(m_maincpu, 0).invert(); - m_mc6847->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r)); - m_mc6847->set_black_and_white(true); - m_mc6847->set_get_fixed_mode(mc6847_pal_device::MODE_GM1); + MC6847_PAL(config, m_crtc, XTAL(4'433'619)); + m_crtc->set_screen("screen"); + m_crtc->fsync_wr_callback().set_inputline(m_maincpu, 0).invert(); + m_crtc->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r)); + m_crtc->set_black_and_white(true); + m_crtc->set_get_fixed_mode(mc6847_pal_device::MODE_GM1); // GM2 = GND, GM0 = GND, INTEXT = GND // other lines not connected @@ -475,11 +448,11 @@ void vtech1_state::laser200(machine_config &config) { laser110(config); - MC6847_PAL(config.replace(), m_mc6847, XTAL(4'433'619)); - m_mc6847->set_screen("screen"); - m_mc6847->fsync_wr_callback().set_inputline(m_maincpu, 0).invert(); - m_mc6847->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r)); - m_mc6847->set_get_fixed_mode(mc6847_pal_device::MODE_GM1); + MC6847_PAL(config.replace(), m_crtc, XTAL(4'433'619)); + m_crtc->set_screen("screen"); + m_crtc->fsync_wr_callback().set_inputline(m_maincpu, 0).invert(); + m_crtc->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r)); + m_crtc->set_get_fixed_mode(mc6847_pal_device::MODE_GM1); // GM2 = GND, GM0 = GND, INTEXT = GND // other lines not connected } @@ -503,11 +476,11 @@ laser310(config); m_maincpu->set_addrmap(AS_IO, &vtech1_state::vtech1_shrg_io); - MC6847_PAL(config.replace(), m_mc6847, XTAL(4'433'619)); - m_mc6847->set_screen("screen"); - m_mc6847->fsync_wr_callback().set_inputline(m_maincpu, 0).invert(); - m_mc6847->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r)); - m_mc6847->set_get_fixed_mode(mc6847_pal_device::MODE_GM1); + MC6847_PAL(config.replace(), m_crtc, XTAL(4'433'619)); + m_crtc->set_screen("screen"); + m_crtc->fsync_wr_callback().set_inputline(m_maincpu, 0).invert(); + m_crtc->input_callback().set(FUNC(vtech1_state::mc6847_videoram_r)); + m_crtc->set_get_fixed_mode(mc6847_pal_device::MODE_GM1); // INTEXT = GND // other lines not connected } @@ -569,13 +542,13 @@ ***************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 110", 0 ) -COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 200", 0 ) -COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING ) -COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Salora", "Fellow (Finland)", 0 ) -COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Texet", "TX-8000 (UK)", 0 ) -COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 210", 0 ) -COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-200 (Oceania)", 0 ) -COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 310", 0 ) -COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-300 (Oceania)", 0 ) -COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, init_vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL ) +COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 110", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 200", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Salora", "Fellow (Finland)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Texet", "TX-8000 (UK)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 210", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-200 (Oceania)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 310", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-300 (Oceania)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, init_vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/vtech2.cpp mame-0.224+dfsg.1/src/mame/drivers/vtech2.cpp --- mame-0.223+dfsg.1/src/mame/drivers/vtech2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/vtech2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -107,7 +107,7 @@ map(0x00000, 0x03fff).rom().region("maincpu", 0); map(0x04000, 0x07fff).rom().region("maincpu", 0x4000); map(0x08000, 0x0bfff).rw(FUNC(vtech2_state::mmio_r), FUNC(vtech2_state::mmio_w)); - map(0x0c000, 0x0ffff).ram().share(m_videoram); + map(0x0c000, 0x0ffff).ram().share(m_vram); map(0x10000, 0x13fff).noprw(); map(0x14000, 0x17fff).noprw(); map(0x18000, 0x1bfff).noprw(); @@ -129,7 +129,7 @@ map(0x10000, 0x13fff).ram(); map(0x14000, 0x17fff).ram(); map(0x18000, 0x1bfff).ram(); - map(0x1c000, 0x1ffff).ram().share(m_videoram); + map(0x1c000, 0x1ffff).ram().share(m_vram); map(0x20000, 0x23fff).noprw(); // TODO: 64k ram expansion pak map(0x24000, 0x27fff).noprw(); // TODO: 64k ram expansion pak map(0x28000, 0x2bfff).noprw(); // TODO: 64k ram expansion pak @@ -147,7 +147,7 @@ map(0x10000, 0x13fff).ram(); map(0x14000, 0x17fff).ram(); map(0x18000, 0x1bfff).ram(); - map(0x1c000, 0x1ffff).ram().share(m_videoram); + map(0x1c000, 0x1ffff).ram().share(m_vram); map(0x20000, 0x23fff).ram(); map(0x24000, 0x27fff).ram(); map(0x28000, 0x2bfff).ram(); @@ -471,11 +471,6 @@ palette.set_pen_indirect(512 + i, i); } -INTERRUPT_GEN_MEMBER(vtech2_state::vtech2_interrupt) -{ - m_maincpu->set_input_line(0, HOLD_LINE); -} - static const floppy_interface vtech2_floppy_interface = { FLOPPY_STANDARD_5_25_SSDD_40, @@ -489,7 +484,7 @@ Z80(config, m_maincpu, 3694700); /* 3.694700 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &vtech2_state::mem_map); m_maincpu->set_addrmap(AS_IO, &vtech2_state::io_map); - m_maincpu->set_vblank_int("screen", FUNC(vtech2_state::vtech2_interrupt)); + m_maincpu->set_vblank_int("screen", FUNC(vtech2_state::irq0_line_hold)); config.set_maximum_quantum(attotime::from_hz(60)); ADDRESS_MAP_BANK(config, "banka").set_map(&vtech2_state::m_map350).set_options(ENDIANNESS_LITTLE, 8, 18, 0x4000); @@ -503,7 +498,7 @@ screen.set_vblank_time(0); screen.set_size(88*8, 24*8+32); screen.set_visarea(0*8, 88*8-1, 0*8, 24*8+32-1); - screen.set_screen_update(FUNC(vtech2_state::screen_update_laser)); + screen.set_screen_update(FUNC(vtech2_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_vtech2); @@ -515,7 +510,7 @@ CASSETTE(config, m_cassette); m_cassette->set_formats(vtech2_cassette_formats); - m_cassette->set_default_state(CASSETTE_PLAY); + m_cassette->set_default_state(CASSETTE_STOPPED); m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); VTECH_IOEXP_SLOT(config, "io").set_io_space(m_maincpu, AS_IO); @@ -556,8 +551,10 @@ ROM_START(laser350) ROM_REGION(0x8000,"maincpu",0) ROM_LOAD("27-0401-00-00.u6", 0x0000, 0x8000, CRC(9bed01f7) SHA1(3210fddfab2f4c7855fa902fb8e2fc18d10d48f1)) + ROM_REGION(0x2000,"gfx1",0) ROM_LOAD( "27-393-00.u10", 0x0000, 0x2000, CRC(d47313a2) SHA1(4650e8e339aad628c0e5d8a1944b21abff793446) ) + ROM_REGION(0x0100,"gfx2",ROMREGION_ERASEFF) /* initialized in init_laser */ ROM_END @@ -567,8 +564,10 @@ // There should be two roms, one 0x2000 long for the font at u10, and one longer one for the os rom at u6. ROM_REGION(0x8000,"maincpu",0) ROM_LOAD("27-0401-00-00.u6", 0x0000, 0x8000, CRC(9bed01f7) SHA1(3210fddfab2f4c7855fa902fb8e2fc18d10d48f1)) // may be dumped at wrong size; label is: "VTL 27-0401-00-00 // 6133-7081 // 8611MAK" + ROM_REGION(0x2000,"gfx1",0) ROM_LOAD( "27-393-00.u10", 0x0000, 0x2000, CRC(d47313a2) SHA1(4650e8e339aad628c0e5d8a1944b21abff793446) ) // label is "TMS 2364-25NL // D8614L // ZA234015 // 27-393-00/VT 85 // SINGAPORE" + ROM_REGION(0x0100,"gfx2",ROMREGION_ERASEFF) /* initialized in init_laser */ ROM_END @@ -576,8 +575,10 @@ ROM_START(laser700) ROM_REGION(0x8000,"maincpu",0) ROM_LOAD("27-0401-00-00.u6", 0x0000, 0x8000, CRC(9bed01f7) SHA1(3210fddfab2f4c7855fa902fb8e2fc18d10d48f1)) + ROM_REGION(0x2000,"gfx1",0) ROM_LOAD( "27-393-00.u10", 0x0000, 0x2000, CRC(d47313a2) SHA1(4650e8e339aad628c0e5d8a1944b21abff793446) ) + ROM_REGION(0x0100,"gfx2",ROMREGION_ERASEFF) /* initialized in init_laser */ ROM_END @@ -590,6 +591,6 @@ ***************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1985, laser350, 0, 0, laser350, laser350, vtech2_state, init_laser, "Video Technology", "Laser 350" , 0) -COMP( 1985, laser500, laser350, 0, laser500, laser500, vtech2_state, init_laser, "Video Technology", "Laser 500" , 0) -COMP( 1985, laser700, laser350, 0, laser700, laser500, vtech2_state, init_laser, "Video Technology", "Laser 700" , 0) +COMP( 1985, laser350, 0, 0, laser350, laser350, vtech2_state, init_laser, "Video Technology", "Laser 350" , MACHINE_SUPPORTS_SAVE ) +COMP( 1985, laser500, laser350, 0, laser500, laser500, vtech2_state, init_laser, "Video Technology", "Laser 500" , MACHINE_SUPPORTS_SAVE ) +COMP( 1985, laser700, laser350, 0, laser700, laser500, vtech2_state, init_laser, "Video Technology", "Laser 700" , MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/williams.cpp mame-0.224+dfsg.1/src/mame/drivers/williams.cpp --- mame-0.223+dfsg.1/src/mame/drivers/williams.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/williams.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -2657,82 +2657,130 @@ ROM_END -ROM_START( sinistar ) - ROM_REGION( 0x19000, "maincpu", 0 ) - ROM_LOAD( "sinistar.10", 0x0e000, 0x1000, CRC(3d670417) SHA1(81802622bee8dbea5c0f08019d87d941dcdbe292) ) - ROM_LOAD( "sinistar.11", 0x0f000, 0x1000, CRC(3162bc50) SHA1(2f38e572ab9c731e38dfe9bad3cc8222a775c5ea) ) - ROM_LOAD( "sinistar.01", 0x10000, 0x1000, CRC(f6f3a22c) SHA1(026d8cab07734fa294a5645edbe65a904bcbc302) ) - ROM_LOAD( "sinistar.02", 0x11000, 0x1000, CRC(cab3185c) SHA1(423d1e3b0c07333ec582529bc4d0b7baf591820a) ) - ROM_LOAD( "sinistar.03", 0x12000, 0x1000, CRC(1ce1b3cc) SHA1(5bc03d7249529d827dc60c087e074ab3e4ea7361) ) - ROM_LOAD( "sinistar.04", 0x13000, 0x1000, CRC(6da632ba) SHA1(72c0c3d5a5ca87ca4d95fcedaf834206e4633950) ) - ROM_LOAD( "sinistar.05", 0x14000, 0x1000, CRC(b662e8fc) SHA1(828a89d2ea13d8a362dae708f86bff54cb231887) ) - ROM_LOAD( "sinistar.06", 0x15000, 0x1000, CRC(2306183d) SHA1(703e29e6446856615760a4897c0f5d79cc7bdfb2) ) - ROM_LOAD( "sinistar.07", 0x16000, 0x1000, CRC(e5dd918e) SHA1(bf4e2ada6a59d246218544d822ba5355da925924) ) - ROM_LOAD( "sinistar.08", 0x17000, 0x1000, CRC(4785a787) SHA1(8c7eca656b2c23b0da41a8c7ce51a2735cab85a4) ) - ROM_LOAD( "sinistar.09", 0x18000, 0x1000, CRC(50cb63ad) SHA1(96e28e4fef98fff2649741a266fa590e0313e3b0) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) - ROM_LOAD( "speech.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) - ROM_LOAD( "speech.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) - ROM_LOAD( "speech.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) - ROM_LOAD( "speech.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) - ROM_LOAD( "sinistar.snd", 0xf000, 0x1000, CRC(b82f4ddb) SHA1(c70c7dd6e88897920d7709a260f27810f66aade1) ) +/* +Sinistar + +Multiple different ROM boards are known to exist: + +Rev.3: + ROM board known to come with final production rev. 2 labels with corresponding part numbers and two rev. 3 + upgrade ROMs: white labels and orange stripe: + + SINISTAR SINISTAR + ROM 8-B and ROM 11-B + REV. 3 REV. 3 + + ROM board known to come with all rev. 2 upgrade ROMs (as described below): white labels and red stripe plus the + two rev. 3 upgrade ROMs as described above + +Rev.2: + Earlier ROM boards known to have all upgrade styled labels, white with red stripe, in the format: + + SINISTAR + ROM 1-B + REV. 2 + +Although not currently dumped, "true" rev.1 Sinistar ROMs are believed to be numbered 16-3004-23 through 16-3004-33, + with speech ROMs 16-3004-34 through 16-3004-37 (labels believed to be solid brown) +There is known to be a "perfect" version of Sinistar, that being the original version presented to Williams by the + dev team. The dev team thought this version had the best game play while Williams decided it was too easy (IE: it + could be played too long on one quarter) + +*/ +ROM_START( sinistar ) // rev. 3 + ROM_REGION( 0x19000, "maincpu", 0 ) // solid RED labels with final production part numbers + ROM_LOAD( "sinistar_rom_10-b_16-3004-62.4c", 0x0e000, 0x1000, CRC(3d670417) SHA1(81802622bee8dbea5c0f08019d87d941dcdbe292) ) + ROM_LOAD( "sinistar_rom_11-b_16-3004-63.4a", 0x0f000, 0x1000, CRC(3162bc50) SHA1(2f38e572ab9c731e38dfe9bad3cc8222a775c5ea) ) + ROM_LOAD( "sinistar_rom_1-b_16-3004-53.1d", 0x10000, 0x1000, CRC(f6f3a22c) SHA1(026d8cab07734fa294a5645edbe65a904bcbc302) ) + ROM_LOAD( "sinistar_rom_2-b_16-3004-54.1c", 0x11000, 0x1000, CRC(cab3185c) SHA1(423d1e3b0c07333ec582529bc4d0b7baf591820a) ) + ROM_LOAD( "sinistar_rom_3-b_16-3004-55.1a", 0x12000, 0x1000, CRC(1ce1b3cc) SHA1(5bc03d7249529d827dc60c087e074ab3e4ea7361) ) + ROM_LOAD( "sinistar_rom_4-b_16-3004-56.2d", 0x13000, 0x1000, CRC(6da632ba) SHA1(72c0c3d5a5ca87ca4d95fcedaf834206e4633950) ) + ROM_LOAD( "sinistar_rom_5-b_16-3004-57.2c", 0x14000, 0x1000, CRC(b662e8fc) SHA1(828a89d2ea13d8a362dae708f86bff54cb231887) ) + ROM_LOAD( "sinistar_rom_6-b_16-3004-58.2a", 0x15000, 0x1000, CRC(2306183d) SHA1(703e29e6446856615760a4897c0f5d79cc7bdfb2) ) + ROM_LOAD( "sinistar_rom_7-b_16-3004-59.3d", 0x16000, 0x1000, CRC(e5dd918e) SHA1(bf4e2ada6a59d246218544d822ba5355da925924) ) + ROM_LOAD( "sinistar_rom_8-b_16-3004-60.3c", 0x17000, 0x1000, CRC(4785a787) SHA1(8c7eca656b2c23b0da41a8c7ce51a2735cab85a4) ) + ROM_LOAD( "sinistar_rom_9-b_16-3004-61.3a", 0x18000, 0x1000, CRC(50cb63ad) SHA1(96e28e4fef98fff2649741a266fa590e0313e3b0) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "3004_speech_ic7_r1_16-3004-52.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) + ROM_LOAD( "3004_speech_ic5_r1_16-3004-50.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) + ROM_LOAD( "3004_speech_ic6_r1_16-3004-51.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) + ROM_LOAD( "3004_speech_ic4_r1_16-3004-49.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) + ROM_LOAD( "video_sound_rom_9_std.808", 0xf000, 0x1000, CRC(b82f4ddb) SHA1(c70c7dd6e88897920d7709a260f27810f66aade1) ) + +/* + ROM_REGION( 0x10000, "soundcpu_b", 0 ) // Stereo sound requires 2nd sound board as used in the cockpit version + ROM_LOAD( "3004_speech_ic7_r1_16-3004-52.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) + ROM_LOAD( "3004_speech_ic5_r1_16-3004-50.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) + ROM_LOAD( "3004_speech_ic6_r1_16-3004-51.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) + ROM_LOAD( "3004_speech_ic4_r1_16-3004-49.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) + ROM_LOAD( "sinistar_stereo_18-a.ic12", 0xf000, 0x1000, CRC(b5c70082) SHA1(643af087b57da3a71c68372c79c5777e0c1fbef7) ) // not sure if all speech ROMs need to be here too +*/ ROM_REGION( 0x0400, "proms", 0 ) - ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) - ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) + ROM_LOAD( "a-5342-09694.3c", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) // Decoder PROM 4 - Horizontal - 7641-5 BPROM + ROM_LOAD( "a-5342-09821.3g", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) // Decoder PROM 6 - Vertical - 7641-5 BPROM ROM_END -ROM_START( sinistar1 ) - ROM_REGION( 0x19000, "maincpu", 0 ) - ROM_LOAD( "sinrev1.10", 0x0e000, 0x1000, CRC(ea87a53f) SHA1(4e4bad5315a8f5740c926ee5681879919a5be37f) ) - ROM_LOAD( "sinrev1.11", 0x0f000, 0x1000, CRC(88d36e80) SHA1(bb9adaf5b73f9874e52dc2f5fd35e22f8b4fc258) ) - ROM_LOAD( "sinrev1.01", 0x10000, 0x1000, CRC(3810d7b8) SHA1(dcd690cbc958a2f97f022765315d77fb7c7d8e8b) ) - ROM_LOAD( "sinistar.02", 0x11000, 0x1000, CRC(cab3185c) SHA1(423d1e3b0c07333ec582529bc4d0b7baf591820a) ) - ROM_LOAD( "sinrev1.03", 0x12000, 0x1000, CRC(7c984ca9) SHA1(b32b7d15194051db5d29acf95b049e2eccf6d393) ) - ROM_LOAD( "sinrev1.04", 0x13000, 0x1000, CRC(cc6c4f24) SHA1(b4375544e02a19458c6fcc85edb31025c0b8eb71) ) - ROM_LOAD( "sinrev1.05", 0x14000, 0x1000, CRC(12285bfe) SHA1(6d433103332ddda2f2af23febc0b15aa93db1f31) ) - ROM_LOAD( "sinrev1.06", 0x15000, 0x1000, CRC(7a675f35) SHA1(3a7e9fdb2aef52dc29d33799694737038802b6e0) ) - ROM_LOAD( "sinrev1.07", 0x16000, 0x1000, CRC(b0463243) SHA1(95d597856a1942bd176f5f62db0d691f8f2f2932) ) - ROM_LOAD( "sinrev1.08", 0x17000, 0x1000, CRC(909040d4) SHA1(5361cc378bdace0799227e901341747dce9bb029) ) - ROM_LOAD( "sinrev1.09", 0x18000, 0x1000, CRC(cc949810) SHA1(2d2d1cccd7e43b63e424c34ab5215a412e2b9809) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) - ROM_LOAD( "speech.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) - ROM_LOAD( "speech.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) - ROM_LOAD( "speech.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) - ROM_LOAD( "speech.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) - ROM_LOAD( "sinistar.snd", 0xf000, 0x1000, CRC(b82f4ddb) SHA1(c70c7dd6e88897920d7709a260f27810f66aade1) ) +ROM_START( sinistar2 ) // rev. 2 + ROM_REGION( 0x19000, "maincpu", 0 ) // solid RED labels with final production part numbers + ROM_LOAD( "sinistar_rom_10-b_16-3004-47.4c", 0x0e000, 0x1000, CRC(3d670417) SHA1(81802622bee8dbea5c0f08019d87d941dcdbe292) ) // == rev. 3 PN 16-3004-62 + ROM_LOAD( "sinistar_rom_11-b_16-3004-48.4a", 0x0f000, 0x1000, CRC(792c8b00) SHA1(1f847ca8a67595927c36d69cead02813c2431c7b) ) // unique to rev. 2 + ROM_LOAD( "sinistar_rom_1-b_16-3004-38.1d", 0x10000, 0x1000, CRC(f6f3a22c) SHA1(026d8cab07734fa294a5645edbe65a904bcbc302) ) // == rev. 3 PN 16-3004-53 + ROM_LOAD( "sinistar_rom_2-b_16-3004-39.1c", 0x11000, 0x1000, CRC(cab3185c) SHA1(423d1e3b0c07333ec582529bc4d0b7baf591820a) ) // == rev. 3 PN 16-3004-54 + ROM_LOAD( "sinistar_rom_3-b_16-3004-40.1a", 0x12000, 0x1000, CRC(1ce1b3cc) SHA1(5bc03d7249529d827dc60c087e074ab3e4ea7361) ) // == rev. 3 PN 16-3004-55 + ROM_LOAD( "sinistar_rom_4-b_16-3004-41.2d", 0x13000, 0x1000, CRC(6da632ba) SHA1(72c0c3d5a5ca87ca4d95fcedaf834206e4633950) ) // == rev. 3 PN 16-3004-56 + ROM_LOAD( "sinistar_rom_5-b_16-3004-42.2c", 0x14000, 0x1000, CRC(b662e8fc) SHA1(828a89d2ea13d8a362dae708f86bff54cb231887) ) // == rev. 3 PN 16-3004-57 + ROM_LOAD( "sinistar_rom_6-b_16-3004-43.2a", 0x15000, 0x1000, CRC(2306183d) SHA1(703e29e6446856615760a4897c0f5d79cc7bdfb2) ) // == rev. 3 PN 16-3004-57 + ROM_LOAD( "sinistar_rom_7-b_16-3004-44.3d", 0x16000, 0x1000, CRC(e5dd918e) SHA1(bf4e2ada6a59d246218544d822ba5355da925924) ) // == rev. 3 PN 16-3004-59 + ROM_LOAD( "sinistar_rom_8-b_16-3004-45.3c", 0x17000, 0x1000, CRC(d7ecee45) SHA1(f9552035409bce0a36ed93a677b28f8cd361f8f1) ) // unique to rev. 2 + ROM_LOAD( "sinistar_rom_9-b_16-3004-46.3a", 0x18000, 0x1000, CRC(50cb63ad) SHA1(96e28e4fef98fff2649741a266fa590e0313e3b0) ) // == rev. 3 PN 16-3004-61 + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "3004_speech_ic7_r1_16-3004-52.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) + ROM_LOAD( "3004_speech_ic5_r1_16-3004-50.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) + ROM_LOAD( "3004_speech_ic6_r1_16-3004-51.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) + ROM_LOAD( "3004_speech_ic4_r1_16-3004-49.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) + ROM_LOAD( "video_sound_rom_9_std.808", 0xf000, 0x1000, CRC(b82f4ddb) SHA1(c70c7dd6e88897920d7709a260f27810f66aade1) ) + +/* + ROM_REGION( 0x10000, "soundcpu_b", 0 ) // Stereo sound requires 2nd sound board as used in the cockpit version + ROM_LOAD( "3004_speech_ic7_r1_16-3004-52.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) + ROM_LOAD( "3004_speech_ic5_r1_16-3004-50.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) + ROM_LOAD( "3004_speech_ic6_r1_16-3004-51.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) + ROM_LOAD( "3004_speech_ic4_r1_16-3004-49.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) + ROM_LOAD( "sinistar_stereo_18-a.ic12", 0xf000, 0x1000, CRC(b5c70082) SHA1(643af087b57da3a71c68372c79c5777e0c1fbef7) ) // not sure if all speech ROMs need to be here too +*/ ROM_REGION( 0x0400, "proms", 0 ) - ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) - ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) + ROM_LOAD( "a-5342-09694.3c", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) // Decoder PROM 4 - Horizontal - 7641-5 BPROM + ROM_LOAD( "a-5342-09821.3g", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) // Decoder PROM 6 - Vertical - 7641-5 BPROM ROM_END -ROM_START( sinistar2 ) +ROM_START( sinistarp ) // solid pink labels - 1982 AMOA prototype ROM_REGION( 0x19000, "maincpu", 0 ) - ROM_LOAD( "sinistar.10", 0x0e000, 0x1000, CRC(3d670417) SHA1(81802622bee8dbea5c0f08019d87d941dcdbe292) ) - ROM_LOAD( "sinrev2.11", 0x0f000, 0x1000, CRC(792c8b00) SHA1(1f847ca8a67595927c36d69cead02813c2431c7b) ) - ROM_LOAD( "sinistar.01", 0x10000, 0x1000, CRC(f6f3a22c) SHA1(026d8cab07734fa294a5645edbe65a904bcbc302) ) - ROM_LOAD( "sinistar.02", 0x11000, 0x1000, CRC(cab3185c) SHA1(423d1e3b0c07333ec582529bc4d0b7baf591820a) ) - ROM_LOAD( "sinistar.03", 0x12000, 0x1000, CRC(1ce1b3cc) SHA1(5bc03d7249529d827dc60c087e074ab3e4ea7361) ) - ROM_LOAD( "sinistar.04", 0x13000, 0x1000, CRC(6da632ba) SHA1(72c0c3d5a5ca87ca4d95fcedaf834206e4633950) ) - ROM_LOAD( "sinistar.05", 0x14000, 0x1000, CRC(b662e8fc) SHA1(828a89d2ea13d8a362dae708f86bff54cb231887) ) - ROM_LOAD( "sinistar.06", 0x15000, 0x1000, CRC(2306183d) SHA1(703e29e6446856615760a4897c0f5d79cc7bdfb2) ) - ROM_LOAD( "sinistar.07", 0x16000, 0x1000, CRC(e5dd918e) SHA1(bf4e2ada6a59d246218544d822ba5355da925924) ) - ROM_LOAD( "sinrev2.08", 0x17000, 0x1000, CRC(d7ecee45) SHA1(f9552035409bce0a36ed93a677b28f8cd361f8f1) ) - ROM_LOAD( "sinistar.09", 0x18000, 0x1000, CRC(50cb63ad) SHA1(96e28e4fef98fff2649741a266fa590e0313e3b0) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) - ROM_LOAD( "speech.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) - ROM_LOAD( "speech.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) - ROM_LOAD( "speech.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) - ROM_LOAD( "speech.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) - ROM_LOAD( "sinistar.snd", 0xf000, 0x1000, CRC(b82f4ddb) SHA1(c70c7dd6e88897920d7709a260f27810f66aade1) ) + ROM_LOAD( "sinistar_rom_10-b_16-3004-21.4c", 0x0e000, 0x1000, CRC(ea87a53f) SHA1(4e4bad5315a8f5740c926ee5681879919a5be37f) ) + ROM_LOAD( "sinistar_rom_11-b_16-3004-22.4a", 0x0f000, 0x1000, CRC(88d36e80) SHA1(bb9adaf5b73f9874e52dc2f5fd35e22f8b4fc258) ) + ROM_LOAD( "sinistar_rom_1-b_16-3004-12.1d", 0x10000, 0x1000, CRC(3810d7b8) SHA1(dcd690cbc958a2f97f022765315d77fb7c7d8e8b) ) + ROM_LOAD( "sinistar_rom_2-b_16-3004-13.1c", 0x11000, 0x1000, CRC(cab3185c) SHA1(423d1e3b0c07333ec582529bc4d0b7baf591820a) ) // only this one ROM remains the same through to rev. 3 + ROM_LOAD( "sinistar_rom_3-b_16-3004-14.1a", 0x12000, 0x1000, CRC(7c984ca9) SHA1(b32b7d15194051db5d29acf95b049e2eccf6d393) ) + ROM_LOAD( "sinistar_rom_4-b_16-3004-15.2d", 0x13000, 0x1000, CRC(cc6c4f24) SHA1(b4375544e02a19458c6fcc85edb31025c0b8eb71) ) + ROM_LOAD( "sinistar_rom_5-b_16-3004-16.2c", 0x14000, 0x1000, CRC(12285bfe) SHA1(6d433103332ddda2f2af23febc0b15aa93db1f31) ) + ROM_LOAD( "sinistar_rom_6-b_16-3004-17.2a", 0x15000, 0x1000, CRC(7a675f35) SHA1(3a7e9fdb2aef52dc29d33799694737038802b6e0) ) + ROM_LOAD( "sinistar_rom_7-b_16-3004-18.3d", 0x16000, 0x1000, CRC(b0463243) SHA1(95d597856a1942bd176f5f62db0d691f8f2f2932) ) + ROM_LOAD( "sinistar_rom_8-b_16-3004-19.3c", 0x17000, 0x1000, CRC(909040d4) SHA1(5361cc378bdace0799227e901341747dce9bb029) ) + ROM_LOAD( "sinistar_rom_9-b_16-3004-20.3a", 0x18000, 0x1000, CRC(cc949810) SHA1(2d2d1cccd7e43b63e424c34ab5215a412e2b9809) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "3004_speech_ic7_r1.ic7", 0xb000, 0x1000, CRC(e1019568) SHA1(442f4f3ccd2e1db2136d2ffb121ea442921f87ca) ) // same data as later sets, but no official part number assigned yet + ROM_LOAD( "3004_speech_ic5_r1.ic5", 0xc000, 0x1000, CRC(cf3b5ffd) SHA1(d5d51c550581c9d46ab331dd4fd32541a2ef598e) ) + ROM_LOAD( "3004_speech_ic6_r1.ic6", 0xd000, 0x1000, CRC(ff8d2645) SHA1(16fa2a602acbbc182dd96bab113ab18356f3daf0) ) + ROM_LOAD( "3004_speech_ic4_r1.ic4", 0xe000, 0x1000, CRC(4b56a626) SHA1(44430cd5c110ec751b0bfb8ae99b26d443350db1) ) + ROM_LOAD( "video_sound_rom_9_std.808", 0xf000, 0x1000, CRC(b82f4ddb) SHA1(c70c7dd6e88897920d7709a260f27810f66aade1) ) ROM_REGION( 0x0400, "proms", 0 ) - ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) - ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) + ROM_LOAD( "a-5342-09694.3c", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) // Decoder ROM 4 - Horizontal - 7641-5 BPROM + ROM_LOAD( "a-5342-09821.3g", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) // Decoder ROM 6 - Vertical - 7641-5 BPROM ROM_END @@ -3427,8 +3475,8 @@ GAME( 1982, splat, 0, williams_muxed, splat, williams_muxed_state, init_splat, ROT0, "Williams", "Splat!", MACHINE_SUPPORTS_SAVE ) GAME( 1982, sinistar, 0, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (revision 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, sinistar1, sinistar, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (prototype version)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, sinistar2, sinistar, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, sinistarp, sinistar, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (AMOA-82 prototype)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, playball, 0, playball, playball, playball_state, empty_init, ROT270, "Williams", "PlayBall! (prototype)", MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/wpc_an.cpp mame-0.224+dfsg.1/src/mame/drivers/wpc_an.cpp --- mame-0.223+dfsg.1/src/mame/drivers/wpc_an.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/wpc_an.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -442,7 +442,6 @@ SPEAKER(config, "speaker").front_center(); S11C_BG(config, m_bg); - m_bg->set_romregion("sound1"); m_bg->add_route(ALL_OUTPUTS, "speaker", 1.0); } @@ -452,7 +451,7 @@ ROM_START(dd_p7) ROM_REGION(0x30000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("dude_u6.p7", 0x10000, 0x20000, CRC(b6c35b98) SHA1(5e9d70ce40669e2f402561dc1d8aa70a8b8a2958)) - ROM_REGION(0x80000, "sound1", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dude_u4.l1", 0x00000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) ROM_RELOAD( 0x10000, 0x10000) ROM_LOAD("dude_u19.l1", 0x20000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) @@ -466,7 +465,7 @@ ROM_START(dd_p06) ROM_REGION(0x30000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("u6-pa6.wpc", 0x10000, 0x20000, CRC(fb72571b) SHA1(a12b32eac3141c881064e6de2f49d6d213248fde)) - ROM_REGION(0x80000, "sound1", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("dude_u4.l1", 0x00000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) ROM_RELOAD( 0x10000, 0x10000) ROM_LOAD("dude_u19.l1", 0x20000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) @@ -623,7 +622,7 @@ ROM_START(fh_pa1) ROM_REGION(0x30000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("u6-l2.rom", 0x10000, 0x20000, CRC(7a8a3278) SHA1(b35c1149862724ea70cc810f14141e51b365e950)) - ROM_REGION(0x80000, "sound1", ROMREGION_ERASEFF) + ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF) ROM_LOAD("fh_u4.pa1", 0x00000, 0x20000, CRC(9f0a716d) SHA1(3d3ec250b0b4344844ad8ce5bcbb326f934b22d3)) ROM_LOAD("fh_u19.pa1", 0x20000, 0x20000, CRC(b0fb5ddf) SHA1(138c2aa283f7ced90637e981063f520bf46c57df)) ROM_LOAD("fh_u20.pa1", 0x40000, 0x20000, CRC(bb864f78) SHA1(ed861bd5df382e7efac103a1acb3d810ee4b15dc)) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/xavix_2000.cpp mame-0.224+dfsg.1/src/mame/drivers/xavix_2000.cpp --- mame-0.223+dfsg.1/src/mame/drivers/xavix_2000.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/xavix_2000.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,287 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/***************************************************************************/ + +/* (XaviX 2000 type CPU) hardware titles (2nd XaviX generation?) + + these use the SSD 2000 NEC 85605-621 type CPU + + This CPU type adds extra opcodes that don't appear to be present in the 97/98 types + It does not appear to support the bitmap modes or 16-bit ROMs found in the 2002 type + + It is possible some games in the regular xavix.cpp drivers use this type, there + does not appear to be a way to tell unless the extra opcodes are used or the CPU + has been decapped + +*/ + +#include "emu.h" +#include "includes/xavix_2002.h" + +// #define VERBOSE 1 +#include "logmacro.h" + +static INPUT_PORTS_START( xavix ) + PORT_START("IN0") + PORT_DIPNAME( 0x01, 0x00, "IN0" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("IN1") + PORT_DIPNAME( 0x01, 0x00, "IN1" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("AN0") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN1") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN2") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN3") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN4") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN5") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN6") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN7") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("MOUSE0X") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("MOUSE0Y") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("MOUSE1X") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("MOUSE1Y") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("REGION") // PAL/NTSC flag + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_CUSTOM ) +INPUT_PORTS_END + +static INPUT_PORTS_START( xavix_i2c ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN1") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) +INPUT_PORTS_END + +static INPUT_PORTS_START( epo_ebox ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // select + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // back + // 04/08 not used for buttons? + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( epo_bowl ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + + PORT_MODIFY("IN1") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) +INPUT_PORTS_END + +static INPUT_PORTS_START( epo_sdb ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("MOUSE0X") + PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(1) + PORT_MODIFY("MOUSE0Y") + PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(1) + PORT_MODIFY("MOUSE1X") + PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(2) + PORT_MODIFY("MOUSE1Y") + PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(2) + + PORT_MODIFY("IN0") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + + PORT_MODIFY("IN1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) +INPUT_PORTS_END + + +static INPUT_PORTS_START( ttv_lotr ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN1") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_lotr_state, camera_r) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_lotr_state, camera_r) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) +INPUT_PORTS_END + +static INPUT_PORTS_START( ttv_mx ) + PORT_INCLUDE(xavix_i2c) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // Accel + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // Brake + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Pause") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Motion Up") // you tilt the device, but actual inputs are digital + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("Motion Down") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Motion Left") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("Motion Right") +INPUT_PORTS_END + + +void xavix_state::xavix2000(machine_config &config) +{ + xavix(config); + + XAVIX2000(config.replace(), m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &xavix_state::xavix_map); + m_maincpu->set_addrmap(5, &xavix_state::xavix_lowbus_map); + m_maincpu->set_addrmap(6, &xavix_state::xavix_extbus_map); + m_maincpu->set_vblank_int("screen", FUNC(xavix_state::interrupt)); + m_maincpu->set_vector_callback(FUNC(xavix_state::get_vectors)); + + m_palette->set_entries(512); +} + +void xavix_state::xavix2000_nv(machine_config &config) +{ + xavix2000(config); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); +} + +void xavix_2000_nv_sdb_state::xavix2000_nv_sdb(machine_config &config) +{ + xavix2000_nv(config); + + m_anport->read_0_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport0_r)); + m_anport->read_1_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport1_r)); + m_anport->read_2_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport2_r)); + m_anport->read_3_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport3_r)); +} + +void xavix_i2c_state::xavix2000_i2c_24c04(machine_config &config) +{ + xavix2000(config); + + I2C_24C04(config, "i2cmem", 0); +} + +void xavix_i2c_state::xavix2000_i2c_24c02(machine_config &config) +{ + xavix2000(config); + + I2C_24C02(config, "i2cmem", 0); +} + + + +ROM_START( epo_sdb ) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) + ROM_LOAD("superdashball.bin", 0x000000, 0x400000, CRC(a004a764) SHA1(47a96822d4d7d6a0f6be5cd729c3747dbab65979) ) +ROM_END + +ROM_START( epo_ebox ) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) + ROM_LOAD("exciteboxing.bin", 0x000000, 0x400000, CRC(e25ae4f5) SHA1(7f7b613f0ab8f43f5cad0d13de538921e77cae9c) ) +ROM_END + +ROM_START( epo_bowl ) + ROM_REGION(0x200000, "bios", ROMREGION_ERASE00) + ROM_LOAD("bowling.bin", 0x000000, 0x200000, CRC(d34f8d9e) SHA1(ebe3792172dc43904b9226beb27f1da89d2388cc) ) +ROM_END + +ROM_START( ttv_sw ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "jedi.bin", 0x000000, 0x800000, CRC(51cae5fd) SHA1(1ed8d556f31b4182259ca8c766d60c824d8d9744) ) +ROM_END + +ROM_START( ttv_lotr ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "lotr.bin", 0x000000, 0x800000, CRC(a034ecd5) SHA1(264a9d4327af0a075841ad6129db67d82cf741f1) ) +ROM_END + +ROM_START( ttv_mx ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "mxdirtrebel.bin", 0x000000, 0x800000, CRC(e64bf1a1) SHA1(137f97d7d857697a13e0c8984509994dc7bc5fc5) ) +ROM_END + +ROM_START( drgqst ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "dragonquest.bin", 0x000000, 0x800000, CRC(3d24413f) SHA1(1677e81cedcf349de7bf091a232dc82c6424efba) ) +ROM_END + +ROM_START( ban_onep ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00) + ROM_LOAD("onepiece.bin", 0x000000, 0x800000, CRC(c5cb5a5f) SHA1(db85f6cc48d77c5a4967b9b8e2999167e3dfc8c8) ) +ROM_END + +// doesn't use extra opcodes? +CONS( 2002, epo_ebox, 0, 0, xavix2000_nv, epo_ebox, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Boxing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // doesn't use XaviX2000 extra opcodes, but had that type of CPU + // die not confirmed, but uses extra opcodes. (hangs on title screen due to combination of freq_timer_done nested interrupts tripping, and waiting on bits in input ports to change +CONS( 2002, epo_bowl, 0, 0, xavix2000_i2c_24c02, epo_bowl, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Bowling (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) + +CONS( 2004, epo_sdb, 0, 0, xavix2000_nv_sdb, epo_sdb, xavix_2000_nv_sdb_state, init_xavix, "Epoch / SSD Company LTD", "Super Dash Ball (Japan)", MACHINE_IMPERFECT_SOUND ) + +CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Lord Of The Rings - Warrior of Middle-Earth", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_i2c_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_IMPERFECT_SOUND ) +CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) + +// hangs after starting a game, or after quite a long time in attract mode (first problem could be bad save data read with the eeprom code, 2nd problem might just be how it is, ends up in a dead loop, not executing invalid code, idle timeout / battery saver) +CONS( 2004, ban_onep, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Bandai / SSD Company LTD", "One Piece Punch Battle (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/xavix_2002.cpp mame-0.224+dfsg.1/src/mame/drivers/xavix_2002.cpp --- mame-0.223+dfsg.1/src/mame/drivers/xavix_2002.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/xavix_2002.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,547 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/***************************************************************************/ + +/* SuperXaviX (XaviX 2002 type CPU) hardware titles (3rd XaviX generation?) + + these use the SSD 2002 NEC 85054-611 type CPU + differences include support for 16-bit ROMs, high resolution bitmap modes, interlace screen modes, extra IO + + XavixPort Golf is "SSD 2003 SuperXaviX MXIC 2003 3009" (not dumped yet, but actually marked as SuperXaviX unlike the others!) + +*/ + +#include "emu.h" +#include "includes/xavix_2002.h" + +// #define VERBOSE 1 +#include "logmacro.h" + +/* The 'XaviXPORT' isn't a real console, more of a TV adapter, all the actual hardware (CPU including video hw, sound hw) is in the cartridges and controllers + and can vary between games, see notes at top of driver. + + The 'Domyos Interactive System (DiS)' released in France by Decathlon appears to be identical to XaviXPORT (but for PAL regions, and with an entirely different software range) +*/ + + +static INPUT_PORTS_START( xavix ) + PORT_START("IN0") + PORT_DIPNAME( 0x01, 0x00, "IN0" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("IN1") + PORT_DIPNAME( 0x01, 0x00, "IN1" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("AN0") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN1") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN2") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN3") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN4") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN5") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN6") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("AN7") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("MOUSE0X") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("MOUSE0Y") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("MOUSE1X") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("MOUSE1Y") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("REGION") // PAL/NTSC flag + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_CUSTOM ) +INPUT_PORTS_END + +static INPUT_PORTS_START( xavix_i2c ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN1") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) +INPUT_PORTS_END + + +static INPUT_PORTS_START( epo_tfit ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // select + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // back + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) +INPUT_PORTS_END + + +static INPUT_PORTS_START( mrangbat ) + PORT_INCLUDE(xavix_i2c) + + PORT_MODIFY("IN0") + PORT_DIPNAME( 0x01, 0x00, "IN0" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_MODIFY("IN1") + PORT_DIPNAME( 0x01, 0x00, "IN1" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("EX0") // NOT A JOYSTICK!! + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_16WAY // Red/Up 1 + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_16WAY // Red/Up 2 + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_16WAY // Green / Circle / Right 2 + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_16WAY // Pink / Star / Left 2 + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_16WAY // Blue / Square / Right 1 + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_16WAY // Yellow / Triangle / Left 1 + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) + + + PORT_START("EX1") + PORT_DIPNAME( 0x01, 0x00, "EX1" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("EX2") + PORT_DIPNAME( 0x01, 0x00, "EX2" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( xavix_bowl ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN1") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_bowl_state, camera_r) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_bowl_state, camera_r) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) +INPUT_PORTS_END + +static INPUT_PORTS_START( xavixp ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("REGION") // PAL/NTSC flag + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM ) +INPUT_PORTS_END + + +/* SuperXavix IO port handliner (per game) */ + +uint8_t xavix_i2c_jmat_state::read_extended_io0() +{ + LOG("%s: read_extended_io0\n", machine().describe_context()); + return 0x00; +} + +uint8_t xavix_i2c_jmat_state::read_extended_io1() +{ + LOG("%s: read_extended_io1\n", machine().describe_context()); + + // reads this by reading the byte, then shifting right 4 times to place value into carry flag + return m_i2cmem->read_sda() << 3; + //return 0x00; +} + +uint8_t xavix_i2c_jmat_state::read_extended_io2() +{ + LOG("%s: read_extended_io2\n", machine().describe_context()); + return 0x00; +} + +void xavix_i2c_jmat_state::write_extended_io0(uint8_t data) +{ + LOG("%s: io0_data_w %02x\n", machine().describe_context(), data); +} + +void xavix_i2c_jmat_state::write_extended_io1(uint8_t data) +{ + LOG("%s: io1_data_w %02x\n", machine().describe_context(), data); + + m_i2cmem->write_sda((data & 0x08) >> 3); + m_i2cmem->write_scl((data & 0x10) >> 4); + +} + +void xavix_i2c_jmat_state::write_extended_io2(uint8_t data) +{ + LOG("%s: io2_data_w %02x\n", machine().describe_context(), data); +} + +READ_LINE_MEMBER(xavix_i2c_lotr_state::camera_r) // seems to be some kind of camera status bits +{ + return machine().rand(); +} + +READ_LINE_MEMBER(xavix_i2c_bowl_state::camera_r) // seems to be some kind of camera status bits +{ + return machine().rand(); +} + +void xavix_state::xavix2002(machine_config &config) +{ + xavix(config); + + XAVIX2002(config.replace(), m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &xavix_state::xavix_map); + m_maincpu->set_addrmap(5, &xavix_state::superxavix_lowbus_map); // has extra video, io etc. + m_maincpu->set_addrmap(6, &xavix_state::xavix_extbus_map); + m_maincpu->set_vblank_int("screen", FUNC(xavix_state::interrupt)); + m_maincpu->set_vector_callback(FUNC(xavix_state::get_vectors)); + + m_palette->set_entries(512); + + XAVIX2002IO(config, m_xavix2002io, 0); +} + + + +void xavix_i2c_jmat_state::xavix2002_i2c_jmat(machine_config &config) +{ + xavix2002_i2c_24c04(config); + + m_xavix2002io->read_0_callback().set(FUNC(xavix_i2c_jmat_state::read_extended_io0)); + m_xavix2002io->write_0_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io0)); + m_xavix2002io->read_1_callback().set(FUNC(xavix_i2c_jmat_state::read_extended_io1)); + m_xavix2002io->write_1_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io1)); + m_xavix2002io->read_2_callback().set(FUNC(xavix_i2c_jmat_state::read_extended_io2)); + m_xavix2002io->write_2_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io2)); +} + +void xavix2002_superpttv_state::xavix2002_superpctv(machine_config& config) +{ + xavix2002(config); + + m_xavix2002io->read_0_callback().set(FUNC(xavix2002_superpttv_state::read_extended_io0)); + m_xavix2002io->read_1_callback().set(FUNC(xavix2002_superpttv_state::read_extended_io1)); + m_xavix2002io->read_2_callback().set(FUNC(xavix2002_superpttv_state::read_extended_io2)); +} + + +void xavix_i2c_state::xavix2002_i2c_24c04(machine_config &config) +{ + xavix2002(config); + + I2C_24C04(config, "i2cmem", 0); +} + +void xavix_i2c_state::xavix2002_i2c_mrangbat(machine_config &config) +{ + xavix2002(config); + + I2C_24C02(config, "i2cmem", 0); // 24C02? + + m_xavix2002io->read_0_callback().set_ioport("EX0"); + m_xavix2002io->read_1_callback().set_ioport("EX1"); + m_xavix2002io->read_2_callback().set_ioport("EX2"); +} + + +// XaviXPORT +ROM_START( xavtenni ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "xavixtennis.bin", 0x000000, 0x800000, CRC(23a1d918) SHA1(2241c59e8ea8328013e55952ebf9060ea0a4675b) ) +ROM_END + +ROM_START( xavbaseb ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "xpbaseball.bin", 0x000000, 0x800000, CRC(e9ed692d) SHA1(537e390e972156dc7da66ee127ae4c8052038ee5) ) +ROM_END + +ROM_START( xavbowl ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "xpbowling.bin", 0x000000, 0x800000, CRC(2873460b) SHA1(ea8e2392f5a12961a23eb66dca8e07dec81ce8c8) ) +ROM_END + +ROM_START( xavbassf ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "xpbassfishing.bin", 0x000000, 0x800000, CRC(09ab2f29) SHA1(616254176315d0947002e9ae5a6371a3ffa2e8eb) ) + + // code for the nRF24E1s, stored in SEEPROMs. One in the cartridge, one in the rod/reel + ROM_REGION( 0x1001, "reel_io", ROMREGION_ERASE00 ) + ROM_LOAD( "xpbassfishingnrf24e1reel.bin", 0x0000, 0x1001, CRC(cfbb19ae) SHA1(32464e4e4be33fdbc7768311f93ce437a316c616) ) + + ROM_REGION( 0x800000, "base_io", ROMREGION_ERASE00 ) + ROM_LOAD( "xpbassfishingnrf24e1cart.bin", 0x0000, 0x1001, CRC(62f6303e) SHA1(126b2663e252fb80948f53153e4046e63dd8be32) ) +ROM_END + +ROM_START( xavbox ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "xpboxing.bin", 0x000000, 0x800000, CRC(b61e7717) SHA1(162b9c53ac8c9d7b6972db44f7bc1cb0a7837b70) ) +ROM_END + +// Several of the XaviXport and DiS games are 2 glob setups (and must have some kind of banking) + +ROM_START( xavjmat ) + ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(1420640d) SHA1(dd714cd57cff885293688f74f69b5c1726e20ec0) ) + + ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) + ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(52dc318c) SHA1(dc50e0747ba29cfb1048fd4a55d26870086c869b) ) +ROM_END + +// currently copies the wrong code into RAM to execute (due to extended ROM size, and possible banking) +// [:] ':maincpu' (00E074): rom_dmatrg_w (do DMA?) 01 +// [:] (possible DMA op SRC 00ebe2d3 DST 358a LEN 0398) +// needs to come from 006be2d3 (so still from lower 8MB, not upper 8MB) + +ROM_START( xavmusic ) + ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(e7c8ad59) SHA1(d47fac8b480de4db88a1b306ff8830a65d1738a3) ) + + ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) + ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(977c956f) SHA1(debc086d0cf6c391002ad163e7bfaa2f010cc8f5) ) +ROM_END + + +// Domyos DiS (XaviX 2002 based titles) +ROM_START( domfitex ) + ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(841fe3cd) SHA1(8678b8a0c5198b24169a84dbe3ae979bb0838f23) ) + + ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) + ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(1dc844ea) SHA1(c23da9006227f7fe4982998c17759d403a47472a) ) +ROM_END + +ROM_START( domfitch ) + ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(0ff2a7a6) SHA1(9b924cc4330e3f8d9204390854048fe2325bfdf7) ) + + ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) + ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(284583f6) SHA1(bd2d5304f1e01eed656b5de957ec0a0330a3d969) ) +ROM_END + +ROM_START( domdance ) + ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(74f9499d) SHA1(a64235075e32567cd6d2ab7b1284efcb8e7538e2) ) + + ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) + ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(e437565c) SHA1(f6db219ea14404b698ca453f6e50c726b2e77abb) ) +ROM_END + +ROM_START( domstepc ) + ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(cb37b5e9) SHA1(b742e3db98f36720adf5af9096c6bc235279de12) ) + + ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) + ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(dadaa744) SHA1(fd7ca77232a8fe228fc93b0a8a47ba3260349d90) ) +ROM_END + +ROM_START( mrangbat ) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) + ROM_LOAD("powerrangerspad.bin", 0x000000, 0x400000, CRC(d3a98775) SHA1(485c66242dd0ee436a278d23005aece48d606431) ) +ROM_END + +ROM_START( tmy_thom ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_LOAD( "thomastank.bin", 0x000000, 0x800000, CRC(a52a23be) SHA1(e5b3500239d9e56eb5405f7585982959e5a162da) ) +ROM_END + +ROM_START( epo_tfit ) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) + ROM_LOAD("tennisfitness.bin", 0x000000, 0x400000, CRC(cbf65bd2) SHA1(30b3da6f061b2dd91679db42a050f715901beb87) ) +ROM_END + +ROM_START( suprpctv ) + ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) // inverted line? + ROM_LOAD("superpctv.bin", 0x200000, 0x200000, CRC(4a55a81c) SHA1(178b4b595a3aefc6d1c176031b436fc3312009e7) ) + ROM_CONTINUE(0x000000, 0x200000) + ROM_CONTINUE(0x600000, 0x200000) + ROM_CONTINUE(0x400000, 0x200000) +ROM_END + +ROM_START( udance ) + ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_LOAD("udancerom0.bin", 0x000000, 0x800000, CRC(3066580a) SHA1(545257c75a892894faf386f4ab9a31967cdbe8ae) ) + + ROM_REGION(0x800000, "biosx", ROMREGION_ERASE00) + ROM_LOAD("udancerom1.bin", 0x000000, 0x800000, CRC(7dbaabde) SHA1(38c523dcdf8185465fc550fb9b0e8c7909f839be) ) +ROM_END + + +CONS( 2004, xavtenni, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "SSD Company LTD", "XaviX Tennis (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2004, xavbaseb, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "SSD Company LTD", "XaviX Baseball (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2004, xavbowl, 0, 0, xavix2002_i2c_24c04, xavix_bowl, xavix_i2c_bowl_state, init_xavix, "SSD Company LTD", "XaviX Bowling (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // has IR 'Camera' +CONS( 2004, xavbox, 0, 0, xavix2002_i2c_jmat, xavix, xavix_i2c_jmat_state, init_xavix, "SSD Company LTD", "XaviX Boxing (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // has IR 'Camera' +// Bass Fishing PCB is just like Tennis except with an RF daughterboard. +CONS( 2004, xavbassf, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "SSD Company LTD", "XaviX Bass Fishing (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +// TODO: check SEEPROM type and hookup, banking! +CONS( 2005, xavjmat, 0, 0, xavix2002_i2c_jmat, xavix, xavix_i2c_jmat_state, init_xavix, "SSD Company LTD", "Jackie Chan J-Mat Fitness (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2007, xavmusic, 0, 0, xavix2002_i2c_jmat, xavix, xavix_i2c_jmat_state, init_xavix, "SSD Company LTD", "XaviX Music & Circuit (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +// https://arnaudmeyer.wordpress.com/domyos-interactive-system/ +// Domyos Fitness Adventure +// Domyos Fitness Challenge +// Domyos Fitness Exercises +// Domyos Fit Race +// Domyos Soft Fitness +// Domyos Fitness Dance +// Domyos Fitness Play +// Domyos Fitness Training + +// Domyos Bike Concept (not listed on site above) + +// Has SEEPROM and an RTC. Exercise has some leftover PC buffer stuff. (TODO, check SEEPROM type, RTC type, banking) (both Exercises and Challenge are identical PCBs) +CONS( 2008, domfitex, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Exercises (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2008, domfitch, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Challenge (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2007, domdance, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Dance (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2007, domstepc, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Step Concept (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +// some DIS games run on XaviX 2 instead, see xavix2.cpp for Domyos Fitness Adventure and Domyos Bike Concept + +CONS( 2005, mrangbat, 0, 0, xavix2002_i2c_mrangbat, mrangbat, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Mahou Taiketsu Magiranger - Magimat de Dance & Battle (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +CONS( 2004, epo_tfit, 0, 0, xavix2002_i2c_24c04, epo_tfit, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Sports Tennis x Fitness (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // Epoch Tennis and Fitness has 24LC04 + +// TODO: does it have an SEEPROM? why does it hang? full title? +CONS( 2005, tmy_thom, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "Tomy / SSD Company LTD", "Thomas and Friends (Tomy)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +// has HT24LC16 +CONS( 2008, udance, 0, 0, xavix2002, xavix, xavix_state, init_xavix, "Tiger / SSD Company LTD", "U-Dance", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +// this has RAM in the usual ROM space, needs handling, also has Atmel 24LC64. +CONS( 200?, suprpctv, 0, 0, xavix2002_superpctv, xavix, xavix2002_superpttv_state, init_xavix, "Epoch / SSD Company LTD", "Super PC TV (Epoch)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + + diff -Nru mame-0.223+dfsg.1/src/mame/drivers/xavix.cpp mame-0.224+dfsg.1/src/mame/drivers/xavix.cpp --- mame-0.223+dfsg.1/src/mame/drivers/xavix.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/xavix.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -233,10 +233,6 @@ #include "emu.h" #include "includes/xavix.h" -// NTSC clock for regular XaviX? -#define MAIN_CLOCK XTAL(21'477'272) -// some games (eg Radica Opus) run off a 3.579545MHz XTAL ( same as the above /6 ) so presumably there is a divider / multiplier circuit on some PCBs? -// TODO: what's the PAL clock? /* rad_madf has callf #$8f3f21 in various places, and expects to jump to code in ROM, it is unclear how things map in this case, as presumably the CPU 0 page memory and stack are still at 0 but ROM must be in the 3xxx range (game hasn't got far enough to call this yet to help either) @@ -547,22 +543,7 @@ INPUT_PORTS_END -static INPUT_PORTS_START( epo_tfit ) - PORT_INCLUDE(xavix) - PORT_MODIFY("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // select - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // back - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - - PORT_MODIFY("IN1") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) -INPUT_PORTS_END static INPUT_PORTS_START( tomcpin ) @@ -582,176 +563,6 @@ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // pressing this will turn the game off. INPUT_PORTS_END -static INPUT_PORTS_START( mrangbat ) - PORT_INCLUDE(xavix_i2c) - - PORT_MODIFY("IN0") - PORT_DIPNAME( 0x01, 0x00, "IN0" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_MODIFY("IN1") - PORT_DIPNAME( 0x01, 0x00, "IN1" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START("EX0") // NOT A JOYSTICK!! - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_16WAY // Red/Up 1 - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_16WAY // Red/Up 2 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_16WAY // Green / Circle / Right 2 - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_16WAY // Pink / Star / Left 2 - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_16WAY // Blue / Square / Right 1 - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_16WAY // Yellow / Triangle / Left 1 - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) - - - PORT_START("EX1") - PORT_DIPNAME( 0x01, 0x00, "EX1" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START("EX2") - PORT_DIPNAME( 0x01, 0x00, "EX2" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( epo_bowl ) - PORT_INCLUDE(xavix) - - PORT_MODIFY("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - - PORT_MODIFY("IN1") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) -INPUT_PORTS_END - - -static INPUT_PORTS_START( ttv_lotr ) - PORT_INCLUDE(xavix) - - PORT_MODIFY("IN1") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_lotr_state, camera_r) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_lotr_state, camera_r) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) -INPUT_PORTS_END - -static INPUT_PORTS_START( xavix_bowl ) - PORT_INCLUDE(xavix) - - PORT_MODIFY("IN1") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_bowl_state, camera_r) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xavix_i2c_bowl_state, camera_r) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) -INPUT_PORTS_END - -static INPUT_PORTS_START( epo_sdb ) - PORT_INCLUDE(xavix) - - PORT_MODIFY("MOUSE0X") - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(1) - PORT_MODIFY("MOUSE0Y") - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(1) - PORT_MODIFY("MOUSE1X") - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(2) - PORT_MODIFY("MOUSE1Y") - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(2) - - PORT_MODIFY("IN0") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_MODIFY("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) -INPUT_PORTS_END - static INPUT_PORTS_START( ltv_tam ) PORT_INCLUDE(xavix_i2c) @@ -819,14 +630,6 @@ -static INPUT_PORTS_START( xavixp ) - PORT_INCLUDE(xavix) - - PORT_MODIFY("REGION") // PAL/NTSC flag - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM ) -INPUT_PORTS_END - - /* Test mode lists the following LED (on power button?) @@ -1208,19 +1011,6 @@ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // pressing this will turn the game off. INPUT_PORTS_END -static INPUT_PORTS_START( ttv_mx ) - PORT_INCLUDE(xavix_i2c) - - PORT_MODIFY("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // Accel - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // Brake - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Pause") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Motion Up") // you tilt the device, but actual inputs are digital - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("Motion Down") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Motion Left") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("Motion Right") -INPUT_PORTS_END static INPUT_PORTS_START( rad_fb ) @@ -1613,81 +1403,7 @@ NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); } -void xavix_state::xavix2000(machine_config &config) -{ - xavix(config); - XAVIX2000(config.replace(), m_maincpu, MAIN_CLOCK); - m_maincpu->set_addrmap(AS_PROGRAM, &xavix_state::xavix_map); - m_maincpu->set_addrmap(5, &xavix_state::xavix_lowbus_map); - m_maincpu->set_addrmap(6, &xavix_state::xavix_extbus_map); - m_maincpu->set_vblank_int("screen", FUNC(xavix_state::interrupt)); - m_maincpu->set_vector_callback(FUNC(xavix_state::get_vectors)); - - m_palette->set_entries(512); -} - -void xavix_state::xavix2002(machine_config &config) -{ - xavix(config); - - XAVIX2002(config.replace(), m_maincpu, MAIN_CLOCK); - m_maincpu->set_addrmap(AS_PROGRAM, &xavix_state::xavix_map); - m_maincpu->set_addrmap(5, &xavix_state::superxavix_lowbus_map); // has extra video, io etc. - m_maincpu->set_addrmap(6, &xavix_state::xavix_extbus_map); - m_maincpu->set_vblank_int("screen", FUNC(xavix_state::interrupt)); - m_maincpu->set_vector_callback(FUNC(xavix_state::get_vectors)); - - m_palette->set_entries(512); - - XAVIX2002IO(config, m_xavix2002io, 0); -} - - - -void xavix_i2c_jmat_state::xavix2002_i2c_jmat(machine_config &config) -{ - xavix2002_i2c_24c04(config); - - m_xavix2002io->read_0_callback().set(FUNC(xavix_i2c_jmat_state::read_extended_io0)); - m_xavix2002io->write_0_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io0)); - m_xavix2002io->read_1_callback().set(FUNC(xavix_i2c_jmat_state::read_extended_io1)); - m_xavix2002io->write_1_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io1)); - m_xavix2002io->read_2_callback().set(FUNC(xavix_i2c_jmat_state::read_extended_io2)); - m_xavix2002io->write_2_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io2)); -} - - -void xavix_state::xavix2000_nv(machine_config &config) -{ - xavix2000(config); - - NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); -} - -void xavix_2000_nv_sdb_state::xavix2000_nv_sdb(machine_config &config) -{ - xavix2000_nv(config); - - m_anport->read_0_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport0_r)); - m_anport->read_1_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport1_r)); - m_anport->read_2_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport2_r)); - m_anport->read_3_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport3_r)); -} - -void xavix_i2c_state::xavix2000_i2c_24c04(machine_config &config) -{ - xavix2000(config); - - I2C_24C04(config, "i2cmem", 0); -} - -void xavix_i2c_state::xavix2000_i2c_24c02(machine_config &config) -{ - xavix2000(config); - - I2C_24C02(config, "i2cmem", 0); -} void xavix_mtrk_state::xavix_mtrk(machine_config &config) { @@ -1843,28 +1559,6 @@ } -void xavix_i2c_state::xavix2002_i2c_24c04(machine_config &config) -{ - xavix2002(config); - - I2C_24C04(config, "i2cmem", 0); -} - -void xavix_i2c_state::xavix2002_i2c_mrangbat(machine_config &config) -{ - xavix2002(config); - - I2C_24C02(config, "i2cmem", 0); // 24C02? - - m_xavix2002io->read_0_callback().set_ioport("EX0"); - //m_xavix2002io->write_0_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io0)); - m_xavix2002io->read_1_callback().set_ioport("EX1"); - //m_xavix2002io->write_1_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io1)); - m_xavix2002io->read_2_callback().set_ioport("EX2"); - //m_xavix2002io->write_2_callback().set(FUNC(xavix_i2c_jmat_state::write_extended_io2)); - -} - void xavix_state::init_xavix() { @@ -2020,11 +1714,6 @@ ROM_LOAD("excitefishing.bin", 0x000000, 0x400000, CRC(9c85b261) SHA1(6a363faed2ec89c5176e46554a98ca1e20132579) ) ROM_END -ROM_START( epo_bowl ) - ROM_REGION(0x200000, "bios", ROMREGION_ERASE00) - ROM_LOAD("bowling.bin", 0x000000, 0x200000, CRC(d34f8d9e) SHA1(ebe3792172dc43904b9226beb27f1da89d2388cc) ) -ROM_END - ROM_START( epo_esdx ) ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("baseballdx.bin", 0x000000, 0x400000, CRC(fe2e832e) SHA1(e6343f5e5f52316538d918d0d67c15764aa40f65) ) @@ -2279,7 +1968,7 @@ CONS( 2000, epo_epp, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Ping Pong (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) CONS( 2000, epo_eppk, epo_epp, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD / Sonokong", "Real Ping Pong (Korea)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -// Excite Ping Pong 2 is from 2003, and there's a 3rd game from 2006 also +// Excite Ping Pong 2 is from 2003 CONS( 2006, epo_epp3, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Challenge Ai-chan! Excite Ping Pong (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) @@ -2336,226 +2025,5 @@ CONS( 2002, gcslottv, 0, 0, xavix_cart_gcslottv, gcslottv, xavix_cart_gcslottv_state, init_xavix, "Takara / Sammy / DCT / SSD Company LTD", "Gachinko Contest! Slot machine TV (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*|MACHINE_IS_BIOS_ROOT*/ ) - - // Let’s!TVプレイ 超にんきスポット!ころがしほーだい たまごっちりぞーと (Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort) (only on the Japanese list? http://test.shinsedai.co.jp/english/products/Applied/list.html ) This also allows you to use an IR reciever to import a Tamagotchi from compatible games CONS( 2006, ltv_tam, 0, 0, xavix_i2c_24lc04_tam, ltv_tam,xavix_i2c_ltv_tam_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) - - -/* SuperXaviX(?) (XaviX 2000 type CPU) hardware titles (2nd XaviX generation?) - - these use the SSD 2000 NEC 85605-621 type CPU - - XavixPort Golf is "SSD 2003 SuperXaviX MXIC 2003 3009" (not dumped yet, but actually marked as SuperXaviX unlike the others!) - - This CPU type adds extra opcodes that don't appear to be present in the 97/98 types - It does not appear to support the bitmap modes or 16-bit ROMs found in the 2002 type -*/ - -ROM_START( epo_sdb ) - ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) - ROM_LOAD("superdashball.bin", 0x000000, 0x400000, CRC(a004a764) SHA1(47a96822d4d7d6a0f6be5cd729c3747dbab65979) ) -ROM_END - -ROM_START( epo_ebox ) - ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) - ROM_LOAD("exciteboxing.bin", 0x000000, 0x400000, CRC(e25ae4f5) SHA1(7f7b613f0ab8f43f5cad0d13de538921e77cae9c) ) -ROM_END - -ROM_START( ttv_sw ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "jedi.bin", 0x000000, 0x800000, CRC(51cae5fd) SHA1(1ed8d556f31b4182259ca8c766d60c824d8d9744) ) -ROM_END - -ROM_START( ttv_lotr ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "lotr.bin", 0x000000, 0x800000, CRC(a034ecd5) SHA1(264a9d4327af0a075841ad6129db67d82cf741f1) ) -ROM_END - -ROM_START( ttv_mx ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "mxdirtrebel.bin", 0x000000, 0x800000, CRC(e64bf1a1) SHA1(137f97d7d857697a13e0c8984509994dc7bc5fc5) ) -ROM_END - -ROM_START( drgqst ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "dragonquest.bin", 0x000000, 0x800000, CRC(3d24413f) SHA1(1677e81cedcf349de7bf091a232dc82c6424efba) ) -ROM_END - -ROM_START( ban_onep ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00) - ROM_LOAD("onepiece.bin", 0x000000, 0x800000, CRC(c5cb5a5f) SHA1(db85f6cc48d77c5a4967b9b8e2999167e3dfc8c8) ) -ROM_END - - -CONS( 2002, epo_ebox, 0, 0, xavix2000_nv, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Boxing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // doesn't use XaviX2000 extra opcodes, but had that type of CPU - // die not confirmed, but uses extra opcodes. (hangs on title screen due to combination of freq_timer_done nested interrupts tripping, and waiting on bits in input ports to change -CONS( 2002, epo_bowl, 0, 0, xavix2000_i2c_24c02, epo_bowl, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Bowling (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) - -CONS( 2004, epo_sdb, 0, 0, xavix2000_nv_sdb, epo_sdb, xavix_2000_nv_sdb_state, init_xavix, "Epoch / SSD Company LTD", "Super Dash Ball (Japan)", MACHINE_IMPERFECT_SOUND ) - -CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Lord Of The Rings - Warrior of Middle-Earth", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_i2c_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_IMPERFECT_SOUND ) -CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) - -// hangs after starting a game, or after quite a long time in attract mode (first problem could be bad save data read with the eeprom code, 2nd problem might just be how it is, ends up in a dead loop, not executing invalid code, idle timeout / battery saver) -CONS( 2004, ban_onep, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Bandai / SSD Company LTD", "One Piece Punch Battle (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) - -/* SuperXaviX (XaviX 2002 type CPU) hardware titles (3rd XaviX generation?) - - these use the SSD 2002 NEC 85054-611 type CPU - differences include support for 16-bit ROMs, various bitmap modes, interlace screen modes etc. - possibly higher horizontal resolution for bitmap layers with others scaled to fit? - -*/ - -/* The 'XaviXPORT' isn't a real console, more of a TV adapter, all the actual hardware (CPU including video hw, sound hw) is in the cartridges and controllers - and can vary between games, see notes at top of driver. - - The 'Domyos Interactive System (DiS)' released in France by Decathlon appears to be identical to XaviXPORT (but for PAL regions, and with an entirely different software range) -*/ - -// XaviXPORT -ROM_START( xavtenni ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "xavixtennis.bin", 0x000000, 0x800000, CRC(23a1d918) SHA1(2241c59e8ea8328013e55952ebf9060ea0a4675b) ) -ROM_END - -ROM_START( xavbaseb ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "xpbaseball.bin", 0x000000, 0x800000, CRC(e9ed692d) SHA1(537e390e972156dc7da66ee127ae4c8052038ee5) ) -ROM_END - -ROM_START( xavbowl ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "xpbowling.bin", 0x000000, 0x800000, CRC(2873460b) SHA1(ea8e2392f5a12961a23eb66dca8e07dec81ce8c8) ) -ROM_END - -ROM_START( xavbassf ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "xpbassfishing.bin", 0x000000, 0x800000, CRC(09ab2f29) SHA1(616254176315d0947002e9ae5a6371a3ffa2e8eb) ) - - // code for the nRF24E1s, stored in SEEPROMs. One in the cartridge, one in the rod/reel - ROM_REGION( 0x1001, "reel_io", ROMREGION_ERASE00 ) - ROM_LOAD( "xpbassfishingnrf24e1reel.bin", 0x0000, 0x1001, CRC(cfbb19ae) SHA1(32464e4e4be33fdbc7768311f93ce437a316c616) ) - - ROM_REGION( 0x800000, "base_io", ROMREGION_ERASE00 ) - ROM_LOAD( "xpbassfishingnrf24e1cart.bin", 0x0000, 0x1001, CRC(62f6303e) SHA1(126b2663e252fb80948f53153e4046e63dd8be32) ) -ROM_END - -ROM_START( xavbox ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "xpboxing.bin", 0x000000, 0x800000, CRC(b61e7717) SHA1(162b9c53ac8c9d7b6972db44f7bc1cb0a7837b70) ) -ROM_END - -// Several of the XaviXport and DiS games are 2 glob setups (and must have some kind of banking) - -ROM_START( xavjmat ) - ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(1420640d) SHA1(dd714cd57cff885293688f74f69b5c1726e20ec0) ) - - ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) - ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(52dc318c) SHA1(dc50e0747ba29cfb1048fd4a55d26870086c869b) ) -ROM_END - -// currently copies the wrong code into RAM to execute (due to extended ROM size, and possible banking) -// [:] ':maincpu' (00E074): rom_dmatrg_w (do DMA?) 01 -// [:] (possible DMA op SRC 00ebe2d3 DST 358a LEN 0398) -// needs to come from 006be2d3 (so still from lower 8MB, not upper 8MB) - -ROM_START( xavmusic ) - ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(e7c8ad59) SHA1(d47fac8b480de4db88a1b306ff8830a65d1738a3) ) - - ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) - ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(977c956f) SHA1(debc086d0cf6c391002ad163e7bfaa2f010cc8f5) ) -ROM_END - - -// Domyos DiS (XaviX 2002 based titles) -ROM_START( domfitex ) - ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(841fe3cd) SHA1(8678b8a0c5198b24169a84dbe3ae979bb0838f23) ) - - ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) - ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(1dc844ea) SHA1(c23da9006227f7fe4982998c17759d403a47472a) ) -ROM_END - -ROM_START( domfitch ) - ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(0ff2a7a6) SHA1(9b924cc4330e3f8d9204390854048fe2325bfdf7) ) - - ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) - ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(284583f6) SHA1(bd2d5304f1e01eed656b5de957ec0a0330a3d969) ) -ROM_END - -ROM_START( domdance ) - ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(74f9499d) SHA1(a64235075e32567cd6d2ab7b1284efcb8e7538e2) ) - - ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) - ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(e437565c) SHA1(f6db219ea14404b698ca453f6e50c726b2e77abb) ) -ROM_END - -ROM_START( domstepc ) - ROM_REGION( 0x0800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "u2", 0x0000000, 0x0800000, CRC(cb37b5e9) SHA1(b742e3db98f36720adf5af9096c6bc235279de12) ) - - ROM_REGION( 0x0800000, "biosu3", ROMREGION_ERASE00 ) - ROM_LOAD( "u3", 0x0000000, 0x0800000, CRC(dadaa744) SHA1(fd7ca77232a8fe228fc93b0a8a47ba3260349d90) ) -ROM_END - -ROM_START( mrangbat ) - ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) - ROM_LOAD("powerrangerspad.bin", 0x000000, 0x400000, CRC(d3a98775) SHA1(485c66242dd0ee436a278d23005aece48d606431) ) -ROM_END - -ROM_START( tmy_thom ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) - ROM_LOAD( "thomastank.bin", 0x000000, 0x800000, CRC(a52a23be) SHA1(e5b3500239d9e56eb5405f7585982959e5a162da) ) -ROM_END - -ROM_START( epo_tfit ) - ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) - ROM_LOAD("tennisfitness.bin", 0x000000, 0x400000, CRC(cbf65bd2) SHA1(30b3da6f061b2dd91679db42a050f715901beb87) ) -ROM_END - - -CONS( 2004, xavtenni, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "SSD Company LTD", "XaviX Tennis (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 2004, xavbaseb, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "SSD Company LTD", "XaviX Baseball (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 2004, xavbowl, 0, 0, xavix2002_i2c_24c04, xavix_bowl, xavix_i2c_bowl_state, init_xavix, "SSD Company LTD", "XaviX Bowling (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // has IR 'Camera' -CONS( 2004, xavbox, 0, 0, xavix2002_i2c_jmat, xavix, xavix_i2c_jmat_state, init_xavix, "SSD Company LTD", "XaviX Boxing (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // has IR 'Camera' -// Bass Fishing PCB is just like Tennis except with an RF daughterboard. -CONS( 2004, xavbassf, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "SSD Company LTD", "XaviX Bass Fishing (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -// TODO: check SEEPROM type and hookup, banking! -CONS( 2005, xavjmat, 0, 0, xavix2002_i2c_jmat, xavix, xavix_i2c_jmat_state, init_xavix, "SSD Company LTD", "Jackie Chan J-Mat Fitness (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 2007, xavmusic, 0, 0, xavix2002_i2c_jmat, xavix, xavix_i2c_jmat_state, init_xavix, "SSD Company LTD", "XaviX Music & Circuit (XaviXPORT)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -// https://arnaudmeyer.wordpress.com/domyos-interactive-system/ -// Domyos Fitness Adventure -// Domyos Fitness Challenge -// Domyos Fitness Exercises -// Domyos Fit Race -// Domyos Soft Fitness -// Domyos Fitness Dance -// Domyos Fitness Play -// Domyos Fitness Training - -// Domyos Bike Concept (not listed on site above) - -// Has SEEPROM and an RTC. Exercise has some leftover PC buffer stuff. (TODO, check SEEPROM type, RTC type, banking) (both Exercises and Challenge are identical PCBs) -CONS( 2008, domfitex, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Exercises (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 2008, domfitch, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Challenge (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 2007, domdance, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Fitness Dance (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -CONS( 2007, domstepc, 0, 0, xavix2002_i2c_jmat, xavixp, xavix_i2c_jmat_state, init_xavix, "Decathlon / SSD Company LTD", "Domyos Step Concept (Domyos Interactive System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -// some DIS games run on XaviX 2 instead, see xavix2.cpp for Domyos Fitness Adventure and Domyos Bike Concept - -CONS( 2005, mrangbat, 0, 0, xavix2002_i2c_mrangbat, mrangbat, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Mahou Taiketsu Magiranger - Magimat de Dance & Battle (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -CONS( 2004, epo_tfit, 0, 0, xavix2002_i2c_24c04, epo_tfit, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Sports Tennis x Fitness (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // Epoch Tennis and Fitness has 24LC04 - -// TODO: does it have an SEEPROM? why does it hang? full title? -CONS( 2005, tmy_thom, 0, 0, xavix2002_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "Tomy / SSD Company LTD", "Thomas and Friends (Tomy)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/z80ne.cpp mame-0.224+dfsg.1/src/mame/drivers/z80ne.cpp --- mame-0.223+dfsg.1/src/mame/drivers/z80ne.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/z80ne.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -87,8 +87,36 @@ 9000-9FFF EPROM EPROM to be written 8400-8FFF EPROM firmware +Quick Instructions: + Z80NE: + - Use 0-F to enter an address (or use mouse in artwork) + - Hold CTRL press 0 to show data at that address (CTRL cannot be held with mouse) + - Use 0-F to enter data + - CTRL 0 to advance to next address + - CTRL 2 to view/change CPU registers + - CTRL 0 change register, advance to next + Z80NET + - In Machine Configuration, select your preferred baud rate, and reboot machine. + - CTRL 6 to load a tape, press A or B to choose tape device, choose Play. + - After this, click any key, enter 1000, CTRL 4 to run. + - CTRL 5 to save + - All tapes in software list (except bioritmi & tapebas) are BASIC programs. + - To use tapebas, load side 1 in the normal way, run it, select side 2 for cas 0, play, the rest loads + - The Basic is bilingual - ENG for English, ITA for Italian, so enter ENG. + - Then for any Basic program in software list: CLOAD hit Play RUN + Z80NETB + - BASIC-only, English only. A version of TRS80 Level II Basic. Not compatible with software list. + Z80NETF + - There is a choice of 5 bioses, via the Machine Configuration menu + - EP382: same as Z80NET. + - EP548: same as Z80NETB. + - EP390: for swlist-item "basic55k". Press B, from the menu select 2, runs. Type ENG for English. + It can load and run tapes from the swlist, although it seems to often have load errors. + - EP1390: requires a floppy to boot from. Disks marked as NE-DOS 1.5 should work. + - EP2390: uses ports 8x, not emulated, not working. For NE-DOS G.1 -******************************************************************************/ + +*********************************************************************************************************/ /* Core includes */ #include "emu.h" @@ -113,25 +141,22 @@ /* LX.382 CPU Board RAM */ /* LX.382 CPU Board EPROM */ -void z80ne_state::main_mem(address_map &map) +void z80ne_state::mem_map(address_map &map) { - map(0x0000, 0x03ff).bankrw("bank1"); - map(0x0400, 0x7fff).ram(); - map(0x8000, 0x83ff).bankr("bank2"); - map(0x8400, 0xffff).nopr().nopw(); + map(0x0000, 0x7fff).ram().share("mainram"); + map(0x8000, 0x83ff).rom().region("maincpu",0); } -void z80net_state::main_mem(address_map &map) +void z80net_state::mem_map(address_map &map) { - map(0x0000, 0x03ff).bankrw("bank1"); - map(0x0400, 0x7fff).ram(); - map(0x8000, 0x83ff).bankr("bank2"); + map(0x0000, 0x7fff).ram().share("mainram"); + map(0x8000, 0x83ff).rom().region("maincpu",0); map(0x8400, 0xebff).ram(); map(0xec00, 0xedff).ram().share("videoram"); /* (6847) */ map(0xee00, 0xffff).ram(); } -void z80netb_state::main_mem(address_map &map) +void z80netb_state::mem_map(address_map &map) { map(0x0000, 0x3fff).rom(); map(0x4000, 0xebff).ram(); @@ -139,7 +164,7 @@ map(0xee00, 0xffff).ram(); } -void z80ne_state::main_io(address_map &map) +void z80ne_state::io_map(address_map &map) { map.global_mask(0xff); map(0xee, 0xee).rw(m_uart, FUNC(ay31015_device::receive), FUNC(ay31015_device::transmit)); @@ -147,7 +172,7 @@ map(0xf0, 0xff).rw(FUNC(z80ne_state::lx383_r), FUNC(z80ne_state::lx383_w)); } -void z80net_state::main_io(address_map &map) +void z80net_state::io_map(address_map &map) { map.global_mask(0xff); map(0xea, 0xea).r(FUNC(z80net_state::lx387_data_r)); @@ -157,21 +182,18 @@ map(0xf0, 0xff).rw(FUNC(z80net_state::lx383_r), FUNC(z80net_state::lx383_w)); } -void z80netf_state::main_mem(address_map &map) +void z80netf_state::mem_map(address_map &map) { map(0x0000, 0x03ff).bankrw("bank1"); map(0x0400, 0x3fff).bankrw("bank2"); map(0x4000, 0x7fff).ram(); map(0x8000, 0x83ff).bankrw("bank3"); map(0x8400, 0xdfff).ram(); - map(0xe000, 0xebff).nopr().nopw(); map(0xec00, 0xedff).ram().share("videoram"); /* (6847) */ - map(0xee00, 0xefff).nopr().nopw(); map(0xf000, 0xf3ff).bankrw("bank4"); - map(0xf400, 0xffff).nopr().nopw(); } -void z80netf_state::main_io(address_map &map) +void z80netf_state::io_map(address_map &map) { map.global_mask(0xff); map(0xd0, 0xd7).rw(FUNC(z80netf_state::lx390_fdc_r), FUNC(z80netf_state::lx390_fdc_w)); @@ -195,30 +217,30 @@ * In natural mode the CTRL key is mapped on shift */ PORT_START("ROW0") /* IN0 keys row 0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 0") PORT_CODE(KEYCODE_0) //PORT_CHAR('0') PORT_CHAR('=') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 1") PORT_CODE(KEYCODE_1) //PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 2") PORT_CODE(KEYCODE_2) //PORT_CHAR('2') PORT_CHAR('"') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 3") PORT_CODE(KEYCODE_3) //PORT_CHAR('3') PORT_CHAR(0x00a3) // ?? - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 4") PORT_CODE(KEYCODE_4) //PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 5") PORT_CODE(KEYCODE_5) //PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 6") PORT_CODE(KEYCODE_6) //PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 7") PORT_CODE(KEYCODE_7) //PORT_CHAR('7') PORT_CHAR('/') + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') // set address, increment + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('-') // ? + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('R') // registers + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('T') // single-step + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('X') // go + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('L') // load + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('S') // save + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('K') // reserved for future expansion PORT_START("ROW1") /* IN1 keys row 1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 8") PORT_CODE(KEYCODE_8) //PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 9") PORT_CODE(KEYCODE_9) //PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 A") PORT_CODE(KEYCODE_A) //PORT_CHAR('a') PORT_CHAR('A') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 B") PORT_CODE(KEYCODE_B) //PORT_CHAR('b') PORT_CHAR('B') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 C") PORT_CODE(KEYCODE_C) //PORT_CHAR('c') PORT_CHAR('C') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 D") PORT_CODE(KEYCODE_D) //PORT_CHAR('d') PORT_CHAR('D') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 E") PORT_CODE(KEYCODE_E) //PORT_CHAR('e') PORT_CHAR('E') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 F") PORT_CODE(KEYCODE_F) //PORT_CHAR('f') PORT_CHAR('F') + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_START("CTRL") /* CONTROL key */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) //PORT_CHAR(UCHAR_SHIFT_1) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -227,7 +249,7 @@ PORT_START("RST") /* RESET key */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LX.384 Reset") PORT_CODE(KEYCODE_F3) PORT_CHANGED_MEMBER(DEVICE_SELF, z80ne_state, z80ne_reset, 0) - /* Settings */ + /* Settings - need to reboot after altering these */ PORT_START("LX.385") PORT_CONFNAME(0x07, 0x04, "LX.385 Cassette: P1,P3 Data Rate") PORT_CONFSETTING( 0x01, "A-B: 300 bps") @@ -246,7 +268,7 @@ /* LX.387 Keyboard BREAK key */ PORT_START("LX387_BRK") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Break") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_CHANGED_MEMBER(DEVICE_SELF, z80net_state, z80net_nmi, 0) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Break") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END)) PORT_CHANGED_MEMBER(DEVICE_SELF, z80net_state, z80net_nmi, 0) /* LX.387 Keyboard (Encoded by KR2376) */ @@ -419,8 +441,8 @@ { /* basic machine hardware */ Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); - m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::main_mem); - m_maincpu->set_addrmap(AS_IO, &z80ne_state::main_io); + m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &z80ne_state::io_map); AY31015(config, m_uart); @@ -442,9 +464,6 @@ config.set_default_layout(layout_z80ne); - /* internal ram */ - RAM(config, m_ram).set_default_size("32K"); - // all known tapes require LX.388 expansion //SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); } @@ -468,8 +487,8 @@ { z80ne(config); - m_maincpu->set_addrmap(AS_PROGRAM, &z80net_state::main_mem); - m_maincpu->set_addrmap(AS_IO, &z80net_state::main_io); + m_maincpu->set_addrmap(AS_PROGRAM, &z80net_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &z80net_state::io_map); lx387(config); @@ -484,9 +503,6 @@ config.set_default_layout(layout_z80net); - /* internal ram */ - m_ram->set_default_size("32K").set_extra_options("1K"); - SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); } @@ -494,8 +510,8 @@ { /* basic machine hardware */ Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); - m_maincpu->set_addrmap(AS_PROGRAM, &z80netb_state::main_mem); - m_maincpu->set_addrmap(AS_IO, &z80netb_state::main_io); + m_maincpu->set_addrmap(AS_PROGRAM, &z80netb_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &z80netb_state::io_map); AY31015(config, m_uart); @@ -528,18 +544,16 @@ config.set_default_layout(layout_z80netb); - /* internal ram */ - RAM(config, m_ram).set_default_size("32K").set_extra_options("1K"); - - SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); + // none of the software is compatible + //SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); } void z80netf_state::z80netf(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); - m_maincpu->set_addrmap(AS_PROGRAM, &z80netf_state::main_mem); - m_maincpu->set_addrmap(AS_IO, &z80netf_state::main_io); + m_maincpu->set_addrmap(AS_PROGRAM, &z80netf_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &z80netf_state::io_map); AY31015(config, m_uart); @@ -579,7 +593,7 @@ config.set_default_layout(layout_z80netf); /* internal ram */ - RAM(config, m_ram).set_default_size("56K"); + RAM(config, m_ram).set_default_size("56K").set_default_value(0x00); SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); SOFTWARE_LIST(config, "flop_list").set_original("z80ne_flop"); @@ -591,20 +605,20 @@ ROM_START( z80ne ) - ROM_REGION(0x20000, "z80ne", 0) - ROM_LOAD( "ep382.ic5", 0x14000, 0x0400, CRC(55818366) SHA1(adcac04b83c09265517b7bafbc2f5f665d751bec) ) + ROM_REGION(0x0400, "maincpu", 0) + ROM_LOAD( "ep382.ic5", 0x0000, 0x0400, CRC(55818366) SHA1(adcac04b83c09265517b7bafbc2f5f665d751bec) ) ROM_END ROM_START( z80net ) - ROM_REGION(0x20000, "z80ne", 0) - ROM_LOAD( "ep382.ic5", 0x14000, 0x0400, CRC(55818366) SHA1(adcac04b83c09265517b7bafbc2f5f665d751bec) ) + ROM_REGION(0x0400, "maincpu", 0) + ROM_LOAD( "ep382.ic5", 0x0000, 0x0400, CRC(55818366) SHA1(adcac04b83c09265517b7bafbc2f5f665d751bec) ) ROM_END ROM_START( z80netb ) /* * 16k Basic */ - ROM_REGION(0x10000, "z80ne", 0) + ROM_REGION(0x4000, "maincpu", 0) ROM_LOAD( "548-1.ic1", 0x0000, 0x0800, CRC(868cad39) SHA1(0ea8af010786a080f823a879a4211f5712d260da) ) ROM_LOAD( "548-2.ic2", 0x0800, 0x0800, CRC(ac297d99) SHA1(ccf31d3f9d02c3b68a0ee3be4984424df0e83ab0) ) ROM_LOAD( "548-3.ic3", 0x1000, 0x0800, CRC(9c1fe511) SHA1(ff5b6e49a137c2ff9cb760c39bfd85ce4b52bb7d) ) @@ -616,30 +630,29 @@ ROM_END ROM_START( z80netf ) - ROM_REGION(0x20000, "z80ne", 0) /* 64k for code 64k for banked code */ + ROM_REGION(0x5000, "maincpu", 0) /* ep548 banked at 0x0000 - 0x3FFF */ - ROM_LOAD( "548-1.ic1", 0x10000, 0x0800, CRC(868cad39) SHA1(0ea8af010786a080f823a879a4211f5712d260da) ) - ROM_LOAD( "548-2.ic2", 0x10800, 0x0800, CRC(ac297d99) SHA1(ccf31d3f9d02c3b68a0ee3be4984424df0e83ab0) ) - ROM_LOAD( "548-3.ic3", 0x11000, 0x0800, CRC(9c1fe511) SHA1(ff5b6e49a137c2ff9cb760c39bfd85ce4b52bb7d) ) - ROM_LOAD( "548-4.ic4", 0x11800, 0x0800, CRC(cb5e0de3) SHA1(0beaa8927faaf61f6c3fc0ea1d3d5670f901aae3) ) - ROM_LOAD( "548-5.ic5", 0x12000, 0x0800, CRC(0bd4559c) SHA1(e736a3124819ffb43e96a8114cd188f18d538053) ) - ROM_LOAD( "548-6.ic6", 0x12800, 0x0800, CRC(6d663034) SHA1(57588be4e360658dbb313946d7a608e36c1fdd68) ) - ROM_LOAD( "548-7.ic7", 0x13000, 0x0800, CRC(0bab06c0) SHA1(d52f1519c798e91f25648e996b1db174d90ce0f5) ) - ROM_LOAD( "548-8.ic8", 0x13800, 0x0800, CRC(f381b594) SHA1(2de7a8941ba48d463974c73d62e994d3cbe2868d) ) - - /* ep382 - banked at 0x0000 - 0x03FF */ - ROM_LOAD( "ep382.ic5", 0x14000, 0x0400, CRC(55818366) SHA1(adcac04b83c09265517b7bafbc2f5f665d751bec) ) - - /* ep390 - banked at 0x0000 - 0x03FF */ - ROM_LOAD( "ep390.ic6", 0x14400, 0x0400, CRC(e4dd7de9) SHA1(523caa97112a9e67cc078c1a70ceee94ec232093) ) - /* ep1390 - banked at 0x0000 - 0x03FF */ - ROM_LOAD( "ep1390.ic6", 0x14800, 0x0400, CRC(dc2cbc1d) SHA1(e23418b8f8261a17892f3a73ec09c72bb02e1d0b) ) - /* ep2390 - banked at 0x0000 - 0x03FF */ - ROM_LOAD( "ep2390.ic6", 0x14C00, 0x0400, CRC(28d28eee) SHA1(b80f75c1ac4905ae369ecbc9b9ce120cc85502ed) ) + ROM_LOAD( "548-1.ic1", 0x0000, 0x0800, CRC(868cad39) SHA1(0ea8af010786a080f823a879a4211f5712d260da) ) + ROM_LOAD( "548-2.ic2", 0x0800, 0x0800, CRC(ac297d99) SHA1(ccf31d3f9d02c3b68a0ee3be4984424df0e83ab0) ) + ROM_LOAD( "548-3.ic3", 0x1000, 0x0800, CRC(9c1fe511) SHA1(ff5b6e49a137c2ff9cb760c39bfd85ce4b52bb7d) ) + ROM_LOAD( "548-4.ic4", 0x1800, 0x0800, CRC(cb5e0de3) SHA1(0beaa8927faaf61f6c3fc0ea1d3d5670f901aae3) ) + ROM_LOAD( "548-5.ic5", 0x2000, 0x0800, CRC(0bd4559c) SHA1(e736a3124819ffb43e96a8114cd188f18d538053) ) + ROM_LOAD( "548-6.ic6", 0x2800, 0x0800, CRC(6d663034) SHA1(57588be4e360658dbb313946d7a608e36c1fdd68) ) + ROM_LOAD( "548-7.ic7", 0x3000, 0x0800, CRC(0bab06c0) SHA1(d52f1519c798e91f25648e996b1db174d90ce0f5) ) + ROM_LOAD( "548-8.ic8", 0x3800, 0x0800, CRC(f381b594) SHA1(2de7a8941ba48d463974c73d62e994d3cbe2868d) ) + + /* ep382 - 8000 */ + ROM_LOAD( "ep382.ic5", 0x4000, 0x0400, CRC(55818366) SHA1(adcac04b83c09265517b7bafbc2f5f665d751bec) ) + /* ep390 - F000 */ + ROM_LOAD( "ep390.ic6", 0x4400, 0x0400, CRC(e4dd7de9) SHA1(523caa97112a9e67cc078c1a70ceee94ec232093) ) + /* ep1390 - F000 */ + ROM_LOAD( "ep1390.ic6", 0x4800, 0x0400, CRC(dc2cbc1d) SHA1(e23418b8f8261a17892f3a73ec09c72bb02e1d0b) ) + /* ep2390 - F000 */ + ROM_LOAD( "ep2390.ic6", 0x4C00, 0x0400, CRC(28d28eee) SHA1(b80f75c1ac4905ae369ecbc9b9ce120cc85502ed) ) ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1980, z80ne, 0, 0, z80ne, z80ne, z80ne_state, empty_init, "Nuova Elettronica", "Z80NE", MACHINE_NO_SOUND_HW) -COMP( 1980, z80net, z80ne, 0, z80net, z80net, z80net_state, empty_init, "Nuova Elettronica", "Z80NE + LX.388", MACHINE_NO_SOUND_HW) -COMP( 1980, z80netb, z80ne, 0, z80netb, z80net, z80netb_state, empty_init, "Nuova Elettronica", "Z80NE + LX.388 + Basic 16k", MACHINE_NO_SOUND_HW) -COMP( 1980, z80netf, z80ne, 0, z80netf, z80netf, z80netf_state, empty_init, "Nuova Elettronica", "Z80NE + LX.388 + LX.390", MACHINE_NO_SOUND_HW) +COMP( 1980, z80ne, 0, 0, z80ne, z80ne, z80ne_state, init_z80ne, "Nuova Elettronica", "Z80NE", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +COMP( 1980, z80net, z80ne, 0, z80net, z80net, z80net_state, init_z80ne, "Nuova Elettronica", "Z80NE + LX.388", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +COMP( 1980, z80netb, z80ne, 0, z80netb, z80net, z80netb_state, init_z80ne, "Nuova Elettronica", "Z80NE + LX.388 + Basic 16k", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +COMP( 1980, z80netf, z80ne, 0, z80netf, z80netf, z80netf_state, empty_init, "Nuova Elettronica", "Z80NE + LX.388 + LX.390", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff -Nru mame-0.223+dfsg.1/src/mame/drivers/zaxxon.cpp mame-0.224+dfsg.1/src/mame/drivers/zaxxon.cpp --- mame-0.223+dfsg.1/src/mame/drivers/zaxxon.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/drivers/zaxxon.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -255,7 +255,7 @@ #include "emu.h" #include "includes/zaxxon.h" -#include "audio/segasnd.h" +#include "audio/segausb.h" #include "cpu/z80/z80.h" #include "machine/gen_latch.h" diff -Nru mame-0.223+dfsg.1/src/mame/includes/abc1600.h mame-0.224+dfsg.1/src/mame/includes/abc1600.h --- mame-0.223+dfsg.1/src/mame/includes/abc1600.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/abc1600.h 2020-08-26 08:57:19.000000000 +0000 @@ -62,6 +62,7 @@ abc1600_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, MC68008P8_TAG), + m_mac(*this, ABC1600_MAC_TAG), m_dma0(*this, Z8410AB1_0_TAG), m_dma1(*this, Z8410AB1_1_TAG), m_dma2(*this, Z8410AB1_2_TAG), @@ -82,6 +83,7 @@ { } required_device m_maincpu; + required_device m_mac; required_device m_dma0; required_device m_dma1; required_device m_dma2; @@ -115,7 +117,11 @@ void fw1_w(uint8_t data); void spec_contr_reg_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER( dbrq_w ); + void dbrq_w(int state); + uint8_t dma0_iorq_r(offs_t offset) { return m_sysfs ? m_mac->dma0_iorq_r(offset) : (m_bus0i->read_tren() & m_bus0x->read_tren()); } + void dma0_iorq_w(offs_t offset, uint8_t data) { if (m_sysfs) m_mac->dma0_iorq_w(offset, data); else { m_bus0i->write_tren(data); m_bus0x->write_tren(data); }; } + uint8_t dma1_iorq_r(offs_t offset) { return m_sysscc ? m_mac->dma1_iorq_r(offset) : m_bus1->read_tren(); } + void dma1_iorq_w(offs_t offset, uint8_t data) { if (m_sysscc) m_mac->dma1_iorq_w(offset, data); else m_bus1->write_tren(data); } uint8_t cio_pa_r(); uint8_t cio_pb_r(); @@ -123,15 +129,18 @@ uint8_t cio_pc_r(); void cio_pc_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER( nmi_w ); + void nmi_w(int state); void cpu_space_map(address_map &map); - DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); - - void update_drdy0(); - void update_drdy1(); - void update_drdy2(); + void update_pren0(int state); + void update_pren1(int state); + void update_drdy0(int state); + void update_drdy1(int state); + void sccrq_a_w(int state) { m_sccrq_a = state; update_drdy1(0); } + void sccrq_b_w(int state) { m_sccrq_b = state; update_drdy1(0); } + void dart_irq_w(int state) { m_dart_irq = state; m_maincpu->set_input_line(M68K_IRQ_5, (m_dart_irq || m_scc_irq) ? ASSERT_LINE : CLEAR_LINE); } + void scc_irq_w(int state) { m_scc_irq = state; m_maincpu->set_input_line(M68K_IRQ_5, (m_dart_irq || m_scc_irq) ? ASSERT_LINE : CLEAR_LINE); } // DMA int m_dmadis; @@ -149,6 +158,10 @@ uint8_t m_csb; // card select int m_atce; // V.24 channel A external clock enable int m_btce; // V.24 channel B external clock enable + bool m_sccrq_a; + bool m_sccrq_b; + int m_dart_irq; + int m_scc_irq; }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/atom.h mame-0.224+dfsg.1/src/mame/includes/atom.h --- mame-0.223+dfsg.1/src/mame/includes/atom.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/atom.h 2020-08-26 08:57:19.000000000 +0000 @@ -33,7 +33,6 @@ #define R6522_TAG "ic1" #define I8271_TAG "ic13" #define MC6854_TAG "econet_ic1" -#define SCREEN_TAG "screen" #define CENTRONICS_TAG "centronics" #define BASERAM_TAG "baseram" @@ -45,29 +44,26 @@ { public: atom_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, SY6502_TAG), - m_vdg(*this, MC6847_TAG), - m_cassette(*this, "cassette"), - m_fdc(*this, I8271_TAG), - m_centronics(*this, CENTRONICS_TAG), - m_speaker(*this, "speaker"), - m_cart(*this, "cartslot"), - m_y0(*this, "Y0"), - m_y1(*this, "Y1"), - m_y2(*this, "Y2"), - m_y3(*this, "Y3"), - m_y4(*this, "Y4"), - m_y5(*this, "Y5"), - m_y6(*this, "Y6"), - m_y7(*this, "Y7"), - m_y8(*this, "Y8"), - m_y9(*this, "Y9"), - m_y10(*this, "Y10"), - m_rpt(*this, "RPT"), - m_video_ram(*this, "video_ram") + : driver_device(mconfig, type, tag) + , m_maincpu(*this, SY6502_TAG) + , m_vdg(*this, MC6847_TAG) + , m_cassette(*this, "cassette") + , m_fdc(*this, I8271_TAG) + , m_centronics(*this, CENTRONICS_TAG) + , m_speaker(*this, "speaker") + , m_cart(*this, "cartslot") + , m_vram(*this, "videoram") + , m_io_keyboard(*this, "Y%u", 0U) + , m_ppi(*this, INS8255_TAG) + , m_via(*this, R6522_TAG) { } + void atombb(machine_config &config); + void atom(machine_config &config); + void atom_common(machine_config &config); + DECLARE_INPUT_CHANGED_MEMBER( trigger_reset ); + +protected: required_device m_maincpu; required_device m_vdg; required_device m_cassette; @@ -75,51 +71,38 @@ required_device m_centronics; required_device m_speaker; optional_device m_cart; - required_ioport m_y0; - required_ioport m_y1; - required_ioport m_y2; - required_ioport m_y3; - required_ioport m_y4; - required_ioport m_y5; - required_ioport m_y6; - required_ioport m_y7; - required_ioport m_y8; - required_ioport m_y9; - required_ioport m_y10; - required_ioport m_rpt; + required_shared_ptr m_vram; + required_ioport_array<12> m_io_keyboard; + required_device m_ppi; + required_device m_via; virtual void machine_start() override; + virtual void machine_reset() override; void ppi_pa_w(uint8_t data); uint8_t ppi_pb_r(); uint8_t ppi_pc_r(); void ppi_pc_w(uint8_t data); uint8_t vdg_videoram_r(offs_t offset); - DECLARE_INPUT_CHANGED_MEMBER( trigger_reset ); DECLARE_WRITE_LINE_MEMBER( atom_8271_interrupt_callback ); DECLARE_WRITE_LINE_MEMBER( motor_w ); - /* video state */ - required_shared_ptr m_video_ram; - /* keyboard state */ - int m_keylatch; + u8 m_keylatch; /* cassette state */ - int m_hz2400; - int m_pc0; - int m_pc1; + bool m_hz2400; + bool m_pc0; + bool m_pc1; /* devices */ - int m_previous_i8271_int_state; + bool m_previous_i8271_int_state; DECLARE_FLOPPY_FORMATS(floppy_formats); - TIMER_DEVICE_CALLBACK_MEMBER(cassette_output_tick); + DECLARE_WRITE_LINE_MEMBER(cassette_output_tick); image_init_result load_cart(device_image_interface &image, generic_slot_device &slot); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load) { return load_cart(image, *m_cart); } DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb); - void atombb(machine_config &config); - void atom(machine_config &config); void atom_mem(address_map &map); void atombb_mem(address_map &map); void prophet_mem(address_map &map); @@ -129,14 +112,18 @@ { public: atomeb_state(const machine_config &mconfig, device_type type, const char *tag) - : atom_state(mconfig, type, tag), - m_ext(*this, "rom_a%x", 0), - m_e0(*this, "rom_e0"), - m_e1(*this, "rom_e1") + : atom_state(mconfig, type, tag) + , m_ext(*this, "rom_a%x", 0) + , m_e0(*this, "rom_e0") + , m_e1(*this, "rom_e1") { } - virtual void machine_start() override; + void atomeb(machine_config &config); + +private: + void machine_start() override; + void machine_reset() override; uint8_t eprom_r(); void eprom_w(uint8_t data); @@ -144,7 +131,7 @@ uint8_t dos_r(offs_t offset); /* eprom state */ - int m_eprom; + u8 m_eprom; required_device_array m_ext; required_device m_e0; @@ -153,7 +140,6 @@ template DECLARE_DEVICE_IMAGE_LOAD_MEMBER(ext_load) { return load_cart(image, *m_ext[I]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(e0_load) { return load_cart(image, *m_e0); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(e1_load) { return load_cart(image, *m_e1); } - void atomeb(machine_config &config); void atomeb_mem(address_map &map); }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/btoads.h mame-0.224+dfsg.1/src/mame/includes/btoads.h --- mame-0.223+dfsg.1/src/mame/includes/btoads.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/btoads.h 2020-08-26 08:57:19.000000000 +0000 @@ -21,13 +21,13 @@ public: btoads_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_vram_fg0(*this, "vram_fg0", 16), - m_vram_fg1(*this, "vram_fg1", 16), - m_vram_fg_data(*this, "vram_fg_data"), - m_vram_bg0(*this, "vram_bg0"), - m_vram_bg1(*this, "vram_bg1"), - m_sprite_scale(*this, "sprite_scale"), - m_sprite_control(*this, "sprite_control"), + m_vram_fg0(*this, "vram_fg0", 32), + m_vram_fg1(*this, "vram_fg1", 32), + m_vram_fg_data(*this, "vram_fg_data", 32), + m_vram_bg0(*this, "vram_bg0", 32), + m_vram_bg1(*this, "vram_bg1", 32), + m_sprite_scale(*this, "sprite_scale", 32), + m_sprite_control(*this, "sprite_control", 32), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_bsmt(*this, "bsmt"), @@ -82,8 +82,11 @@ uint16_t m_sprite_dest_offs; uint16_t m_misc_control; int m_xcount; + std::unique_ptr m_nvram_data; // in drivers/btoads + void nvram_w(offs_t offset, uint8_t data); + uint8_t nvram_r(offs_t offset); void main_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); uint16_t main_sound_r(); void sound_data_w(uint8_t data); @@ -99,8 +102,6 @@ void display_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void scroll0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void scroll1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - void paletteram_w(offs_t offset, uint16_t data); - uint16_t paletteram_r(offs_t offset); void vram_bg0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void vram_bg1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); uint16_t vram_bg0_r(offs_t offset); diff -Nru mame-0.223+dfsg.1/src/mame/includes/carpolo.h mame-0.224+dfsg.1/src/mame/includes/carpolo.h --- mame-0.223+dfsg.1/src/mame/includes/carpolo.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/carpolo.h 2020-08-26 08:57:19.000000000 +0000 @@ -17,6 +17,9 @@ #include "machine/7474.h" #include "machine/74148.h" #include "machine/74153.h" +#include "machine/netlist.h" +#include "netlist/nl_setup.h" +#include "audio/nl_carpolo.h" #include "emupal.h" class carpolo_state : public driver_device @@ -47,6 +50,7 @@ , m_dial(*this, "DIAL%u", 0U) , m_in(*this, "IN%u", 0U) , m_pedals(*this, "PEDALS") + , m_player_crash(*this, "sound_nl:player_crash%u", 1U) { } void init_carpolo(); @@ -151,6 +155,8 @@ int x2, int y2, int code2, int flipy2, int *col_x, int *col_y); void main_map(address_map &map); + + required_device_array m_player_crash; }; #endif // MAME_INCLUDES_CARPOLO_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/cinemat.h mame-0.224+dfsg.1/src/mame/includes/cinemat.h --- mame-0.223+dfsg.1/src/mame/includes/cinemat.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/cinemat.h 2020-08-26 08:57:19.000000000 +0000 @@ -31,12 +31,18 @@ , m_rambase(*this, "rambase") , m_inputs(*this, "INPUTS") , m_switches(*this, "SWITCHES") - , m_gear_input(*this, "GEAR") , m_wheel(*this, "WHEEL") , m_analog_x(*this, "ANALOGX") , m_analog_y(*this, "ANALOGY") , m_led(*this, "led") , m_pressed(*this, "pressed%u", 0U) + , m_coin_detected(0) + , m_coin_last_reset(0) + , m_mux_select(0) + , m_gear(0) + , m_vector_color(255, 255, 255) + , m_lastx(0) + , m_lasty(0) { } required_device m_maincpu; @@ -44,11 +50,10 @@ required_device m_outlatch; required_device m_vector; required_device m_screen; - optional_shared_ptr m_rambase; + optional_shared_ptr m_rambase; required_ioport m_inputs; required_ioport m_switches; - optional_ioport m_gear_input; optional_ioport m_wheel; optional_ioport m_analog_x; optional_ioport m_analog_y; @@ -56,27 +61,27 @@ output_finder<> m_led; output_finder<10> m_pressed; - uint8_t m_coin_detected; - uint8_t m_coin_last_reset; - uint8_t m_mux_select; - int m_gear; + u8 m_coin_detected; + u8 m_coin_last_reset; + u8 m_mux_select; + u8 m_gear; rgb_t m_vector_color; - int16_t m_lastx; - int16_t m_lasty; - uint8_t inputs_r(offs_t offset); - uint8_t switches_r(offs_t offset); - uint8_t coin_input_r(); + s16 m_lastx; + s16 m_lasty; + u8 inputs_r(offs_t offset); + u8 switches_r(offs_t offset); + u8 coin_input_r(); WRITE_LINE_MEMBER(coin_reset_w); WRITE_LINE_MEMBER(mux_select_w); - uint8_t speedfrk_wheel_r(offs_t offset); - uint8_t speedfrk_gear_r(offs_t offset); + u8 speedfrk_wheel_r(offs_t offset); + u8 speedfrk_gear_r(offs_t offset); virtual DECLARE_WRITE_LINE_MEMBER(vector_control_w); - uint8_t joystick_read(); + u8 joystick_read(); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); void init_speedfrk(); - uint32_t screen_update_cinemat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - void cinemat_vector_callback(int16_t sx, int16_t sy, int16_t ex, int16_t ey, uint8_t shift); + u32 screen_update_cinemat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + u32 screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + void cinemat_vector_callback(s16 sx, s16 sy, s16 ex, s16 ey, u8 shift); void ripoff(machine_config &config); void wotw(machine_config &config); void speedfrk(machine_config &config); @@ -88,6 +93,18 @@ void barrier(machine_config &config); void armora(machine_config &config); + template + DECLARE_WRITE_LINE_MEMBER(speedfrk_gear_change_w) + { + if (state) + m_gear = Index; + } + + ioport_value speedfrk_gear_number_r() + { + return m_gear; + } + protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -121,7 +138,7 @@ protected: virtual DECLARE_WRITE_LINE_MEMBER(vector_control_w) override; - uint8_t sundance_inputs_r(offs_t offset); + u8 sundance_inputs_r(offs_t offset); }; @@ -151,7 +168,7 @@ protected: virtual DECLARE_WRITE_LINE_MEMBER(vector_control_w) override; - uint8_t boxingb_dial_r(offs_t offset); + u8 boxingb_dial_r(offs_t offset); }; @@ -165,10 +182,10 @@ protected: TIMER_CALLBACK_MEMBER(synced_sound_w); DECLARE_WRITE_LINE_MEMBER(demon_sound4_w); - uint8_t sound_porta_r(); - uint8_t sound_portb_r(); - void sound_portb_w(uint8_t data); - void sound_output_w(uint8_t data); + u8 sound_porta_r(); + u8 sound_portb_r(); + void sound_portb_w(u8 data); + void sound_output_w(u8 data); virtual void sound_start() override; virtual void sound_reset() override; @@ -179,10 +196,10 @@ void demon_sound_ports(address_map &map); private: - uint8_t m_sound_fifo[16]; - uint8_t m_sound_fifo_in; - uint8_t m_sound_fifo_out; - uint8_t m_last_portb_write; + u8 m_sound_fifo[16]; + u8 m_sound_fifo_in; + u8 m_sound_fifo_out; + u8 m_last_portb_write; }; @@ -197,9 +214,9 @@ protected: virtual DECLARE_WRITE_LINE_MEMBER(vector_control_w) override; - uint8_t qb3_frame_r(); - void qb3_ram_bank_w(uint8_t data); - void qb3_sound_fifo_w(uint8_t data); + u8 qb3_frame_r(); + void qb3_ram_bank_w(u8 data); + void qb3_sound_fifo_w(u8 data); virtual void sound_reset() override; diff -Nru mame-0.223+dfsg.1/src/mame/includes/dai.h mame-0.224+dfsg.1/src/mame/includes/dai.h --- mame-0.223+dfsg.1/src/mame/includes/dai.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/dai.h 2020-08-26 08:57:19.000000000 +0000 @@ -13,7 +13,6 @@ #include "audio/dai_snd.h" #include "machine/i8255.h" #include "machine/pit8253.h" -#include "machine/ram.h" #include "machine/tms5501.h" #include "imagedev/cassette.h" #include "emupal.h" @@ -22,15 +21,17 @@ class dai_state : public driver_device { public: - dai_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_pit(*this, "pit8253"), - m_tms5501(*this, "tms5501"), - m_sound(*this, "custom"), - m_cassette(*this, "cassette"), - m_ram(*this, RAM_TAG), - m_palette(*this, "palette") + dai_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_pit(*this, "pit") + , m_tms5501(*this, "tms5501") + , m_sound(*this, "custom") + , m_cassette(*this, "cassette") + , m_rom(*this, "maincpu") + , m_ram(*this, "mainram") + , m_palette(*this, "palette") + , m_io_keyboard(*this, "IN%u", 0U) { } void dai(machine_config &config); @@ -38,46 +39,45 @@ private: enum { - TIMER_BOOTSTRAP, TIMER_TMS5501 }; - required_device m_maincpu; - required_device m_pit; - required_device m_tms5501; - required_device m_sound; - required_device m_cassette; - required_device m_ram; - required_device m_palette; - - uint8_t m_paddle_select; - uint8_t m_paddle_enable; - uint8_t m_cassette_motor[2]; - uint8_t m_keyboard_scan_mask; - unsigned short m_4_colours_palette[4]; - void dai_stack_interrupt_circuit_w(uint8_t data); - uint8_t dai_io_discrete_devices_r(offs_t offset); - void dai_io_discrete_devices_w(offs_t offset, uint8_t data); - uint8_t dai_amd9511_r(); - void dai_amd9511_w(offs_t offset, uint8_t data); - uint8_t dai_pit_r(offs_t offset); - void dai_pit_w(offs_t offset, uint8_t data); - uint8_t dai_keyboard_r(); - void dai_keyboard_w(uint8_t data); + u8 m_paddle_select; + u8 m_paddle_enable; + u8 m_cassette_motor[2]; + u8 m_keyboard_scan_mask; + u8 m_4_colours_palette[4]; + void stack_interrupt_circuit_w(u8 data); + u8 io_discrete_devices_r(offs_t offset); + void io_discrete_devices_w(offs_t offset, u8 data); + u8 amd9511_r(); + void amd9511_w(offs_t offset, u8 data); + u8 pit_r(offs_t offset); + void pit_w(offs_t offset, u8 data); + u8 keyboard_r(); + void keyboard_w(u8 data); void dai_palette(palette_device &palette) const; - uint32_t screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void dai_update_memory(int dai_rom_bank); + u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); IRQ_CALLBACK_MEMBER(int_ack); - void dai_io(address_map &map); - void dai_mem(address_map &map); + void mem_map(address_map &map); static const rgb_t s_palette[16]; -protected: virtual void machine_start() override; virtual void machine_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + memory_passthrough_handler *m_rom_shadow_tap; + required_device m_maincpu; + required_device m_pit; + required_device m_tms5501; + required_device m_sound; + required_device m_cassette; + required_region_ptr m_rom; + required_shared_ptr m_ram; + required_device m_palette; + required_ioport_array<9> m_io_keyboard; }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/funworld.h mame-0.224+dfsg.1/src/mame/includes/funworld.h --- mame-0.223+dfsg.1/src/mame/includes/funworld.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/funworld.h 2020-08-26 08:57:19.000000000 +0000 @@ -35,6 +35,7 @@ void witchryl(machine_config &config); void fw_brick_1(machine_config &config); void fw_brick_2(machine_config &config); + void gratispk(machine_config &config); void init_saloon(); void init_mongolnw(); @@ -76,6 +77,7 @@ void fw_brick_map(address_map &map); void saloon_map(address_map &map); void witchryl_map(address_map &map); + void gratispk_map(address_map &map); required_shared_ptr m_videoram; required_shared_ptr m_colorram; diff -Nru mame-0.223+dfsg.1/src/mame/includes/hec2hrp.h mame-0.224+dfsg.1/src/mame/includes/hec2hrp.h --- mame-0.223+dfsg.1/src/mame/includes/hec2hrp.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/hec2hrp.h 2020-08-26 08:57:19.000000000 +0000 @@ -3,41 +3,7 @@ ///////////////////////////////////////////////////////////////////// ////// HECTOR HEADER FILE ///////////////////////////////////////// ///////////////////////////////////////////////////////////////////// -/* - Hector 2HR+ - Victor - Hector 2HR - Hector HRX - Hector MX40c - Hector MX80c - Hector 1 - Interact - - 12/05/2009 Skeleton driver - Micko : mmicko@gmail.com - 31/06/2009 Video - Robbbert - - 29/10/2009 Update skeleton to functional machine - by yo_fr (jj.stac @ aliceadsl.fr) - - => add Keyboard, - => add color, - => add cassette, - => add sn76477 sound and 1bit sound, - => add joysticks (stick, pot, fire) - => add BR/HR switching - => add bank switch for HRX - => add device MX80c and bank switching for the ROM - 03/01/2010 Update and clean prog by yo_fr (jj.stac@aliceadsl.fr) - => add the port mapping for keyboard - 20/11/2010 : synchronization between uPD765 and Z80 are now OK, CP/M running! JJStacino - 11/11/2011 : add the minidisque support -3 pouces 1/2 driver- JJStacino (jj.stac @ aliceadsl.fr) - - don't forget to keep some information about these machine see DChector project : http://dchector.free.fr/ made by DanielCoulom - (and thank's to Daniel!) and Yves site : http://hectorvictor.free.fr/ (thank's too Yves!) - - TODO : Add the cartridge function, - Adjust the one shot and A/D timing (sn76477) -*/ + #ifndef MAME_INCLUDES_HEC2HRP_H #define MAME_INCLUDES_HEC2HRP_H @@ -48,6 +14,7 @@ #include "imagedev/printer.h" #include "machine/upd765.h" #include "machine/wd_fdc.h" +#include "machine/ram.h" #include "sound/discrete.h" /* for 1 Bit sound*/ #include "sound/sn76477.h" /* for sn sound*/ #include "emupal.h" @@ -82,21 +49,24 @@ { public: hec2hrp_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_cassette(*this, "cassette"), - m_printer(*this, "printer"), - m_palette(*this, "palette"), - m_disc2cpu(*this, "disc2cpu"), - m_discrete(*this, "discrete"), - m_sn(*this, "sn76477"), - m_videoram(*this,"videoram"), - m_hector_videoram(*this,"hector_videoram") , - m_keyboard(*this, "KEY.%u", 0), - m_minidisc_fdc(*this, "wd179x"), - m_floppy0(*this, "wd179x:0"), - m_upd_fdc(*this, "upd765"), - m_upd_connector(*this, "upd765:%u", 0U) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_cassette(*this, "cassette") + , m_printer(*this, "printer") + , m_palette(*this, "palette") + , m_vram(*this,"videoram") + , m_bank(*this, "bank%u", 0U) + , m_rom(*this, "maincpu") + , m_ram(*this, RAM_TAG) + , m_hector_vram(*this,"hector_videoram") + , m_disc2cpu(*this, "disc2cpu") + , m_discrete(*this, "discrete") + , m_sn(*this, "sn76477") + , m_keyboard(*this, "KEY.%u", 0) + , m_minidisc_fdc(*this, "wd179x") + , m_floppy0(*this, "wd179x:0") + , m_upd_fdc(*this, "upd765") + , m_upd_connector(*this, "upd765:%u", 0U) {} void hec2mx80(machine_config &config); @@ -107,13 +77,19 @@ void hec2hr(machine_config &config); void hector_audio(machine_config &config); - void hector_init(); + void init_mx40(); + void init_mdhrx(); + void init_victor(); + void init_hrx(); + void init_interact(); + void hector1(machine_config &config); + void interact(machine_config &config); + void interact_common(machine_config &config); -protected: - DECLARE_VIDEO_START(hec2hrp); +private: void hector_hr(bitmap_ind16 &bitmap, uint8_t *page, int ymax, int yram); - void hector_reset(int hr, int with_d2); - + void hector_reset(bool hr, bool with_d2); + void video_start() override; void keyboard_w(uint8_t data); uint8_t keyboard_r(offs_t offset); void sn_2000_w(offs_t offset, uint8_t data); @@ -122,15 +98,13 @@ void sn_3000_w(uint8_t data); void color_a_w(uint8_t data); void color_b_w(uint8_t data); - - required_device m_maincpu; - required_device m_cassette; - optional_device m_printer; - required_device m_palette; - -private: + bool m_has_disc2; + bool m_has_minidisc; + bool m_is_hr; + bool m_is_extended; + void init_palette(palette_device &); + void hector_init(); void minidisc_control_w(uint8_t data); - void switch_bank_w(offs_t offset, uint8_t data); uint8_t io_8255_r(offs_t offset); void io_8255_w(offs_t offset, uint8_t data); @@ -151,37 +125,24 @@ DECLARE_FLOPPY_FORMATS(minidisc_formats); - optional_device m_disc2cpu; - required_device m_discrete; - required_device m_sn; - optional_shared_ptr m_videoram; - optional_shared_ptr m_hector_videoram; - required_ioport_array<9> m_keyboard; - - optional_device m_minidisc_fdc; - optional_device m_floppy0; - - optional_device m_upd_fdc; - optional_device_array m_upd_connector; - - uint8_t m_hector_flag_hr; - uint8_t m_hector_flag_80c; + bool m_hector_flag_hr; + bool m_hector_flag_80c; uint8_t m_hector_color[4]; uint8_t m_hector_disc2_data_r_ready; uint8_t m_hector_disc2_data_w_ready; uint8_t m_hector_disc2_data_read; uint8_t m_hector_disc2_data_write; - uint8_t m_hector_disc2_rnmi; + bool m_hector_disc2_rnmi; uint8_t m_state3000; - uint8_t m_write_cassette; + bool m_write_cassette; emu_timer *m_cassette_timer; uint8_t m_ck_signal; - uint8_t m_flag_clk; + bool m_flag_clk; double m_pin_value[29][2]; - int m_au[17]; - int m_val_mixer; - int m_oldstate3000; - int m_oldstate1000; + u8 m_au[17]; + u8 m_val_mixer; + u8 m_oldstate3000; + u8 m_oldstate1000; uint8_t m_pot0; uint8_t m_pot1; uint8_t m_actions; @@ -190,18 +151,15 @@ uint8_t m_hector_port_c_h; uint8_t m_hector_port_c_l; uint8_t m_hector_port_cmd; - uint8_t m_cassette_bit; - uint8_t m_cassette_bit_mem; + bool m_cassette_bit; + bool m_cassette_bit_mem; uint8_t m_data_k7; int m_counter_write; - int m_irq_current_state; - int m_nmi_current_state; - int m_hector_cmd[10]; - int m_hector_nb_cde; - int m_hector_flag_result; - int m_print; - uint8_t m_hector_videoram_hrx[0x04000]; + bool m_irq_current_state; + bool m_nmi_current_state; + uint8_t m_hector_videoram_hrx[0x4000]; + DECLARE_MACHINE_RESET(interact); DECLARE_MACHINE_START(hec2hrp); DECLARE_MACHINE_RESET(hec2hrp); DECLARE_MACHINE_START(hec2hrx); @@ -213,18 +171,14 @@ DECLARE_WRITE_LINE_MEMBER( disc2_fdc_interrupt ); DECLARE_WRITE_LINE_MEMBER( disc2_fdc_dma_irq ); - int has_disc2(); - int has_minidisc(); - int is_hr(); - int is_extended(); + void update_state(int Adresse, int Value ); void init_sn76477(); void update_sound(uint8_t data); - void init_palette(); void hector_80c(bitmap_ind16 &bitmap, uint8_t *page, int ymax, int yram); - /*----------- defined in machine/hecdisk2.c -----------*/ - void hector_disc2_reset(); + uint32_t screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void interact_mem(address_map &map); void hec2hrp_io(address_map &map); void hec2hrp_mem(address_map &map); @@ -235,6 +189,24 @@ void hec2mx80_io(address_map &map); void hecdisc2_io(address_map &map); void hecdisc2_mem(address_map &map); + + required_device m_maincpu; + required_device m_cassette; + optional_device m_printer; + required_device m_palette; + optional_shared_ptr m_vram; + optional_memory_bank_array<4> m_bank; + required_region_ptr m_rom; + optional_device m_ram; + optional_shared_ptr m_hector_vram; + optional_device m_disc2cpu; + required_device m_discrete; + required_device m_sn; + required_ioport_array<9> m_keyboard; + optional_device m_minidisc_fdc; + optional_device m_floppy0; + optional_device m_upd_fdc; + optional_device_array m_upd_connector; }; #endif // MAME_INCLUDES_HEC2HRP_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/lviv.h mame-0.224+dfsg.1/src/mame/includes/lviv.h --- mame-0.223+dfsg.1/src/mame/includes/lviv.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/lviv.h 2020-08-26 08:57:19.000000000 +0000 @@ -41,7 +41,8 @@ DECLARE_INPUT_CHANGED_MEMBER(reset_button); private: - virtual void machine_reset() override; + void machine_reset() override; + void machine_start() override; void lviv_palette(palette_device &palette) const; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -49,19 +50,19 @@ uint8_t io_r(offs_t offset); void io_w(offs_t offset, uint8_t data); - uint8_t ppi_0_porta_r(); - uint8_t ppi_0_portb_r(); - uint8_t ppi_0_portc_r(); - uint8_t ppi_1_porta_r(); - uint8_t ppi_1_portb_r(); - uint8_t ppi_1_portc_r(); - - void ppi_0_porta_w(uint8_t data); - void ppi_0_portb_w(uint8_t data); - void ppi_0_portc_w(uint8_t data); - void ppi_1_porta_w(uint8_t data); - void ppi_1_portb_w(uint8_t data); - void ppi_1_portc_w(uint8_t data); + uint8_t ppi0_porta_r(); + uint8_t ppi0_portb_r(); + uint8_t ppi0_portc_r(); + uint8_t ppi1_porta_r(); + uint8_t ppi1_portb_r(); + uint8_t ppi1_portc_r(); + + void ppi0_porta_w(uint8_t data); + void ppi0_portb_w(uint8_t data); + void ppi0_portc_w(uint8_t data); + void ppi1_porta_w(uint8_t data); + void ppi1_portb_w(uint8_t data); + void ppi1_portc_w(uint8_t data); DECLARE_SNAPSHOT_LOAD_MEMBER(snapshot_cb); @@ -87,7 +88,7 @@ required_ioport_array<12> m_key; required_ioport m_joy_port; - uint8_t* m_video_ram; + uint8_t* m_vram; uint16_t m_colortable[1][4]; uint8_t m_ppi_port_outputs[2][3]; uint8_t m_startup_mem_map; diff -Nru mame-0.223+dfsg.1/src/mame/includes/mcr68.h mame-0.224+dfsg.1/src/mame/includes/mcr68.h --- mame-0.223+dfsg.1/src/mame/includes/mcr68.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/mcr68.h 2020-08-26 08:57:19.000000000 +0000 @@ -13,7 +13,7 @@ #include "machine/timer.h" #include "machine/watchdog.h" #include "audio/midway.h" -#include "audio/williams.h" +#include "audio/s11c_bg.h" #include "machine/6840ptm.h" #include "machine/adc0844.h" #include "screen.h" @@ -26,7 +26,7 @@ driver_device(mconfig, type, tag), m_sounds_good(*this, "sg"), m_turbo_cheap_squeak(*this, "tcs"), - m_cvsd_sound(*this, "cvsd"), + m_bg(*this, "bg"), m_adc(*this, "adc"), m_videoram(*this, "videoram"), m_spriteram(*this, "spriteram") , @@ -56,7 +56,7 @@ private: optional_device m_sounds_good; optional_device m_turbo_cheap_squeak; - optional_device m_cvsd_sound; + optional_device m_bg; optional_device m_adc; required_shared_ptr m_videoram; diff -Nru mame-0.223+dfsg.1/src/mame/includes/megadriv_acbl.h mame-0.224+dfsg.1/src/mame/includes/megadriv_acbl.h --- mame-0.223+dfsg.1/src/mame/includes/megadriv_acbl.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/megadriv_acbl.h 2020-08-26 08:57:19.000000000 +0000 @@ -24,6 +24,7 @@ void init_topshoot(); void init_puckpkmn(); void init_hshavoc(); + void init_barek2(); void init_barek3(); void init_sonic2mb(); void init_twinktmb(); @@ -34,6 +35,7 @@ uint16_t bl_710000_r(); void aladmdb_w(uint16_t data); uint16_t aladmdb_r(); + uint16_t barek2mb_r(); uint16_t jparkmb_r(); uint16_t twinktmb_r(); uint16_t mk3mdb_dsw_r(offs_t offset); diff -Nru mame-0.223+dfsg.1/src/mame/includes/metalmx.h mame-0.224+dfsg.1/src/mame/includes/metalmx.h --- mame-0.223+dfsg.1/src/mame/includes/metalmx.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/metalmx.h 2020-08-26 08:57:19.000000000 +0000 @@ -65,8 +65,8 @@ required_device m_cage; required_shared_ptr m_adsp_internal_program_ram; - required_shared_ptr m_gsp_dram; - required_shared_ptr m_gsp_vram; + required_shared_ptr m_gsp_dram; + required_shared_ptr m_gsp_vram; }; #endif // MAME_INCLUDES_METALMX_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/midvunit.h mame-0.224+dfsg.1/src/mame/includes/midvunit.h --- mame-0.223+dfsg.1/src/mame/includes/midvunit.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/midvunit.h 2020-08-26 08:57:19.000000000 +0000 @@ -61,7 +61,6 @@ m_watchdog(*this, "watchdog"), m_palette(*this, "palette"), m_adc(*this, "adc"), - m_midway_serial_pic(*this, "serial_pic"), m_midway_serial_pic2(*this, "serial_pic2"), m_midway_ioasic(*this, "ioasic"), m_ata(*this, "ata"), @@ -159,9 +158,6 @@ void crusnwld_serial_data_w(uint32_t data); uint32_t bit_data_r(offs_t offset); void bit_reset_w(uint32_t data); - uint32_t offroadc_serial_status_r(); - uint32_t offroadc_serial_data_r(); - void offroadc_serial_data_w(uint32_t data); uint32_t midvplus_misc_r(offs_t offset); void midvplus_misc_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); void midvplus_xf1_w(uint8_t data); @@ -184,7 +180,6 @@ required_device m_watchdog; required_device m_palette; optional_device m_adc; - optional_device m_midway_serial_pic; optional_device m_midway_serial_pic2; optional_device m_midway_ioasic; optional_device m_ata; diff -Nru mame-0.223+dfsg.1/src/mame/includes/midwunit.h mame-0.224+dfsg.1/src/mame/includes/midwunit.h --- mame-0.223+dfsg.1/src/mame/includes/midwunit.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/midwunit.h 2020-08-26 08:57:19.000000000 +0000 @@ -10,13 +10,22 @@ #pragma once +#include "audio/dcs.h" +#include "cpu/tms34010/tms34010.h" #include "machine/midwayic.h" +#include "video/midtunit.h" +#include "emupal.h" -class midwunit_state : public midtunit_state +class midwunit_state : public driver_device { public: midwunit_state(const machine_config &mconfig, device_type type, const char *tag) - : midtunit_state(mconfig, type, tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_video(*this, "video") + , m_dcs(*this, "dcs") + , m_palette(*this, "palette") + , m_gfxrom(*this, "gfxrom") , m_midway_serial_pic(*this, "serial_security_sim") , m_midway_serial_pic_emu(*this, "serial_security") , m_nvram(*this, "nvram") @@ -53,12 +62,18 @@ uint16_t midwunit_sound_r(); uint16_t midwunit_sound_state_r(); void midwunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - void umk3_palette_hack_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umk3_palette_hack_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void wwfmania_io_0_w(uint16_t data); void init_mk3_common(); void main_map(address_map &map); + required_device m_maincpu; + required_device m_video; + required_device m_dcs; + required_device m_palette; + required_memory_region m_gfxrom; + optional_device m_midway_serial_pic; optional_device m_midway_serial_pic_emu; required_shared_ptr m_nvram; diff -Nru mame-0.223+dfsg.1/src/mame/includes/midxunit.h mame-0.224+dfsg.1/src/mame/includes/midxunit.h --- mame-0.223+dfsg.1/src/mame/includes/midxunit.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/midxunit.h 2020-08-26 08:57:19.000000000 +0000 @@ -10,17 +10,26 @@ #pragma once -#include "midtunit.h" -#include "machine/midwayic.h" +#include "audio/dcs.h" +#include "cpu/tms34010/tms34010.h" +#include "cpu/pic16c5x/pic16c5x.h" +#include "machine/nvram.h" +#include "video/midtunit.h" +#include "emupal.h" -class midxunit_state : public midtunit_state +class midxunit_state : public driver_device { public: midxunit_state(const machine_config &mconfig, device_type type, const char *tag) - : midtunit_state(mconfig, type, tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_video(*this, "video") + , m_dcs(*this, "dcs") + , m_palette(*this, "palette") + , m_gfxrom(*this, "gfxrom") , m_nvram(*this, "nvram") - , m_midway_serial_pic(*this, "serial_pic") + , m_pic(*this, "pic") , m_gun_recoil(*this, "Player%u_Gun_Recoil", 1U) , m_gun_led(*this, "Player%u_Gun_LED", 1U) { } @@ -32,35 +41,44 @@ virtual void machine_reset() override; private: - uint16_t midxunit_cmos_r(offs_t offset); - void midxunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint8_t midxunit_cmos_r(offs_t offset); + void midxunit_cmos_w(offs_t offset, uint8_t data); void midxunit_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void midxunit_unknown_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(adc_int_w); - uint16_t midxunit_status_r(); - uint16_t midxunit_uart_r(offs_t offset); - void midxunit_uart_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - uint16_t midxunit_security_r(); - void midxunit_security_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - void midxunit_security_clock_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - uint16_t midxunit_sound_r(); - uint16_t midxunit_sound_state_r(); - void midxunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint32_t midxunit_status_r(); + uint8_t midxunit_uart_r(offs_t offset); + void midxunit_uart_w(offs_t offset, uint8_t data); + uint32_t midxunit_security_r(); + void midxunit_security_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void midxunit_security_clock_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(midxunit_dcs_output_full); + uint32_t midxunit_dma_r(offs_t offset, uint32_t mem_mask = ~0); + void midxunit_dma_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); void main_map(address_map &map); - required_shared_ptr m_nvram; - required_device m_midway_serial_pic; + required_device m_maincpu; + required_device m_video; + required_device m_dcs; + required_device m_palette; + required_memory_region m_gfxrom; + + required_device m_nvram; + required_device m_pic; output_finder<3> m_gun_recoil; output_finder<3> m_gun_led; uint8_t m_cmos_write_enable; uint16_t m_iodata[8]; - uint8_t m_ioshuffle[16]; uint8_t m_uart[8]; - uint8_t m_security_bits; bool m_adc_int; + std::unique_ptr m_nvram_data; + + uint8_t m_pic_command; + uint8_t m_pic_data; + uint8_t m_pic_clk; + uint8_t m_pic_status; }; #endif // MAME_INCLUDES_MIDXUNIT_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/mikro80.h mame-0.224+dfsg.1/src/mame/includes/mikro80.h --- mame-0.223+dfsg.1/src/mame/includes/mikro80.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/mikro80.h 2020-08-26 08:57:19.000000000 +0000 @@ -18,11 +18,6 @@ class mikro80_state : public driver_device { public: - enum - { - TIMER_RESET - }; - mikro80_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_aram(*this, "attrram") @@ -50,6 +45,7 @@ void sound_w(u8 data); u8 portb_r(); u8 portc_r(); + u8 kristall2_portc_r(); void porta_w(u8 data); void portc_w(u8 data); void tape_w(u8 data); diff -Nru mame-0.223+dfsg.1/src/mame/includes/model3.h mame-0.224+dfsg.1/src/mame/includes/model3.h --- mame-0.223+dfsg.1/src/mame/includes/model3.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/model3.h 2020-08-26 08:57:19.000000000 +0000 @@ -104,6 +104,7 @@ void model3_20(machine_config &config); void model3_21(machine_config &config); + void getbass(machine_config &config); void scud(machine_config &config); void lostwsga(machine_config &config); @@ -382,6 +383,8 @@ void model3_snd(address_map &map); void scsp1_map(address_map &map); void scsp2_map(address_map &map); + void getbass_iocpu_mem(address_map &map); + void getbass_iocpu_io(address_map &map); }; #endif // MAME_INCLUDES_MODEL3_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/mpu4.h mame-0.224+dfsg.1/src/mame/includes/mpu4.h --- mame-0.223+dfsg.1/src/mame/includes/mpu4.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/mpu4.h 2020-08-26 08:57:19.000000000 +0000 @@ -14,6 +14,9 @@ #include "machine/steppers.h" #include "machine/roc10937.h" #include "machine/meters.h" + +#include "machine/bacta_datalogger.h" + #include "emupal.h" @@ -113,6 +116,7 @@ , m_pia6(*this, "pia_ic6") , m_pia7(*this, "pia_ic7") , m_pia8(*this, "pia_ic8") + , m_pia_ic4ss(*this, "pia_ic4ss") , m_port_mux(*this, {"ORANGE1", "ORANGE2", "BLACK1", "BLACK2", "ORANGE1", "ORANGE2", "DIL1", "DIL2"}) , m_aux1_port(*this, "AUX1") , m_aux2_port(*this, "AUX2") @@ -123,6 +127,7 @@ , m_meters(*this, "meters") , m_ym2413(*this, "ym2413") , m_ay8913(*this, "ay8913") + , m_dataport(*this, "dataport") , m_lamps(*this, "lamp%u", 0U) , m_mpu4leds(*this, "mpu4led%u", 0U) , m_digits(*this, "digit%u", 0U) @@ -311,6 +316,8 @@ DECLARE_WRITE_LINE_MEMBER(pia_gb_ca2_w); DECLARE_WRITE_LINE_MEMBER(pia_gb_cb2_w); + DECLARE_WRITE_LINE_MEMBER(dataport_rxd); + required_device m_maincpu; optional_device m_vfd; optional_device m_6840ptm; @@ -321,6 +328,7 @@ optional_device m_pia6; optional_device m_pia7; optional_device m_pia8; + optional_device m_pia_ic4ss; required_ioport_array<8> m_port_mux; required_ioport m_aux1_port; required_ioport m_aux2_port; @@ -331,6 +339,7 @@ required_device m_meters; optional_device m_ym2413; optional_device m_ay8913; + optional_device m_dataport; // not all systems have this many lamps/LEDs/digits but the driver is too much of a mess to split up now diff -Nru mame-0.223+dfsg.1/src/mame/includes/mrdo.h mame-0.224+dfsg.1/src/mame/includes/mrdo.h --- mame-0.223+dfsg.1/src/mame/includes/mrdo.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/mrdo.h 2020-08-26 08:57:19.000000000 +0000 @@ -28,6 +28,7 @@ void mrdo(machine_config &config); void mrlo(machine_config &config); + void mrdobl(machine_config &config); protected: virtual void video_start() override; diff -Nru mame-0.223+dfsg.1/src/mame/includes/mw8080bw.h mame-0.224+dfsg.1/src/mame/includes/mw8080bw.h --- mame-0.223+dfsg.1/src/mame/includes/mw8080bw.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/mw8080bw.h 2020-08-26 08:57:19.000000000 +0000 @@ -385,6 +385,11 @@ void zzzap(machine_config &config); + void lagunar(machine_config &config); + +protected: + void zzzap_common(machine_config &config); + private: void io_map(address_map &map); }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/pmd85.h mame-0.224+dfsg.1/src/mame/includes/pmd85.h --- mame-0.223+dfsg.1/src/mame/includes/pmd85.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/pmd85.h 2020-08-26 08:57:19.000000000 +0000 @@ -14,6 +14,7 @@ #include "machine/pit8253.h" #include "machine/i8255.h" #include "imagedev/cassette.h" +#include "sound/spkrdev.h" #include "machine/ram.h" #include "emupal.h" @@ -21,37 +22,24 @@ class pmd85_state : public driver_device { public: - pmd85_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_ram(*this, RAM_TAG), - m_cassette(*this, "cassette"), - m_pit8253(*this, "pit8253"), - m_uart(*this, "uart"), - m_ppi8255_0(*this, "ppi8255_0"), - m_ppi8255_1(*this, "ppi8255_1"), - m_ppi8255_2(*this, "ppi8255_2"), - m_ppi8255_3(*this, "ppi8255_3"), - m_region_maincpu(*this, "maincpu"), - m_bank1(*this, "bank1"), - m_bank2(*this, "bank2"), - m_bank3(*this, "bank3"), - m_bank4(*this, "bank4"), - m_bank5(*this, "bank5"), - m_bank6(*this, "bank6"), - m_bank7(*this, "bank7"), - m_bank8(*this, "bank8"), - m_bank9(*this, "bank9"), - m_bank10(*this, "bank10"), - m_bank11(*this, "bank11"), - m_bank12(*this, "bank12"), - m_bank13(*this, "bank13"), - m_bank14(*this, "bank14"), - m_bank15(*this, "bank15"), - m_bank16(*this, "bank16"), - m_io_dsw0(*this, "DSW0"), - m_palette(*this, "palette"), - m_leds(*this, "led%u", 0U) + pmd85_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_rom(*this, "maincpu") + , m_ram(*this, RAM_TAG) + , m_cassette(*this, "cassette") + , m_speaker(*this, "speaker") + , m_pit(*this, "pit") + , m_uart(*this, "uart") + , m_ppi0(*this, "ppi0") + , m_ppi1(*this, "ppi1") + , m_ppi2(*this, "ppi2") + , m_ppi3(*this, "ppi3") + , m_bank(*this, "bank%d", 0U) + , m_io_dsw0(*this, "DSW0") + , m_palette(*this, "palette") + , m_io_keyboard(*this, "KEY%u", 0U) + , m_leds(*this, "led%u", 0U) { } void pmd85(machine_config &config, bool with_uart = true); @@ -78,6 +66,7 @@ TIMER_CASSETTE }; + bool m_txd, m_rts; uint8_t m_rom_module_present; uint8_t m_ppi_port_outputs[4][3]; uint8_t m_startup_mem_map; @@ -88,83 +77,52 @@ uint8_t m_model; emu_timer * m_cassette_timer; void (pmd85_state::*update_memory)(); - uint8_t pmd85_io_r(offs_t offset); - void pmd85_io_w(offs_t offset, uint8_t data); + uint8_t io_r(offs_t offset); + void io_w(offs_t offset, uint8_t data); uint8_t mato_io_r(offs_t offset); void mato_io_w(offs_t offset, uint8_t data); virtual void machine_reset() override; - uint32_t screen_update_pmd85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - TIMER_CALLBACK_MEMBER(pmd85_cassette_timer_callback); - uint8_t pmd85_ppi_0_porta_r(); - uint8_t pmd85_ppi_0_portb_r(); - uint8_t pmd85_ppi_0_portc_r(); - void pmd85_ppi_0_porta_w(uint8_t data); - void pmd85_ppi_0_portb_w(uint8_t data); - void pmd85_ppi_0_portc_w(uint8_t data); - uint8_t mato_ppi_0_portb_r(); - uint8_t mato_ppi_0_portc_r(); - void mato_ppi_0_portc_w(uint8_t data); - uint8_t pmd85_ppi_1_porta_r(); - uint8_t pmd85_ppi_1_portb_r(); - uint8_t pmd85_ppi_1_portc_r(); - void pmd85_ppi_1_porta_w(uint8_t data); - void pmd85_ppi_1_portb_w(uint8_t data); - void pmd85_ppi_1_portc_w(uint8_t data); - uint8_t pmd85_ppi_2_porta_r(); - uint8_t pmd85_ppi_2_portb_r(); - uint8_t pmd85_ppi_2_portc_r(); - void pmd85_ppi_2_porta_w(uint8_t data); - void pmd85_ppi_2_portb_w(uint8_t data); - void pmd85_ppi_2_portc_w(uint8_t data); - uint8_t pmd85_ppi_3_porta_r(); - uint8_t pmd85_ppi_3_portb_r(); - uint8_t pmd85_ppi_3_portc_r(); - void pmd85_ppi_3_porta_w(uint8_t data); - void pmd85_ppi_3_portb_w(uint8_t data); - void pmd85_ppi_3_portc_w(uint8_t data); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + TIMER_CALLBACK_MEMBER(cassette_timer_callback); + uint8_t ppi0_porta_r(); + uint8_t ppi0_portb_r(); + uint8_t ppi0_portc_r(); + void ppi0_porta_w(uint8_t data); + void ppi0_portb_w(uint8_t data); + void ppi0_portc_w(uint8_t data); + uint8_t mato_ppi0_portb_r(); + uint8_t mato_ppi0_portc_r(); + void mato_ppi0_portc_w(uint8_t data); + uint8_t ppi1_porta_r(); + uint8_t ppi1_portb_r(); + uint8_t ppi1_portc_r(); + void ppi1_porta_w(uint8_t data); + void ppi1_portb_w(uint8_t data); + void ppi1_portc_w(uint8_t data); + uint8_t ppi2_porta_r(); + uint8_t ppi2_portb_r(); + uint8_t ppi2_portc_r(); + void ppi2_porta_w(uint8_t data); + void ppi2_portb_w(uint8_t data); + void ppi2_portc_w(uint8_t data); + uint8_t ppi3_porta_r(); + uint8_t ppi3_portb_r(); + uint8_t ppi3_portc_r(); + void ppi3_porta_w(uint8_t data); + void ppi3_portb_w(uint8_t data); + void ppi3_portc_w(uint8_t data); void alfa_mem(address_map &map); void c2717_mem(address_map &map); - void mato_io_map(address_map &map); + void mato_io(address_map &map); void mato_mem(address_map &map); void pmd852a_mem(address_map &map); void pmd853_mem(address_map &map); - void pmd85_io_map(address_map &map); + void pmd85_io(address_map &map); void pmd85_mem(address_map &map); - virtual void machine_start() override { m_leds.resolve(); } - - required_device m_maincpu; - required_device m_ram; - required_device m_cassette; - required_device m_pit8253; - optional_device m_uart; - optional_device m_ppi8255_0; - optional_device m_ppi8255_1; - optional_device m_ppi8255_2; - optional_device m_ppi8255_3; - required_memory_region m_region_maincpu; - required_memory_bank m_bank1; - required_memory_bank m_bank2; - required_memory_bank m_bank3; - required_memory_bank m_bank4; - optional_memory_bank m_bank5; - optional_memory_bank m_bank6; - optional_memory_bank m_bank7; - optional_memory_bank m_bank8; - optional_memory_bank m_bank9; - optional_memory_bank m_bank10; - optional_memory_bank m_bank11; - optional_memory_bank m_bank12; - optional_memory_bank m_bank13; - optional_memory_bank m_bank14; - optional_memory_bank m_bank15; - optional_memory_bank m_bank16; - optional_ioport m_io_dsw0; - ioport_port *m_io_port[16]; - required_device m_palette; - output_finder<3> m_leds; + virtual void machine_start() override; void pmd851_update_memory(); void pmd852a_update_memory(); @@ -172,10 +130,25 @@ void alfa_update_memory(); void mato_update_memory(); void c2717_update_memory(); - void pmd85_common_driver_init(); + void common_driver_init(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - bool m_txd, m_rts; + required_device m_maincpu; + required_region_ptr m_rom; + required_device m_ram; + required_device m_cassette; + required_device m_speaker; + required_device m_pit; + optional_device m_uart; + optional_device m_ppi0; + optional_device m_ppi1; + optional_device m_ppi2; + optional_device m_ppi3; + optional_memory_bank_array<17> m_bank; + optional_ioport m_io_dsw0; + required_device m_palette; + optional_ioport_array<16> m_io_keyboard; + output_finder<3> m_leds; }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/qix.h mame-0.224+dfsg.1/src/mame/includes/qix.h --- mame-0.223+dfsg.1/src/mame/includes/qix.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/qix.h 2020-08-26 08:57:19.000000000 +0000 @@ -168,6 +168,8 @@ protected: virtual void machine_start() override; + optional_device m_mcu; + private: uint8_t coin_r(); void coin_w(uint8_t data); @@ -178,8 +180,6 @@ void mcu_porta_w(uint8_t data); void mcu_portb_w(uint8_t data); - required_device m_mcu; - /* machine state */ uint8_t m_68705_porta_out; uint8_t m_coinctrl; @@ -194,6 +194,7 @@ { } void zookeep(machine_config &config); + void zookeepbl(machine_config &config); void video(machine_config &config); protected: diff -Nru mame-0.223+dfsg.1/src/mame/includes/s11a.h mame-0.224+dfsg.1/src/mame/includes/s11a.h --- mame-0.223+dfsg.1/src/mame/includes/s11a.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/s11a.h 2020-08-26 08:57:19.000000000 +0000 @@ -18,7 +18,9 @@ : s11_state(mconfig, type, tag) { } + void s11a_base(machine_config &config); void s11a(machine_config &config); + void s11a_obg(machine_config &config); void init_s11a(); @@ -26,9 +28,6 @@ private: DECLARE_MACHINE_RESET(s11a); - - void s11a_audio_map(address_map &map); - void s11a_main_map(address_map &map); }; #endif // MAME_INCLUDES_S11A_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/s11b.h mame-0.224+dfsg.1/src/mame/includes/s11b.h --- mame-0.223+dfsg.1/src/mame/includes/s11b.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/s11b.h 2020-08-26 08:57:19.000000000 +0000 @@ -18,7 +18,9 @@ : s11a_state(mconfig, type, tag) { } + void s11b_base(machine_config &config); void s11b(machine_config &config); + void s11b_jokerz(machine_config &config); void init_s11b(); void init_s11b_invert(); @@ -34,9 +36,6 @@ private: DECLARE_MACHINE_RESET(s11b); - void s11b_audio_map(address_map &map); - void s11b_main_map(address_map &map); - bool m_invert; // later System 11B games start expecting inverted data to the display LED segments. }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/s11c.h mame-0.224+dfsg.1/src/mame/includes/s11c.h --- mame-0.223+dfsg.1/src/mame/includes/s11c.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/s11c.h 2020-08-26 08:57:19.000000000 +0000 @@ -24,10 +24,6 @@ protected: virtual void machine_reset() override; - -private: - - void s11c_main_map(address_map &map); }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/s11.h mame-0.224+dfsg.1/src/mame/includes/s11.h --- mame-0.223+dfsg.1/src/mame/includes/s11.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/s11.h 2020-08-26 08:57:19.000000000 +0000 @@ -11,6 +11,7 @@ #include "cpu/m6800/m6800.h" #include "audio/s11c_bg.h" +#include "audio/pinsnd88.h" #include "machine/6821pia.h" #include "machine/genpin.h" #include "machine/input_merger.h" @@ -43,8 +44,8 @@ , m_piairq(*this, "piairq") , m_audiocpu(*this, "audiocpu") , m_audioirq(*this, "audioirq") - , m_bgcpu(*this, "bgcpu") , m_hc55516(*this, "hc55516") + , m_dac(*this, "dac") , m_pias(*this, "pias") , m_pia21(*this, "pia21") , m_pia24(*this, "pia24") @@ -52,14 +53,15 @@ , m_pia2c(*this, "pia2c") , m_pia30(*this, "pia30") , m_pia34(*this, "pia34") - , m_pia40(*this, "pia40") - , m_ym2151(*this, "ym2151") - , m_bg(*this, "bgm") + , m_bg(*this, "bg") + , m_ps88(*this, "ps88") , m_digits(*this, "digit%u", 0U) , m_swarray(*this, "SW.%u", 0U) { } void s11(machine_config &config); + void s11_bgs(machine_config &config); + void s11_bgm(machine_config &config); void init_s11(); @@ -81,8 +83,6 @@ void pia34_pa_w(uint8_t data); void pia34_pb_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(pia34_cb2_w); - void pia40_pb_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER(pia40_cb2_w); DECLARE_WRITE_LINE_MEMBER(pias_ca2_w); DECLARE_WRITE_LINE_MEMBER(pias_cb2_w); @@ -92,7 +92,6 @@ DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { }; // comma3&4 DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { }; // comma1&2 DECLARE_WRITE_LINE_MEMBER(pia30_cb2_w) { }; // dummy to stop error log filling up - DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); DECLARE_WRITE_LINE_MEMBER(pia_irq); DECLARE_WRITE_LINE_MEMBER(main_irq); @@ -100,20 +99,21 @@ void switch_w(uint8_t data); uint8_t pia28_w7_r(); + void s11_main_map(address_map &map); + void s11_audio_map(address_map &map); + protected: DECLARE_MACHINE_RESET(s11); - void s11_audio_map(address_map &map); - void s11_bg_map(address_map &map); - void s11_main_map(address_map &map); // devices required_device m_maincpu; required_device m_mainirq; required_device m_piairq; + // the following devices are optional because certain board variants (i.e. system 11c) do not have the audio section on the mainboard populated optional_device m_audiocpu; optional_device m_audioirq; - optional_device m_bgcpu; optional_device m_hc55516; + optional_device m_dac; optional_device m_pias; required_device m_pia21; required_device m_pia24; @@ -121,9 +121,8 @@ required_device m_pia2c; required_device m_pia30; required_device m_pia34; - optional_device m_pia40; - optional_device m_ym2151; optional_device m_bg; + optional_device m_ps88; output_finder<63> m_digits; required_ioport_array<8> m_swarray; diff -Nru mame-0.223+dfsg.1/src/mame/includes/segag80r.h mame-0.224+dfsg.1/src/mame/includes/segag80r.h --- mame-0.223+dfsg.1/src/mame/includes/segag80r.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/segag80r.h 2020-08-26 08:57:19.000000000 +0000 @@ -10,8 +10,10 @@ #pragma once +#include "audio/segag80.h" #include "audio/segag80r.h" -#include "audio/segasnd.h" +#include "audio/segaspeech.h" +#include "audio/segausb.h" #include "machine/i8255.h" #include "machine/segag80.h" #include "sound/samples.h" @@ -23,11 +25,11 @@ class sega005_sound_device; -class segag80r_state : public segag80snd_common +class segag80r_state : public driver_device { public: segag80r_state(const machine_config &mconfig, device_type type, const char *tag) : - segag80snd_common(mconfig, type, tag), + driver_device(mconfig, type, tag), m_mainram(*this, "mainram"), m_videoram(*this, "videoram"), m_sn1(*this, "sn1"), @@ -36,7 +38,8 @@ m_audiocpu(*this, "audiocpu"), m_soundbrd(*this, "soundbrd"), m_samples(*this, "samples"), - m_speech(*this, "segaspeech"), + m_speech(*this, "speech"), + m_g80_audio(*this, "g80sound"), m_usbsnd(*this, "usbsnd"), m_005snd(*this, "005"), m_gfxdecode(*this, "gfxdecode"), @@ -53,11 +56,11 @@ void monster2(machine_config &config); void sega005(machine_config &config); void spaceod(machine_config &config); - void astrob_sound_board(machine_config &config); void sega005_sound_board(machine_config &config); void spaceod_sound_board(machine_config &config); void monsterb_sound_board(machine_config &config); + void init_waitstates(); void init_spaceod(); void init_sindbadm(); void init_pignewt(); @@ -91,7 +94,8 @@ optional_device m_audiocpu; optional_device m_soundbrd; optional_device m_samples; - optional_device m_speech; + optional_device m_speech; + optional_device m_g80_audio; optional_device m_usbsnd; optional_device m_005snd; required_device m_gfxdecode; @@ -147,7 +151,6 @@ void pignewt_back_port_w(offs_t offset, uint8_t data); void sindbadm_videoram_w(offs_t offset, uint8_t data); void sindbadm_back_port_w(offs_t offset, uint8_t data); - void astrob_sound_w(offs_t offset, uint8_t data); void spaceod_sound_w(offs_t offset, uint8_t data); void usb_ram_w(offs_t offset, uint8_t data); diff -Nru mame-0.223+dfsg.1/src/mame/includes/segag80v.h mame-0.224+dfsg.1/src/mame/includes/segag80v.h --- mame-0.223+dfsg.1/src/mame/includes/segag80v.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/segag80v.h 2020-08-26 08:57:19.000000000 +0000 @@ -6,7 +6,10 @@ *************************************************************************/ -#include "audio/segasnd.h" +#include "audio/segaspeech.h" +#include "audio/segausb.h" +#include "audio/segag80.h" +#include "cpu/z80/z80.h" #include "machine/segag80.h" #include "sound/ay8910.h" #include "sound/samples.h" @@ -14,20 +17,45 @@ #include "screen.h" -class segag80v_state : public segag80snd_common +#define CPU_CLOCK 8000000 /* not used when video boards are connected */ +#define VIDEO_CLOCK 15468480 + +class segag80v_state : public driver_device { public: - segag80v_state(const machine_config &mconfig, device_type type, const char *tag) - : segag80snd_common(mconfig, type, tag), + segag80v_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_mainrom(*this, "maincpu"), m_mainram(*this, "mainram"), m_vectorram(*this, "vectorram"), m_maincpu(*this, "maincpu"), m_samples(*this, "samples"), - m_speech(*this, "segaspeech"), + m_speech(*this, "speech"), m_usb(*this, "usbsnd"), + m_g80_audio(*this, "g80sound"), m_aysnd(*this, "aysnd"), m_vector(*this, "vector"), - m_screen(*this, "screen") + m_screen(*this, "screen"), + m_d7d6(*this, "D7D6"), + m_d5d4(*this, "D5D4"), + m_d3d2(*this, "D3D2"), + m_d1d0(*this, "D1D0"), + m_fc(*this, "FC"), + m_coins(*this, "COINS"), + m_spinner(*this, "SPINNER"), + m_mult_data{0,0}, + m_mult_result(0), + m_spinner_select(0), + m_spinner_sign(0), + m_spinner_count(0), + m_coin_ff_state(0), + m_coin_last_state(0), + m_edgint_ff_state(0), + m_scrambled_write_pc(0), + m_decrypt(nullptr), + m_min_x(0), + m_min_y(0), + m_draw_end_time(attotime::zero) { } void g80v_base(machine_config &config); @@ -37,6 +65,7 @@ void zektor(machine_config &config); void spacfury(machine_config &config); + void init_waitstates(); void init_zektor(); void init_startrek(); void init_elim4(); @@ -44,59 +73,89 @@ void init_tacscan(); void init_spacfury(); - DECLARE_INPUT_CHANGED_MEMBER(service_switch); DECLARE_READ_LINE_MEMBER(elim4_joint_coin_r); + DECLARE_READ_LINE_MEMBER(draw_r); + DECLARE_WRITE_LINE_MEMBER(service_switch_w); + DECLARE_WRITE_LINE_MEMBER(irq_ack_w); + + template + DECLARE_WRITE_LINE_MEMBER( coin_w ) + { + const u8 mask = 1 << _Index; + + if (state == 0 && (m_coin_last_state & mask) != 0) + m_coin_ff_state |= mask; + else + m_coin_ff_state &= ~mask; + + if (state) + m_coin_last_state |= mask; + else + m_coin_last_state &= ~mask; + + update_int(); + } private: - required_shared_ptr m_mainram; - required_shared_ptr m_vectorram; + required_memory_region m_mainrom; + required_shared_ptr m_mainram; + required_shared_ptr m_vectorram; - required_device m_maincpu; + required_device m_maincpu; optional_device m_samples; - optional_device m_speech; + optional_device m_speech; optional_device m_usb; + optional_device m_g80_audio; optional_device m_aysnd; required_device m_vector; required_device m_screen; - - uint8_t m_mult_data[2]; - uint16_t m_mult_result; - uint8_t m_spinner_select; - uint8_t m_spinner_sign; - uint8_t m_spinner_count; + required_ioport m_d7d6; + required_ioport m_d5d4; + required_ioport m_d3d2; + required_ioport m_d1d0; + required_ioport m_fc; + optional_ioport m_coins; + optional_ioport m_spinner; + + u8 m_mult_data[2]; + u16 m_mult_result; + u8 m_spinner_select; + u8 m_spinner_sign; + u8 m_spinner_count; + u8 m_coin_ff_state; + u8 m_coin_last_state; + u8 m_edgint_ff_state; offs_t m_scrambled_write_pc; segag80_decrypt_func m_decrypt; int m_min_x; int m_min_y; - uint8_t g80v_opcode_r(offs_t offset); - void mainram_w(offs_t offset, uint8_t data); - void vectorram_w(offs_t offset, uint8_t data); - uint8_t mangled_ports_r(offs_t offset); - void spinner_select_w(uint8_t data); - uint8_t spinner_input_r(); - uint8_t elim4_input_r(); - void multiply_w(offs_t offset, uint8_t data); - uint8_t multiply_r(); - void coin_count_w(uint8_t data); - void unknown_w(uint8_t data); - - void elim1_sh_w(uint8_t data); - void elim2_sh_w(uint8_t data); - void zektor1_sh_w(uint8_t data); - void zektor2_sh_w(uint8_t data); - void spacfury1_sh_w(uint8_t data); - void spacfury2_sh_w(uint8_t data); + attotime m_draw_end_time; + + u8 opcode_r(offs_t offset); + u8 mainrom_r(offs_t offset); + void mainram_w(offs_t offset, u8 data); + void vectorram_w(offs_t offset, u8 data); + u8 mangled_ports_r(offs_t offset); + void spinner_select_w(u8 data); + u8 spinner_input_r(); + u8 elim4_input_r(); + void multiply_w(offs_t offset, u8 data); + u8 multiply_r(); + void coin_count_w(u8 data); + void unknown_w(u8 data); + void update_int(); + void vblank_callback(screen_device &screen, bool state); - void usb_ram_w(offs_t offset, uint8_t data); + void usb_ram_w(offs_t offset, u8 data); virtual void machine_start() override; virtual void video_start() override; uint32_t screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - inline bool adjust_xy(int rawx, int rawy, int *outx, int *outy); + inline bool adjust_xy(int rawx, int rawy, int &outx, int &outy); void sega_generate_vector_list(); offs_t decrypt_offset(offs_t offset); - inline uint8_t demangle(uint8_t d7d6, uint8_t d5d4, uint8_t d3d2, uint8_t d1d0); + inline u8 demangle(u8 d7d6, u8 d5d4, u8 d3d2, u8 d1d0); void main_map(address_map &map); void opcodes_map(address_map &map); diff -Nru mame-0.223+dfsg.1/src/mame/includes/seicross.h mame-0.224+dfsg.1/src/mame/includes/seicross.h --- mame-0.223+dfsg.1/src/mame/includes/seicross.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/seicross.h 2020-08-26 08:57:19.000000000 +0000 @@ -26,15 +26,18 @@ m_videoram(*this, "videoram"), m_row_scroll(*this, "row_scroll"), m_spriteram2(*this, "spriteram2"), - m_colorram(*this, "colorram"), - m_decrypted_opcodes(*this, "decrypted_opcodes") + m_colorram(*this, "colorram") { } void no_nvram(machine_config &config); void friskytb(machine_config &config); void nvram(machine_config &config); + void sectznt(machine_config &config); - void init_friskytb(); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; private: required_device m_maincpu; @@ -51,7 +54,6 @@ required_shared_ptr m_row_scroll; required_shared_ptr m_spriteram2; required_shared_ptr m_colorram; - optional_shared_ptr m_decrypted_opcodes; uint8_t m_portb; tilemap_t *m_bg_tilemap; @@ -66,9 +68,6 @@ INTERRUPT_GEN_MEMBER(vblank_irq); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; void seicross_palette(palette_device &palette) const; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -78,7 +77,6 @@ void dac_w(uint8_t data); - void decrypted_opcodes_map(address_map &map); void main_map(address_map &map); void main_portmap(address_map &map); void mcu_no_nvram_map(address_map &map); diff -Nru mame-0.223+dfsg.1/src/mame/includes/spg2xx.h mame-0.224+dfsg.1/src/mame/includes/spg2xx.h --- mame-0.223+dfsg.1/src/mame/includes/spg2xx.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/spg2xx.h 2020-08-26 08:57:19.000000000 +0000 @@ -275,4 +275,43 @@ }; + +class spg2xx_game_wfcentro_state : public spg2xx_game_state +{ +public: + spg2xx_game_wfcentro_state(const machine_config &mconfig, device_type type, const char *tag) : + spg2xx_game_state(mconfig, type, tag) + { } + + void wfcentro(machine_config &config); + +protected: +// virtual void machine_start() override; +// virtual void machine_reset() override; + +// virtual void portc_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override; + +private: + + void mem_map_wfcentro(address_map& map); +}; + +class spg2xx_game_ordentv_state : public spg2xx_game_state +{ +public: + spg2xx_game_ordentv_state(const machine_config &mconfig, device_type type, const char *tag) : + spg2xx_game_state(mconfig, type, tag) + { } + + void ordentv(machine_config &config); + + void init_ordentv(); + +protected: + + uint16_t ordentv_portc_r(offs_t offset, uint16_t mem_mask = ~0); +private: +}; + + #endif // MAME_INCLUDES_SPG2XX_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/splash.h mame-0.224+dfsg.1/src/mame/includes/splash.h --- mame-0.223+dfsg.1/src/mame/includes/splash.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/splash.h 2020-08-26 08:57:19.000000000 +0000 @@ -130,6 +130,7 @@ void funystrp(machine_config &config); void init_funystrp(); + void init_ringball(); protected: virtual void machine_start() override; diff -Nru mame-0.223+dfsg.1/src/mame/includes/sspeedr.h mame-0.224+dfsg.1/src/mame/includes/sspeedr.h --- mame-0.223+dfsg.1/src/mame/includes/sspeedr.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/sspeedr.h 2020-08-26 08:57:19.000000000 +0000 @@ -6,6 +6,7 @@ #pragma once #include "emupal.h" +#include "machine/netlist.h" class sspeedr_state : public driver_device { @@ -16,48 +17,64 @@ , m_gfxdecode(*this, "gfxdecode") , m_palette(*this, "palette") , m_digits(*this, "digit%u", 0U) + , m_pedal_bit0(*this, "sound_nl:pedal_bit0") + , m_pedal_bit1(*this, "sound_nl:pedal_bit1") + , m_pedal_bit2(*this, "sound_nl:pedal_bit2") + , m_pedal_bit3(*this, "sound_nl:pedal_bit3") + , m_hi_shift(*this, "sound_nl:hi_shift") + , m_lo_shift(*this, "sound_nl:lo_shift") + , m_boom(*this, "sound_nl:boom") + , m_engine_sound_off(*this, "sound_nl:engine_sound_off") + , m_noise_cr_1(*this, "sound_nl:noise_cr_1") + , m_noise_cr_2(*this, "sound_nl:noise_cr_2") + , m_silence(*this, "sound_nl:silence") + , m_track(*this, "track") { } void sspeedr(machine_config &config); -private: - void sspeedr_int_ack_w(uint8_t data); - void sspeedr_lamp_w(uint8_t data); - void sspeedr_time_w(offs_t offset, uint8_t data); - void sspeedr_score_w(offs_t offset, uint8_t data); - void sspeedr_sound_w(uint8_t data); - void sspeedr_driver_horz_w(uint8_t data); - void sspeedr_driver_horz_2_w(uint8_t data); - void sspeedr_driver_vert_w(uint8_t data); - void sspeedr_driver_pic_w(uint8_t data); - void sspeedr_drones_horz_w(uint8_t data); - void sspeedr_drones_horz_2_w(uint8_t data); - void sspeedr_drones_mask_w(uint8_t data); - void sspeedr_drones_vert_w(offs_t offset, uint8_t data); - void sspeedr_track_horz_w(uint8_t data); - void sspeedr_track_horz_2_w(uint8_t data); - void sspeedr_track_vert_w(offs_t offset, uint8_t data); - void sspeedr_track_ice_w(uint8_t data); - void sspeedr_palette(palette_device &palette) const; - uint32_t screen_update_sspeedr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_WRITE_LINE_MEMBER(screen_vblank_sspeedr); - void sspeedr_io_map(address_map &map); - void sspeedr_map(address_map &map); - - uint8_t m_led_TIME[2]; - uint8_t m_led_SCORE[24]; - int m_toggle; - unsigned m_driver_horz; - unsigned m_driver_vert; - unsigned m_driver_pic; - unsigned m_drones_horz; - unsigned m_drones_vert[3]; - unsigned m_drones_mask; - unsigned m_track_horz; - unsigned m_track_vert[2]; - unsigned m_track_ice; +protected: virtual void video_start() override; virtual void machine_start() override { m_digits.resolve(); } + +private: + void int_ack_w(uint8_t data); + void lamp_w(uint8_t data); + void time_w(offs_t offset, uint8_t data); + void score_w(offs_t offset, uint8_t data); + void sound1_w(uint8_t data); + void sound2_w(uint8_t data); + void driver_horz_w(uint8_t data); + void driver_horz_2_w(uint8_t data); + void driver_vert_w(uint8_t data); + void driver_pic_w(uint8_t data); + void drones_horz_w(uint8_t data); + void drones_horz_2_w(uint8_t data); + void drones_mask_w(uint8_t data); + void drones_vert_w(offs_t offset, uint8_t data); + void track_horz_w(uint8_t data); + void track_horz_2_w(uint8_t data); + void track_vert_w(offs_t offset, uint8_t data); + void track_ice_w(uint8_t data); + void palette(palette_device &palette) const; + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_WRITE_LINE_MEMBER(screen_vblank); + void io_map(address_map &map); + void prg_map(address_map &map); + + uint8_t m_led_time[2]; + uint8_t m_led_score[24]; + uint8_t m_toggle; + uint16_t m_driver_horz; + uint8_t m_driver_vert; + uint8_t m_driver_pic; + uint16_t m_drones_horz; + uint8_t m_drones_vert[3]; + uint8_t m_drones_mask; + uint16_t m_track_horz; + uint8_t m_track_vert[2]; + uint8_t m_track_ice; + void draw_track(bitmap_ind16 &bitmap); void draw_drones(bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_driver(bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -65,6 +82,18 @@ required_device m_gfxdecode; required_device m_palette; output_finder<26> m_digits; + required_device m_pedal_bit0; + required_device m_pedal_bit1; + required_device m_pedal_bit2; + required_device m_pedal_bit3; + required_device m_hi_shift; + required_device m_lo_shift; + required_device m_boom; + required_device m_engine_sound_off; + required_device m_noise_cr_1; + required_device m_noise_cr_2; + required_device m_silence; + required_region_ptr m_track; }; #endif // MAME_INCLUDES_SSPEEDR_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/starcrus.h mame-0.224+dfsg.1/src/mame/includes/starcrus.h --- mame-0.223+dfsg.1/src/mame/includes/starcrus.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/starcrus.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,12 +1,14 @@ // license:BSD-3-Clause -// copyright-holders:Frank Palazzolo +// copyright-holders:Frank Palazzolo, Ryan Holtz #ifndef MAME_INCLUDES_STARCRUS_H #define MAME_INCLUDES_STARCRUS_H #pragma once -#include "sound/samples.h" #include "emupal.h" +#include "machine/netlist.h" +#include "netlist/nl_setup.h" +#include "audio/nl_starcrus.h" class starcrus_state : public driver_device { @@ -14,10 +16,12 @@ starcrus_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu"), - m_samples(*this, "samples"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), - m_led(*this, "led2") + m_led(*this, "led2"), + m_explode(*this, "sound_nl:explode%u", 1U), + m_launch(*this, "sound_nl:launch%u", 1U), + m_engine(*this, "sound_nl:engine%u", 1U) { } void starcrus(machine_config &config); @@ -41,7 +45,6 @@ virtual void video_start() override; required_device m_maincpu; - required_device m_samples; required_device m_gfxdecode; required_device m_palette; @@ -66,20 +69,8 @@ int m_s1_sprite; int m_s2_sprite; - int m_engine1_on; - int m_engine2_on; - int m_explode1_on; - int m_explode2_on; - int m_launch1_on; - int m_launch2_on; - int m_collision_reg; - int m_engine_sound_playing; - int m_explode_sound_playing; - int m_launch1_sound_playing; - int m_launch2_sound_playing; - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); int collision_check_s1s2(); int collision_check_p1p2(); @@ -88,6 +79,10 @@ void starcrus_io_map(address_map &map); void starcrus_map(address_map &map); + + required_device_array m_explode; + required_device_array m_launch; + required_device_array m_engine; }; #endif // MAME_INCLUDES_STARCRUS_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/starfire.h mame-0.224+dfsg.1/src/mame/includes/starfire.h --- mame-0.223+dfsg.1/src/mame/includes/starfire.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/starfire.h 2020-08-26 08:57:19.000000000 +0000 @@ -10,7 +10,13 @@ #pragma once -#include "sound/samples.h" +#include "machine/netlist.h" +#include "machine/pit8253.h" +#include "netlist/nl_setup.h" +#include "audio/nl_fireone.h" +#include "audio/nl_starfire.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" #include "screen.h" @@ -26,67 +32,173 @@ #define STARFIRE_NUM_PENS (0x40) -class starfire_state : public driver_device +class starfire_base_state : public driver_device { public: - starfire_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_starfire_colorram(*this, "colorram"), - m_starfire_videoram(*this, "videoram"), - m_samples(*this, "samples"), - m_nmi(*this, "NMI"), - m_input_read(*this), - m_io2_write(*this), - m_maincpu(*this, "maincpu"), - m_screen(*this, "screen") + starfire_base_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_screen(*this, "screen") + , m_colorram(*this, "colorram") + , m_videoram(*this, "videoram") + , m_dsw(*this, "DSW") + , m_system(*this, "SYSTEM") + { } + +protected: + virtual void video_start() override; + + void base_config(machine_config &config); + void main_map(address_map &map); + + required_device m_maincpu; + required_device m_screen; + required_shared_ptr m_colorram; + required_shared_ptr m_videoram; + required_ioport m_dsw; + required_ioport m_system; + + uint8_t m_vidctrl; + uint8_t m_vidctrl1; + uint8_t m_color; + uint16_t m_colors[STARFIRE_NUM_PENS]; + + emu_timer* m_scanline_timer; + bitmap_rgb32 m_screen_bitmap; + + virtual uint8_t input_r(offs_t offset) = 0; + virtual void sound_w(offs_t offset, uint8_t data) = 0; + virtual void music_w(offs_t offset, uint8_t data) { }; + + void scratch_w(offs_t offset, uint8_t data); + uint8_t scratch_r(offs_t offset); + void colorram_w(offs_t offset, uint8_t data); + uint8_t colorram_r(offs_t offset); + void videoram_w(offs_t offset, uint8_t data); + uint8_t videoram_r(offs_t offset); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + TIMER_CALLBACK_MEMBER(scanline_callback); + void get_pens(pen_t *pens); + void scanline_callback(uint32_t data); +}; + +class starfire_state : public starfire_base_state +{ +public: + starfire_state(const machine_config &mconfig, device_type type, const char *tag) + : starfire_base_state(mconfig, type, tag) + , m_dac(*this, "dac") // just to have a sound device + , m_nmi(*this, "NMI") + , m_stickz(*this, "STICKZ") + , m_stickx(*this, "STICKX") + , m_sticky(*this, "STICKY") + , m_sound_size(*this, "sound_nl:size") + , m_sound_explosion(*this, "sound_nl:sexplo") + , m_sound_tie(*this, "sound_nl:stie") + , m_sound_laser(*this, "sound_nl:slaser") + , m_sound_track(*this, "sound_nl:track") + , m_sound_lock(*this, "sound_nl:lock") + , m_sound_scanner(*this, "sound_nl:scanner") + , m_sound_overheat(*this, "sound_nl:oheat") { } - void fireone(machine_config &config); void starfire(machine_config &config); - void init_starfire(); - void init_fireone(); +private: + virtual void machine_start() override; + virtual void machine_reset() override; + + required_device m_dac; + + required_ioport m_nmi; + required_ioport m_stickz; + required_ioport m_stickx; + required_ioport m_sticky; + + virtual uint8_t input_r(offs_t offset) override; + virtual void sound_w(offs_t offset, uint8_t data) override; + + INTERRUPT_GEN_MEMBER(vblank_int); + + NETDEV_ANALOG_CALLBACK_MEMBER(tieon1_cb); + NETDEV_ANALOG_CALLBACK_MEMBER(laseron1_cb); + NETDEV_ANALOG_CALLBACK_MEMBER(sound_out_cb); + + uint8_t m_sound_tie_on; + uint8_t m_sound_laser_on; + + required_device m_sound_size; + required_device m_sound_explosion; + required_device m_sound_tie; + required_device m_sound_laser; + required_device m_sound_track; + required_device m_sound_lock; + required_device m_sound_scanner; + required_device m_sound_overheat; +}; + +class fireone_state : public starfire_base_state +{ +public: + fireone_state(const machine_config &mconfig, device_type type, const char *tag) + : starfire_base_state(mconfig, type, tag) + , m_pit(*this, "pit") + , m_controls(*this, "P%u", 1U) + , m_sound_left_partial_hit(*this, "sound_nl:lshpht") + , m_sound_right_partial_hit(*this, "sound_nl:rshpht") + , m_sound_left_torpedo(*this, "sound_nl:ltorp") + , m_sound_right_torpedo(*this, "sound_nl:rtorp") + , m_sound_left_boom(*this, "sound_nl:lboom") + , m_sound_right_boom(*this, "sound_nl:rboom") + , m_sound_torpedo_collision(*this, "sound_nl:torpcoll") + , m_sound_submarine_engine(*this, "sound_nl:subeng") + , m_sound_alert(*this, "sound_nl:alert") + , m_sound_sonar_enable(*this, "sound_nl:sonar_enable") + , m_sound_sonar_sync(*this, "sound_nl:sonar_sync") + , m_sound_off_left(*this, "sound_nl:lsound_off") + , m_sound_off_right(*this, "sound_nl:rsound_off") + , m_music_a(*this, "sound_nl:music_a") + , m_music_b(*this, "sound_nl:music_b") + , m_music_c(*this, "sound_nl:music_c") + { } + + void fireone(machine_config &config); private: - required_shared_ptr m_starfire_colorram; - required_shared_ptr m_starfire_videoram; - optional_device m_samples; - optional_ioport m_nmi; - - uint8_t m_prev_sound; - uint8_t m_fireone_select; - - uint8_t m_starfire_vidctrl; - uint8_t m_starfire_vidctrl1; - uint8_t m_starfire_color; - uint16_t m_starfire_colors[STARFIRE_NUM_PENS]; + virtual void machine_start() override; + virtual void machine_reset() override; - read8sm_delegate m_input_read; - write8smo_delegate m_io2_write; + required_device m_pit; + required_ioport_array<2> m_controls; - emu_timer* m_scanline_timer; - bitmap_rgb32 m_starfire_screen; + DECLARE_WRITE_LINE_MEMBER(music_a_out_cb); + DECLARE_WRITE_LINE_MEMBER(music_b_out_cb); + DECLARE_WRITE_LINE_MEMBER(music_c_out_cb); - required_device m_maincpu; - required_device m_screen; + virtual uint8_t input_r(offs_t offset) override; + virtual void sound_w(offs_t offset, uint8_t data) override; + virtual void music_w(offs_t offset, uint8_t data) override; + + uint8_t m_player_select; - void starfire_scratch_w(offs_t offset, uint8_t data); - uint8_t starfire_scratch_r(offs_t offset); - uint8_t starfire_input_r(offs_t offset); - uint8_t fireone_input_r(offs_t offset); - void starfire_sound_w(uint8_t data); - void fireone_sound_w(uint8_t data); - void starfire_colorram_w(offs_t offset, uint8_t data); - uint8_t starfire_colorram_r(offs_t offset); - void starfire_videoram_w(offs_t offset, uint8_t data); - uint8_t starfire_videoram_r(offs_t offset); - virtual void video_start() override; - uint32_t screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - TIMER_CALLBACK_MEMBER(starfire_scanline_callback); INTERRUPT_GEN_MEMBER(vblank_int); - void get_pens(pen_t *pens); - void main_map(address_map &map); + required_device m_sound_left_partial_hit; + required_device m_sound_right_partial_hit; + required_device m_sound_left_torpedo; + required_device m_sound_right_torpedo; + required_device m_sound_left_boom; + required_device m_sound_right_boom; + required_device m_sound_torpedo_collision; + required_device m_sound_submarine_engine; + required_device m_sound_alert; + required_device m_sound_sonar_enable; + required_device m_sound_sonar_sync; + required_device m_sound_off_left; + required_device m_sound_off_right; + required_device m_music_a; + required_device m_music_b; + required_device m_music_c; }; #endif // MAME_INCLUDES_STARFIRE_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/tankbatt.h mame-0.224+dfsg.1/src/mame/includes/tankbatt.h --- mame-0.223+dfsg.1/src/mame/includes/tankbatt.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/tankbatt.h 2020-08-26 08:57:19.000000000 +0000 @@ -5,7 +5,12 @@ #pragma once -#include "sound/samples.h" +#include "machine/timer.h" +#include "machine/netlist.h" + +#include "netlist/nl_setup.h" +#include "audio/nl_tankbatt.h" + #include "emupal.h" #include "tilemap.h" @@ -15,44 +20,52 @@ tankbatt_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_samples(*this, "samples"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), m_bulletsram(*this, "bulletsram"), - m_videoram(*this, "videoram") + m_videoram(*this, "videoram"), + m_player_input(*this, "P%u", 1U), + m_dips(*this, "DSW"), + m_sound_s1(*this, "sound_nl:s1"), + m_sound_s2(*this, "sound_nl:s2"), + m_sound_off(*this, "sound_nl:off"), + m_sound_engine_hi(*this, "sound_nl:engine_hi"), + m_sound_shoot(*this, "sound_nl:shoot"), + m_sound_hit(*this, "sound_nl:hit") { } void tankbatt(machine_config &config); - DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); - private: required_device m_maincpu; - required_device m_samples; required_device m_gfxdecode; required_device m_palette; required_shared_ptr m_bulletsram; required_shared_ptr m_videoram; - int m_nmi_enable; + required_ioport_array<2> m_player_input; + required_ioport m_dips; + + required_device m_sound_s1; + required_device m_sound_s2; + required_device m_sound_off; + required_device m_sound_engine_hi; + required_device m_sound_shoot; + required_device m_sound_hit; + int m_sound_enable; tilemap_t *m_bg_tilemap; uint8_t in0_r(offs_t offset); uint8_t in1_r(offs_t offset); uint8_t dsw_r(offs_t offset); - DECLARE_WRITE_LINE_MEMBER(interrupt_enable_w); - DECLARE_WRITE_LINE_MEMBER(demo_interrupt_enable_w); - DECLARE_WRITE_LINE_MEMBER(sh_expl_w); - DECLARE_WRITE_LINE_MEMBER(sh_engine_w); - DECLARE_WRITE_LINE_MEMBER(sh_fire_w); - void irq_ack_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER(coincounter_w); - DECLARE_WRITE_LINE_MEMBER(coinlockout_w); + void intack_w(uint8_t data); + void coincounter_w(int state); + void coinlockout_w(int state); void videoram_w(offs_t offset, uint8_t data); - INTERRUPT_GEN_MEMBER(interrupt); + TIMER_DEVICE_CALLBACK_MEMBER(scanline_interrupt); TILE_GET_INFO_MEMBER(get_bg_tile_info); diff -Nru mame-0.223+dfsg.1/src/mame/includes/vector06.h mame-0.224+dfsg.1/src/mame/includes/vector06.h --- mame-0.223+dfsg.1/src/mame/includes/vector06.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/vector06.h 2020-08-26 08:57:19.000000000 +0000 @@ -32,61 +32,61 @@ class vector06_state : public driver_device { public: - vector06_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_speaker(*this, "speaker"), - m_cassette(*this, "cassette"), - m_cart(*this, "cartslot"), - m_fdc(*this, "wd1793"), - m_floppy0(*this, "wd1793:0"), - m_floppy1(*this, "wd1793:1"), - m_ay(*this, "aysnd"), - m_ram(*this, RAM_TAG), - m_palette(*this, "palette"), - m_screen(*this, "screen"), - m_ppi8255(*this, "ppi8255"), - m_ppi8255_2(*this, "ppi8255_2"), - m_pit8253(*this, "pit8253"), - m_bank1(*this, "bank1"), - m_bank2(*this, "bank2"), - m_bank3(*this, "bank3"), - m_region_maincpu(*this, "maincpu"), - m_line(*this, "LINE.%u", 0), - m_reset(*this, "RESET") + vector06_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_rom(*this, "maincpu") + , m_speaker(*this, "speaker") + , m_cassette(*this, "cassette") + , m_cart(*this, "cartslot") + , m_fdc(*this, "fdc") + , m_floppy0(*this, "fdc:0") + , m_floppy1(*this, "fdc:1") + , m_ay(*this, "aysnd") + , m_ram(*this, RAM_TAG) + , m_palette(*this, "palette") + , m_screen(*this, "screen") + , m_ppi1(*this, "ppi1") + , m_ppi2(*this, "ppi2") + , m_pit(*this, "pit") + , m_bank1(*this, "bank1") + , m_bank2(*this, "bank2") + , m_bank3(*this, "bank3") + , m_io_keyboard(*this, "LINE.%u", 0U) + , m_io_reset(*this, "RESET") { } void vector06(machine_config &config); + DECLARE_INPUT_CHANGED_MEMBER(f11_button); + DECLARE_INPUT_CHANGED_MEMBER(f12_button); private: DECLARE_FLOPPY_FORMATS(floppy_formats); - uint8_t vector06_8255_portb_r(); - uint8_t vector06_8255_portc_r(); - void vector06_8255_porta_w(uint8_t data); - void vector06_8255_portb_w(uint8_t data); - void vector06_color_set(uint8_t data); - uint8_t vector06_romdisk_portb_r(); - void vector06_romdisk_portb_w(uint8_t data); - void vector06_romdisk_porta_w(uint8_t data); - void vector06_romdisk_portc_w(uint8_t data); - void vector06_disc_w(uint8_t data); - void vector06_status_callback(uint8_t data); - void vector06_ramdisk_w(uint8_t data); + uint8_t ppi1_portb_r(); + uint8_t ppi1_portc_r(); + void ppi1_porta_w(uint8_t data); + void ppi1_portb_w(uint8_t data); + void color_set(uint8_t data); + uint8_t ppi2_portb_r(); + void ppi2_portb_w(uint8_t data); + void ppi2_porta_w(uint8_t data); + void ppi2_portc_w(uint8_t data); + void disc_w(uint8_t data); + void status_callback(uint8_t data); + void ramdisk_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(speaker_w); - void vector06_set_video_mode(int width); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; - uint32_t screen_update_vector06(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(vector06_interrupt); - TIMER_CALLBACK_MEMBER(reset_check_callback); - IRQ_CALLBACK_MEMBER(vector06_irq_callback); + void machine_start() override; + void machine_reset() override; + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + IRQ_CALLBACK_MEMBER(irq_callback); + void update_mem(); - void vector06_io(address_map &map); - void vector06_mem(address_map &map); + void io_map(address_map &map); + void mem_map(address_map &map); required_device m_maincpu; + required_region_ptr m_rom; required_device m_speaker; required_device m_cassette; required_device m_cart; @@ -97,28 +97,24 @@ required_device m_ram; required_device m_palette; required_device m_screen; - required_device m_ppi8255, m_ppi8255_2; - required_device m_pit8253; + required_device m_ppi1, m_ppi2; + required_device m_pit; required_memory_bank m_bank1; required_memory_bank m_bank2; required_memory_bank m_bank3; - required_memory_region m_region_maincpu; - required_ioport_array<9> m_line; - required_ioport m_reset; + required_ioport_array<9> m_io_keyboard; + required_ioport m_io_reset; uint8_t m_keyboard_mask; uint8_t m_color_index; - uint8_t m_video_mode; uint8_t m_romdisk_msb; uint8_t m_romdisk_lsb; uint8_t m_vblank_state; uint8_t m_rambank; uint8_t m_aylatch; + bool m_video_mode; bool m_stack_state; bool m_romen; - emu_timer *m_reset_check_timer; - - void update_mem(); }; #endif // MAME_INCLUDES_VECTOR06_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/vsmile.h mame-0.224+dfsg.1/src/mame/includes/vsmile.h --- mame-0.223+dfsg.1/src/mame/includes/vsmile.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/vsmile.h 2020-08-26 08:57:19.000000000 +0000 @@ -68,6 +68,10 @@ : vsmile_base_state(mconfig, type, tag) , m_ctrl(*this, "ctrl%u", 1U) , m_dsw_region(*this, "REGION") + , m_redled(*this, "redled%u", 1U) + , m_yellowled(*this, "yellowled%u", 1U) + , m_blueled(*this, "blueled%u", 1U) + , m_greenled(*this, "greenled%u", 1U) { } void vsmile(machine_config &config); @@ -110,6 +114,11 @@ required_device_array m_ctrl; required_ioport m_dsw_region; + output_finder<2> m_redled; + output_finder<2> m_yellowled; + output_finder<2> m_blueled; + output_finder<2> m_greenled; + bool m_ctrl_rts[2]; bool m_ctrl_select[2]; }; diff -Nru mame-0.223+dfsg.1/src/mame/includes/vtech2.h mame-0.224+dfsg.1/src/mame/includes/vtech2.h --- mame-0.223+dfsg.1/src/mame/includes/vtech2.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/vtech2.h 2020-08-26 08:57:19.000000000 +0000 @@ -33,7 +33,7 @@ , m_laser_file(*this, "floppy%u", 0U) , m_gfxdecode(*this, "gfxdecode") , m_palette(*this, "palette") - , m_videoram(*this, "videoram") + , m_vram(*this, "videoram") , m_io_keyboard(*this, {"ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7", "ROWD", "ROWC", "ROWB", "ROWA"}) , m_banka(*this, "banka") , m_bankb(*this, "bankb") @@ -52,6 +52,7 @@ protected: virtual void machine_reset() override; + virtual void machine_start() override; private: void laser_fdc_w(offs_t offset, uint8_t data); @@ -59,8 +60,7 @@ void laser_two_color_w(uint8_t data); uint8_t laser_fdc_r(offs_t offset); void vtech2_palette(palette_device &palette) const; - uint32_t screen_update_laser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(vtech2_interrupt); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void mmio_w(uint8_t data); uint8_t mmio_r(offs_t offset); uint8_t cart_r(offs_t offset); @@ -75,6 +75,8 @@ void m_map500(address_map &map); void m_map700(address_map &map); + void init_waitstates(); + required_device m_maincpu; required_device m_speaker; required_device m_cassette; @@ -82,7 +84,7 @@ optional_device_array m_laser_file; required_device m_gfxdecode; required_device m_palette; - optional_shared_ptr m_videoram; + optional_shared_ptr m_vram; required_ioport_array<12> m_io_keyboard; required_device m_banka; required_device m_bankb; diff -Nru mame-0.223+dfsg.1/src/mame/includes/xavix_2000.h mame-0.224+dfsg.1/src/mame/includes/xavix_2000.h --- mame-0.223+dfsg.1/src/mame/includes/xavix_2000.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/xavix_2000.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,27 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +#ifndef MAME_INCLUDES_XAVIX_2000_H +#define MAME_INCLUDES_XAVIX_2000_H + +#include "xavix.h" + + +class xavix_2000_nv_sdb_state : public xavix_state +{ +public: + xavix_2000_nv_sdb_state(const machine_config &mconfig, device_type type, const char *tag) + : xavix_state(mconfig, type, tag) + { } + + void xavix2000_nv_sdb(machine_config &config); + +protected: + +private: + uint8_t sdb_anport0_r() { return m_mouse0x->read()^0x7f; } + uint8_t sdb_anport1_r() { return m_mouse0y->read()^0x7f; } + uint8_t sdb_anport2_r() { return m_mouse1x->read()^0x7f; } + uint8_t sdb_anport3_r() { return m_mouse1y->read()^0x7f; } +}; + +#endif // MAME_INCLUDES_XAVIX_2000_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/xavix_2002.h mame-0.224+dfsg.1/src/mame/includes/xavix_2002.h --- mame-0.223+dfsg.1/src/mame/includes/xavix_2002.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/xavix_2002.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,55 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +#ifndef MAME_INCLUDES_XAVIX_2002_H +#define MAME_INCLUDES_XAVIX_2002_H + +#include "xavix_2000.h" + +class xavix_i2c_jmat_state : public xavix_i2c_state +{ +public: + xavix_i2c_jmat_state(const machine_config &mconfig, device_type type, const char *tag) + : xavix_i2c_state(mconfig, type, tag) + { } + + void xavix2002_i2c_jmat(machine_config &config); + +private: + uint8_t read_extended_io0(); + uint8_t read_extended_io1(); + uint8_t read_extended_io2(); + void write_extended_io0(uint8_t data); + void write_extended_io1(uint8_t data); + void write_extended_io2(uint8_t data); +}; + +class xavix2002_superpttv_state : public xavix_state +{ +public: + xavix2002_superpttv_state(const machine_config &mconfig, device_type type, const char *tag) + : xavix_state(mconfig, type, tag) + { } + + void xavix2002_superpctv(machine_config &config); + +private: + uint8_t read_extended_io0() { return 0x00; }; + uint8_t read_extended_io1() { return 0x00; }; + uint8_t read_extended_io2() { return 0x00; }; + //void write_extended_io0(uint8_t data); + //void write_extended_io1(uint8_t data); + //void write_extended_io2(uint8_t data); +}; + +class xavix_i2c_bowl_state : public xavix_i2c_state +{ +public: + xavix_i2c_bowl_state(const machine_config &mconfig, device_type type, const char *tag) + : xavix_i2c_state(mconfig, type, tag) + { } + + DECLARE_READ_LINE_MEMBER(camera_r); +}; + + +#endif // MAME_INCLUDES_XAVIX_2002_H diff -Nru mame-0.223+dfsg.1/src/mame/includes/xavix.h mame-0.224+dfsg.1/src/mame/includes/xavix.h --- mame-0.223+dfsg.1/src/mame/includes/xavix.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/xavix.h 2020-08-26 08:57:19.000000000 +0000 @@ -24,6 +24,12 @@ #include "machine/xavix_anport.h" #include "machine/xavix_math.h" +// NTSC clock for regular XaviX? +#define MAIN_CLOCK XTAL(21'477'272) +// some games (eg Radica Opus) run off a 3.579545MHz XTAL ( same as the above /6 ) so presumably there is a divider / multiplier circuit on some PCBs? +// TODO: what's the PAL clock? + + class xavix_sound_device : public device_t, public device_sound_interface { public: @@ -596,26 +602,6 @@ }; -class xavix_2000_nv_sdb_state : public xavix_state -{ -public: - xavix_2000_nv_sdb_state(const machine_config &mconfig, device_type type, const char *tag) - : xavix_state(mconfig, type, tag) - { } - - void xavix2000_nv_sdb(machine_config &config); - -protected: - -private: - uint8_t sdb_anport0_r() { return m_mouse0x->read()^0x7f; } - uint8_t sdb_anport1_r() { return m_mouse0y->read()^0x7f; } - uint8_t sdb_anport2_r() { return m_mouse1x->read()^0x7f; } - uint8_t sdb_anport3_r() { return m_mouse1y->read()^0x7f; } - -}; - - class xavix_i2c_state : public xavix_state { public: @@ -673,24 +659,6 @@ }; -class xavix_i2c_jmat_state : public xavix_i2c_state -{ -public: - xavix_i2c_jmat_state(const machine_config &mconfig, device_type type, const char *tag) - : xavix_i2c_state(mconfig, type, tag) - { } - - void xavix2002_i2c_jmat(machine_config &config); - -private: - uint8_t read_extended_io0(); - uint8_t read_extended_io1(); - uint8_t read_extended_io2(); - void write_extended_io0(uint8_t data); - void write_extended_io1(uint8_t data); - void write_extended_io2(uint8_t data); -}; - class xavix_i2c_lotr_state : public xavix_i2c_state { @@ -705,15 +673,6 @@ //virtual void write_io1(uint8_t data, uint8_t direction) override; }; -class xavix_i2c_bowl_state : public xavix_i2c_state -{ -public: - xavix_i2c_bowl_state(const machine_config &mconfig, device_type type, const char *tag) - : xavix_i2c_state(mconfig, type, tag) - { } - - DECLARE_READ_LINE_MEMBER(camera_r); -}; diff -Nru mame-0.223+dfsg.1/src/mame/includes/z80ne.h mame-0.224+dfsg.1/src/mame/includes/z80ne.h --- mame-0.223+dfsg.1/src/mame/includes/z80ne.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/includes/z80ne.h 2020-08-26 08:57:19.000000000 +0000 @@ -69,11 +69,10 @@ : driver_device(mconfig, type, tag), m_uart(*this, "uart"), m_uart_clock(*this, "uart_clock"), - m_maincpu(*this, "z80ne"), + m_maincpu(*this, "maincpu"), m_cassette1(*this, "cassette"), m_cassette2(*this, "cassette2"), m_ram(*this, RAM_TAG), - m_region_z80ne(*this, "z80ne"), m_bank1(*this, "bank1"), m_bank2(*this, "bank2"), m_bank3(*this, "bank3"), @@ -84,24 +83,24 @@ m_io_rst(*this, "RST"), m_io_lx_385(*this, "LX.385"), m_lx383_digits(*this, "digit%u", 0U) - { - } + , m_rom(*this, "maincpu") + , m_mram(*this, "mainram") + { } void z80ne(machine_config &config); + void init_z80ne(); DECLARE_INPUT_CHANGED_MEMBER(z80ne_reset); protected: virtual void machine_start() override; virtual void machine_reset() override; - virtual void driver_init() override; void base_reset(); + void save_state_vars(); DECLARE_FLOPPY_FORMATS(floppy_formats); - required_device m_uart; - required_device m_uart_clock; uint8_t m_lx383_scan_counter; uint8_t m_lx383_key[LX383_KEYS]; int m_lx383_downsampler; @@ -121,11 +120,13 @@ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + memory_passthrough_handler *m_rom_shadow_tap; + required_device m_uart; + required_device m_uart_clock; required_device m_maincpu; required_device m_cassette1; required_device m_cassette2; - required_device m_ram; - required_memory_region m_region_z80ne; + optional_device m_ram; optional_memory_bank m_bank1; optional_memory_bank m_bank2; optional_memory_bank m_bank3; @@ -136,16 +137,16 @@ required_ioport m_io_rst; required_ioport m_io_lx_385; output_finder<8> m_lx383_digits; + required_region_ptr m_rom; + optional_shared_ptr m_mram; emu_timer *m_timer_nmi; - emu_timer *m_timer_reset; cassette_image_device *cassette_device_image(); - void reset_lx382_banking(); private: - void main_mem(address_map &map); - void main_io(address_map &map); + void mem_map(address_map &map); + void io_map(address_map &map); }; class z80net_state : public z80ne_state @@ -168,7 +169,6 @@ protected: virtual void machine_reset() override; - virtual void driver_init() override; DECLARE_READ_LINE_MEMBER(lx387_shift_r); DECLARE_READ_LINE_MEMBER(lx387_control_r); @@ -184,10 +184,10 @@ void reset_lx387(); - void main_io(address_map &map); + void io_map(address_map &map); private: - void main_mem(address_map &map); + void mem_map(address_map &map); }; class z80netb_state : public z80net_state @@ -202,10 +202,9 @@ protected: virtual void machine_reset() override; - virtual void driver_init() override { } private: - void main_mem(address_map &map); + void mem_map(address_map &map); }; class z80netf_state : public z80netb_state @@ -235,11 +234,10 @@ uint8_t head; /* current head */ }; - void main_mem(address_map &map); - void main_io(address_map &map); + void mem_map(address_map &map); + void io_map(address_map &map); void lx390_motor_w(uint8_t data); - uint8_t lx390_reset_bank(); uint8_t lx390_fdc_r(offs_t offset); void lx390_fdc_w(offs_t offset, uint8_t data); diff -Nru mame-0.223+dfsg.1/src/mame/layout/280zzzap.lay mame-0.224+dfsg.1/src/mame/layout/280zzzap.lay --- mame-0.223+dfsg.1/src/mame/layout/280zzzap.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/280zzzap.lay 2020-08-26 08:57:19.000000000 +0000 @@ -91,6 +91,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/4dpi.lay mame-0.224+dfsg.1/src/mame/layout/4dpi.lay --- mame-0.223+dfsg.1/src/mame/layout/4dpi.lay 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/4dpi.lay 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/brkball.lay mame-0.224+dfsg.1/src/mame/layout/brkball.lay --- mame-0.223+dfsg.1/src/mame/layout/brkball.lay 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/brkball.lay 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/buggybjr.lay mame-0.224+dfsg.1/src/mame/layout/buggybjr.lay --- mame-0.223+dfsg.1/src/mame/layout/buggybjr.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/buggybjr.lay 2020-08-26 08:57:19.000000000 +0000 @@ -72,4 +72,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/buggychl.lay mame-0.224+dfsg.1/src/mame/layout/buggychl.lay --- mame-0.223+dfsg.1/src/mame/layout/buggychl.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/buggychl.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/cbombers.lay mame-0.224+dfsg.1/src/mame/layout/cbombers.lay --- mame-0.223+dfsg.1/src/mame/layout/cbombers.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/cbombers.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/changela.lay mame-0.224+dfsg.1/src/mame/layout/changela.lay --- mame-0.223+dfsg.1/src/mame/layout/changela.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/changela.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/chqflag.lay mame-0.224+dfsg.1/src/mame/layout/chqflag.lay --- mame-0.223+dfsg.1/src/mame/layout/chqflag.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/chqflag.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/cischeat.lay mame-0.224+dfsg.1/src/mame/layout/cischeat.lay --- mame-0.223+dfsg.1/src/mame/layout/cischeat.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/cischeat.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/ck_master.lay mame-0.224+dfsg.1/src/mame/layout/ck_master.lay --- mame-0.223+dfsg.1/src/mame/layout/ck_master.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/ck_master.lay 2020-08-26 08:57:19.000000000 +0000 @@ -366,7 +366,7 @@ - + diff -Nru mame-0.223+dfsg.1/src/mame/layout/contcirc.lay mame-0.224+dfsg.1/src/mame/layout/contcirc.lay --- mame-0.223+dfsg.1/src/mame/layout/contcirc.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/contcirc.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/dblaxle.lay mame-0.224+dfsg.1/src/mame/layout/dblaxle.lay --- mame-0.223+dfsg.1/src/mame/layout/dblaxle.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/dblaxle.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/dct11em.lay mame-0.224+dfsg.1/src/mame/layout/dct11em.lay --- mame-0.223+dfsg.1/src/mame/layout/dct11em.lay 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/dct11em.lay 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/destroyr.lay mame-0.224+dfsg.1/src/mame/layout/destroyr.lay --- mame-0.223+dfsg.1/src/mame/layout/destroyr.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/destroyr.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/enforce.lay mame-0.224+dfsg.1/src/mame/layout/enforce.lay --- mame-0.223+dfsg.1/src/mame/layout/enforce.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/enforce.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/f1gpstar.lay mame-0.224+dfsg.1/src/mame/layout/f1gpstar.lay --- mame-0.223+dfsg.1/src/mame/layout/f1gpstar.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/f1gpstar.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/finallap.lay mame-0.224+dfsg.1/src/mame/layout/finallap.lay --- mame-0.223+dfsg.1/src/mame/layout/finallap.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/finallap.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/gigatron.lay mame-0.224+dfsg.1/src/mame/layout/gigatron.lay --- mame-0.223+dfsg.1/src/mame/layout/gigatron.lay 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/gigatron.lay 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/grchamp.lay mame-0.224+dfsg.1/src/mame/layout/grchamp.lay --- mame-0.223+dfsg.1/src/mame/layout/grchamp.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/grchamp.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/konamigt.lay mame-0.224+dfsg.1/src/mame/layout/konamigt.lay --- mame-0.223+dfsg.1/src/mame/layout/konamigt.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/konamigt.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/lagunar.lay mame-0.224+dfsg.1/src/mame/layout/lagunar.lay --- mame-0.223+dfsg.1/src/mame/layout/lagunar.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/lagunar.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/namcofl.lay mame-0.224+dfsg.1/src/mame/layout/namcofl.lay --- mame-0.223+dfsg.1/src/mame/layout/namcofl.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/namcofl.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/outrun.lay mame-0.224+dfsg.1/src/mame/layout/outrun.lay --- mame-0.223+dfsg.1/src/mame/layout/outrun.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/outrun.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/overdriv.lay mame-0.224+dfsg.1/src/mame/layout/overdriv.lay --- mame-0.223+dfsg.1/src/mame/layout/overdriv.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/overdriv.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/pdrift.lay mame-0.224+dfsg.1/src/mame/layout/pdrift.lay --- mame-0.223+dfsg.1/src/mame/layout/pdrift.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/pdrift.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/polepos.lay mame-0.224+dfsg.1/src/mame/layout/polepos.lay --- mame-0.223+dfsg.1/src/mame/layout/polepos.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/polepos.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/radr.lay mame-0.224+dfsg.1/src/mame/layout/radr.lay --- mame-0.223+dfsg.1/src/mame/layout/radr.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/radr.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/roundup5.lay mame-0.224+dfsg.1/src/mame/layout/roundup5.lay --- mame-0.223+dfsg.1/src/mame/layout/roundup5.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/roundup5.lay 2020-08-26 08:57:19.000000000 +0000 @@ -55,9 +55,7 @@ - - - + @@ -66,11 +64,27 @@ - - - + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/saitek_cp2000.lay mame-0.224+dfsg.1/src/mame/layout/saitek_cp2000.lay --- mame-0.223+dfsg.1/src/mame/layout/saitek_cp2000.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/saitek_cp2000.lay 2020-08-26 08:57:19.000000000 +0000 @@ -600,12 +600,10 @@ - + - - - + diff -Nru mame-0.223+dfsg.1/src/mame/layout/saitek_ssystem3.lay mame-0.224+dfsg.1/src/mame/layout/saitek_ssystem3.lay --- mame-0.223+dfsg.1/src/mame/layout/saitek_ssystem3.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/saitek_ssystem3.lay 2020-08-26 08:57:19.000000000 +0000 @@ -12,18 +12,10 @@ - - - - - - - - @@ -48,6 +40,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -160,16 +194,86 @@ - + - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -246,6 +350,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/speedfrk.lay mame-0.224+dfsg.1/src/mame/layout/speedfrk.lay --- mame-0.223+dfsg.1/src/mame/layout/speedfrk.lay 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/speedfrk.lay 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/speedrs.lay mame-0.224+dfsg.1/src/mame/layout/speedrs.lay --- mame-0.223+dfsg.1/src/mame/layout/speedrs.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/speedrs.lay 2020-08-26 08:57:19.000000000 +0000 @@ -79,4 +79,19 @@ + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/spyhunt.lay mame-0.224+dfsg.1/src/mame/layout/spyhunt.lay --- mame-0.223+dfsg.1/src/mame/layout/spyhunt.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/spyhunt.lay 2020-08-26 08:57:19.000000000 +0000 @@ -153,6 +153,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/spyhunttec.lay mame-0.224+dfsg.1/src/mame/layout/spyhunttec.lay --- mame-0.223+dfsg.1/src/mame/layout/spyhunttec.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/spyhunttec.lay 2020-08-26 08:57:19.000000000 +0000 @@ -153,6 +153,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/stocker.lay mame-0.224+dfsg.1/src/mame/layout/stocker.lay --- mame-0.223+dfsg.1/src/mame/layout/stocker.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/stocker.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/topracer.lay mame-0.224+dfsg.1/src/mame/layout/topracer.lay --- mame-0.223+dfsg.1/src/mame/layout/topracer.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/topracer.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/topspeed.lay mame-0.224+dfsg.1/src/mame/layout/topspeed.lay --- mame-0.223+dfsg.1/src/mame/layout/topspeed.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/topspeed.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/turbotag.lay mame-0.224+dfsg.1/src/mame/layout/turbotag.lay --- mame-0.223+dfsg.1/src/mame/layout/turbotag.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/turbotag.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/v4psi.lay mame-0.224+dfsg.1/src/mame/layout/v4psi.lay --- mame-0.223+dfsg.1/src/mame/layout/v4psi.lay 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/v4psi.lay 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/vsmile.lay mame-0.224+dfsg.1/src/mame/layout/vsmile.lay --- mame-0.223+dfsg.1/src/mame/layout/vsmile.lay 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/vsmile.lay 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/layout/wecleman.lay mame-0.224+dfsg.1/src/mame/layout/wecleman.lay --- mame-0.223+dfsg.1/src/mame/layout/wecleman.lay 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/layout/wecleman.lay 2020-08-26 08:57:19.000000000 +0000 @@ -69,4 +69,22 @@ + + + + + + + + + + + + + + + + + + diff -Nru mame-0.223+dfsg.1/src/mame/machine/bacta_datalogger.cpp mame-0.224+dfsg.1/src/mame/machine/bacta_datalogger.cpp --- mame-0.223+dfsg.1/src/mame/machine/bacta_datalogger.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/bacta_datalogger.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,219 @@ +// license:BSD-3-Clause +// copyright-holders:James Wallace +#include "emu.h" +#include "bacta_datalogger.h" + +#define LOG_DATA (1U << 1) + +//#define VERBOSE (LOG_DATA) +//#define LOG_OUTPUT_STREAM std::cout + +#include "logmacro.h" + +#define LOGDATA(...) LOGMASKED(LOG_DATA, __VA_ARGS__) + +/*********************************************************************************************************** + BACTA Datalogger emulation + The British Amusement and Catering Trade Association created a standard for the tracking of statistics + and other features on British AWPs across hardware manufacturers. + The specification is very simple, a 1200 baud null modem connection via RS232, with the logger sending an + ACK command (0x06) on receipt of a valid character, and NAK (0x15) on error. + In this emulation, the simplest possible device is simulated here, derived from the RS232 null_modem. + We only handle the feedback for acknowledgment, and limited logging. +************************************************************************************************************/ + +// device type definition +DEFINE_DEVICE_TYPE(BACTA_DATALOGGER, bacta_datalogger_device, "bacta_datalogger", "BACTA Datalogger") + +//------------------------------------------------- +// bacta_datalogger_device - constructor +//------------------------------------------------- + +bacta_datalogger_device::bacta_datalogger_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : bacta_datalogger_device(mconfig, BACTA_DATALOGGER, tag, owner, clock) +{ +} + +bacta_datalogger_device::bacta_datalogger_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, BACTA_DATALOGGER, tag, owner, clock), + device_serial_interface(mconfig, *this), + m_rxd_handler(*this), + m_last_input(-1), + m_output_char(0) +{ +} + +void bacta_datalogger_device::device_start() +{ + m_rxd_handler.resolve_safe(); +} + +void bacta_datalogger_device::device_reset() +{ + int startbits = 1; + int databits = 8; + parity_t parity = device_serial_interface::PARITY_ODD; + stop_bits_t stopbits = device_serial_interface::STOP_BITS_1; + + set_data_frame(startbits, databits, parity, stopbits); + + set_tra_rate(1200); + + set_rcv_rate(1200); + + output_rxd(1); +} + +void bacta_datalogger_device::tx_queue() +{ + if (is_transmit_register_empty()) + { + if (m_output_char != -1) + { + set_tra_rate(1200); + transmit_register_setup(m_output_char); + m_output_char = -1; + } + } +} + +void bacta_datalogger_device::tra_callback() +{ + output_rxd(transmit_register_get_data_bit()); +} + +void bacta_datalogger_device::tra_complete() +{ + // Shut down transmitter until there's a character + set_tra_rate(attotime::never); + tx_queue(); +} + +void bacta_datalogger_device::rcv_complete() +{ + u8 data; + + receive_register_extract(); + + data = get_received_char(); + if (data != 0x00) + { + if (data > 0x80) + { + data &= ~0x80; + LOGDATA("Retransmission of %x\n",data); + if ( data == m_last_input) + { + return; + } + } + m_last_input = data; + switch (data) + { + case 0x01: + LOGDATA("(%c) Prize 1 vend or 0x01\n",data); + break; + case 0x02: + LOGDATA("(%c) Prize 2 vend or 0x02\n",data); + break; + case 0x03: + LOGDATA("(%c) Prize 3 vend or 0x03\n",data); + break; + case 0x04: + LOGDATA("(%c) Prize 4 vend or 0x04\n",data); + break; + case 0x05: + LOGDATA("(%c) Remote Credit or 0x05\n",data); + break; + case 0x07: + LOGDATA("(%c) Idle or 0x07\n",data); + break; + case 0x08: + LOGDATA("(%c) Change or 0x08\n",data); + break; + case 0x09: + case 0x0a: + case 0x0b: + case 0x0c: + case 0x0d: + case 0x0e: + case 0x0f: + LOGDATA("(%c) User defined message or 0x0%x\n",data,data); + break; + case 0x2b: + LOGDATA("(%c) Cashbox door open 0x2b\n",data); + break; + case 0x2c: + LOGDATA("(%c) Cashbox door closed 0x2c\n",data); + break; + case 0x2d: + LOGDATA("(%c) Service door open 0x2d\n",data); + break; + case 0x2e: + LOGDATA("(%c) Service door closed 0x2e\n",data); + break; + case 0x60: + LOGDATA("(%c) Primary message (0x%x), next byte is message length\n",data,data); + break; + case 0x61: + LOGDATA("(%c) Coin Tube / Hopper Levels 0x61 \n",data); + break; + case 0x62: + LOGDATA("(%c) Secondary message (0x%x), next byte is message length\n",data,data); + break; + case 0x63: + LOGDATA("(%c) Critical Fault 0x63\n",data); + break; + case 0x64: + LOGDATA("(%c) Non Critical Fault 0x64\n",data); + break; + case 0x65: + LOGDATA("(%c) Manufacturer Message Header 0x65, next byte is message length\n",data); + break; + case 0x66: + LOGDATA("(%c) Potential Parameter Data request 0x66, not currently supported\n",data); + break; + case 0x67: + LOGDATA("(%c) Potential Parameter Report request 0x67, not currently supported\n",data); + break; + case 0x68: + LOGDATA("(%c) Multi-Stake Multi-Game message 0x68\n",data); + break; + case 0x69: + LOGDATA("(%c) Cashless source 0x69\n",data); + break; + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7a: + case 0x7b: + case 0x7c: + case 0x7d: + case 0x7e: + case 0x7f: + LOGDATA("(%c) User defined message (0x%x), next byte is message length\n",data,data); + break; + + default: + LOGDATA("(%c) Received: %02x\n",data, data); + break; + } + m_output_char = 0x06;//ACK + tx_queue(); + } + else + { + if (data != 0x00) + { + m_output_char = 0x15;//NAK + tx_queue(); + } + } +} diff -Nru mame-0.223+dfsg.1/src/mame/machine/bacta_datalogger.h mame-0.224+dfsg.1/src/mame/machine/bacta_datalogger.h --- mame-0.223+dfsg.1/src/mame/machine/bacta_datalogger.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/bacta_datalogger.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,39 @@ +// license:BSD-3-Clause +// copyright-holders:James Wallace +#ifndef MAME_BACTA_DATALOGGER_H +#define MAME_BACTA_DATALOGGER_H + +#include "diserial.h" + +class bacta_datalogger_device : public device_t, + public device_serial_interface +{ +public: + bacta_datalogger_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + + virtual WRITE_LINE_MEMBER( write_txd ) {device_serial_interface::rx_w(state); } + auto rxd_handler() { return m_rxd_handler.bind(); } + + DECLARE_WRITE_LINE_MEMBER( output_rxd ) { m_rxd_handler(state); } + +protected: + bacta_datalogger_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + + virtual void tra_callback() override; + virtual void tra_complete() override; + virtual void rcv_complete() override; + +private: + void tx_queue(); + + devcb_write_line m_rxd_handler; + uint8_t m_last_input; + uint8_t m_output_char; +}; + +DECLARE_DEVICE_TYPE(BACTA_DATALOGGER, bacta_datalogger_device) + +#endif // MAME_BACTA_DATALOGGER_H diff -Nru mame-0.223+dfsg.1/src/mame/machine/cit101_kbd.cpp mame-0.224+dfsg.1/src/mame/machine/cit101_kbd.cpp --- mame-0.223+dfsg.1/src/mame/machine/cit101_kbd.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/cit101_kbd.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -8,15 +8,46 @@ a single bidirectional wire at 4800 bits per second. Unlike the VT100 keyboard whose layout it mimics (indicator LEDs included), the CIT-101 keyboard transmits standard ASCII codes for most keys, - and the complexity of decoding these strongly suggests that this - must be done by some sort of MCU. There are also a few special - characters with the 8th bit set, including the numeric keypad, - the cursor keys, the Return key and the all-important no-key code. - - TODO: identify and dump MCU for low-level emulation - TODO: indicator LEDs - TODO: make repeat key do something - TODO: CTRL+G doesn't seem to generate a beep + and a MCU is used to decode the scans, generate clicks and beeps + and handle serial communications. The keyboard also transmits a + few non-ASCII codes with the most significant bit set (and + modifiers encoded in the next two bits): + + 80 (No key pressed) + 82 Set-Up + 83 Return (host may interpret this as CR or CR+LF) + 84 Up + 85 Down + 86 Right + 87 Left + 88 PF1 + 89 PF2 + 8A PF3 + 8B PF4 + 8C , (on numeric keypad) + 8D - (on numeric keypad) + 8E . (on numeric keypad) + 8F Enter (on numeric keypad) + 90 0 (on numeric keypad) + 91 1 (on numeric keypad) + 92 2 (on numeric keypad) + 93 3 (on numeric keypad) + 94 4 (on numeric keypad) + 95 5 (on numeric keypad) + 96 6 (on numeric keypad) + 97 7 (on numeric keypad) + 98 8 (on numeric keypad) + 99 9 (on numeric keypad) + 9A Home + 9B Break + 9C No Scroll + 9D (Keyboard ID: QWERTY layout) + 9E (Keyboard ID: AZERTY layout) + 9F (Invalid key) + + Two types of host commands are processed. Commands with bit 0 + set affect the LEDs, and commands with bit 0 clear affect the + beeper. Sending a command is necessary to initiate a new scan. **********************************************************************/ @@ -24,277 +55,339 @@ #include "cit101_kbd.h" #include "speaker.h" -#include "machine/keyboard.ipp" - //************************************************************************** -// HLE KEYBOARD DEVICE +// LLE KEYBOARD DEVICE //************************************************************************** -DEFINE_DEVICE_TYPE(CIT101_HLE_KEYBOARD, cit101_hle_keyboard_device, "cit101_hle_kbd", "CIT-101 HLE Keyboard") +DEFINE_DEVICE_TYPE(CIT101_KEYBOARD, cit101_keyboard_device, "cit101_kbd", "CIT-101 Keyboard") +DEFINE_DEVICE_TYPE(CIT101E_KEYBOARD, cit101e_keyboard_device, "cit101e_kbd", "CIT-101e Keyboard") -cit101_hle_keyboard_device::cit101_hle_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, CIT101_HLE_KEYBOARD, tag, owner, clock) - , device_matrix_keyboard_interface(mconfig, *this, "KEYS0", "KEYS1", "KEYS2", "KEYS3") - , device_buffered_serial_interface(mconfig, *this) - , m_modifiers(*this, "MODIFIERS") +cit101_keyboard_device::cit101_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) + , m_mcu(*this, "mcu") , m_beeper(*this, "beeper") + , m_keys(*this, "KEYS%d", 0U) + , m_kbid(*this, "KBID") + , m_leds(*this, "led%d", 0U) , m_txd_callback(*this) - , m_command{0, 1} + , m_kbid_enabled(false) { } -INPUT_PORTS_START(cit101_hle_keyboard) - PORT_START("MODIFIERS") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_SHIFT_2) PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_SHIFT_1) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_TOGGLE PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Repeat") PORT_CODE(KEYCODE_RCONTROL) - - PORT_START("KEYS0") - PORT_BIT(0x00000003, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] }") PORT_CHAR(']') PORT_CHAR('}') PORT_CHAR(0x1d) PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CHAR('\\') PORT_CHAR('|') PORT_CHAR(0x1c) PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('[') PORT_CHAR('{') PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR(0x1a) PORT_CODE(KEYCODE_Z) - PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CHAR('y') PORT_CHAR('Y') PORT_CHAR(0x19) PORT_CODE(KEYCODE_Y) - PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CHAR('x') PORT_CHAR('X') PORT_CHAR(0x18) PORT_CODE(KEYCODE_X) - PORT_BIT(0x00000100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CHAR('W') PORT_CHAR('W') PORT_CHAR(0x17) PORT_CODE(KEYCODE_W) - PORT_BIT(0x00000200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CHAR('v') PORT_CHAR('V') PORT_CHAR(0x16) PORT_CODE(KEYCODE_V) - PORT_BIT(0x00000400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CHAR('u') PORT_CHAR('U') PORT_CHAR(0x15) PORT_CODE(KEYCODE_U) - PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CHAR('t') PORT_CHAR('T') PORT_CHAR(0x14) PORT_CODE(KEYCODE_T) - PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CHAR('s') PORT_CHAR('S') PORT_CHAR(0x13) PORT_CODE(KEYCODE_S) - PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CHAR('r') PORT_CHAR('R') PORT_CHAR(0x12) PORT_CODE(KEYCODE_R) - PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CHAR('q') PORT_CHAR('Q') PORT_CHAR(0x11) PORT_CODE(KEYCODE_Q) - PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CHAR('p') PORT_CHAR('P') PORT_CHAR(0x10) PORT_CODE(KEYCODE_P) - PORT_BIT(0x00010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CHAR('o') PORT_CHAR('O') PORT_CHAR(0x0f) PORT_CODE(KEYCODE_O) - PORT_BIT(0x00020000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CHAR('n') PORT_CHAR('N') PORT_CHAR(0x0e) PORT_CODE(KEYCODE_N) - PORT_BIT(0x00040000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CHAR('m') PORT_CHAR('M') PORT_CODE(KEYCODE_M) - PORT_BIT(0x00080000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CHAR('l') PORT_CHAR('L') PORT_CHAR(0x0c) PORT_CODE(KEYCODE_L) - PORT_BIT(0x00100000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CHAR('k') PORT_CHAR('K') PORT_CHAR(0x0b) PORT_CODE(KEYCODE_K) - PORT_BIT(0x00200000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CHAR('j') PORT_CHAR('J') PORT_CODE(KEYCODE_J) - PORT_BIT(0x00400000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CHAR('i') PORT_CHAR('I') PORT_CODE(KEYCODE_I) - PORT_BIT(0x00800000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CHAR('h') PORT_CHAR('H') PORT_CODE(KEYCODE_H) - PORT_BIT(0x01000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G (Bell)") PORT_CHAR('g') PORT_CHAR('G') PORT_CHAR(0x07) PORT_CODE(KEYCODE_G) - PORT_BIT(0x02000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CHAR('f') PORT_CHAR('F') PORT_CHAR(0x06) PORT_CODE(KEYCODE_F) - PORT_BIT(0x04000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CHAR('e') PORT_CHAR('E') PORT_CHAR(0x05) PORT_CODE(KEYCODE_E) - PORT_BIT(0x08000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CHAR('d') PORT_CHAR('D') PORT_CHAR(0x04) PORT_CODE(KEYCODE_D) - PORT_BIT(0x10000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CHAR('c') PORT_CHAR('C') PORT_CHAR(0x03) PORT_CODE(KEYCODE_C) - PORT_BIT(0x20000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CHAR('b') PORT_CHAR('B') PORT_CHAR(0x02) PORT_CODE(KEYCODE_B) - PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR(0x01) PORT_CODE(KEYCODE_A) - PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CHAR('`') PORT_CHAR('~') PORT_CHAR(0x1e) PORT_CODE(KEYCODE_TILDE) - - PORT_START("KEYS1") - PORT_BIT(0x00000003, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('=') PORT_CHAR('+') PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(';') PORT_CHAR(':') PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('9') PORT_CHAR('(') PORT_CODE(KEYCODE_9) - PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('8') PORT_CHAR('*') PORT_CODE(KEYCODE_8) - PORT_BIT(0x00000100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('7') PORT_CHAR('&') PORT_CODE(KEYCODE_7) - PORT_BIT(0x00000200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('6') PORT_CHAR('^') PORT_CODE(KEYCODE_6) - PORT_BIT(0x00000400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('5') PORT_CHAR('%') PORT_CODE(KEYCODE_5) - PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('4') PORT_CHAR('$') PORT_CODE(KEYCODE_4) - PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 # \xc2\xa3") PORT_CHAR('3') PORT_CHAR('#', 0xa3) PORT_CODE(KEYCODE_3) - PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('@') PORT_CODE(KEYCODE_2) - PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('1') PORT_CHAR('!') PORT_CODE(KEYCODE_1) - PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR(')') PORT_CODE(KEYCODE_0) - PORT_BIT(0x00010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CHAR('/') PORT_CHAR('?') PORT_CHAR(0x1f) PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x00020000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x00040000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('_') PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x00080000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR('<') PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x00f00000, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x01000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('\'') PORT_CHAR('"') PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x7e000000, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(' ') PORT_CODE(KEYCODE_SPACE) - - PORT_START("KEYS2") - PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CHAR(0x7f) PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x0000000e, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(0x1b) PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x001fffe0, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x00200000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Line Feed") PORT_CHAR(0x0a) PORT_CODE(KEYCODE_RALT) - PORT_BIT(0x00400000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(0x09) PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x00800000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Back Space") PORT_CHAR(0x08) PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0xff000000, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START("KEYS3") - PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Key 2") - PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Key 1") - PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("No Scroll") PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK)) PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CHAR(UCHAR_MAMEKEY(PAUSE)) PORT_CODE(KEYCODE_END) - PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clr Home") PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_CODE(KEYCODE_9_PAD) - PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) PORT_CODE(KEYCODE_8_PAD) - PORT_BIT(0x00000100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) PORT_CODE(KEYCODE_7_PAD) - PORT_BIT(0x00000200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_CODE(KEYCODE_6_PAD) - PORT_BIT(0x00000400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) PORT_CODE(KEYCODE_5_PAD) - PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) PORT_CODE(KEYCODE_3_PAD) - PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) PORT_CODE(KEYCODE_2_PAD) - PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_CODE(KEYCODE_1_PAD) - PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_CODE(KEYCODE_0_PAD) - PORT_BIT(0x00010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_CODE(KEYCODE_ENTER_PAD) - PORT_BIT(0x00020000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_CODE(KEYCODE_DEL_PAD) - PORT_BIT(0x00040000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT(0x00080000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD)) PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT(0x00100000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF4") PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_CODE(KEYCODE_F4) - PORT_BIT(0x00200000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF3") PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CODE(KEYCODE_F3) - PORT_BIT(0x00400000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF2") PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_CODE(KEYCODE_F2) - PORT_BIT(0x00800000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF1") PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_CODE(KEYCODE_F1) - PORT_BIT(0x01000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x02000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x04000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x08000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CODE(KEYCODE_UP) - PORT_BIT(0x10000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CHAR(0x0d) PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x20000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Set-Up") PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CODE(KEYCODE_F5) - PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_UNUSED) // actually used for special stop code -INPUT_PORTS_END - -void cit101_hle_keyboard_device::device_add_mconfig(machine_config &config) +cit101_keyboard_device::cit101_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : cit101_keyboard_device(mconfig, CIT101_KEYBOARD, tag, owner, clock) { - SPEAKER(config, "mono").front_center(); - BEEP(config, m_beeper, 786).add_route(ALL_OUTPUTS, "mono", 0.50); } -ioport_constructor cit101_hle_keyboard_device::device_input_ports() const +cit101e_keyboard_device::cit101e_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : cit101_keyboard_device(mconfig, CIT101E_KEYBOARD, tag, owner, clock) { - return INPUT_PORTS_NAME(cit101_hle_keyboard); } -void cit101_hle_keyboard_device::device_resolve_objects() +void cit101_keyboard_device::device_resolve_objects() { m_txd_callback.resolve_safe(); + m_leds.resolve(); } -void cit101_hle_keyboard_device::device_start() +void cit101_keyboard_device::device_start() { - // keyboard USART configured for mode 8Eh - set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1_5); - set_rate(4800); - - save_item(NAME(m_command)); + save_item(NAME(m_kbid_enabled)); } -void cit101_hle_keyboard_device::device_reset() +WRITE_LINE_MEMBER(cit101_keyboard_device::write_rxd) { - stop_processing(); + m_mcu->set_input_line(MCS48_INPUT_IRQ, state ? CLEAR_LINE : ASSERT_LINE); } -void cit101_hle_keyboard_device::tra_callback() + +void cit101_keyboard_device::p2_w(u8 data) { - m_txd_callback(transmit_register_get_data_bit()); + m_txd_callback(!BIT(data, 7)); + m_beeper->set_state(BIT(data, 5)); // Bit 6 also involved? } -WRITE_LINE_MEMBER(cit101_hle_keyboard_device::write_rxd) +void cit101_keyboard_device::leds_w(u8 data) { - rx_w(state); + m_kbid_enabled = !BIT(data, 0); + + // Bit 7 = ON LINE + // Bit 6 = OFF LINE + // Bit 5 = KBD LOCKED + // Bit 4 = L1 + // Bit 3 = L2 + // Bit 2 = L3 + // Bit 1 = L4 + for (int i = 0; i < 7; i++) + m_leds[i] = !BIT(data, 7 - i); } -void cit101_hle_keyboard_device::received_byte(u8 byte) +u8 cit101_keyboard_device::keys_r() { - if (m_command[BIT(byte, 0)] != byte) - { - logerror("Command byte %d = %02X\n", BIT(byte, 0), byte); + u16 strobes = m_mcu->p1_r() | u16(m_mcu->p2_r() & 0x07) << 8; + u8 ret = 0xff; - // probably not correct - if (!BIT(byte, 0)) - m_beeper->set_state(BIT(byte, 2)); + for (int n = 0; n < 11; n++) + if (!BIT(strobes, 10 - n)) + ret &= m_keys[n]->read(); - m_command[BIT(byte, 0)] = byte; - } + if (m_kbid_enabled) + ret &= m_kbid->read(); - start_processing(attotime::from_hz(76800)); // guess + return ret; } -void cit101_hle_keyboard_device::send_key(u8 code) +void cit101_keyboard_device::prog_map(address_map &map) { - transmit_byte(code); + map(0x000, 0x7ff).rom().region("program", 0); } -void cit101_hle_keyboard_device::send_translated(u8 row, u8 column) +void cit101_keyboard_device::ext_map(address_map &map) +{ + map(0x00, 0x00).mirror(0xff).w(FUNC(cit101_keyboard_device::leds_w)); +} + + +INPUT_PORTS_START(cit101_common_keys) + PORT_START("SHIFT") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_TOGGLE PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_CODE(KEYCODE_CAPSLOCK) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_SHIFT_1) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) + PORT_BIT(0xe7, IP_ACTIVE_LOW, IPT_UNUSED) + + PORT_START("MODIFIERS") + PORT_BIT(1, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Rept") PORT_CODE(KEYCODE_RCONTROL) + PORT_BIT(2, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CHAR(UCHAR_SHIFT_2) PORT_CODE(KEYCODE_LCONTROL) + + PORT_START("KEYS0") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF3") PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CODE(KEYCODE_F3) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF4") PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_CODE(KEYCODE_F4) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_CODE(KEYCODE_9_PAD) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_CODE(KEYCODE_MINUS_PAD) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD)) PORT_CODE(KEYCODE_PLUS_PAD) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) PORT_CODE(KEYCODE_3_PAD) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_CODE(KEYCODE_ENTER_PAD) + + PORT_START("KEYS1") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF1") PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_CODE(KEYCODE_F1) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF2") PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_CODE(KEYCODE_F2) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) PORT_CODE(KEYCODE_7_PAD) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) PORT_CODE(KEYCODE_2_PAD) + + PORT_START("KEYS2") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Home Clr") PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_CODE(KEYCODE_HOME) + PORT_BIT(0x3e, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_CODE(KEYCODE_0_PAD) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_CODE(KEYCODE_DEL_PAD) + + PORT_START("KEYS3") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CODE(KEYCODE_LEFT) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CODE(KEYCODE_RIGHT) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CHAR('`') PORT_CHAR('~') PORT_CHAR(0x1e) PORT_CODE(KEYCODE_TILDE) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Break") PORT_CHAR(UCHAR_MAMEKEY(PAUSE)) PORT_CODE(KEYCODE_END) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Back Space") PORT_CHAR(0x08) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CHAR(UCHAR_MAMEKEY(DEL)) PORT_CODE(KEYCODE_DEL) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Line Feed") PORT_CHAR(0x0a) PORT_CODE(KEYCODE_RALT) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CHAR('\\') PORT_CHAR('|') PORT_CHAR(0x1c) PORT_CODE(KEYCODE_BACKSLASH) + + PORT_START("KEYS4") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CODE(KEYCODE_UP) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CODE(KEYCODE_DOWN) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('_') PORT_CODE(KEYCODE_MINUS) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('=') PORT_CHAR('+') PORT_CODE(KEYCODE_EQUALS) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('[') PORT_CHAR('{') PORT_CODE(KEYCODE_OPENBRACE) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CHAR(']') PORT_CHAR('}') PORT_CHAR(0x1d) PORT_CODE(KEYCODE_CLOSEBRACE) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\'') PORT_CHAR('"') PORT_CODE(KEYCODE_QUOTE) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CHAR(0x0d) PORT_CODE(KEYCODE_ENTER) + + PORT_START("KEYS5") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('9') PORT_CHAR('(') PORT_CODE(KEYCODE_9) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR(')') PORT_CODE(KEYCODE_0) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CHAR('o') PORT_CHAR('O') PORT_CHAR(0x0f) PORT_CODE(KEYCODE_O) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CHAR('p') PORT_CHAR('P') PORT_CHAR(0x10) PORT_CODE(KEYCODE_P) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CHAR('l') PORT_CHAR('L') PORT_CHAR(0x0c) PORT_CODE(KEYCODE_L) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(';') PORT_CHAR(':') PORT_CODE(KEYCODE_COLON) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_CODE(KEYCODE_STOP) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CHAR('/') PORT_CHAR('?') PORT_CHAR(0x1f) PORT_CODE(KEYCODE_SLASH) + + PORT_START("KEYS6") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('7') PORT_CHAR('&') PORT_CODE(KEYCODE_7) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('8') PORT_CHAR('*') PORT_CODE(KEYCODE_8) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CHAR('u') PORT_CHAR('U') PORT_CHAR(0x15) PORT_CODE(KEYCODE_U) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CHAR('i') PORT_CHAR('I') PORT_CODE(KEYCODE_I) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CHAR('j') PORT_CHAR('J') PORT_CODE(KEYCODE_J) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CHAR('k') PORT_CHAR('K') PORT_CHAR(0x0b) PORT_CODE(KEYCODE_K) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CHAR('m') PORT_CHAR('M') PORT_CODE(KEYCODE_M) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR('<') PORT_CODE(KEYCODE_COMMA) + + PORT_START("KEYS7") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('5') PORT_CHAR('%') PORT_CODE(KEYCODE_5) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('6') PORT_CHAR('^') PORT_CODE(KEYCODE_6) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CHAR('t') PORT_CHAR('T') PORT_CHAR(0x14) PORT_CODE(KEYCODE_T) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CHAR('y') PORT_CHAR('Y') PORT_CHAR(0x19) PORT_CODE(KEYCODE_Y) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G (Bell)") PORT_CHAR('g') PORT_CHAR('G') PORT_CHAR(0x07) PORT_CODE(KEYCODE_G) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CHAR('h') PORT_CHAR('H') PORT_CODE(KEYCODE_H) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CHAR('b') PORT_CHAR('B') PORT_CHAR(0x02) PORT_CODE(KEYCODE_B) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CHAR('n') PORT_CHAR('N') PORT_CHAR(0x0e) PORT_CODE(KEYCODE_N) + + PORT_START("KEYS8") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # \xc2\xa3") PORT_CHAR('3') PORT_CHAR('#', 0xa3) PORT_CODE(KEYCODE_3) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('4') PORT_CHAR('$') PORT_CODE(KEYCODE_4) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CHAR('e') PORT_CHAR('E') PORT_CHAR(0x05) PORT_CODE(KEYCODE_E) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CHAR('r') PORT_CHAR('R') PORT_CHAR(0x12) PORT_CODE(KEYCODE_R) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CHAR('d') PORT_CHAR('D') PORT_CHAR(0x04) PORT_CODE(KEYCODE_D) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CHAR('f') PORT_CHAR('F') PORT_CHAR(0x06) PORT_CODE(KEYCODE_F) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CHAR('c') PORT_CHAR('C') PORT_CHAR(0x03) PORT_CODE(KEYCODE_C) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CHAR('v') PORT_CHAR('V') PORT_CHAR(0x16) PORT_CODE(KEYCODE_V) + + PORT_START("KEYS9") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('1') PORT_CHAR('!') PORT_CODE(KEYCODE_1) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('@') PORT_CODE(KEYCODE_2) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CHAR('q') PORT_CHAR('Q') PORT_CHAR(0x11) PORT_CODE(KEYCODE_Q) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CHAR('w') PORT_CHAR('W') PORT_CHAR(0x17) PORT_CODE(KEYCODE_W) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR(0x01) PORT_CODE(KEYCODE_A) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CHAR('s') PORT_CHAR('S') PORT_CHAR(0x13) PORT_CODE(KEYCODE_S) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR(0x1a) PORT_CODE(KEYCODE_Z) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CHAR('x') PORT_CHAR('X') PORT_CHAR(0x18) PORT_CODE(KEYCODE_X) + + PORT_START("KEYS10") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Set-Up") PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CODE(KEYCODE_F5) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(0x1b) PORT_CODE(KEYCODE_ESC) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(0x09) PORT_CODE(KEYCODE_TAB) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("No Scroll") PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK)) PORT_CODE(KEYCODE_LALT) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(' ') PORT_CODE(KEYCODE_SPACE) +INPUT_PORTS_END + +INPUT_PORTS_START(cit101_keyboard) + PORT_INCLUDE(cit101_common_keys) + + PORT_MODIFY("KEYS3") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CHAR('`') PORT_CHAR('~') PORT_CHAR(0x1e) PORT_CODE(KEYCODE_TILDE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('<') PORT_CHAR('>') PORT_CODE(KEYCODE_TILDE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CHAR('\\') PORT_CHAR('|') PORT_CHAR(0x1c) PORT_CODE(KEYCODE_BACKSLASH) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("` # \xc2\xa3") PORT_CHAR('`') PORT_CHAR('#', 0xa3) PORT_CODE(KEYCODE_BACKSLASH) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + + PORT_MODIFY("KEYS4") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('_') PORT_CODE(KEYCODE_MINUS) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\'') PORT_CHAR('?') PORT_CODE(KEYCODE_MINUS) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('=') PORT_CHAR('+') PORT_CODE(KEYCODE_EQUALS) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('^') PORT_CHAR('~') PORT_CODE(KEYCODE_EQUALS) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('[') PORT_CHAR('{') PORT_CODE(KEYCODE_OPENBRACE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('@') PORT_CHAR('\\') PORT_CODE(KEYCODE_OPENBRACE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CHAR(']') PORT_CHAR('}') PORT_CHAR(0x1d) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('&') PORT_CHAR('*') PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\'') PORT_CHAR('"') PORT_CODE(KEYCODE_QUOTE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('|') PORT_CHAR('[') PORT_CODE(KEYCODE_QUOTE) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + + PORT_MODIFY("KEYS5") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('9') PORT_CHAR('(') PORT_CODE(KEYCODE_9) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('9') PORT_CHAR(')') PORT_CODE(KEYCODE_9) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR(')') PORT_CODE(KEYCODE_0) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR('=') PORT_CODE(KEYCODE_0) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(';') PORT_CHAR(':') PORT_CODE(KEYCODE_COLON) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('{') PORT_CHAR('}') PORT_CODE(KEYCODE_COLON) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_CODE(KEYCODE_STOP) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR(':') PORT_CODE(KEYCODE_STOP) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('/') PORT_CHAR('?') PORT_CODE(KEYCODE_SLASH) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('_') PORT_CODE(KEYCODE_SLASH) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + + PORT_MODIFY("KEYS6") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('7') PORT_CHAR('&') PORT_CODE(KEYCODE_7) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('7') PORT_CHAR('/') PORT_CODE(KEYCODE_7) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('8') PORT_CHAR('*') PORT_CODE(KEYCODE_8) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('8') PORT_CHAR('(') PORT_CODE(KEYCODE_8) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR('<') PORT_CODE(KEYCODE_COMMA) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR(';') PORT_CODE(KEYCODE_COMMA) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + + PORT_MODIFY("KEYS7") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('6') PORT_CHAR('^') PORT_CODE(KEYCODE_6) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('6') PORT_CHAR('+') PORT_CODE(KEYCODE_6) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + + PORT_MODIFY("KEYS8") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # \xc2\xa3") PORT_CHAR('3') PORT_CHAR('#', 0xa3) PORT_CODE(KEYCODE_3) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('3') PORT_CHAR(']') PORT_CODE(KEYCODE_3) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + + PORT_MODIFY("KEYS9") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('@') PORT_CODE(KEYCODE_2) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('"') PORT_CODE(KEYCODE_2) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CHAR('q') PORT_CHAR('Q') PORT_CHAR(0x11) PORT_CODE(KEYCODE_Q) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR(0x01) PORT_CODE(KEYCODE_Q) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CHAR('w') PORT_CHAR('W') PORT_CHAR(0x17) PORT_CODE(KEYCODE_W) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR(0x1a) PORT_CODE(KEYCODE_W) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR(0x01) PORT_CODE(KEYCODE_A) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CHAR('q') PORT_CHAR('Q') PORT_CHAR(0x11) PORT_CODE(KEYCODE_A) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR(0x1a) PORT_CODE(KEYCODE_Z) PORT_CONDITION("KBID", 0x01, EQUALS, 0x01) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CHAR('w') PORT_CHAR('W') PORT_CHAR(0x17) PORT_CODE(KEYCODE_Z) PORT_CONDITION("KBID", 0x01, EQUALS, 0x00) + + PORT_START("KBID") + PORT_CONFNAME(0x01, 0x01, "Keyboard Layout") + PORT_CONFSETTING(0x01, "QWERTY") + PORT_CONFSETTING(0x00, "AZERTY") + PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED) +INPUT_PORTS_END + +INPUT_PORTS_START(cit101e_keyboard) + PORT_INCLUDE(cit101_common_keys) + + PORT_MODIFY("KEYS0") + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad Enter Print") PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_CODE(KEYCODE_ENTER_PAD) + + PORT_START("KBID") + PORT_CONFNAME(0x01, 0x01, "Shift+Tab Code") + PORT_CONFSETTING(0x01, "FS") + PORT_CONFSETTING(0x00, "HT") + PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED) +INPUT_PORTS_END + +ioport_constructor cit101_keyboard_device::device_input_ports() const { - const ioport_value modifiers = m_modifiers->read(); + return INPUT_PORTS_NAME(cit101_keyboard); +} - logerror("Key row %d column %d\n", row, column); - switch (row) - { - case 0: - if (column < 5) - send_key((BIT(modifiers, 0) ? 0x1f : BIT(modifiers, 1) ? 0x7f : 0x5f) - column); - else if (column < 31) - send_key((BIT(modifiers, 0) ? 0x1f : BIT(modifiers, 1) || BIT(modifiers, 2) ? 0x5f : 0x7f) - column); - else - send_key(BIT(modifiers, 0) ? 0x1e : BIT(modifiers, 1) ? '~' : 0x7f - column); - break; - case 1: - if (BIT(modifiers, 0) && column == 16) - send_key(0x2f - column); - else if (!BIT(modifiers, 1) || column == 31) - send_key((column == 31 && BIT(modifiers, 0) ? 0x1f : 0x3f) - column); - else switch (0x3f - column) - { - case '=': - send_key('+'); - break; - case ';': - send_key(':'); - break; - case '9': - send_key('('); - break; - case '8': - send_key('*'); - break; - case '7': - send_key('&'); - break; - case '6': - send_key('^'); - break; - case '2': - send_key('@'); - break; - case '0': - send_key(')'); - break; - case '-': - send_key('_'); - break; - case '\'': - send_key('"'); - break; - default: - send_key(0x2f ^ column); - break; - } - break; - case 2: - send_key((column == 0) ? 0x7f : 0x1f - column); - break; - case 3: - send_key((0x9f - column) | (BIT(modifiers, 0) ? 0x40 : 0) | (BIT(modifiers, 1) ? 0x20 : 0)); - break; - } +ioport_constructor cit101e_keyboard_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(cit101e_keyboard); } -void cit101_hle_keyboard_device::key_make(u8 row, u8 column) +void cit101_keyboard_device::device_add_mconfig(machine_config &config) { - send_translated(row, column); + I8035(config, m_mcu, 2.376_MHz_XTAL); // TMP8048P in EA mode (location marked "8048/8035/8748" on original keyboard) + m_mcu->set_addrmap(AS_PROGRAM, &cit101_keyboard_device::prog_map); + m_mcu->set_addrmap(AS_IO, &cit101_keyboard_device::ext_map); + m_mcu->bus_in_cb().set(FUNC(cit101_keyboard_device::keys_r)); + m_mcu->p2_in_cb().set_ioport("SHIFT"); + m_mcu->p2_out_cb().set(FUNC(cit101_keyboard_device::p2_w)); + m_mcu->t0_in_cb().set_ioport("MODIFIERS").bit(0); + m_mcu->t1_in_cb().set_ioport("MODIFIERS").bit(1); + + SPEAKER(config, "mono").front_center(); + BEEP(config, m_beeper, 786).add_route(ALL_OUTPUTS, "mono", 0.5); // unknown frequency (original keyboard has a NE555) } -void cit101_hle_keyboard_device::key_repeat(u8 row, u8 column) + +ROM_START(cit101_kbd) + ROM_REGION(0x800, "program", 0) + ROM_LOAD("pkb00.ic4", 0x000, 0x800, CRC(f93f9ce1) SHA1(50fe6b5448f8ec330fa09e8b0125b5b09c680859)) // 1st and 2nd halves identical +ROM_END + +ROM_START(cit101e_kbd) + ROM_REGION(0x1000, "program", 0) + ROM_LOAD("101e-v12b_kbd_rom.ic4", 0x0000, 0x1000, CRC(b9eeac40) SHA1(1bbbe0d422f87c856a10de5a1492297958ff47f6)) // 1st and 2nd halves identical +ROM_END + +const tiny_rom_entry *cit101_keyboard_device::device_rom_region() const { - send_translated(row, column); + return ROM_NAME(cit101_kbd); } -void cit101_hle_keyboard_device::scan_complete() +const tiny_rom_entry *cit101e_keyboard_device::device_rom_region() const { - if (are_all_keys_up()) - { - send_key(0x80); - stop_processing(); - } + return ROM_NAME(cit101e_kbd); } diff -Nru mame-0.223+dfsg.1/src/mame/machine/cit101_kbd.h mame-0.224+dfsg.1/src/mame/machine/cit101_kbd.h --- mame-0.223+dfsg.1/src/mame/machine/cit101_kbd.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/cit101_kbd.h 2020-08-26 08:57:19.000000000 +0000 @@ -11,55 +11,80 @@ #pragma once -#include "machine/keyboard.h" +#include "cpu/mcs48/mcs48.h" #include "sound/beep.h" -#include "diserial.h" //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -// ======================> cit101_hle_keyboard_device +// ======================> cit101_keyboard_device -class cit101_hle_keyboard_device : public device_t, public device_matrix_keyboard_interface<4U>, public device_buffered_serial_interface<16U> +class cit101_keyboard_device : public device_t { public: - // construction/destruction - cit101_hle_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); + // device type constructor + cit101_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); - // configuration + static constexpr feature_type imperfect_features() { return feature::SOUND; } + + // callback configuration auto txd_callback() { return m_txd_callback.bind(); } + // serial line input DECLARE_WRITE_LINE_MEMBER(write_rxd); protected: - // device_t overrides - virtual void device_add_mconfig(machine_config &config) override; - virtual ioport_constructor device_input_ports() const override; + cit101_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + + // device-level overrides virtual void device_resolve_objects() override; virtual void device_start() override; - virtual void device_reset() override; - - // device_buffered_serial_interface overrides - virtual void tra_callback() override; - virtual void received_byte(u8 byte) override; - - // device_matrix_keyboard_interface overrides - virtual void key_make(u8 row, u8 column) override; - virtual void key_repeat(u8 row, u8 column) override; - virtual void scan_complete() override; + virtual ioport_constructor device_input_ports() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; - void send_translated(u8 row, u8 column); - void send_key(u8 code); private: - required_ioport m_modifiers; + // MCU handlers + void p2_w(u8 data); + void leds_w(u8 data); + u8 keys_r(); + + // address maps + void prog_map(address_map &map); + void ext_map(address_map &map); + + // object finders + required_device m_mcu; required_device m_beeper; + required_ioport_array<11> m_keys; + required_ioport m_kbid; + output_finder<7> m_leds; + + // output callback devcb_write_line m_txd_callback; - u8 m_command[2]; + + // internal state + bool m_kbid_enabled; +}; + +// ======================> cit101e_keyboard_device + +class cit101e_keyboard_device : public cit101_keyboard_device +{ +public: + // device type constructor + cit101e_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); + +protected: + // device-level overrides + virtual ioport_constructor device_input_ports() const override; + virtual const tiny_rom_entry *device_rom_region() const override; }; -// device type definition -DECLARE_DEVICE_TYPE(CIT101_HLE_KEYBOARD, cit101_hle_keyboard_device) +// device type declarations +DECLARE_DEVICE_TYPE(CIT101_KEYBOARD, cit101_keyboard_device) +DECLARE_DEVICE_TYPE(CIT101E_KEYBOARD, cit101e_keyboard_device) #endif diff -Nru mame-0.223+dfsg.1/src/mame/machine/dai.cpp mame-0.224+dfsg.1/src/mame/machine/dai.cpp --- mame-0.223+dfsg.1/src/mame/machine/dai.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/dai.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -23,11 +23,8 @@ { switch (id) { - case TIMER_BOOTSTRAP: - m_maincpu->set_pc(0xc000); - break; case TIMER_TMS5501: - m_tms5501->xi7_w((ioport("IN8")->read() & 0x04) ? 1:0); + m_tms5501->xi7_w(BIT(m_io_keyboard[8]->read(), 2)); timer_set(attotime::from_hz(100), TIMER_TMS5501); break; default: @@ -41,33 +38,24 @@ /* Memory */ -void dai_state::dai_stack_interrupt_circuit_w(uint8_t data) +void dai_state::stack_interrupt_circuit_w(uint8_t data) { m_tms5501->sens_w(1); m_tms5501->sens_w(0); } -void dai_state::dai_update_memory(int dai_rom_bank) -{ - membank("bank2")->set_entry(dai_rom_bank); -} - - -uint8_t dai_state::dai_keyboard_r() +uint8_t dai_state::keyboard_r() { uint8_t data = 0x00; - static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" }; - for (int i = 0; i < 8; i++) - { + for (u8 i = 0; i < 8; i++) if (m_keyboard_scan_mask & (1 << i)) - data |= ioport(keynames[i])->read(); - } + data |= m_io_keyboard[i]->read(); return data; } -void dai_state::dai_keyboard_w(uint8_t data) +void dai_state::keyboard_w(uint8_t data) { m_keyboard_scan_mask = data; } @@ -79,16 +67,33 @@ void dai_state::machine_start() { - membank("bank2")->configure_entries(0, 4, memregion("maincpu")->base() + 0x010000, 0x1000); - timer_set(attotime::zero, TIMER_BOOTSTRAP); + membank("bank2")->configure_entries(0, 4, m_rom + 0x2000, 0x1000); timer_set(attotime::from_hz(100), TIMER_TMS5501); - - memset(m_ram->pointer(), 0, m_ram->size()); + save_item(NAME(m_paddle_select)); + save_item(NAME(m_paddle_enable)); + save_item(NAME(m_cassette_motor)); + save_item(NAME(m_keyboard_scan_mask)); + save_item(NAME(m_4_colours_palette)); } void dai_state::machine_reset() { - membank("bank1")->set_base(m_ram->pointer()); + address_space &program = m_maincpu->space(AS_PROGRAM); + program.install_rom(0x0000, 0x07ff, m_rom); // do it here for F3 + m_rom_shadow_tap = program.install_read_tap(0xc000, 0xc7ff, "rom_shadow_r",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + { + // delete this tap + m_rom_shadow_tap->remove(); + + // reinstall ram over the rom shadow + m_maincpu->space(AS_PROGRAM).install_ram(0x0000, 0x07ff, m_ram); + } + + // return the original data + return data; + }); } /*************************************************************************** @@ -120,13 +125,13 @@ bit 6-7 ROM bank switching ***************************************************************************/ -uint8_t dai_state::dai_io_discrete_devices_r(offs_t offset) +uint8_t dai_state::io_discrete_devices_r(offs_t offset) { - uint8_t data = 0x00; + uint8_t data = 0xff; - switch(offset & 0x000f) { - case 0x00: - data = ioport("IN8")->read(); + switch(offset & 0x0f) { + case 0: + data = m_io_keyboard[8]->read(); data |= 0x08; // serial ready if (machine().rand()&0x01) data |= 0x40; // random number generator @@ -135,42 +140,40 @@ break; default: - data = 0xff; LOG_DAI_PORT_R (offset, data, "discrete devices - unmapped"); - break; } return data; } -void dai_state::dai_io_discrete_devices_w(offs_t offset, uint8_t data) +void dai_state::io_discrete_devices_w(offs_t offset, uint8_t data) { switch(offset & 0x000f) { case 0x04: m_sound->set_volume(offset, data); LOG_DAI_PORT_W (offset, data&0x0f, "discrete devices - osc. 0 volume"); - LOG_DAI_PORT_W (offset, (data&0xf0)>>4, "discrete devices - osc. 1 volume"); + LOG_DAI_PORT_W (offset, BIT(data, 4, 4), "discrete devices - osc. 1 volume"); break; case 0x05: m_sound->set_volume(offset, data); LOG_DAI_PORT_W (offset, data&0x0f, "discrete devices - osc. 2 volume"); - LOG_DAI_PORT_W (offset, (data&0xf0)>>4, "discrete devices - noise volume"); + LOG_DAI_PORT_W (offset, BIT(data, 4, 4), "discrete devices - noise volume"); break; case 0x06: - m_paddle_select = (data&0x06)>>2; - m_paddle_enable = (data&0x08)>>3; - m_cassette_motor[0] = (data&0x10)>>4; - m_cassette_motor[1] = (data&0x20)>>5; + m_paddle_select = BIT(data, 1, 2); + m_paddle_enable = BIT(data, 3); + m_cassette_motor[0] = BIT(data, 4); + m_cassette_motor[1] = BIT(data, 5); m_cassette->change_state(m_cassette_motor[0]?CASSETTE_MOTOR_DISABLED:CASSETTE_MOTOR_ENABLED, CASSETTE_MASK_MOTOR); - m_cassette->output((data & 0x01) ? -1.0 : 1.0); - dai_update_memory ((data&0xc0)>>6); - LOG_DAI_PORT_W (offset, (data&0x06)>>2, "discrete devices - paddle select"); - LOG_DAI_PORT_W (offset, (data&0x08)>>3, "discrete devices - paddle enable"); - LOG_DAI_PORT_W (offset, (data&0x10)>>4, "discrete devices - cassette motor 1"); - LOG_DAI_PORT_W (offset, (data&0x20)>>5, "discrete devices - cassette motor 2"); - LOG_DAI_PORT_W (offset, (data&0xc0)>>6, "discrete devices - ROM bank"); + m_cassette->output(BIT(data, 0) ? -1.0 : 1.0); + membank("bank2")->set_entry(BIT(data, 6, 2)); + LOG_DAI_PORT_W (offset, BIT(data, 1, 2), "discrete devices - paddle select"); + LOG_DAI_PORT_W (offset, BIT(data, 3), "discrete devices - paddle enable"); + LOG_DAI_PORT_W (offset, BIT(data, 4), "discrete devices - cassette motor 1"); + LOG_DAI_PORT_W (offset, BIT(data, 5), "discrete devices - cassette motor 2"); + LOG_DAI_PORT_W (offset, BIT(data, 6, 2), "discrete devices - ROM bank"); break; default: @@ -188,14 +191,14 @@ ***************************************************************************/ -uint8_t dai_state::dai_pit_r(offs_t offset) +uint8_t dai_state::pit_r(offs_t offset) { - return m_pit->read((offset >> 1) & 3); + return m_pit->read(BIT(offset, 1, 2)); } -void dai_state::dai_pit_w(offs_t offset, uint8_t data) +void dai_state::pit_w(offs_t offset, uint8_t data) { - m_pit->write((offset >> 1) & 3, data); + m_pit->write(BIT(offset, 1, 2), data); } /*************************************************************************** @@ -204,13 +207,13 @@ ***************************************************************************/ -uint8_t dai_state::dai_amd9511_r() +uint8_t dai_state::amd9511_r() { - /* optional and no present at this moment */ + /* optional and not present at this moment */ return 0xff; } -void dai_state::dai_amd9511_w(offs_t offset, uint8_t data) +void dai_state::amd9511_w(offs_t offset, uint8_t data) { logerror ("Writing to AMD9511 math chip, %04x, %02x\n", offset, data); } diff -Nru mame-0.223+dfsg.1/src/mame/machine/electron.cpp mame-0.224+dfsg.1/src/mame/machine/electron.cpp --- mame-0.223+dfsg.1/src/mame/machine/electron.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/electron.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -151,6 +151,10 @@ uint8_t electron_state::electron_mem_r(offs_t offset) { + uint8_t data = 0xff; + + data &= m_exp->expbus_r(offset); + switch (m_mrb.read_safe(0)) { case 0x00: /* Normal */ @@ -167,11 +171,15 @@ if (m_mrb_mapped && (offset < 0x3000 || !m_vdu_drivers)) offset += 0x8000; break; } - return m_ram->read(offset); + data &= m_ram->read(offset); + + return data; } void electron_state::electron_mem_w(offs_t offset, uint8_t data) { + m_exp->expbus_w(offset, data); + switch (m_mrb.read_safe(0)) { case 0x00: /* Normal */ diff -Nru mame-0.223+dfsg.1/src/mame/machine/hec2hrp.cpp mame-0.224+dfsg.1/src/mame/machine/hec2hrp.cpp --- mame-0.223+dfsg.1/src/mame/machine/hec2hrp.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/hec2hrp.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -36,15 +36,12 @@ - http://dchector.free.fr/ - http://hectorvictor.free.fr/ - TODO : Add cartridge functionality, - Adjust the one shot and A/D timing (sn76477) */ #include "emu.h" #include "includes/hec2hrp.h" #include "cpu/z80/z80.h" -#include "sound/wave.h" /* for K7 sound */ #include "speaker.h" @@ -67,36 +64,48 @@ hec2mx40 */ -/* Helper function*/ -int hec2hrp_state::has_disc2() + +void hec2hrp_state::init_mx40() +{ + m_has_disc2 = true; + m_has_minidisc = false; + m_is_hr = true; + m_is_extended = true; +} + +void hec2hrp_state::init_mdhrx() { - return ((strncmp(machine().system().name , "hec2hrx" , 7)==0) || - (strncmp(machine().system().name , "hec2mx40" , 8)==0) || - (strncmp(machine().system().name , "hec2mx80" , 8)==0)); + m_has_disc2 = false; + m_has_minidisc = true; + m_is_hr = true; + m_is_extended = true; } -int hec2hrp_state::has_minidisc() +void hec2hrp_state::init_victor() { - return ((strncmp(machine().system().name , "hec2mdhrx", 9)==0)); + m_has_disc2 = false; + m_has_minidisc = false; + m_is_hr = true; + m_is_extended = false; } -int hec2hrp_state::is_hr() +void hec2hrp_state::init_hrx() { - return ((strncmp(machine().system().name , "hec2hr" , 6)==0) || //Aviable for hr & hrp - (strncmp(machine().system().name , "hec2mdhrx", 9)==0) || - (strncmp(machine().system().name , "victor" , 6)==0) || - (strncmp(machine().system().name , "hec2mx40" , 8)==0) || - (strncmp(machine().system().name , "hec2mx80" , 8)==0)); + m_has_disc2 = true; + m_has_minidisc = false; + m_is_hr = false; + m_is_extended = true; } -int hec2hrp_state::is_extended() +void hec2hrp_state::init_interact() { - return ((strncmp(machine().system().name , "hec2mdhrx", 9)==0) || - (strncmp(machine().system().name , "hec2hrx" , 7)==0) || - (strncmp(machine().system().name , "hec2mx40" , 8)==0) || - (strncmp(machine().system().name , "hec2mx80" , 8)==0)); + m_has_disc2 = false; + m_has_minidisc = false; + m_is_hr = false; + m_is_extended = false; } + /* Cassette timer*/ TIMER_CALLBACK_MEMBER(hec2hrp_state::cassette_clock) { @@ -119,61 +128,57 @@ floppy->ss_w(BIT(data, 4)); } - membank("bank2")->set_entry(BIT(data, 5) ? HECTOR_BANK_BASE : HECTOR_BANK_DISC); + m_bank[2]->set_entry(BIT(data, 5) ? HECTOR_BANK_BASE : HECTOR_BANK_DISC); } void hec2hrp_state::switch_bank_w(offs_t offset, uint8_t data) { if (offset==0x00) { - if (is_extended()) - { - membank("bank1")->set_entry(HECTOR_BANK_VIDEO); - } - if (m_flag_clk == 1) + if (m_is_extended) + m_bank[1]->set_entry(HECTOR_BANK_VIDEO); + + if (m_flag_clk) { - m_flag_clk = 0; + m_flag_clk = false; m_maincpu->set_unscaled_clock(XTAL(5'000'000)); } } if (offset==0x04) { - m_hector_flag_hr = 0; - if (is_extended()) - { - membank("bank1")->set_entry(HECTOR_BANK_VIDEO); - } - if (m_flag_clk == 0) + m_hector_flag_hr = false; + if (m_is_extended) + m_bank[1]->set_entry(HECTOR_BANK_VIDEO); + + if (!m_flag_clk) { - m_flag_clk = 1; + m_flag_clk = true; m_maincpu->set_unscaled_clock(XTAL(1'750'000)); } } if (offset==0x08) { - if (is_extended()) - { - membank("bank1")->set_entry(HECTOR_BANK_PROG); - } - if (m_flag_clk == 1) + if (m_is_extended) + m_bank[1]->set_entry(HECTOR_BANK_PROG); + + if (m_flag_clk) { - m_flag_clk = 0; + m_flag_clk = false; m_maincpu->set_unscaled_clock(XTAL(5'000'000)); } } if (offset == 0x0c) { - m_hector_flag_hr = 0; - if (is_extended()) - { - membank("bank1")->set_entry(HECTOR_BANK_PROG); - } - if (m_flag_clk == 0) + m_hector_flag_hr = false; + if (m_is_extended) + m_bank[1]->set_entry(HECTOR_BANK_PROG); + + if (!m_flag_clk) { - m_flag_clk = 1; + m_flag_clk = true; m_maincpu->set_unscaled_clock(XTAL(1'750'000)); } } @@ -196,31 +201,28 @@ if (data & 0x01) /* Reset machine */ { m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); - if (is_hr()) + if (m_is_hr) { - m_hector_flag_hr = 1; - if (is_extended()) + m_hector_flag_hr = true; + if (m_is_extended) { - membank("bank1")->set_entry(HECTOR_BANK_PROG); - membank("bank2")->set_entry(HECTORMX_BANK_PAGE0); + m_bank[1]->set_entry(HECTOR_BANK_PROG); + m_bank[2]->set_entry(HECTORMX_BANK_PAGE0); } //RESET DISC II unit - if (has_disc2()) + if (m_has_disc2) hector_disc2_reset(); /* floppy md master reset */ - if (has_minidisc()) + if (m_has_minidisc) m_minidisc_fdc->reset(); } else - { - m_hector_flag_hr=0; - } - + m_hector_flag_hr = false; - /*Common flag*/ - m_hector_flag_80c = 0; - m_flag_clk = 0; + /*Common flag*/ + m_hector_flag_80c = false; + m_flag_clk = false; } m_actions = 0; @@ -232,21 +234,27 @@ if (data & 0x08) /* Pot(0)+*/ m_pot0 += 1; - if (m_pot0>128) m_pot0 = 128; + + if (m_pot0>128) + m_pot0 = 128; if (data & 0x10) /* Pot(0)-*/ m_pot0 -= 1; - if (m_pot0>250) m_pot0 = 0; + if (m_pot0>250) + m_pot0 = 0; if (data & 0x20) /* Pot(1)+*/ m_pot1 += 1; - if (m_pot1>128) m_pot1 = 128; + + if (m_pot1>128) + m_pot1 = 128; if (data & 0x40) /* Pot(1)-*/ m_pot1 -= 1; - if (m_pot1>250) m_pot1 = 0; + if (m_pot1>250) + m_pot1 = 0; } /* in all case return the requested value */ @@ -284,23 +292,19 @@ } else { - if (m_write_cassette == 0) + if (!m_write_cassette) { level = m_cassette->input(); if (level < -0.08) - m_cassette_bit = 0x00; + m_cassette_bit = false; if (level > +0.08) - m_cassette_bit = 0x01; + m_cassette_bit = true; } - if ((m_cassette_bit != m_cassette_bit_mem) && (m_cassette_bit !=0)) - { - if (m_data_k7 == 0x00) - m_data_k7 = 0x80; - else - m_data_k7 = 0x00; - } + if ((m_cassette_bit != m_cassette_bit_mem) && m_cassette_bit) + m_data_k7 = m_data_k7 ? 0 : 0x80; + value = ( m_ck_signal & 0x7F ) + m_data_k7; m_cassette_bit_mem = m_cassette_bit; } @@ -309,13 +313,14 @@ void hec2hrp_state::sn_3000_w(uint8_t data) { m_state3000 = data & 0xf8; /* except bit 0 to 2*/ - if ((data & 7) != m_oldstate3000 ) + data &= 7; + if (data != m_oldstate3000 ) { /* Update sn76477 only when necessary!*/ - update_state(0x3000, data & 7 ); - update_sound(data & 7); + update_state(0x3000, data); + update_sound(data); } - m_oldstate3000 = data & 7; + m_oldstate3000 = data; } /* Color Interface */ @@ -324,18 +329,16 @@ if (data & 0x40) { /* Bit 6 => motor ON/OFF => for cassette state!*/ - if (m_write_cassette==0) + if (!m_write_cassette) { - m_cassette->change_state( - CASSETTE_MOTOR_ENABLED, - CASSETTE_MASK_MOTOR); + m_cassette->change_state(CASSETTE_MOTOR_ENABLED, CASSETTE_MASK_MOTOR); // m_cassette->set_state(CASSETTE_PLAY | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED); } } else { /* stop motor*/ m_cassette->set_state(CASSETTE_STOPPED); - m_write_cassette=0; + m_write_cassette = false; m_counter_write =0; } if (((data & 0x80) != (m_oldstate1000 & 0x80)) && ((m_oldstate1000 & 7)==(data & 7)) ) /* Bit7 had change but not the color statement*/ @@ -345,15 +348,14 @@ if (m_counter_write > 5) { - /* Wait several cycle before lauch the record to prevent somes bugs*/ + /* Wait several cycles before launch recording to prevent somes bugs*/ m_counter_write = 6; - if (m_write_cassette==0) - { /* C'est la 1er fois => record*/ - m_cassette->change_state( - CASSETTE_MOTOR_ENABLED, - CASSETTE_MASK_MOTOR); + if (!m_write_cassette) + { + // record + m_cassette->change_state( CASSETTE_MOTOR_ENABLED, CASSETTE_MASK_MOTOR); m_cassette->set_state(CASSETTE_RECORD); - m_write_cassette=1; + m_write_cassette = true; } } /* cassette data */ @@ -361,22 +363,25 @@ } /* Other bit : color definition*/ - m_hector_color[0] = data & 0x07 ; - m_hector_color[2] = ((data >> 3) & 0x07) | (m_hector_color[2] & 0x40); + m_hector_color[0] = data & 0x07 ; + m_hector_color[2] = BIT(data, 3, 3) | (m_hector_color[2] & 0x40); m_oldstate1000=data; /* For next step*/ } void hec2hrp_state::color_b_w(uint8_t data) { - m_hector_color[1] = data & 0x07; - m_hector_color[3] = (data >> 3) & 0x07; + m_hector_color[1] = data & 0x07; + m_hector_color[3] = BIT(data, 3, 3); /* Half light on color 2 only on HR machines:*/ - if (data & 0x40) m_hector_color[2] |= 8; else m_hector_color[2] &= 7; + if (data & 0x40) + m_hector_color[2] |= 8; + else + m_hector_color[2] &= 7; /* Play bit*/ - m_discrete->write(NODE_01, (data & 0x80) ? 0:1 ); + m_discrete->write(NODE_01, (data & 0x80) ? 0:1 ); } @@ -391,20 +396,20 @@ uint8_t data =0; uint8_t data_l=0; uint8_t data_h=0; + offset &= 3; - - if ((offset & 0x3) == 0x0) /* Port A */ + if (offset == 0) /* Port A */ data = m_hector_port_a; - - if ((offset & 0x3) == 0x1) /* Port B */ + else + if (offset == 1) /* Port B */ { data = m_hector_port_b; #ifdef DEBUG_TRACE_COM_HECTOR printf("\nLecture data par Hector %x (portB)",data); #endif } - - if ((offset & 0x3) == 0x2) /* Port C */ + else + if (offset == 2) /* Port C */ { data_l = (m_hector_port_c_l & 0x0f); data_h = (m_hector_port_c_h & 0xf0); @@ -414,18 +419,18 @@ if (BIT(m_hector_port_cmd, 3)) /* Quartet sup en entree ?*/ { - m_hector_port_c_h = (m_hector_port_c_h & 0x0c0); /* Clear bits 4 & 5*/ + m_hector_port_c_h = (m_hector_port_c_h & 0xc0); /* Clear bits 4 & 5*/ if (m_hector_disc2_data_w_ready != 0x00) - m_hector_port_c_h = m_hector_port_c_h + 0x010; // PC4 (data write ready from Disc II to Hector) + m_hector_port_c_h = m_hector_port_c_h + 0x10; // PC4 (data write ready from Disc II to Hector) if (m_hector_disc2_data_r_ready != 0x00) - m_hector_port_c_h = m_hector_port_c_h + 0x020; // PC5 (data read ready from Hector to Disc2) + m_hector_port_c_h = m_hector_port_c_h + 0x20; // PC5 (data read ready from Hector to Disc2) - m_hector_port_c_h = m_hector_port_c_h & 0x07F; // PC7 (printer busy=0) + m_hector_port_c_h = m_hector_port_c_h & 0x7F; // PC7 (printer busy=0) data_h = m_hector_port_c_h; } - data= data_l + data_h; + data = data_l + data_h; } return data; // Return the value! } @@ -434,8 +439,9 @@ void hec2hrp_state::io_8255_w(offs_t offset, uint8_t data) { + offset &= 3; /* 8255 in mode 0 */ - if ((offset & 0x3) == 0x0) /* Port A => to printer or Disc II*/ + if (offset == 0) /* Port A => to printer or Disc II*/ { m_hector_port_a = data; /* Port A => to printer*/ @@ -443,16 +449,13 @@ So, everything sent to the Disc2 unit will be printed too! */ if (BIT(m_hector_port_c_l, 0)) // PC0 (bit 0) = strobe printer - { m_printer->output(m_hector_port_a); - } } - - if ((offset & 0x3) == 0x1) /* Port B */ + else + if (offset == 1) /* Port B */ m_hector_port_b = data; - - - if ((offset & 0x3) == 0x2) /* Port C => depending cmd word */ + else + if (offset == 2) /* Port C => depending cmd word */ { if (!BIT(m_hector_port_cmd, 0)) { @@ -477,11 +480,8 @@ if (!BIT(m_hector_port_cmd, 3)) m_hector_port_c_h = (data & 0xf0); } - - if ((offset & 0x3) == 0x3) /* command */ - { + else // offset=3 m_hector_port_cmd = data; - } } /* End of 8255 managing */ @@ -489,36 +489,87 @@ /******************* PIO write handler for MX40 *******************/ void hec2hrp_state::mx40_io_port_w(offs_t offset, uint8_t data) { + offset &= 0xff; + /* Bank switching on several address */ - if ((offset &0x0ff) == 0x40) /* Port page 0*/ - membank("bank2")->set_entry(HECTORMX_BANK_PAGE0); - if ((offset &0x0ff) == 0x41) /* Port page 1*/ - { - membank("bank2")->set_entry(HECTORMX_BANK_PAGE1); - m_hector_flag_80c=0; - } - if ((offset &0x0ff) == 0x44) /* Port page 2 => 42 pour MX80*/ - membank("bank2")->set_entry(HECTORMX_BANK_PAGE2); - if ((offset &0x0ff) == 0x49) /* Port screen resolution*/ - m_hector_flag_80c=0;/* No 80c in 40c !*/ + if (offset == 0x40) /* Port page 0*/ + m_bank[2]->set_entry(HECTORMX_BANK_PAGE0); + else + if (offset == 0x41) /* Port page 1*/ + { + m_bank[2]->set_entry(HECTORMX_BANK_PAGE1); + m_hector_flag_80c = false; + } + else + if (offset == 0x44) /* Port page 2 => 42 on MX80*/ + m_bank[2]->set_entry(HECTORMX_BANK_PAGE2); + else + if (offset == 0x49) /* Port screen resolution*/ + m_hector_flag_80c = false;/* No 80c in 40c !*/ } /******************* PIO write handlerfor MX80 *******************/ void hec2hrp_state::mx80_io_port_w(offs_t offset, uint8_t data) { - if ((offset &0x0ff) == 0x40) /* Port page 0*/ - membank("bank2")->set_entry(HECTORMX_BANK_PAGE0); - if ((offset &0x0ff) == 0x41) /* Port page 1*/ - { - membank("bank2")->set_entry(HECTORMX_BANK_PAGE1); - m_hector_flag_80c=0; - } - if ((offset &0x0ff) == 0x42) /* Port page 2 => different port on MX40 */ - membank("bank2")->set_entry(HECTORMX_BANK_PAGE2); - if ((offset &0x0ff) == 0x49) /* Port screen resolution*/ - m_hector_flag_80c=1; + offset &= 0xff; + + if (offset == 0x40) /* Port page 0*/ + m_bank[2]->set_entry(HECTORMX_BANK_PAGE0); + else + if (offset == 0x41) /* Port page 1*/ + { + m_bank[2]->set_entry(HECTORMX_BANK_PAGE1); + m_hector_flag_80c = false; + } + else + if (offset == 0x42) /* Port page 2 => different port on MX40 */ + m_bank[2]->set_entry(HECTORMX_BANK_PAGE2); + else + if (offset == 0x49) /* Port screen resolution*/ + m_hector_flag_80c = true; } +void hec2hrp_state::video_start() +{ + save_item(NAME(m_has_disc2)); + save_item(NAME(m_has_minidisc)); + save_item(NAME(m_is_hr)); + save_item(NAME(m_is_extended)); + save_item(NAME(m_hector_flag_hr)); + save_item(NAME(m_hector_flag_80c)); + save_item(NAME(m_hector_color)); + save_item(NAME(m_hector_disc2_data_r_ready)); + save_item(NAME(m_hector_disc2_data_w_ready)); + save_item(NAME(m_hector_disc2_data_read)); + save_item(NAME(m_hector_disc2_data_write)); + save_item(NAME(m_hector_disc2_rnmi)); + save_item(NAME(m_state3000)); + save_item(NAME(m_write_cassette)); + save_item(NAME(m_ck_signal)); + save_item(NAME(m_flag_clk)); + save_item(NAME(m_pin_value)); + save_item(NAME(m_au)); + save_item(NAME(m_val_mixer)); + save_item(NAME(m_oldstate3000)); + save_item(NAME(m_oldstate1000)); + save_item(NAME(m_pot0)); + save_item(NAME(m_pot1)); + save_item(NAME(m_actions)); + save_item(NAME(m_hector_port_a)); + save_item(NAME(m_hector_port_b)); + save_item(NAME(m_hector_port_c_h)); + save_item(NAME(m_hector_port_c_l)); + save_item(NAME(m_hector_port_cmd)); + save_item(NAME(m_cassette_bit)); + save_item(NAME(m_cassette_bit_mem)); + save_item(NAME(m_data_k7)); + save_item(NAME(m_counter_write)); + save_item(NAME(m_irq_current_state)); + save_item(NAME(m_nmi_current_state)); + save_item(NAME(m_hector_videoram_hrx)); +} + + /******************************************************************************** sound management ********************************************************************************/ @@ -530,63 +581,63 @@ { case 0x2000: { - m_au[ 0] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[ 8] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 0] = BIT(Value, 7); + m_au[ 8] = BIT(Value, 6); break; } case 0x2001: { - m_au[ 1] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[ 9] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 1] = BIT(Value, 7); + m_au[ 9] = BIT(Value, 6); break; } case 0x2002: { - m_au[ 2] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[10] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 2] = BIT(Value, 7); + m_au[10] = BIT(Value, 6); break; } case 0x2003: { - m_au[ 3] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[11] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 3] = BIT(Value, 7); + m_au[11] = BIT(Value, 6); break; } case 0x2800: { - m_au[ 4] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[12] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 4] = BIT(Value, 7); + m_au[12] = BIT(Value, 6); break; } case 0x2801: { - m_au[ 5] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[13] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 5] = BIT(Value, 7); + m_au[13] = BIT(Value, 6); break; } case 0x2802: { - m_au[ 6] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[14] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 6] = BIT(Value, 7); + m_au[14] = BIT(Value, 6); break; } case 0x2803: { - m_au[ 7] = ((Value & 0x080 )==0) ? 0 : 1 ; - m_au[15] = ((Value & 0x040 )==0) ? 0 : 1 ; + m_au[ 7] = BIT(Value, 7); + m_au[15] = BIT(Value, 6); break; } case 0x3000: { - m_val_mixer = (Value & 7) ; + m_val_mixer = Value & 7; break; } default: break; @@ -632,8 +683,8 @@ m_pin_value[17][0] = CAP_N(47.0) ; /* measured */ m_pin_value[17][1] = CAP_N(580.0) ; /* measured */ /* R VCO Version 3*/ - m_pin_value[18][1] = RES_K(1400.0 );/* Measured 1300, instead of 1Mohm*/ - m_pin_value[18][0] = RES_K( 203.548 );/* Measured 223, instead of 193.548 (1000 // 240KOhm)*/ + m_pin_value[18][1] = RES_K(1400.0); /* Measured 1300, instead of 1Mohm*/ + m_pin_value[18][0] = RES_K(203.548);/* Measured 223, instead of 193.548 (1000 // 240KOhm)*/ /* VCO Controle*/ m_pin_value[16][0] = 0.0; /* Volts */ @@ -667,14 +718,14 @@ m_pin_value[6][1] = CAP_U(08.60); /* 0.48*/ /* Values from schematic */ - m_pin_value[5][1] = RES_K(3.30 ) ; /* 330Kohm*/ - m_pin_value[5][0] = RES_K(1.76 ) ; /* 76 Kohm*/ + m_pin_value[5][1] = RES_K(3.30 ); /* 330Kohm*/ + m_pin_value[5][0] = RES_K(1.76 ); /* 76 Kohm*/ /* Noise is not controlled by the audio bus! */ /* Only value[0] is documented! */ - m_pin_value[4][0] = RES_K(47) ; /* 47 K ohm*/ + m_pin_value[4][0] = RES_K(47); /* 47 K ohm*/ m_pin_value[12][0] = RES_K(100); /* 100K ohm*/ - m_pin_value[3][0] = 0 ; /* NC*/ + m_pin_value[3][0] = 0; /* NC*/ /* Envelope-related */ m_pin_value[ 1][0] = 0; @@ -684,31 +735,18 @@ m_pin_value[28][1] = 1; /* SN pins initialized to 0 */ - m_au[0]=0; - m_au[1]=0; - m_au[2]=0; - m_au[3]=0; - m_au[4]=0; - m_au[5]=0; - m_au[6]=0; - m_au[7]=0; - m_au[8]=0; - m_au[9]=0; - m_au[10]=0; - m_au[11]=0; - m_au[12]=0; - m_au[13]=0; - m_au[14]=0; - m_au[15]=0; + for (u8 i = 0; i < 16; i++) + m_au[i]=0; + m_val_mixer = 0; } void hec2hrp_state::update_sound(uint8_t data) { /* MIXER */ - m_sn->mixer_a_w(((m_val_mixer & 0x04)==4) ? 1 : 0); - m_sn->mixer_b_w(((m_val_mixer & 0x01)==1) ? 1 : 0); - m_sn->mixer_c_w(((m_val_mixer & 0x02)==2) ? 1 : 0); /* Measured on HRX*/ + m_sn->mixer_a_w(BIT(m_val_mixer, 2)); + m_sn->mixer_b_w(BIT(m_val_mixer, 0)); + m_sn->mixer_c_w(BIT(m_val_mixer, 1)); /* Measured on HRX*/ /* VCO oscillator */ if (m_au[12]==1) @@ -716,17 +754,17 @@ else m_sn->vco_res_w(m_pin_value[18][m_au[10]]); /* no AU11 */ - m_sn->vco_cap_w(m_pin_value[17][m_au[2 ]]); + m_sn->vco_cap_w(m_pin_value[17][m_au[2]]); m_sn->pitch_voltage_w(m_pin_value[19][m_au[15]]); m_sn->vco_voltage_w(m_pin_value[16][m_au[15]]); m_sn->vco_w(m_pin_value[22][m_au[12]]); /* VCO Select Ext/SLF */ /* SLF */ - m_sn->slf_res_w(m_pin_value[20][m_au[ 9]]); /* AU10 */ - m_sn->slf_cap_w(m_pin_value[21][m_au[1 ]]); + m_sn->slf_res_w(m_pin_value[20][m_au[9]]); /* AU10 */ + m_sn->slf_cap_w(m_pin_value[21][m_au[1]]); /* One Shot */ - m_sn->one_shot_res_w(m_pin_value[24][ 0]); /* NC */ + m_sn->one_shot_res_w(m_pin_value[24][0]); /* NC */ m_sn->one_shot_cap_w(m_pin_value[23][m_au[13]]); /* amplitude value*/ @@ -734,7 +772,7 @@ /* attack/decay */ m_sn->attack_res_w(m_pin_value[10][m_au[ 8]]); - m_sn->decay_res_w(m_pin_value[7 ][m_au[11]]); + m_sn->decay_res_w(m_pin_value[7][m_au[11]]); m_sn->attack_decay_cap_w(m_pin_value[8][m_au[0]]); /* filter */ @@ -746,23 +784,23 @@ m_sn->feedback_res_w(m_pin_value[12][0]); /* envelope */ - m_sn->envelope_1_w(m_pin_value[1 ][m_au[6]]); + m_sn->envelope_1_w(m_pin_value[1] [m_au[6]]); m_sn->envelope_2_w(m_pin_value[28][m_au[7]]); /* finally, enable */ m_sn->enable_w(m_pin_value[9][m_au[14]]); } -void hec2hrp_state::hector_reset(int hr, int with_d2) +void hec2hrp_state::hector_reset(bool hr, bool with_d2) { // Hector init m_hector_flag_hr = hr; - m_flag_clk = 0; - m_write_cassette = 0; + m_flag_clk = false; + m_write_cassette = false; m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); // Disc II init - if (with_d2 == 1) + if (with_d2) { m_disc2cpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); m_upd_fdc->reset(); @@ -791,7 +829,6 @@ void hec2hrp_state::hector_audio(machine_config &config) { SPEAKER(config, "mono").front_center(); - WAVE(config, "wave", m_cassette).add_route(0, "mono", 0.25); /* Sound level for cassette, as it is in mono => output channel=0*/ SN76477(config, m_sn); m_sn->set_noise_params(RES_K(47), RES_K(330), CAP_P(390)); @@ -857,7 +894,7 @@ m_disc2cpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); m_upd_fdc->reset(); // Select ROM to cold restart - membank("bank3")->set_entry(DISCII_BANK_ROM); + m_bank[3]->set_entry(DISCII_BANK_ROM); // Clear the Hardware's buffers m_hector_disc2_data_r_ready = 0x0; /* =ff when PC2 = true and data is in read buffer (state->m_hector_disc2_data_read) */ @@ -874,13 +911,13 @@ uint8_t hec2hrp_state::disc2_io00_port_r() { /* Switch Disc 2 to RAM */ - membank("bank3")->set_entry(DISCII_BANK_RAM); + m_bank[3]->set_entry(DISCII_BANK_RAM); return 0; } void hec2hrp_state::disc2_io00_port_w(uint8_t data) { /* Switch Disc 2 to RAM */ - membank("bank3")->set_entry(DISCII_BANK_RAM); + m_bank[3]->set_entry(DISCII_BANK_RAM); } uint8_t hec2hrp_state::disc2_io20_port_r() { diff -Nru mame-0.223+dfsg.1/src/mame/machine/lviv.cpp mame-0.224+dfsg.1/src/mame/machine/lviv.cpp --- mame-0.223+dfsg.1/src/mame/machine/lviv.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/lviv.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -24,7 +24,7 @@ { uint8_t *ram = m_ram->pointer(); - if (m_ppi_port_outputs[0][2] & 0x02) + if (BIT(m_ppi_port_outputs[0][2], 1)) { m_bank[0]->set_base(ram); m_bank[1]->set_base(ram + 0x4000); @@ -41,17 +41,17 @@ machine().schedule_soft_reset(); } -uint8_t lviv_state::ppi_0_porta_r() +uint8_t lviv_state::ppi0_porta_r() { return 0xff; } -uint8_t lviv_state::ppi_0_portb_r() +uint8_t lviv_state::ppi0_portb_r() { return 0xff; } -uint8_t lviv_state::ppi_0_portc_r() +uint8_t lviv_state::ppi0_portc_r() { uint8_t data = m_ppi_port_outputs[0][2] & 0x0f; if (m_cassette->input() > 0.038) @@ -61,32 +61,32 @@ return data; } -void lviv_state::ppi_0_porta_w(uint8_t data) +void lviv_state::ppi0_porta_w(uint8_t data) { m_ppi_port_outputs[0][0] = data; } -void lviv_state::ppi_0_portb_w(uint8_t data) +void lviv_state::ppi0_portb_w(uint8_t data) { m_ppi_port_outputs[0][1] = data; update_palette(data&0x7f); } -void lviv_state::ppi_0_portc_w(uint8_t data)/* tape in/out, video memory on/off */ +void lviv_state::ppi0_portc_w(uint8_t data)/* tape in/out, video memory on/off */ { m_ppi_port_outputs[0][2] = data; - if (m_ppi_port_outputs[0][1]&0x80) - m_speaker->level_w(data & 0x01); - m_cassette->output((data & 0x01) ? -1.0 : 1.0); + if (BIT(m_ppi_port_outputs[0][1], 7)) + m_speaker->level_w(BIT(data, 0)); + m_cassette->output(BIT(data, 0) ? -1.0 : 1.0); update_memory(); } -uint8_t lviv_state::ppi_1_porta_r() +uint8_t lviv_state::ppi1_porta_r() { return 0xff; } -uint8_t lviv_state::ppi_1_portb_r()/* keyboard reading */ +uint8_t lviv_state::ppi1_portb_r()/* keyboard reading */ { return ((m_ppi_port_outputs[1][0] & 0x01) ? 0xff : m_key[0]->read()) & ((m_ppi_port_outputs[1][0] & 0x02) ? 0xff : m_key[1]->read()) & @@ -98,7 +98,7 @@ ((m_ppi_port_outputs[1][0] & 0x80) ? 0xff : m_key[7]->read()); } -uint8_t lviv_state::ppi_1_portc_r()/* keyboard reading */ +uint8_t lviv_state::ppi1_portc_r()/* keyboard reading */ { return ((m_ppi_port_outputs[1][2] & 0x01) ? 0xff : m_key[ 8]->read()) & ((m_ppi_port_outputs[1][2] & 0x02) ? 0xff : m_key[ 9]->read()) & @@ -106,17 +106,17 @@ ((m_ppi_port_outputs[1][2] & 0x08) ? 0xff : m_key[11]->read()); } -void lviv_state::ppi_1_porta_w(uint8_t data)/* kayboard scaning */ +void lviv_state::ppi1_porta_w(uint8_t data)/* kayboard scanning */ { m_ppi_port_outputs[1][0] = data; } -void lviv_state::ppi_1_portb_w(uint8_t data) +void lviv_state::ppi1_portb_w(uint8_t data) { m_ppi_port_outputs[1][1] = data; } -void lviv_state::ppi_1_portc_w(uint8_t data)/* kayboard scaning */ +void lviv_state::ppi1_portc_w(uint8_t data)/* kayboard scanning */ { m_ppi_port_outputs[1][2] = data; } @@ -131,7 +131,7 @@ } else { - const uint8_t switch_val = (offset >> 4) & 0x3; + const uint8_t switch_val = BIT(offset, 4, 2); switch (switch_val) { case 0: @@ -164,11 +164,11 @@ m_bank[0]->set_base(ram); m_bank[1]->set_base(ram + 0x4000); m_bank[2]->set_base(ram + 0x8000); - m_bank[3]->set_base(m_maincpu_region->base() + 0x010000); + m_bank[3]->set_base(m_maincpu_region->base()); } else { - const uint8_t switch_val = (offset >> 4) & 0x3; + const uint8_t switch_val = BIT(offset, 4, 2); switch (switch_val) { case 0: @@ -189,7 +189,7 @@ { address_space &space = m_maincpu->space(AS_PROGRAM); - m_video_ram = m_ram->pointer() + 0xc000; + m_vram = m_ram->pointer() + 0xc000; m_startup_mem_map = 1; @@ -199,14 +199,18 @@ space.unmap_write(0xC000, 0xffff); uint8_t *mem = m_maincpu_region->base(); - m_bank[0]->set_base(mem + 0x010000); - m_bank[1]->set_base(mem + 0x010000); - m_bank[2]->set_base(mem + 0x010000); - m_bank[3]->set_base(mem + 0x010000); - - /*memset(m_ram->pointer(), 0, sizeof(unsigned char)*0xffff);*/ + m_bank[0]->set_base(mem); + m_bank[1]->set_base(mem); + m_bank[2]->set_base(mem); + m_bank[3]->set_base(mem); } +void lviv_state::machine_start() +{ + save_item(NAME(m_colortable)); + save_item(NAME(m_ppi_port_outputs)); + save_item(NAME(m_startup_mem_map)); +} /******************************************************************************* Lviv snapshot files (SAV) diff -Nru mame-0.223+dfsg.1/src/mame/machine/midwayic.cpp mame-0.224+dfsg.1/src/mame/machine/midwayic.cpp --- mame-0.223+dfsg.1/src/mame/machine/midwayic.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/midwayic.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -107,11 +107,6 @@ m_data[0] = temp & 0xff; m_data[1] = (temp >> 8) & 0xff; m_data[2] = (temp >> 16) & 0xff; - - /* special hack for RevX */ - m_ormask = 0x80; - if (upper == 419) - m_ormask = 0x00; } @@ -130,7 +125,6 @@ save_item(NAME(m_idx)); save_item(NAME(m_status)); save_item(NAME(m_bits)); - save_item(NAME(m_ormask)); } DEFINE_DEVICE_TYPE(MIDWAY_SERIAL_PIC, midway_serial_pic_device, "midway_serial_pic_sim", "Midway Serial PIC Simulation") @@ -152,8 +146,7 @@ m_buff(0), m_idx(0), m_status(0), - m_bits(0), - m_ormask(0) + m_bits(0) { memset(m_data,0,sizeof(m_data)); } @@ -191,8 +184,11 @@ u8 midway_serial_pic_device::read() { - logerror("%s:security R = %04X\n", machine().describe_context(), m_buff); - m_status = 1; + if (!machine().side_effects_disabled()) + { + logerror("%s:security R = %04X\n", machine().describe_context(), m_buff); + m_status = 1; + } return m_buff; } @@ -208,9 +204,8 @@ if (!m_status) { /* the self-test writes 1F, 0F, and expects to read an F in the low 4 bits */ - /* Cruis'n World expects the high bit to be set as well */ if (data & 0x0f) - m_buff = m_ormask | data; + m_buff = data & 0xf; else m_buff = m_data[m_idx++ % sizeof(m_data)]; } @@ -222,6 +217,14 @@ * Original serial number PIC * interface - emulation * + * PIC16C57 wiring notes: + * PORTA - 4bit command in (usually 0 = read SN#) + * PORTB - 8bit data out + * PORTC bit 7 - access clock in + * PORTC bit 6 - status out + * PORTC bit 2 - in/out (optional) MK41T56N RTC/NVRAM Data + * PORTC bit 1 - out (optional) MK41T56N RTC/NVRAM Clock + * *************************************/ @@ -234,6 +237,7 @@ midway_serial_pic_emu_device::midway_serial_pic_emu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, MIDWAY_SERIAL_PIC_EMU, tag, owner, clock) + , m_pic(*this, "pic") { } @@ -243,52 +247,62 @@ void midway_serial_pic_emu_device::device_start() { -} + save_item(NAME(m_command)); + save_item(NAME(m_data_out)); + save_item(NAME(m_clk)); + save_item(NAME(m_status)); + m_command = 0; + m_data_out = 0; + m_clk = 0; + m_status = 0; +} -uint8_t midway_serial_pic_emu_device::read_a() +WRITE_LINE_MEMBER(midway_serial_pic_emu_device::reset_w) { -// printf("%s: read_a\n", machine().describe_context().c_str()); - return 0x00; + if (!state) // fixme, PIC should be stopped while 0 and start running at 0->1 transition + m_pic->reset(); } -uint8_t midway_serial_pic_emu_device::read_b() +u8 midway_serial_pic_emu_device::status_r() { -// printf("%s: read_b\n", machine().describe_context().c_str()); - return 0x00; + return m_status; } -uint8_t midway_serial_pic_emu_device::read_c() +u8 midway_serial_pic_emu_device::read() { -// used -// printf("%s: read_c\n", machine().describe_context().c_str()); - return 0x00; + return m_data_out; } -void midway_serial_pic_emu_device::write_a(uint8_t data) +void midway_serial_pic_emu_device::write(u8 data) { -// printf("%s: write_a %02x\n", machine().describe_context().c_str(), data); + // perhaps this should be split in 2 handlers ? + m_command = data & 0x0f; + m_clk = BIT(data, 4); } -void midway_serial_pic_emu_device::write_b(uint8_t data) +u8 midway_serial_pic_emu_device::read_c() { -// printf("%s: write_b %02x\n", machine().describe_context().c_str(), data); + u8 data = 0; + data |= m_clk << 7; + // bit 2 RTC Data + return data; } -void midway_serial_pic_emu_device::write_c(uint8_t data) +void midway_serial_pic_emu_device::write_c(u8 data) { -// used + m_status = BIT(data, 6); + // bits 1 and 2 is RTC Clock and Data // printf("%s: write_c %02x\n", machine().describe_context().c_str(), data); } void midway_serial_pic_emu_device::device_add_mconfig(machine_config &config) { - pic16c57_device &pic(PIC16C57(config, "pic", 12000000)); /* ? Mhz */ - pic.write_a().set(FUNC(midway_serial_pic_emu_device::write_a)); - pic.read_b().set(FUNC(midway_serial_pic_emu_device::read_b)); - pic.write_b().set(FUNC(midway_serial_pic_emu_device::write_b)); - pic.read_c().set(FUNC(midway_serial_pic_emu_device::read_c)); - pic.write_c().set(FUNC(midway_serial_pic_emu_device::write_c)); + PIC16C57(config, m_pic, 4000000); /* ? Mhz */ + m_pic->read_a().set([this]() { return m_command; }); + m_pic->write_b().set([this](u8 data) { m_data_out = data; }); + m_pic->read_c().set(FUNC(midway_serial_pic_emu_device::read_c)); + m_pic->write_c().set(FUNC(midway_serial_pic_emu_device::write_c)); } @@ -390,17 +404,20 @@ { uint8_t result = 0; - /* if we're still holding the data ready bit high, do it */ - if (m_latch & 0xf00) + if (!machine().side_effects_disabled()) { - if (machine().time() > m_latch_expire_time) - m_latch &= 0xff; - else - m_latch -= 0x100; - result = 1; - } + /* if we're still holding the data ready bit high, do it */ + if (m_latch & 0xf00) + { + if (machine().time() > m_latch_expire_time) + m_latch &= 0xff; + else + m_latch -= 0x100; + result = 1; + } - logerror("%s:PIC status %d\n", machine().describe_context(), result); + logerror("%s:PIC status %d\n", machine().describe_context(), result); + } return result; } @@ -410,7 +427,8 @@ uint8_t result = 0; /* PIC data register */ - logerror("%s:PIC data read (index=%d total=%d latch=%03X) =", machine().describe_context(), m_index, m_total, m_latch); + if (!machine().side_effects_disabled()) + logerror("%s:PIC data read (index=%d total=%d latch=%03X) =", machine().describe_context(), m_index, m_total, m_latch); /* return the current result */ if (m_latch & 0xf00) @@ -420,7 +438,8 @@ else if (m_index < m_total) result = 0xff; - logerror("%02X\n", result); + if (!machine().side_effects_disabled()) + logerror("%02X\n", result); return result; } diff -Nru mame-0.223+dfsg.1/src/mame/machine/midwayic.h mame-0.224+dfsg.1/src/mame/machine/midwayic.h --- mame-0.223+dfsg.1/src/mame/machine/midwayic.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/midwayic.h 2020-08-26 08:57:19.000000000 +0000 @@ -51,7 +51,6 @@ uint8_t m_idx; uint8_t m_status; uint8_t m_bits; - uint8_t m_ormask; }; @@ -66,6 +65,11 @@ // construction/destruction midway_serial_pic_emu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + u8 read(); + void write(u8 data); + u8 status_r(); + DECLARE_WRITE_LINE_MEMBER(reset_w); + protected: midway_serial_pic_emu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -74,12 +78,15 @@ virtual void device_start() override; private: - uint8_t read_a(); - uint8_t read_b(); - uint8_t read_c(); - void write_a(uint8_t data); - void write_b(uint8_t data); - void write_c(uint8_t data); + required_device m_pic; + + u8 read_c(); + void write_c(u8 data); + + u8 m_command; + u8 m_data_out; + u8 m_clk; + u8 m_status; }; diff -Nru mame-0.223+dfsg.1/src/mame/machine/midwunit.cpp mame-0.224+dfsg.1/src/mame/machine/midwunit.cpp --- mame-0.223+dfsg.1/src/mame/machine/midwunit.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/midwunit.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -7,10 +7,6 @@ **************************************************************************/ #include "emu.h" -#include "cpu/tms34010/tms34010.h" -#include "cpu/m6809/m6809.h" -#include "audio/dcs.h" -#include "includes/midtunit.h" #include "includes/midwunit.h" #define LOG_UNKNOWN (1 << 0) @@ -64,6 +60,9 @@ void midwunit_state::midwunit_io_w(offs_t offset, uint16_t data, uint16_t mem_mask) { + // apply I/O shuffling + offset = m_ioshuffle[offset % 16]; + offset %= 8; int oldword = m_iodata[offset]; int newword = oldword; @@ -79,6 +78,7 @@ /* bit 5 (active low) reset security chip */ if (m_midway_serial_pic) m_midway_serial_pic->reset_w(newword & 0x20); + if (m_midway_serial_pic_emu) m_midway_serial_pic_emu->reset_w(newword & 0x20); break; case 3: @@ -119,6 +119,7 @@ { int picret = 0; if (m_midway_serial_pic) picret = m_midway_serial_pic->status_r(); + if (m_midway_serial_pic_emu) picret = m_midway_serial_pic_emu->status_r(); return (picret << 12) | midwunit_sound_state_r(); } @@ -160,7 +161,7 @@ /********************** Mortal Kombat 3 **********************/ -void midwunit_state::umk3_palette_hack_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask) +void midwunit_state::umk3_palette_hack_w(offs_t offset, uint16_t data, uint16_t mem_mask) { /* UMK3 uses a circular buffer to hold pending palette changes; the buffer holds 17 entries @@ -181,7 +182,7 @@ without significantly impacting the rest of the system. */ COMBINE_DATA(&m_umk3_palette[offset]); - space.device().execute().adjust_icount(-100); + m_maincpu->adjust_icount(-100); /* printf("in=%04X%04X out=%04X%04X\n", m_umk3_palette[3], m_umk3_palette[2], m_umk3_palette[1], m_umk3_palette[0]); */ } @@ -209,14 +210,14 @@ void midwunit_state::init_umk3() { init_mk3_common(); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16s_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w))); m_umk3_palette = m_mainram + (0x6a060>>4); } void midwunit_state::init_umk3r11() { init_mk3_common(); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16s_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w))); m_umk3_palette = m_mainram + (0x6a060>>4); } @@ -241,6 +242,7 @@ /********************** WWF Wrestlemania **********************/ +// note: other game's PCBs probably shuffle I/O addresses too, but only WWF game code use/require this. void midwunit_state::wwfmania_io_0_w(uint16_t data) { /* start with the originals */ @@ -336,6 +338,7 @@ { uint16_t picret = 0; if (m_midway_serial_pic) picret = m_midway_serial_pic->read(); + if (m_midway_serial_pic_emu) picret = m_midway_serial_pic_emu->read(); return picret; } @@ -345,6 +348,7 @@ if (offset == 0 && ACCESSING_BITS_0_7) { if (m_midway_serial_pic) m_midway_serial_pic->write(data); + if (m_midway_serial_pic_emu) m_midway_serial_pic_emu->write(data); } } diff -Nru mame-0.223+dfsg.1/src/mame/machine/midxunit.cpp mame-0.224+dfsg.1/src/mame/machine/midxunit.cpp --- mame-0.223+dfsg.1/src/mame/machine/midxunit.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/midxunit.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -7,12 +7,7 @@ **************************************************************************/ #include "emu.h" -#include "cpu/tms34010/tms34010.h" -#include "cpu/m6809/m6809.h" -#include "audio/dcs.h" -#include "includes/midtunit.h" #include "includes/midxunit.h" -#include "midwayic.h" #define LOG_IO (1 << 0) #define LOG_UART (1 << 1) @@ -29,14 +24,14 @@ * *************************************/ -uint16_t midxunit_state::midxunit_cmos_r(offs_t offset) +uint8_t midxunit_state::midxunit_cmos_r(offs_t offset) { - return m_nvram[offset]; + return m_nvram_data[offset]; } -void midxunit_state::midxunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midxunit_state::midxunit_cmos_w(offs_t offset, uint8_t data) { - COMBINE_DATA(m_nvram+offset); + m_nvram_data[offset] = data; } @@ -105,10 +100,10 @@ * *************************************/ -uint16_t midxunit_state::midxunit_status_r() +uint32_t midxunit_state::midxunit_status_r() { /* low bit indicates whether the ADC is done reading the current input */ - return (m_midway_serial_pic->status_r() << 1) | (m_adc_int ? 1 : 0); + return (m_pic_status << 1) | (m_adc_int ? 1 : 0); } @@ -127,14 +122,9 @@ } -uint16_t midxunit_state::midxunit_uart_r(offs_t offset) +uint8_t midxunit_state::midxunit_uart_r(offs_t offset) { - int result = 0; - - /* convert to a byte offset */ - if (offset & 1) - return 0; - offset /= 2; + uint8_t result = 0; /* switch off the offset */ switch (offset) @@ -152,7 +142,7 @@ /* non-loopback case: bit 0 means data ready, bit 2 means ok to send */ else { - int temp = midxunit_sound_state_r(); + int temp = m_dcs->control_r(); result |= (temp & 0x800) >> 9; result |= (~temp & 0x400) >> 10; machine().scheduler().synchronize(); @@ -167,7 +157,11 @@ /* non-loopback case: read from the DCS system */ else - result = midxunit_sound_r(); + { + LOGMASKED(LOG_SOUND, "%08X:Sound read\n", m_maincpu->pc()); + + result = m_dcs->data_r(); + } break; case 5: /* register 5 seems to be like 3, but with in/out swapped */ @@ -179,7 +173,7 @@ /* non-loopback case: bit 0 means data ready, bit 2 means ok to send */ else { - int temp = midxunit_sound_state_r(); + int temp = m_dcs->control_r(); result |= (temp & 0x800) >> 11; result |= (~temp & 0x400) >> 8; machine().scheduler().synchronize(); @@ -196,14 +190,8 @@ } -void midxunit_state::midxunit_uart_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midxunit_state::midxunit_uart_w(offs_t offset, uint8_t data) { - /* convert to a byte offset, ignoring MSB writes */ - if ((offset & 1) || !ACCESSING_BITS_0_7) - return; - offset /= 2; - data &= 0xff; - /* switch off the offset */ switch (offset) { @@ -215,7 +203,7 @@ /* non-loopback case: send to the DCS system */ else - midxunit_sound_w(0, data, mem_mask); + m_dcs->data_w(data); break; case 5: /* register 5 write seems to reset things */ @@ -253,12 +241,19 @@ m_gun_recoil.resolve(); m_gun_led.resolve(); + m_nvram_data = std::make_unique(0x2000); + m_nvram->set_base(m_nvram_data.get(), 0x2000); + save_item(NAME(m_cmos_write_enable)); save_item(NAME(m_iodata)); - save_item(NAME(m_ioshuffle)); save_item(NAME(m_uart)); - save_item(NAME(m_security_bits)); save_item(NAME(m_adc_int)); + save_pointer(NAME(m_nvram_data), 0x2000); + + save_item(NAME(m_pic_command)); + save_item(NAME(m_pic_data)); + save_item(NAME(m_pic_clk)); + save_item(NAME(m_pic_status)); } void midxunit_state::machine_reset() @@ -267,9 +262,10 @@ m_dcs->reset_w(0); m_dcs->reset_w(1); - /* reset I/O shuffling */ - for (int i = 0; i < 16; i++) - m_ioshuffle[i] = i % 8; + m_pic_command = 0; + m_pic_data = 0; + m_pic_clk = 0; + m_pic_status = 0; m_dcs->set_io_callbacks(write_line_delegate(*this, FUNC(midxunit_state::midxunit_dcs_output_full)), write_line_delegate(*this)); } @@ -282,59 +278,49 @@ * *************************************/ -uint16_t midxunit_state::midxunit_security_r() +uint32_t midxunit_state::midxunit_security_r() { - return m_midway_serial_pic->read(); + return m_pic_data; } -void midxunit_state::midxunit_security_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midxunit_state::midxunit_security_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_0_7) - m_security_bits = data & 0x0f; + m_pic_command = data & 0x0f; } -void midxunit_state::midxunit_security_clock_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midxunit_state::midxunit_security_clock_w(offs_t offset, uint32_t data, uint32_t mem_mask) { - if (offset == 0 && ACCESSING_BITS_0_7) - m_midway_serial_pic->write(((~data & 2) << 3) | m_security_bits); + if (ACCESSING_BITS_0_7) + m_pic_clk = BIT(data, 1); } /************************************* * - * Sound write handlers + * DMA registers (inverted word select) * *************************************/ -uint16_t midxunit_state::midxunit_sound_r() +uint32_t midxunit_state::midxunit_dma_r(offs_t offset, uint32_t mem_mask) { - LOGMASKED(LOG_SOUND, "%08X:Sound read\n", m_maincpu->pc()); - - return m_dcs->data_r() & 0xff; -} + uint32_t result = 0; + if (ACCESSING_BITS_16_31) + result |= m_video->midtunit_dma_r(offset * 2); + if (ACCESSING_BITS_0_15) + result |= uint32_t(m_video->midtunit_dma_r(offset * 2 + 1)) << 16; -uint16_t midxunit_state::midxunit_sound_state_r() -{ - return m_dcs->control_r(); + return result; } -void midxunit_state::midxunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midxunit_state::midxunit_dma_w(offs_t offset, uint32_t data, uint32_t mem_mask) { - /* check for out-of-bounds accesses */ - if (offset) - { - LOGMASKED(LOG_SOUND | LOG_UNKNOWN, "%s: Unexpected write to sound (hi) = %04X\n", machine().describe_context(), data); - return; - } - - /* call through based on the sound type */ - if (ACCESSING_BITS_0_7) - { - LOGMASKED(LOG_SOUND, "%s: Sound write = %04X\n", machine().describe_context(), data); - m_dcs->data_w(data & 0xff); - } + if (ACCESSING_BITS_16_31) + m_video->midtunit_dma_w(offset * 2, data & 0xffff); + if (ACCESSING_BITS_0_15) + m_video->midtunit_dma_w(offset * 2 + 1, data >> 16); } diff -Nru mame-0.223+dfsg.1/src/mame/machine/mikro80.cpp mame-0.224+dfsg.1/src/mame/machine/mikro80.cpp --- mame-0.223+dfsg.1/src/mame/machine/mikro80.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/mikro80.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -10,7 +10,6 @@ #include "emu.h" -#include "cpu/i8085/i8085.h" #include "includes/mikro80.h" /* Driver initialization */ @@ -39,6 +38,11 @@ return m_io_keyboard[8]->read(); } +u8 mikro80_state::kristall2_portc_r() +{ + return (m_io_keyboard[8]->read() & 0xfe) | ((m_cassette->input() < 0.04) ? 1 : 0); +} + void mikro80_state::porta_w(u8 data) { m_keyboard_mask = data ^ 0xff; @@ -46,6 +50,7 @@ void mikro80_state::portc_w(u8 data) { + m_cassette->output(BIT(data, 7) ? 1.0 : -1.0); // for Kristall2 only } void mikro80_state::machine_start() @@ -85,7 +90,7 @@ u8 mikro80_state::tape_r() { - return m_cassette->input() ? 0xff : 0; + return (m_cassette->input() < 0.04) ? 0xff : 0; } void mikro80_state::sound_w(u8 data) diff -Nru mame-0.223+dfsg.1/src/mame/machine/model1io2.cpp mame-0.224+dfsg.1/src/mame/machine/model1io2.cpp --- mame-0.223+dfsg.1/src/mame/machine/model1io2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/model1io2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -386,7 +386,7 @@ //************************************************************************** -// FGPA (Virtua Cop) +// FPGA (Virtua Cop) //************************************************************************** uint8_t model1io2_device::fpga_r(offs_t offset) diff -Nru mame-0.223+dfsg.1/src/mame/machine/mpu4.cpp mame-0.224+dfsg.1/src/mame/machine/mpu4.cpp --- mame-0.223+dfsg.1/src/mame/machine/mpu4.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/mpu4.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -159,7 +159,7 @@ | | | | | | PA0-PA7, INPUT AUX1 connector | | | - | | | CA2 OUTPUT, serial port Transmit line + | | | CA2 OUTPUT, serial port Transmit line (Tx) | | | CA1 not connected | | | IRQA connected to IRQ of CPU | | | @@ -705,6 +705,13 @@ } +WRITE_LINE_MEMBER(mpu4_state::dataport_rxd) +{ + m_serial_data = state; + m_pia4->cb1_w(state); + LOG_IC3(("Dataport RX %x\n",state)); +} + /* IC4, 7 seg leds, 50Hz timer reel sensors, current sensors */ void mpu4_state::pia_ic4_porta_w(uint8_t data) { @@ -743,16 +750,13 @@ uint8_t mpu4_state::pia_ic4_portb_r() { - /// TODO: this shouldn't be clocked from a read callback if ( m_serial_data ) { m_ic4_input_b |= 0x80; - m_pia4->cb1_w(1); } else { m_ic4_input_b &= ~0x80; - m_pia4->cb1_w(0); } if (!m_reel_mux) @@ -1072,7 +1076,7 @@ WRITE_LINE_MEMBER(mpu4_state::pia_ic5_ca2_w) { LOG(("%s: IC5 PIA Write CA2 (Serial Tx) %2x\n",machine().describe_context(),state)); - m_serial_data = state; + m_dataport->write_txd(state); } @@ -1361,6 +1365,7 @@ } { + LOG_SS(("%s: GAMEBOARD: Volume Set to %2x\n", machine().describe_context(),data)); float percent = (32-m_global_volume)/32.0; m_msm6376->set_output_gain(0, percent); m_msm6376->set_output_gain(1, percent); @@ -1392,7 +1397,6 @@ WRITE_LINE_MEMBER(mpu4_state::pia_gb_ca2_w) { LOG_SS(("%s: GAMEBOARD: OKI RESET data = %02X\n", machine().describe_context(), state)); - // reset line } @@ -3058,6 +3062,9 @@ m_pia8->irqb_handler().set(FUNC(mpu4_state::cpu0_irq)); METERS(config, m_meters, 0).set_number(8); + + BACTA_DATALOGGER(config, m_dataport, 0); + m_dataport->rxd_handler().set(FUNC(mpu4_state::dataport_rxd)); } void mpu4_state::mpu4_common2(machine_config &config) @@ -3066,15 +3073,14 @@ m_ptm_ic3ss->set_external_clocks(0, 0, 0); m_ptm_ic3ss->o1_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_c2)); m_ptm_ic3ss->o2_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_c1)); - //m_ptm_ic3ss->o3_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_g1)); - //m_ptm_ic3ss->irq_callback().set(FUNC(mpu4_state::cpu1_ptm_irq)); + m_ptm_ic3ss->o3_callback().set("ptm_ic3ss", FUNC(ptm6840_device::set_g1)); - pia6821_device &pia_ic4ss(PIA6821(config, "pia_ic4ss", 0)); - pia_ic4ss.readpb_handler().set(FUNC(mpu4_state::pia_gb_portb_r)); - pia_ic4ss.writepa_handler().set(FUNC(mpu4_state::pia_gb_porta_w)); - pia_ic4ss.writepb_handler().set(FUNC(mpu4_state::pia_gb_portb_w)); - pia_ic4ss.ca2_handler().set(FUNC(mpu4_state::pia_gb_ca2_w)); - pia_ic4ss.cb2_handler().set(FUNC(mpu4_state::pia_gb_cb2_w)); + PIA6821(config, m_pia_ic4ss, 0); + m_pia_ic4ss->readpb_handler().set(FUNC(mpu4_state::pia_gb_portb_r)); + m_pia_ic4ss->writepa_handler().set(FUNC(mpu4_state::pia_gb_porta_w)); + m_pia_ic4ss->writepb_handler().set(FUNC(mpu4_state::pia_gb_portb_w)); + m_pia_ic4ss->ca2_handler().set(FUNC(mpu4_state::pia_gb_ca2_w)); + m_pia_ic4ss->cb2_handler().set(FUNC(mpu4_state::pia_gb_cb2_w)); } /* machine driver for MOD 2 board */ diff -Nru mame-0.223+dfsg.1/src/mame/machine/nl_breakout.cpp mame-0.224+dfsg.1/src/mame/machine/nl_breakout.cpp --- mame-0.223+dfsg.1/src/mame/machine/nl_breakout.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/nl_breakout.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -345,7 +345,7 @@ TTL_7408_DIP(H2) TTL_7427_DIP(H3) TTL_7400_DIP(H4) - DM9312_DIP(H5) + TTL_9312_DIP(H5) TTL_9310_DIP(H6) TTL_7408_DIP(H7) @@ -355,7 +355,7 @@ TTL_74175_DIP(J1) TTL_7404_DIP(J2) TTL_7402_DIP(J3) - DM9312_DIP(J4) + TTL_9312_DIP(J4) TTL_7448_DIP(J5) TTL_9310_DIP(J6) TTL_7420_DIP(J7) @@ -366,7 +366,7 @@ TTL_7486_DIP(K2) TTL_7430_DIP(K3) TTL_7408_DIP(K4) - DM9312_DIP(K5) + TTL_9312_DIP(K5) TTL_9310_DIP(K6) TTL_7486_DIP(K7) TTL_7474_DIP(K8) @@ -376,7 +376,7 @@ TTL_7486_DIP(L2) TTL_82S16_DIP(L3) // Ram chip TTL_7411_DIP(L4) - DM9312_DIP(L5) + TTL_9312_DIP(L5) TTL_9310_DIP(L6) TTL_7486_DIP(L7) TTL_74193_DIP(L8) @@ -386,7 +386,7 @@ TTL_7483_DIP(M2) TTL_7486_DIP(M3) TTL_7410_DIP(M4) - DM9312_DIP(M5) + TTL_9312_DIP(M5) TTL_9310_DIP(M6) TTL_7427_DIP(M8) TTL_7404_DIP(M9) @@ -395,7 +395,7 @@ TTL_7483_DIP(N2) TTL_7486_DIP(N3) TTL_7411_DIP(N4) - DM9312_DIP(N5) + TTL_9312_DIP(N5) TTL_9310_DIP(N6) TTL_7408_DIP(N7) diff -Nru mame-0.223+dfsg.1/src/mame/machine/nl_dpatrol.cpp mame-0.224+dfsg.1/src/mame/machine/nl_dpatrol.cpp --- mame-0.223+dfsg.1/src/mame/machine/nl_dpatrol.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/nl_dpatrol.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -473,8 +473,8 @@ TTL_9322(C7, 16H, S5, S1, S6, S2, GROUND, S4, GROUND, S3, GROUND) TTL_7448(C6, C7.Y1, C7.Y2, C7.Y4, C7.Y3, P, SCORE_WINDOW, 16H) - DM9312(B6, 2H, 4H, 8H, 8H, C6.f, GROUND, GROUND, C6.b, C6.e, GROUND, GROUND, C6.c) - DM9312(A6, 2V, 4V, 8V, 8H, C6.a, GROUND, GROUND, C6.g, GROUND, GROUND, GROUND, C6.d) + TTL_9312(B6, 2H, 4H, 8H, 8H, C6.f, GROUND, GROUND, C6.b, C6.e, GROUND, GROUND, C6.c) + TTL_9312(A6, 2V, 4V, 8V, 8H, C6.a, GROUND, GROUND, C6.g, GROUND, GROUND, GROUND, C6.d) TTL_7408_AND(B5_4, A6.YQ, B6.YQ) TTL_7474(A5_1, CLOCK, B5_4.Q, P, P) ALIAS(COMP_SCORE_Q, A5_1.Q) diff -Nru mame-0.223+dfsg.1/src/mame/machine/nl_palestra.cpp mame-0.224+dfsg.1/src/mame/machine/nl_palestra.cpp --- mame-0.223+dfsg.1/src/mame/machine/nl_palestra.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/nl_palestra.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -26,6 +26,14 @@ #define SLOW_BUT_ACCURATE 0 +#ifndef __PLIB_PREPROCESSOR__ +#if defined(__GNUC__) && !defined(__clang__) + #if defined(__MINGW32__) && !defined(__x86_64) && defined(__i386__) && ((__GNUC__ > 10) || ((__GNUC__ == 10) && (__GNUC_MINOR__ >= 0))) + #pragma GCC optimize ("O1") + #endif +#endif +#endif + NETLIST_START(palestra) // SOLVER(Solver, 10000000) to maintain accuracy when SLOW is set and CAP()s are connected diff -Nru mame-0.223+dfsg.1/src/mame/machine/nl_stuntcyc.cpp mame-0.224+dfsg.1/src/mame/machine/nl_stuntcyc.cpp --- mame-0.223+dfsg.1/src/mame/machine/nl_stuntcyc.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/nl_stuntcyc.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -443,8 +443,8 @@ TTL_9322(C7, 16H, S5, S1, S6, S2, GROUND, S3, GROUND, S4, GROUND) TTL_7448(C6, C7.Y1, C7.Y2, C7.Y3, C7.Y4, P, SCORE_WINDOW, 16H) - DM9312(B6, 2H, 4H, 8V, 8H, C6.f, GROUND, GROUND, C6.b, C6.e, GROUND, GROUND, C6.c) - DM9312(A6, 2V, 4V, 8V, 8H, C6.a, GROUND, GROUND, C6.g, GROUND, GROUND, GROUND, C6.d) + TTL_9312(B6, 2H, 4H, 8V, 8H, C6.f, GROUND, GROUND, C6.b, C6.e, GROUND, GROUND, C6.c) + TTL_9312(A6, 2V, 4V, 8V, 8H, C6.a, GROUND, GROUND, C6.g, GROUND, GROUND, GROUND, C6.d) TTL_7408_AND(B5_4, A6.YQ, B6.YQ) TTL_7474(A5_1, CLOCK, B5_4.Q, P, P) ALIAS(COMP_SCORE_Q, A5_1.Q) diff -Nru mame-0.223+dfsg.1/src/mame/machine/nl_stuntcyc.h mame-0.224+dfsg.1/src/mame/machine/nl_stuntcyc.h --- mame-0.223+dfsg.1/src/mame/machine/nl_stuntcyc.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/nl_stuntcyc.h 2020-08-26 08:57:19.000000000 +0000 @@ -1,6 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz +#ifndef MAME_MACHINE_NL_STUNTCYC_H +#define MAME_MACHINE_NL_STUNTCYC_H + +#pragma once #include "netlist/nl_setup.h" NETLIST_EXTERNAL(stuntcyc) + +#endif // MAME_MACHINE_NL_STUNTCYC_H diff -Nru mame-0.223+dfsg.1/src/mame/machine/nl_tank.cpp mame-0.224+dfsg.1/src/mame/machine/nl_tank.cpp --- mame-0.223+dfsg.1/src/mame/machine/nl_tank.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/nl_tank.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,1931 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +/*************************************************************************** + + Netlist (tank) included from atarittl.cpp + +***************************************************************************/ + +#include "netlist/devices/net_lib.h" + +static NETLIST_START(NE556_DIP) + NE555(A) + NE555(B) + + NET_C(A.GND, B.GND) + NET_C(A.VCC, B.VCC) + + DIPPINS( /* +--------------+ */ + A.DISCH, /* 1DISCH |1 ++ 14| VCC */ A.VCC, + A.THRESH, /* 1THRES |2 13| 2DISCH */ B.DISCH, + A.CONT, /* 1CONT |3 12| 2THRES */ B.THRESH, + A.RESET, /* 1RESET |4 NE556 11| 2CONT */ B.CONT, + A.OUT, /* 1OUT |5 10| 2RESET */ B.RESET, + A.TRIG, /* 1TRIG |6 9| 2OUT */ B.OUT, + A.GND, /* GND |7 8| 2TRIG */ B.TRIG + /* +--------------+ */ + ) +NETLIST_END() + +NETLIST_START(tank) + + SOLVER(Solver, 16000) + PARAM(Solver.ACCURACY, 5e-4) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_LTE, 1e-2) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-7) + + ANALOG_INPUT(V5, 5) + ANALOG_INPUT(V12, 12) + //ANALOG_INPUT(VM12, GND) + ALIAS(VCC, V5) + ALIAS(P, V5) + + LOCAL_SOURCE(NE556_DIP) + + RES(R4, RES_K(3.3)) + RES(R5, RES_K(3.3)) + RES(R6, RES_K(3.3)) + RES(R7, RES_K(3.3)) + RES(R7V, 680) + RES(R8, RES_K(3.3)) + RES(R8A, 470) + RES(R9, RES_K(3.3)) + RES(R9A, 470) + RES(R10, RES_K(3.3)) + RES(R10A, 470) + RES(R11, RES_K(3.3)) + RES(R11A, 470) + RES(R3V, 560) + RES(R4V, RES_K(1)) + RES(R5V, RES_K(1)) + RES(R6V, RES_K(1)) + RES(R13, RES_K(4.7)) + RES(R15, RES_K(47)) + RES(R16, RES_K(33)) + RES(R19, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R20, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R21, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R22, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R23, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R24, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R25, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R26, RES_K(1)) // Guess; VGLTank.pdf doesn't say. + RES(R27, 470) + RES(R28, RES_M(1.8)) + RES(R29, RES_M(1.8)) + RES(R32, 470) + RES(R34V, 560) + //RES(R35M2, RES_K(100)) + //RES(R36M1, RES_K(100)) + RES(R37A, RES_K(100)) + RES(R38, RES_K(100)) + RES(R40, RES_K(4.7)) + RES(R41, RES_K(4.7)) + RES(R42, 100) + RES(R43, 100) + //RES(R48A, 560) + RES(R48B, RES_K(4.7)) + RES(R49B, RES_K(4.7)) + RES(R50B, RES_K(4.7)) + RES(R51B, RES_K(4.7)) + RES(R52B, 100) + RES(R53A, RES_K(220)) + RES(R53B, 100) + RES(R54A, RES_K(680)) + RES(R54B, 100) + RES(R55A, RES_K(10)) + RES(R55B, 100) + RES(R56A, RES_K(100)) + RES(R56B, RES_K(4.7)) + RES(R57, RES_K(4.7)) + RES(R58, RES_K(4.7)) + RES(R59A, RES_K(180)) + RES(R59B, RES_K(4.7)) + RES(R60A, RES_M(1)) + RES(R60B, 100) + RES(R61, 100) + RES(R62, 100) + RES(R63A, RES_M(2.2)) + RES(R63B, 100) + RES(R64A, RES_K(180)) + //RES(R64M2, RES_K(4.7)) + //RES(R65M2, RES_K(3.9)) + //RES(R66M2, RES_K(1)) + //RES(R67M2, RES_K(10)) + //RES(R68M2, RES_K(33)) + RES(R69, RES_K(470)) + //RES(R69M2, RES_K(180)) + RES(R70A, RES_M(1)) + //RES(R70M2, RES_K(330)) + RES(R71A, RES_K(680)) + //RES(R71M2, RES_K(680)) + RES(R72A, RES_K(180)) + //RES(R72M2, RES_K(22)) + RES(R73A, RES_M(1)) + //RES(R73M1, RES_K(22)) + //RES(R74M1, RES_K(180)) + //RES(R75M1, RES_K(330)) + //RES(R76M1, RES_K(680)) + //RES(R77M1, RES_K(10)) + //RES(R78M1, RES_K(33)) + //RES(R79M1, RES_K(3.9)) + //RES(R80M1, RES_K(1)) + //RES(R81M1, RES_K(4.7)) + //RES(R100M1, RES_K(1)) + //RES(R101M1, 680) + //RES(R102M2, RES_K(1)) + //RES(R103M2, 680) + RES(R102MX, RES_K(33)) + RES(R103MX, RES_K(33)) + RES(R104MX, RES_K(33)) + RES(R106MX, RES_K(33)) + RES(R107MX, RES_K(33)) + RES(R108MX, RES_K(33)) + RES(RUNK1, RES_K(47)) + + CAP(C2, CAP_U(0.1)) + CAP(C4, CAP_U(0.001)) + CAP(C5, CAP_U(0.001)) + CAP(C6, CAP_U(0.001)) + CAP(C7, CAP_U(0.001)) + CAP(C8, CAP_U(100)) + CAP(C9, CAP_U(22)) + CAP(C11, CAP_U(47)) + CAP(C12, CAP_U(22)) + CAP(C15, CAP_U(0.01)) + CAP(C16, CAP_U(0.01)) + CAP(C17, CAP_P(100)) + CAP(C18, CAP_U(1)) + CAP(C19, CAP_U(1)) + CAP(C21, CAP_P(100)) + CAP(C23, CAP_P(100)) + CAP(C24, CAP_U(0.1)) + CAP(C25, CAP_U(100)) + CAP(C26, CAP_U(0.1)) + CAP(C27, CAP_U(0.1)) + CAP(C27A, CAP_U(0.001)) + CAP(C28A, CAP_U(1)) + //CAP(C29, CAP_U(10)) + CAP(C30, CAP_U(0.1)) + CAP(C30A, CAP_U(0.001)) + CAP(C31, CAP_U(0.1)) + CAP(C31A, CAP_U(1)) + CAP(C32A, CAP_U(0.1)) + CAP(C33C, CAP_U(0.1)) + CAP(C34C, CAP_U(0.1)) + // CAP(C34A, CAP_U(0.01)) Decoupling + CAP(C35C, CAP_U(0.1)) + CAP(C35A, CAP_U(5)) + CAP(C36C, CAP_U(0.1)) + CAP(C36A, CAP_U(0.1)) + CAP(C38A, CAP_U(5)) + CAP(C39, CAP_U(0.1)) + CAP(C39A, CAP_U(0.001)) + CAP(C40, CAP_U(0.1)) + CAP(C40A, CAP_U(0.1)) + CAP(C41, CAP_U(0.1)) + CAP(C41A, CAP_U(5)) + CAP(C42, CAP_U(0.1)) + CAP(C43A, CAP_P(220)) + //CAP(C43M2, CAP_U(0.001)) + //CAP(C44M2, CAP_U(5)) + //CAP(C47M2, CAP_U(0.001)) + //CAP(C48M2, CAP_U(0.1)) + //CAP(C49M2, CAP_U(10)) + //CAP(C50M2, CAP_U(22)) + //CAP(C51M1, CAP_U(22)) + //CAP(C52M1, CAP_U(0.001)) + //CAP(C53M1, CAP_U(0.1)) + //CAP(C54M1, CAP_U(10)) + //CAP(C55M1, CAP_U(0.001)) + //CAP(C56M1, CAP_U(5)) + CAP(C100, CAP_U(0.001)) + CAP(C101, CAP_U(1)) + CAP(C106, CAP_U(1)) + CAP(C110, CAP_U(0.001)) + CAP(C111, CAP_U(0.001)) + + POT(SHOT_NOISE_VOL, RES_K(50)) + POT(BOOM_NOISE_VOL, RES_K(50)) + //POT(MOTOR1_VOL, RES_K(10)) + //POT(MOTOR1_VOL2, RES_K(100)) + //POT(MOTOR2_VOL, RES_K(10)) + //POT(MOTOR2_VOL2, RES_K(100)) + POT(PLAYTIME, RES_M(1)) + POT(FIRE1_ADJUST, RES_K(50)) + + SWITCH(P1_LEFT_UP) + SWITCH(P1_LEFT_DOWN) + SWITCH(P1_RIGHT_UP) + SWITCH(P1_RIGHT_DOWN) + SWITCH(P1_FIRE) + SWITCH(P2_LEFT_UP) + SWITCH(P2_LEFT_DOWN) + SWITCH(P2_RIGHT_UP) + SWITCH(P2_RIGHT_DOWN) + SWITCH(P2_FIRE) + + SWITCH2(COIN1) + SWITCH2(COIN2) + + DIODE(CR1, "1N914") + DIODE(CR2, "1N914") + DIODE(CR3, "1N914") + DIODE(CR5, "1N914") + DIODE(CR6, "1N914") + DIODE(CR7, "1N914") + DIODE(CR8, "1N914") + DIODE(CR9, "1N914") + DIODE(CR10, "1N914") + DIODE(CR11, "1N914") + DIODE(CR12, "1N914") + //DIODE(CR13M2, "1N914") + //DIODE(CR14M1, "1N914") + DIODE(CR19, "1N914") + DIODE(CR22, "1N914") + + QBJT_EB(Q2, "2N3644") + QBJT_EB(Q3, "2N3643") + QBJT_EB(Q4, "2N3643") + QBJT_EB(Q6, "2N3644") + QBJT_EB(Q7, "2N3644") + QBJT_EB(Q27, "2N3643") + QBJT_EB(Q28, "2N3644") + QBJT_EB(Q29, "2N3643") + QBJT_EB(Q30, "2N3644") + QBJT_EB(Q31, "2N3643") + QBJT_EB(Q32, "2N3644") + QBJT_EB(Q33, "2N3643") + QBJT_EB(Q34, "2N3644") + + TTL_7404_DIP(IC_H3) + TTL_7400_DIP(IC_B6) + TTL_7402_DIP(IC_D6) + TTL_74107_DIP(IC_E6) + TTL_7474_DIP(IC_J6) + TTL_7402_DIP(IC_N6) + TTL_7404_DIP(IC_A7) + NET_C(VCC, IC_H3.14, IC_B6.14, IC_D6.14, IC_E6.14, IC_J6.14, IC_N6.14, IC_A7.14, IC_J6.4, IC_J6.10) + NET_C(GND, IC_H3.7, IC_B6.7, IC_D6.7, IC_E6.7, IC_J6.7, IC_N6.7, IC_A7.7) + + TTL_7408_DIP(IC_A11) + TTL_7402_DIP(IC_B11) + TTL_7410_DIP(IC_B12) + TTL_74107_DIP(IC_C12) + TTL_9316_DIP(IC_D12) + TTL_9316_DIP(IC_E12) + TTL_7493_DIP(IC_F12) + TTL_7493_DIP(IC_H12) + NET_C(VCC, IC_A11.14, IC_B11.14, IC_B12.14, IC_C12.14, IC_D12.16, IC_E12.16, IC_F12.5, IC_H12.5) + NET_C(GND, IC_A11.7, IC_B11.7, IC_B12.7, IC_C12.7, IC_D12.8, IC_E12.8, IC_F12.10, IC_H12.10) + + TTL_74107_DIP(IC_J12) + TTL_7474_DIP(IC_K12) + TTL_7402_DIP(IC_A13) + TTL_7420_DIP(IC_D13) + TTL_7404_DIP(IC_E13) + TTL_7400_DIP(IC_J13) + TTL_7410_DIP(IC_A14) + TTL_7400_DIP(IC_B14) + NET_C(VCC, IC_J12.14, IC_K12.14, IC_A13.14, IC_D13.14, IC_E13.14, IC_J13.14, IC_A14.14, IC_B14.14) + NET_C(GND, IC_J12.7, IC_K12.7, IC_A13.7, IC_D13.7, IC_E13.7, IC_J13.7, IC_A14.7, IC_B14.7) + + TTL_7400_DIP(IC_B13) + TTL_7410_DIP(IC_C13) + TTL_7400_DIP(IC_E14) + TTL_7474_DIP(IC_L12) + TTL_7474_DIP(IC_L9) + TTL_7408_DIP(IC_L8) + TTL_7400_DIP(IC_K8) + NET_C(VCC, IC_B13.14, IC_C13.14, IC_E14.14, IC_L12.14, IC_L9.14, IC_L8.14, IC_K8.14) + NET_C(GND, IC_B13.7, IC_C13.7, IC_E14.7, IC_L12.7, IC_L9.7, IC_L8.7, IC_K8.7) + + TTL_7474_DIP(IC_K9) + SUBMODEL(NE556_DIP, IC_C11) + TTL_7492_DIP(IC_A12) + TTL_7404_DIP(IC_M13) + TTL_7402_DIP(IC_E15) + TTL_7410_DIP(IC_F14) + TTL_7427_DIP(IC_K13) + TTL_7400_DIP(IC_L13) + NET_C(VCC, IC_K9.14, IC_C11.14, IC_A12.5, IC_M13.14, IC_E15.14, IC_F14.14, IC_K13.14, IC_L13.14) + NET_C(GND, IC_K9.7, IC_C11.7, IC_A12.10, IC_M13.7, IC_E15.7, IC_F14.7, IC_K13.7, IC_L13.7) + + TTL_74107_DIP(IC_D8) + TTL_74193_DIP(IC_H10) + TTL_7408_DIP(IC_H11) + TTL_7410_DIP(IC_C14) + TTL_9316_DIP(IC_H14) + TTL_7493_DIP(IC_J14) + TTL_7402_DIP(IC_D15) + TTL_7400_DIP(IC_D14) + NET_C(VCC, IC_D8.14, IC_H10.16, IC_H11.14, IC_C14.14, IC_H14.16, IC_J14.5, IC_D15.14, IC_D14.14) + NET_C(GND, IC_D8.7, IC_H10.8, IC_H11.7, IC_C14.7, IC_H14.8, IC_J14.10, IC_D15.7, IC_D14.7) + + TTL_7493_DIP(IC_L14) + TTL_9316_DIP(IC_K14) + TTL_74193_DIP(IC_F11) + TTL_7486_DIP(IC_E8) + TTL_7402_DIP(IC_N7) + TTL_7400_DIP(IC_B15) + TTL_7402_DIP(IC_B9) + TTL_7408_DIP(IC_B7) + NET_C(VCC, IC_L14.5, IC_K14.16, IC_F11.16, IC_E8.14, IC_N7.14, IC_B15.14, IC_B9.14, IC_B7.14) + NET_C(GND, IC_L14.10, IC_K14.8, IC_F11.8, IC_E8.7, IC_N7.7, IC_B15.7, IC_B9.7, IC_B7.7) + + TTL_7404_DIP(IC_B10) + TTL_9602_DIP(IC_C9) + TTL_7474_DIP(IC_A8) + TTL_7474_DIP(IC_A15) + TTL_7400_DIP(IC_A9) + TTL_9602_DIP(IC_C8) + TTL_7402_DIP(IC_B8) + TTL_7474_DIP(IC_J8) + NET_C(VCC, IC_B10.14, IC_C9.16, IC_A8.14, IC_A15.14, IC_A9.14, IC_C8.16, IC_B8.14, IC_J8.14) + NET_C(GND, IC_B10.7, IC_C9.8, IC_A8.7, IC_A15.7, IC_A9.7, IC_C8.8, IC_B8.7, IC_J8.7) + + TTL_7493_DIP(IC_C10) + TTL_7493_DIP(IC_D11) + TTL_7493_DIP(IC_E11) + TTL_7402_DIP(IC_J7) + TTL_7404_DIP(IC_D11V) + TTL_7402_DIP(IC_L7) + TTL_7402_DIP(IC_D7) + TTL_74165_DIP(IC_N10) + NET_C(VCC, IC_C10.5, IC_D11.5, IC_E11.5, IC_J7.14, IC_D11V.14, IC_L7.14, IC_D7.14, IC_N10.16) + NET_C(GND, IC_C10.10, IC_D11.10, IC_E11.10, IC_J7.7, IC_D11V.7, IC_L7.7, IC_D7.7, IC_N10.8) + + NE555_DIP(IC_H6) + NET_C(VCC, IC_H6.8) + NET_C(GND, IC_H6.1) + + // Coin Handling + NET_C(COIN1.1, COIN1_NC) + NET_C(COIN1.2, COIN1_NO) + NET_C(COIN2.1, COIN2_NC) + NET_C(COIN2.2, COIN2_NO) + NET_C(GND, COIN1.Q, COIN2.Q) + + ALIAS(COIN1_NO, IC_B6.5) + ALIAS(COIN1_NC, IC_B6.1) + ALIAS(COIN2_NO, IC_B6.9) + ALIAS(COIN2_NC, IC_B6.13) + + NET_C(IC_B6.2, IC_B6.6, IC_D6.9) + NET_C(IC_B6.4, IC_B6.3, IC_N6.5) + NET_C(IC_B6.12, IC_B6.8, IC_D6.8) + NET_C(IC_B6.10, IC_B6.11, IC_N6.6) + + NET_C(IC_D6.10, IC_D6.11) + NET_C(ATTRACTQ, IC_D6.12) + + NET_C(IC_D6.13, IC_J6.12, IC_J6.13, IC_J6.1) + NET_C(IC_J6.9, IC_J6.2) + NET_C(V128, IC_J6.3, IC_J6.11, IC_E6.9) + NET_C(IC_J6.5, IC_E6.12) + NET_C(VCC, IC_E6.1, IC_E6.4) + ALIAS(COIN, IC_J6.5) + ALIAS(COINQ, IC_J6.6) + + NET_C(IC_E6.3, IC_N6.3) + NET_C(IC_N6.4, IC_N6.2) + + NET_C(GND, IC_D6.3) + NET_C(COINQ, IC_D6.2) + ALIAS(START, IC_D6.1) + + // Game Timer / Attract + NET_C(V5, PLAYTIME.2, PLAYTIME.3) + NET_C(PLAYTIME.1, R54A.1, R53A.1) + NET_C(R54A.2, IC_H6.6, IC_H6.7, R53A.2, R60A.1, C25.1) + NET_C(R60A.2, Q2.B) + NET_C(GND, C25.2, Q3.E, Q4.E, C24.2) + NET_C(IC_H6.5, C24.1, R59A.1) + NET_C(R59A.2, R63A.1, Q2.E) + NET_C(V5, R56A.1, R55A.1) + NET_C(R56A.2, Q3.C, Q4.B) + NET_C(R63A.2, R55A.2, Q4.C, IC_H3.5) + ALIAS(GNE, IC_H3.6) + NET_C(IC_H6.4, ATTRACTQ) + NET_C(IC_H6.3, IC_D6.5) + NET_C(IC_D6.4, IC_E6.11) + NET_C(V5, IC_E6.10) // No antenna to spark, so we pretend we never get a spark + ALIAS(ATTRACT, IC_E6.6) + NET_C(IC_D6.6, ATTRACT) + ALIAS(ATTRACTQ, IC_E6.5) + NET_C(IC_N6.9, ATTRACTQ) + NET_C(GND, IC_N6.8) // No antenna to spark, so we pretend we never get a spark + NET_C(IC_N6.10, IC_E6.13) + NET_C(START, IC_E6.8, IC_H3.3) + NET_C(IC_H3.4, IC_H6.2) + ALIAS(STARTQ, IC_H3.4) + + // H Info + NET_C(H128, IC_A13.12) + NET_C(H_SYNC, IC_A13.8) + NET_C(IC_A13.10, IC_A13.11) + NET_C(IC_A13.13, IC_A13.9) + ALIAS(H_INFO, IC_A13.13) + ALIAS(H_INFOQ, IC_A13.10) + + // V Info + NET_C(V16, IC_J13.9) + NET_C(V64, IC_J13.10) + NET_C(V512Q, IC_J13.2) + NET_C(IC_J13.8, IC_J13.12) + NET_C(IC_J13.3, IC_J13.13) + NET_C(IC_J13.11, IC_J13.1) + ALIAS(V_INFO, IC_J13.3) + ALIAS(V_INFOQ, IC_J13.11) + + // Reset 2 + NET_C(H256, IC_A11.2) + NET_C(H452, IC_A11.1) + ALIAS(RESET2, IC_A11.3) + + // Main Timing & Sync + CLOCK(CLK, 14318000) + NET_C(VCC, CLK.VCC) + NET_C(GND, CLK.GND) + + NET_C(CLK.Q, IC_A7.1, IC_A7.3) + ALIAS(CLOCKQ, IC_A7.4) + + // Horizontal Timing + NET_C(IC_A7.2, IC_K12.3, IC_E12.2, IC_D12.2) + NET_C(V5, IC_E12.7, IC_E12.10, IC_E12.9, IC_D12.10, IC_D12.9, IC_C12.1, IC_C12.4, IC_C12.8, IC_C12.11, IC_C12.10, IC_K12.4, IC_K12.1) + ALIAS(H1, IC_E12.14) + ALIAS(H2, IC_E12.13) + ALIAS(H4, IC_E12.12) + ALIAS(H8, IC_E12.11) + NET_C(IC_E12.15, IC_D12.7) + ALIAS(H16, IC_D12.14) + ALIAS(H32, IC_D12.13) + ALIAS(H64, IC_D12.12) + ALIAS(H128, IC_D12.11) + NET_C(IC_D12.15, IC_C12.12) + NET_C(IC_C12.3, IC_C12.9) + ALIAS(H256, IC_C12.3) + ALIAS(H256Q, IC_C12.2) + ALIAS(H452, IC_C12.5) + NET_C(IC_C12.6, IC_B12.5) + ALIAS(H452Q, IC_C12.6) + NET_C(H256, IC_D13.1) + NET_C(H128, IC_D13.4) + NET_C(H64, IC_D13.5) + NET_C(H2, IC_D13.2) + NET_C(IC_D13.6, IC_K12.2) + NET_C(IC_E12.1, IC_D12.1, IC_C12.13, IC_B12.3, IC_K12.5, IC_B14.5) + ALIAS(H_RESETQ, IC_K12.5) + ALIAS(H_RESET, IC_K12.6) + NET_C(H32Q, IC_B14.1) + NET_C(IC_B14.6, IC_B14.2) + NET_C(IC_B14.3, IC_B14.4) + ALIAS(H_BLANK, IC_B14.6) + NET_C(H_BLANK, IC_B12.4) + NET_C(H4, IC_E13.9) + NET_C(H16, IC_E13.11) + NET_C(H32, IC_E13.13) + NET_C(H64, IC_E13.5) + ALIAS(H4Q, IC_E13.8) + ALIAS(H16Q, IC_E13.10) + ALIAS(H32Q, IC_E13.12) + ALIAS(H64Q, IC_E13.6) + ALIAS(H_SYNCQ, IC_B12.6) + NET_C(H_SYNCQ, IC_E13.3, IC_A14.10) + NET_C(H_INFO, IC_A14.11) + NET_C(H64Q, IC_A14.9) + NET_C(IC_A14.8, IC_A14.3, IC_A14.4, IC_A14.5) + NET_C(IC_A14.6, IC_B11.5) + NET_C(H8, IC_B11.3) + NET_C(H16, IC_B11.2) + NET_C(IC_B11.1, IC_B12.2) + NET_C(H2, IC_B12.13) + NET_C(IC_E13.4, IC_B12.1) + ALIAS(H_SYNC, IC_E13.4) + ALIAS(H_COUNTQ, IC_B12.12) + + // Vertical Timing + NET_C(V8, IC_J13.5) + NET_C(V512, IC_J13.4) + NET_C(IC_J13.6, IC_K12.12) + NET_C(H_RESET, IC_K12.11) + NET_C(VCC, IC_K12.10, IC_K12.13) + ALIAS(V_RESETQ, IC_K12.9) + ALIAS(V_RESET, IC_K12.8) + NET_C(V_RESET, IC_F12.2, IC_F12.3, IC_H12.2, IC_H12.3, IC_B11.12) + NET_C(H_BLANK, IC_F12.14) + NET_C(IC_F12.12, IC_F12.1) + NET_C(IC_F12.11, IC_H12.14) + NET_C(IC_H12.12, IC_H12.1) + NET_C(IC_H12.11, IC_J12.12) + NET_C(VCC, IC_J12.1, IC_J12.4, IC_J12.8, IC_J12.11) + NET_C(IC_J12.3, IC_J12.9) + NET_C(V_RESETQ, IC_J12.13, IC_J12.10) + ALIAS(V1, IC_F12.12) + ALIAS(V2, IC_F12.9) + ALIAS(V4, IC_F12.8) + ALIAS(V8, IC_F12.11) + ALIAS(V16, IC_H12.12) + ALIAS(V32, IC_H12.9) + ALIAS(V64, IC_H12.8) + ALIAS(V128, IC_H12.11) + ALIAS(V256, IC_J12.3) + ALIAS(V256Q, IC_J12.2) + ALIAS(V512, IC_J12.5) + ALIAS(V512Q, IC_J12.6) + NET_C(V8, IC_B11.8) + NET_C(IC_B11.10, IC_B11.11) + NET_C(IC_B11.13, IC_B11.9) + ALIAS(V_SYNC, IC_B11.10) + NET_C(V_SYNC, IC_B11.6) + ALIAS(COMP_SYNC, IC_B11.4) + + // Out-of-Bounds Detection + NET_C(RESET2, IC_D13.10) + NET_C(H16, IC_D13.12) + NET_C(H128, IC_D13.9, IC_C13.4) + NET_C(H32, IC_D13.13, IC_C13.3) + NET_C(H452Q, IC_C13.5) + NET_C(IC_D13.8, IC_B13.9) + NET_C(IC_C13.6, IC_B13.12) + NET_C(IC_B13.8, IC_B13.13) + NET_C(IC_B13.11, IC_B13.10, IC_E14.5) + NET_C(V_INFOQ, IC_E14.4) + ALIAS(OOB, IC_E14.6) + + // Tank Resets + NET_C(OOB, IC_K8.1, IC_K8.12) + NET_C(TANK2, IC_K8.2) + NET_C(STARTQ, IC_L8.1, IC_L8.13) + NET_C(IC_K8.3, IC_L8.2) + NET_C(IC_L8.3, IC_L12.1, IC_L12.13) + NET_C(VCC, IC_L12.2, IC_L12.4, IC_L12.10, IC_L12.12) + NET_C(RESET2, IC_L12.3) + NET_C(V256, IC_L12.11) + ALIAS(HRST2Q, IC_L12.5) + ALIAS(VRST2Q, IC_L12.9) + + NET_C(TANK1, IC_K8.13) + NET_C(IC_K8.11, IC_L8.12) + NET_C(IC_L8.11, IC_L9.1, IC_L9.13) + NET_C(VCC, IC_L9.2, IC_L9.4, IC_L9.10, IC_L9.12) + NET_C(H_INFOQ, IC_L9.11) + NET_C(V_RESET, IC_L9.3) + ALIAS(HRST1Q, IC_L9.9) + ALIAS(VRST1Q, IC_L9.5) + + // HMCE + NET_C(GND, IC_K9.12) + NET_C(VCC, IC_K9.4, IC_K9.13, IC_K9.1) + NET_C(VLD2, IC_K9.11) + NET_C(H452Q, IC_K9.3) + NET_C(IC_K9.5, IC_K9.10) + NET_C(IC_K9.9, IC_K9.2) + ALIAS(HMCEQ, IC_K9.5) + ALIAS(HMCE, IC_K9.6) + + // Blo-Up 1 & Blo-Up 2 + NET_C(V5, R28.1, R29.1) + NET_C(GND, C19.2, C18.2, C15.2, C16.2) + NET_C(R28.2, IC_C11.2, IC_C11.1, C19.1) + NET_C(R29.2, IC_C11.12, IC_C11.13, C18.1) + NET_C(C15.1, IC_C11.3) + NET_C(C16.1, IC_C11.11) + NET_C(HT1Q, IC_C11.4, IC_C11.6) + NET_C(HT2Q, IC_C11.8, IC_C11.10) + ALIAS(BLO_UP1, IC_C11.5) + ALIAS(BLO_UP2, IC_C11.9) + + // Flash & TM1 + NET_C(GND, IC_A12.6, IC_A12.7) + NET_C(V_RESETQ, IC_A12.14) + NET_C(IC_A12.12, IC_A12.1, IC_B12.10) + NET_C(IC_A12.11, IC_B12.9) + HINT(IC_A12.9, NC) + NET_C(VLD2, IC_B12.11) + NET_C(ATTRACTQ, IC_M13.1) + NET_C(IC_M13.2, IC_A13.2) + NET_C(IC_B12.8, IC_A13.3) + ALIAS(FLASH, IC_A12.8) + ALIAS(TM1, IC_A13.1) + + // Tank 1 Control + NET_C(GND, P1_RIGHT_UP.1, P1_RIGHT_DOWN.1, P1_LEFT_UP.1, P1_LEFT_DOWN.1) + NET_C(GND, C39.2, C40.2, C41.2, C42.2) + NET_C(VCC, R56B.1, R57.1, R58.1, R59B.1, CR9.K, CR10.K, CR11.K, CR12.K) + + NET_C(P1_RIGHT_UP.2, R63B.1) + NET_C(R63B.2, R59B.2, CR9.A, C42.1, IC_E15.2, IC_E15.12) + NET_C(P1_RIGHT_DOWN.2, R61.1) + NET_C(R61.2, R57.2, CR11.A, C40.1, IC_E15.6, IC_E15.9) + NET_C(P1_LEFT_UP.2, R62.1) + NET_C(R62.2, R58.2, CR10.A, C41.1, IC_E15.8, IC_E15.3) + NET_C(P1_LEFT_DOWN.2, R60B.1) + NET_C(R60B.2, R56B.2, CR12.A, C39.1, IC_E15.11, IC_E15.5) + + ALIAS(ACC1, IC_E15.1) + ALIAS(STOP1, IC_E15.4) + ALIAS(RR1, IC_E15.10) + ALIAS(RL1, IC_E15.13) + + NET_C(TM1, IC_E14.2, IC_C14.10, IC_E14.12, IC_E14.9) + NET_C(STOP1, IC_E14.1) + NET_C(ACC1, IC_C14.11) + NET_C(RR1, IC_E14.13) + NET_C(RL1, IC_E14.10) + + NET_C(BOUNCE1Q, IC_F14.5) + NET_C(ATTRACTQ, IC_F14.4) + NET_C(IC_E14.3, IC_F14.3) + NET_C(IC_F14.6, IC_J14.2, IC_J14.3) + NET_C(IC_C14.8, IC_J14.1) + NET_C(IC_J14.9, IC_K13.9, IC_H14.4) + NET_C(IC_J14.8, IC_K13.10, IC_L13.9, IC_H14.5) + NET_C(IC_J14.11, IC_K13.11, IC_L13.10, IC_H14.6) + NET_C(IC_L13.8, IC_C14.9) + + NET_C(GND, IC_H14.3) + NET_C(VCC, IC_H14.10, IC_H14.7) + NET_C(VLD1, IC_H14.2) + NET_C(IC_K13.8, IC_M13.5) + NET_C(IC_M13.6, IC_H14.1) + NET_C(IC_H14.15, IC_M13.11) + NET_C(IC_H14.9, IC_M13.10, IC_L13.4) + NET_C(BOUNCE1Q, IC_L13.5) + ALIAS(G01, IC_L13.6) + + NET_C(HIT2Q, IC_H11.5) + NET_C(IC_E14.11, IC_H11.4) + NET_C(IC_H11.6, IC_H10.5) + NET_C(IC_E14.8, IC_H10.4) + NET_C(STARTQ, IC_H10.11) + NET_C(VCC, IC_H10.9) + NET_C(GND, IC_H10.15, IC_H10.1, IC_H10.10, IC_H10.14) + NET_C(IC_H10.12, IC_H11.10) + NET_C(IC_H10.13, IC_H11.9) + NET_C(IC_H11.8, IC_D8.12) + NET_C(VCC, IC_D8.1, IC_D8.4) + NET_C(STARTQ, IC_D8.13) + HINT(IC_D8.3, NC) + ALIAS(P1D0, IC_H10.3) + ALIAS(P1D1, IC_H10.2) + ALIAS(P1D2, IC_H10.6) + ALIAS(P1D3, IC_H10.7) + ALIAS(P1D4, IC_D8.2) + ALIAS(P1SP0, IC_J14.9) + ALIAS(P1SP1, IC_J14.8) + ALIAS(P1SP2, IC_J14.11) + + // Tank 2 Control + NET_C(GND, P2_RIGHT_UP.1, P2_RIGHT_DOWN.1, P2_LEFT_UP.1, P2_LEFT_DOWN.1) + NET_C(GND, C33C.2, C34C.2, C35C.2, C36C.2) + NET_C(VCC, R48B.1, R49B.1, R50B.1, R51B.1, CR5.K, CR6.K, CR7.K, CR8.K) + + NET_C(P2_RIGHT_UP.2, R55B.1) + NET_C(R55B.2, R51B.2, CR5.A, C36C.1, IC_D15.2, IC_D15.12) + NET_C(P2_RIGHT_DOWN.2, R53B.1) + NET_C(R53B.2, R49B.2, CR7.A, C34C.1, IC_D15.6, IC_D15.9) + NET_C(P2_LEFT_UP.2, R54B.1) + NET_C(R54B.2, R50B.2, CR6.A, C35C.1, IC_D15.8, IC_D15.3) + NET_C(P2_LEFT_DOWN.2, R52B.1) + NET_C(R52B.2, R48B.2, CR8.A, C33C.1, IC_D15.11, IC_D15.5) + + ALIAS(ACC2, IC_D15.1) + ALIAS(STOP2, IC_D15.4) + ALIAS(RR2, IC_D15.10) + ALIAS(RL2, IC_D15.13) + + NET_C(TM1, IC_D14.2, IC_C14.4, IC_D14.12, IC_D14.9) + NET_C(STOP2, IC_D14.1) + NET_C(ACC2, IC_C14.3) + NET_C(RR2, IC_D14.13) + NET_C(RL2, IC_D14.10) + + NET_C(BOUNCE2Q, IC_F14.9) + NET_C(ATTRACTQ, IC_F14.10) + NET_C(IC_D14.3, IC_F14.11) + NET_C(IC_F14.8, IC_L14.2, IC_L14.3) + NET_C(IC_C14.6, IC_L14.1) + NET_C(IC_L14.9, IC_K13.4, IC_K14.4) + NET_C(IC_L14.8, IC_K13.5, IC_L13.12, IC_K14.5) + NET_C(IC_L14.11, IC_K13.3, IC_L13.13, IC_K14.6) + NET_C(IC_L13.11, IC_C14.5) + + NET_C(GND, IC_K14.3) + NET_C(VCC, IC_K14.10, IC_K14.7) + NET_C(VLD2, IC_K14.2) + NET_C(IC_K13.6, IC_M13.9) + NET_C(IC_M13.8, IC_K14.1) + NET_C(IC_K14.15, IC_M13.13) + NET_C(IC_K14.9, IC_M13.12, IC_L13.2) + NET_C(BOUNCE2Q, IC_L13.1) + ALIAS(G02, IC_L13.3) + + NET_C(HIT1Q, IC_H11.2) + NET_C(IC_D14.11, IC_H11.1) + NET_C(IC_H11.3, IC_F11.5) + NET_C(IC_D14.8, IC_F11.4) + NET_C(STARTQ, IC_F11.11) + NET_C(VCC, IC_F11.9) + NET_C(GND, IC_F11.15, IC_F11.1, IC_F11.10, IC_F11.14) + NET_C(IC_F11.12, IC_H11.12) + NET_C(IC_F11.13, IC_H11.13) + NET_C(IC_H11.11, IC_D8.9) + NET_C(VCC, IC_D8.8, IC_D8.11) + NET_C(STARTQ, IC_D8.10) + HINT(IC_D8.6, NC) + ALIAS(P2D0, IC_F11.3) + ALIAS(P2D1, IC_F11.2) + ALIAS(P2D2, IC_F11.6) + ALIAS(P2D3, IC_F11.7) + NET_C(IC_D8.5, IC_E8.10) + ALIAS(P2D4, IC_D8.5) + NET_C(BOUNCE2, IC_E8.9) + ALIAS(P2D4S, IC_E8.8) + ALIAS(P2SP0, IC_L14.9) + ALIAS(P2SP1, IC_L14.8) + ALIAS(P2SP2, IC_L14.11) + + // Shell 1 Control + NET_C(GND, P1_FIRE.1, C31.2, C100.2, IC_C9.12, IC_C9.4) + NET_C(P1_FIRE.2, R43.1) + NET_C(R43.2, C31.1, R41.2, CR2.A, IC_B15.1) + NET_C(VCC, R41.1, CR2.K) + NET_C(BLO_UP2, IC_N7.5) + NET_C(SRS1, IC_N7.6) + NET_C(IC_N7.4, IC_A15.1) + NET_C(HMCEQ, IC_A15.3) + NET_C(ATTRACTQ, IC_A15.2) + NET_C(VCC, IC_A15.4, RUNK1.2, FIRE1_ADJUST.3, FIRE1_ADJUST.2, IC_C9.3, IC_A8.1, IC_A8.4) + NET_C(V_RESET, IC_A8.3, IC_A8.11) + NET_C(IC_A15.5, IC_B15.13) + NET_C(IC_B15.11, IC_C9.11, IC_B15.2) + NET_C(IC_B15.3, IC_B15.12) + NET_C(PLAYFIELD, IC_B9.8, IC_B7.4, C100.1) + NET_C(SHELL1, IC_B7.5) + NET_C(IC_B7.6, IC_B9.6) + NET_C(HIT2, IC_B9.5) + NET_C(IC_B9.4, IC_C9.13) + NET_C(C11.1, IC_C9.15) + NET_C(C11.2, IC_C9.14, FIRE1_ADJUST.1) + NET_C(C12.1, IC_C9.1) + NET_C(C12.2, IC_C9.2, RUNK1.1) + NET_C(IC_C9.10, IC_C9.5) + ALIAS(FIRE1, IC_C9.10) + ALIAS(FIRE1Q, IC_C9.9) + ALIAS(EXPL1, IC_C9.6) + ALIAS(EXPL1Q, IC_C9.7) + NET_C(TANK2, IC_B9.9) + NET_C(IC_B9.10, IC_B9.11) + NET_C(TANK1, IC_B10.9) + NET_C(IC_B10.8, IC_B9.12) + ALIAS(TANK1Q, IC_B10.8) + NET_C(HT1Q, IC_B10.5) + NET_C(IC_B10.6, IC_B9.2) + NET_C(IC_B9.13, IC_B9.3) + NET_C(IC_B9.1, IC_A9.1) + NET_C(IC_A9.3, IC_A9.12, IC_A8.2) + NET_C(IC_A9.11, IC_A9.2) + NET_C(IC_A8.5, IC_E8.5) + ALIAS(BOUNCE1, IC_A8.5) + NET_C(IC_A8.6, IC_A9.13) + ALIAS(BOUNCE1Q, IC_A8.6) + NET_C(P1D4, IC_E8.4) + ALIAS(P1D4S, IC_E8.6) + + // Shell 2 Control + NET_C(GND, P2_FIRE.1, C30.2, IC_C8.12, IC_C8.4) + NET_C(P2_FIRE.2, R42.1) + NET_C(R42.2, C30.1, R40.2, CR3.A, IC_B15.4) + NET_C(VCC, R40.1, CR3.K) + NET_C(BLO_UP1, IC_N7.3) + NET_C(SRS2, IC_N7.2) + NET_C(IC_N7.1, IC_A15.13) + NET_C(HMCEQ, IC_A15.11) + NET_C(ATTRACTQ, IC_A15.12) + NET_C(VCC, IC_A15.10, R16.2, R15.2, IC_C8.3, IC_A8.10, IC_A8.13) + NET_C(IC_A15.9, IC_B15.10) + NET_C(IC_B15.8, IC_C8.11, IC_B15.5) + NET_C(IC_B15.6, IC_B15.9) + NET_C(PLAYFIELD, IC_B8.8, IC_B7.1) + NET_C(SHELL2, IC_B7.2) + NET_C(IC_B7.3, IC_B8.6) + NET_C(HIT1, IC_B8.5) + NET_C(IC_B8.4, IC_C8.13) + NET_C(C8.1, IC_C8.15) + NET_C(C8.2, IC_C8.14, R16.1) + NET_C(C9.1, IC_C8.1) + NET_C(C9.2, IC_C8.2, R15.1) + NET_C(IC_C8.10, IC_C8.5) + ALIAS(FIRE2, IC_C8.10) + ALIAS(FIRE2Q, IC_C8.9) + ALIAS(EXPL2, IC_C8.6) + ALIAS(EXPL2Q, IC_C8.7) + NET_C(TANK1, IC_B8.9) + NET_C(IC_B8.10, IC_B8.12) + NET_C(TANK2, IC_B10.11) + NET_C(IC_B10.10, IC_B8.11) + ALIAS(TANK2Q, IC_B10.10) + NET_C(HT2Q, IC_B10.3) + NET_C(IC_B10.4, IC_B8.2) + NET_C(IC_B8.13, IC_B8.3) + NET_C(IC_B8.1, IC_A9.4) + NET_C(IC_A9.6, IC_A9.9, IC_A8.12) + NET_C(IC_A9.8, IC_A9.5) + ALIAS(BOUNCE2, IC_A8.9) + NET_C(IC_A8.8, IC_A9.10) + ALIAS(BOUNCE2Q, IC_A8.8) + + // Score + NET_C(VCC, IC_J8.1, IC_J8.13) + NET_C(GND, IC_J8.2, IC_J8.12) + NET_C(TANK2, IC_K8.4) + NET_C(SHELL1, IC_K8.5) + NET_C(IC_K8.6, IC_J8.4) + NET_C(V_RESET, IC_J8.3, IC_J8.11) + NET_C(IC_J8.5, IC_J7.2) + NET_C(MTK2, IC_J7.3) + NET_C(IC_J7.1, IC_C10.14) + NET_C(START, IC_C10.2, IC_C10.3, IC_D11.2, IC_D11.3, IC_E11.2, IC_E11.3) + ALIAS(HIT2, IC_J8.5) + ALIAS(HIT2Q, IC_J8.6) + ALIAS(HIT1, IC_J8.9) + ALIAS(HIT1Q, IC_J8.8) + ALIAS(HT1Q, IC_J7.13) + ALIAS(HT2Q, IC_J7.1) + NET_C(IC_C10.12, IC_C10.1) + ALIAS(SCR1A, IC_C10.12) + ALIAS(SCR1B, IC_C10.9) + ALIAS(SCR1C, IC_C10.8) + ALIAS(SCR1D, IC_C10.11) + NET_C(TANK1, IC_K8.10) + NET_C(SHELL2, IC_K8.9) + NET_C(IC_K8.8, IC_J8.10) + NET_C(IC_J8.9, IC_J7.12) + NET_C(MTK1, IC_J7.11) + NET_C(IC_J7.13, IC_D11.1) + NET_C(SCR1D, IC_D11.14) + NET_C(IC_D11.12, IC_E11.1) + NET_C(IC_D11.11, IC_E11.14) + ALIAS(SCR1E, IC_D11.11) + ALIAS(SCR2A, IC_D11.9) + ALIAS(SCR2B, IC_D11.8) + ALIAS(SCR2C, IC_D11.11) + ALIAS(SCR1F, IC_E11.12) + ALIAS(SCR2D, IC_E11.9) + ALIAS(SCR2E, IC_E11.8) + ALIAS(SCR2F, IC_E11.11) + + // Memory + TTL_9322_DIP(IC_F10) + TTL_9322_DIP(IC_F8) + TTL_9322_DIP(IC_D10) + TTL_9322_DIP(IC_E10) + NET_C(VCC, IC_F10.16, IC_F8.16, IC_D10.16, IC_E10.16) + NET_C(GND, IC_F10.8, IC_F8.8, IC_D10.8, IC_E10.8, IC_F10.15, IC_F8.15, IC_D10.15, IC_E10.15) + + TTL_7400_DIP(IC_H8) + NET_C(VCC, IC_H8.14) + NET_C(GND, IC_H8.7) + + NET_C(H64, IC_F10.1, IC_F8.1, IC_H8.2) + NET_C(H64Q, IC_H8.12) + NET_C(H452Q, IC_D10.1, IC_E10.1) + NET_C(P1D0, IC_F10.2) + NET_C(P2D0, IC_F10.3) + NET_C(P1D1, IC_F10.5) + NET_C(P2D1, IC_F10.6) + NET_C(P1D2, IC_F10.14) + NET_C(P2D2, IC_F10.13) + NET_C(P1D3, IC_F10.11) + NET_C(P2D3, IC_F10.10) + + NET_C(P1D4, IC_F8.2) + NET_C(P2D4, IC_F8.3) + NET_C(P1D4S, IC_F8.5) + NET_C(P2D4S, IC_F8.6) + NET_C(P1T2, IC_F8.14) + NET_C(P2T2, IC_F8.13) + NET_C(P1T3, IC_F8.11) + NET_C(P2T3, IC_F8.10) + + NET_C(P1T4, IC_H8.13) + NET_C(P2T4, IC_H8.1) + NET_C(IC_H8.11, IC_H8.10) + NET_C(IC_H8.3, IC_H8.9) + + NET_C(SCR1A, IC_D10.2) + NET_C(SCR2A, IC_D10.3) + NET_C(SCR1B, IC_D10.5) + NET_C(SCR2B, IC_D10.6) + NET_C(SCR1C, IC_D10.14) + NET_C(SCR2C, IC_D10.13) + NET_C(SCR1D, IC_D10.11) + NET_C(SCR2D, IC_D10.10) + + NET_C(SCR1E, IC_E10.2) + NET_C(SCR2E, IC_E10.3) + NET_C(SCR1F, IC_E10.5) + NET_C(SCR2F, IC_E10.6) + NET_C(GND, IC_E10.14, IC_E10.13, IC_E10.11, IC_E10.10) + + ALIAS(D0, IC_F10.4) + ALIAS(D1, IC_F10.7) + ALIAS(D2, IC_F10.12) + ALIAS(D3, IC_F10.9) + + ALIAS(D4, IC_F8.4) + ALIAS(D4S, IC_F8.7) + ALIAS(T2, IC_F8.12) + ALIAS(T3, IC_F8.9) + + ALIAS(T4, IC_H8.8) + + ALIAS(SCRA, IC_D10.4) + ALIAS(SCRB, IC_D10.7) + ALIAS(SCRC, IC_D10.12) + ALIAS(SCRD, IC_D10.9) + + ALIAS(SCRE, IC_E10.4) + ALIAS(SCRF, IC_E10.7) + HINT(IC_E10.12, NC) + HINT(IC_E10.9, NC) + + TTL_74153_DIP(IC_D9) + TTL_74153_DIP(IC_E9) + TTL_74153_DIP(IC_J9) + TTL_74153_DIP(IC_H9) + TTL_74153_DIP(IC_F9) + NET_C(VCC, IC_D9.16, IC_E9.16, IC_J9.16, IC_H9.16, IC_F9.16) + NET_C(GND, IC_D9.8, IC_E9.8, IC_J9.8, IC_H9.8, IC_F9.8) + NET_C(GND, IC_D9.1, IC_E9.1, IC_J9.1, IC_H9.1, IC_F9.1) + NET_C(GND, IC_D9.15, IC_E9.15, IC_J9.15, IC_H9.15, IC_F9.15) + + NET_C(VCC, R13.1) + + NET_C(R13.2, IC_D9.6) + NET_C(GND, IC_D9.5) + NET_C(VCC, IC_D9.4) + NET_C(R13.2, IC_D9.3) + NET_C(V256, IC_D9.10) + NET_C(SCRF, IC_D9.11) + NET_C(D3, IC_D9.12) + NET_C(V256, IC_D9.13) + + NET_C(V128, IC_E9.6) + NET_C(SCRE, IC_E9.5) + NET_C(D2, IC_E9.4) + NET_C(V128, IC_E9.3) + NET_C(V64, IC_E9.10) + NET_C(SCRD, IC_E9.11) + NET_C(D1, IC_E9.12) + NET_C(V64, IC_E9.13) + + NET_C(GND, IC_J9.6) + NET_C(SCRC, IC_J9.5) + NET_C(D0, IC_J9.4) + NET_C(V32, IC_J9.3) + NET_C(D4S, IC_J9.10) + NET_C(SCRB, IC_J9.11) + NET_C(H32Q, IC_J9.12) + NET_C(V16, IC_J9.13) + + NET_C(D3, IC_H9.6) + NET_C(SCRA, IC_H9.5) + NET_C(D4, IC_H9.4) + NET_C(H452, IC_H9.3) + NET_C(D2, IC_H9.10) + NET_C(V16, IC_H9.11) + NET_C(T4, IC_H9.12) + NET_C(H256, IC_H9.13) + + NET_C(D1, IC_F9.6) + NET_C(V8, IC_F9.5) + NET_C(T3, IC_F9.4) + NET_C(H128, IC_F9.3) + NET_C(D0, IC_F9.10) + NET_C(V4, IC_F9.11) + NET_C(T2, IC_F9.12) + NET_C(H64, IC_F9.13) + + NET_C(H_INFOQ, IC_D9.14, IC_E9.14, IC_J9.14, IC_H9.14, IC_F9.14, IC_E8.13) + NET_C(V_INFOQ, IC_D9.2, IC_E9.2, IC_J9.2, IC_H9.2, IC_F9.2, IC_E8.12) + + PROM_MK28000_DIP(IC_R10) + PARAM(IC_R10.ROM, "gfx") + NET_C(VCC, IC_R10.1, IC_R10.14, IC_R10.24) + NET_C(GND, IC_R10.9) + NET_C(H16, IC_R10.13) + NET_C(IC_E8.11, IC_R10.15) + NET_C(IC_D9.7, IC_R10.8) + NET_C(IC_D9.9, IC_R10.10) + NET_C(IC_E9.7, IC_R10.11) + NET_C(IC_E9.9, IC_R10.12) + NET_C(IC_J9.7, IC_R10.7) + NET_C(IC_J9.9, IC_R10.6) + NET_C(IC_H9.7, IC_R10.5) + NET_C(IC_H9.9, IC_R10.4) + NET_C(IC_F9.7, IC_R10.3) + NET_C(IC_F9.9, IC_R10.2) + + TTL_7406_DIP(IC_M10) + TTL_7406_DIP(IC_N13) + NET_C(VCC, IC_M10.14, IC_N13.14) + NET_C(GND, IC_M10.7) + NET_C(GND, IC_N13.7, R19.2, R20.2, R21.2, R22.2, R23.2, R24.2, R25.2, R26.2) + NET_C(IC_R10.16, R19.1, IC_M10.9) + NET_C(IC_R10.17, R20.1, IC_M10.5) + NET_C(IC_R10.18, R21.1, IC_M10.11) + NET_C(IC_R10.19, R22.1, IC_M10.13) + NET_C(IC_R10.20, R23.1, IC_M10.1) + NET_C(IC_R10.21, R24.1, IC_M10.3) + NET_C(IC_R10.22, R25.1, IC_N13.11) + NET_C(IC_R10.23, R26.1, IC_N13.9) + ALIAS(ROM_D7, IC_M10.8) + ALIAS(ROM_D6, IC_M10.6) + ALIAS(ROM_D5, IC_M10.10) + ALIAS(ROM_D4, IC_M10.12) + ALIAS(ROM_D3, IC_M10.2) + ALIAS(ROM_D2, IC_M10.4) + ALIAS(ROM_D1, IC_N13.10) + ALIAS(ROM_D0, IC_N13.8) + + // Video Summing + NET_C(VCC, IC_N10.10) + NET_C(GND, IC_N10.15) + NET_C(H4Q, IC_N10.2) + NET_C(PFLDQ, IC_N10.1) + ALIAS(FIELD, IC_N10.7) + NET_C(ROM_D0, IC_N10.11) + NET_C(ROM_D1, IC_N10.12) + NET_C(ROM_D2, IC_N10.13) + NET_C(ROM_D3, IC_N10.14) + NET_C(ROM_D4, IC_N10.3) + NET_C(ROM_D5, IC_N10.4) + NET_C(ROM_D6, IC_N10.5) + NET_C(ROM_D7, IC_N10.6) + + NET_C(IC_N10.9, IC_K13.2) + NET_C(V512, IC_K13.13) + NET_C(MINEFIELD, IC_K13.1) + ALIAS(PLAYFIELD, IC_K13.12) + + NET_C(GNE, IC_C14.2) + NET_C(V_INFO, IC_C14.1) + NET_C(FLASH, IC_C14.13) + + NET_C(IC_K13.12, IC_A11.4) + NET_C(IC_C14.12, IC_A11.5) + ALIAS(PLAYFIELD_VIDEO, IC_A11.6) + + NET_C(PLAYFIELD_VIDEO, IC_F14.13, IC_D11V.9) + NET_C(TANK1Q, IC_B10.1) + NET_C(V_INFO, IC_F14.1) + NET_C(H452Q,IC_F14.2) + NET_C(SHELL1, IC_L7.11) + NET_C(BLAST1, IC_L7.12) + NET_C(IC_L7.13, IC_H8.5) + NET_C(IC_D11V.8, IC_H8.4) + NET_C(TANK2, IC_D7.12) + NET_C(MINE, IC_D7.11) + NET_C(SHELL2, IC_N7.8) + NET_C(BLAST2, IC_N7.9) + NET_C(IC_D7.13, IC_B7.10) + NET_C(IC_N7.10, IC_B7.9) + + NET_C(IC_B10.2, R5V.1) + NET_C(IC_F14.12, R34V.1) + NET_C(IC_H8.6, R6V.1) + NET_C(IC_B7.8, R4V.1) + + NET_C(VCC, R7V.1) + NET_C(R7V.2, R3V.1, C2.1) + NET_C(GND, C2.2) + NET_C(R5V.2, R34V.2, R6V.2, R3V.2, R4V.2, CR1.A, RVID.1) + NET_C(CR1.K, COMP_SYNC) + //RES(RPROBE, 220) + //NET_C(RPROBE.2, RVID.1) + //ALIAS(VIDEO_PROBE, RPROBE.1) + RES(RVID, RES_K(10)) + NET_C(RVID.2, GND) + ALIAS(VIDEO_OUT, RVID.1) + + // Video Probe + //NET_C(PFLDQ, VIDEO_PROBE) + //TTL_7404_GATE(PROBE_BUF1) + //TTL_7404_GATE(PROBE_BUF2) + //NET_C(VCC, PROBE_BUF1.VCC, PROBE_BUF2.VCC) + //NET_C(GND, PROBE_BUF1.GND, PROBE_BUF2.GND) + + // Playfield & Score Load + NET_C(V_INFO, IC_H13.1) + NET_C(V32, IC_H13.2) + NET_C(H256, C23.1) + NET_C(C23.2, R32.1, IC_H13.13) + NET_C(V_INFOQ, IC_A10.2) + NET_C(H32, C17.1) + NET_C(C17.2, R27.1, IC_A10.1) + NET_C(GND, R32.2, R27.2) + NET_C(IC_H13.12, IC_A10.5) + NET_C(IC_A10.3, IC_A10.4) + NET_C(IC_A10.6, IC_A10.9) + NET_C(H_INFOQ, IC_A10.10) + ALIAS(PFLDQ, IC_A10.8) + + // Mine Matrix + TTL_7400_DIP(IC_A10) + TTL_7486_DIP(IC_F13) + NET_C(VCC, IC_A10.14, IC_F13.14) + NET_C(GND, IC_A10.7, IC_F13.7) + + NET_C(V8, IC_A10.13) + NET_C(H8, IC_A10.12) + ALIAS(SQUARES, IC_A10.11) + NET_C(V4, IC_F13.10) + NET_C(V2, IC_F13.9) + NET_C(H4, IC_F13.12) + NET_C(H2, IC_F13.13) + NET_C(IC_F13.8, IC_F13.5) + NET_C(IC_F13.11, IC_F13.4) + ALIAS(CHECKERBOARD, IC_F13.6) + NET_C(SQUARES, IC_D7.3) + NET_C(CHECKERBOARD, IC_D7.2) + ALIAS(MINE_MATRIX, IC_D7.1) + + // Minefield + TTL_7410_DIP(IC_H13) + NET_C(VCC, IC_H13.14) + NET_C(GND, IC_H13.7) + + NET_C(V256Q, IC_H13.5) + NET_C(V128, IC_H13.4, IC_H13.10) + NET_C(V32, IC_H13.3, IC_H13.11) + NET_C(V256, IC_A11.12) + NET_C(H_SYNC, IC_A11.13) + NET_C(IC_A11.11, IC_H13.9) + NET_C(H452, IC_C13.9) + NET_C(H452Q, IC_C13.1) + NET_C(H256, IC_C13.2) + NET_C(H128, IC_C13.10, IC_C13.13) + NET_C(H16, IC_C13.11) + NET_C(IC_H13.6, IC_B14.9) + NET_C(IC_H13.8, IC_B14.13) + ALIAS(MEV, IC_B14.8) + ALIAS(MEVQ, IC_B14.11) + NET_C(MEV, IC_B14.12) + NET_C(IC_C13.8, IC_B13.5) + NET_C(IC_C13.12, IC_B13.2) + ALIAS(MEH, IC_B13.3) + ALIAS(MEHQ, IC_B13.6) + NET_C(MEH, IC_B13.4) + NET_C(MEVQ, IC_B14.10, IC_A13.5) + NET_C(MEHQ, IC_B13.1, IC_A13.6) + ALIAS(MINEFIELD, IC_A13.4) + + // Mine Control + TTL_7400_DIP(IC_K7) + TTL_7420_DIP(IC_E7) + TTL_7474_DIP(IC_H7) + TTL_8277_DIP(IC_F7) + NET_C(VCC, IC_K7.14, IC_E7.14, IC_H7.14, IC_F7.16, IC_F7.12, IC_F7.6) + NET_C(GND, IC_K7.7, IC_E7.7, IC_H7.7, IC_F7.8, IC_H7.2, IC_H7.12, IC_F7.7, IC_F7.10, IC_F7.5, IC_F7.11) + + NET_C(IC_F7.3, IC_F7.13) + NET_C(MEV, IC_A11.10) + NET_C(V8, IC_A11.9) + NET_C(IC_A11.8, IC_F7.9, IC_H7.3, IC_H7.11) + NET_C(STARTQ, IC_H7.1, IC_H7.13, IC_F7.1) + NET_C(TANK1, IC_K7.13) + NET_C(TANK2, IC_K7.1) + NET_C(MINE, IC_K7.12, IC_K7.2) + NET_C(IC_K7.11, IC_H7.4) + NET_C(IC_K7.3, IC_H7.10) + ALIAS(MTK1, IC_H7.5) + ALIAS(MTK1Q, IC_H7.6) + ALIAS(MTK2, IC_H7.9) + ALIAS(MTK2Q, IC_H7.8) + + NET_C(MTK1Q, IC_K7.10) + NET_C(MTK2Q, IC_K7.9) + NET_C(IC_K7.8, IC_J7.8) + NET_C(IC_F7.14, IC_J7.9) + NET_C(IC_J7.10, IC_F7.4, IC_E7.5) + NET_C(FIELD, IC_E7.4) + NET_C(MINE_MATRIX, IC_E7.2) + NET_C(MINEFIELD, IC_E7.1) + NET_C(IC_E7.6, IC_E7.9, IC_E7.10, IC_E7.12, IC_E7.13) + ALIAS(MINE, IC_E7.8) + + // Horizontal & Vertical Load + TTL_7404_DIP(IC_J11) + TTL_7402_DIP(IC_K11) + TTL_9321_DIP(IC_L11) + NET_C(VCC, IC_J11.14, IC_K11.14, IC_L11.16) + NET_C(GND, IC_J11.7, IC_K11.7, IC_L11.8, C21.2) + + NET_C(V_RESET, IC_K11.8) + NET_C(V2, IC_K11.12) + NET_C(IC_K11.10, IC_K11.11) + NET_C(IC_K11.13, IC_K11.9, IC_J11.3) + NET_C(IC_J11.4, IC_K11.5, IC_K11.2) + NET_C(H16, IC_D14.5) + NET_C(H_INFO, IC_D14.4) + NET_C(IC_D14.6, IC_L11.1) + NET_C(H32, IC_L11.2) + NET_C(H64, IC_L11.3) + NET_C(IC_L11.4, C21.1) + NET_C(IC_L11.5, IC_K11.6) + NET_C(IC_L11.7, IC_K11.3) + ALIAS(LDH2BQ, IC_L11.7) + ALIAS(LDH2AQ, IC_L11.6) + ALIAS(LDH1BQ, IC_L11.5) + ALIAS(LDH1AQ, IC_L11.4) + NET_C(IC_K11.4, IC_J11.5) + NET_C(IC_K11.1, IC_J11.1) + ALIAS(VLD1, IC_K11.4) + ALIAS(VLD1Q, IC_J11.6) + ALIAS(VLD2, IC_K11.1) + ALIAS(VLD2Q, IC_J11.2) + + // Horizontal & Vertical Motion Latches + TTL_7474_DIP(IC_M8) + TTL_7474_DIP(IC_N8) + TTL_7474_DIP(IC_M12) + TTL_7474_DIP(IC_N12) + TTL_7474_DIP(IC_M9) + TTL_7474_DIP(IC_N9) + TTL_7474_DIP(IC_M11) + TTL_7474_DIP(IC_N11) + NET_C(VCC, IC_M8.14, IC_N8.14, IC_M12.14, IC_N12.14, IC_M9.14, IC_N9.14, IC_M11.14, IC_N11.14) + NET_C(GND, IC_M8.7, IC_N8.7, IC_M12.7, IC_N12.7, IC_M9.7, IC_N9.7, IC_M11.7, IC_N11.7) + NET_C(VCC, IC_M8.10, IC_M8.4, IC_N8.10, IC_N8.4, IC_M12.10, IC_M12.4, IC_N12.10, IC_N12.4, IC_N9.4) + NET_C(VCC, IC_M9.13, IC_M9.1, IC_N9.13, IC_M11.13, IC_M11.1, IC_N11.13, IC_N11.4) + + NET_C(VLD1Q, IC_M8.11, IC_M8.3, IC_N8.11, IC_N8.3, IC_M9.11, IC_M9.3, IC_N9.11, IC_N9.3) + NET_C(VLD2Q, IC_M12.11, IC_M12.3, IC_N12.11, IC_N12.3, IC_M11.11, IC_M11.3, IC_N11.11, IC_N11.3) + NET_C(G01, IC_L8.5, IC_M9.10, IC_M9.4, IC_N9.10, IC_N9.1) + NET_C(G02, IC_L8.9, IC_M11.10, IC_M11.4, IC_N11.10, IC_N11.1) + NET_C(H_COUNTQ, IC_L8.4, IC_L8.10) + NET_C(IC_L8.6, IC_M8.13, IC_M8.1, IC_N8.13, IC_N8.1) + NET_C(IC_L8.8, IC_M12.13, IC_M12.1, IC_N12.13, IC_N12.1) + NET_C(ROM_D0, IC_M8.12, IC_M12.12) + NET_C(ROM_D1, IC_M8.2, IC_M12.2) + NET_C(ROM_D2, IC_N8.12, IC_N12.12) + NET_C(ROM_D3, IC_N8.2, IC_N12.2) + NET_C(ROM_D4, IC_M9.12, IC_M11.12) + NET_C(ROM_D5, IC_M9.2, IC_M11.2) + NET_C(ROM_D6, IC_N9.12, IC_N11.12) + NET_C(ROM_D7, IC_N9.2, IC_N11.2) + + ALIAS(HA1, IC_M8.9) + ALIAS(HB1, IC_M8.5) + ALIAS(HC1, IC_N8.9) + ALIAS(HD1, IC_N8.5) + ALIAS(HA2, IC_M12.9) + ALIAS(HB2, IC_M12.5) + ALIAS(HC2, IC_N12.9) + ALIAS(HD2, IC_N12.5) + + ALIAS(VA1, IC_M9.9) + ALIAS(VB1, IC_M9.5) + ALIAS(VC1, IC_N9.9) + ALIAS(VD1, IC_N9.5) + ALIAS(VA2, IC_M11.9) + ALIAS(VB2, IC_M11.5) + ALIAS(VC2, IC_N11.9) + ALIAS(VD2, IC_N11.5) + + // Tank 1 Motion + TTL_9316_DIP(IC_A1) + TTL_9316_DIP(IC_B1) + TTL_9316_DIP(IC_A2) + TTL_9316_DIP(IC_B2) + TTL_9316_DIP(IC_C2) + TTL_74165_DIP(IC_A3) + TTL_74165_DIP(IC_B3) + TTL_74107_DIP(IC_N1) + NET_C(VCC, IC_A1.16, IC_B1.16, IC_A2.16, IC_B2.16, IC_C2.16, IC_A3.16, IC_B3.16, IC_N1.14) + NET_C(GND, IC_A1.8, IC_B1.8, IC_A2.8, IC_B2.8, IC_C2.8, IC_A3.8, IC_B3.8, IC_N1.7) + + TTL_7420_DIP(IC_M1) + TTL_7410_DIP(IC_M2) + TTL_7400_DIP(IC_C1) + TTL_7404_DIP(IC_J3) + TTL_7404_DIP(IC_A6) + TTL_7486_DIP(IC_K3) + TTL_7402_DIP(IC_L3) + TTL_7474_DIP(IC_F3) + NET_C(VCC, IC_M1.14, IC_M2.14, IC_C1.14, IC_J3.14, IC_A6.14, IC_K3.14, IC_L3.14, IC_F3.14) + NET_C(GND, IC_M1.7, IC_M2.7, IC_C1.7, IC_J3.7, IC_A6.7, IC_K3.7, IC_L3.7, IC_F3.7) + + NET_C(HA1, IC_A1.3) + NET_C(HB1, IC_A1.4) + NET_C(HC1, IC_A1.5) + NET_C(HD1, IC_A1.6) + + NET_C(VA1, IC_A2.3) + NET_C(VB1, IC_A2.4) + NET_C(VC1, IC_A2.5) + NET_C(VD1, IC_A2.6) + + NET_C(HRST1Q, IC_A1.1, IC_B1.1, IC_N1.10, IC_N1.13) + NET_C(VRST1Q, IC_A2.1, IC_B2.1, IC_C2.1) + + NET_C(CLOCKQ, IC_A6.9) + NET_C(IC_A6.8, IC_A1.2, IC_B1.2, IC_A3.2, IC_B3.2, IC_F3.11) + ALIAS(CLOCK1, IC_A6.8) + + NET_C(H_COUNTQ, IC_A6.1) + NET_C(IC_A6.2, IC_A2.2, IC_B2.2, IC_C2.2) + ALIAS(H_COUNT1, IC_A6.2) + + NET_C(VCC, IC_A1.7, IC_A1.10, IC_B1.10, IC_B1.3, IC_B1.4, IC_B1.5) + NET_C(VCC, IC_N1.1, IC_N1.4, IC_N1.8, IC_N1.11) + NET_C(VCC, IC_A2.7, IC_A2.10, IC_B2.10, IC_B2.3, IC_B2.4, IC_B2.5, IC_B2.6, IC_C2.3, IC_C2.5, IC_C2.6) + NET_C(VCC, IC_F3.13, IC_A3.10) + NET_C(GND, IC_B1.6, IC_C2.4) + + NET_C(IC_A1.15, IC_B1.7, IC_M1.5) + NET_C(IC_B1.15, IC_N1.12, IC_M2.5, IC_M1.1) + NET_C(IC_N1.3, IC_N1.9, IC_M2.4, IC_M1.2) + NET_C(IC_N1.6, IC_M2.3, IC_M1.4) + NET_C(IC_M1.6, IC_A1.9, IC_B1.9) + ALIAS(THR1Q, IC_M1.6) + ALIAS(THW1Q, IC_M2.6) + + NET_C(IC_A2.15, IC_B2.7, IC_C2.7, IC_C1.12) + NET_C(IC_B2.15, IC_C2.10) + NET_C(IC_C2.15, IC_C1.13, IC_F3.10) + NET_C(IC_C1.11, IC_A2.9, IC_B2.9, IC_C2.9) + ALIAS(TVR1Q, IC_C1.11) + + NET_C(THW1Q, IC_F3.12) + ALIAS(WINDO1, IC_F3.8) + NET_C(IC_F3.9, IC_A3.15, IC_B3.15, IC_L3.11) + NET_C(IC_A3.9, IC_B3.10) + NET_C(IC_B3.7, IC_K3.1) + + NET_C(FLASH, IC_C1.10, IC_J3.3) + NET_C(BLO_UP1, IC_C1.9) + ALIAS(FLASHQ, IC_J3.4) + NET_C(IC_C1.8, IC_K3.2) + NET_C(IC_K3.3, IC_L3.12) + ALIAS(TANK1, IC_L3.13) + + NET_C(LDH1AQ, IC_A3.1) + NET_C(LDH1BQ, IC_B3.1) + + NET_C(ROM_D0, IC_A3.11, IC_B3.11) + NET_C(ROM_D1, IC_A3.12, IC_B3.12) + NET_C(ROM_D2, IC_A3.13, IC_B3.13) + NET_C(ROM_D3, IC_A3.14, IC_B3.14) + NET_C(ROM_D4, IC_A3.3, IC_B3.3) + NET_C(ROM_D5, IC_A3.4, IC_B3.4) + NET_C(ROM_D6, IC_A3.5, IC_B3.5) + NET_C(ROM_D7, IC_A3.6, IC_B3.6) + + ALIAS(P1T2, IC_A2.13) + ALIAS(P1T3, IC_A2.12) + ALIAS(P1T4, IC_A2.11) + + // Tank 2 Motion Circuit + TTL_9316_DIP(IC_A5) + TTL_9316_DIP(IC_B5) + TTL_9316_DIP(IC_A4) + TTL_9316_DIP(IC_B4) + TTL_9316_DIP(IC_C4) + TTL_74165_DIP(IC_C3) + TTL_74165_DIP(IC_D3) + TTL_74107_DIP(IC_N5) + NET_C(VCC, IC_A5.16, IC_B5.16, IC_A4.16, IC_B4.16, IC_C4.16, IC_C3.16, IC_D3.16, IC_N5.14) + NET_C(GND, IC_A5.8, IC_B5.8, IC_A4.8, IC_B4.8, IC_C4.8, IC_C3.8, IC_D3.8, IC_N5.7) + + TTL_7402_DIP(IC_C6) + TTL_7420_DIP(IC_M5) + TTL_7410_DIP(IC_M4) + TTL_7400_DIP(IC_C5) + NET_C(VCC, IC_C6.14, IC_M5.14, IC_M4.14, IC_C5.14) + NET_C(GND, IC_C6.7, IC_M5.7, IC_M4.7, IC_C5.7) + + NET_C(CLOCKQ, IC_A6.5) + ALIAS(CLOCK2, IC_A6.5) + NET_C(IC_A6.6, IC_A5.2, IC_B5.2, IC_F3.3, IC_C3.2, IC_D3.2) + NET_C(HRST2Q, IC_A5.1, IC_B5.1, IC_N5.10, IC_N5.13) + NET_C(VCC, IC_B5.10, IC_B5.3, IC_B5.4, IC_B5.5, IC_N5.1, IC_N5.4, IC_N5.8, IC_N5.11, IC_C3.10, IC_F3.1, IC_A5.7, IC_A5.10) + NET_C(GND, IC_B5.6) + + NET_C(IC_B4.15, IC_C4.10) + NET_C(IC_C3.9, IC_D3.10) + NET_C(THW2Q, IC_F3.2) + NET_C(TVW2, IC_F3.4) + + NET_C(IC_F3.5, IC_C3.15, IC_D3.15, IC_C6.3) + + NET_C(HA2, IC_A5.3) + NET_C(HB2, IC_A5.4) + NET_C(HC2, IC_A5.5) + NET_C(HD2, IC_A5.6) + NET_C(IC_A5.15, IC_B5.7, IC_M5.1) + NET_C(IC_B5.15, IC_N5.12, IC_M5.2, IC_M4.5) + NET_C(IC_N5.3, IC_N5.9, IC_M5.5, IC_M4.3) + NET_C(IC_N5.6, IC_M5.4, IC_M4.4) + ALIAS(THR2Q, IC_M5.6) + ALIAS(THW2Q, IC_M4.6) + NET_C(THR2Q, IC_A5.9, IC_B5.9) + + NET_C(ROM_D0, IC_C3.11, IC_D3.11) + NET_C(ROM_D1, IC_C3.12, IC_D3.12) + NET_C(ROM_D2, IC_C3.13, IC_D3.13) + NET_C(ROM_D3, IC_C3.14, IC_D3.14) + NET_C(ROM_D4, IC_C3.3, IC_D3.3) + NET_C(ROM_D5, IC_C3.4, IC_D3.4) + NET_C(ROM_D6, IC_C3.5, IC_D3.5) + NET_C(ROM_D7, IC_C3.6, IC_D3.6) + + ALIAS(WINDO2, IC_F3.6) + NET_C(LDH2AQ, IC_C3.1) + NET_C(LDH2BQ, IC_D3.1) + + NET_C(BLO_UP2, IC_C5.13) + NET_C(FLASH, IC_C5.12) + NET_C(IC_C5.11, IC_K3.10) + NET_C(IC_D3.9, IC_K3.9) + NET_C(IC_K3.2, IC_C6.2) + ALIAS(TANK2, IC_C6.1) + + NET_C(VA2, IC_A4.3) + NET_C(VB2, IC_A4.4) + NET_C(VC2, IC_A4.5) + NET_C(VD2, IC_A4.6) + + NET_C(VCC, IC_A4.7, IC_A4.10, IC_B4.10, IC_B4.3, IC_B4.4, IC_B4.5, IC_B4.6, IC_C4.3, IC_C4.5, IC_C4.6) + NET_C(GND, IC_C4.4) + + NET_C(H_COUNTQ, IC_A6.3) + NET_C(IC_A6.4, IC_A4.2, IC_B4.2, IC_C4.2) + ALIAS(HCOUNT2, IC_A6.4) + + NET_C(VRST2Q, IC_A4.1, IC_B4.1, IC_C4.1) + ALIAS(P2T2, IC_A4.13) + ALIAS(P2T3, IC_A4.12) + ALIAS(P2T4, IC_A4.11) + + NET_C(IC_A4.15, IC_B4.7, IC_C4.7, IC_C5.10) + NET_C(IC_C4.15, IC_C5.9) + NET_C(IC_C5.8, IC_A4.9, IC_B4.9, IC_C4.9) + ALIAS(TVR2Q, IC_C5.8) + ALIAS(TVW2, IC_C4.15) + + // Shell 1 Motion + TTL_7474_DIP(IC_D1) + TTL_7474_DIP(IC_E1) + TTL_9316_DIP(IC_H1) + TTL_9316_DIP(IC_J1) + TTL_9316_DIP(IC_F1) + TTL_9316_DIP(IC_H2) + TTL_9316_DIP(IC_J2) + TTL_74107_DIP(IC_L1) + TTL_7408_DIP(IC_F2) + NET_C(VCC, IC_D1.14, IC_E1.14, IC_H1.16, IC_J1.16, IC_F1.16, IC_H2.16, IC_J2.16, IC_L1.14, IC_F2.14, IC_F1.1) + NET_C(GND, IC_D1.7, IC_E1.7, IC_H1.8, IC_J1.8, IC_F1.8, IC_H2.8, IC_J2.8, IC_L1.7, IC_F2.7) + + TTL_7402_DIP(IC_K1) + TTL_7404_DIP(IC_N4) + TTL_7420_DIP(IC_L2) + TTL_7486_DIP(IC_K2) + TTL_7474_DIP(IC_N3) + TTL_7408_DIP(IC_M3) + TTL_7474_DIP(IC_D2) + TTL_7474_DIP(IC_E2) + NET_C(VCC, IC_K1.14, IC_N4.14, IC_L2.14, IC_K2.14, IC_N3.14, IC_M3.14, IC_D2.14, IC_E2.14) + NET_C(GND, IC_K1.7, IC_N4.7, IC_L2.7, IC_K2.7, IC_N3.7, IC_M3.7, IC_D2.7, IC_E2.7) + + NET_C(VCC, R4.1, R5.1, R6.1, R7.1, R8.1, R9.1, R10.1, R11.1) + NET_C(VCC, IC_H2.7, IC_H2.10, IC_J2.10, IC_J2.3, IC_J2.4, IC_J2.5, IC_L1.1, IC_L1.4, IC_L1.8, IC_L1.11, IC_N3.1) + NET_C(VCC, IC_F1.7, IC_F1.10, IC_H1.10, IC_H1.3, IC_H1.4, IC_H1.5, IC_H1.6, IC_J1.3, IC_J1.5, IC_J1.6) + NET_C(VCC, IC_D1.1, IC_D1.13, IC_E1.1, IC_H2.1, IC_J2.1, IC_D2.4, IC_D2.10, IC_E2.4, IC_E2.10, IC_E1.10) + NET_C(VCC, IC_H1.1, IC_J1.1) + NET_C(GND, C110.2, IC_N3.2, IC_J2.6, IC_J1.4) + + NET_C(VLD1, IC_M2.1, IC_M2.2) + NET_C(FIRE1Q, IC_M2.13) + NET_C(IC_M2.12, IC_D2.3, IC_D2.11, IC_E2.3, IC_E2.11, IC_D1.3, IC_D1.11, IC_E1.3, IC_E1.11) + NET_C(EXPL1, IC_J3.13) + NET_C(IC_J3.12, IC_D2.1, IC_D2.13, IC_E2.1, IC_E2.13, IC_D1.4, IC_D1.10, IC_E1.4, IC_E1.13) + NET_C(HMCE, IC_F2.12, IC_F2.5, IC_F2.9, IC_C1.1) + NET_C(IC_D2.5, IC_F2.13) + NET_C(IC_E2.5, IC_F2.4) + NET_C(IC_D2.9, IC_F2.10) + NET_C(IC_E2.9, IC_C1.2) + + NET_C(FIRE1Q, C110.1, IC_C1.4) + NET_C(EXPL1Q, IC_C1.5) + ALIAS(FPE1, IC_C1.6) + NET_C(IC_C1.6, IC_L3.2) + NET_C(THW1Q, IC_L3.3) + NET_C(IC_L3.1, IC_J3.1) + NET_C(IC_J3.2, IC_M3.4, IC_N3.4) + NET_C(IC_M3.6, IC_H2.9, IC_J2.9) + NET_C(IC_M1.8, IC_M3.5) + + NET_C(IC_F2.11, IC_H2.3) + NET_C(IC_F2.6, IC_H2.4) + NET_C(IC_F2.8, IC_H2.5) + NET_C(IC_C1.3, IC_H2.6) + + NET_C(CLOCK1, IC_H2.2, IC_J2.2) + NET_C(H_COUNT1, IC_F1.2, IC_H1.2, IC_J1.2) + + NET_C(IC_H2.15, IC_J2.7, IC_M1.13, IC_N3.3) + NET_C(IC_J2.15, IC_L1.12, IC_M1.12, IC_M2.9) + NET_C(IC_L1.3, IC_L1.9, IC_M1.10, IC_M2.10) + NET_C(IC_L1.5, IC_M1.9, IC_M2.11) + NET_C(IC_N3.6, IC_L1.10, IC_L1.13) + + NET_C(IC_D1.5, IC_F1.3) + NET_C(IC_D1.9, IC_F1.4) + NET_C(IC_E1.5, IC_F1.5) + NET_C(IC_E1.9, IC_F1.6) + + NET_C(IC_F1.15, IC_H1.7, IC_J1.7, IC_F2.2) + NET_C(IC_H1.15, IC_J1.10) + NET_C(IC_J1.15, IC_J3.11, IC_F2.1) + NET_C(IC_F2.3, IC_K1.12) + NET_C(FPE1, IC_K1.9) + NET_C(TVR1Q, IC_K1.8) + ALIAS(SRS1, IC_K1.10) + NET_C(IC_K1.10, IC_K1.11) + NET_C(IC_K1.13, IC_J1.9, IC_H1.9, IC_F1.9) + + NET_C(IC_J3.10, IC_L3.5) + NET_C(IC_M2.8, IC_L3.6) + NET_C(IC_L3.4, IC_L2.1, IC_L2.9) + NET_C(FIRE1Q, IC_J3.5) + NET_C(IC_J3.6, IC_L2.2) + NET_C(S4V1, IC_L3.9) + NET_C(S8H1, IC_L3.8) + NET_C(IC_L3.10, IC_L2.4) + NET_C(S4H1, IC_M3.9) + NET_C(S8V1, IC_M3.10) + NET_C(IC_M3.8, IC_L2.5) + NET_C(IC_L2.6, IC_N4.5) + ALIAS(SHELL1, IC_N4.6) + + NET_C(S4V1, IC_K2.5) + NET_C(S8V1, IC_K2.4) + NET_C(S4H1, IC_K2.10) + NET_C(S8H1, IC_K2.9) + NET_C(S2V1, IC_K2.12) + NET_C(S2H1, IC_K2.13) + NET_C(IC_K2.6, IC_K2.2, IC_K1.2) + NET_C(IC_K2.8, IC_K2.1, IC_K1.3) + NET_C(FLASHQ, IC_K3.4) + NET_C(IC_K3.3, IC_K3.5) + NET_C(IC_K3.6, IC_L2.12) + NET_C(IC_K1.1, IC_K1.6) + NET_C(IC_K2.11, IC_K1.5) + NET_C(IC_K1.4, IC_L2.13) + NET_C(EXPL1, IC_L2.10) + NET_C(IC_L2.8, IC_N4.9) + ALIAS(BLAST1, IC_N4.8) + + ALIAS(S2H1, IC_H2.13) + ALIAS(S4H1, IC_H2.12) + ALIAS(S8H1, IC_H2.11) + + ALIAS(S2V1, IC_F1.13) + ALIAS(S4V1, IC_F1.12) + ALIAS(S8V1, IC_F1.11) + + NET_C(ROM_D0, R4.2, IC_D2.2) + NET_C(ROM_D1, R6.2, IC_E2.2) + NET_C(ROM_D2, R8.2, IC_E2.12) + NET_C(ROM_D3, R10.2, IC_D2.12) + NET_C(ROM_D4, R11.2, IC_D1.2) + NET_C(ROM_D5, R9.2, IC_D1.12) + NET_C(ROM_D6, R7.2, IC_E1.2) + NET_C(ROM_D7, R5.2, IC_E1.12) + + // Shell 2 Motion + TTL_7474_DIP(IC_E4) + TTL_7474_DIP(IC_D4) + TTL_7474_DIP(IC_D5) + TTL_7474_DIP(IC_E5) + TTL_9316_DIP(IC_H4) + TTL_9316_DIP(IC_J4) + TTL_9316_DIP(IC_F5) + TTL_9316_DIP(IC_H5) + TTL_9316_DIP(IC_J5) + NET_C(VCC, IC_E4.14, IC_D4.14, IC_D5.14, IC_E5.14, IC_H4.16, IC_J4.16, IC_F5.16, IC_H5.16, IC_J5.16) + NET_C(GND, IC_E4.7, IC_D4.7, IC_D5.7, IC_E5.7, IC_H4.8, IC_J4.8, IC_F5.8, IC_H5.8, IC_J5.8) + + TTL_74107_DIP(IC_L5) + TTL_7486_DIP(IC_K4) + TTL_7402_DIP(IC_K5) + TTL_7408_DIP(IC_F4) + TTL_7420_DIP(IC_L4) + NET_C(VCC, IC_L5.14, IC_K4.14, IC_K5.14, IC_F4.14, IC_L4.14) + NET_C(GND, IC_L5.7, IC_K4.7, IC_K5.7, IC_F4.7, IC_L4.7) + + NET_C(VCC, IC_E4.4, IC_D4.4, IC_E4.10, IC_D4.10, IC_D5.1, IC_D5.13, IC_E5.1) + NET_C(VCC, IC_J4.10, IC_J4.3, IC_J4.4, IC_J4.5, IC_H5.10, IC_H5.3, IC_H5.4, IC_H5.5, IC_H5.6, IC_J5.3, IC_J5.5, IC_J5.6) + NET_C(VCC, IC_H4.1, IC_H4.7, IC_H4.10, IC_J4.1, IC_F5.1, IC_F5.7, IC_F5.10, IC_H5.1, IC_J5.1, IC_N3.13, IC_L5.8, IC_L5.11, IC_L5.1, IC_L5.4, IC_E5.10) + NET_C(GND, C111.2, IC_J4.6, IC_J5.4, IC_N3.12) + + NET_C(FIRE2Q, IC_M4.1, IC_M4.2) + NET_C(VLD2, IC_M4.13) + NET_C(IC_M4.12, IC_E4.3, IC_D4.3, IC_E4.11, IC_D4.11, IC_D5.3, IC_D5.11, IC_E5.3, IC_E5.11) + + NET_C(EXPL2, IC_H3.11) + NET_C(IC_H3.10, IC_E4.1, IC_D4.1, IC_E4.13, IC_D4.13, IC_E5.13, IC_D5.4, IC_D5.10, IC_E5.4) + + NET_C(IC_E4.5, IC_F4.2) + NET_C(IC_D4.5, IC_F4.5) + NET_C(IC_E4.9, IC_F4.9) + NET_C(IC_D4.9, IC_C5.5) + NET_C(HMCE, IC_F4.1, IC_F4.4, IC_F4.10, IC_C5.4) + + NET_C(IC_F4.3, IC_H4.3) + NET_C(IC_F4.6, IC_H4.4) + NET_C(IC_F4.8, IC_H4.5) + NET_C(IC_C5.6, IC_H4.6) + + NET_C(HCOUNT2, IC_F5.2, IC_H5.2, IC_J5.2) + NET_C(IC_H5.15, IC_J5.10) + NET_C(IC_J5.15, IC_H3.13, IC_F4.12) + NET_C(IC_F5.15, IC_H5.7, IC_J5.7, IC_F4.13) + NET_C(IC_F4.11, IC_C6.12) + NET_C(FPE2, IC_C6.8) + NET_C(TVR2Q, IC_C6.9) + NET_C(IC_C6.10, IC_C6.11) + ALIAS(SRS2, IC_C6.10) + NET_C(IC_C6.13, IC_F5.9, IC_H5.9, IC_J5.9) + + NET_C(IC_D5.5, IC_F5.3) + NET_C(IC_D5.9, IC_F5.4) + NET_C(IC_E5.5, IC_F5.5) + NET_C(IC_E5.9, IC_F5.6) + + NET_C(CLOCK2, IC_H4.2, IC_J4.2) + NET_C(IC_H4.15, IC_J4.7, IC_M5.9, IC_N3.11) + NET_C(IC_J4.15, IC_L5.9, IC_M5.10, IC_M4.11) + NET_C(IC_L5.5, IC_L5.12, IC_M5.12, IC_M4.10) + NET_C(IC_L5.3, IC_M5.13, IC_M4.9) + NET_C(IC_M4.8, IC_K5.11) + NET_C(IC_H3.12, IC_K5.12) + + NET_C(FIRE2Q, C111.1, IC_C5.1) + NET_C(EXPL2Q, IC_C5.2) + NET_C(IC_C5.3, IC_C6.6) + ALIAS(FPE2, IC_C5.3) + NET_C(THW2Q, IC_C6.5) + NET_C(IC_C6.4, IC_H3.1) + NET_C(IC_H3.2, IC_N3.10, IC_M3.2) + NET_C(IC_M5.8, IC_M3.1) + NET_C(IC_M3.3, IC_H4.9, IC_J4.9) + NET_C(IC_N3.8, IC_L5.10, IC_L5.13) + + NET_C(S4H2, IC_M3.12) + NET_C(S8V2, IC_M3.13) + NET_C(S4V2, IC_K5.3) + NET_C(S8H2, IC_K5.2) + NET_C(IC_M3.11, IC_L4.5) + NET_C(IC_K5.1, IC_L4.2) + NET_C(FIRE2Q, IC_H3.9) + NET_C(IC_H3.8, IC_L4.4) + + NET_C(IC_K5.13, IC_L4.13, IC_L4.1) + NET_C(IC_L4.6, IC_N4.11) + ALIAS(SHELL2, IC_N4.10) + + NET_C(S4V2, IC_K4.1) + NET_C(S8V2, IC_K4.2) + NET_C(S4H2, IC_K4.10) + NET_C(S8H2, IC_K4.9) + NET_C(S2H2, IC_K4.12) + NET_C(S2V2, IC_K4.13) + NET_C(IC_K4.3, IC_K4.4, IC_K5.6) + NET_C(IC_K4.8, IC_K4.5, IC_K5.5) + NET_C(FLASHQ, IC_K3.12) + NET_C(IC_K4.6, IC_K3.13) + NET_C(IC_K5.4, IC_K5.9) + NET_C(IC_K5.11, IC_K5.8) + NET_C(IC_K3.11, IC_L4.12) + NET_C(IC_K5.10, IC_L4.10) + NET_C(EXPL2, IC_L4.9) + NET_C(IC_L4.8, IC_N4.13) + ALIAS(BLAST2, IC_N4.12) + + ALIAS(S2H2, IC_H4.13) + ALIAS(S4H2, IC_H4.12) + ALIAS(S8H2, IC_H4.11) + ALIAS(S2V2, IC_F5.13) + ALIAS(S4V2, IC_F5.12) + ALIAS(S8V2, IC_F5.11) + + NET_C(ROM_D0, IC_E4.2) + NET_C(ROM_D1, IC_D4.2) + NET_C(ROM_D2, IC_E4.12) + NET_C(ROM_D3, IC_D4.12) + NET_C(ROM_D4, IC_D5.2) + NET_C(ROM_D5, IC_D5.12) + NET_C(ROM_D6, IC_E5.2) + NET_C(ROM_D7, IC_E5.12) + + // Boom Com + TTL_9602_DIP(IC_N14) + NET_C(VCC, IC_N14.16, IC_N14.3, IC_N14.5, IC_N14.13, R38.2) + NET_C(GND, IC_N14.8, R10A.2, R9A.2) + NET_C(MTK1, IC_L7.5) + NET_C(EXPL1, C5.1) + NET_C(C5.2, R10A.1, IC_L7.6) + NET_C(MTK2, IC_L7.9) + NET_C(EXPL2, C6.1) + NET_C(C6.2, R9A.1, IC_L7.8) + NET_C(IC_L7.4, IC_K7.4) + NET_C(IC_L7.10, IC_K7.5) + NET_C(IC_K7.6, IC_N14.4) + NET_C(IC_N14.1, C27.1) + NET_C(IC_N14.2, C27.2, R38.1) + NET_C(IC_N14.6, IC_N13.5) + ALIAS(BOOM_COM, IC_N13.6) + + // HLE Noise Gen + CLOCK(NOISE_CLOCK, 10000) + NET_C(NOISE_CLOCK.GND, GND) + NET_C(NOISE_CLOCK.VCC, V12) + + SYS_NOISE_MT_N(HLE_NOISE, 0.05) + NET_C(HLE_NOISE.I, NOISE_CLOCK.Q) + + // Noise Generation + OPAMP(IC_NOISE_OP, "UA741") + NET_C(V12, IC_NOISE_OP.VCC, R71A.1, R70A.1) + NET_C(R71A.2, C40A.1, HLE_NOISE.1) + NET_C(C40A.2, C43A.1, R70A.2, R73A.1, IC_NOISE_OP.GND) + NET_C(GND, HLE_NOISE.2, C43A.2, R73A.2, C38A.1) + NET_C(C38A.2, R69.1, C39A.1, IC_NOISE_OP.MINUS) + NET_C(IC_NOISE_OP.PLUS, R69.2, C39A.2) + ALIAS(NOISE, IC_NOISE_OP.OUT) + + // Shot Sound + MC3340_DIP(IC_K6) + NET_C(V12, IC_K6.8) + NET_C(GND, SHOT_NOISE_VOL.1, C32A.2, IC_K6.3, C27A.2, C28A.2, Q7.C) + NET_C(NOISE, SHOT_NOISE_VOL.3) + NET_C(SHOT_NOISE_VOL.2, C32A.1, C31A.1) + NET_C(C31A.2, IC_K6.2) + NET_C(IC_K6.6, C27A.1) + NET_C(VCC, R64A.1) + NET_C(SHOT_COM, CR19.K) + NET_C(CR19.A, R64A.2, Q7.B, C28A.1) + NET_C(IC_K6.2, Q7.E) + ALIAS(SHOT, IC_K6.7) + + // Shot Com + NET_C(FIRE1, C7.1) + NET_C(FIRE2, C4.1) + NET_C(C7.2, R8A.1, IC_L7.2) + NET_C(C4.2, R11A.1, IC_L7.3) + NET_C(GND, IC_N14.12, R8A.2, R11A.2) + NET_C(IC_L7.1, IC_N14.11) + NET_C(IC_N14.15, C26.1) + NET_C(IC_N14.14, C26.2, R37A.1) + NET_C(R37A.2, VCC) + NET_C(IC_N14.10, IC_N13.3) + ALIAS(SHOT_COM, IC_N13.4) + + // Boom Sound + MC3340_DIP(IC_L6) + NET_C(V12, IC_L6.8) + NET_C(NOISE, BOOM_NOISE_VOL.3) + NET_C(GND, BOOM_NOISE_VOL.1, C36A.2, C41A.2, Q6.C, C30A.2) + NET_C(BOOM_NOISE_VOL.2, C36A.1, C35A.1) + NET_C(C35A.2, IC_L6.1) + NET_C(BOOM_COM, CR22.K) + NET_C(CR22.A, R72A.2, C41A.1, Q6.B) + NET_C(V5, R72A.1) + NET_C(Q6.E, IC_L6.2) + NET_C(IC_L6.6, C30A.1) + ALIAS(BOOM, IC_L6.7) + + // Motor 1 Sound + /*TTL_7406_DIP(IC_K15) + NE555_DIP(IC_L15) + NE566_DIP(IC_M15) + MC3340_DIP(IC_N15) + NET_C(VCC, IC_K15.14, IC_L15.8, IC_L15.4, Q29.C) + NET_C(V12, IC_M15.8, IC_N15.8, R73M1.1, Q27.C, R100M1.1, Q30.E, R36M1.1) + NET_C(GND, IC_K15.7, C54M1.2, C51M1.2, C53M1.2, C55M1.2, R78M1.2, IC_L15.1) + NET_C(P1SP2, IC_K15.13) + NET_C(P1SP1, IC_K15.11) + NET_C(P1SP0, IC_K15.9) + NET_C(IC_K15.12, R74M1.2) + NET_C(IC_K15.10, R75M1.2) + NET_C(IC_K15.8, R76M1.2) + NET_C(R73M1.2, R74M1.1, R75M1.1, R76M1.1, C54M1.1, Q27.B) + NET_C(C54M1.2, MOTOR1_VOL.1) + NET_C(MOTOR1_VOL.3, Q27.E, Q28.B, C52M1.1, IC_M15.5) + NET_C(R100M1.2, MOTOR1_VOL2.3, MOTOR1_VOL2.2) + NET_C(MOTOR1_VOL2.1, Q28.E) + NET_C(MOTOR1_VOL.2, R101M1.1) + NET_C(CR14M1.A, IC_L15.2) + NET_C(Q28.C, R77M1.1, IC_L15.7) + NET_C(IC_L15.6, C51M1.1, CR14M1.K, R77M1.2, Q29.B) + NET_C(Q29.E, R78M1.1, C56M1.2) + NET_C(C56M1.1, IC_N15.3) + NET_C(IC_M15.7, C53M1.1) + NET_C(C52M1.2, R36M1.2, IC_M15.6) + NET_C(IC_M15.4, R80M1.1, R79M1.1) + NET_C(R80M1.2, GND) + NET_C(R101M1.2, R79M1.2, Q30.C, IC_N15.2) + NET_C(ATTRACT, IC_N13.1) + NET_C(IC_N13.2, R81M1.1) + NET_C(R81M1.2, Q30.B) + NET_C(IC_N15.6, C55M1.1) + RES(R555OUT1, RES_K(1)) + NET_C(R555OUT1.1, IC_L15.3) + NET_C(GND, R555OUT1.2) + ALIAS(MOTOR1, IC_N15.7)*/ + ALIAS(MOTOR1, GND) + + // Motor 2 Sound + /*NE555_DIP(IC_J15) + NE566_DIP(IC_H15) + MC3340_DIP(IC_F15) + NET_C(VCC, IC_J15.8, IC_J15.4, Q33.C) + NET_C(V12, IC_H15.8, IC_F15.8, R72M2.1, Q31.C, R102M2.1, R35M2.1) + NET_C(GND, C49M2.2, C50M2.2, C48M2.2, C43M2.2, R68M2.2, IC_J15.1) + NET_C(P2SP2, IC_K15.1) + NET_C(P2SP1, IC_K15.3) + NET_C(P2SP0, IC_K15.5) + NET_C(IC_K15.2, R69M2.2) + NET_C(IC_K15.4, R70M2.2) + NET_C(IC_K15.6, R71M2.2) + NET_C(R72M2.2, R71M2.1, R70M2.1, R69M2.1, C49M2.1, Q31.B) + NET_C(C49M2.2, MOTOR2_VOL.1) + NET_C(MOTOR2_VOL.3, Q31.E, Q32.B, C47M2.1, IC_H15.5) + NET_C(R102M2.2, MOTOR2_VOL2.3, MOTOR2_VOL2.2) + NET_C(MOTOR2_VOL2.1, Q32.E) + NET_C(MOTOR2_VOL.2, R103M2.1) + NET_C(CR13M2.A, IC_J15.2) + NET_C(Q32.C, R67M2.1, IC_J15.7) + NET_C(IC_J15.6, C50M2.1, CR13M2.K, R67M2.2, Q33.B) + NET_C(Q33.E, R68M2.1, C44M2.2) + NET_C(C44M2.1, IC_F15.3) + NET_C(IC_H15.7, C48M2.1) + NET_C(C47M2.2, R35M2.2, IC_H15.6) + NET_C(IC_H15.4, R66M2.1, R65M2.1) + NET_C(GND, R66M2.2) + NET_C(R103M2.2, R65M2.2, Q34.C, IC_F15.2) + NET_C(ATTRACT, IC_N13.13) + NET_C(IC_N13.12, R64M2.1) + NET_C(R64M2.2, Q34.B) + NET_C(IC_F15.6, C43M2.1) + RES(R555OUT2, RES_K(1)) + NET_C(R555OUT2.1, IC_J15.3) + NET_C(GND, R555OUT2.2) + ALIAS(MOTOR2, IC_F15.7)*/ + ALIAS(MOTOR2, GND) + + // Mixer + NET_C(MOTOR1, R102MX.1) + NET_C(MOTOR2, R106MX.1) + NET_C(BOOM, R103MX.1, R107MX.1) + NET_C(SHOT, R104MX.1, R108MX.1) + NET_C(R102MX.2, R103MX.2, R104MX.2, C101.1) + NET_C(R106MX.2, R107MX.2, R108MX.2, C106.1) + ALIAS(OUT1, C101.2) + ALIAS(OUT2, C106.2) + NET_C(C101.2, GND) + NET_C(C106.2, GND) + + // Unused Gates / Pins + NET_C(GND, IC_E8.1, IC_E8.2) + NET_C(GND, IC_E13.1) + NET_C(GND, IC_A7.5, IC_A7.9, IC_A7.11, IC_A7.13) + NET_C(GND, IC_J14.14) + NET_C(GND, IC_E12.3, IC_E12.4, IC_E12.5, IC_E12.6) + NET_C(GND, IC_D12.3, IC_D12.4, IC_D12.5, IC_D12.6) + NET_C(GND, IC_N7.11, IC_N7.12) + NET_C(GND, IC_B7.12, IC_B7.13) + NET_C(GND, IC_D7.5, IC_D7.6, IC_D7.8, IC_D7.9) + NET_C(GND, IC_L14.14) + NET_C(GND, IC_A14.1, IC_A14.2, IC_A14.13) + NET_C(GND, IC_B10.13) + NET_C(GND, IC_D11V.1, IC_D11V.3, IC_D11V.5, IC_D11V.11, IC_D11V.13) + NET_C(GND, IC_M13.3) + NET_C(GND, IC_L11.13, IC_L11.14) + NET_C(VCC, IC_L11.15) + NET_C(GND, IC_N4.1, IC_N4.3) + NET_C(GND, IC_A6.11, IC_A6.13) + NET_C(GND, IC_N6.11, IC_N6.12) + NET_C(GND, IC_J7.5, IC_J7.6) + NET_C(GND, IC_F13.1, IC_F13.2) + NET_C(VCC, IC_J11.9, IC_J11.11, IC_J11.13) + NET_C(VCC, IC_J3.9) + NET_C(VCC, IC_N13.1, IC_N13.13) +NETLIST_END() diff -Nru mame-0.223+dfsg.1/src/mame/machine/nl_tank.h mame-0.224+dfsg.1/src/mame/machine/nl_tank.h --- mame-0.223+dfsg.1/src/mame/machine/nl_tank.h 1970-01-01 00:00:00.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/nl_tank.h 2020-08-26 08:57:19.000000000 +0000 @@ -0,0 +1,12 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +#ifndef MAME_MACHINE_NL_TANK_H +#define MAME_MACHINE_NL_TANK_H + +#pragma once + +#include "netlist/nl_setup.h" + +NETLIST_EXTERNAL(tank) + +#endif // MAME_MACHINE_NL_TANK_H diff -Nru mame-0.223+dfsg.1/src/mame/machine/pgmcrypt.cpp mame-0.224+dfsg.1/src/mame/machine/pgmcrypt.cpp --- mame-0.223+dfsg.1/src/mame/machine/pgmcrypt.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/pgmcrypt.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1663,3 +1663,27 @@ src[i] = x; } } + +void pgm_dwpc_decrypt(running_machine &machine) +{ + uint16_t *src = (uint16_t *)(machine.root_device().memregion("user1")->base()); + + int rom_size = 0x80000; + + for(int i=0; i> 1) & 0xff] << 8; + + src[i] = x; + } +} diff -Nru mame-0.223+dfsg.1/src/mame/machine/pgmcrypt.h mame-0.224+dfsg.1/src/mame/machine/pgmcrypt.h --- mame-0.223+dfsg.1/src/mame/machine/pgmcrypt.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/pgmcrypt.h 2020-08-26 08:57:19.000000000 +0000 @@ -22,6 +22,7 @@ void pgm_ket_decrypt(running_machine &machine); void pgm_espgal_decrypt(running_machine &machine); void pgm_happy6_decrypt(running_machine &machine); +void pgm_dwpc_decrypt(running_machine &machine); void sdwx_decrypt(running_machine &machine); void hauntedh_decrypt(running_machine &machine); void chessc2_decrypt(running_machine &machine); diff -Nru mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.cpp mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.cpp --- mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -179,6 +179,21 @@ mem16[0x1304f2 / 2] = 0x4e93; } +void pgm_012_025_state::init_drgw2c101() +{ + u16 *mem16 = (u16 *)memregion("maincpu")->base(); + + drgw2_common_init(); + + const int region = 0x05; + m_igs025->m_kb_region = region; + m_igs025->m_kb_game_id = region | (region << 8) | (region << 16) | (region << 24); + + mem16[0x1306e4 / 2] = 0x4e93; + mem16[0x13078a / 2] = 0x4e93; + mem16[0x13081a / 2] = 0x4e93; +} + void pgm_012_025_state::init_drgw2j() { u16 *mem16 = (u16 *)memregion("maincpu")->base(); diff -Nru mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.h mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.h --- mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs025_igs012.h 2020-08-26 08:57:19.000000000 +0000 @@ -15,6 +15,7 @@ void init_drgw2(); void init_dw2v100x(); void init_drgw2c(); + void init_drgw2c101(); void init_drgw2j(); void init_drgw2hk(); diff -Nru mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.cpp mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.cpp --- mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -271,10 +271,20 @@ void pgm_arm_type2_state::init_dwpc() { pgm_basic_init(); + pgm_dwpc_decrypt(machine()); kov2_latch_init(); - pgm_mm_decrypt(machine()); // encryption is the same as martial masters + + // we only have a JAPAN internal ROM dumped for now, so hack it to allow booting the Chinese version + u8 *armrom = memregion("prot")->base(); + armrom[0x3c8] = 0x01; } +void pgm_arm_type2_state::init_dwpc101j() +{ + pgm_basic_init(); + kov2_latch_init(); + pgm_mm_decrypt(machine()); // encryption is the same as martial masters +} INPUT_PORTS_START( kov2 ) PORT_INCLUDE ( pgm ) diff -Nru mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.h mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.h --- mame-0.223+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/pgmprot_igs027a_type2.h 2020-08-26 08:57:19.000000000 +0000 @@ -16,6 +16,7 @@ void init_ddp2(); void init_dw2001(); void init_dwpc(); + void init_dwpc101j(); void pgm_arm_type2(machine_config &config); void pgm_arm_type2_22m(machine_config &config); diff -Nru mame-0.223+dfsg.1/src/mame/machine/pmd85.cpp mame-0.224+dfsg.1/src/mame/machine/pmd85.cpp --- mame-0.223+dfsg.1/src/mame/machine/pmd85.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/pmd85.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -12,9 +12,8 @@ ***************************************************************************/ #include "emu.h" -#include "cpu/i8085/i8085.h" #include "includes/pmd85.h" -#include "machine/pit8253.h" + enum {PMD85_LED_1 = 0, PMD85_LED_2, PMD85_LED_3}; @@ -29,8 +28,6 @@ if (m_startup_mem_map) { - uint8_t *mem = m_region_maincpu->base(); - space.unmap_write(0x0000, 0x0fff); space.nop_write(0x1000, 0x1fff); space.unmap_write(0x2000, 0x2fff); @@ -39,13 +36,13 @@ space.nop_read(0x1000, 0x1fff); space.nop_read(0x3000, 0x3fff); - m_bank1->set_base(mem + 0x010000); - m_bank3->set_base(mem + 0x010000); - m_bank5->set_base(ram + 0xc000); - - m_bank6->set_base(mem + 0x010000); - m_bank7->set_base(mem + 0x010000); - m_bank8->set_base(ram + 0xc000); + m_bank[1]->set_base(m_rom); + m_bank[3]->set_base(m_rom); + m_bank[5]->set_base(ram + 0xc000); + + m_bank[6]->set_base(m_rom); + m_bank[7]->set_base(m_rom); + m_bank[8]->set_base(ram + 0xc000); } else { @@ -58,11 +55,11 @@ space.install_read_bank(0x1000, 0x1fff, "bank2"); space.install_read_bank(0x3000, 0x3fff, "bank4"); - m_bank1->set_base(ram); - m_bank2->set_base(ram + 0x1000); - m_bank3->set_base(ram + 0x2000); - m_bank4->set_base(ram + 0x3000); - m_bank5->set_base(ram + 0x4000); + m_bank[1]->set_base(ram); + m_bank[2]->set_base(ram + 0x1000); + m_bank[3]->set_base(ram + 0x2000); + m_bank[4]->set_base(ram + 0x3000); + m_bank[5]->set_base(ram + 0x4000); } } @@ -73,21 +70,19 @@ if (m_startup_mem_map) { - uint8_t *mem = m_region_maincpu->base(); - space.unmap_write(0x0000, 0x0fff); space.unmap_write(0x2000, 0x2fff); - m_bank1->set_base(mem + 0x010000); - m_bank2->set_base(ram + 0x9000); - m_bank3->set_base(mem + 0x010000); - m_bank4->set_base(ram + 0xb000); - m_bank5->set_base(ram + 0xc000); - m_bank6->set_base(mem + 0x010000); - m_bank7->set_base(ram + 0x9000); - m_bank8->set_base(mem + 0x010000); - m_bank9->set_base(ram + 0xb000); - m_bank10->set_base(ram + 0xc000); + m_bank[1]->set_base(m_rom); + m_bank[2]->set_base(ram + 0x9000); + m_bank[3]->set_base(m_rom); + m_bank[4]->set_base(ram + 0xb000); + m_bank[5]->set_base(ram + 0xc000); + m_bank[6]->set_base(m_rom); + m_bank[7]->set_base(ram + 0x9000); + m_bank[8]->set_base(m_rom); + m_bank[9]->set_base(ram + 0xb000); + m_bank[10]->set_base(ram + 0xc000); } else @@ -95,48 +90,47 @@ space.install_write_bank(0x0000, 0x0fff, "bank1"); space.install_write_bank(0x2000, 0x2fff, "bank3"); - m_bank1->set_base(ram); - m_bank2->set_base(ram + 0x1000); - m_bank3->set_base(ram + 0x2000); - m_bank4->set_base(ram + 0x5000); - m_bank5->set_base(ram + 0x4000); + m_bank[1]->set_base(ram); + m_bank[2]->set_base(ram + 0x1000); + m_bank[3]->set_base(ram + 0x2000); + m_bank[4]->set_base(ram + 0x5000); + m_bank[5]->set_base(ram + 0x4000); } } void pmd85_state::pmd853_update_memory() { - uint8_t *mem = m_region_maincpu->base(); uint8_t *ram = m_ram->pointer(); if (m_startup_mem_map) { - m_bank1->set_base(mem + 0x010000); - m_bank2->set_base(mem + 0x010000); - m_bank3->set_base(mem + 0x010000); - m_bank4->set_base(mem + 0x010000); - m_bank5->set_base(mem + 0x010000); - m_bank6->set_base(mem + 0x010000); - m_bank7->set_base(mem + 0x010000); - m_bank8->set_base(mem + 0x010000); - m_bank9->set_base(ram); - m_bank10->set_base(ram + 0x2000); - m_bank11->set_base(ram + 0x4000); - m_bank12->set_base(ram + 0x6000); - m_bank13->set_base(ram + 0x8000); - m_bank14->set_base(ram + 0xa000); - m_bank15->set_base(ram + 0xc000); - m_bank16->set_base(ram + 0xe000); + m_bank[1]->set_base(m_rom); + m_bank[2]->set_base(m_rom); + m_bank[3]->set_base(m_rom); + m_bank[4]->set_base(m_rom); + m_bank[5]->set_base(m_rom); + m_bank[6]->set_base(m_rom); + m_bank[7]->set_base(m_rom); + m_bank[8]->set_base(m_rom); + m_bank[9]->set_base(ram); + m_bank[10]->set_base(ram + 0x2000); + m_bank[11]->set_base(ram + 0x4000); + m_bank[12]->set_base(ram + 0x6000); + m_bank[13]->set_base(ram + 0x8000); + m_bank[14]->set_base(ram + 0xa000); + m_bank[15]->set_base(ram + 0xc000); + m_bank[16]->set_base(ram + 0xe000); } else { - m_bank1->set_base(ram); - m_bank2->set_base(ram + 0x2000); - m_bank3->set_base(ram + 0x4000); - m_bank4->set_base(ram + 0x6000); - m_bank5->set_base(ram + 0x8000); - m_bank6->set_base(ram + 0xa000); - m_bank7->set_base(ram + 0xc000); - m_bank8->set_base(m_pmd853_memory_mapping ? mem + 0x010000 : ram + 0xe000); + m_bank[1]->set_base(ram); + m_bank[2]->set_base(ram + 0x2000); + m_bank[3]->set_base(ram + 0x4000); + m_bank[4]->set_base(ram + 0x6000); + m_bank[5]->set_base(ram + 0x8000); + m_bank[6]->set_base(ram + 0xa000); + m_bank[7]->set_base(ram + 0xc000); + m_bank[8]->set_base(m_pmd853_memory_mapping ? m_rom : ram + 0xe000); } } @@ -147,18 +141,16 @@ if (m_startup_mem_map) { - uint8_t *mem = m_region_maincpu->base(); - space.unmap_write(0x0000, 0x0fff); space.unmap_write(0x1000, 0x33ff); space.nop_write(0x3400, 0x3fff); - m_bank1->set_base(mem + 0x010000); - m_bank2->set_base(mem + 0x011000); - m_bank4->set_base(ram + 0xc000); - m_bank5->set_base(mem + 0x010000); - m_bank6->set_base(mem + 0x011000); - m_bank7->set_base(ram + 0xc000); + m_bank[1]->set_base(m_rom); + m_bank[2]->set_base(m_rom + 0x1000); + m_bank[4]->set_base(ram + 0xc000); + m_bank[5]->set_base(m_rom); + m_bank[6]->set_base(m_rom + 0x1000); + m_bank[7]->set_base(ram + 0xc000); } else { @@ -166,10 +158,10 @@ space.install_write_bank(0x1000, 0x33ff, "bank2"); space.install_write_bank(0x3400, 0x3fff, "bank3"); - m_bank1->set_base(ram); - m_bank2->set_base(ram + 0x1000); - m_bank3->set_base(ram + 0x3400); - m_bank4->set_base(ram + 0x4000); + m_bank[1]->set_base(ram); + m_bank[2]->set_base(ram + 0x1000); + m_bank[3]->set_base(ram + 0x3400); + m_bank[4]->set_base(ram + 0x4000); } } @@ -180,44 +172,41 @@ if (m_startup_mem_map) { - uint8_t *mem = m_region_maincpu->base(); - space.unmap_write(0x0000, 0x3fff); - m_bank1->set_base(mem + 0x010000); - m_bank2->set_base(ram + 0xc000); - m_bank3->set_base(mem + 0x010000); - m_bank4->set_base(ram + 0xc000); + m_bank[1]->set_base(m_rom); + m_bank[2]->set_base(ram + 0xc000); + m_bank[3]->set_base(m_rom); + m_bank[4]->set_base(ram + 0xc000); } else { space.install_write_bank(0x0000, 0x3fff, "bank1"); - m_bank1->set_base(ram); - m_bank2->set_base(ram + 0x4000); + m_bank[1]->set_base(ram); + m_bank[2]->set_base(ram + 0x4000); } } void pmd85_state::c2717_update_memory() { address_space& space = m_maincpu->space(AS_PROGRAM); - uint8_t *mem = m_region_maincpu->base(); uint8_t *ram = m_ram->pointer(); if (m_startup_mem_map) { space.unmap_write(0x0000, 0x3fff); - m_bank1->set_base(mem + 0x010000); - m_bank2->set_base(ram + 0x4000); - m_bank3->set_base(mem + 0x010000); - m_bank4->set_base(ram + 0xc000); + m_bank[1]->set_base(m_rom); + m_bank[2]->set_base(ram + 0x4000); + m_bank[3]->set_base(m_rom); + m_bank[4]->set_base(ram + 0xc000); } else { space.install_write_bank(0x0000, 0x3fff, "bank1"); - m_bank1->set_base(ram); - m_bank2->set_base(ram + 0x4000); + m_bank[1]->set_base(ram); + m_bank[2]->set_base(ram + 0x4000); } } @@ -229,36 +218,37 @@ *******************************************************************************/ -uint8_t pmd85_state::pmd85_ppi_0_porta_r() +uint8_t pmd85_state::ppi0_porta_r() { return 0xff; } -uint8_t pmd85_state::pmd85_ppi_0_portb_r() +uint8_t pmd85_state::ppi0_portb_r() { - return m_io_port[(m_ppi_port_outputs[0][0] & 0x0f)]->read() & m_io_port[15]->read(); + return m_io_keyboard[(m_ppi_port_outputs[0][0] & 0x0f)]->read() & m_io_keyboard[15]->read(); } -uint8_t pmd85_state::pmd85_ppi_0_portc_r() +uint8_t pmd85_state::ppi0_portc_r() { return 0xff; } -void pmd85_state::pmd85_ppi_0_porta_w(uint8_t data) +void pmd85_state::ppi0_porta_w(uint8_t data) { m_ppi_port_outputs[0][0] = data; } -void pmd85_state::pmd85_ppi_0_portb_w(uint8_t data) +void pmd85_state::ppi0_portb_w(uint8_t data) { m_ppi_port_outputs[0][1] = data; } -void pmd85_state::pmd85_ppi_0_portc_w(uint8_t data) +void pmd85_state::ppi0_portc_w(uint8_t data) { m_ppi_port_outputs[0][2] = data; m_leds[PMD85_LED_2] = BIT(data, 3); - m_leds[PMD85_LED_3] = BIT(data, 2); + //m_leds[PMD85_LED_3] = BIT(data, 2); + m_speaker->level_w(BIT(data, 2)); } /******************************************************************************* @@ -269,31 +259,30 @@ *******************************************************************************/ -uint8_t pmd85_state::mato_ppi_0_portb_r() +uint8_t pmd85_state::mato_ppi0_portb_r() { - int i; - uint8_t data = 0xff; + u8 i,data = 0xff; for (i = 0; i < 8; i++) - { if (!BIT(m_ppi_port_outputs[0][0], i)) - data &= m_io_port[i]->read(); - } + data &= m_io_keyboard[i]->read(); + return data; } -uint8_t pmd85_state::mato_ppi_0_portc_r() +uint8_t pmd85_state::mato_ppi0_portc_r() { - u8 data = m_io_port[8]->read() & 0x7f; + u8 data = m_io_keyboard[8]->read() & 0x7f; data |= (m_cassette->input() > 0.038) ? 0x80 : 0; return data; } -void pmd85_state::mato_ppi_0_portc_w(uint8_t data) +void pmd85_state::mato_ppi0_portc_w(uint8_t data) { m_ppi_port_outputs[0][2] = data; m_leds[PMD85_LED_2] = BIT(data, 3); m_leds[PMD85_LED_3] = BIT(data, 2); + m_speaker->level_w(BIT(data, 1)); m_cassette->output(BIT(data, 0) ? 1 : -1); } @@ -305,32 +294,32 @@ *******************************************************************************/ -uint8_t pmd85_state::pmd85_ppi_1_porta_r() +uint8_t pmd85_state::ppi1_porta_r() { return 0xff; } -uint8_t pmd85_state::pmd85_ppi_1_portb_r() +uint8_t pmd85_state::ppi1_portb_r() { return 0xff; } -uint8_t pmd85_state::pmd85_ppi_1_portc_r() +uint8_t pmd85_state::ppi1_portc_r() { return 0xff; } -void pmd85_state::pmd85_ppi_1_porta_w(uint8_t data) +void pmd85_state::ppi1_porta_w(uint8_t data) { m_ppi_port_outputs[1][0] = data; } -void pmd85_state::pmd85_ppi_1_portb_w(uint8_t data) +void pmd85_state::ppi1_portb_w(uint8_t data) { m_ppi_port_outputs[1][1] = data; } -void pmd85_state::pmd85_ppi_1_portc_w(uint8_t data) +void pmd85_state::ppi1_portc_w(uint8_t data) { m_ppi_port_outputs[1][2] = data; } @@ -347,32 +336,32 @@ *******************************************************************************/ -uint8_t pmd85_state::pmd85_ppi_2_porta_r() +uint8_t pmd85_state::ppi2_porta_r() { return 0xff; } -uint8_t pmd85_state::pmd85_ppi_2_portb_r() +uint8_t pmd85_state::ppi2_portb_r() { return 0xff; } -uint8_t pmd85_state::pmd85_ppi_2_portc_r() +uint8_t pmd85_state::ppi2_portc_r() { return 0xff; } -void pmd85_state::pmd85_ppi_2_porta_w(uint8_t data) +void pmd85_state::ppi2_porta_w(uint8_t data) { m_ppi_port_outputs[2][0] = data; } -void pmd85_state::pmd85_ppi_2_portb_w(uint8_t data) +void pmd85_state::ppi2_portb_w(uint8_t data) { m_ppi_port_outputs[2][1] = data; } -void pmd85_state::pmd85_ppi_2_portc_w(uint8_t data) +void pmd85_state::ppi2_portc_w(uint8_t data) { m_ppi_port_outputs[2][2] = data; } @@ -403,35 +392,35 @@ *******************************************************************************/ -uint8_t pmd85_state::pmd85_ppi_3_porta_r() +uint8_t pmd85_state::ppi3_porta_r() { - if (memregion("user1")->base() != nullptr) + if (memregion("user1")->base()) return memregion("user1")->base()[m_ppi_port_outputs[3][1] | (m_ppi_port_outputs[3][2] << 8)]; else return 0; } -uint8_t pmd85_state::pmd85_ppi_3_portb_r() +uint8_t pmd85_state::ppi3_portb_r() { return 0xff; } -uint8_t pmd85_state::pmd85_ppi_3_portc_r() +uint8_t pmd85_state::ppi3_portc_r() { return 0xff; } -void pmd85_state::pmd85_ppi_3_porta_w(uint8_t data) +void pmd85_state::ppi3_porta_w(uint8_t data) { m_ppi_port_outputs[3][0] = data; } -void pmd85_state::pmd85_ppi_3_portb_w(uint8_t data) +void pmd85_state::ppi3_portb_w(uint8_t data) { m_ppi_port_outputs[3][1] = data; } -void pmd85_state::pmd85_ppi_3_portc_w(uint8_t data) +void pmd85_state::ppi3_portc_w(uint8_t data) { m_ppi_port_outputs[3][2] = data; } @@ -459,7 +448,7 @@ *******************************************************************************/ -uint8_t pmd85_state::pmd85_io_r(offs_t offset) +uint8_t pmd85_state::io_r(offs_t offset) { if (m_startup_mem_map) { @@ -472,7 +461,7 @@ switch (offset & 0x80) { case 0x80: /* Motherboard 8255 */ - return m_ppi8255_0->read(offset & 0x03); + return m_ppi0->read(offset & 0x03); } break; case 0x08: /* ROM module connector */ @@ -481,7 +470,7 @@ switch (offset & 0x80) { case 0x80: /* ROM module 8255 */ - return m_ppi8255_3->read(offset & 0x03); + return m_ppi3->read(offset & 0x03); } } break; @@ -494,11 +483,11 @@ case 0x10: /* 8251 (cassette recorder, V24) */ return m_uart->read(offset & 0x01); case 0x40: /* 8255 (GPIO/0, GPIO/1) */ - return m_ppi8255_1->read(offset & 0x03); + return m_ppi1->read(offset & 0x03); case 0x50: /* 8253 */ - return m_pit8253->read(offset & 0x03); + return m_pit->read(offset & 0x03); case 0x70: /* 8255 (IMS-2) */ - return m_ppi8255_2->read(offset & 0x03); + return m_ppi2->read(offset & 0x03); } break; case 0x80: /* external interfaces */ @@ -513,7 +502,7 @@ return 0xff; } -void pmd85_state::pmd85_io_w(offs_t offset, uint8_t data) +void pmd85_state::io_w(offs_t offset, uint8_t data) { if (m_startup_mem_map) { @@ -527,7 +516,7 @@ switch (offset & 0x80) { case 0x80: /* Motherboard 8255 */ - m_ppi8255_0->write(offset & 0x03, data); + m_ppi0->write(offset & 0x03, data); /* PMD-85.3 memory banking */ if ((offset & 0x03) == 0x03) { @@ -543,7 +532,7 @@ switch (offset & 0x80) { case 0x80: /* ROM module 8255 */ - m_ppi8255_3->write(offset & 0x03, data); + m_ppi3->write(offset & 0x03, data); break; } } @@ -558,14 +547,14 @@ m_uart->write(offset & 0x01, data); break; case 0x40: /* 8255 (GPIO/0, GPIO/0) */ - m_ppi8255_1->write(offset & 0x03, data); + m_ppi1->write(offset & 0x03, data); break; case 0x50: /* 8253 */ - m_pit8253->write(offset & 0x03, data); + m_pit->write(offset & 0x03, data); logerror ("8253 writing. Address: %02x, Data: %02x\n", offset, data); break; case 0x70: /* 8255 (IMS-2) */ - m_ppi8255_2->write(offset & 0x03, data); + m_ppi2->write(offset & 0x03, data); break; } break; @@ -602,7 +591,7 @@ switch (offset & 0x80) { case 0x80: /* Motherboard 8255 */ - return m_ppi8255_0->read(offset & 0x03); + return m_ppi0->read(offset & 0x03); } break; } @@ -625,7 +614,7 @@ switch (offset & 0x80) { case 0x80: /* Motherboard 8255 */ - return m_ppi8255_0->write(offset & 0x03, data); + return m_ppi0->write(offset & 0x03, data); } break; } @@ -636,19 +625,19 @@ switch (id) { case TIMER_CASSETTE: - pmd85_cassette_timer_callback(ptr, param); + cassette_timer_callback(ptr, param); break; default: throw emu_fatalerror("Unknown id in pmd85_state::device_timer"); } } -TIMER_CALLBACK_MEMBER(pmd85_state::pmd85_cassette_timer_callback) +TIMER_CALLBACK_MEMBER(pmd85_state::cassette_timer_callback) { bool data; bool current_level; - if (!(m_io_dsw0->read() & 0x02)) /* V.24 / Tape Switch */ + if (!BIT(m_io_dsw0->read(), 1)) /* V.24 / Tape Switch */ { /* tape reading */ if (m_cassette->get_state()&CASSETTE_PLAY) @@ -711,18 +700,8 @@ machine().schedule_soft_reset(); } -void pmd85_state::pmd85_common_driver_init() +void pmd85_state::common_driver_init() { - static const char *const keynames[] = { - "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6", "KEY7", - "KEY8", "KEY9", "KEY10", "KEY11", "KEY12", "KEY13", "KEY14", "KEY15" - }; - - for ( int i = 0; i < 16; i++ ) - { - m_io_port[i] = ioport( keynames[i] ); - } - m_previous_level = 0; m_clk_level = m_clk_level_tape = 1; m_cassette_timer = timer_alloc(TIMER_CASSETTE); @@ -733,67 +712,52 @@ { m_model = PMD85_1; update_memory = &pmd85_state::pmd851_update_memory; - pmd85_common_driver_init(); + common_driver_init(); } void pmd85_state::init_pmd852() { m_model = PMD85_2; update_memory = &pmd85_state::pmd851_update_memory; - pmd85_common_driver_init(); + common_driver_init(); } void pmd85_state::init_pmd852a() { m_model = PMD85_2A; update_memory = &pmd85_state::pmd852a_update_memory; - pmd85_common_driver_init(); + common_driver_init(); } void pmd85_state::init_pmd853() { m_model = PMD85_3; update_memory = &pmd85_state::pmd853_update_memory; - pmd85_common_driver_init(); + common_driver_init(); } void pmd85_state::init_alfa() { m_model = ALFA; update_memory = &pmd85_state::alfa_update_memory; - pmd85_common_driver_init(); + common_driver_init(); } void pmd85_state::init_mato() { m_model = MATO; update_memory = &pmd85_state::mato_update_memory; - - static const char *const keynames[] = { - "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6", "KEY7", "KEY8" - }; - - for ( int i = 0; i < 9; i++ ) - { - m_io_port[i] = ioport( keynames[i] ); - } - for ( int i = 9; i < 16; i++ ) - { - m_io_port[i] = nullptr; - } } void pmd85_state::init_c2717() { m_model = C2717; update_memory = &pmd85_state::c2717_update_memory; - pmd85_common_driver_init(); + common_driver_init(); } void pmd85_state::machine_reset() { - int i, j; - /* checking for Rom Module */ m_rom_module_present = 0; switch (m_model) @@ -810,13 +774,28 @@ break; } - for (i = 0; i < 4; i++) - for (j = 0; j < 3; j++) + for (u8 i = 0; i < 4; i++) + for (u8 j = 0; j < 3; j++) m_ppi_port_outputs[i][j] = 0; /* memory initialization */ - memset(m_ram->pointer(), 0, sizeof(unsigned char)*0x10000); m_pmd853_memory_mapping = 1; m_startup_mem_map = 1; (this->*update_memory)(); } + +void pmd85_state::machine_start() +{ + m_leds.resolve(); + save_item(NAME(m_txd)); + save_item(NAME(m_rts)); + save_item(NAME(m_rom_module_present)); + save_item(NAME(m_ppi_port_outputs)); + save_item(NAME(m_startup_mem_map)); + save_item(NAME(m_pmd853_memory_mapping)); + save_item(NAME(m_previous_level)); + save_item(NAME(m_clk_level)); + save_item(NAME(m_clk_level_tape)); + save_item(NAME(m_model)); +} + diff -Nru mame-0.223+dfsg.1/src/mame/machine/qix.cpp mame-0.224+dfsg.1/src/mame/machine/qix.cpp --- mame-0.223+dfsg.1/src/mame/machine/qix.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/qix.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -33,7 +33,10 @@ void zookeep_state::machine_start() { - qixmcu_state::machine_start(); + if (m_mcu) + qixmcu_state::machine_start(); + else + qix_state::machine_start(); /* configure the banking */ m_vidbank->configure_entry(0, memregion("videocpu")->base() + 0xa000); diff -Nru mame-0.223+dfsg.1/src/mame/machine/swim.h mame-0.224+dfsg.1/src/mame/machine/swim.h --- mame-0.223+dfsg.1/src/mame/machine/swim.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/swim.h 2020-08-26 08:57:19.000000000 +0000 @@ -8,10 +8,11 @@ early Macs *********************************************************************/ - #ifndef MAME_MACHINE_SWIM_H #define MAME_MACHINE_SWIM_H +#pragma once + #include "machine/applefdc.h" diff -Nru mame-0.223+dfsg.1/src/mame/machine/taitocchip.cpp mame-0.224+dfsg.1/src/mame/machine/taitocchip.cpp --- mame-0.223+dfsg.1/src/mame/machine/taitocchip.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/taitocchip.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -226,14 +226,14 @@ upd.pb_out_cb().set([this] (u8 data) { m_out_pb_cb(data); }); upd.pc_out_cb().set([this] (u8 data) { m_out_pc_cb(data); }); upd.pf_out_cb().set([this] (u8 data) { logerror("%s port F written %.2x\n", machine().describe_context(), data); }); // internal? related to locking out the 68k? - upd.an0_func().set([this] { return BIT(m_in_ad_cb(), 0); }); - upd.an1_func().set([this] { return BIT(m_in_ad_cb(), 1); }); - upd.an2_func().set([this] { return BIT(m_in_ad_cb(), 2); }); - upd.an3_func().set([this] { return BIT(m_in_ad_cb(), 3); }); - upd.an4_func().set([this] { return BIT(m_in_ad_cb(), 4); }); - upd.an5_func().set([this] { return BIT(m_in_ad_cb(), 5); }); - upd.an6_func().set([this] { return BIT(m_in_ad_cb(), 6); }); - upd.an7_func().set([this] { return BIT(m_in_ad_cb(), 7); }); + upd.an0_func().set([this] { return BIT(m_in_ad_cb(), 0) ? 0xff : 0; }); + upd.an1_func().set([this] { return BIT(m_in_ad_cb(), 1) ? 0xff : 0; }); + upd.an2_func().set([this] { return BIT(m_in_ad_cb(), 2) ? 0xff : 0; }); + upd.an3_func().set([this] { return BIT(m_in_ad_cb(), 3) ? 0xff : 0; }); + upd.an4_func().set([this] { return BIT(m_in_ad_cb(), 4) ? 0xff : 0; }); + upd.an5_func().set([this] { return BIT(m_in_ad_cb(), 5) ? 0xff : 0; }); + upd.an6_func().set([this] { return BIT(m_in_ad_cb(), 6) ? 0xff : 0; }); + upd.an7_func().set([this] { return BIT(m_in_ad_cb(), 7) ? 0xff : 0; }); ADDRESS_MAP_BANK(config, m_upd4464_bank, 0); m_upd4464_bank->set_map(&taito_cchip_device::cchip_ram_bank); diff -Nru mame-0.223+dfsg.1/src/mame/machine/vector06.cpp mame-0.224+dfsg.1/src/mame/machine/vector06.cpp --- mame-0.223+dfsg.1/src/mame/machine/vector06.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/vector06.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -14,23 +14,19 @@ #include "screen.h" -uint8_t vector06_state::vector06_8255_portb_r() +uint8_t vector06_state::ppi1_portb_r() { uint8_t key = 0xff; - if (BIT(m_keyboard_mask, 0)) key &= m_line[0]->read(); - if (BIT(m_keyboard_mask, 1)) key &= m_line[1]->read(); - if (BIT(m_keyboard_mask, 2)) key &= m_line[2]->read(); - if (BIT(m_keyboard_mask, 3)) key &= m_line[3]->read(); - if (BIT(m_keyboard_mask, 4)) key &= m_line[4]->read(); - if (BIT(m_keyboard_mask, 5)) key &= m_line[5]->read(); - if (BIT(m_keyboard_mask, 6)) key &= m_line[6]->read(); - if (BIT(m_keyboard_mask, 7)) key &= m_line[7]->read(); + for (u8 i = 0; i < 8; i++) + if (BIT(m_keyboard_mask, i)) + key &= m_io_keyboard[i]->read(); + return key; } -uint8_t vector06_state::vector06_8255_portc_r() +uint8_t vector06_state::ppi1_portc_r() { - uint8_t ret = m_line[8]->read(); + uint8_t ret = m_io_keyboard[8]->read(); if (m_cassette->input() > 0) ret |= 0x10; @@ -38,28 +34,24 @@ return ret; } -void vector06_state::vector06_8255_porta_w(uint8_t data) +void vector06_state::ppi1_porta_w(uint8_t data) { m_keyboard_mask = data ^ 0xff; } -void vector06_state::vector06_set_video_mode(int width) -{ - rectangle visarea(0, width+64-1, 0, 256+64-1); - m_screen->configure(width+64, 256+64, visarea, m_screen->frame_period().attoseconds()); -} - -void vector06_state::vector06_8255_portb_w(uint8_t data) +void vector06_state::ppi1_portb_w(uint8_t data) { m_color_index = data & 0x0f; - if ((data & 0x10) != m_video_mode) + if (BIT(data, 4) != m_video_mode) { - m_video_mode = data & 0x10; - vector06_set_video_mode((m_video_mode==0x10) ? 512 : 256); + m_video_mode = BIT(data, 4); + u16 width = m_video_mode ? 512 : 256; + rectangle visarea(0, width+64-1, 0, 256+64-1); + m_screen->configure(width+64, 256+64, visarea, m_screen->frame_period().attoseconds()); } } -void vector06_state::vector06_color_set(uint8_t data) +void vector06_state::color_set(uint8_t data) { uint8_t r = (data & 7) << 5; uint8_t g = ((data >> 3) & 7) << 5; @@ -68,7 +60,7 @@ } -uint8_t vector06_state::vector06_romdisk_portb_r() +uint8_t vector06_state::ppi2_portb_r() { uint16_t addr = ((m_romdisk_msb & 0x7f) << 8) | m_romdisk_lsb; if ((m_romdisk_msb & 0x80) && m_cart->exists() && addr < m_cart->get_rom_size()) @@ -77,46 +69,42 @@ return m_ay->data_r(); } -void vector06_state::vector06_romdisk_portb_w(uint8_t data) +void vector06_state::ppi2_portb_w(uint8_t data) { m_aylatch = data; } -void vector06_state::vector06_romdisk_porta_w(uint8_t data) +void vector06_state::ppi2_porta_w(uint8_t data) { m_romdisk_lsb = data; } -void vector06_state::vector06_romdisk_portc_w (uint8_t data) +void vector06_state::ppi2_portc_w (uint8_t data) { if (data & 4) m_ay->address_data_w((data >> 1) & 1, m_aylatch); m_romdisk_msb = data; } -INTERRUPT_GEN_MEMBER(vector06_state::vector06_interrupt) -{ - device.execute().set_input_line(0, HOLD_LINE); -} - -IRQ_CALLBACK_MEMBER(vector06_state::vector06_irq_callback) +IRQ_CALLBACK_MEMBER(vector06_state::irq_callback) { // Interrupt is RST 7 return 0xff; } -TIMER_CALLBACK_MEMBER(vector06_state::reset_check_callback) +INPUT_CHANGED_MEMBER(vector06_state::f11_button) { - uint8_t val = m_reset->read(); - - if (BIT(val, 0)) + if (newval) { m_romen = true; update_mem(); m_maincpu->reset(); } +} - if (BIT(val, 1)) +INPUT_CHANGED_MEMBER(vector06_state::f12_button) +{ + if (newval) { m_romen = false; update_mem(); @@ -124,7 +112,7 @@ } } -void vector06_state::vector06_disc_w(uint8_t data) +void vector06_state::disc_w(uint8_t data) { floppy_image_device *floppy = nullptr; @@ -146,26 +134,28 @@ void vector06_state::update_mem() { - if ((m_rambank & 0x10) && m_stack_state) { - int sentry = ((m_rambank >> 2) & 3) + 1; + if (BIT(m_rambank, 4) && m_stack_state) + { + u8 sentry = ((m_rambank >> 2) & 3) + 1; m_bank1->set_entry(sentry); m_bank3->set_entry(sentry); - m_bank2->set_base(m_ram->pointer() + sentry * 0x10000); + m_bank2->set_entry(sentry + 1u); } - else { + else + { m_bank1->set_entry(0); - int ventry = 0; - if (m_rambank & 0x20) + u8 ventry = 0; + if (BIT(m_rambank, 5)) ventry = (m_rambank & 3) + 1; m_bank3->set_entry(ventry); if (m_romen) - m_bank2->set_base(m_region_maincpu->base() + 0x10000); + m_bank2->set_entry(0); else - m_bank2->set_base(m_ram->pointer()); + m_bank2->set_entry(1); } } -void vector06_state::vector06_ramdisk_w(uint8_t data) +void vector06_state::ramdisk_w(uint8_t data) { const uint8_t oldbank = m_rambank; m_rambank = data; @@ -173,11 +163,11 @@ update_mem(); } -void vector06_state::vector06_status_callback(uint8_t data) +void vector06_state::status_callback(uint8_t data) { const bool oldstate = m_stack_state; m_stack_state = bool(data & i8080_cpu_device::STATUS_STACK); - if (oldstate != m_stack_state && (m_rambank & 0x10)) + if ((oldstate != m_stack_state) && BIT(m_rambank, 4)) update_mem(); } @@ -188,8 +178,23 @@ void vector06_state::machine_start() { - m_reset_check_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(vector06_state::reset_check_callback), this)); - m_reset_check_timer->adjust(attotime::from_hz(50), 0, attotime::from_hz(50)); + u8 *r = m_ram->pointer(); + + m_bank1->configure_entries(0, 5, r, 0x10000); + m_bank2->configure_entry(0, m_rom); + m_bank2->configure_entries(1, 5, r, 0x10000); + m_bank3->configure_entries(0, 5, r + 0xa000, 0x10000); + + save_item(NAME(m_keyboard_mask)); + save_item(NAME(m_color_index)); + save_item(NAME(m_romdisk_msb)); + save_item(NAME(m_romdisk_lsb)); + save_item(NAME(m_vblank_state)); + save_item(NAME(m_rambank)); + save_item(NAME(m_aylatch)); + save_item(NAME(m_video_mode)); + save_item(NAME(m_stack_state)); + save_item(NAME(m_romen)); } void vector06_state::machine_reset() @@ -198,13 +203,12 @@ m_rambank = 0; m_romen = true; - m_bank1->configure_entries(0, 5, m_ram->pointer(), 0x10000); - for (int i = 0; i < 5; i++) - m_bank3->configure_entry(i, m_ram->pointer() + 0x10000 * i + 0xa000); - update_mem(); m_keyboard_mask = 0; m_color_index = 0; m_video_mode = 0; + m_bank1->set_entry(0); + m_bank2->set_entry(0); + m_bank3->set_entry(0); } diff -Nru mame-0.223+dfsg.1/src/mame/machine/vtech2.cpp mame-0.224+dfsg.1/src/mame/machine/vtech2.cpp --- mame-0.223+dfsg.1/src/mame/machine/vtech2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/vtech2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -27,6 +27,8 @@ void vtech2_state::init_laser() { + init_waitstates(); + uint8_t *gfx = memregion("gfx2")->base(); int i; @@ -68,6 +70,29 @@ m_language = m_io_keyboard[5]->read() & 0x30; } +void vtech2_state::machine_start() +{ + save_item(NAME(m_laser_frame_message)); + save_item(NAME(m_laser_frame_time)); + save_item(NAME(m_laser_latch)); + save_item(NAME(m_laser_track_x2)); + save_item(NAME(m_laser_fdc_status)); + save_item(NAME(m_laser_fdc_data)); + save_item(NAME(m_laser_data)); + save_item(NAME(m_laser_fdc_edge)); + save_item(NAME(m_laser_fdc_bits)); + save_item(NAME(m_laser_drive)); + save_item(NAME(m_laser_fdc_start)); + save_item(NAME(m_laser_fdc_write)); + save_item(NAME(m_laser_fdc_offs)); + save_item(NAME(m_laser_fdc_latch)); + save_item(NAME(m_level_old)); + save_item(NAME(m_cassette_bit)); + save_item(NAME(m_laser_bg_mode)); + save_item(NAME(m_laser_two_color)); + save_item(NAME(m_language)); + save_item(NAME(m_cart_size)); +} uint8_t vtech2_state::cart_r(offs_t offset) { @@ -76,6 +101,38 @@ return m_cart->read_rom(offset); } +// The ULA inserts one waitstate for every read and write in each space (MT 07094, MT 07141) +void vtech2_state::init_waitstates() +{ + address_space &mem = m_maincpu->space(AS_PROGRAM); + address_space &io = m_maincpu->space(AS_IO); + + mem.install_read_tap(0x0000, 0xffff, "mem_wait_r", [this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-1); + return data; + }); + mem.install_write_tap(0x0000, 0xffff, "mem_wait_w", [this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-1); + return data; + }); + io.install_read_tap(0x00, 0xff, "io_wait_r", [this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-1); + return data; + }); + io.install_write_tap(0x00, 0xff, "io_wait_w", [this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + m_maincpu->adjust_icount(-1); + return data; + }); +} + /************************************************* * memory mapped I/O read diff -Nru mame-0.223+dfsg.1/src/mame/machine/xavix.cpp mame-0.224+dfsg.1/src/mame/machine/xavix.cpp --- mame-0.223+dfsg.1/src/mame/machine/xavix.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/xavix.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -379,15 +379,6 @@ /* Per Game IO port callbacks */ -READ_LINE_MEMBER(xavix_i2c_lotr_state::camera_r) // seems to be some kind of camera status bits -{ - return machine().rand(); -} - -READ_LINE_MEMBER(xavix_i2c_bowl_state::camera_r) // seems to be some kind of camera status bits -{ - return machine().rand(); -} READ_LINE_MEMBER(xavix_ekara_state::ekara_multi0_r) { @@ -512,48 +503,6 @@ m_extraiowrite = extraiowrite; } -/* SuperXavix IO port handliner (per game) */ - -uint8_t xavix_i2c_jmat_state::read_extended_io0() -{ - LOG("%s: read_extended_io0\n", machine().describe_context()); - return 0x00; -} - -uint8_t xavix_i2c_jmat_state::read_extended_io1() -{ - LOG("%s: read_extended_io1\n", machine().describe_context()); - - // reads this by reading the byte, then shifting right 4 times to place value into carry flag - return m_i2cmem->read_sda() << 3; - //return 0x00; -} - -uint8_t xavix_i2c_jmat_state::read_extended_io2() -{ - LOG("%s: read_extended_io2\n", machine().describe_context()); - return 0x00; -} - -void xavix_i2c_jmat_state::write_extended_io0(uint8_t data) -{ - LOG("%s: io0_data_w %02x\n", machine().describe_context(), data); -} - -void xavix_i2c_jmat_state::write_extended_io1(uint8_t data) -{ - LOG("%s: io1_data_w %02x\n", machine().describe_context(), data); - - m_i2cmem->write_sda((data & 0x08) >> 3); - m_i2cmem->write_scl((data & 0x10) >> 4); - -} - -void xavix_i2c_jmat_state::write_extended_io2(uint8_t data) -{ - LOG("%s: io2_data_w %02x\n", machine().describe_context(), data); -} - // the cart pins Popira 2 uses for IO with cart gc0010 are not controllable by the CPU on other ekara systems READ_LINE_MEMBER(xavix_popira2_cart_state::i2c_r) diff -Nru mame-0.223+dfsg.1/src/mame/machine/z80ne.cpp mame-0.224+dfsg.1/src/mame/machine/z80ne.cpp --- mame-0.223+dfsg.1/src/mame/machine/z80ne.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/machine/z80ne.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -65,38 +65,38 @@ } } - -void z80ne_state::driver_init() +void z80ne_state::save_state_vars() { - /* first two entries point to rom on reset */ - uint8_t *RAM = m_region_z80ne->base(); - m_bank1->configure_entry(0, &RAM[0x00000]); /* RAM at 0x0000 */ - m_bank1->configure_entry(1, &RAM[0x14000]); /* ep382 at 0x0000 */ - m_bank2->configure_entry(0, &RAM[0x14000]); /* ep382 at 0x8000 */ + save_item(NAME(m_lx383_scan_counter)); + save_item(NAME(m_lx383_key)); + save_item(NAME(m_lx383_downsampler)); + save_item(NAME(m_lx385_ctrl)); } -void z80net_state::driver_init() +void z80ne_state::init_z80ne() { - z80ne_state::driver_init(); + save_state_vars(); } void z80netf_state::driver_init() { + save_state_vars(); + /* first two entries point to rom on reset */ - uint8_t *RAM = m_region_z80ne->base(); - m_bank1->configure_entry(0, &RAM[0x00000]); /* RAM at 0x0000-0x03FF */ - m_bank1->configure_entries(1, 3, &RAM[0x14400], 0x0400); /* ep390, ep1390, ep2390 at 0x0000-0x03FF */ - m_bank1->configure_entry(4, &RAM[0x14000]); /* ep382 at 0x0000-0x03FF */ - m_bank1->configure_entry(5, &RAM[0x10000]); /* ep548 at 0x0000-0x03FF */ + u8 *r = m_ram->pointer(); + m_bank1->configure_entry(0, r); /* RAM at 0x0000-0x03FF */ + m_bank1->configure_entries(1, 3, m_rom+0x4400, 0x0400); /* ep390, ep1390, ep2390 at 0x0000-0x03FF */ + m_bank1->configure_entry(4, m_rom+0x4000); /* ep382 at 0x0000-0x03FF */ + m_bank1->configure_entry(5, m_rom); /* ep548 at 0x0000-0x03FF */ - m_bank2->configure_entry(0, &RAM[0x00400]); /* RAM at 0x0400 */ - m_bank2->configure_entry(1, &RAM[0x10400]); /* ep548 at 0x0400-0x3FFF */ + m_bank2->configure_entry(0, r+0x0400); /* RAM at 0x0400 */ + m_bank2->configure_entry(1, m_rom+0x0400); /* ep548 at 0x0400-0x3FFF */ - m_bank3->configure_entry(0, &RAM[0x08000]); /* RAM at 0x8000 */ - m_bank3->configure_entry(1, &RAM[0x14000]); /* ep382 at 0x8000 */ + m_bank3->configure_entry(0, r+0x4000); /* RAM at 0x8000 */ + m_bank3->configure_entry(1, m_rom+0x4000); /* ep382 at 0x8000 */ - m_bank4->configure_entry(0, &RAM[0x0F000]); /* RAM at 0xF000 */ - m_bank4->configure_entries(1, 3, &RAM[0x14400], 0x0400); /* ep390, ep1390, ep2390 at 0xF000 */ + m_bank4->configure_entry(0, r+0x5000); /* RAM at 0xF000 */ + m_bank4->configure_entries(1, 3, m_rom+0x4400, 0x0400); /* ep390, ep1390, ep2390 at 0xF000 */ } @@ -151,10 +151,8 @@ case 0: m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); break; - case 1: - // switch to RAM bank at address 0x0000 - m_bank1->set_entry(0); - break; + default: + printf("Invalid timer %d encountered\n",id); } } @@ -164,16 +162,6 @@ m_lx387_kr2376->set_input_pin( kr2376_device::KR2376_PII, 0); } -void z80ne_state::reset_lx382_banking() -{ - /* switch to ROM bank at address 0x0000 */ - m_bank1->set_entry(1); - m_bank2->set_entry(0); /* ep382 at 0x8000 */ - - /* after the first 3 bytes have been read from ROM, switch the RAM back in */ - m_timer_reset->adjust(m_maincpu->cycles_to_attotime(2)); -} - void z80netf_state::reset_lx390_banking() { switch (m_io_config->read() & 0x07) @@ -185,8 +173,6 @@ m_bank2->set_entry(0); /* RAM at 0x0400 */ m_bank3->set_entry(1); /* ep382 at 0x8000 */ m_bank4->set_entry(0); /* RAM at 0xF000 */ - // after the first 3 bytes have been read from ROM, switch the RAM back in - m_timer_reset->adjust(m_maincpu->cycles_to_attotime(2)); break; case 0x02: /* EP548 16k BASIC */ if (VERBOSE) @@ -271,19 +257,34 @@ m_uart_clock->set_unscaled_clock(m_cass_data.speed * 16); lx385_ctrl_w(0); - } void z80ne_state::machine_reset() { - reset_lx382_banking(); base_reset(); + + address_space &program = m_maincpu->space(AS_PROGRAM); + program.install_rom(0x0000, 0x03ff, m_rom); // do it here for F3 + m_rom_shadow_tap = program.install_read_tap(0x8000, 0x83ff, "rom_shadow_r",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + { + // delete this tap + m_rom_shadow_tap->remove(); + + // reinstall ram over the rom shadow + m_maincpu->space(AS_PROGRAM).install_ram(0x0000, 0x03ff, m_mram); + } + + // return the original data + return data; + }); } void z80net_state::machine_reset() { - z80ne_state::machine_reset(); reset_lx387(); + z80ne_state::machine_reset(); } void z80netb_state::machine_reset() @@ -297,41 +298,51 @@ reset_lx390_banking(); base_reset(); reset_lx387(); + + // basic roms are exempt from memory tap + if ((m_io_config->read() & 0x07) != 2) + { + address_space &program = m_maincpu->space(AS_PROGRAM); + m_rom_shadow_tap = program.install_read_tap(0x8000, 0xf3ff, "rom_shadow_r",[this](offs_t offset, u8 &data, u8 mem_mask) + { + if (!machine().side_effects_disabled()) + { + // delete this tap + m_rom_shadow_tap->remove(); + + // reinstall ram over the rom shadow + m_bank1->set_entry(0); + } + + // return the original data + return data; + }); + } } INPUT_CHANGED_MEMBER(z80ne_state::z80ne_reset) { - uint8_t rst; - rst = m_io_rst->read(); + uint8_t rst = m_io_rst->read(); if ( ! BIT(rst, 0)) - { machine().schedule_soft_reset(); - } } INPUT_CHANGED_MEMBER(z80net_state::z80net_nmi) { - uint8_t nmi; - nmi = m_io_lx387_brk->read(); + uint8_t nmi = m_io_lx387_brk->read(); if ( ! BIT(nmi, 0)) - { m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); - } } void z80ne_state::machine_start() { m_timer_nmi = timer_alloc(0); - m_timer_reset = timer_alloc(1); m_lx383_digits.resolve(); m_lx385_ctrl = 0x1f; - save_item(NAME(m_lx383_scan_counter)); - save_item(NAME(m_lx383_downsampler)); - save_item(NAME(m_lx383_key)); m_cassette_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(z80ne_state::z80ne_cassette_tc), this)); m_kbd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(z80ne_state::z80ne_kbd_scan), this)); m_kbd_timer->adjust(attotime::from_hz(1000), 0, attotime::from_hz(1000)); @@ -402,7 +413,7 @@ else { // after writing to port 0xF8 and the first ~M1 cycles strike a NMI for single step execution - m_timer_reset->adjust(m_maincpu->cycles_to_attotime(1)); + m_timer_nmi->adjust(m_maincpu->cycles_to_attotime(1)); } } @@ -590,7 +601,7 @@ floppy_image_device *floppy = nullptr; - for (int f = 0; f < 4; f++) + for (u8 f = 0; f < 4; f++) if (BIT(data, f)) floppy = m_floppy[f]->get_device(); @@ -613,24 +624,6 @@ } } -uint8_t z80netf_state::lx390_reset_bank() -{ - offs_t pc; - - /* if PC is not in range, we are under integrated debugger control, DON'T SWAP */ - pc = m_maincpu->pc(); - if((pc >= 0xf000) && (pc <=0xffff)) - { - LOG("lx390_reset_bank, reset memory bank 1\n"); - m_bank1->set_entry(0); /* RAM at 0x0000 (bank 1) */ - } - else - { - LOG("lx390_reset_bank, bypass because in debugger\n"); - } - return 0xff; -} - uint8_t z80netf_state::lx390_fdc_r(offs_t offset) { uint8_t d; @@ -655,7 +648,7 @@ break; case 6: d = 0xff; - lx390_reset_bank(); + m_bank1->set_entry(0); break; case 7: d = m_wd1771->data_r() ^ 0xff; diff -Nru mame-0.223+dfsg.1/src/mame/mame.lst mame-0.224+dfsg.1/src/mame/mame.lst --- mame-0.223+dfsg.1/src/mame/mame.lst 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/mame.lst 2020-08-26 08:57:19.000000000 +0000 @@ -101,7 +101,8 @@ 4d35 // IP12: Personal Iris 4D/35, R3000A @36MHz @source:4enlinea.cpp -4enlinea // (c) 1991 System Compumatic +4enlinea // (c) 1991 Compumatic / CIC Play +4enlineb // (c) 1991 Compumatic / CIC Play k7_olym // (c) 1994 K7 Kursaal sprtdart // (c) 1993 Compumatic / Desarrollos y Recambios S.L. @@ -2771,6 +2772,7 @@ aavenger // atarians // midearth // +mideartha // spcrider // time2000 // @@ -3300,11 +3302,6 @@ mechattu // A8002 'MA' (c) 1989 mechattu1 // A8002 'MA' (c) 1989 -@source:bbl380.cpp -bbl380 -ragc153 -dphh8630 - @source:bcs3.cpp bcs3 // bcs3a // @@ -3361,6 +3358,7 @@ @source:bfcobra.cpp beeline // 1991 BFM +brkball // 1994 BFM / ATOD escounts // 1990 BFM inquiztr // 1989 BFM qos // 1992 BFM @@ -10239,6 +10237,7 @@ outr2sto // 2004.09 Outrun 2 Special Tours outr2st // 2004.12 Outrun 2 Special Tours (Rev A) outr2stj // 2004.12 Outrun 2 Special Tours (Japan) (Rev A) +scg05nt // 2004.10 Sega Golf Club Network Pro Tour 2005 (Rev C) (GDX-0010C) scg06nt // 2005.12 Sega Golf Club 2006: Next Tours (Rev A) vcop3a // 2003.02.26 Virtua Cop 3 (Rev A) vcop3 // 2003.05.21 Virtua Cop 3 (Rev B) @@ -10345,6 +10344,10 @@ @source:cit101.cpp cit101 // (c) 1980 C. Itoh +cit101e // (c) 1983 C. Itoh + +@source:cit101xl.cpp +cit101xl // @source:cit220.cpp cit220p // (c) 1984 C. Itoh @@ -11011,6 +11014,7 @@ mpangj // 11/10/2000 (c) 2000 Mitchell (Japan) mpangr1 // 25/09/2000 (c) 2000 Mitchell (Euro) mpangu // 10/10/2000 (c) 2000 Mitchell (USA) +mpanga // 10/10/2000 (c) 2000 Mitchell (Asia) msh // 24/10/1995 (c) 1995 (Euro) msha // 24/10/1995 (c) 1995 (Asia) mshb // 17/11/1995 (c) 1995 (Brazil) @@ -11066,6 +11070,7 @@ qndream // 26/08/1996 (c) 1996 (Japan) ringdest // 02/09/1994 (c) 1994 (Euro) ringdesta // 31/08/1994 (c) 1994 (Asia) +ringdestb // 02/09/1994 (c) 1994 (Brazil) - factory region hack? ringdesth // 02/09/1994 (c) 1994 (Hispanic) ringdstd // rmancp2j // 22/09/1995 (c) 1995 (Japan) @@ -11825,6 +11830,7 @@ bay_d300 // bay_d400 // bay_e400 // +bay_f201 // baywatch // bmf_at // bmf_be // @@ -13291,9 +13297,9 @@ targc // (c) 1980 teetert // (c) 1981 venture // (c) 1981 -venture2 // (c) 1981 -venture2b // bootleg venture4 // (c) 1981 +venture5a // (c) 1981 +venture5b // bootleg @source:exidy440.cpp catch22 // (c) 1985 @@ -13849,6 +13855,8 @@ funquiz // (c) 198? Fun World funquiza // (c) 1990 Fun World funquizb // (c) 1990 Fun World +gratispk // (c) 1995 Mega Soft +gratispka // (c) 1995 Mega Soft jokercrd // (c) 1993 Vesely Svet jollycrd // (c) 1985 TAB-Austria jollycrda // (c) 1985 TAB-Austria @@ -13865,13 +13873,16 @@ jolycdif // 1990 bootleg jolycdig // 1993 bootleg jolycdih // 1990 bootleg +jolycdii // 1993 bootleg jolycdit // 199? bootleg jolycdsp // (c) 1992 TAB-Austria jolycmzs // (c) 1993 MZS Tech jolyjokr // (c) 198? Impera jolyjokra // (c) 198? Impera -jolyjokrb // (c) 198? Impera +jolyjokrb1 // (c) 1985 Impera +jolyjokrb2 // (c) 1985 Impera jolyjokrc // (c) 198? Apple Time +jolyjokrm // (c) 198? Impera jolyjokro // (c) 198? Impera jolyjokrp // (c) 198? Impera lluck3x3 // (c) 1991 TAB-Austria @@ -13887,6 +13898,7 @@ mongolnw // 199? bootleg multiwin // (c) 1992 Fun World nevadafw // 199? unknown +nkoulit // 1995 JK Amusement novoplay // (c) 1986 Novomatic pool10 // (c) 1996 C.M.C. pool10b // (c) 1996 C.M.C. @@ -13902,6 +13914,7 @@ potgame // (c) 1996 C.M.C. powercrd // (c) 1993 Fun World rcdino4 // 1998 unknown +reflexcrd // (c) 1999 TAB-Austria royal // 2001, hack. royalcdfr // (c) 1991 TAB-Austria royalcrd // (c) 1991 TAB-Austria @@ -14002,6 +14015,7 @@ @source:gaelcof3.cpp autopapa // +donpepito // susanita // @source:gaelcopc.cpp @@ -14761,6 +14775,11 @@ suprpokra // (c) 1986 Grayhound Electronics suprpokrb // (c) 1986 Grayhound Electronics +@source:generalplus_gpl_unknown.cpp +pcp8718 +pcp8728 +unkunsp + @source:generalplus_gpl16250_mobigo.cpp mobigo mobigos @@ -14791,6 +14810,7 @@ gormiti tkmag220 // myac220 +imgame @source:generalplus_gpl16250_romram.cpp paccon @@ -15175,6 +15195,9 @@ cmasterf // (c) 1991 Dyna Electronics cmasterg // (c) 1991 Dyna Electronics cmasterh // (c) 1991 Dyna Electronics +cmasteri // (c) 1991 Dyna Electronics +cmasterj // (c) 1991 Dyna Electronics +cmasterk // (c) 1991 Dyna Electronics cmezspin // (c) 1991 Dyna Electronics cmfun // (c) 1995 Dyna Electronics cmpacman // @@ -15846,6 +15869,8 @@ hec2mdhrx // hec2mx40 // hec2mx80 // +hector1 // +interact // victor // @source:hektor.cpp @@ -16689,10 +16714,6 @@ @source:intellect02.cpp intel02 // -@source:interact.cpp -hector1 // -interact // - @source:interpro.cpp ip2000 // Intergraph InterPro/InterServe 20x0 ip2400 // Intergraph InterPro/InterServe 24x0 @@ -18391,9 +18412,14 @@ @source:jpmsys5.cpp cashcade // Cashcade (JPM) monoplcl // Monopoly Classic (JPM) +monoplcld // monopldx // Monopoly Deluxe (JPM) +monopldx1 // Monopoly Deluxe (JPM) +monopldxd // monopoly // Monopoly (JPM) -monopolya // Monopoly (JPM) +monopolyd // Monopoly (JPM) +monopoly4 // Monopoly (JPM) +monopoly3 // Monopoly (JPM) @source:jpmsys5sw.cpp j5ar80 // Around The World In Eighty Days (JPM) @@ -19279,6 +19305,9 @@ @source:lee1214.cpp lee1214d // +@source:lee1220.cpp +lee1220 // + @source:legionna.cpp cupsoc // (c) 1992 Seibu cupsoca // (c) 1992 Seibu @@ -19526,6 +19555,7 @@ lucky21d // (c) 199? Wing Co. Ltd lucky25 // (c) 199? Wing Co. Ltd lucky37 // (c) 199? Wing Co. Ltd +bingo75 // (c) 199? Wing Co. Ltd @source:lucky74.cpp excitbj // (c) 1992 Wing Co. Ltd @@ -22122,6 +22152,7 @@ @source:megadriv_acbl.cpp aladmdb // MegaDrive-based hack +barek2mb // MegaDrive-based hack barek3mb // MegaDrive-based hack jparkmb // MegaDrive-based hack mk3mdb // MegaDrive-based hack @@ -22395,7 +22426,8 @@ monteciv // 1990 Mephisto Monte Carlo IV LE @source:mephisto_polgar.cpp -polgar // 1989 Mephisto Polgar +polgar // 1990 Mephisto Polgar +polgara // 1989 Mephisto Polgar polgar10 // 1990 Mephisto Polgar 10MHz polgar101 // 1990 Mephisto Polgar 10MHz mrisc // 1992 Mephisto RISC 1MB @@ -23054,7 +23086,8 @@ daytonata // 1994? Kyle Hodgetts hack daytonagtx // 2004 Kyle Hodgetts hack desert // 1994.07 Desert Tank -doa // 1996.11 Dead or Alive (Revision B) +doa // 1997.01 Dead or Alive (Revision C) +doab // 1996.12 Dead or Alive (Revision B) doaa // 1996.11 Dead or Alive (Revision A) dynabb // 1996.08 Dynamite Baseball dynabb97 // 1997.04 Dynamite Baseball 97 (Revision A) @@ -29085,6 +29118,7 @@ v4gldrshs v4gldrsht v4gldrshu +v4gldrsh3 v4mate // The Mating Game v4mated // v4mazbel // Mazooma Belle @@ -29115,11 +29149,12 @@ v4mdicev v4mdicew v4mdice5 +v4mdiceger // Miami Dice +v4mdice6 v4megbuk // Megabucks Poker v4megbuka v4megbukb v4megbukc -v4mdiceger // Miami Dice v4missis // Mississippi Lady v4monte // Monte Carlo Or Bust v4montea @@ -29127,9 +29162,12 @@ v4monted v4montee v4monteg -v4monteh -v4montei -v4montej +v4monteb +v4monteba +v4montebb +v4monte5 +v4monte5a +v4monte5b v4montek v4montel v4montem @@ -29178,6 +29216,7 @@ v4monte9n v4monte9o v4montezz +v4monteger v4opt3 // Option 3 v4opt3d // v4ovrmn3 // Over Moon Pt3 @@ -29185,7 +29224,9 @@ v4ovrmn3b v4ovrmn3c v4ovrmn3d -v4picdil // Piccadilly Nights +v4picdil // Piccadilly Night +v4picdila +v4picdilz v4psi // Prize Space Invaders v4psibc // v4psi14 // @@ -30017,6 +30058,7 @@ mrdu // bootleg mrlo // bootleg mrdofabr // bootleg (Fabremar) +mrdobl // bootleg yankeedo // bootleg @source:mrflea.cpp @@ -32053,7 +32095,9 @@ cpatrolm ts_handy11 ablwikid +maxx5in1 maxx6in1 +max10in1 @source:nes_vt.cpp vdogdeme @@ -32072,6 +32116,8 @@ lxcmcyfz lxcmcydp lxcmcysp +lxcmcypp +lxcmcycr lxccminn lxccplan rtvgc300 @@ -32113,6 +32159,7 @@ sudopptv zudugo ablping +protpp vgpocket vgpmini sy889 @@ -32140,8 +32187,10 @@ denv150 techni4 duetpp +sporzbx ablmini senwld +zonefusn @source:vt1682.cpp ii8in1 @@ -32159,6 +32208,8 @@ wowwg 110dance lxts3 +unk1682 +njp60in1 @source:newbrain.cpp newbrain // @@ -32542,7 +32593,8 @@ jopac // 1983 Jopac JO7400 odyssey2 // Magnavox Odyssey 2 - 1978-1983 odyssey3 // Magnavox Odyssey 3 / Command Center (prototype) -videopac // 1979 Videopac G7000/C52 +videopac // 1979 Videopac G7000 +videopacf // 1979 Videopac C52 @source:offtwall.cpp offtwall // 136090 (c) 1991 @@ -33827,27 +33879,30 @@ ddpdojblka // ddpdojblkbl // dmnfrnt // (c) 2002 Demon Front -dmnfrnta // -dmnfrntb // +dmnfrnt103 // +dmnfrnt102 // dmnfrntpcb // drgw2 // (c) 1997 Dragon World 2 -drgw2c // -drgw2hk // -drgw2j // +drgw2100x // +drgw2101c // +drgw2100c // +drgw2100hk // +drgw2100j // drgw3 // (c) 1998 Dragon World 3 drgw3100 // drgw3103 // drgw3105 // dw2001 // (c) 2001 Dragon World 2001 -dw2v100x // dwex // (c) 2000 Dragon World 3 EX V100 dwex101cn // (c) 2001 Dragon World 3 EX V101CN dwpc // (c) 2001 Dragon World Pretty Chance +dwpc101j // espgal // (c) 2003 Espgaluda espgalbl // happy6 // (c) 2004 Happy 6 happy6101 // happy6100hk // +happy6100cn // ket // (c) 2002 Ketsui ket1 // keta // @@ -33865,8 +33920,8 @@ killbld106 // killbldp // (c) 2004 Killing Blade Plus kov // (c) 1999 Knights of Valor -kov100 // -kov100hk // +kov111 // +kov114 // kov115 // kov2 // (c) 2000 Knights of Valor 2 kov2100 // @@ -33878,6 +33933,7 @@ kov2p // (c) 2000 Knights of Valor 2 Nine Dragons kov2p200 // kov2p202 // +kov2p203 // kov2p204 // kovlsjb // bootleg kovlsjba // bootleg @@ -33895,21 +33951,23 @@ kovsh102 // kovsh103 // kovshp // (c) 2004 Knights of Valor Superheroes PLUS -kovshpa // +kovshp100 // kovshxas // bootleg kovytzy // (c) 1999 Knights of Valour: Yi Tong Zhong Yuan martmast // (c) 2001 Martial Masters -martmastc // -martmastc103 // -martmastc102 // +martmast104c // +martmast103c // +martmast102c // martmasttw // olds // (c) 1999 Oriental Legend Super / Special olds100 // olds100a // olds103t // oldsplus // (c) 2004 Oriental Legend Super Plus +oldsplus203 // orlegend // (c) 1997 Oriental Legend orlegend105k // +orlegend105t // orlegend111c // orlegend111k // orlegend111t // @@ -33918,11 +33976,13 @@ orlegende // pgm // Base Unit pgm3in1 // (c) 2004 Photo Y2K2 3-in-1 +pgm3in1c100 // photoy2k // (c) 1999 Photo Y2k -photoy2k102 // +photoy2k102j // photoy2k103j // (c) 1999 Photo Y2k photoy2k104 // puzlstar // (c) 1999 Puzzle Star +puzlstara // puzzli2 // (c) 1999 Puzzli 2 puzzli2s // (c) 2001 Puzzli 2 Super py2k2 // (c) 2001 Photo Y2K2 (M101XX) @@ -33934,6 +33994,7 @@ theglad100 // theglad101 // thegladpcb // +thegladpcba // @source:pgm2.cpp ddpdojt // (c) 2010 @@ -34023,6 +34084,7 @@ kok // @source:photoply.cpp +photoply99sp // (c) 1999 Funworld photoply // photoply2k4 // @@ -34897,6 +34959,7 @@ zookeep // ZA (c) 1982 Taito America Corporation zookeep2 // ZA (c) 1982 Taito America Corporation zookeep3 // ZA (c) 1982 Taito America Corporation +zookeepbl // bootleg @source:ql.cpp ql // 1984 Sinclair QL (UK) @@ -34951,7 +35014,8 @@ quizshow // 005464 1976/04 [2650] @source:qvt70.cpp -qvt70 // +qvt70 // (c) 1992 Qume Corp. +qvt82 // (c) 1993 Qume Corp. @source:qvt102.cpp qvt102 // (c) 1983 Qume Corp. @@ -36882,6 +36946,8 @@ radrad // (c) 1982 Nichibutsu USA radradj // (c) 1982 Logitec Corp sectrzon // (c) 1984 + Alice +sectrzona // (c) 1984 + Alice +sectrzont // (c) 1984 + Alice (on Tecfri PCB) seicross // (c) 1984 + Alice seicrossa // (c) 1984 + Alice @@ -37617,6 +37683,7 @@ @source:snesb51.cpp mk3snes snes4sl +snes4sln @source:snesb.cpp denseib // bootleg @@ -37982,6 +38049,9 @@ swclone dreamlss senspeed +ordentv +wfcentro +tiktokmm @source:spg2xx_digimake.cpp rad_digi @@ -38111,6 +38181,7 @@ @source:spg2xx_zone_32bit.cpp mywicodx // +mywicogt zon32bit // Zone 32-bit oplayer dnv200fs @@ -40725,12 +40796,15 @@ @source:unixpc.cpp 3b1 // 3B1 "Unix PC" +@source:unk6502_st2xxx.cpp +bbl380 +ragc153 +dphh8630 +dgun2953 + @source:unkhorse.cpp unkhorse // -@source:unkmandd.cpp -unkmandd - @source:unkpoker.cpp unkpoker // @@ -41779,8 +41853,8 @@ robotron12 // robotrontd // sinistar // (c) 1982 -sinistar1 // (c) 1982 sinistar2 // (c) 1982 +sinistarp // (c) 1982 prototype (shown at AMOA 1982 show) spdball // (c) 1985 splat // (c) 1982 stargate // (c) 1981 @@ -42231,15 +42305,11 @@ rad_madf // rad_fb // rad_socr // -epo_bowl // epo_esdx // epo_epp // epo_eppk // epo_epp3 // epo_efdx // -epo_tfit -epo_ebox // -epo_sdb // epo_guru // epo_dmon // rad_rh // @@ -42254,8 +42324,6 @@ tcarnavi // tomcpin tomplc -mrangbat -ban_onep // ekara // ekaraa // ekaraj // @@ -42271,10 +42339,22 @@ jpopira // evio // gcslottv // + +@source:xavix_2000.cpp +epo_ebox // +epo_bowl // +epo_sdb // ttv_sw // ttv_lotr // ttv_mx // drgqst // +ban_onep // + +@source:xavix_2002.cpp +suprpctv +udance +mrangbat +epo_tfit tmy_thom // xavtenni // xavbaseb // diff -Nru mame-0.223+dfsg.1/src/mame/mess.flt mame-0.224+dfsg.1/src/mame/mess.flt --- mame-0.223+dfsg.1/src/mame/mess.flt 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/mess.flt 2020-08-26 08:57:19.000000000 +0000 @@ -107,7 +107,6 @@ basssta.cpp bbc.cpp bbcbc.cpp -bbl380.cpp bcs3.cpp bebox.cpp bert.cpp @@ -162,6 +161,7 @@ chessmate.cpp chessmst.cpp cit101.cpp +cit101xl.cpp cit1500.cpp cit220.cpp cking_master.cpp @@ -329,7 +329,7 @@ gamepock.cpp gb.cpp gba.cpp -generalplus_gpl16250.cpp +generalplus_gpl_unknown.cpp generalplus_gpl16250_mobigo.cpp generalplus_gpl16250_nand.cpp generalplus_gpl16250_rom.cpp @@ -423,7 +423,6 @@ inteladv.cpp intellec4.cpp intellect02.cpp -interact.cpp interpro.cpp intv.cpp ipc.cpp @@ -493,6 +492,7 @@ leapster.cpp learnwin.cpp lee1214.cpp +lee1220.cpp lft.cpp lft_chiptune.cpp lft_craft.cpp @@ -506,7 +506,6 @@ lola8a.cpp lviv.cpp lwriter.cpp -lx_jg7425.cpp lynx.cpp m20.cpp m24.cpp @@ -783,8 +782,6 @@ qx10.cpp r9751.cpp radio86.cpp -rad_eu3a05.cpp -rad_eu3a14.cpp rainbow.cpp rambo.cpp ravens.cpp @@ -1036,7 +1033,7 @@ unistar.cpp univac.cpp unixpc.cpp -unkmandd.cpp +unk6502_st2xxx.cpp ut88.cpp uzebox.cpp v100.cpp @@ -1060,7 +1057,6 @@ vic20.cpp victor9k.cpp vidbrain.cpp -vii.cpp vip.cpp vis.cpp vixen.cpp @@ -1101,6 +1097,8 @@ x1twin.cpp x68k.cpp xavix.cpp +xavix_2000.cpp +xavix_2002.cpp xavix2.cpp xbase09.cpp xbox.cpp diff -Nru mame-0.223+dfsg.1/src/mame/nl.lst mame-0.224+dfsg.1/src/mame/nl.lst --- mame-0.223+dfsg.1/src/mame/nl.lst 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/nl.lst 2020-08-26 08:57:19.000000000 +0000 @@ -49,6 +49,18 @@ wotw // (c) 1981 wotwc // (c) 1981 +@source:carpolo.cpp +carpolo // (c) 1977 + +@source:starfire.cpp +fireone // (c) 1979 Exidy +starfir2 // (c) 1979 Exidy +starfire // Exidy [1979?] +starfirea // Exidy [1979?] + +@source:flyball.cpp +flyball + @source:galaxian.cpp 600 // GX353 (c) 1981 Konami amidar // GX337 (c) 1982 Konami @@ -306,6 +318,7 @@ gunfight // 597 [1975] Dave Nutting Associates / Midway gunfighto // 597 [1975] Dave Nutting Associates / Midway 280zzzap // 610 [1976] Dave Nutting Associates / Midway +lagunar // 622 [1977] Midway @source:palestra.cpp palestra @@ -322,6 +335,49 @@ popeyejo popeyehs +@source:segag80r.cpp +005 // (c) 1981 +astrob // (c) 1981 +astrob1 // (c) 1981 +astrob2 // (c) 1981 +astrob2a // (c) 1981 +astrob2b // (c) 1981 +astrobg // (c) 1981 +monsterb // (c) 1982 +monsterb2 // (c) 1982 +pignewt // (c) 1983 +pignewta // (c) 1983 +sindbadm // 834-5244 (c) 1983 Sega +spaceod // (c) 1981 +spaceod2 // (c) 1981 + +@source:segag80v.cpp +elim2 // (c) 1981 Gremlin +elim2a // (c) 1981 Gremlin +elim2c // (c) 1981 Gremlin +elim4 // (c) 1981 Gremlin +elim4p // (c) 1981 Gremlin +spacfury // (c) 1981 +spacfurya // no copyright notice +spacfuryb // no copyright notice +startrek // (c) 1982 +tacscan // (c) 1982 +zektor // (c) 1982 + +@source:zaxxon.cpp +congo // 605-5167 (c) 1983 (2 board stack) +congoa // 605-5167 (c) 1983 (3 board stack) +futspy // (c) 1984 +ixion // (c) 1983 +razmataz // modified 834-0213, 834-0214 (c) 1983 +szaxxon // (c) 1982 +tiptop // 605-5167 (c) 1983 (3 board stack) +zaxxon // (c) 1982 +zaxxon2 // (c) 1982 +zaxxon3 // (c) 1982 +zaxxonb // bootleg +zaxxonj // (c) 1982 + @source:segas16b.cpp aceattac // (c) 1988 (FD1094) //afightere @@ -465,6 +521,11 @@ wrestwar2 // (c) 1989 (FD1094) wrestwar2d // +@source:sspeedr.cpp +sspeedr // Midway + +@source:starcrus.cpp +starcrus @source:testpat.cpp tp1983 diff -Nru mame-0.223+dfsg.1/src/mame/video/apple2.cpp mame-0.224+dfsg.1/src/mame/video/apple2.cpp --- mame-0.223+dfsg.1/src/mame/video/apple2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/apple2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -118,6 +118,7 @@ save_item(NAME(m_GSborder)); save_item(NAME(m_newvideo)); save_item(NAME(m_monochrome)); + save_item(NAME(m_rgbmode)); save_item(NAME(m_shr_palette)); } @@ -136,6 +137,7 @@ m_80store = false; m_monohgr = false; m_newvideo = 0x01; + m_rgbmode = 3; // default to color DHGR } WRITE_LINE_MEMBER(a2_video_device::txt_w) @@ -174,6 +176,14 @@ { // select double hi-res screen().update_now(); + + // RGB cards shift in a mode bit on the rising edge + if ((m_dhires) && (state)) + { + m_rgbmode = (m_rgbmode << 1) & 3; + m_rgbmode |= m_80col ? 1 : 0; + } + m_dhires = !state; } @@ -453,7 +463,7 @@ switch (m_sysconfig & 0x03) { - case 0: fg = WHITE; break; + case 0: case 4: fg = WHITE; break; case 1: fg = WHITE; break; case 2: fg = GREEN; break; case 3: fg = ORANGE; break; @@ -570,7 +580,7 @@ switch (m_sysconfig & 0x03) { - case 0: fg = WHITE; break; + case 0: case 4: fg = WHITE; break; case 1: fg = WHITE; break; case 2: fg = GREEN; break; case 3: fg = ORANGE; break; @@ -750,13 +760,14 @@ int fg = 0; int bg = 0; + if (m_aux_ptr) + { + aux_page = m_aux_ptr; + } + if (m_80col) { start_address = 0x400; - if (m_aux_ptr) - { - aux_page = m_aux_ptr; - } } else { @@ -768,7 +779,7 @@ switch (m_sysconfig & 0x03) { - case 0: fg = WHITE; break; + case 0: case 4: fg = WHITE; break; case 1: fg = WHITE; break; case 2: fg = GREEN; break; case 3: fg = ORANGE; break; @@ -795,6 +806,13 @@ { /* calculate address */ address = start_address + ((((row/8) & 0x07) << 7) | (((row/8) & 0x18) * 5 + col)); + if (((m_sysconfig & 7) == 4) && (m_dhires)) + { + u8 tmp = aux_page[address]; + fg = tmp>>4; + bg = tmp & 0xf; + } + plot_text_character(bitmap, col * 14, row, 2, m_ram_ptr[address], m_char_ptr, m_char_size, fg, bg); } @@ -815,7 +833,7 @@ switch (m_sysconfig & 0x03) { - case 0: fg = WHITE; break; + case 0: case 4: fg = WHITE; break; case 1: fg = WHITE; break; case 2: fg = GREEN; break; case 3: fg = ORANGE; break; @@ -1027,6 +1045,12 @@ mon_type = 1; } + // IIgs $C021 monochrome HGR + if (m_monochrome & 0x80) + { + mon_type = 1; + } + switch (mon_type) { case 0: @@ -1225,6 +1249,8 @@ uint32_t w; int page = m_page2 ? 0x4000 : 0x2000; int mon_type = m_sysconfig & 0x03; + bool bIsRGB = ((m_sysconfig & 7) == 4); + bool bIsRGBMixed = ((bIsRGB) && (m_rgbmode == 1)); // IIgs force-monochrome-DHR setting if (m_newvideo & 0x20) @@ -1232,6 +1258,12 @@ mon_type = 1; } + // IIe RGB card monochrome DHR + if ((bIsRGB) && (m_rgbmode == 0)) + { + mon_type = 1; + } + /* sanity checks */ if (beginrow < cliprect.top()) beginrow = cliprect.top(); @@ -1265,19 +1297,96 @@ p = &bitmap.pix16(row); + // RGB DHR 160-wide mode + if ((bIsRGB) && (m_rgbmode == 2)) + { + mon_type = 4; + } + for (col = 0; col < 80; col++) { w = (((uint32_t) vram_row[col+0] & 0x7f) << 0) | (((uint32_t) vram_row[col+1] & 0x7f) << 7) | (((uint32_t) vram_row[col+2] & 0x7f) << 14); + /* + DHGR pixel layout: + column & 3 = 0 1 2 3 + nBBBAAAA nDDCCCCB nFEEEEDD nGGGGFFF + + n is don't care on the stock hardware's NTSC output. + + On RGB cards, in mixed mode (DHGR with special mode value == 1), n + controls if a pixel quad starting in that byte is color or monochrome. + Pixel quads A&B are controlled by n in byte 0, C&D by n in byte 1, + E&F by n in byte 2, and G by n in byte 3. + */ + switch (mon_type) { case 0: - for (b = 0; b < 7; b++) + // every 3rd column, the first pixel quad is controlled by the previous + // byte's MSB, because we always draw 2 quads per column. + if ((bIsRGBMixed) && ((col & 3) == 3)) { - v = m_dhires_artifact_map[((((w >> (b + 7-1)) & 0x0F) * 0x11) >> (((2-(col*7+b))) & 0x03)) & 0x0F]; - *(p++) = v; + uint32_t tw = (w >> 6); + + if (!(vram_row[col-1] & 0x80)) + { + for (b = 0; b < 4; b++) + { + v = (tw & 1); + tw >>= 1; + *(p++) = v ? WHITE : BLACK; + } + } + else + { + for (b = 0; b < 4; b++) + { + v = m_dhires_artifact_map[((((w >> (b + 7-1)) & 0x0F) * 0x11) >> (((2-(col*7+b))) & 0x03)) & 0x0F]; + *(p++) = v; + } + } + + if (!(vram_row[col] & 0x80)) + { + for (b = 4; b < 7; b++) + { + v = (tw & 1); + tw >>= 1; + *(p++) = v ? WHITE : BLACK; + } + } + else + { + for (b = 4; b < 7; b++) + { + v = m_dhires_artifact_map[((((w >> (b + 7-1)) & 0x0F) * 0x11) >> (((2-(col*7+b))) & 0x03)) & 0x0F]; + *(p++) = v; + } + } + } + else + { + if ((bIsRGBMixed) && !(vram_row[col] & 0x80)) + { + uint32_t tw = (w >> 6); + for (b = 0; b < 7; b++) + { + v = (tw & 1); + tw >>= 1; + *(p++) = v ? WHITE : BLACK; + } + } + else + { + for (b = 0; b < 7; b++) + { + v = m_dhires_artifact_map[((((w >> (b + 7-1)) & 0x0F) * 0x11) >> (((2-(col*7+b))) & 0x03)) & 0x0F]; + *(p++) = v; + } + } } break; @@ -1310,6 +1419,35 @@ *(p++) = v ? ORANGE : BLACK; } break; + + // RGB 160-wide mode (which has a much simpler VRAM layout) + case 4: + if (col == 0) + { + // Center the 480-wide image in the 560-wide display. + // Aspect ratio won't be perfect, but it's in range. + for (b = 0; b < 40; b++) + { + *(p++) = BLACK; + } + } + v = vram_row[col]; + *(p++) = v & 0xf; + *(p++) = v & 0xf; + *(p++) = v & 0xf; + v >>= 4; + *(p++) = v & 0xf; + *(p++) = v & 0xf; + *(p++) = v & 0xf; + break; + } + } + + if (mon_type == 4) + { + for (b = 0; b < 40; b++) + { + *(p++) = BLACK; } } } diff -Nru mame-0.223+dfsg.1/src/mame/video/apple2.h mame-0.224+dfsg.1/src/mame/video/apple2.h --- mame-0.223+dfsg.1/src/mame/video/apple2.h 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/apple2.h 2020-08-26 08:57:19.000000000 +0000 @@ -32,8 +32,8 @@ bool m_an2; bool m_80store; bool m_monohgr; - uint8_t m_GSfg, m_GSbg, m_GSborder, m_newvideo, m_monochrome; - uint32_t m_GSborder_colors[16], m_shr_palette[256]; + u8 m_GSfg, m_GSbg, m_GSborder, m_newvideo, m_monochrome, m_rgbmode; + u32 m_GSborder_colors[16], m_shr_palette[256]; std::unique_ptr m_8bit_graphics; std::unique_ptr m_hires_artifact_map; std::unique_ptr m_dhires_artifact_map; diff -Nru mame-0.223+dfsg.1/src/mame/video/btoads.cpp mame-0.224+dfsg.1/src/mame/video/btoads.cpp --- mame-0.223+dfsg.1/src/mame/video/btoads.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/btoads.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -121,25 +121,6 @@ /************************************* * - * Palette RAM - * - *************************************/ - -void btoads_state::paletteram_w(offs_t offset, uint16_t data) -{ - m_tlc34076->write(offset/2, data); -} - - -uint16_t btoads_state::paletteram_r(offs_t offset) -{ - return m_tlc34076->read(offset/2); -} - - - -/************************************* - * * Background video RAM * *************************************/ diff -Nru mame-0.223+dfsg.1/src/mame/video/dai.cpp mame-0.224+dfsg.1/src/mame/video/dai.cpp --- mame-0.223+dfsg.1/src/mame/video/dai.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/dai.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -9,7 +9,7 @@ Krzysztof Strzecha All video modes are emulated but not fully tested yet. - dai_state::screen_update_dai() function needs strong cleanup and optimalisation. + dai_state::screen_update() function needs strong cleanup and optimisation. ***************************************************************************/ @@ -47,12 +47,12 @@ palette.set_pen_colors(0, s_palette); } -uint32_t dai_state::screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t dai_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { address_space &space = m_maincpu->space(AS_PROGRAM); int i, j, k, l; - uint8_t* char_rom = memregion("gfx1")->base(); + uint8_t* char_rom = memregion("chargen")->base(); uint16_t dai_video_memory_start = 0xbfff; uint16_t dai_scan_lines = 604; /* scan lines of PAL tv */ diff -Nru mame-0.223+dfsg.1/src/mame/video/hec2hrp.cpp mame-0.224+dfsg.1/src/mame/video/hec2hrp.cpp --- mame-0.223+dfsg.1/src/mame/video/hec2hrp.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/hec2hrp.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -3,35 +3,7 @@ ///////////////////////////////////////////////////////////////////////////////// ///// Hector video ///////////////////////////////////////////////////////////////////////////////// -/* Hector 2HR+ - Victor - Hector 2HR - Hector HRX - Hector MX40c - Hector MX80c - Hector 1 - Interact - - 12/05/2009 Skeleton driver - Micko : mmicko@gmail.com - 31/06/2009 Video - Robbbert - - 29/10/2009 Update skeleton to functional machine - by yo_fr (jj.stac @ aliceadsl.fr) - - => add Keyboard, - => add color, - => add cassette, - => add sn76477 sound and 1bit sound, - => add joysticks (stick, pot, fire) - => add BR/HR switching - => add bank switch for HRX - => add device MX80c and bank switching for the ROM - Important note : the keyboard function has been taken from the - DChector project : http://dchector.free.fr/ made by DanielCoulom - (thanks Daniel) - TODO : Add the cartridge function, - Adjust the one shot and A/D timing (sn76477) -*/ + #include "emu.h" #include "includes/hec2hrp.h" @@ -39,7 +11,7 @@ #include "screen.h" -void hec2hrp_state::init_palette() +void hec2hrp_state::init_palette(palette_device &palette) { m_hector_color[0] = 0; // black m_hector_color[1] = 1; // red @@ -69,7 +41,6 @@ void hec2hrp_state::hector_hr(bitmap_ind16 &bitmap, uint8_t *page, int ymax, int yram) { - uint8_t *hector_color = m_hector_color; int sy = 0; int ma = 0; for (int y = 0; y <= ymax; y++) @@ -78,15 +49,22 @@ for (int x = ma; x < ma + yram; x++) { uint8_t gfx = *(page + x); - *pix++ = hector_color[(gfx >> 0) & 0x03]; - *pix++ = hector_color[(gfx >> 2) & 0x03]; - *pix++ = hector_color[(gfx >> 4) & 0x03]; - *pix++ = hector_color[(gfx >> 6) & 0x03]; + *pix++ = m_hector_color[BIT(gfx, 0, 2)]; + *pix++ = m_hector_color[BIT(gfx, 2, 2)]; + *pix++ = m_hector_color[BIT(gfx, 4, 2)]; + *pix++ = m_hector_color[BIT(gfx, 6, 2)]; } ma+=yram; } } +uint32_t hec2hrp_state::screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + screen.set_visible_area(0, 113, 0, 75); + hector_hr(bitmap, m_vram, 77, 32); + return 0; +} + void hec2hrp_state::hector_80c(bitmap_ind16 &bitmap, uint8_t *page, int ymax, int yram) { int sy = 0; @@ -97,46 +75,33 @@ for (int x = ma; x < ma + yram; x++) { uint8_t gfx = *(page + x); - *pix++ = (gfx & 0x01) ? 7 : 0; - *pix++ = (gfx & 0x02) ? 7 : 0; - *pix++ = (gfx & 0x04) ? 7 : 0; - *pix++ = (gfx & 0x08) ? 7 : 0; - *pix++ = (gfx & 0x10) ? 7 : 0; - *pix++ = (gfx & 0x20) ? 7 : 0; - *pix++ = (gfx & 0x40) ? 7 : 0; - *pix++ = (gfx & 0x80) ? 7 : 0; + for (u8 i = 0; i < 8; i++) + *pix++ = BIT(gfx, i) ? 7 : 0; } ma += yram; } } - -VIDEO_START_MEMBER(hec2hrp_state,hec2hrp) -{ - init_palette(); -} - uint32_t hec2hrp_state::screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t *videoram = m_videoram; - uint8_t *videoram_HR = m_hector_videoram; - if (m_hector_flag_hr==1) + if (m_hector_flag_hr) { - if (m_hector_flag_80c==0) + if (!m_hector_flag_80c) { screen.set_visible_area(0, 243, 0, 227); - hector_hr(bitmap , &videoram_HR[0], 227, 64); + hector_hr(bitmap , m_hector_vram, 227, 64); } else { screen.set_visible_area(0, 243*2, 0, 227); - hector_80c(bitmap , &videoram_HR[0], 227, 64); + hector_80c(bitmap , m_hector_vram, 227, 64); } } else { screen.set_visible_area(0, 113, 0, 75); - hector_hr(bitmap, videoram, 77, 32); + hector_hr(bitmap, m_vram, 77, 32); } return 0; } + diff -Nru mame-0.223+dfsg.1/src/mame/video/lviv.cpp mame-0.224+dfsg.1/src/mame/video/lviv.cpp --- mame-0.223+dfsg.1/src/mame/video/lviv.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/lviv.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -62,7 +62,7 @@ { for (int x = 0; x < 256; x += 4) { - const uint8_t data = m_video_ram[(y << 6) | (x >> 2)]; + const uint8_t data = m_vram[(y << 6) | (x >> 2)]; int pen = m_colortable[0][((data & 0x08) >> 3) | ((data & 0x80) >> (3+3))]; bitmap.pix16(y, x + 0) = pen; diff -Nru mame-0.223+dfsg.1/src/mame/video/renegade.cpp mame-0.224+dfsg.1/src/mame/video/renegade.cpp --- mame-0.223+dfsg.1/src/mame/video/renegade.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/renegade.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -64,6 +64,8 @@ m_fg_tilemap->set_transparent_pen(0); m_bg_tilemap->set_scrolldx(256, 0); + m_fg_tilemap->set_scrolldy(10, 10); + m_bg_tilemap->set_scrolldy(10, 10); save_item(NAME(m_scrollx)); } @@ -75,8 +77,8 @@ while (source < finish) { - // 224 matches reference (stage 1 boss in kuniokun is aligned with the train door) - int sy = 224 - source[0]; + // reference: stage 1 boss in kuniokun is aligned with the train door + int sy = 234 - source[0]; //if (sy >= 0) { @@ -96,7 +98,7 @@ if (flip_screen()) { sx = 240 - sx; - sy = 224 - sy; + sy = 260 - sy; xflip = !xflip; } diff -Nru mame-0.223+dfsg.1/src/mame/video/segag80v.cpp mame-0.224+dfsg.1/src/mame/video/segag80v.cpp --- mame-0.223+dfsg.1/src/mame/video/segag80v.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/segag80v.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -9,13 +9,17 @@ #include "emu.h" #include "includes/segag80v.h" -#define VECTOR_CLOCK 15468480 /* master clock */ -#define U34_CLOCK (VECTOR_CLOCK/3) /* clock for interrupt chain */ -#define VCL_CLOCK (U34_CLOCK/2) /* clock for vector generator */ -#define U51_CLOCK (VCL_CLOCK/16) /* clock for phase generator */ -#define IRQ_CLOCK (U34_CLOCK/0x1f788) /* 40Hz interrupt */ +#define VECTOR_CLOCK 15468480 // master clock +#define U34_CLOCK (VECTOR_CLOCK/3) // clock for interrupt chain +#define VCL_CLOCK (U34_CLOCK/2) // clock for vector generator +#define U51_CLOCK (VCL_CLOCK/16) // clock for phase generator +#define IRQ_CLOCK (U34_CLOCK/0x1f788) // 40Hz interrupt +static constexpr attoseconds_t VCL_ATTOS = HZ_TO_ATTOSECONDS(VCL_CLOCK); +static constexpr attoseconds_t U51_ATTOS = HZ_TO_ATTOSECONDS(U51_CLOCK); +static constexpr attoseconds_t IRQ_ATTOS = HZ_TO_ATTOSECONDS(IRQ_CLOCK); + /* @@ -73,247 +77,239 @@ A1-A8 = sum of VEC angle and SYM angle (low 8 bits) A9 = sum of bit 8 of VEC angle and SYM angle, plus 1 for phase 13 - */ -inline bool segag80v_state::adjust_xy(int rawx, int rawy, int *outx, int *outy) + +inline bool segag80v_state::adjust_xy(int rawx, int rawy, int &outx, int &outy) { bool clipped = false; - /* first apply the XOR at 0x200 */ - *outx = (rawx & 0x7ff) ^ 0x200; - *outy = (rawy & 0x7ff) ^ 0x200; - - /* apply clipping logic to X */ - if ((*outx & 0x600) == 0x200) - *outx = 0x000, clipped = true; - else if ((*outx & 0x600) == 0x400) - *outx = 0x3ff, clipped = true; + // first apply the XOR at 0x200 + outx = (rawx & 0x7ff) ^ 0x200; + outy = (rawy & 0x7ff) ^ 0x200; + + // apply clipping logic to X + if ((outx & 0x600) == 0x200) + outx = 0x000, clipped = true; + else if ((outx & 0x600) == 0x400) + outx = 0x3ff, clipped = true; else - *outx &= 0x3ff; + outx &= 0x3ff; - /* apply clipping logic to Y */ - if ((*outy & 0x600) == 0x200) - *outy = 0x000, clipped = true; - else if ((*outy & 0x600) == 0x400) - *outy = 0x3ff, clipped = true; + // apply clipping logic to Y + if ((outy & 0x600) == 0x200) + outy = 0x000, clipped = true; + else if ((outy & 0x600) == 0x400) + outy = 0x3ff, clipped = true; else - *outy &= 0x3ff; + outy &= 0x3ff; - /* convert into .16 values */ - *outx = (*outx - (m_min_x - 512)) << 16; - *outy = (*outy - (m_min_y - 512)) << 16; + // convert into .16 values + outx = (outx - (m_min_x - 512)) << 16; + outy = (outy - (m_min_y - 512)) << 16; return clipped; } void segag80v_state::sega_generate_vector_list() { - uint8_t *sintable = memregion("proms")->base(); - double total_time = 1.0 / (double)IRQ_CLOCK; - uint16_t symaddr = 0; - uint8_t *vectorram = m_vectorram; + attoseconds_t time_remaining = IRQ_ATTOS; + u8 *sintable = memregion("proms")->base(); + u8 *vectorram = m_vectorram; + u16 symaddr = 0; m_vector->clear_list(); - /* Loop until we run out of time. */ - while (total_time > 0) + // Loop until we run out of time. + while (time_remaining > 0) { - uint16_t curx, cury, xaccum, yaccum; - uint16_t vecaddr, symangle; - uint8_t scale, draw; - - /* The "draw" flag is clocked at the end of phase 0. */ - draw = vectorram[symaddr++ & 0xfff]; - - /* The low byte of the X coordinate is latched into the */ - /* up/down counters at U15/U16 during phase 1. */ - curx = vectorram[symaddr++ & 0xfff]; - - /* The low 3 bits of the high byte of the X coordinate are */ - /* latched into the up/down counter at U17 during phase 2. */ - /* Bit 2 of the input is latched as both bit 2 and 3. */ + // The "draw" flag is clocked at the end of phase 0. + u8 draw = vectorram[symaddr++ & 0xfff]; + + // The low byte of the X coordinate is latched into the + // up/down counters at U15/U16 during phase 1. + u16 curx = vectorram[symaddr++ & 0xfff]; + + // The low 3 bits of the high byte of the X coordinate are + // latched into the up/down counter at U17 during phase 2. + // Bit 2 of the input is latched as both bit 2 and 3. curx |= (vectorram[symaddr++ & 0xfff] & 7) << 8; curx |= (curx << 1) & 0x800; - /* The low byte of the Y coordinate is latched into the */ - /* up/down counters at U18/U19 during phase 3. */ - cury = vectorram[symaddr++ & 0xfff]; - - /* The low 3 bits of the high byte of the X coordinate are */ - /* latched into the up/down counter at U17 during phase 4. */ - /* Bit 2 of the input is latched as both bit 2 and 3. */ + // The low byte of the Y coordinate is latched into the + // up/down counters at U18/U19 during phase 3. + u16 cury = vectorram[symaddr++ & 0xfff]; + + // The low 3 bits of the high byte of the X coordinate are + // latched into the up/down counter at U17 during phase 4. + // Bit 2 of the input is latched as both bit 2 and 3. cury |= (vectorram[symaddr++ & 0xfff] & 7) << 8; cury |= (cury << 1) & 0x800; - /* The low byte of the vector address is latched into the */ - /* counters at U10/U11 during phase 5. */ - vecaddr = vectorram[symaddr++ & 0xfff]; + // The low byte of the vector address is latched into the + // counters at U10/U11 during phase 5. + u16 vecaddr = vectorram[symaddr++ & 0xfff]; - /* The low 4 bits of the high byte of the vector address is */ - /* latched into the counter at U12 during phase 6. */ + // The low 4 bits of the high byte of the vector address is + // latched into the counter at U12 during phase 6. vecaddr |= (vectorram[symaddr++ & 0xfff] & 0xf) << 8; - /* The low byte of the symbol angle is latched into the tri- */ - /* state flip flop at U55 at the end of phase 7. */ - symangle = vectorram[symaddr++ & 0xfff]; + // The low byte of the symbol angle is latched into the tri- + // state flip flop at U55 at the end of phase 7. + u16 symangle = vectorram[symaddr++ & 0xfff]; - /* The low 2 bits of the high byte of the symbol angle are */ - /* latched into flip flops at U26 at the end of phase 8. */ + // The low 2 bits of the high byte of the symbol angle are + // latched into flip flops at U26 at the end of phase 8. symangle |= (vectorram[symaddr++ & 0xfff] & 3) << 8; - /* The scale is latched in phase 9 as the X input to the */ - /* 25LS14 multiplier at U8. */ - scale = vectorram[symaddr++ & 0xfff]; + // The scale is latched in phase 9 as the X input to the + // 25LS14 multiplier at U8. + u8 scale = vectorram[symaddr++ & 0xfff]; - /* Account for the 10 phases so far. */ - total_time -= 10.0 / (double)U51_CLOCK; + // Account for the 10 phases so far. + time_remaining -= 10 * U51_ATTOS; - /* Skip the rest if we're not drawing this symbol. */ + // Skip the rest if we're not drawing this symbol. if (draw & 1) { - int adjx, adjy, clipped; - - /* Add a starting point to the vector list. */ - clipped = adjust_xy(curx, cury, &adjx, &adjy); + // Add a starting point to the vector list. + int adjx, adjy; + bool clipped = adjust_xy(curx, cury, adjx, adjy); if (!clipped) m_vector->add_point(adjx, adjy, 0, 0); - /* Loop until we run out of time. */ - while (total_time > 0) + // Loop until we run out of time. + while (time_remaining > 0) { - uint16_t vecangle, length, deltax, deltay; - uint8_t attrib, intensity; - uint32_t color; - - /* The 'attribute' byte is latched at the end of phase 10 into */ - /* the tri-state flip flop at U2. The low bit controls whether */ - /* or not the beam is enabled. Bits 1-6 control the RGB color */ - /* (2 bits per component). In addition, bit 7 of this value is */ - /* latched into U52, which controls the pre-load value for the */ - /* phase generator. If bit 7 is high, then the phase generator */ - /* will reset back to 0 and draw a new symbol; if bit 7 is low */ - /* the phase generator will reset back to 10 and draw another */ - /* vector. */ - attrib = vectorram[vecaddr++ & 0xfff]; - - /* The length of the vector is loaded into the shift registers */ - /* at U6/U7 during phase 11. During phase 12, the 25LS14 */ - /* multiplier at U8 is used to multiply the length by the */ - /* scale that was loaded during phase 9. The length is clocked */ - /* bit by bit out of U6/U7 and the result is clocked into the */ - /* other side. After the multiply, the 9 MSBs are loaded into */ - /* the counter chain at U15/16/17 and are used to count how */ - /* long to draw the vector. */ - length = (vectorram[vecaddr++ & 0xfff] * scale) >> 7; - - /* The vector angle low byte is latched at the end of phase 12 */ - /* into the tri-state flip flop at U56. */ - vecangle = vectorram[vecaddr++ & 0xfff]; - - /* The vector angle high byte is preset on the CD bus during */ - /* phases 13 and 14, and is used as inputs to the adder at */ - /* U46. */ + // The 'attribute' byte is latched at the end of phase 10 into + // the tri-state flip flop at U2. The low bit controls whether + // or not the beam is enabled. Bits 1-6 control the RGB color + // (2 bits per component). In addition, bit 7 of this value is + // latched into U52, which controls the pre-load value for the + // phase generator. If bit 7 is high, then the phase generator + // will reset back to 0 and draw a new symbol; if bit 7 is low + // the phase generator will reset back to 10 and draw another + // vector. + u8 attrib = vectorram[vecaddr++ & 0xfff]; + + // The length of the vector is loaded into the shift registers + // at U6/U7 during phase 11. During phase 12, the 25LS14 + // multiplier at U8 is used to multiply the length by the + // scale that was loaded during phase 9. The length is clocked + // bit by bit out of U6/U7 and the result is clocked into the + // other side. After the multiply, the 9 MSBs are loaded into + // the counter chain at U15/16/17 and are used to count how + // long to draw the vector. + u16 length = (vectorram[vecaddr++ & 0xfff] * scale) >> 7; + + // The vector angle low byte is latched at the end of phase 12 + // into the tri-state flip flop at U56. + u16 vecangle = vectorram[vecaddr++ & 0xfff]; + + // The vector angle high byte is preset on the CD bus during + // phases 13 and 14, and is used as inputs to the adder at + // U46. vecangle |= (vectorram[vecaddr++ & 0xfff] & 3) << 8; - /* The X increment value is looked up first (phase 13). The */ - /* sum of the latched symbol angle and the vector angle is */ - /* used as input to the PROM at U39. A0 is tied to ground. */ - /* A1-A9 map to bits 0-8 of the summed angles. The output from */ - /* the PROM is latched into U48. */ - deltax = sintable[((vecangle + symangle) & 0x1ff) << 1]; - - /* The Y increment value is looked up second (phase 14). The */ - /* angle sum is used once again as the input to the PROM, but */ - /* this time an additional 0x100 is effectively added to it */ - /* before it is used; this separates sin from cos. The output */ - /* from the PROM is latched into U49. */ - deltay = sintable[((vecangle + symangle + 0x100) & 0x1ff) << 1]; - - /* Account for the 4 phases for data fetching. */ - total_time -= 4.0 / (double)U51_CLOCK; - - /* Compute color/intensity values from the attributes */ - color = vector_device::color222((attrib >> 1) & 0x3f); + // The X increment value is looked up first (phase 13). The + // sum of the latched symbol angle and the vector angle is + // used as input to the PROM at U39. A0 is tied to ground. + // A1-A9 map to bits 0-8 of the summed angles. The output from + // the PROM is latched into U48. + u16 deltax = sintable[((vecangle + symangle) & 0x1ff) << 1]; + + // The Y increment value is looked up second (phase 14). The + // angle sum is used once again as the input to the PROM, but + // this time an additional 0x100 is effectively added to it + // before it is used; this separates sin from cos. The output + // from the PROM is latched into U49. + u16 deltay = sintable[((vecangle + symangle + 0x100) & 0x1ff) << 1]; + + // Account for the 4 phases for data fetching. + time_remaining -= 4 * U51_ATTOS; + + // Compute color/intensity values from the attributes + u32 color = vector_device::color222((attrib >> 1) & 0x3f); + u8 intensity = 0; if ((attrib & 1) && color) intensity = 0xff; - else - intensity = 0; - /* Loop over the length of the vector. */ - clipped = adjust_xy(curx, cury, &adjx, &adjy); - xaccum = yaccum = 0; - while (length-- != 0 && total_time > 0) + // Loop over the length of the vector. + clipped = adjust_xy(curx, cury, adjx, adjy); + u16 xaccum = 0; + u16 yaccum = 0; + while (length-- != 0 && time_remaining > 0) { - int newclip; - - /* The adders at U44/U45 are used as X accumulators. The value */ - /* from U48 is repeatedly added to itself here. The carry out */ - /* of bit 8 clocks the up/down counters at U15/U16/U17. Bit 7 */ - /* of the input value from U48 is used as a carry in to round */ - /* small values downward and larger values upward. */ + // The adders at U44/U45 are used as X accumulators. The value + // from U48 is repeatedly added to itself here. The carry out + // of bit 8 clocks the up/down counters at U15/U16/U17. Bit 7 + // of the input value from U48 is used as a carry in to round + // small values downward and larger values upward. xaccum += deltax + (deltax >> 7); - /* Bit 9 of the summed angles controls the direction the up/ */ - /* down counters at U15/U16/U17. */ + // Bit 9 of the summed angles controls the direction the up/ + // down counters at U15/U16/U17. if (((vecangle + symangle) & 0x200) == 0) curx += xaccum >> 8; else curx -= xaccum >> 8; xaccum &= 0xff; - /* The adders at U46/U47 are used as Y accumulators. The value */ - /* from U49 is repeatedly added to itself here. The carry out */ - /* of bit 8 clocks the up/down counters at U18/U19/U20. Bit 7 */ - /* of the input value from U49 is used as a carry in to round */ - /* small values downward and larger values upward. */ + // The adders at U46/U47 are used as Y accumulators. The value + // from U49 is repeatedly added to itself here. The carry out + // of bit 8 clocks the up/down counters at U18/U19/U20. Bit 7 + // of the input value from U49 is used as a carry in to round + // small values downward and larger values upward. yaccum += deltay + (deltay >> 7); - /* Bit 9 of the summed angles controls the direction the up/ */ - /* down counters at U18/U19/U20. */ + // Bit 9 of the summed angles controls the direction the up/ + // down counters at U18/U19/U20. if (((vecangle + symangle + 0x100) & 0x200) == 0) cury += yaccum >> 8; else cury -= yaccum >> 8; yaccum &= 0xff; - /* Apply the clipping from the DAC circuit. If the values clip */ - /* the beam is turned off, but the computations continue right */ - /* on going. */ - newclip = adjust_xy(curx, cury, &adjx, &adjy); + // Apply the clipping from the DAC circuit. If the values clip + // the beam is turned off, but the computations continue right + // on going. + bool newclip = adjust_xy(curx, cury, adjx, adjy); if (newclip != clipped) { - /* if we're just becoming unclipped, add an empty point */ + // if we're just becoming unclipped, add an empty point if (!newclip) m_vector->add_point(adjx, adjy, 0, 0); - /* otherwise, add a colored point */ + // otherwise, add a colored point else m_vector->add_point(adjx, adjy, color, intensity); } clipped = newclip; - /* account for vector drawing time */ - total_time -= 1.0 / (double)VCL_CLOCK; + // account for vector drawing time + time_remaining -= VCL_ATTOS; } - /* We're done; if we are not clipped, add a final point. */ + // We're done; if we are not clipped, add a final point. if (!clipped) m_vector->add_point(adjx, adjy, color, intensity); - /* if the high bit of the attribute is set, we break out of */ - /* this loop and fetch another symbol */ + // if the high bit of the attribute is set, we break out of + // this loop and fetch another symbol if (attrib & 0x80) break; } } - /* if the high bit of the draw flag is set, we break out of this loop */ - /* and stop the rendering altogether for this frame. */ + // if the high bit of the draw flag is set, we break out of this loop + // and stop the rendering altogether for this frame. if (draw & 0x80) break; } + + // set the drawing end time for this frame + m_draw_end_time = machine().scheduler().time() + attotime(0, IRQ_ATTOS - time_remaining); } @@ -328,12 +324,12 @@ if (!m_vectorram.bytes()) throw emu_fatalerror("segag80v_state::video_start: !vectorram.bytes()"); - m_min_x =m_screen->visible_area().min_x; - m_min_y =m_screen->visible_area().min_y; + m_min_x = m_screen->visible_area().min_x; + m_min_y = m_screen->visible_area().min_y; } -uint32_t segag80v_state::screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +u32 segag80v_state::screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { sega_generate_vector_list(); m_vector->screen_update(screen, bitmap, cliprect); diff -Nru mame-0.223+dfsg.1/src/mame/video/seta001.cpp mame-0.224+dfsg.1/src/mame/video/seta001.cpp --- mame-0.223+dfsg.1/src/mame/video/seta001.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/seta001.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -27,7 +27,7 @@ TODO: use getter callbacks in drivers for spriterams rather than allocating memory here, then we won't have to allocate extra memory for seta.cpp games which - appear to have 0x800 bytes of RAM that isn't connceted to the sprite chip + appear to have 0x800 bytes of RAM that isn't connected to the sprite chip between the banks. */ diff -Nru mame-0.223+dfsg.1/src/mame/video/sgi_gr1.cpp mame-0.224+dfsg.1/src/mame/video/sgi_gr1.cpp --- mame-0.223+dfsg.1/src/mame/video/sgi_gr1.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/sgi_gr1.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -217,6 +217,7 @@ m_dr4 = DR4_MEGOPT; m_fifo.clear(); + m_int_fifo_cb(CLEAR_LINE); } u8 sgi_gr1_device::dr0_r() diff -Nru mame-0.223+dfsg.1/src/mame/video/sspeedr.cpp mame-0.224+dfsg.1/src/mame/video/sspeedr.cpp --- mame-0.223+dfsg.1/src/mame/video/sspeedr.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/sspeedr.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -10,73 +10,73 @@ #include "includes/sspeedr.h" -void sspeedr_state::sspeedr_driver_horz_w(uint8_t data) +void sspeedr_state::driver_horz_w(uint8_t data) { m_driver_horz = (m_driver_horz & 0x100) | data; } -void sspeedr_state::sspeedr_driver_horz_2_w(uint8_t data) +void sspeedr_state::driver_horz_2_w(uint8_t data) { m_driver_horz = (m_driver_horz & 0xff) | ((data & 1) << 8); } -void sspeedr_state::sspeedr_driver_vert_w(uint8_t data) +void sspeedr_state::driver_vert_w(uint8_t data) { m_driver_vert = data; } -void sspeedr_state::sspeedr_driver_pic_w(uint8_t data) +void sspeedr_state::driver_pic_w(uint8_t data) { m_driver_pic = data & 0x1f; } -void sspeedr_state::sspeedr_drones_horz_w(uint8_t data) +void sspeedr_state::drones_horz_w(uint8_t data) { m_drones_horz = (m_drones_horz & 0x100) | data; } -void sspeedr_state::sspeedr_drones_horz_2_w(uint8_t data) +void sspeedr_state::drones_horz_2_w(uint8_t data) { m_drones_horz = (m_drones_horz & 0xff) | ((data & 1) << 8); } -void sspeedr_state::sspeedr_drones_mask_w(uint8_t data) +void sspeedr_state::drones_mask_w(uint8_t data) { m_drones_mask = data & 0x3f; } -void sspeedr_state::sspeedr_drones_vert_w(offs_t offset, uint8_t data) +void sspeedr_state::drones_vert_w(offs_t offset, uint8_t data) { m_drones_vert[offset] = data; } -void sspeedr_state::sspeedr_track_horz_w(uint8_t data) +void sspeedr_state::track_horz_w(uint8_t data) { m_track_horz = (m_track_horz & 0x100) | data; } -void sspeedr_state::sspeedr_track_horz_2_w(uint8_t data) +void sspeedr_state::track_horz_2_w(uint8_t data) { m_track_horz = (m_track_horz & 0xff) | ((data & 1) << 8); } -void sspeedr_state::sspeedr_track_vert_w(offs_t offset, uint8_t data) +void sspeedr_state::track_vert_w(offs_t offset, uint8_t data) { m_track_vert[offset] = data & 0x7f; } -void sspeedr_state::sspeedr_track_ice_w(uint8_t data) +void sspeedr_state::track_ice_w(uint8_t data) { m_track_ice = data & 0x07; } @@ -84,12 +84,7 @@ void sspeedr_state::draw_track(bitmap_ind16 &bitmap) { - const uint8_t* p = memregion("gfx3")->base(); - - int x; - int y; - - for (x = 0; x < 376; x++) + for (int x = 0; x < 376; x++) { unsigned counter_x = x + m_track_horz + 0x50; @@ -116,9 +111,9 @@ counter_x -= 0x1c8; } - y = 0; + int y = 0; - /* upper landscape */ + // upper landscape for (; y < m_track_vert[0]; y++) { @@ -131,22 +126,22 @@ if (counter_x & 2) { - bitmap.pix16(y, x) = p[offset] / 16; + bitmap.pix16(y, x) = m_track[offset] / 16; } else { - bitmap.pix16(y, x) = p[offset] % 16; + bitmap.pix16(y, x) = m_track[offset] % 16; } } - /* street */ + // street for (; y < 128 + m_track_vert[1]; y++) { bitmap.pix16(y, x) = flag ? 15 : 0; } - /* lower landscape */ + // lower landscape for (; y < 248; y++) { @@ -159,11 +154,11 @@ if (counter_x & 2) { - bitmap.pix16(y, x) = p[offset] / 16; + bitmap.pix16(y, x) = m_track[offset] / 16; } else { - bitmap.pix16(y, x) = p[offset] % 16; + bitmap.pix16(y, x) = m_track[offset] % 16; } } } @@ -177,26 +172,21 @@ 0xf, 0x4, 0x3, 0x9, 0x7, 0xc }; - int i; - - for (i = 0; i < 6; i++) + for (int i = 0; i < 6; i++) { - int x; - int y; - if ((m_drones_mask >> i) & 1) { continue; } - x = (code[i] << 5) - m_drones_horz - 0x50; + int x = (code[i] << 5) - m_drones_horz - 0x50; if (x <= -32) { x += 0x1c8; } - y = 0xf0 - m_drones_vert[i >> 1]; + int y = 0xf0 - m_drones_vert[i >> 1]; m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, @@ -211,22 +201,19 @@ void sspeedr_state::draw_driver(bitmap_ind16 &bitmap, const rectangle &cliprect) { - int x; - int y; - if (!(m_driver_pic & 0x10)) { return; } - x = 0x1e0 - m_driver_horz - 0x50; + int x = 0x1e0 - m_driver_horz - 0x50; if (x <= -32) { x += 0x1c8; } - y = 0xf0 - m_driver_vert; + int y = 0xf0 - m_driver_vert; m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, @@ -241,10 +228,23 @@ void sspeedr_state::video_start() { m_toggle = 0; + + save_item(NAME(m_led_time)); + save_item(NAME(m_led_score)); + save_item(NAME(m_toggle)); + save_item(NAME(m_driver_horz)); + save_item(NAME(m_driver_vert)); + save_item(NAME(m_driver_pic)); + save_item(NAME(m_drones_horz)); + save_item(NAME(m_drones_vert)); + save_item(NAME(m_drones_mask)); + save_item(NAME(m_track_horz)); + save_item(NAME(m_track_vert)); + save_item(NAME(m_track_ice)); } -uint32_t sspeedr_state::screen_update_sspeedr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t sspeedr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { draw_track(bitmap); draw_drones(bitmap, cliprect); @@ -253,7 +253,7 @@ } -WRITE_LINE_MEMBER(sspeedr_state::screen_vblank_sspeedr) +WRITE_LINE_MEMBER(sspeedr_state::screen_vblank) { // rising edge if (state) diff -Nru mame-0.223+dfsg.1/src/mame/video/stactics.cpp mame-0.224+dfsg.1/src/mame/video/stactics.cpp --- mame-0.223+dfsg.1/src/mame/video/stactics.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/stactics.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -430,10 +430,7 @@ { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_video_attributes(VIDEO_ALWAYS_UPDATE); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(32*8, 32*8); - screen.set_visarea(0*8, 32*8-1, 0*8, 30*8-1); + screen.set_raw(15.46848_MHz_XTAL / 3, 328, 0, 256, 262, 0, 232); screen.set_screen_update(FUNC(stactics_state::screen_update)); screen.set_palette("palette"); diff -Nru mame-0.223+dfsg.1/src/mame/video/starcrus.cpp mame-0.224+dfsg.1/src/mame/video/starcrus.cpp --- mame-0.223+dfsg.1/src/mame/video/starcrus.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/starcrus.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -40,40 +40,13 @@ save_item(NAME(m_p2_sprite)); save_item(NAME(m_s1_sprite)); save_item(NAME(m_s2_sprite)); - save_item(NAME(m_engine1_on)); - save_item(NAME(m_engine2_on)); - save_item(NAME(m_explode1_on)); - save_item(NAME(m_explode2_on)); - save_item(NAME(m_launch1_on)); - save_item(NAME(m_launch2_on)); save_item(NAME(m_collision_reg)); - save_item(NAME(m_engine_sound_playing)); - save_item(NAME(m_explode_sound_playing)); - save_item(NAME(m_launch1_sound_playing)); - save_item(NAME(m_launch2_sound_playing)); } void starcrus_state::ship_parm_1_w(uint8_t data) { - m_s1_sprite = data&0x1f; - m_engine1_on = ((data&0x20)>>5)^0x01; - - if (m_engine1_on || m_engine2_on) - { - if (m_engine_sound_playing == 0) - { - m_engine_sound_playing = 1; - m_samples->start(0, 0, true); /* engine sample */ - } - } - else - { - if (m_engine_sound_playing == 1) - { - m_engine_sound_playing = 0; - m_samples->stop(0); - } - } + m_s1_sprite = data & 0x1f; + m_engine[0]->write_line(BIT(data, 5)); } void starcrus_state::ship_parm_2_w(uint8_t data) @@ -81,99 +54,21 @@ m_s2_sprite = data & 0x1f; m_led = !BIT(data, 7); /* game over lamp */ machine().bookkeeping().coin_counter_w(0, ((data & 0x40) >> 6) ^ 0x01); /* coin counter */ - m_engine2_on = ((data & 0x20) >> 5) ^ 0x01; - - if (m_engine1_on || m_engine2_on) - { - if (m_engine_sound_playing == 0) - { - m_engine_sound_playing = 1; - m_samples->start(0, 0, true); /* engine sample */ - } - } - else - { - if (m_engine_sound_playing == 1) - { - m_engine_sound_playing = 0; - m_samples->stop(0); - } - } - + m_engine[1]->write_line(BIT(data, 5)); } void starcrus_state::proj_parm_1_w(uint8_t data) { m_p1_sprite = data & 0x0f; - m_launch1_on = ((data & 0x20) >> 5) ^ 0x01; - m_explode1_on = ((data & 0x10) >> 4) ^ 0x01; - - if (m_explode1_on || m_explode2_on) - { - if (m_explode_sound_playing == 0) - { - m_explode_sound_playing = 1; - m_samples->start(1, 1, true); /* explosion initial sample */ - } - } - else - { - if (m_explode_sound_playing == 1) - { - m_explode_sound_playing = 0; - m_samples->start(1,2); /* explosion ending sample */ - } - } - - if (m_launch1_on) - { - if (m_launch1_sound_playing == 0) - { - m_launch1_sound_playing = 1; - m_samples->start(2,3); /* launch sample */ - } - } - else - { - m_launch1_sound_playing = 0; - } + m_launch[0]->write_line(BIT(data, 5)); + m_explode[0]->write_line(BIT(data, 4)); } void starcrus_state::proj_parm_2_w(uint8_t data) { m_p2_sprite = data & 0x0f; - m_launch2_on = ((data & 0x20) >> 5) ^ 0x01; - m_explode2_on = ((data & 0x10) >> 4) ^ 0x01; - - if (m_explode1_on || m_explode2_on) - { - if (m_explode_sound_playing == 0) - { - m_explode_sound_playing = 1; - m_samples->start(1, 1, true); /* explosion initial sample */ - } - } - else - { - if (m_explode_sound_playing == 1) - { - m_explode_sound_playing = 0; - m_samples->start(1,2); /* explosion ending sample */ - } - } - - if (m_launch2_on) - { - if (m_launch2_sound_playing == 0) - { - m_launch2_sound_playing = 1; - m_samples->start(3,3); /* launch sample */ - } - } - else - { - m_launch2_sound_playing = 0; - } + m_launch[1]->write_line(BIT(data, 5)); + m_explode[1]->write_line(BIT(data, 4)); } int starcrus_state::collision_check_s1s2() diff -Nru mame-0.223+dfsg.1/src/mame/video/starfire.cpp mame-0.224+dfsg.1/src/mame/video/starfire.cpp --- mame-0.223+dfsg.1/src/mame/video/starfire.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/starfire.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -17,17 +17,17 @@ * *************************************/ -void starfire_state::video_start() +void starfire_base_state::video_start() { - m_screen->register_screen_bitmap(m_starfire_screen); - m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(starfire_state::starfire_scanline_callback),this)); + m_screen->register_screen_bitmap(m_screen_bitmap); + m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(starfire_base_state::scanline_callback),this)); m_scanline_timer->adjust(m_screen->time_until_pos(STARFIRE_VBEND), STARFIRE_VBEND); /* register for state saving */ - save_item(NAME(m_starfire_vidctrl)); - save_item(NAME(m_starfire_vidctrl1)); - save_item(NAME(m_starfire_color)); - save_item(NAME(m_starfire_colors)); + save_item(NAME(m_vidctrl)); + save_item(NAME(m_vidctrl1)); + save_item(NAME(m_color)); + save_item(NAME(m_colors)); } @@ -37,7 +37,7 @@ * *************************************/ -void starfire_state::starfire_colorram_w(offs_t offset, uint8_t data) +void starfire_base_state::colorram_w(offs_t offset, uint8_t data) { /* handle writes to the pseudo-color RAM */ if ((offset & 0xe0) == 0) @@ -45,19 +45,19 @@ int palette_index = (offset & 0x1f) | ((offset & 0x200) >> 4); /* set RAM regardless */ - int cl = (m_starfire_vidctrl1 & 0x80) ? m_starfire_color : (data & 0x1f); + int cl = (m_vidctrl1 & 0x80) ? m_color : (data & 0x1f); int cr = (data >> 5) | ((offset & 0x100) >> 5); - cr |= (m_starfire_vidctrl1 & 0x80) ? (m_starfire_color & 0x10) : (data & 0x10); + cr |= (m_vidctrl1 & 0x80) ? (m_color & 0x10) : (data & 0x10); - m_starfire_colorram[offset & ~0x100] = cl; - m_starfire_colorram[offset | 0x100] = cr; + m_colorram[offset & ~0x100] = cl; + m_colorram[offset | 0x100] = cr; - m_starfire_color = cl; + m_color = cl; /* don't modify the palette unless the TRANS bit is set */ - if (m_starfire_vidctrl1 & 0x40) + if (m_vidctrl1 & 0x40) { - m_starfire_colors[palette_index] = ((cl & 0x3) << 7) | ((cr & 0xf) << 3) | ((cl & 0x1c) >> 2); + m_colors[palette_index] = ((cl & 0x3) << 7) | ((cr & 0xf) << 3) | ((cl & 0x1c) >> 2); } } @@ -65,30 +65,30 @@ else { /* set RAM based on CDRM */ - m_starfire_colorram[offset] = (m_starfire_vidctrl1 & 0x80) ? m_starfire_color : (data & 0x1f); - m_starfire_color = (m_starfire_vidctrl1 & 0x80) ? m_starfire_color : (data & 0x1f); + m_colorram[offset] = (m_vidctrl1 & 0x80) ? m_color : (data & 0x1f); + m_color = (m_vidctrl1 & 0x80) ? m_color : (data & 0x1f); } } -uint8_t starfire_state::starfire_colorram_r(offs_t offset) +uint8_t starfire_base_state::colorram_r(offs_t offset) { /* handle writes to the pseudo-color RAM, which also happen on reads */ if ((offset & 0xe0) == 0) { int palette_index = (offset & 0x1f) | ((offset & 0x200) >> 4); - int cl = m_starfire_colorram[offset & ~0x100]; - int cr = m_starfire_colorram[offset | 0x100]; + int cl = m_colorram[offset & ~0x100]; + int cr = m_colorram[offset | 0x100]; /* don't modify the palette unless the TRANS bit is set */ - if (m_starfire_vidctrl1 & 0x40) + if (m_vidctrl1 & 0x40) { - m_starfire_colors[palette_index] = ((cl & 0x3) << 7) | ((cr & 0xf) << 3) | ((cl & 0x1c) >> 2); + m_colors[palette_index] = ((cl & 0x3) << 7) | ((cr & 0xf) << 3) | ((cl & 0x1c) >> 2); } return cl | ((cr & 0x7) << 5); } - return m_starfire_colorram[offset]; + return m_colorram[offset]; } /************************************* @@ -97,26 +97,26 @@ * *************************************/ -void starfire_state::starfire_videoram_w(offs_t offset, uint8_t data) +void starfire_base_state::videoram_w(offs_t offset, uint8_t data) { int sh, lr, dm, ds, mask, d0, dalu; int offset1 = offset & 0x1fff; int offset2 = (offset + 0x100) & 0x1fff; /* PROT */ - if (!(offset & 0xe0) && !(m_starfire_vidctrl1 & 0x20)) + if (!(offset & 0xe0) && !(m_vidctrl1 & 0x20)) return; /* selector 6A */ if (offset & 0x2000) { - sh = (m_starfire_vidctrl >> 1) & 0x07; - lr = m_starfire_vidctrl & 0x01; + sh = (m_vidctrl >> 1) & 0x07; + lr = m_vidctrl & 0x01; } else { - sh = (m_starfire_vidctrl >> 5) & 0x07; - lr = (m_starfire_vidctrl >> 4) & 0x01; + sh = (m_vidctrl >> 5) & 0x07; + lr = (m_vidctrl >> 4) & 0x01; } /* mirror bits 5B/5C/5D/5E */ @@ -132,18 +132,18 @@ /* ROLL */ if ((offset & 0x1f00) == 0x1f00) { - if (m_starfire_vidctrl1 & 0x10) + if (m_vidctrl1 & 0x10) mask &= 0x00ff; else mask &= 0xff00; } /* ALU 8B/8D */ - d0 = (m_starfire_videoram[offset1] << 8) | m_starfire_videoram[offset2]; + d0 = (m_videoram[offset1] << 8) | m_videoram[offset2]; dalu = d0 & ~mask; d0 &= mask; ds &= mask; - switch (~m_starfire_vidctrl1 & 15) + switch (~m_vidctrl1 & 15) { case 0: dalu |= ds ^ mask; break; case 1: dalu |= (ds | d0) ^ mask; break; @@ -164,20 +164,20 @@ } /* final output */ - m_starfire_videoram[offset1] = dalu >> 8; - m_starfire_videoram[offset2] = dalu; + m_videoram[offset1] = dalu >> 8; + m_videoram[offset2] = dalu; /* color output */ - if (!(offset & 0x2000) && !(m_starfire_vidctrl1 & 0x80)) + if (!(offset & 0x2000) && !(m_vidctrl1 & 0x80)) { if (mask & 0xff00) - m_starfire_colorram[offset1] = m_starfire_color; + m_colorram[offset1] = m_color; if (mask & 0x00ff) - m_starfire_colorram[offset2] = m_starfire_color; + m_colorram[offset2] = m_color; } } -uint8_t starfire_state::starfire_videoram_r(offs_t offset) +uint8_t starfire_base_state::videoram_r(offs_t offset) { int sh, mask, d0; int offset1 = offset & 0x1fff; @@ -185,9 +185,9 @@ /* selector 6A */ if (offset & 0x2000) - sh = (m_starfire_vidctrl >> 1) & 0x07; + sh = (m_vidctrl >> 1) & 0x07; else - sh = (m_starfire_vidctrl >> 5) & 0x07; + sh = (m_vidctrl >> 5) & 0x07; /* shifters 6D/6E */ mask = 0xff00 >> sh; @@ -195,14 +195,14 @@ /* ROLL */ if ((offset & 0x1f00) == 0x1f00) { - if (m_starfire_vidctrl1 & 0x10) + if (m_vidctrl1 & 0x10) mask &= 0x00ff; else mask &= 0xff00; } /* munge the results */ - d0 = (m_starfire_videoram[offset1] & (mask >> 8)) | (m_starfire_videoram[offset2] & mask); + d0 = (m_videoram[offset1] & (mask >> 8)) | (m_videoram[offset2] & mask); d0 = (d0 << sh) | (d0 >> (8 - sh)); return d0 & 0xff; } @@ -215,41 +215,41 @@ * *************************************/ -void starfire_state::get_pens(pen_t *pens) +void starfire_base_state::get_pens(pen_t *pens) { offs_t offs; for (offs = 0; offs < STARFIRE_NUM_PENS; offs++) { - uint16_t color = m_starfire_colors[offs]; + uint16_t color = m_colors[offs]; pens[offs] = rgb_t(pal3bit(color >> 6), pal3bit(color >> 3), pal3bit(color >> 0)); } } -TIMER_CALLBACK_MEMBER(starfire_state::starfire_scanline_callback) +TIMER_CALLBACK_MEMBER(starfire_base_state::scanline_callback) { pen_t pens[STARFIRE_NUM_PENS]; int y = param; get_pens(pens); - uint8_t *pix = &m_starfire_videoram[y]; - uint8_t *col = &m_starfire_colorram[y]; + uint8_t *pix = &m_videoram[y]; + uint8_t *col = &m_colorram[y]; for (int x = 0; x < 256; x += 8) { int data = pix[0]; int color = col[0]; - m_starfire_screen.pix32(y, x + 0) = pens[color | ((data >> 2) & 0x20)]; - m_starfire_screen.pix32(y, x + 1) = pens[color | ((data >> 1) & 0x20)]; - m_starfire_screen.pix32(y, x + 2) = pens[color | ((data >> 0) & 0x20)]; - m_starfire_screen.pix32(y, x + 3) = pens[color | ((data << 1) & 0x20)]; - m_starfire_screen.pix32(y, x + 4) = pens[color | ((data << 2) & 0x20)]; - m_starfire_screen.pix32(y, x + 5) = pens[color | ((data << 3) & 0x20)]; - m_starfire_screen.pix32(y, x + 6) = pens[color | ((data << 4) & 0x20)]; - m_starfire_screen.pix32(y, x + 7) = pens[color | ((data << 5) & 0x20)]; + m_screen_bitmap.pix32(y, x + 0) = pens[color | ((data >> 2) & 0x20)]; + m_screen_bitmap.pix32(y, x + 1) = pens[color | ((data >> 1) & 0x20)]; + m_screen_bitmap.pix32(y, x + 2) = pens[color | ((data >> 0) & 0x20)]; + m_screen_bitmap.pix32(y, x + 3) = pens[color | ((data << 1) & 0x20)]; + m_screen_bitmap.pix32(y, x + 4) = pens[color | ((data << 2) & 0x20)]; + m_screen_bitmap.pix32(y, x + 5) = pens[color | ((data << 3) & 0x20)]; + m_screen_bitmap.pix32(y, x + 6) = pens[color | ((data << 4) & 0x20)]; + m_screen_bitmap.pix32(y, x + 7) = pens[color | ((data << 5) & 0x20)]; pix += 256; col += 256; @@ -260,9 +260,9 @@ m_scanline_timer->adjust(m_screen->time_until_pos(y), y); } -uint32_t starfire_state::screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t starfire_base_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - copybitmap(bitmap, m_starfire_screen, 0, 0, 0, 0, cliprect); + copybitmap(bitmap, m_screen_bitmap, 0, 0, 0, 0, cliprect); return 0; } diff -Nru mame-0.223+dfsg.1/src/mame/video/vector06.cpp mame-0.224+dfsg.1/src/mame/video/vector06.cpp --- mame-0.223+dfsg.1/src/mame/video/vector06.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/vector06.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -13,18 +13,14 @@ #include "includes/vector06.h" -void vector06_state::video_start() -{ -} - -uint32_t vector06_state::screen_update_vector06(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t vector06_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { uint8_t code1,code2,code3,code4; uint8_t col; int y, x, b,draw_y; uint8_t *ram = m_ram->pointer(); - int width = (m_video_mode==0x00) ? 256 : 512; + u16 width = (m_video_mode) ? 512 : 256; rectangle screen_area(0,width+64-1,0,256+64-1); // fill border color bitmap.fill(m_color_index, screen_area); @@ -42,12 +38,13 @@ code4 = ram[0xe000 + x*256 + y]; for (b = 0; b < 8; b++) { - col = ((code1 >> b) & 0x01) * 8 + ((code2 >> b) & 0x01) * 4 + ((code3 >> b) & 0x01)* 2+ ((code4 >> b) & 0x01); - if (m_video_mode==0x00) { - bitmap.pix16(draw_y, x*8+(7-b)+32) = col; - } else { - bitmap.pix16(draw_y, x*16+(7-b)*2+1+32) = ((code2 >> b) & 0x01) * 2; - bitmap.pix16(draw_y, x*16+(7-b)*2+32) = ((code3 >> b) & 0x01) * 2; + col = BIT(code1, b) * 8 + BIT(code2, b) * 4 + BIT(code3, b)* 2+ BIT(code4, b); + if (!m_video_mode) + bitmap.pix16(draw_y, x*8+(7-b)+32) = col; + else + { + bitmap.pix16(draw_y, x*16+(7-b)*2+1+32) = BIT(code2, b) * 2; + bitmap.pix16(draw_y, x*16+(7-b)*2+32) = BIT(code3, b) * 2; } } } diff -Nru mame-0.223+dfsg.1/src/mame/video/vtech2.cpp mame-0.224+dfsg.1/src/mame/video/vtech2.cpp --- mame-0.223+dfsg.1/src/mame/video/vtech2.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/vtech2.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -112,9 +112,8 @@ 0x26a0,0x2ea0,0x36a0,0x3ea0,0x27a0,0x2fa0,0x37a0,0x3fa0 }; -uint32_t vtech2_state::screen_update_laser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t vtech2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t *videoram = m_videoram; int offs, x, y; int full_refresh = 1; int lang_offs = 0; @@ -146,7 +145,7 @@ int sx, sy, code, color = m_laser_two_color; sy = BORDER_V/2 + y; sx = BORDER_H/2 + x * 8; - code = videoram[offs]; + code = m_vram[offs]; m_gfxdecode->gfx(2)->opaque(bitmap,cliprect,code,color,0,0,sx,sy); } } @@ -165,8 +164,8 @@ int sx, sy, code, color; sy = BORDER_V/2 + y; sx = BORDER_H/2 + x * 16; - code = videoram[offs]; - color = videoram[offs+1]; + code = m_vram[offs]; + color = m_vram[offs+1]; m_gfxdecode->gfx(3)->opaque(bitmap,cliprect,code,color,0,0,sx,sy); } } @@ -185,7 +184,7 @@ int sx, sy, code; sy = BORDER_V/2 + y; sx = BORDER_H/2 + x * 8; - code = videoram[offs]; + code = m_vram[offs]; m_gfxdecode->gfx(5)->opaque(bitmap,cliprect,code,0,0,0,sx,sy); } } @@ -205,7 +204,7 @@ int sx, sy, code; sy = BORDER_V/2 + y * 2; sx = BORDER_H/2 + x * 8; - code = videoram[offs]; + code = m_vram[offs]; m_gfxdecode->gfx(6)->opaque(bitmap,cliprect,code,0,0,0,sx,sy); } } @@ -224,7 +223,7 @@ int sx, sy, code, color = m_laser_two_color; sy = BORDER_V/2 + y; sx = BORDER_H/2 + x * 16; - code = videoram[offs]; + code = m_vram[offs]; m_gfxdecode->gfx(3)->opaque(bitmap,cliprect,code,color,0,0,sx,sy); } } @@ -243,8 +242,8 @@ int sx, sy, code, color; sy = BORDER_V/2 + y; sx = BORDER_H/2 + x * 32; - code = videoram[offs]; - color = videoram[offs+1]; + code = m_vram[offs]; + color = m_vram[offs+1]; m_gfxdecode->gfx(4)->opaque(bitmap,cliprect,code,color,0,0,sx,sy); } } @@ -265,7 +264,7 @@ int sx, sy, code, color = m_laser_two_color; sy = BORDER_V/2 + y * 8; sx = BORDER_H/2 + x * 8; - code = videoram[0x3800+offs] + lang_offs; + code = m_vram[0x3800+offs] + lang_offs; m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,code,color,0,0,sx,sy); } } @@ -281,8 +280,8 @@ int sx, sy, code, color = 0; sy = BORDER_V/2 + y * 8; sx = BORDER_H/2 + x * 16; - code = videoram[0x3800+offs] + lang_offs; - color = videoram[0x3801+offs]; + code = m_vram[0x3800+offs] + lang_offs; + color = m_vram[0x3801+offs]; m_gfxdecode->gfx(1)->opaque(bitmap,cliprect,code,color,0,0,sx,sy); } } diff -Nru mame-0.223+dfsg.1/src/mame/video/x1.cpp mame-0.224+dfsg.1/src/mame/video/x1.cpp --- mame-0.223+dfsg.1/src/mame/video/x1.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/mame/video/x1.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -1,14 +1,18 @@ // license:LGPL-2.1+ // copyright-holders:Angelo Salese, Barry Rodewald -/**************************************************************************** +/****************************************************************************** * * Sharp X1 Video functions * * TODO: - * - make this to be scanline renderer, fix palette partial updates; - * - take mc6845 device functions into account; + * - Rewrite drawing functions by taking scanline renderer into account + * * cfr. x1fdemo raster effect on first screen. + * - Use mc6845 internal functions instead of breaking encapsulation + * * annoying due of the double height/width stuff. + * - Improve border drawing, pinpoint what are the visible limits for a mc6845; + * - Move X1Turbo features into specific overrides; * - ***************************************************************************/ + *****************************************************************************/ #include "emu.h" #include "includes/x1.h" @@ -24,10 +28,13 @@ m_gfx_bitmap_ram = make_unique_clear(0xc000*2); m_bitmapbank->configure_entries(0, 2, m_gfx_bitmap_ram.get(), 0xc000); m_bitmapbank->set_entry(0); + // TODO: set this up only on x1turbo m_pal_4096 = make_unique_clear(0x1000*3); } -void x1_state::x1_draw_pixel(bitmap_rgb32 &bitmap,int y,int x,uint16_t pen,uint8_t width,uint8_t height) +// helper for a single tile pixel taking height and width into account +// TODO: height is never used +void x1_state::x1_draw_pixel(bitmap_rgb32 &bitmap, int y, int x, uint16_t pen, uint8_t width, uint8_t height) { if(!m_screen->visible_area().contains(x, y)) return; @@ -71,8 +78,8 @@ #define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff)) -/* adjust tile index when we are under double height condition */ -uint8_t x1_state::check_prev_height(int x,int y,int x_size) +// separate tile index when we are under double height condition +uint8_t x1_state::check_prev_height(int x, int y, int x_size) { uint8_t prev_tile = m_tvram[(x+((y-1)*x_size)+mc6845_start_addr) & 0x7ff]; uint8_t cur_tile = m_tvram[(x+(y*x_size)+mc6845_start_addr) & 0x7ff]; @@ -85,8 +92,9 @@ return 0; } -/* Exoa II - Warroid: if double height isn't enabled on the first tile of the line then double height is disabled on everything else. */ -uint8_t x1_state::check_line_valid_height(int y,int x_size,int height) +// exoa2: if double height isn't enabled on the first tile of the row then it is masked out on every other tile. +// (game enables it for sprite/background collision) +uint8_t x1_state::check_line_valid_height(int y, int x_size, int height) { uint8_t line_attr = m_avram[(0+(y*x_size)+mc6845_start_addr) & 0x7ff]; @@ -96,47 +104,51 @@ return height; } -void x1_state::draw_fgtilemap(bitmap_rgb32 &bitmap,const rectangle &cliprect) +// tilemap drawing +void x1_state::draw_fgtilemap(bitmap_rgb32 &bitmap, const rectangle &cliprect) { /* attribute table: x--- ---- double width -x-- ---- double height --x- ---- PCG select - ---x ---- color blinking + ---x ---- color blinking (if 1 reverses color patterns rather than true blinking) ---- x--- reverse color ---- -xxx color pen + X1 Turbo can also access an additional Kanji VRAM area x--- ---- select Kanji ROM -x-- ---- Kanji side (0=left, 1=right) --x- ---- Underline - ---x ---- Kanji ROM select (0=level 1, 1=level 2) (TODO: implement this) + ---x ---- Kanji ROM select (0=level 1, 1=level 2) ---- xxxx Kanji upper 4 bits */ - int y,x,res_x,res_y; + int y, x, res_x, res_y; uint32_t tile_offset; - uint8_t x_size,y_size; + uint8_t x_size, y_size; x_size = mc6845_h_display; y_size = mc6845_v_display; + //don't bother if screen is off if(x_size == 0 || y_size == 0) - return; //don't bother if screen is off + return; if(x_size != 80 && x_size != 40 && y_size != 25) popmessage("%d %d",x_size,y_size); - for (y=0;ybase(); + uint8_t *gfx_data = pcg_bank ? m_pcg_ram.get() : m_cg_rom; int knj_enable = 0; int knj_side = 0; int knj_bank = 0; @@ -146,6 +158,7 @@ knj_enable = BIT(m_kvram[((x+y*x_size)+mc6845_start_addr) & 0x7ff], 7); knj_side = BIT(m_kvram[((x+y*x_size)+mc6845_start_addr) & 0x7ff], 6); knj_uline = BIT(m_kvram[((x+y*x_size)+mc6845_start_addr) & 0x7ff], 5); + // TODO: verify usage and implement //knj_lv2 = BIT(m_kvram[((x+y*x_size)+mc6845_start_addr) & 0x7ff], 4); knj_bank = m_kvram[((x+y*x_size)+mc6845_start_addr) & 0x7ff] & 0x0f; if(knj_enable) @@ -156,7 +169,7 @@ } { - int pen[3],pen_mask,pcg_pen,xi,yi,dy; + int pen[3], pen_mask, pcg_pen, xi, yi, dy; pen_mask = color & 7; @@ -167,22 +180,24 @@ if(height && y) dy = check_prev_height(x,y,x_size); - /* guess: assume that Kanji VRAM doesn't double the vertical size */ + /* guess: assume that if Kanji read is enabled then no double height can occur */ if(knj_enable) { height = 0; } - for(yi=0;yi> (height+m_scrn_reg.v400_mode); pen[0] = gfx_data[tile_offset+0x0000]>>(7-xi) & (pen_mask & 1)>>0; pen[1] = gfx_data[tile_offset+0x0000]>>(7-xi) & (pen_mask & 2)>>1; pen[2] = gfx_data[tile_offset+0x0000]>>(7-xi) & (pen_mask & 4)>>2; - if(yi == mc6845_tile_height-1 && knj_uline) //underlined attribute + // apply underline + if(yi == mc6845_tile_height-1 && knj_uline) { pen[0] = (pen_mask & 1)>>0; pen[1] = (pen_mask & 2)>>1; @@ -192,8 +207,9 @@ if((yi >= 16 && m_scrn_reg.v400_mode == 0) || (yi >= 32 && m_scrn_reg.v400_mode == 1)) pen[0] = pen[1] = pen[2] = 0; } - else if(pcg_bank) // PCG + else if(pcg_bank) { + // PCG read tile_offset = tile * 8; tile_offset += (yi+dy*(m_scrn_reg.v400_mode+1)) >> (height+m_scrn_reg.v400_mode); @@ -206,6 +222,7 @@ } else { + // ANK read (-> BIOS GFX ROM) tile_offset = tile * (8*(m_scrn_reg.ank_sel+1)); tile_offset += (yi+dy*(m_scrn_reg.v400_mode+1)) >> (height+m_scrn_reg.v400_mode); @@ -213,6 +230,7 @@ pen[1] = gfx_data[tile_offset+m_scrn_reg.ank_sel*0x0800]>>(7-xi) & (pen_mask & 2)>>1; pen[2] = gfx_data[tile_offset+m_scrn_reg.ank_sel*0x0800]>>(7-xi) & (pen_mask & 4)>>2; + // disable drawing it goes beyond the available tile space if(m_scrn_reg.ank_sel) { if((yi >= 16 && m_scrn_reg.v400_mode == 0) || (yi >= 32 && m_scrn_reg.v400_mode == 1)) @@ -225,27 +243,34 @@ } } - pcg_pen = pen[2]<<2|pen[1]<<1|pen[0]<<0; + pcg_pen = (pen[2] << 2)|(pen[1] << 1)|(pen[0] << 0); - if(color & 0x10 && m_screen->frame_number() & 0x10) //reverse flickering - pcg_pen^=7; + // apply blink reverser + // TODO: verify interval + if(color & 0x10 && m_screen->frame_number() & 0x10) + pcg_pen ^= 7; + // ignore a color entry of zero (drawn at mixing time) if(pcg_pen == 0 && (!(color & 8))) continue; - if(color & 8) //revert the used color pen - pcg_pen^=7; + // reverse attribute + if(color & 8) + pcg_pen ^= 7; + // X1Turbo only: the black clip register overrides the pen with black if it's hit if((m_scrn_reg.blackclip & 8) && (color == (m_scrn_reg.blackclip & 7))) - pcg_pen = 0; // clip the pen to black + pcg_pen = 0; res_x = x*8+xi*(width+1); res_y = y*(mc6845_tile_height)+yi; - if(res_y < cliprect.min_y || res_y > cliprect.max_y) // partial update, TODO: optimize + // apply partial update + // TODO: not working properly, see top of file + if(res_y < cliprect.min_y || res_y > cliprect.max_y) continue; - x1_draw_pixel(bitmap,res_y,res_x,pcg_pen,width,0); + x1_draw_pixel(bitmap, res_y, res_x, pcg_pen, width, 0); } } } @@ -284,51 +309,61 @@ return pri_mask_calc; } -void x1_state::draw_gfxbitmap(bitmap_rgb32 &bitmap,const rectangle &cliprect, int plane,int pri) +// bitmap drawing +void x1_state::draw_gfxbitmap(bitmap_rgb32 &bitmap, const rectangle &cliprect, int plane, int pri) { - int xi,yi,x,y; - int pen_r,pen_g,pen_b,color; + int xi, yi, x, y; + int pen_r, pen_g, pen_b, color; int pri_mask_val; - uint8_t x_size,y_size; + uint8_t x_size, y_size; int gfx_offset; x_size = mc6845_h_display; y_size = mc6845_v_display; + //don't bother if screen is off if(x_size == 0 || y_size == 0) - return; //don't bother if screen is off + return; if(x_size != 80 && x_size != 40 && y_size != 25) popmessage("%d %d",x_size,y_size); //popmessage("%04x %02x",mc6845_start_addr,mc6845_tile_height); - for (y=0;y> m_scrn_reg.v400_mode) * 0x800) & 0x3fff; + // X1Turbo only: plane variable, for double buffering pen_b = (m_gfx_bitmap_ram[gfx_offset+0x0000+plane*0xc000]>>(7-xi)) & 1; pen_r = (m_gfx_bitmap_ram[gfx_offset+0x4000+plane*0xc000]>>(7-xi)) & 1; pen_g = (m_gfx_bitmap_ram[gfx_offset+0x8000+plane*0xc000]>>(7-xi)) & 1; color = (pen_g<<2 | pen_r<<1 | pen_b<<0) | 8; + // checkout priority mixing + // TODO: due of this we loop twice, it should be handled at mixing time instead. pri_mask_val = priority_mixer_pri(color); if(pri_mask_val & pri) continue; - if((color == 8 && m_scrn_reg.blackclip & 0x10) || (color == 9 && m_scrn_reg.blackclip & 0x20)) // bitmap color clip to black conditions + // X1Turbo only: the black clip register overrides the pen with black if it's hit + if((color == 8 && m_scrn_reg.blackclip & 0x10) || (color == 9 && m_scrn_reg.blackclip & 0x20)) color = 0; - if(y*(mc6845_tile_height)+yi < cliprect.min_y || y*(mc6845_tile_height)+yi > cliprect.max_y) // partial update TODO: optimize + // apply partial update + // TODO: not working properly, see top of file + if(y*(mc6845_tile_height)+yi < cliprect.min_y || y*(mc6845_tile_height)+yi > cliprect.max_y) continue; - x1_draw_pixel(bitmap,y*(mc6845_tile_height)+yi,x*8+xi,color,0,0); + // TODO: call a fn subset instead of looping for a width/height that is never hit + x1_draw_pixel(bitmap, y*(mc6845_tile_height)+yi, x*8+xi, color, 0, 0); } } } @@ -339,15 +374,15 @@ { bitmap.fill(rgb_t(0xff,0x00,0x00,0x00), cliprect); - /* TODO: correct calculation thru mc6845 regs */ + // TODO: correct calculation thru mc6845 regs m_xstart = ((mc6845_h_char_total - mc6845_h_sync_pos) * 8) / 2; m_ystart = ((mc6845_v_char_total - mc6845_v_sync_pos) * 8) / 2; // popmessage("%d %d %d %d",mc6845_h_sync_pos,mc6845_v_sync_pos,mc6845_h_char_total,mc6845_v_char_total); - draw_gfxbitmap(bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri); - draw_fgtilemap(bitmap,cliprect); - draw_gfxbitmap(bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri^0xff); + draw_gfxbitmap(bitmap, cliprect, m_scrn_reg.disp_bank, m_scrn_reg.pri); + draw_fgtilemap(bitmap, cliprect); + draw_gfxbitmap(bitmap, cliprect, m_scrn_reg.disp_bank, m_scrn_reg.pri ^ 0xff); return 0; } diff -Nru mame-0.223+dfsg.1/src/tools/chdman.cpp mame-0.224+dfsg.1/src/tools/chdman.cpp --- mame-0.223+dfsg.1/src/tools/chdman.cpp 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/src/tools/chdman.cpp 2020-08-26 08:57:19.000000000 +0000 @@ -38,8 +38,8 @@ //************************************************************************** // CONSTANTS & DEFINES //************************************************************************** -// MINGW has adopted the MSVC formatting for 64-bit ints as of GCC 4.4 and deprecated it as of GCC 10 -#if defined(WIN32) && defined(__GNUC__) && (__GNUC__ < 10) +// MINGW has adopted the MSVC formatting for 64-bit ints as of GCC 4.4 and deprecated it as of GCC 9.3 +#if defined(WIN32) && defined(__GNUC__) && ((__GNUC__ < 9) || ((__GNUC__ == 9) && (__GNUC_MINOR__ < 3))) #define I64FMT "I64" #elif !defined(__APPLE__) && defined(__LP64__) #define I64FMT "l" diff -Nru mame-0.223+dfsg.1/.travis.yml mame-0.224+dfsg.1/.travis.yml --- mame-0.223+dfsg.1/.travis.yml 2020-08-07 14:03:28.000000000 +0000 +++ mame-0.224+dfsg.1/.travis.yml 2020-08-26 08:57:19.000000000 +0000 @@ -1,5 +1,5 @@ language: cpp -dist: bionic +dist: focal addons: apt: sources: @@ -24,19 +24,26 @@ - os: osx osx_image: xcode11.6 compiler: clang - env: SUBTARGET=tiny MAME=mametiny64 + env: SUBTARGET=ci MAME=mameci64 - os: linux arch: amd64 compiler: gcc - env: SUBTARGET=tiny MAME=mametiny64 + env: SUBTARGET=ci MAME=mameci64 - os: linux arch: arm64 compiler: gcc - env: SUBTARGET=tiny MAME=mametiny + env: SUBTARGET=ci MAME=mameci - os: linux arch: s390x compiler: gcc - env: SUBTARGET=tiny MAME=mametiny64 + env: SUBTARGET=ci MAME=mameci64 + - os: linux + arch: ppc64le + compiler: gcc + env: SUBTARGET=ci MAME=mameci64 + allow_failures: + - arch: ppc64le + fast_finish: true script: - if [ $TRAVIS_OS_NAME == 'linux' ]; then if [ $CC == 'clang' ]; then